{"version":3,"file":"main.005705d7eaba0c8b48fc.js","mappings":"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A,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,OAGRG,SAAU,CACNH,WAAY,CAAC,OAAQ,YAAa,MAAO,MAAO,QAEpDI,WAAY,CACRJ,WAAY,CAAC,eAEjBK,UAAW,CACPL,WAAY,CAAC,cAEjBM,KAAM,CACFN,WAAY,CACR,OACA,MACA,MACA,MACA,KACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,aACA,cACA,eACA,SACA,MACA,MACA,MACA,QACA,UACA,IACA,MACA,MACA,UACA,KACA,MACA,MACA,OACA,KACA,MACA,MACA,QACA,MACA,SACA,SACA,MACA,MACA,MACA,KACA,SACA,OACA,SACA,MACA,MACA,MACA,IACA,MACA,KACA,QACA,MACA,MACA,OACA,KACA,YACA,MACA,MACA,IACA,MACA,MACA,KACA,MACA,WACA,MACA,UACA,UACA,YACA,KACA,SACA,MACA,IACA,MACA,OACA,aACA,MACA,MACA,KACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,OACA,MACA,OACA,KACA,OACA,MACA,SACA,MACA,IACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,IACA,MACA,OACA,WACA,SACA,KACA,SACA,WACA,QACA,OACA,KACA,MACA,MACA,MACA,KACA,MACA,MACA,OACA,YACA,IACA,MACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,KACA,KACA,MACA,KACA,UACA,MACA,SACA,OACA,OACA,MACA,KACA,KACA,MACA,IACA,OACA,KACA,MACA,KACA,MACA,KACA,MACA,OACA,OACA,OACA,QACA,MACA,WACA,MACA,MACA,MACA,OACA,OACA,IACA,OACA,QACA,MACA,aACA,aACA,SACA,OACA,OACA,KACA,QACA,MACA,WACA,QACA,MACA,MACA,MACA,MACA,UACA,MACA,MACA,OACA,MACA,KACA,KACA,MACA,MACA,UACA,MACA,OACA,QACA,OACA,MACA,OACA,OACA,OACA,MACA,QA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CAAC,EACLuB,EAAK,EAAGg9B,EAAUpS,EAAO5qB,EAAKg9B,EAAQ/4B,OAAQjE,IAGnD,IAFA,IAAIuqB,EAAOyS,EAAQh9B,GAEVI,EAAK,EAAG8nH,EADNxhH,MAAMC,QAAQ4jB,GAAQA,EAAO3jB,OAAOC,KAAK0jB,GACpBnqB,EAAK8nH,EAAOjkH,OAAQ7D,IAEhD3B,EADUypH,EAAO9nH,IACH,EAGtB,OAAO3B,CACX,EAMW0pH,EAAoBF,EAAY,CACvC,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAOOG,EAAwBH,EAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAOOI,EAAwBJ,EAAYG,EAAuBD,GAc3DG,GARkBL,EAAYI,EAAuB,CAC5D,SAOyBJ,EAAYI,EAAuB,CAC5D,SACA,OACA,QACA,UACA,MACA,WA+BOE,GAxBkBN,EAAYK,EAAiB,CACtD,WAOsBL,EAAYI,EAAuB,CACzD,UAOsBJ,EAAYI,EAAuB,CACzD,UAO0BJ,EAAYI,EAAuB,CAC7D,WACA,OACA,WACA,QACA,MACA,SACA,UAOOG,EAAmBP,EAAYI,EAAuB,CAC7D,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UAOOI,EAAkBR,EAAYO,EAAkB,CACvD,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,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CA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,SAAU,CACN,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,SAAU,CACN,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GA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Kg1H,SAAWb,GAAcn0H,KAAKi1H,SACvCj1H,KAAK01H,MAEb,EAKArB,EAAO3yH,UAAU0zH,KAAO,WACpB,GAAIp1H,KAAKg1H,QACL,OAAO,KAEX,IAAIjmH,EAAO/O,KAAKi1H,OACZruE,EAAS5mD,KAAK4mD,SACd60E,EAAWz7H,KAAKklF,QAAQga,WAAWt4C,GAAU73C,GAAQ,MAAU,EAAI,IACvE,OAAO0sH,QAA2CA,EAAW,IACjE,EACOpH,CACX,CA/yB2B,GAszB3B,SAASkB,GAASqB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,EACzC,CA8BA,SAASzC,GAAcpa,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,CACR,CAKA,SAASqa,GAAiBra,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,KAC7B,CEvvCA,SAAS2hB,GAAcC,GACnBA,EAAI/3H,SAAQ,SAAU22D,GAElB,UADOA,EAAGo7D,SACN9H,EAAgBtzD,IAAOuzD,EAAgBvzD,GACvC,IAAK,IAAI8/C,KAAK9/C,EAAGxyD,eACNwyD,EAAGxyD,QAAQsyG,GAAGsb,SACrB+F,GAAcnhE,EAAGxyD,QAAQsyG,GAAG5wG,YAG3BgkH,EAAgBlzD,IAAO4zD,EAAiB5zD,EAAGnxD,SAG1CukH,EAAcpzD,IAAOqzD,EAAcrzD,KACzC6zD,EAAmB7zD,EAAGnxD,cAHfmxD,EAAGnxD,MAAMusH,SAMXzH,EAAa3zD,IAClBmhE,GAAcnhE,EAAGl9C,SAEzB,GACJ,CACO,SAASs3G,GAAMzvC,EAAS02C,QACd,IAATA,IAAmBA,EAAO,CAAC,GAC/BA,GAAO,QAAS,CAAElH,sBAAsB,EAAMD,qBAAqB,GAAQmH,GAC3E,IAAI59H,EAAS,IAAIq2H,GAAOnvC,EAAS02C,GAAMjH,QACvC,GAAI32H,EAAOm3H,IAAK,CACZ,IAAIztD,EAAQm0D,YAAY3O,EAAUlvH,EAAOm3H,IAAImG,OAK7C,MAHA5zD,EAAMiuD,SAAW33H,EAAOm3H,IAAIQ,SAE5BjuD,EAAMo0D,gBAAkB99H,EAAOm3H,IAAIjwC,QAC7Bxd,CACV,CAIA,OAHMk0D,aAAmC,EAASA,EAAKG,kBACnDL,GAAc19H,EAAOioH,KAElBjoH,EAAOioH,GAClB,qHCxCW+V,cACX,SAAWA,GACPA,EAA4B,aAAI,eAChCA,EAAqC,sBAAI,wBACzCA,EAA8B,eAAI,iBAClCA,EAA4B,aAAI,eAChCA,EAAmC,oBAAI,qBAC1C,CAND,CAMGA,IAAkBA,EAAgB,CAAC,IACtC,IAAIC,EAA2B,SAAUznH,GAErC,SAASynH,EAAUltH,EAAMm2E,EAASg3C,GAC9B,IAAIj6H,EAAQjC,KACRm1H,EAAM+G,EACJA,aAAqB9iG,MACjB8iG,EACA,IAAI9iG,MAAM7uB,OAAO2xH,SACrBz9H,EAQN,OAPAwD,EAAQuS,EAAOE,KAAK1U,KAAM,yBAAyBqI,OAAO0G,EAAM,MAAM1G,OAAO68E,EAAS,OAAO78E,OAAO8sH,EAAM,KAAK9sH,OAAO8sH,EAAIjwC,QAAS,MAAM78E,OAAO8sH,EAAIgH,OAAS,MAAQn8H,MAC/J+O,KAAOA,EAE0B,mBAA5BqqB,MAAMgjG,mBAEbhjG,MAAMgjG,kBAAkBn6H,EAAOg6H,GAE5Bh6H,CACX,CACA,OAjBA,QAAUg6H,EAAWznH,GAiBdynH,CACX,CAnB8B,CAmB5B7iG,OAEEijG,EAA2C,SAAU7nH,GAErD,SAAS6nH,EAA0Bn3C,EAASg3C,GACxC,OAAO1nH,EAAOE,KAAK1U,KAAMg8H,EAAcM,sBAAuBp3C,EAASg3C,IAAcl8H,IACzF,CACA,OAJA,QAAUq8H,EAA2B7nH,GAI9B6nH,CACX,CAN8C,CAM5CJ,GAEEM,EAAoC,SAAU/nH,GAE9C,SAAS+nH,EAAmBr3C,EAASg3C,GACjC,OAAO1nH,EAAOE,KAAK1U,KAAMg8H,EAAcQ,eAAgBt3C,EAASg3C,IAAcl8H,IAClF,CACA,OAJA,QAAUu8H,EAAoB/nH,GAIvB+nH,CACX,CANuC,CAMrCN,GAEEQ,EAAkC,SAAUjoH,GAE5C,SAASioH,EAAiBv3C,EAASg3C,GAC/B,OAAO1nH,EAAOE,KAAK1U,KAAMg8H,EAAcU,aAAcx3C,EAASg3C,IAAcl8H,IAChF,CACA,OAJA,QAAUy8H,EAAkBjoH,GAIrBioH,CACX,CANqC,CAMnCR,GAEEU,EAAiC,SAAUnoH,GAE3C,SAASmoH,EAAgBz3C,EAAS4sC,EAAQoK,GACtC,OAAO1nH,EAAOE,KAAK1U,KAAMg8H,EAAcY,aAAc,GAAGv0H,OAAO68E,EAAS,eAAe78E,OAAOypH,EAAQ,MAAOoK,IAAcl8H,IAC/H,CACA,OAJA,QAAU28H,EAAiBnoH,GAIpBmoH,CACX,CANoC,CAMlCV,GAEEY,EAAoC,SAAUroH,GAE9C,SAASqoH,EAAmB33C,EAAS4sC,EAAQgL,EAAYZ,GACrD,IAAIj6H,EAAQuS,EAAOE,KAAK1U,KAAM,GAAGqI,OAAO68E,EAAS,kBAAkB78E,OAAOy0H,aAA+C,EAASA,EAAWplG,GAAI,uBAAuBrvB,OAAOy0H,aAA+C,EAASA,EAAWC,eAAgB,mBAAmB10H,OAAOy0H,aAA+C,EAASA,EAAWl0G,YAAa,OAAQkpG,EAAQoK,IAAcl8H,KAE1Y,OADAiC,EAAM66H,WAAaA,EACZ76H,CACX,CACA,OANA,QAAU46H,EAAoBroH,GAMvBqoH,CACX,CARuC,CAQrCF,GAEEK,EAAyC,SAAUxoH,GAEnD,SAASwoH,EAAwBF,EAAYhL,GACzC,IAAI7vH,EAAQuS,EAAOE,KAAK1U,KAAMg8H,EAAciB,oBAAqB,qBAAsB50H,OAAOy0H,EAAWplG,GAAI,kBAAoBrvB,OAAOypH,EAAQ,aAAczpH,OAAOy0H,EAAWC,eAAiB,kBAAoB,KAAM,mBAAqB/8H,KAEhP,OADAiC,EAAM66H,WAAaA,EACZ76H,CACX,CACA,OANA,QAAU+6H,EAAyBxoH,GAM5BwoH,CACX,CAR4C,CAQ1Cf,uIC5EK,SAASiB,EAAYzoH,EAAO0oH,EAAWC,GAE1C,YADiB,IAAbA,IAAuBA,EAAW,CAAC,GAChCD,EAAUpxH,QAAO,SAAUsxH,EAAUz1H,GAOxC,OANIA,KAAQ6M,EACR4oH,EAASz1H,GAAQ6M,EAAM7M,GAElBA,KAAQw1H,IACbC,EAASz1H,GAAQw1H,EAASx1H,IAEvBy1H,CACX,GAAG,CAAC,EACR,CACA,IAYWC,EAAsB,CAC7BC,QAAS,CAAC,EACVC,SAAU,CAAC,EACXC,cAAUh/H,EACVi/H,cAAe,KACfC,eAAgB,CAAC,EACjBC,uBAAuB,EACvBj1D,QAnBsB,SAAUjB,GAKpC,EAeIm2D,OAdqB,SAAUp6B,GAKnC,GAWO,SAASq6B,IACZ,MAAO,CACHzP,SAAU,CAAC,EACXX,OAAQ,CAAC,EACTxoC,QAAS,CAAC,EACV64C,aAAc,CAAC,EACfC,YAAa,CAAC,EACd36F,KAAM,CAAC,EACP46F,aAAc,CAAC,EAEvB,CACA,SAASC,EAAuBC,GAC5B,MAAO,CACHpR,OAAQ,WACJ,MAAO,CACH7uG,IAAK,SAAUxb,GACX,OAAOy7H,EAAMz7H,EACjB,EACAu8G,IAAK,SAAUv8G,EAAK+G,GAChB00H,EAAMz7H,GAAO+G,CACjB,EAER,EAER,CAKO,SAAS20H,EAAiB/X,QACf,IAAVA,IAAoBA,EA7BjB,CACHgI,SAAU,CAAC,EACXX,OAAQ,CAAC,EACTxoC,QAAS,CAAC,EACV64C,aAAc,CAAC,EACfC,YAAa,CAAC,EACd36F,KAAM,CAAC,EACP46F,aAAc,CAAC,IAuBnB,IAAII,EAAqBC,KAAKD,mBAC1BE,EAAaD,KAAKC,WAClBC,EAAeF,KAAKE,aACpBC,GAAoB,QAAQ,WAG5B,IAFA,IAAIl/H,EACAoD,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAEzB,OAAO,KAAM7F,EAAK++H,KAAKI,gBAAgB/jG,KAAKl0B,MAAMlH,GAAI,QAAc,MAAC,GAASoD,GAAM,IACxF,GAAG,CACC0jH,MAAO6X,EAAuB7X,EAAMgI,UACpC7B,SAAU,IAAWK,WAErB8R,GAAkB,QAAQ,WAG1B,IAFA,IAAIp/H,EACAoD,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAEzB,OAAO,KAAM7F,EAAK++H,KAAKM,cAAcjkG,KAAKl0B,MAAMlH,GAAI,QAAc,MAAC,GAASoD,GAAM,IACtF,GAAG,CACC0jH,MAAO6X,EAAuB7X,EAAMqH,QACpClB,SAAU,IAAWK,WAErBgS,GAAiB,QAAQ,WAGzB,IAFA,IAAIt/H,EACAoD,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAEzB,OAAO,KAAM7F,EAAK++H,KAAKQ,aAAankG,KAAKl0B,MAAMlH,GAAI,QAAc,MAAC,GAASoD,GAAM,IACrF,GAAG,CACC0jH,MAAO6X,EAAuB7X,EAAM2X,aACpCxR,SAAU,IAAWK,WAEzB,MAAO,CACH4R,kBAAmBA,EACnBE,gBAAiBA,EACjBI,kBAAkB,QAAQ,SAAU75C,EAAS85C,EAASC,EAAiBrD,GACnE,OAAO,IAAI,IAAkB12C,EAAS85C,EAASC,GAAiB,QAAS,CAAEC,WAAY,CAC/EP,gBAAiBA,EACjBF,kBAAmBA,EACnBI,eAAgBA,IACdjD,GAAQ,CAAC,GACvB,GAAG,CACCvV,MAAO6X,EAAuB7X,EAAMnhC,SACpCsnC,SAAU,IAAWK,WAEzBsS,uBAAuB,QAAQ,WAE3B,IADA,IAAIx8H,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAEzB,OAAO,IAAKi5H,EAAmB1jG,KAAKl0B,MAAM43H,GAAoB,QAAc,MAAC,GAAS17H,GAAM,IAChG,GAAG,CACC0jH,MAAO6X,EAAuB7X,EAAM0X,cACpCvR,SAAU,IAAWK,WAEzBgS,eAAgBA,EAChBO,eAAe,QAAQ,WAEnB,IADA,IAAIz8H,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAEzB,OAAO,IAAKm5H,EAAW5jG,KAAKl0B,MAAM83H,GAAY,QAAc,MAAC,GAAS57H,GAAM,IAChF,GAAG,CACC0jH,MAAO6X,EAAuB7X,EAAMhjF,MACpCmpF,SAAU,IAAWK,WAEzBwS,iBAAiB,QAAQ,WAErB,IADA,IAAI18H,EAAO,GACFyC,EAAK,EAAGA,EAAKC,UAAU7B,OAAQ4B,IACpCzC,EAAKyC,GAAMC,UAAUD,GAEzB,OAAO,IAAKo5H,EAAa7jG,KAAKl0B,MAAM+3H,GAAc,QAAc,MAAC,GAAS77H,GAAM,IACpF,GAAG,CACC0jH,MAAO6X,EAAuB7X,EAAM4X,cACpCzR,SAAU,IAAWK,WAGjC,CACO,SAASyS,EAAe/B,EAASx8G,EAAMnZ,EAAM+gE,GAChD,IACIgvB,EADA4nC,EAAahC,GAAWA,EAAQx8G,GAKpC,GAHIw+G,IACA5nC,EAAS4nC,EAAW33H,IAEpB+vF,EACA,OAAOA,EAEXhvB,EAAQ,IAAI,KAA0B,MAAMtgE,OAAO0Y,EAAM,mBAAmB1Y,OAAOT,IACvF,gCCjKA,SAAS43H,EAAQC,EAAQC,GACvB,IAAIt5H,EAAOD,OAAOC,KAAKq5H,GAEvB,GAAIt5H,OAAOw5H,sBAAuB,CAChC,IAAIC,EAAUz5H,OAAOw5H,sBAAsBF,GAC3CC,IAAmBE,EAAUA,EAAQz9H,QAAO,SAAU09H,GACpD,OAAO15H,OAAO25H,yBAAyBL,EAAQI,GAAK1hH,UACtD,KAAK/X,EAAKlE,KAAKuE,MAAML,EAAMw5H,EAC7B,CAEA,OAAOx5H,CACT,CAEA,SAAS25H,EAAe3yH,GACtB,IAAK,IAAIL,EAAI,EAAGA,EAAI1H,UAAU7B,OAAQuJ,IAAK,CACzC,IAAIs4F,EAAS,MAAQhgG,UAAU0H,GAAK1H,UAAU0H,GAAK,CAAC,EACpDA,EAAI,EAAIyyH,EAAQr5H,OAAOk/F,IAAS,GAAIzhG,SAAQ,SAAUlB,GACpDs9H,EAAgB5yH,EAAQ1K,EAAK2iG,EAAO3iG,GACtC,IAAKyD,OAAO85H,0BAA4B95H,OAAO+5H,iBAAiB9yH,EAAQjH,OAAO85H,0BAA0B56B,IAAWm6B,EAAQr5H,OAAOk/F,IAASzhG,SAAQ,SAAUlB,GAC5JyD,OAAO8X,eAAe7Q,EAAQ1K,EAAKyD,OAAO25H,yBAAyBz6B,EAAQ3iG,GAC7E,GACF,CAEA,OAAO0K,CACT,CAEA,SAAS+yH,EAAQpsB,GAGf,OAAOosB,EAAU,mBAAqBC,QAAU,iBAAmBA,OAAOC,SAAW,SAAUtsB,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBqsB,QAAUrsB,EAAIgB,cAAgBqrB,QAAUrsB,IAAQqsB,OAAO1+H,UAAY,gBAAkBqyG,CAC1H,EAAGosB,EAAQpsB,EACb,CAwDA,SAASusB,EAAkBlzH,EAAQqH,GACjC,IAAK,IAAI1H,EAAI,EAAGA,EAAI0H,EAAMjR,OAAQuJ,IAAK,CACrC,IAAI+vH,EAAaroH,EAAM1H,GACvB+vH,EAAW3+G,WAAa2+G,EAAW3+G,aAAc,EACjD2+G,EAAW1+G,cAAe,EACtB,UAAW0+G,IAAYA,EAAWyD,UAAW,GACjDp6H,OAAO8X,eAAe7Q,EAAQ0vH,EAAWp6H,IAAKo6H,EAChD,CACF,CAWA,SAASkD,EAAgBjsB,EAAKrxG,EAAK+G,GAYjC,OAXI/G,KAAOqxG,EACT5tG,OAAO8X,eAAe81F,EAAKrxG,EAAK,CAC9B+G,MAAOA,EACP0U,YAAY,EACZC,cAAc,EACdmiH,UAAU,IAGZxsB,EAAIrxG,GAAO+G,EAGNsqG,CACT,CA6BA,SAASysB,EAAeC,EAAK1zH,GAC3B,OAWF,SAAyB0zH,GACvB,GAAIx6H,MAAMC,QAAQu6H,GAAM,OAAOA,CACjC,CAbSC,CAAgBD,IAmBzB,SAA+BA,EAAK1zH,GAClC,IAAI3H,EAAY,MAAPq7H,EAAc,KAAyB,oBAAXL,QAA0BK,EAAIL,OAAOC,WAAaI,EAAI,cAE3F,GAAU,MAANr7H,EAAJ,CACA,IAIIi/C,EAAIvkD,EAJJ6gI,EAAO,GACPC,GAAK,EACL/gI,GAAK,EAIT,IACE,IAAKuF,EAAKA,EAAGsP,KAAK+rH,KAAQG,GAAMv8E,EAAKj/C,EAAGy7H,QAAQC,QAC9CH,EAAKz+H,KAAKmiD,EAAG56C,QAETsD,GAAK4zH,EAAKn9H,SAAWuJ,GAH4B6zH,GAAK,GAK9D,CAAE,MAAOzL,GACPt1H,GAAK,EACLC,EAAKq1H,CACP,CAAE,QACA,IACOyL,GAAsB,MAAhBx7H,EAAW,QAAWA,EAAW,QAC9C,CAAE,QACA,GAAIvF,EAAI,MAAMC,CAChB,CACF,CAEA,OAAO6gI,CAxBe,CAyBxB,CA/CiCI,CAAsBN,EAAK1zH,IAAMi0H,EAA4BP,EAAK1zH,IAsEnG,WACE,MAAM,IAAIk0H,UAAU,4IACtB,CAxEyGC,EACzG,CAEA,SAASC,EAAmBV,GAC1B,OAGF,SAA4BA,GAC1B,GAAIx6H,MAAMC,QAAQu6H,GAAM,OAAOW,EAAkBX,EACnD,CALSY,CAAmBZ,IAW5B,SAA0Ba,GACxB,GAAsB,oBAAXlB,QAAmD,MAAzBkB,EAAKlB,OAAOC,WAA2C,MAAtBiB,EAAK,cAAuB,OAAOr7H,MAAMiiG,KAAKo5B,EACtH,CAboCC,CAAiBd,IAAQO,EAA4BP,IA8DzF,WACE,MAAM,IAAIQ,UAAU,uIACtB,CAhEiGO,EACjG,CA4CA,SAASR,EAA4BxmB,EAAGinB,GACtC,GAAKjnB,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO4mB,EAAkB5mB,EAAGinB,GACvD,IAAIlnB,EAAIp0G,OAAOzE,UAAU+yB,SAAS/f,KAAK8lG,GAAGruG,MAAM,GAAI,GAEpD,MADU,WAANouG,GAAkBC,EAAEzF,cAAawF,EAAIC,EAAEzF,YAAYntG,MAC7C,QAAN2yG,GAAqB,QAANA,EAAoBt0G,MAAMiiG,KAAKsS,GACxC,cAAND,GAAqB,2CAA2Cp7G,KAAKo7G,GAAW6mB,EAAkB5mB,EAAGinB,QAAzG,CALc,CAMhB,CAEA,SAASL,EAAkBX,EAAKnsB,IACnB,MAAPA,GAAeA,EAAMmsB,EAAIj9H,UAAQ8wG,EAAMmsB,EAAIj9H,QAE/C,IAAK,IAAIuJ,EAAI,EAAG20H,EAAO,IAAIz7H,MAAMquG,GAAMvnG,EAAIunG,EAAKvnG,IAAK20H,EAAK30H,GAAK0zH,EAAI1zH,GAEnE,OAAO20H,CACT,mBAUA,IAAIC,EAAO,WAAiB,EAExBC,EAAU,CAAC,EACXC,EAAY,CAAC,EACbC,EAAqB,KACrBC,EAAe,CACjBC,KAAML,EACNM,QAASN,GAGX,IACwB,oBAAXriI,SAAwBsiI,EAAUtiI,QACrB,oBAAbZ,WAA0BmjI,EAAYnjI,UACjB,oBAArBwjI,mBAAkCJ,EAAqBI,kBACvC,oBAAhBC,cAA6BJ,EAAeI,YACzD,CAAE,MAAO1+H,GAAI,CAEb,IAWI2+H,EAAcC,EAAeC,EAAeC,EAAeC,EAV3DC,GADOb,EAAQ1iI,WAAa,CAAC,GACPE,UACtBA,OAA+B,IAAnBqjI,EAA4B,GAAKA,EAC7CC,EAASd,EACTe,EAAWd,EACXe,EAAoBd,EACpBe,EAAcd,EAEde,GADeJ,EAAOhkI,WACXikI,EAAShkI,mBAAqBgkI,EAASt+H,MAA6C,mBAA9Bs+H,EAAS/mH,kBAAqE,mBAA3B+mH,EAASp+H,eAC7Hw+H,GAAS3jI,EAAUmI,QAAQ,UAAYnI,EAAUmI,QAAQ,YAIzDy7H,EAAuB,qBAEvBC,EAAqB,KACrBC,EAA4B,iBAC5BC,EAAgB,gBAChBC,EAAyB,yBACzBC,EAAiC,iCACjCC,EAAc,cACdC,EAAY,YACZC,EAA8B,oBAC9BC,EAA0B,QAC1BC,EAAsC,CAAC,OAAQ,OAAQ,QAAS,UAChEC,EAAa,WACf,IACE,OAAO,CACT,CAAE,MAAOlgI,GACP,OAAO,CACT,CACF,CANiB,GAObmgI,EAAiB,UACjBC,EAAe,QACfC,EAAW,CAACF,EAAgBC,GAEhC,SAASE,EAAYhwB,GAEnB,OAAO,IAAIiwB,MAAMjwB,EAAK,CACpB71F,IAAK,SAAa9Q,EAAQzH,GACxB,OAAOA,KAAQyH,EAASA,EAAOzH,GAAQyH,EAAOw2H,EAChD,GAEJ,CACA,IAAIK,EAAkBF,GAAgC/D,EAAnBoC,EAAe,CAAC,EAAiCwB,EAAgB,CAClG,GAAM,QACN,IAAO,QACP,WAAY,QACZ,IAAO,UACP,aAAc,UACd,IAAO,QACP,WAAY,QACZ,IAAO,OACP,UAAW,OACX,IAAO,UACP,aAAc,UACd,IAAO,SACP,YAAa,SACb,IAAO,MACP,SAAU,QACR5D,EAAgBoC,EAAcyB,EAAc,CAC9C,GAAM,QACN,KAAQ,QACR,WAAY,UACVzB,IACA8B,EAAkBH,GAAiC/D,EAApBqC,EAAgB,CAAC,EAAkCuB,EAAgB,CACpG,MAAS,MACT,QAAW,MACX,MAAS,MACT,KAAQ,MACR,QAAW,MACX,OAAU,MACV,IAAO,QACL5D,EAAgBqC,EAAewB,EAAc,CAC/C,MAAS,SACPxB,IACA8B,EAAuBJ,GAAiC/D,EAApBsC,EAAgB,CAAC,EAAkCsB,EAAgB,CACzG,IAAO,YACP,IAAO,aACP,IAAO,SACP,IAAO,WACP,IAAO,aACP,IAAO,WACP,IAAO,YACL5D,EAAgBsC,EAAeuB,EAAc,CAC/C,KAAQ,aACNvB,IACA8B,EAAuBL,GAAiC/D,EAApBuC,EAAgB,CAAC,EAAkCqB,EAAgB,CACzG,YAAa,MACb,aAAc,MACd,SAAU,MACV,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,UAAW,QACT5D,EAAgBuC,EAAesB,EAAc,CAC/C,WAAY,SACVtB,IACA8B,EAAgC,8BAEhCC,EAAwB,iBACxBC,EAAsB,0FAGtBC,EAAwBT,GAAiC/D,EAApBwC,EAAgB,CAAC,EAAkCoB,EAAgB,CAC1G,IAAO,MACP,IAAO,MACP,OAAU,MACV,IAAO,MACP,IAAO,QACL5D,EAAgBwC,EAAeqB,EAAc,CAC/C,IAAO,SACLrB,IACAiC,GAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACvCC,GAAcD,GAASp8H,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACnEs8H,GAAkC,CAAC,QAAS,cAAe,YAAa,oBAAqB,gBAC7FC,GAAkB,CACpBC,MAAO,gBACPC,aAAc,eACdC,QAAS,UACTC,UAAW,aAETC,GAAW,IAAI7wH,IACnBjO,OAAOC,KAAK89H,EAAgBN,IAAiBl9H,IAAIu+H,GAAStpH,IAAIgf,KAAKsqG,KACnE9+H,OAAOC,KAAK89H,EAAgBL,IAAen9H,IAAIu+H,GAAStpH,IAAIgf,KAAKsqG,KACjE,IAAIC,GAAmB,GAAG78H,OAAOy7H,EAAU3C,EAAmB8D,IAAW,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,OAAQ,SAAU,OAAQ,YAAa,SAAU,YAAa,kBAAmB,gBAAiB,OAAQ,KAAM,UAAW,iBAAkB,cAAe,SAAU,KAAM,YAAa,aAAc,QAAS,aAAc,aAAc,YAAa,YAAa,QAAS,aAAc,eAAgB,OAAQ,WAAY,WAAY,QAAS,KAAML,GAAgBC,MAAOD,GAAgBE,aAAcF,GAAgBG,QAASH,GAAgBI,YAAY38H,OAAOo8H,GAAS/9H,KAAI,SAAU6zG,GACllB,MAAO,GAAGlyG,OAAOkyG,EAAG,IACtB,KAAIlyG,OAAOq8H,GAAYh+H,KAAI,SAAU6zG,GACnC,MAAO,KAAKlyG,OAAOkyG,EACrB,KAEI4qB,GAAUzC,EAAO0C,mBAAqB,CAAC,EAmBvCzC,GAA8C,mBAA3BA,EAAS19H,eAClB,CAAC,CAAC,qBAAsB,gBAAiB,CAAC,kBAAmB,aAAc,CAAC,sBAAuB,iBAAkB,CAAC,qBAAsB,gBAAiB,CAAC,yBAA0B,oBAAqB,CAAC,wBAAyB,kBAAmB,CAAC,oBAAqB,cAAe,CAAC,iBAAkB,YAAa,CAAC,8BAA+B,wBAAyB,CAAC,yBAA0B,oBAAqB,CAAC,uBAAwB,kBAAmB,CAAC,4BAA6B,sBAAuB,CAAC,2BAA4B,sBAAuB,CAAC,0BAA2B,qBAC/lBrB,SAAQ,SAAUyhI,GACtB,IAAIC,EAAQ9E,EAAe6E,EAAM,GAC7BE,EAAOD,EAAM,GACb5iI,EAAM4iI,EAAM,GAEZrf,EAhBR,SAAgBA,GAGd,MAAY,KAARA,GACQ,UAARA,IACQ,SAARA,GACGA,EACT,CAScuf,CAxBd,SAAuBD,GACrB,IAAIniI,EAAUu/H,EAAS19H,cAAc,UAAYsgI,EAAO,KAExD,GAAIniI,EACF,OAAOA,EAAQxE,aAAa2mI,EAEhC,CAkBqBE,CAAcF,IAE3Btf,UACFkf,GAAQziI,GAAOujH,EAEnB,IAGF,IAAIyf,GAAW,CACbC,aAAc,QACdC,cAAe,UACfC,UAAW5C,EACX6C,iBAAkB5C,EAClB6C,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACVC,sBAAsB,EACtBC,kBAAkB,EAClBC,eAAgB,QAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,GAGhBpB,GAAQqB,eACVrB,GAAQU,UAAYV,GAAQqB,cAG9B,IAAIhmI,GAAUu/H,EAAeA,EAAe,CAAC,EAAG2F,IAAWP,IAEtD3kI,GAAQulI,iBAAgBvlI,GAAQ2lI,kBAAmB,GACxD,IAAI1mI,GAAS,CAAC,EACd0G,OAAOC,KAAKs/H,IAAU9hI,SAAQ,SAAUlB,GACtCyD,OAAO8X,eAAexe,GAAQiD,EAAK,CACjCyb,YAAY,EACZ8gG,IAAK,SAAagH,GAChBzlH,GAAQkC,GAAOujH,EAEfwgB,GAAY7iI,SAAQ,SAAUxB,GAC5B,OAAOA,EAAG3C,GACZ,GACF,EACAye,IAAK,WACH,OAAO1d,GAAQkC,EACjB,GAEJ,IAEAyD,OAAO8X,eAAexe,GAAQ,eAAgB,CAC5C0e,YAAY,EACZ8gG,IAAK,SAAagH,GAChBzlH,GAAQqlI,UAAY5f,EAEpBwgB,GAAY7iI,SAAQ,SAAUxB,GAC5B,OAAOA,EAAG3C,GACZ,GACF,EACAye,IAAK,WACH,OAAO1d,GAAQqlI,SACjB,IAEFnD,EAAO0C,kBAAoB3lI,GAC3B,IAAIgnI,GAAc,GASdzsB,GAtNgB,GAuNhB0sB,GAAuB,CACzBtrH,KAAM,GACNlB,EAAG,EACH8+B,EAAG,EACH2tF,OAAQ,EACRC,OAAO,EACPC,OAAO,GAyBLC,GAAS,iEACb,SAASC,KAIP,IAHA,IAAI3rH,EAAO,GACPsc,EAAK,GAEFtc,KAAS,GACdsc,GAAMovG,GAAuB,GAAhB1sH,KAAK4sH,SAAgB,GAGpC,OAAOtvG,CACT,CACA,SAASuvG,GAAQlzB,GAGf,IAFA,IAAI/jD,EAAQ,GAEHjjD,GAAKgnG,GAAO,IAAIvwG,SAAW,EAAGuJ,KACrCijD,EAAMjjD,GAAKgnG,EAAIhnG,GAGjB,OAAOijD,CACT,CACA,SAASk3E,GAAWpgB,GAClB,OAAIA,EAAKljD,UACAqjE,GAAQngB,EAAKljD,YAEZkjD,EAAKloH,aAAa,UAAY,IAAI4I,MAAM,KAAKrF,QAAO,SAAU4K,GACpE,OAAOA,CACT,GAEJ,CACA,SAASo6H,GAAWxX,GAClB,MAAO,GAAGtnH,OAAOsnH,GAAKrlH,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAClI,CAMA,SAAS88H,GAAWrgI,GAClB,OAAOZ,OAAOC,KAAKW,GAAU,CAAC,GAAGgF,QAAO,SAAUijG,EAAK7D,GACrD,OAAO6D,EAAM,GAAG3mG,OAAO8iG,EAAW,MAAM9iG,OAAOtB,EAAOokG,GAAWt/F,OAAQ,IAC3E,GAAG,GACL,CACA,SAASw7H,GAAsBzlF,GAC7B,OAAOA,EAAUxmC,OAASsrH,GAAqBtrH,MAAQwmC,EAAU1nC,IAAMwsH,GAAqBxsH,GAAK0nC,EAAU5I,IAAM0tF,GAAqB1tF,GAAK4I,EAAU+kF,SAAWD,GAAqBC,QAAU/kF,EAAUglF,OAAShlF,EAAUilF,KAC9N,CA8CA,IAAInc,GAAa,o+qBAEjB,SAAShhG,KACP,IAAI49G,EAAMrE,EACNsE,EAAMrE,EACNsE,EAAK/nI,GAAOomI,UACZ4B,EAAKhoI,GAAOqmI,iBACZz5H,EAAIq+G,GAER,GAAI8c,IAAOF,GAAOG,IAAOF,EAAK,CAC5B,IAAIG,EAAQ,IAAIrV,OAAO,MAAMhqH,OAAOi/H,EAAK,OAAQ,KAC7CK,EAAiB,IAAItV,OAAO,OAAOhqH,OAAOi/H,EAAK,OAAQ,KACvDM,EAAQ,IAAIvV,OAAO,MAAMhqH,OAAOk/H,GAAM,KAC1Cl7H,EAAIA,EAAE/B,QAAQo9H,EAAO,IAAIr/H,OAAOm/H,EAAI,MAAMl9H,QAAQq9H,EAAgB,KAAKt/H,OAAOm/H,EAAI,MAAMl9H,QAAQs9H,EAAO,IAAIv/H,OAAOo/H,GACpH,CAEA,OAAOp7H,CACT,CAEA,IAAIw7H,IAAe,EAEnB,SAASC,KACHroI,GAAOumI,aAAe6B,KAvI5B,SAAmBn+G,GACjB,GAAKA,GAAQo5G,EAAb,CAIA,IAAI15H,EAAQu5H,EAASp+H,cAAc,SACnC6E,EAAM3E,aAAa,OAAQ,YAC3B2E,EAAM2+H,UAAYr+G,EAIlB,IAHA,IAAIs+G,EAAerF,EAASt+H,KAAKS,WAC7BmjI,EAAc,KAETl7H,EAAIi7H,EAAaxkI,OAAS,EAAGuJ,GAAK,EAAGA,IAAK,CACjD,IAAImS,EAAQ8oH,EAAaj7H,GACrBiS,GAAWE,EAAMF,SAAW,IAAI85E,cAEhC,CAAC,QAAS,QAAQvxF,QAAQyX,IAAY,IACxCipH,EAAc/oH,EAElB,CAEAyjH,EAASt+H,KAAKU,aAAaqE,EAAO6+H,EAjBlC,CAmBF,CAkHIC,CAAUx+G,MACVm+G,IAAe,EAEnB,CAEA,IAAIM,GAAY,CACdC,OAAQ,WACN,MAAO,CACLC,IAAK,CACH3+G,IAAKA,GACLw+G,UAAWJ,IAGjB,EACAQ,MAAO,WACL,MAAO,CACLC,yBAA0B,WACxBT,IACF,EACAU,YAAa,WACXV,IACF,EAEJ,GAGEt5F,GAAIk0F,GAAU,CAAC,EACdl0F,GAAEw0F,KAAuBx0F,GAAEw0F,GAAwB,CAAC,GACpDx0F,GAAEw0F,GAAsBj8H,SAAQynC,GAAEw0F,GAAsBj8H,OAAS,CAAC,GAClEynC,GAAEw0F,GAAsBsF,QAAO95F,GAAEw0F,GAAsBsF,MAAQ,CAAC,GAChE95F,GAAEw0F,GAAsByF,QAAOj6F,GAAEw0F,GAAsByF,MAAQ,IACpE,IAAI9nI,GAAY6tC,GAAEw0F,GAEd/hB,GAAY,GAUZ/3C,IAAS,EAYb,SAASw/D,GAAOC,GACd,IAAInsH,EAAMmsH,EAAcnsH,IACpBosH,EAAwBD,EAAcE,WACtCA,OAAuC,IAA1BD,EAAmC,CAAC,EAAIA,EACrDE,EAAwBH,EAActrH,SACtCA,OAAqC,IAA1ByrH,EAAmC,GAAKA,EAEvD,MAA6B,iBAAlBH,EACFxB,GAAWwB,GAEX,IAAItgI,OAAOmU,EAAK,KAAKnU,OAlJhC,SAAwBwgI,GACtB,OAAO1iI,OAAOC,KAAKyiI,GAAc,CAAC,GAAG98H,QAAO,SAAUijG,EAAKrqB,GACzD,OAAOqqB,EAAM,GAAG3mG,OAAOs8E,EAAe,MAAOt8E,OAAO8+H,GAAW0B,EAAWlkD,IAAiB,KAC7F,GAAG,IAAI94E,MACT,CA8IuCk9H,CAAeF,GAAa,KAAKxgI,OAAOgV,EAAS3W,IAAIgiI,IAAQ3kI,KAAK,IAAK,MAAMsE,OAAOmU,EAAK,IAEhI,CAEA,SAASwsH,GAAgBC,EAASpmH,EAAQoI,GACxC,GAAIg+G,GAAWA,EAAQpmH,IAAWomH,EAAQpmH,GAAQoI,GAChD,MAAO,CACLpI,OAAQA,EACRoI,SAAUA,EACVhD,KAAMghH,EAAQpmH,GAAQoI,GAG5B,CAhCI63G,KACF55D,IAAUy5D,EAAShkI,gBAAgBuqI,SAAW,aAAe,iBAAiB/pI,KAAKwjI,EAASwG,cAC/ExG,EAAS/mH,iBAAiB,oBAZ1B,SAASwtH,IACtBzG,EAASrmH,oBAAoB,mBAAoB8sH,GACjDlgE,GAAS,EACT+3C,GAAUv6G,KAAI,SAAUq+D,GACtB,OAAOA,GACT,GACF,KA2CA,IAmBIh5D,GAAS,SAA0Bs9H,EAAStkE,EAAI/iD,EAAcsnH,GAChE,IAGIv8H,EACArK,EACA1E,EALAoI,EAAOD,OAAOC,KAAKijI,GACnB7lI,EAAS4C,EAAK5C,OACd68H,OAA2B5hI,IAAhB6qI,EAtBG,SAAuBl3B,EAAMk3B,GAC/C,OAAO,SAAU7lD,EAAGq2B,EAAGC,EAAGC,GACxB,OAAO5H,EAAK19F,KAAK40H,EAAa7lD,EAAGq2B,EAAGC,EAAGC,EACzC,CACF,CAkB6CuvB,CAAcxkE,EAAIukE,GAAevkE,EAa5E,SARqBtmE,IAAjBujB,GACFjV,EAAI,EACJ/O,EAASqrI,EAAQjjI,EAAK,MAEtB2G,EAAI,EACJ/O,EAASgkB,GAGJjV,EAAIvJ,EAAQuJ,IAEjB/O,EAASqiI,EAASriI,EAAQqrI,EAD1B3mI,EAAM0D,EAAK2G,IAC6BrK,EAAK2mI,GAG/C,OAAOrrI,CACT,EAoDA,SAASwrI,GAAMC,GACb,IAAIC,EA3BN,SAAoBC,GAKlB,IAJA,IAAIC,EAAS,GACT9oI,EAAU,EACV0C,EAASmmI,EAAOnmI,OAEb1C,EAAU0C,GAAQ,CACvB,IAAIiG,EAAQkgI,EAAOzqC,WAAWp+F,KAE9B,GAAI2I,GAAS,OAAUA,GAAS,OAAU3I,EAAU0C,EAAQ,CAC1D,IAAIqmI,EAAQF,EAAOzqC,WAAWp+F,KAEN,QAAX,MAAR+oI,GAEHD,EAAO1nI,OAAe,KAARuH,IAAkB,KAAe,KAARogI,GAAiB,QAExDD,EAAO1nI,KAAKuH,GACZ3I,IAEJ,MACE8oI,EAAO1nI,KAAKuH,EAEhB,CAEA,OAAOmgI,CACT,CAGgBE,CAAWL,GACzB,OAA0B,IAAnBC,EAAQlmI,OAAekmI,EAAQ,GAAGj1G,SAAS,IAAM,IAC1D,CAiBA,SAASs1G,GAAep5B,GACtB,OAAOxqG,OAAOC,KAAKuqG,GAAO5kG,QAAO,SAAUijG,EAAK/jF,GAC9C,IAAIhD,EAAO0oF,EAAM1lF,GASjB,OARiBhD,EAAKA,KAGpB+mF,EAAI/mF,EAAKgD,UAAYhD,EAAKA,KAE1B+mF,EAAI/jF,GAAYhD,EAGX+mF,CACT,GAAG,CAAC,EACN,CAEA,SAASg7B,GAAYnnH,EAAQ8tF,GAC3B,IACIs5B,GADS5kI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACnD6kI,UAC3BA,OAAkC,IAAtBD,GAAuCA,EACnDE,EAAaJ,GAAep5B,GAEO,mBAA5BhwG,GAAU2nI,MAAM8B,SAA2BF,EAGpDvpI,GAAUoG,OAAO8b,GAAUk9G,EAAeA,EAAe,CAAC,EAAGp/H,GAAUoG,OAAO8b,IAAW,CAAC,GAAIsnH,GAF9FxpI,GAAU2nI,MAAM8B,QAAQvnH,EAAQknH,GAAep5B,IAYlC,QAAX9tF,GACFmnH,GAAY,KAAMr5B,EAEtB,CAEA,IAaI05B,GAAaC,GAAWC,GACxBxjI,GAASpG,GAAUoG,OACnB0hI,GAAQ9nI,GAAU8nI,MAClB+B,IAAgCxK,EAAlBqK,GAAc,CAAC,EAAgCzG,EAAgBz9H,OAAOuxF,OAAOysC,EAAqBP,KAAmB5D,EAAgBqK,GAAaxG,EAAc19H,OAAOuxF,OAAOysC,EAAqBN,KAAiBwG,IAClOI,GAAuB,KACvBC,GAAa,CAAC,EACdC,GAAc,CAAC,EACfC,GAAa,CAAC,EACdC,GAAgB,CAAC,EACjBC,GAAW,CAAC,EACZC,IAA4B/K,EAAhBsK,GAAY,CAAC,EAA8B1G,EAAgBz9H,OAAOC,KAAK69H,EAAgBL,KAAmB5D,EAAgBsK,GAAWzG,EAAc19H,OAAOC,KAAK69H,EAAgBJ,KAAiByG,IAiBhN,IA7akBloI,GA6ad4oI,GAAQ,WACV,IAAIC,EAAS,SAAgBC,GAC3B,OAAOn/H,GAAOhF,IAAQ,SAAUyzG,EAAGpxG,EAAOyZ,GAExC,OADA23F,EAAE33F,GAAU9W,GAAO3C,EAAO8hI,EAAS,CAAC,GAC7B1wB,CACT,GAAG,CAAC,EACN,EAEAkwB,GAAaO,GAAO,SAAUj8B,EAAK/mF,EAAMgD,GAcvC,OAbIhD,EAAK,KACP+mF,EAAI/mF,EAAK,IAAMgD,GAGbhD,EAAK,IACOA,EAAK,GAAG9lB,QAAO,SAAUshF,GACrC,MAAoB,iBAANA,CAChB,IACQ7/E,SAAQ,SAAUunI,GACxBn8B,EAAIm8B,EAAM12G,SAAS,KAAOxJ,CAC5B,IAGK+jF,CACT,IACA27B,GAAcM,GAAO,SAAUj8B,EAAK/mF,EAAMgD,GAYxC,OAXA+jF,EAAI/jF,GAAYA,EAEZhD,EAAK,IACOA,EAAK,GAAG9lB,QAAO,SAAUshF,GACrC,MAAoB,iBAANA,CAChB,IACQ7/E,SAAQ,SAAUunI,GACxBn8B,EAAIm8B,GAASlgH,CACf,IAGK+jF,CACT,IACA87B,GAAWG,GAAO,SAAUj8B,EAAK/mF,EAAMgD,GACrC,IAAImgH,EAAUnjH,EAAK,GAKnB,OAJA+mF,EAAI/jF,GAAYA,EAChBmgH,EAAQxnI,SAAQ,SAAUunI,GACxBn8B,EAAIm8B,GAASlgH,CACf,IACO+jF,CACT,IAGA,IAAIq8B,EAAa,QAAStkI,IAAUtH,GAAO6rI,aACvCC,EAAcx/H,GAAO08H,IAAO,SAAUz5B,EAAKw8B,GAC7C,IAAIC,EAAwBD,EAAK,GAC7B3oH,EAAS2oH,EAAK,GACdvgH,EAAWugH,EAAK,GAoBpB,MAlBe,QAAX3oH,GAAqBwoH,IACvBxoH,EAAS,OAG0B,iBAA1B4oH,IACTz8B,EAAI31E,MAAMoyG,GAAyB,CACjC5oH,OAAQA,EACRoI,SAAUA,IAIuB,iBAA1BwgH,IACTz8B,EAAI08B,SAASD,EAAsBh3G,SAAS,KAAO,CACjD5R,OAAQA,EACRoI,SAAUA,IAIP+jF,CACT,GAAG,CACD31E,MAAO,CAAC,EACRqyG,SAAU,CAAC,IAEbd,GAAaW,EAAYlyG,MACzBwxG,GAAgBU,EAAYG,SAC5BjB,GAAuBkB,GAAmBlsI,GAAOkmI,aAAc,CAC7DiG,OAAQnsI,GAAOmmI,eAEnB,EAOA,SAASiG,GAAUhpH,EAAQ4mH,GACzB,OAAQiB,GAAW7nH,IAAW,CAAC,GAAG4mH,EACpC,CAIA,SAASqC,GAAQjpH,EAAQsoH,GACvB,OAAQL,GAASjoH,IAAW,CAAC,GAAGsoH,EAClC,CACA,SAASY,GAAUnkI,GACjB,OAAOgjI,GAAWhjI,IAAS,CACzBib,OAAQ,KACRoI,SAAU,KAEd,CAYA,SAAS+gH,KACP,OAAOvB,EACT,CAliBkBroI,GAggBT,SAAU23G,GACjB0wB,GAAuBkB,GAAmB5xB,EAAE4rB,aAAc,CACxDiG,OAAQnsI,GAAOmmI,eAEnB,EAngBEa,GAAYvkI,KAAKE,IAogBnB4oI,KA8BA,IAAIiB,GAAqB,WACvB,MAAO,CACLppH,OAAQ,KACRoI,SAAU,KACVsgB,KAAM,GAEV,EACA,SAASogG,GAAmBO,GAC1B,IACIC,GADS9mI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtDumI,OACxBA,OAA4B,IAAnBO,EAA4BvI,EAAiBuI,EACtD/iI,EAAQ66H,EAAgB2H,GAAQM,GAChCrpH,EAASqhH,EAAgB0H,GAAQM,IAAkBhI,EAAgB0H,GAAQxiI,GAC3EgjI,EAAUF,KAAiBvrI,GAAUoG,OAASmlI,EAAgB,KAClE,OAAOrpH,GAAUupH,GAAW,IAC9B,CACA,IAAIC,IAAkDrM,EAA3BuK,GAAuB,CAAC,EAAyC3G,EAAgBz9H,OAAOC,KAAK+9H,EAAqBP,KAAmB5D,EAAgBuK,GAAsB1G,EAAc19H,OAAOC,KAAK+9H,EAAqBN,KAAiB0G,IACtQ,SAAS+B,GAAiB50C,GACxB,IAAI60C,EAGAC,GADSnnI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACjDonI,YAC7BA,OAAsC,IAAxBD,GAAyCA,EACvDE,GAA4B1M,EAAhBuM,EAAY,CAAC,EAA8B3I,EAAgB,GAAGv7H,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAOu7H,IAAkB5D,EAAgBuM,EAAW1I,EAAc,GAAGx7H,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAOw7H,IAAgB0I,GAClOI,EAAc,KACdf,EAAShI,GAETlsC,EAAOk1C,SAASF,EAAS9I,KAAoBlsC,EAAO3wD,MAAK,SAAUn7B,GACrE,OAAOygI,GAAoBzI,GAAgBgJ,SAAShhI,EACtD,OACEggI,EAAShI,IAGPlsC,EAAOk1C,SAASF,EAAS7I,KAAkBnsC,EAAO3wD,MAAK,SAAUn7B,GACnE,OAAOygI,GAAoBxI,GAAc+I,SAAShhI,EACpD,OACEggI,EAAS/H,GAGX,IAAIgJ,EAAYn1C,EAAO3rF,QAAO,SAAUijG,EAAK89B,GAC3C,IAAI7hH,EAzKR,SAAqB46G,EAAWiH,GAC9B,IALkBllI,EAKd4C,EAAQsiI,EAAItlI,MAAM,KAClBqb,EAASrY,EAAM,GACfygB,EAAWzgB,EAAM2B,MAAM,GAAGpI,KAAK,KAEnC,OAAI8e,IAAWgjH,GAA0B,KAAb56G,IATVrjB,EASyCqjB,GARnDi6G,GAAiB39H,QAAQK,IAWxB,KAFAqjB,CAIX,CA+JmB8hH,CAAYttI,GAAOomI,UAAWiH,GAiB7C,GAfI/lI,GAAO+lI,IACTA,EAAMtC,GAAWoB,GAAQgB,SAASE,GAAO1I,EAAqBwH,GAAQkB,GAAOA,EAC7EH,EAAcG,EACd99B,EAAInsF,OAASiqH,GACJ/B,GAASa,GAAQrkI,QAAQulI,IAAQ,GAC1CH,EAAcG,EACd99B,EAAInsF,OAAS8oH,GAAmBmB,EAAK,CACnClB,OAAQA,KAED3gH,EACT+jF,EAAI/jF,SAAWA,EACN6hH,IAAQrtI,GAAOqmI,kBAAoBgH,IAAQJ,EAAS9I,IAAmBkJ,IAAQJ,EAAS7I,IACjG70B,EAAIzjE,KAAKrpC,KAAK4qI,IAGXL,GAAez9B,EAAInsF,QAAUmsF,EAAI/jF,SAAU,CAC9C,IAAIugH,EAAuB,OAAhBmB,EAAuBZ,GAAU/8B,EAAI/jF,UAAY,CAAC,EACzD+hH,EAAgBlB,GAAQ98B,EAAInsF,OAAQmsF,EAAI/jF,UAExCugH,EAAK3oH,SACP8pH,EAAc,MAGhB39B,EAAI/jF,SAAWugH,EAAKvgH,UAAY+hH,GAAiBh+B,EAAI/jF,SACrD+jF,EAAInsF,OAAS2oH,EAAK3oH,QAAUmsF,EAAInsF,OAEb,QAAfmsF,EAAInsF,QAAqB9b,GAAY,MAAKA,GAAY,KAAMtH,GAAO6rI,eAGrEt8B,EAAInsF,OAAS,MAEjB,CAEA,OAAOmsF,CACT,GAAGi9B,MAqBH,OAnBIv0C,EAAOk1C,SAAS,cAAgBl1C,EAAOk1C,SAAS,UAClDC,EAAUhqH,OAAS,QAGjB60E,EAAOk1C,SAAS,eAAiBl1C,EAAOk1C,SAAS,UACnDC,EAAUhqH,OAAS,OAGhBgqH,EAAUhqH,QAAU+oH,IAAW/H,IAAiB98H,GAAa,OAAKtH,GAAO6rI,eAC5EuB,EAAUhqH,OAAS,OACnBgqH,EAAU5hH,SAAW6gH,GAAQe,EAAUhqH,OAAQgqH,EAAU5hH,WAAa4hH,EAAU5hH,UAGzD,OAArB4hH,EAAUhqH,QAAmC,OAAhB8pH,IAG/BE,EAAUhqH,OAASmpH,MAA4B,OAG1Ca,CACT,CAEA,IAAII,GAAuB,WACzB,SAASA,KAngCX,SAAyBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIlM,UAAU,oCAExB,CAggCImM,CAAgBptI,KAAMitI,GAEtBjtI,KAAKqtI,YAAc,CAAC,CACtB,CAv/BF,IAAsBF,EAAaG,EA6iCjC,OA7iCoBH,EAy/BPF,EAz/BoBK,EAy/BX,CAAC,CACrB5qI,IAAK,MACL+G,MAAO,WAGL,IAFA,IAAIxH,EAAQjC,KAEHutI,EAAOloI,UAAU7B,OAAQ6pI,EAAc,IAAIpnI,MAAMsnI,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACtFH,EAAYG,GAAQnoI,UAAUmoI,GAGhC,IAAIC,EAAYJ,EAAYthI,OAAO/L,KAAK0tI,iBAAkB,CAAC,GAC3DvnI,OAAOC,KAAKqnI,GAAW7pI,SAAQ,SAAUlB,GACvCT,EAAMorI,YAAY3qI,GAAOq9H,EAAeA,EAAe,CAAC,EAAG99H,EAAMorI,YAAY3qI,IAAQ,CAAC,GAAI+qI,EAAU/qI,IACpGsnI,GAAYtnI,EAAK+qI,EAAU/qI,IAE3B,IAAIirI,EAAaxJ,EAAqBP,GAAgBlhI,GAClDirI,GAAY3D,GAAY2D,EAAYF,EAAU/qI,IAClDsoI,IACF,GACF,GACC,CACDtoI,IAAK,QACL+G,MAAO,WACLzJ,KAAKqtI,YAAc,CAAC,CACtB,GACC,CACD3qI,IAAK,mBACL+G,MAAO,SAA0BgkI,EAAWG,GAC1C,IAAIzD,EAAayD,EAAW/qH,QAAU+qH,EAAW3iH,UAAY2iH,EAAW3lH,KAAO,CAC7E,EAAG2lH,GACDA,EAmBJ,OAlBAznI,OAAOC,KAAK+jI,GAAYzjI,KAAI,SAAUhE,GACpC,IAAImrI,EAAkB1D,EAAWznI,GAC7BmgB,EAASgrH,EAAgBhrH,OACzBoI,EAAW4iH,EAAgB5iH,SAC3BhD,EAAO4lH,EAAgB5lH,KACvBmjH,EAAUnjH,EAAK,GACdwlH,EAAU5qH,KAAS4qH,EAAU5qH,GAAU,CAAC,GAEzCuoH,EAAQ5nI,OAAS,GACnB4nI,EAAQxnI,SAAQ,SAAUunI,GACH,iBAAVA,IACTsC,EAAU5qH,GAAQsoH,GAASljH,EAE/B,IAGFwlH,EAAU5qH,GAAQoI,GAAYhD,CAChC,IACOwlH,CACT,IAziCEH,GAAYhN,EAAkB6M,EAAYzrI,UAAW4rI,GAEzDnnI,OAAO8X,eAAekvH,EAAa,YAAa,CAC9C5M,UAAU,IAyiCL0M,CACT,CA5D2B,GA8DvBa,GAAW,GACXC,GAAS,CAAC,EACVC,GAAY,CAAC,EACbC,GAAsB9nI,OAAOC,KAAK4nI,IA+CtC,SAASE,GAAWC,EAAMC,GACxB,IAAK,IAAIb,EAAOloI,UAAU7B,OAAQb,EAAO,IAAIsD,MAAMsnI,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClG7qI,EAAK6qI,EAAO,GAAKnoI,UAAUmoI,GAO7B,OAJcO,GAAOI,IAAS,IACtBvqI,SAAQ,SAAUyqI,GACxBD,EAAcC,EAAO5nI,MAAM,KAAM,CAAC2nI,GAAa/lI,OAAO1F,GACxD,IACOyrI,CACT,CACA,SAASE,GAAUH,GACjB,IAAK,IAAII,EAAQlpI,UAAU7B,OAAQb,EAAO,IAAIsD,MAAMsoI,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG7rI,EAAK6rI,EAAQ,GAAKnpI,UAAUmpI,IAGhBT,GAAOI,IAAS,IACtBvqI,SAAQ,SAAUyqI,GACxBA,EAAO5nI,MAAM,KAAM9D,EACrB,GAEF,CACA,SAAS8rI,KACP,IAAIN,EAAO9oI,UAAU,GACjB1C,EAAOsD,MAAMvE,UAAUyK,MAAMuI,KAAKrP,UAAW,GACjD,OAAO2oI,GAAUG,GAAQH,GAAUG,GAAM1nI,MAAM,KAAM9D,QAAQlE,CAC/D,CAEA,SAASiwI,GAAmBC,GACA,OAAtBA,EAAW9rH,SACb8rH,EAAW9rH,OAAS,OAGtB,IAAIoI,EAAW0jH,EAAW1jH,SACtBpI,EAAS8rH,EAAW9rH,QAAUmpH,KAClC,GAAK/gH,EAEL,OADAA,EAAW6gH,GAAQjpH,EAAQoI,IAAaA,EACjC+9G,GAAgB4F,GAAQvB,YAAaxqH,EAAQoI,IAAa+9G,GAAgBroI,GAAUoG,OAAQ8b,EAAQoI,EAC7G,CACA,IAAI2jH,GAAU,IAAI3B,GAMd5E,GAAM,CACRwG,MAAO,WACL,IAAIC,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElF,OAAIy9H,GACFwL,GAAU,cAAeQ,GACzBL,GAAa,qBAAsBK,GAC5BL,GAAa,QAASK,IAEtBrvF,QAAQsvF,OAAO,yCAE1B,EACAC,MAAO,WACL,IAtmBejqE,EAsmBX+pE,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E4pI,EAAqBH,EAAOG,oBAEF,IAA1BxvI,GAAOsmI,iBACTtmI,GAAOsmI,gBAAiB,GAG1BtmI,GAAO0mI,kBAAmB,EA7mBXphE,EA8mBN,WACPmqE,GAAY,CACVD,mBAAoBA,IAEtBX,GAAU,QAASQ,EACrB,EAlnBGhM,IACL55D,GAAS1tC,WAAWupC,EAAI,GAAKk8C,GAAU/+G,KAAK6iE,GAknB5C,GA4CEoqE,GAAM,CACRC,OA7EW,WACX3vI,GAAOsmI,gBAAiB,EACxBtmI,GAAO0mI,kBAAmB,EAC1BmI,GAAU,SACZ,EA0EE7uI,OAAQA,GACR4oI,IAAKA,GACL1T,MA9CU,CACV1sG,KAAM,SAAconH,GAClB,GAAc,OAAVA,EACF,OAAO,KAGT,GAAuB,WAAnBlP,EAAQkP,IAAuBA,EAAMxsH,QAAUwsH,EAAMpkH,SACvD,MAAO,CACLpI,OAAQwsH,EAAMxsH,OACdoI,SAAU6gH,GAAQuD,EAAMxsH,OAAQwsH,EAAMpkH,WAAaokH,EAAMpkH,UAI7D,GAAIhlB,MAAMC,QAAQmpI,IAA2B,IAAjBA,EAAM7rI,OAAc,CAC9C,IAAIynB,EAAuC,IAA5BokH,EAAM,GAAG9nI,QAAQ,OAAe8nI,EAAM,GAAGljI,MAAM,GAAKkjI,EAAM,GACrExsH,EAAS8oH,GAAmB0D,EAAM,IACtC,MAAO,CACLxsH,OAAQA,EACRoI,SAAU6gH,GAAQjpH,EAAQoI,IAAaA,EAE3C,CAEA,GAAqB,iBAAVokH,IAAuBA,EAAM9nI,QAAQ,GAAGc,OAAO5I,GAAOomI,UAAW,OAAS,GAAKwJ,EAAM3jI,MAAM24H,IAAiC,CACrI,IAAIiL,EAAgBhD,GAAiB+C,EAAM7nI,MAAM,KAAM,CACrDilI,aAAa,IAEf,MAAO,CACL5pH,OAAQysH,EAAczsH,QAAUmpH,KAChC/gH,SAAU6gH,GAAQwD,EAAczsH,OAAQysH,EAAcrkH,WAAaqkH,EAAcrkH,SAErF,CAEA,GAAqB,iBAAVokH,EAAoB,CAC7B,IAAIE,EAAUvD,KAEd,MAAO,CACLnpH,OAAQ0sH,EACRtkH,SAAU6gH,GAAQyD,EAASF,IAAUA,EAEzC,CACF,GAOAT,QAASA,GACTF,mBAAoBA,GACpBhG,OAAQA,IAGNwG,GAAc,WAChB,IACIM,GADSnqI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC/C4pI,mBAC/BA,OAA+C,IAA1BO,EAAmC7M,EAAW6M,GAClErpI,OAAOC,KAAKzF,GAAUoG,QAAQvD,OAAS,GAAK/D,GAAO6rI,eAAiBxI,GAAUrjI,GAAOsmI,gBAAgBoJ,GAAI9G,IAAIwG,MAAM,CACtH/nB,KAAMmoB,GAEV,EAEA,SAASQ,GAAYxpB,EAAKypB,GAmBxB,OAlBAvpI,OAAO8X,eAAegoG,EAAK,WAAY,CACrC/nG,IAAKwxH,IAEPvpI,OAAO8X,eAAegoG,EAAK,OAAQ,CACjC/nG,IAAK,WACH,OAAO+nG,EAAI0pB,SAASjpI,KAAI,SAAU+8E,GAChC,OAAOilD,GAAOjlD,EAChB,GACF,IAEFt9E,OAAO8X,eAAegoG,EAAK,OAAQ,CACjC/nG,IAAK,WACH,GAAK4kH,EAAL,CACA,IAAIh7F,EAAY66F,EAASp+H,cAAc,OAEvC,OADAujC,EAAUigG,UAAY9hB,EAAIp2G,KACnBi4B,EAAUzqB,QAHE,CAIrB,IAEK4oG,CACT,CAmDA,SAAS2pB,GAAsBd,GAC7B,IAAIe,EAAgBf,EAAOn+B,MACvBj+C,EAAOm9E,EAAcn9E,KACrBo9E,EAAOD,EAAcC,KACrBjtH,EAASisH,EAAOjsH,OAChBoI,EAAW6jH,EAAO7jH,SAClB22B,EAAYktF,EAAOltF,UACnBmuF,EAASjB,EAAOiB,OAChBxmH,EAAQulH,EAAOvlH,MACfymH,EAASlB,EAAOkB,OAChBC,EAAUnB,EAAOmB,QACjBpG,EAAQiF,EAAOjF,MACfqG,EAAoBpB,EAAOqB,UAC3BA,OAAkC,IAAtBD,GAAuCA,EAEnD7K,EAAOyK,EAAKM,MAAQN,EAAOp9E,EAC3B/3C,EAAQ0qH,EAAK1qH,MACbkG,EAASwkH,EAAKxkH,OAEdwvH,EAA4B,QAAXxtH,EACjBytH,EAAY,CAAC7wI,GAAOqmI,iBAAkB76G,EAAW,GAAG5iB,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAO4iB,GAAY,IAAI9oB,QAAO,SAAU43G,GAC5H,OAAqC,IAA9B8vB,EAAM5iI,QAAQM,QAAQwyG,EAC/B,IAAG53G,QAAO,SAAU43G,GAClB,MAAa,KAANA,KAAcA,CACvB,IAAG1xG,OAAOwhI,EAAM5iI,SAASlD,KAAK,KAC1BshC,EAAU,CACZhoB,SAAU,GACVwrH,WAAY9I,EAAeA,EAAe,CAAC,EAAG8J,EAAMhB,YAAa,CAAC,EAAG,CACnE,cAAehmH,EACf,YAAaoI,EACb,MAASqlH,EACT,KAAQzG,EAAMhB,WAAWnwG,MAAQ,MACjC,MAAS,6BACT,QAAW,OAAOrwB,OAAOsS,EAAO,KAAKtS,OAAOwY,MAG5C0vH,EAAyBF,KAAoBxG,EAAM5iI,QAAQM,QAAQ,SAAW,CAChFoT,MAAO,GAAGtS,OAAOsS,EAAQkG,EAAS,GAAK,MAAQ,OAC7C,CAAC,EAEDsvH,IACF9qG,EAAQwjG,WAAW1F,GAAiB,IAGlC55G,IACF8b,EAAQhoB,SAASnb,KAAK,CACpBsa,IAAK,QACLqsH,WAAY,CACVnxG,GAAI2N,EAAQwjG,WAAW,oBAAsB,SAASxgI,OAAO4nI,GAAWlJ,OAE1E1pH,SAAU,CAACkM,YAEN8b,EAAQwjG,WAAWt/G,OAG5B,IAAI5mB,EAAOo9H,EAAeA,EAAe,CAAC,EAAG16F,GAAU,CAAC,EAAG,CACzDxiB,OAAQA,EACRoI,SAAUA,EACVynC,KAAMA,EACNo9E,KAAMA,EACNE,OAAQA,EACRpuF,UAAWA,EACXmuF,OAAQA,EACRhpI,OAAQg5H,EAAeA,EAAe,CAAC,EAAGwQ,GAAyB1G,EAAM9iI,UAGvEu+H,EAAQwK,EAAKM,OAAS19E,EAAK09E,MAAQ3B,GAAa,uBAAwB9rI,IAAS,CACnF0a,SAAU,GACVwrH,WAAY,CAAC,GACX4F,GAAa,uBAAwB9rI,IAAS,CAChD0a,SAAU,GACVwrH,WAAY,CAAC,GAEXxrH,EAAWioH,EAAMjoH,SACjBwrH,EAAavD,EAAMuD,WAKvB,OAHAlmI,EAAK0a,SAAWA,EAChB1a,EAAKkmI,WAAaA,EAEdkH,EArGN,SAAmB1K,GACjB,IAAIxiH,EAASwiH,EAAKxiH,OACdoI,EAAWo6G,EAAKp6G,SAChB5N,EAAWgoH,EAAKhoH,SAChBwrH,EAAaxD,EAAKwD,WAClBkH,EAAS1K,EAAK0K,OACdr4G,GAAgB,IAAXq4G,EAAkB,GAAG1nI,OAAOwa,EAAQ,KAAKxa,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAO4iB,GAAY8kH,EACnG,MAAO,CAAC,CACNvzH,IAAK,MACLqsH,WAAY,CACVz/H,MAAO,kBAETiU,SAAU,CAAC,CACTb,IAAK,SACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAG8I,GAAa,CAAC,EAAG,CAC7DnxG,GAAIA,IAENra,SAAUA,KAGhB,CAkFWmzH,CAAS7tI,GAjIpB,SAAiB0iI,GACf,IAAIhoH,EAAWgoH,EAAKhoH,SAChBq1C,EAAO2yE,EAAK3yE,KACZo9E,EAAOzK,EAAKyK,KACZjH,EAAaxD,EAAKwD,WAClB9hI,EAASs+H,EAAKt+H,OACd66C,EAAYyjF,EAAKzjF,UAErB,GAAIylF,GAAsBzlF,IAAc8Q,EAAK09E,QAAUN,EAAKM,MAAO,CACjE,IAEIxpF,EAAS,CACX1sC,EAHUw4C,EAAK/3C,MACJ+3C,EAAK7xC,OAEI,EACpBm4B,EAAG,IAEL6vF,EAAkB,MAAIzB,GAAWrH,EAAeA,EAAe,CAAC,EAAGh5H,GAAS,CAAC,EAAG,CAC9E,mBAAoB,GAAGsB,OAAOu+C,EAAO1sC,EAAI0nC,EAAU1nC,EAAI,GAAI,OAAO7R,OAAOu+C,EAAO5N,EAAI4I,EAAU5I,EAAI,GAAI,QAE1G,CAEA,MAAO,CAAC,CACNx8B,IAAK,MACLqsH,WAAYA,EACZxrH,SAAUA,GAEd,CA0GWozH,CAAO9tI,EAElB,CACA,SAAS+tI,GAAuB5B,GAC9B,IAAIzpG,EAAUypG,EAAOzpG,QACjB1qB,EAAQm0H,EAAOn0H,MACfkG,EAASiuH,EAAOjuH,OAChB+gC,EAAYktF,EAAOltF,UACnBr4B,EAAQulH,EAAOvlH,MACfsgH,EAAQiF,EAAOjF,MACf8G,EAAqB7B,EAAOqB,UAC5BA,OAAmC,IAAvBQ,GAAwCA,EAEpD9H,EAAa9I,EAAeA,EAAeA,EAAe,CAAC,EAAG8J,EAAMhB,YAAat/G,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASsgH,EAAM5iI,QAAQlD,KAAK,OAG1BosI,IACFtH,EAAW1F,GAAiB,IAG9B,IAAIp8H,EAASg5H,EAAe,CAAC,EAAG8J,EAAM9iI,QAElCsgI,GAAsBzlF,KACxB76C,EAAkB,UAt8BtB,SAAyBu+H,GACvB,IAAI1jF,EAAY0jF,EAAM1jF,UAClBgvF,EAActL,EAAM3qH,MACpBA,OAAwB,IAAhBi2H,EA5TM,GA4TmCA,EACjDC,EAAevL,EAAMzkH,OACrBA,OAA0B,IAAjBgwH,EA9TK,GA8TqCA,EACnDC,EAAsBxL,EAAMyL,cAC5BA,OAAwC,IAAxBD,GAAyCA,EACzD7qB,EAAM,GAYV,OATEA,GADE8qB,GAAiBhO,EACZ,aAAa16H,OAAOu5C,EAAU1nC,EAAI8/F,GAAIr/F,EAAQ,EAAG,QAAQtS,OAAOu5C,EAAU5I,EAAIghE,GAAIn5F,EAAS,EAAG,QAC5FkwH,EACF,yBAAyB1oI,OAAOu5C,EAAU1nC,EAAI8/F,GAAG,qBAAqB3xG,OAAOu5C,EAAU5I,EAAIghE,GAAG,SAE9F,aAAa3xG,OAAOu5C,EAAU1nC,EAAI8/F,GAAG,QAAQ3xG,OAAOu5C,EAAU5I,EAAIghE,GAAG,SAG9EiM,GAAO,SAAS59G,OAAOu5C,EAAUxmC,KAAO4+F,IAAKp4D,EAAUglF,OAAS,EAAI,GAAI,MAAMv+H,OAAOu5C,EAAUxmC,KAAO4+F,IAAKp4D,EAAUilF,OAAS,EAAI,GAAI,OAC/H,UAAUx+H,OAAOu5C,EAAU+kF,OAAQ,QAE5C,CAi7B0BqK,CAAgB,CACpCpvF,UAAWA,EACXmvF,eAAe,EACfp2H,MAAOA,EACPkG,OAAQA,IAEV9Z,EAAO,qBAAuBA,EAAkB,WAGlD,IAAIkqI,EAAc7J,GAAWrgI,GAEzBkqI,EAAYztI,OAAS,IACvBqlI,EAAkB,MAAIoI,GAGxB,IAAIhrB,EAAM,GAiBV,OAhBAA,EAAI/jH,KAAK,CACPsa,IAAK,OACLqsH,WAAYA,EACZxrH,SAAU,CAACgoB,KAGT9b,GACF08F,EAAI/jH,KAAK,CACPsa,IAAK,OACLqsH,WAAY,CACVqI,MAAO,WAET7zH,SAAU,CAACkM,KAIR08F,CACT,CAsCA,IAAIkrB,GAAWxwI,GAAUoG,OACzB,SAASqqI,GAAYnpH,GACnB,IAAItN,EAAQsN,EAAK,GACbpH,EAASoH,EAAK,GAIdopH,EADe7Q,EADDv4G,EAAK9b,MAAM,GACkB,GACjB,GAoC9B,MAAO,CACLikI,OAAO,EACPz1H,MAAOA,EACPkG,OAAQA,EACRoH,KApCEhiB,MAAMC,QAAQmrI,GACN,CACR70H,IAAK,IACLqsH,WAAY,CACVqI,MAAO,GAAG7oI,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAOu8H,GAAgBC,QAEjExnH,SAAU,CAAC,CACTb,IAAK,OACLqsH,WAAY,CACVqI,MAAO,GAAG7oI,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAOu8H,GAAgBI,WAC/DsM,KAAM,eACNt3B,EAAGq3B,EAAW,KAEf,CACD70H,IAAK,OACLqsH,WAAY,CACVqI,MAAO,GAAG7oI,OAAO5I,GAAOomI,UAAW,KAAKx9H,OAAOu8H,GAAgBG,SAC/DuM,KAAM,eACNt3B,EAAGq3B,EAAW,OAKV,CACR70H,IAAK,OACLqsH,WAAY,CACVyI,KAAM,eACNt3B,EAAGq3B,IAWX,CACA,IAAIE,GAA6B,CAC/BnB,OAAO,EACPz1H,MAAO,IACPkG,OAAQ,KASV,SAAS2wH,GAASvmH,EAAUpI,GAC1B,IAAI8pH,EAAc9pH,EAMlB,MAJe,OAAXA,GAA2C,OAAxBpjB,GAAOkmI,eAC5B9iH,EAASmpH,MAGJ,IAAIvsF,SAAQ,SAAUC,EAASqvF,GAQpC,GAHQN,GAAa,uBAGD,OAAhB9B,EAAsB,CACxB,IAAInB,EAAOO,GAAU9gH,IAAa,CAAC,EACnCA,EAAWugH,EAAKvgH,UAAYA,EAC5BpI,EAAS2oH,EAAK3oH,QAAUA,CAC1B,CAEA,GAAIoI,GAAYpI,GAAUsuH,GAAStuH,IAAWsuH,GAAStuH,GAAQoI,GAE7D,OAAOy0B,EAAQ0xF,GADJD,GAAStuH,GAAQoI,MA5BlC,SAA4BA,EAAUpI,GAC/B8gH,GAAelkI,GAAO8mI,mBAAoBt7G,GAC7CulE,QAAQ9oB,MAAM,mBAAoBr/D,OAAO4iB,EAAU,kBAAoB5iB,OAAOwa,EAAQ,iBAE1F,CA4BI4uH,CAAmBxmH,EAAUpI,GAC7B68B,EAAQqgF,EAAeA,EAAe,CAAC,EAAGwR,IAA6B,CAAC,EAAG,CACzEtpH,KAAMxoB,GAAO8mI,kBAAoBt7G,GAAWwjH,GAAa,wBAA+B,CAAC,IAE7F,GACF,CAEA,IAAIiD,GAAS,WAAiB,EAE1BxkI,GAAIzN,GAAO6mI,oBAAsBzD,GAAeA,EAAYb,MAAQa,EAAYZ,QAAUY,EAAc,CAC1Gb,KAAM0P,GACNzP,QAASyP,IAEPC,GAAW,aASXp4H,GAAM,SAAa3R,GACrBsF,GAAE80H,KAAK,GAAG35H,OAAOspI,GAAU,KAAKtpI,OAAOT,EAAM,UAC7CsF,GAAE+0H,QAAQ,GAAG55H,OAAOspI,GAAU,KAAKtpI,OAAOT,GAAO,GAAGS,OAAOspI,GAAU,KAAKtpI,OAAOT,EAAM,WAAY,GAAGS,OAAOspI,GAAU,KAAKtpI,OAAOT,EAAM,SAC3I,EAEIgqI,GAAO,CACTC,MAbU,SAAejqI,GAEzB,OADAsF,GAAE80H,KAAK,GAAG35H,OAAOspI,GAAU,KAAKtpI,OAAOT,EAAM,YACtC,WACL,OAAO2R,GAAI3R,EACb,CACF,EASE2R,IAAKA,IAGHu4H,GAAS,WAAiB,EAE9B,SAASC,GAAUjrB,GAEjB,MAAwB,iBADZA,EAAKloH,aAAekoH,EAAKloH,aAAaukI,GAAiB,KAErE,CAqBA,SAAS6O,GAAgBx1H,GACvB,OAAOmmH,EAASqP,gBAAgB,6BAA8Bx1H,EAChE,CAEA,SAASjY,GAAciY,GACrB,OAAOmmH,EAASp+H,cAAciY,EAChC,CAEA,SAASy1H,GAAWC,GAClB,IACIC,GADS9sI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACxD+sI,KACtBA,OAAwB,IAAjBD,EAA8C,QAApBD,EAAY11H,IAAgBw1H,GAAkBztI,GAAgB4tI,EAEnG,GAA2B,iBAAhBD,EACT,OAAOvP,EAASh/H,eAAeuuI,GAGjC,IAAI11H,EAAM41H,EAAKF,EAAY11H,KAU3B,OATArW,OAAOC,KAAK8rI,EAAYrJ,YAAc,IAAIjlI,SAAQ,SAAUlB,GAC1D8Z,EAAI/X,aAAa/B,EAAKwvI,EAAYrJ,WAAWnmI,GAC/C,KACewvI,EAAY70H,UAAY,IAC9BzZ,SAAQ,SAAUsb,GACzB1C,EAAI9Y,YAAYuuI,GAAW/yH,EAAO,CAChCkzH,KAAMA,IAEV,IACO51H,CACT,CAYA,IAAI61H,GAAW,CACb/nI,QAAS,SAAiBgoI,GACxB,IAAIxrB,EAAOwrB,EAAS,GAEpB,GAAIxrB,EAAK74C,WAKP,GAJAqkE,EAAS,GAAG1uI,SAAQ,SAAU+rI,GAC5B7oB,EAAK74C,WAAWlpE,aAAaktI,GAAWtC,GAAW7oB,EACrD,IAEyC,OAArCA,EAAKloH,aAAaukI,IAA2B1jI,GAAO4mI,mBAAoB,CAC1E,IAAIkM,EAAU5P,EAAS6P,cApB/B,SAAuB1rB,GACrB,IAAIyrB,EAAU,IAAIlqI,OAAOy+G,EAAK2rB,UAAW,KAMzC,MAHU,GAAGpqI,OAAOkqI,EAAS,gCAI/B,CAY6CG,CAAc5rB,IACnDA,EAAK74C,WAAW0kE,aAAaJ,EAASzrB,EACxC,MACEA,EAAKjjD,QAGX,EACA+uE,KAAM,SAAcN,GAClB,IAAIxrB,EAAOwrB,EAAS,GAChB3C,EAAW2C,EAAS,GAGxB,IAAKpL,GAAWpgB,GAAMv/G,QAAQ9H,GAAOqmI,kBACnC,OAAOuM,GAAS/nI,QAAQgoI,GAG1B,IAAIO,EAAS,IAAIxgB,OAAO,GAAGhqH,OAAO5I,GAAOomI,UAAW,QAGpD,UAFO8J,EAAS,GAAG9G,WAAWnxG,GAE1Bi4G,EAAS,GAAG9G,WAAWqI,MAAO,CAChC,IAAI4B,EAAenD,EAAS,GAAG9G,WAAWqI,MAAM1pI,MAAM,KAAKuE,QAAO,SAAUijG,EAAK89B,GAO/E,OANIA,IAAQrtI,GAAOqmI,kBAAoBgH,EAAIphI,MAAMmnI,GAC/C7jC,EAAI+jC,MAAM7wI,KAAK4qI,GAEf99B,EAAIgkC,OAAO9wI,KAAK4qI,GAGX99B,CACT,GAAG,CACDgkC,OAAQ,GACRD,MAAO,KAETpD,EAAS,GAAG9G,WAAWqI,MAAQ4B,EAAaC,MAAMhvI,KAAK,KAEpB,IAA/B+uI,EAAaE,OAAOxvI,OACtBsjH,EAAKnoG,gBAAgB,SAErBmoG,EAAKriH,aAAa,QAASquI,EAAaE,OAAOjvI,KAAK,KAExD,CAEA,IAAIkvI,EAAetD,EAASjpI,KAAI,SAAU+8E,GACxC,OAAOilD,GAAOjlD,EAChB,IAAG1/E,KAAK,MACR+iH,EAAKriH,aAAa0+H,EAAe,IACjCrc,EAAKihB,UAAYkL,CACnB,GAGF,SAASC,GAAqBC,GAC5BA,GACF,CAEA,SAASC,GAAQC,EAAWrxI,GAC1B,IAAIsxI,EAAuC,mBAAbtxI,EAA0BA,EAAW8vI,GAEnE,GAAyB,IAArBuB,EAAU7vI,OACZ8vI,QACK,CACL,IAAIC,EAAQL,GAERzzI,GAAO2mI,iBAAmB3C,IAC5B8P,EAAQ7Q,EAAOt+H,uBAAyB8uI,IAG1CK,GAAM,WACJ,IAAIC,GA5HsB,IAA1B/zI,GAAOsmI,eACFsM,GAAS/nI,QAGJ+nI,GAAS5yI,GAAOsmI,iBACZsM,GAAS/nI,QAwHnB03H,EAAO4P,GAAKC,MAAM,UACtBwB,EAAU3sI,IAAI8sI,GACdxR,IACAsR,GACF,GACF,CACF,CACA,IAAIj9H,IAAW,EACf,SAASo9H,KACPp9H,IAAW,CACb,CACA,SAASq9H,KACPr9H,IAAW,CACb,CACA,IAAIs9H,GAAK,KACT,SAASpgF,GAAQxrD,GACf,GAAK66H,GAIAnjI,GAAO0mI,iBAAZ,CAIA,IAAIyN,EAAwB7rI,EAAQ8rI,aAChCA,OAAyC,IAA1BD,EAAmC9B,GAAS8B,EAC3DE,EAAwB/rI,EAAQgsI,aAChCA,OAAyC,IAA1BD,EAAmChC,GAASgC,EAC3DE,EAAwBjsI,EAAQksI,uBAChCA,OAAmD,IAA1BD,EAAmClC,GAASkC,EACrEE,EAAwBnsI,EAAQosI,qBAChCA,OAAiD,IAA1BD,EAAmCvR,EAAWuR,EACzEP,GAAK,IAAI/Q,GAAkB,SAAU17H,GACnC,IAAImP,GAAJ,CACA,IAAI3V,EAAgBsrI,KACpB/E,GAAQ//H,GAAStD,SAAQ,SAAUwwI,GAajC,GAZ4B,cAAxBA,EAAerzH,MAAwBqzH,EAAeC,WAAW7wI,OAAS,IAAMuuI,GAAUqC,EAAeC,WAAW,MAClH50I,GAAOymI,sBACT+N,EAAuBG,EAAehnI,QAGxCymI,EAAaO,EAAehnI,SAGF,eAAxBgnI,EAAerzH,MAAyBqzH,EAAehnI,OAAO6gE,YAAcxuE,GAAOymI,sBACrF+N,EAAuBG,EAAehnI,OAAO6gE,YAGnB,eAAxBmmE,EAAerzH,MAAyBgxH,GAAUqC,EAAehnI,UAAYu3H,GAAgCp9H,QAAQ6sI,EAAezvD,eACtI,GAAqC,UAAjCyvD,EAAezvD,eAzL3B,SAA0BmiC,GACxB,IAAIjkG,EAASikG,EAAKloH,aAAekoH,EAAKloH,aAAa0kI,GAAe,KAC9Dr7G,EAAO6+F,EAAKloH,aAAekoH,EAAKloH,aAAa2kI,GAAa,KAC9D,OAAO1gH,GAAUoF,CACnB,CAqLwDqsH,CAAiBF,EAAehnI,QAAS,CACvF,IAAImnI,EAAoBjI,GAAiBpF,GAAWkN,EAAehnI,SAC/DyV,EAAS0xH,EAAkB1xH,OAC3BoI,EAAWspH,EAAkBtpH,SAEjCmpH,EAAehnI,OAAO3I,aAAa6+H,EAAazgH,GAAUniB,GACtDuqB,GAAUmpH,EAAehnI,OAAO3I,aAAa8+H,EAAWt4G,EAC9D,MA1LiB67F,EA0LUstB,EAAehnI,SAzLjC05G,EAAKljD,WAAakjD,EAAKljD,UAAU5+D,UAAY8hH,EAAKljD,UAAU5+D,SAASvF,GAAOqmI,mBA0LnFiO,EAAaK,EAAehnI,QA3LtC,IAAyB05G,CA8LrB,GA3BoB,CA4BtB,IACKgc,GACL6Q,GAAGpgF,QAAQ4gF,EAAsB,CAC/BK,WAAW,EACX3L,YAAY,EACZ4L,eAAe,EACfC,SAAS,GA7CX,CA+CF,CAqGA,SAASC,GAAU7tB,GACjB,IAAI8tB,EAASvvI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAC/EwvI,aAAa,GAGXC,EA/EN,SAAsBhuB,GACpB,IAv9BkBjkG,EAAQkyH,EAu9BtBC,EAAiBluB,EAAKloH,aAAa,eACnCq2I,EAAmBnuB,EAAKloH,aAAa,aACrCs2I,OAA+Bz2I,IAAnBqoH,EAAKouB,UAA0BpuB,EAAKouB,UAAUrpI,OAAS,GACnEo6G,EAAMqmB,GAAiBpF,GAAWpgB,IAWtC,OATKb,EAAIpjG,SACPojG,EAAIpjG,OAASmpH,MAGXgJ,GAAkBC,IACpBhvB,EAAIpjG,OAASmyH,EACb/uB,EAAIh7F,SAAWgqH,GAGbhvB,EAAIh7F,UAAYg7F,EAAIpjG,SAIpBojG,EAAIpjG,QAAUqyH,EAAU1xI,OAAS,IACnCyiH,EAAIh7F,UA1+BYpI,EA0+BUojG,EAAIpjG,OA1+BNkyH,EA0+BcjuB,EAAKouB,WAz+BrCvK,GAAY9nH,IAAW,CAAC,GAAGkyH,IAy+BwBlJ,GAAU5lB,EAAIpjG,OAAQ2mH,GAAM1iB,EAAKouB,eAGvFjvB,EAAIh7F,UAAYxrB,GAAO6rI,cAAgBxkB,EAAKvvG,YAAcuvG,EAAKvvG,WAAWmE,WAAayoE,KAAKgxD,YAC/FlvB,EAAIh7F,SAAW67F,EAAKvvG,WAAWyjB,OARxBirF,CAYX,CAmDqBmvB,CAAYtuB,GAC3B77F,EAAW6pH,EAAa7pH,SACxBpI,EAASiyH,EAAajyH,OACtBwyH,EAAeP,EAAavpG,KAE5B+pG,EAtDN,SAA2BxuB,GACzB,IAAIwuB,EAAkBrO,GAAQngB,EAAK+hB,YAAY98H,QAAO,SAAUijG,EAAKu2B,GAKnE,MAJiB,UAAbv2B,EAAIpnG,MAAiC,UAAbonG,EAAIpnG,OAC9BonG,EAAIu2B,EAAK39H,MAAQ29H,EAAK97H,OAGjBulG,CACT,GAAG,CAAC,GACAzlF,EAAQu9F,EAAKloH,aAAa,SAC1BqxI,EAAUnpB,EAAKloH,aAAa,oBAWhC,OATIa,GAAOwmI,WACL18G,EACF+rH,EAAgB,mBAAqB,GAAGjtI,OAAO5I,GAAOqmI,iBAAkB,WAAWz9H,OAAO4nI,GAAWlJ,OAErGuO,EAAgB,eAAiB,OACjCA,EAA2B,UAAI,UAI5BA,CACT,CAiCwBC,CAAiBzuB,GACnC0uB,EAAatH,GAAW,sBAAuB,CAAC,EAAGpnB,GACnD2uB,EAAcb,EAAOC,YA3G3B,SAAsB/tB,GACpB,IAAI19G,EAAQ09G,EAAKloH,aAAa,SAC1BqnH,EAAM,GAgBV,OAdI78G,IACF68G,EAAM78G,EAAM5B,MAAM,KAAKuE,QAAO,SAAUijG,EAAK5lG,GAC3C,IAAIrC,EAASqC,EAAM5B,MAAM,KACrB7B,EAAOoB,EAAO,GACd0C,EAAQ1C,EAAOoF,MAAM,GAMzB,OAJIxG,GAAQ8D,EAAMjG,OAAS,IACzBwrG,EAAIrpG,GAAQ8D,EAAM1F,KAAK,KAAK8H,QAGvBmjG,CACT,GAAG,CAAC,IAGCiX,CACT,CAwFyC4uB,CAAY/tB,GAAQ,GAC3D,OAAOiZ,EAAe,CACpB90G,SAAUA,EACV1B,MAAOu9F,EAAKloH,aAAa,SACzBqxI,QAASnpB,EAAKloH,aAAa,oBAC3BikB,OAAQA,EACR++B,UAAW8kF,GACXoJ,KAAM,CACJ7kH,SAAU,KACVpI,OAAQ,KACR0oB,KAAM,IAERykG,OAAQ,KACRD,QAAQ,EACRlG,MAAO,CACL5iI,QAASouI,EACTtuI,OAAQ0uI,EACR5M,WAAYyM,IAEbE,EACL,CAEA,IAAIE,GAAW/0I,GAAUoG,OAEzB,SAAS4uI,GAAiB7uB,GACxB,IAAI8uB,EAAqC,SAA1Bn2I,GAAOsmI,eAA4B4O,GAAU7tB,EAAM,CAChE+tB,aAAa,IACVF,GAAU7tB,GAEf,OAAK8uB,EAAS/L,MAAM5iI,QAAQM,QAAQ+8H,GAC3BmK,GAAa,qBAAsB3nB,EAAM8uB,GAEzCnH,GAAa,iCAAkC3nB,EAAM8uB,EAEhE,CAEA,IAAIC,GAAgB,IAAIzhI,IAQxB,SAAS0hI,GAAOt6H,GACd,IAAIxZ,EAAWqD,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,KACnF,IAAKy9H,EAAQ,OAAOrjF,QAAQC,UAC5B,IAAIq2F,EAAgBpT,EAAShkI,gBAAgBilE,UAEzCoyE,EAAS,SAAgBC,GAC3B,OAAOF,EAAcp6H,IAAI,GAAGtT,OAAOm7H,EAA6B,KAAKn7H,OAAO4tI,GAC9E,EAEIC,EAAY,SAAmBD,GACjC,OAAOF,EAAclyE,OAAO,GAAGx7D,OAAOm7H,EAA6B,KAAKn7H,OAAO4tI,GACjF,EAEIhR,EAAWxlI,GAAO6rI,aAAeuK,GAAgB/R,EAASp9H,KAAI,SAAUuzG,GAC1E,MAAO,MAAM5xG,OAAO4xG,EACtB,IAAG5xG,OAAOlC,OAAOC,KAAKsvI,KAEjBzQ,EAAS2H,SAAS,OACrB3H,EAAS/iI,KAAK,MAGhB,IAAIi0I,EAAmB,CAAC,IAAI9tI,OAAOi8H,EAAuB,UAAUj8H,OAAO86H,EAAe,OAAO96H,OAAO48H,EAASv+H,KAAI,SAAUwG,GAC7H,MAAO,IAAI7E,OAAO6E,EAAG,UAAU7E,OAAO86H,EAAe,KACvD,KAAIp/H,KAAK,MAET,GAAgC,IAA5BoyI,EAAiB3yI,OACnB,OAAOi8C,QAAQC,UAGjB,IAAI02F,EAAa,GAEjB,IACEA,EAAanP,GAAQzrH,EAAK86E,iBAAiB6/C,GAC7C,CAAE,MAAO1yI,GACT,CAEA,KAAI2yI,EAAW5yI,OAAS,GAItB,OAAOi8C,QAAQC,UAHfs2F,EAAO,WACPE,EAAU,YAKZ,IAAIlU,EAAO4P,GAAKC,MAAM,UAClBwB,EAAY+C,EAAWrqI,QAAO,SAAUijG,EAAK8X,GAC/C,IACE,IAAIwrB,EAAWqD,GAAiB7uB,GAE5BwrB,GACFtjC,EAAI9sG,KAAKowI,EAEb,CAAE,MAAO7uI,GACFkgI,GACY,gBAAXlgI,EAAEmE,MACJ4oF,QAAQ9oB,MAAMjkE,EAGpB,CAEA,OAAOurG,CACT,GAAG,IACH,OAAO,IAAIvvD,SAAQ,SAAUC,EAASqvF,GACpCtvF,QAAQ5mC,IAAIw6H,GAAWzzF,MAAK,SAAUy2F,GACpCjD,GAAQiD,GAAmB,WACzBL,EAAO,UACPA,EAAO,YACPE,EAAU,WACc,mBAAbl0I,GAAyBA,IACpCggI,IACAtiF,GACF,GACF,IAAG42F,OAAM,SAAU7yI,GACjBu+H,IACA+M,EAAOtrI,EACT,GACF,GACF,CAEA,SAAS8yI,GAAOzvB,GACd,IAAI9kH,EAAWqD,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,KACnFswI,GAAiB7uB,GAAMlnE,MAAK,SAAU0yF,GAChCA,GACFc,GAAQ,CAACd,GAAWtwI,EAExB,GACF,CA5FA8hI,EAASp9H,KAAI,SAAUklI,GACrBiK,GAAcl6H,IAAI,MAAMtT,OAAOujI,GACjC,IACAzlI,OAAOC,KAAK69H,EAAgBL,IAAiBl9H,IAAImvI,GAAcl6H,IAAIgf,KAAKk7G,KACxE1vI,OAAOC,KAAK69H,EAAgBJ,IAAen9H,IAAImvI,GAAcl6H,IAAIgf,KAAKk7G,KACtEA,GAAgB1U,EAAmB0U,IAyGnC,IAAIt5H,GAAS,SAAgBi6H,GAC3B,IAAI1H,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EoxI,EAAoB3H,EAAOltF,UAC3BA,OAAkC,IAAtB60F,EAA+B/P,GAAuB+P,EAClEC,EAAiB5H,EAAOiB,OACxBA,OAA4B,IAAnB2G,GAAoCA,EAC7CC,EAAe7H,EAAOgB,KACtBA,OAAwB,IAAjB6G,EAA0B,KAAOA,EACxCC,EAAiB9H,EAAOkB,OACxBA,OAA4B,IAAnB4G,EAA4B,KAAOA,EAC5CC,EAAgB/H,EAAOvlH,MACvBA,OAA0B,IAAlBstH,EAA2B,KAAOA,EAC1CC,EAAkBhI,EAAOmB,QACzBA,OAA8B,IAApB6G,EAA6B,KAAOA,EAC9CC,EAAkBjI,EAAO7nI,QACzBA,OAA8B,IAApB8vI,EAA6B,GAAKA,EAC5CC,EAAqBlI,EAAOjG,WAC5BA,OAAoC,IAAvBmO,EAAgC,CAAC,EAAIA,EAClDC,EAAiBnI,EAAO/nI,OACxBA,OAA4B,IAAnBkwI,EAA4B,CAAC,EAAIA,EAC9C,GAAKT,EAAL,CACA,IAAI3zH,EAAS2zH,EAAe3zH,OACxBoI,EAAWurH,EAAevrH,SAC1BhD,EAAOuuH,EAAevuH,KAC1B,OAAOwnH,GAAY1P,EAAe,CAChCh/G,KAAM,QACLy1H,IAAiB,WAelB,OAdAlI,GAAU,2BAA4B,CACpCkI,eAAgBA,EAChB1H,OAAQA,IAGNrvI,GAAOwmI,WACL18G,EACFs/G,EAAW,mBAAqB,GAAGxgI,OAAO5I,GAAOqmI,iBAAkB,WAAWz9H,OAAO4nI,GAAWlJ,OAEhG8B,EAAW,eAAiB,OAC5BA,EAAsB,UAAI,UAIvB+G,GAAsB,CAC3Bj/B,MAAO,CACLj+C,KAAM0+E,GAAYnpH,GAClB6nH,KAAMA,EAAOsB,GAAYtB,EAAK7nH,MAAQ,CACpCmoH,OAAO,EACPz1H,MAAO,KACPkG,OAAQ,KACRoH,KAAM,CAAC,IAGXpF,OAAQA,EACRoI,SAAUA,EACV22B,UAAWm+E,EAAeA,EAAe,CAAC,EAAG2G,IAAuB9kF,GACpEmuF,OAAQA,EACRxmH,MAAOA,EACPymH,OAAQA,EACRC,QAASA,EACTpG,MAAO,CACLhB,WAAYA,EACZ9hI,OAAQA,EACRE,QAASA,IAGf,GA5C2B,CA6C7B,EACIiwI,GAAkB,CACpB9O,OAAQ,WACN,MAAO,CACLngH,MArFgB44G,EAqFGtkH,GApFhB,SAAU46H,GACf,IAAIrI,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EmxI,GAAkBW,GAAuB,CAAC,GAAGlvH,KAAOkvH,EAAsBzI,GAAmByI,GAAuB,CAAC,GACrHrH,EAAOhB,EAAOgB,KAMlB,OAJIA,IACFA,GAAQA,GAAQ,CAAC,GAAG7nH,KAAO6nH,EAAOpB,GAAmBoB,GAAQ,CAAC,IAGzDjP,EAAK2V,EAAgBzW,EAAeA,EAAe,CAAC,EAAG+O,GAAS,CAAC,EAAG,CACzEgB,KAAMA,IAEV,IAbF,IAAsBjP,CAuFpB,EACAyH,MAAO,WACL,MAAO,CACL8O,0BAA2B,SAAmChJ,GAG5D,OAFAA,EAAYyF,aAAeiC,GAC3B1H,EAAY2F,aAAewC,GACpBnI,CACT,EAEJ,EACAiJ,SAAU,SAAkBC,GAC1BA,EAAazI,MAAQ,SAAUC,GAC7B,IAAIyI,EAAezI,EAAOhoB,KACtBA,OAAwB,IAAjBywB,EAA0B5U,EAAW4U,EAC5CC,EAAmB1I,EAAO9sI,SAE9B,OAAO8zI,GAAOhvB,OADsB,IAArB0wB,EAA8B,WAAa,EAAIA,EAEhE,EAEAF,EAAaG,+BAAiC,SAAU3wB,EAAM8uB,GAC5D,IAAI3qH,EAAW2qH,EAAS3qH,SACpB1B,EAAQqsH,EAASrsH,MACjB0mH,EAAU2F,EAAS3F,QACnBptH,EAAS+yH,EAAS/yH,OAClB++B,EAAYg0F,EAASh0F,UACrBmuF,EAAS6F,EAAS7F,OAClBD,EAAO8F,EAAS9F,KAChBE,EAAS4F,EAAS5F,OAClBnG,EAAQ+L,EAAS/L,MACrB,OAAO,IAAIpqF,SAAQ,SAAUC,EAASqvF,GACpCtvF,QAAQ5mC,IAAI,CAAC24H,GAASvmH,EAAUpI,GAASitH,EAAK7kH,SAAWumH,GAAS1B,EAAK7kH,SAAU6kH,EAAKjtH,QAAU48B,QAAQC,QAAQ,CAC9G0wF,OAAO,EACPz1H,MAAO,IACPkG,OAAQ,IACRoH,KAAM,CAAC,MACJ23B,MAAK,SAAUylF,GAClB,IAAIC,EAAQ9E,EAAe6E,EAAM,GAC7B3yE,EAAO4yE,EAAM,GACbwK,EAAOxK,EAAM,GAEjB5lF,EAAQ,CAAConE,EAAM8oB,GAAsB,CACnCj/B,MAAO,CACLj+C,KAAMA,EACNo9E,KAAMA,GAERjtH,OAAQA,EACRoI,SAAUA,EACV22B,UAAWA,EACXmuF,OAAQA,EACRC,OAAQA,EACRzmH,MAAOA,EACP0mH,QAASA,EACTpG,MAAOA,EACPsG,WAAW,KAEf,IAAGmG,MAAMvH,EACX,GACF,EAEAuI,EAAaI,qBAAuB,SAAUC,GAC5C,IAWI1zB,EAXA5mG,EAAWs6H,EAAMt6H,SACjBwrH,EAAa8O,EAAM9O,WACnBn2E,EAAOilF,EAAMjlF,KACb9Q,EAAY+1F,EAAM/1F,UAElBqvF,EAAc7J,GADLuQ,EAAM5wI,QAmBnB,OAhBIkqI,EAAYztI,OAAS,IACvBqlI,EAAkB,MAAIoI,GAKpB5J,GAAsBzlF,KACxBqiE,EAAYwqB,GAAa,oCAAqC,CAC5D/7E,KAAMA,EACN9Q,UAAWA,EACXg2F,eAAgBllF,EAAK/3C,MACrBk9H,UAAWnlF,EAAK/3C,SAIpB0C,EAASnb,KAAK+hH,GAAavxD,EAAKzqC,MACzB,CACL5K,SAAUA,EACVwrH,WAAYA,EAEhB,CACF,GAGEiP,GAAS,CACX1P,OAAQ,WACN,MAAO,CACL2P,MAAO,SAAeC,GACpB,IAAIlJ,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E0xI,EAAkBjI,EAAO7nI,QACzBA,OAA8B,IAApB8vI,EAA6B,GAAKA,EAChD,OAAOtH,GAAY,CACjB1uH,KAAM,UACL,WACDutH,GAAU,2BAA4B,CACpC0J,UAAWA,EACXlJ,OAAQA,IAEV,IAAIzxH,EAAW,GAMf,OALA26H,GAAU,SAAUr1I,GAClBsD,MAAMC,QAAQvD,GAAQA,EAAK+D,KAAI,SAAU+8E,GACvCpmE,EAAWA,EAAShV,OAAOo7E,EAAEksD,SAC/B,IAAKtyH,EAAWA,EAAShV,OAAO1F,EAAKgtI,SACvC,IACO,CAAC,CACNnzH,IAAK,OACLqsH,WAAY,CACVqI,MAAO,CAAC,GAAG7oI,OAAO5I,GAAOomI,UAAW,YAAYx9H,OAAO84H,EAAmBl6H,IAAUlD,KAAK,MAE3FsZ,SAAUA,GAEd,GACF,EAEJ,GAGE46H,GAAgB,CAClB7P,OAAQ,WACN,MAAO,CACLtnI,QAAS,SAAiBukC,GACxB,IAAIypG,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EwxI,EAAgB/H,EAAOvlH,MACvBA,OAA0B,IAAlBstH,EAA2B,KAAOA,EAC1CE,EAAkBjI,EAAO7nI,QACzBA,OAA8B,IAApB8vI,EAA6B,GAAKA,EAC5CC,EAAqBlI,EAAOjG,WAC5BA,OAAoC,IAAvBmO,EAAgC,CAAC,EAAIA,EAClDC,EAAiBnI,EAAO/nI,OACxBA,OAA4B,IAAnBkwI,EAA4B,CAAC,EAAIA,EAC9C,OAAOxH,GAAY,CACjB1uH,KAAM,UACNskB,QAASA,IACR,WAKD,OAJAipG,GAAU,2BAA4B,CACpCjpG,QAASA,EACTypG,OAAQA,IA30BpB,SAAmCA,GACjC,IAAIzpG,EAAUypG,EAAOzpG,QACjB9b,EAAQulH,EAAOvlH,MACfsgH,EAAQiF,EAAOjF,MAEfhB,EAAa9I,EAAeA,EAAeA,EAAe,CAAC,EAAG8J,EAAMhB,YAAat/G,EAAQ,CAC3F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAASsgH,EAAM5iI,QAAQlD,KAAK,OAG1BktI,EAAc7J,GAAWyC,EAAM9iI,QAE/BkqI,EAAYztI,OAAS,IACvBqlI,EAAkB,MAAIoI,GAGxB,IAAIhrB,EAAM,GAiBV,OAhBAA,EAAI/jH,KAAK,CACPsa,IAAK,OACLqsH,WAAYA,EACZxrH,SAAU,CAACgoB,KAGT9b,GACF08F,EAAI/jH,KAAK,CACPsa,IAAK,OACLqsH,WAAY,CACVqI,MAAO,WAET7zH,SAAU,CAACkM,KAIR08F,CACT,CA0yBiBiyB,CAA0B,CAC/B7yG,QAASA,EAAQ5Q,WACjBlL,MAAOA,EACPsgH,MAAO,CACLhB,WAAYA,EACZ9hI,OAAQA,EACRE,QAAS,CAAC,GAAGoB,OAAO5I,GAAOomI,UAAW,oBAAoBx9H,OAAO84H,EAAmBl6H,MAG1F,GACF,EAEJ,GAGEkxI,GAAa,CACf/P,OAAQ,WACN,MAAO,CACL/8G,KAAM,SAAcga,GAClB,IAAIypG,EAASzpI,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EoxI,EAAoB3H,EAAOltF,UAC3BA,OAAkC,IAAtB60F,EAA+B/P,GAAuB+P,EAClEI,EAAgB/H,EAAOvlH,MACvBA,OAA0B,IAAlBstH,EAA2B,KAAOA,EAC1CE,EAAkBjI,EAAO7nI,QACzBA,OAA8B,IAApB8vI,EAA6B,GAAKA,EAC5CC,EAAqBlI,EAAOjG,WAC5BA,OAAoC,IAAvBmO,EAAgC,CAAC,EAAIA,EAClDC,EAAiBnI,EAAO/nI,OACxBA,OAA4B,IAAnBkwI,EAA4B,CAAC,EAAIA,EAC9C,OAAOxH,GAAY,CACjB1uH,KAAM,OACNskB,QAASA,IACR,WAKD,OAJAipG,GAAU,2BAA4B,CACpCjpG,QAASA,EACTypG,OAAQA,IAEH4B,GAAuB,CAC5BrrG,QAASA,EACTuc,UAAWm+E,EAAeA,EAAe,CAAC,EAAG2G,IAAuB9kF,GACpEr4B,MAAOA,EACPsgH,MAAO,CACLhB,WAAYA,EACZ9hI,OAAQA,EACRE,QAAS,CAAC,GAAGoB,OAAO5I,GAAOomI,UAAW,iBAAiBx9H,OAAO84H,EAAmBl6H,MAGvF,GACF,EAEJ,EACAowI,SAAU,SAAkBC,GAC1BA,EAAac,mBAAqB,SAAUtxB,EAAM8uB,GAChD,IAAIrsH,EAAQqsH,EAASrsH,MACjBq4B,EAAYg0F,EAASh0F,UACrBioF,EAAQ+L,EAAS/L,MACjBlvH,EAAQ,KACRkG,EAAS,KAEb,GAAIkiH,EAAO,CACT,IAAIsV,EAAmBztI,SAASq4G,iBAAiB6D,GAAMz2F,SAAU,IAC7DioH,EAAqBxxB,EAAKlnG,wBAC9BjF,EAAQ29H,EAAmB39H,MAAQ09H,EACnCx3H,EAASy3H,EAAmBz3H,OAASw3H,CACvC,CAMA,OAJI54I,GAAOwmI,WAAa18G,IACtBsgH,EAAMhB,WAAW,eAAiB,QAG7BppF,QAAQC,QAAQ,CAAConE,EAAM4pB,GAAuB,CACnDrrG,QAASyhF,EAAKihB,UACdptH,MAAOA,EACPkG,OAAQA,EACR+gC,UAAWA,EACXr4B,MAAOA,EACPsgH,MAAOA,EACPsG,WAAW,KAEf,CACF,GAGEoI,GAAwB,IAAIlmB,OAAO,IAAM,MACzCmmB,GAA0B,CAAC,QAAS,SAYxC,SAASC,GAAmB3xB,EAAM34F,GAChC,IAAIuqH,EAAmB,GAAGrwI,OAAOg7H,GAAgCh7H,OAAO8lB,EAAS7jB,QAAQ,IAAK,MAC9F,OAAO,IAAIm1C,SAAQ,SAAUC,EAASqvF,GACpC,GAA4C,OAAxCjoB,EAAKloH,aAAa85I,GAEpB,OAAOh5F,IAGT,IAp/CkB+pF,EAChBkP,EACAC,EAm/CEC,EADW5R,GAAQngB,EAAKzpG,UACiBlb,QAAO,SAAU43G,GAC5D,OAAOA,EAAEn7G,aAAawkI,KAA4Bj1G,CACpD,IAAG,GACCpnB,EAAS27H,EAAOzf,iBAAiB6D,EAAM34F,GACvC0tC,EAAa90D,EAAOkjH,iBAAiB,eAAev+G,MAAM64H,GAC1Dz7F,EAAa/hC,EAAOkjH,iBAAiB,eACrC5kF,EAAUt+B,EAAOkjH,iBAAiB,WAEtC,GAAI4uB,IAAkCh9E,EAKpC,OADAirD,EAAKrqE,YAAYo8F,GACVn5F,IACF,GAAImc,GAA0B,SAAZx2B,GAAkC,KAAZA,EAAgB,CAC7D,IAAIyzG,EAAW/xI,EAAOkjH,iBAAiB,WAEnC2hB,GAAU,CAAC,SAASrkI,QAAQs0D,EAAW,IAAMgoE,EAAeD,EAC5D/gH,GAAU,CAAC,QAAS,UAAW,QAAS,OAAQ,UAAW,SAAU,OAAOtb,QAAQs0D,EAAW,IAAMqoE,EAAgB0H,GAAQ/vE,EAAW,GAAG3yD,eAAiBs7H,EAAsBoH,GAAQ9iG,GAE1LiwG,EAxCV,SAA6B1zG,GAC3B,IAzqDmBskG,EAGfva,EAFAh0G,EACA24G,EAuqDAilB,EAAU3zG,EAAQ/6B,QAAQiuI,GAAuB,IACjDU,GAAiC,EAzqDjC79H,GADeuuH,EA0qDSqP,GAzqDVx1I,QACduwH,EAAQ4V,EAAOzqC,WAwqDkB,KArqDxB,OAAU60B,GAAS,OAAU34G,EAAOtS,IAC/CsmH,EAASua,EAAOzqC,WAAWp2F,KAEb,OAAUsmH,GAAU,MACN,MAAlB2E,EAAQ,OAAkB3E,EAAS,MAAS,MAIjD2E,GA8pDHmlB,EAAeD,GAAaT,GAAwB,IAAMS,GAAaT,GAAwB,GAC/FW,EAA+B,IAAnBH,EAAQx1I,QAAew1I,EAAQ,KAAOA,EAAQ,GAC9D,MAAO,CACLvvI,MAAmB+/H,GAAZ2P,EAAkBH,EAAQ,GAAYA,GAC7CI,YAAaF,GAAgBC,EAEjC,CA+BiCE,CAAoBP,GAC3CQ,EAAWP,EAAqBtvI,MAChC2vI,EAAcL,EAAqBK,YAEnCG,EAAO19E,EAAW,GAAG42D,WAAW,eAChCxnG,EAAW4gH,GAAUhpH,EAAQy2H,GAC7BE,EAAiBvuH,EAErB,GAAIsuH,EAAM,CACR,IAAIE,GAjhDNd,EAAa9N,GADGpB,EAkhDe6P,GAhhD/BV,EAAa/M,GAAU,MAAOpC,GAC3BkP,IAAeC,EAAa,CACjC/1H,OAAQ,MACRoI,SAAU2tH,GACR,OAAS,CACX/1H,OAAQ,KACRoI,SAAU,OA4gDFwuH,EAAUxuH,UAAYwuH,EAAU52H,SAClCoI,EAAWwuH,EAAUxuH,SACrBpI,EAAS42H,EAAU52H,OAEvB,CAIA,IAAIoI,GAAamuH,GAAiBP,GAAiCA,EAA8Bj6I,aAAa0kI,KAAiBzgH,GAAUg2H,EAA8Bj6I,aAAa2kI,KAAeiW,EAqCjM95F,QArCkN,CAClNonE,EAAKriH,aAAai0I,EAAkBc,GAEhCX,GAEF/xB,EAAKrqE,YAAYo8F,GAGnB,IAAIa,EApiBH,CACLzuH,SAAU,KACV1B,MAAO,KACP0mH,QAAS,KACTptH,OAAQ,KACR++B,UAAW8kF,GACXqJ,QAAQ,EACRD,KAAM,CACJ7kH,SAAU,KACVpI,OAAQ,KACR0oB,KAAM,IAERykG,OAAQ,KACRnG,MAAO,CACL5iI,QAAS,GACTF,OAAQ,CAAC,EACT8hI,WAAY,CAAC,IAqhBPgB,EAAQ6P,EAAK7P,MACjBA,EAAMhB,WAAWzF,GAA0Bj1G,EAC3CqjH,GAASvmH,EAAUpI,GAAQ+8B,MAAK,SAAU8S,GACxC,IAAIi9E,EAAWC,GAAsB7P,EAAeA,EAAe,CAAC,EAAG2Z,GAAO,CAAC,EAAG,CAChF/oC,MAAO,CACLj+C,KAAMA,EACNo9E,KAAM7D,MAERppH,OAAQA,EACRoI,SAAUuuH,EACV3P,MAAOA,EACPsG,WAAW,KAET/sI,EAAUu/H,EAASp+H,cAAc,OAEpB,aAAb4pB,EACF24F,EAAK/hH,aAAa3B,EAAS0jH,EAAKvvG,YAEhCuvG,EAAKpjH,YAAYN,GAGnBA,EAAQqvI,UAAY9C,EAASjpI,KAAI,SAAU+8E,GACzC,OAAOilD,GAAOjlD,EAChB,IAAG1/E,KAAK,MACR+iH,EAAKnoG,gBAAgB+5H,GACrBh5F,GACF,IAAG42F,MAAMvH,EACX,CAGF,MACErvF,GAEJ,GACF,CAEA,SAASp1C,GAAQw8G,GACf,OAAOrnE,QAAQ5mC,IAAI,CAAC4/H,GAAmB3xB,EAAM,YAAa2xB,GAAmB3xB,EAAM,YACrF,CAEA,SAAS6yB,GAAY7yB,GACnB,QAAOA,EAAK74C,aAAevvE,SAAS2F,OAAUq/H,EAAoCn8H,QAAQu/G,EAAK9nG,QAAQ85E,gBAAmBguB,EAAKloH,aAAawkI,IAA6Btc,EAAK74C,YAA0C,QAA5B64C,EAAK74C,WAAWjvD,QAC9M,CAEA,SAASknH,GAAqB1qH,GAC5B,GAAKsnH,EACL,OAAO,IAAIrjF,SAAQ,SAAUC,EAASqvF,GACpC,IAAI6K,EAAa3S,GAAQzrH,EAAK86E,iBAAiB,MAAMn0F,OAAOw3I,IAAajzI,IAAI4D,IACzEiP,EAAMq4H,GAAKC,MAAM,wBACrB4B,KACAh0F,QAAQ5mC,IAAI+gI,GAAYh6F,MAAK,WAC3BrmC,IACAm6H,KACAh0F,GACF,IAAG42F,OAAM,WACP/8H,IACAm6H,KACA3E,GACF,GACF,GACF,CAEA,IAqBI8K,IAAa,EAmCbC,GAAuB,SAA8BC,GASvD,OAAOA,EAAgB7wI,cAAc1B,MAAM,KAAKuE,QAAO,SAAUijG,EAAKuL,GACpE,IAAI/vG,EAAQ+vG,EAAErxG,cAAc1B,MAAM,KAC9BusH,EAAQvpH,EAAM,GACd+gC,EAAO/gC,EAAM2B,MAAM,GAAGpI,KAAK,KAE/B,GAAIgwH,GAAkB,MAATxoF,EAEX,OADAyjE,EAAI43B,OAAQ,EACL53B,EAGT,GAAI+kB,GAAkB,MAATxoF,EAEX,OADAyjE,EAAI63B,OAAQ,EACL73B,EAKT,GAFAzjE,EAAOprB,WAAWorB,GAEdk5C,MAAMl5C,GACR,OAAOyjE,EAGT,OAAQ+kB,GACN,IAAK,OACH/kB,EAAI5zF,KAAO4zF,EAAI5zF,KAAOmwB,EACtB,MAEF,IAAK,SACHyjE,EAAI5zF,KAAO4zF,EAAI5zF,KAAOmwB,EACtB,MAEF,IAAK,OACHyjE,EAAI90F,EAAI80F,EAAI90F,EAAIqxB,EAChB,MAEF,IAAK,QACHyjE,EAAI90F,EAAI80F,EAAI90F,EAAIqxB,EAChB,MAEF,IAAK,KACHyjE,EAAIh2D,EAAIg2D,EAAIh2D,EAAIzN,EAChB,MAEF,IAAK,OACHyjE,EAAIh2D,EAAIg2D,EAAIh2D,EAAIzN,EAChB,MAEF,IAAK,SACHyjE,EAAI23B,OAAS33B,EAAI23B,OAASp7F,EAI9B,OAAOyjE,CACT,GA5DgB,CACd5zF,KAAM,GACNlB,EAAG,EACH8+B,EAAG,EACH4tF,OAAO,EACPC,OAAO,EACPF,OAAQ,GAuDZ,EACIqT,GAAkB,CACpB5R,OAAQ,WACN,MAAO,CACLzT,MAAO,CACL/yE,UAAW,SAAmBm4F,GAC5B,OAAOD,GAAqBC,EAC9B,GAGN,EACAzR,MAAO,WACL,MAAO,CACL2R,oBAAqB,SAA6B7L,EAAatnB,GAC7D,IAAIizB,EAAkBjzB,EAAKloH,aAAa,qBAMxC,OAJIm7I,IACF3L,EAAYxsF,UAAYk4F,GAAqBC,IAGxC3L,CACT,EAEJ,EACAiJ,SAAU,SAAkBrJ,GAC1BA,EAAUkM,kCAAoC,SAAU7U,GACtD,IAAI3yE,EAAO2yE,EAAK3yE,KACZ9Q,EAAYyjF,EAAKzjF,UACjBg2F,EAAiBvS,EAAKuS,eACtBC,EAAYxS,EAAKwS,UACjBntG,EAAQ,CACVkX,UAAW,aAAav5C,OAAOuvI,EAAiB,EAAG,UAEjDuC,EAAiB,aAAa9xI,OAAqB,GAAdu5C,EAAU1nC,EAAQ,MAAM7R,OAAqB,GAAdu5C,EAAU5I,EAAQ,MACtFohG,EAAa,SAAS/xI,OAAOu5C,EAAUxmC,KAAO,IAAMwmC,EAAUglF,OAAS,EAAI,GAAI,MAAMv+H,OAAOu5C,EAAUxmC,KAAO,IAAMwmC,EAAUilF,OAAS,EAAI,GAAI,MAC9IwT,EAAc,UAAUhyI,OAAOu5C,EAAU+kF,OAAQ,SAOjDiT,EAAa,CACflvG,MAAOA,EACPE,MARU,CACVgX,UAAW,GAAGv5C,OAAO8xI,EAAgB,KAAK9xI,OAAO+xI,EAAY,KAAK/xI,OAAOgyI,IAQzE/jI,KANS,CACTsrC,UAAW,aAAav5C,OAAOwvI,EAAY,GAAK,EAAG,YAOrD,MAAO,CACLr7H,IAAK,IACLqsH,WAAY9I,EAAe,CAAC,EAAG6Z,EAAWlvG,OAC1CrtB,SAAU,CAAC,CACTb,IAAK,IACLqsH,WAAY9I,EAAe,CAAC,EAAG6Z,EAAWhvG,OAC1CvtB,SAAU,CAAC,CACTb,IAAKk2C,EAAKzqC,KAAKzL,IACfa,SAAUq1C,EAAKzqC,KAAK5K,SACpBwrH,WAAY9I,EAAeA,EAAe,CAAC,EAAGrtE,EAAKzqC,KAAK4gH,YAAa+Q,EAAWtjI,UAIxF,CACF,GAGEgkI,GAAY,CACdpgI,EAAG,EACH8+B,EAAG,EACHr+B,MAAO,OACPkG,OAAQ,QAGV,SAAS05H,GAAU5K,GACjB,IAAI6K,IAAQn1I,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,KAAmBA,UAAU,GAM3E,OAJIsqI,EAAS9G,aAAe8G,EAAS9G,WAAWyI,MAAQkJ,KACtD7K,EAAS9G,WAAWyI,KAAO,SAGtB3B,CACT,CAUA,IA7nDM57B,GA6nDF0mC,GAAQ,CACVnS,MAAO,WACL,MAAO,CACL2R,oBAAqB,SAA6B7L,EAAatnB,GAC7D,IAAI4zB,EAAW5zB,EAAKloH,aAAa,gBAC7BkxI,EAAQ4K,EAAkCpO,GAAiBoO,EAASlzI,MAAM,KAAKd,KAAI,SAAUqG,GAC/F,OAAOA,EAAElB,MACX,KAFuBogI,KAUvB,OANK6D,EAAKjtH,SACRitH,EAAKjtH,OAASmpH,MAGhBoC,EAAY0B,KAAOA,EACnB1B,EAAY4B,OAASlpB,EAAKloH,aAAa,mBAChCwvI,CACT,EAEJ,EACAiJ,SAAU,SAAkBrJ,GAC1BA,EAAU2M,qBAAuB,SAAUtV,GACzC,IA7BWsK,EA6BPtyH,EAAWgoH,EAAKhoH,SAChBwrH,EAAaxD,EAAKwD,WAClBn2E,EAAO2yE,EAAK3yE,KACZo9E,EAAOzK,EAAKyK,KACZ8K,EAAiBvV,EAAK2K,OACtBpuF,EAAYyjF,EAAKzjF,UACjBi5F,EAAYnoF,EAAK/3C,MACjBmgI,EAAWpoF,EAAKzqC,KAChB8yH,EAAYjL,EAAKn1H,MACjBqgI,EAAWlL,EAAK7nH,KAChBgzH,EAjxEV,SAAyB5V,GACvB,IAAIzjF,EAAYyjF,EAAKzjF,UAEjBi2F,EAAYxS,EAAKwS,UACjBntG,EAAQ,CACVkX,UAAW,aAAav5C,OAHLg9H,EAAKuS,eAGwB,EAAG,UAEjDuC,EAAiB,aAAa9xI,OAAqB,GAAdu5C,EAAU1nC,EAAQ,MAAM7R,OAAqB,GAAdu5C,EAAU5I,EAAQ,MACtFohG,EAAa,SAAS/xI,OAAOu5C,EAAUxmC,KAAO,IAAMwmC,EAAUglF,OAAS,EAAI,GAAI,MAAMv+H,OAAOu5C,EAAUxmC,KAAO,IAAMwmC,EAAUilF,OAAS,EAAI,GAAI,MAC9IwT,EAAc,UAAUhyI,OAAOu5C,EAAU+kF,OAAQ,SAOrD,MAAO,CACLj8F,MAAOA,EACPE,MARU,CACVgX,UAAW,GAAGv5C,OAAO8xI,EAAgB,KAAK9xI,OAAO+xI,EAAY,KAAK/xI,OAAOgyI,IAQzE/jI,KANS,CACTsrC,UAAW,aAAav5C,OAAOwvI,EAAY,GAAK,EAAG,WAOvD,CA4vEkBqD,CAAgB,CAC1Bt5F,UAAWA,EACXg2F,eAAgBmD,EAChBlD,UAAWgD,IAETM,EAAW,CACb3+H,IAAK,OACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGua,IAAY,CAAC,EAAG,CAC5DhJ,KAAM,WAGN8J,EAA8BN,EAASz9H,SAAW,CACpDA,SAAUy9H,EAASz9H,SAAS3W,IAAI6zI,KAC9B,CAAC,EACDc,EAAiB,CACnB7+H,IAAK,IACLqsH,WAAY9I,EAAe,CAAC,EAAGkb,EAAMrwG,OACrCvtB,SAAU,CAACk9H,GAAUxa,EAAe,CAClCvjH,IAAKs+H,EAASt+H,IACdqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAG+a,EAASjS,YAAaoS,EAAM3kI,OACzE8kI,MAEDE,EAAiB,CACnB9+H,IAAK,IACLqsH,WAAY9I,EAAe,CAAC,EAAGkb,EAAMvwG,OACrCrtB,SAAU,CAACg+H,IAETrL,EAAS,QAAQ3nI,OAAOuyI,GAAkB7T,MAC1CwU,EAAS,QAAQlzI,OAAOuyI,GAAkB7T,MAC1CyU,EAAU,CACZh/H,IAAK,OACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGua,IAAY,CAAC,EAAG,CAC5D5iH,GAAIs4G,EACJyL,UAAW,iBACXC,iBAAkB,mBAEpBr+H,SAAU,CAAC89H,EAAUG,IAEnBK,EAAO,CACTn/H,IAAK,OACLa,SAAU,CAAC,CACTb,IAAK,WACLqsH,WAAY,CACVnxG,GAAI6jH,GAENl+H,UApFOsyH,EAoFWqL,EAnFL,MAAjBrL,EAASnzH,IACJmzH,EAAStyH,SAET,CAACsyH,KAiFD6L,IAUL,OARAn+H,EAASnb,KAAKy5I,EAAM,CAClBn/H,IAAK,OACLqsH,WAAY9I,EAAe,CACzBuR,KAAM,eACN,YAAa,QAAQjpI,OAAOkzI,EAAQ,KACpCzL,KAAM,QAAQznI,OAAO2nI,EAAQ,MAC5BsK,MAEE,CACLj9H,SAAUA,EACVwrH,WAAYA,EAEhB,CACF,GAGE+S,GAAuB,CACzBvE,SAAU,SAAkBrJ,GAC1B,IAAI6N,GAAe,EAEfnZ,EAAOoZ,aACTD,EAAenZ,EAAOoZ,WAAW,oCAAoCC,SAGvE/N,EAAUgO,oBAAsB,WAC9B,IAAIC,EAAY,GACZC,EAAO,CACT5K,KAAM,gBAEJ6K,EAAiB,CACnBC,cAAe,MACfC,YAAa,aACbC,IAAK,MAGPL,EAAU/5I,KAAK,CACbsa,IAAK,OACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGmc,GAAO,CAAC,EAAG,CACvDliC,EAAG,u4CAIP,IAAIuiC,EAAkBxc,EAAeA,EAAe,CAAC,EAAGoc,GAAiB,CAAC,EAAG,CAC3Ex3D,cAAe,YAGb63D,EAAM,CACRhgI,IAAK,SACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGmc,GAAO,CAAC,EAAG,CACvDO,GAAI,MACJC,GAAI,MACJhiC,EAAG,OAELr9F,SAAU,IAkDZ,OA/CKw+H,GACHW,EAAIn/H,SAASnb,KAAK,CAChBsa,IAAK,UACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGoc,GAAiB,CAAC,EAAG,CACjEx3D,cAAe,IACf+S,OAAQ,wBAET,CACDl7E,IAAK,UACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGwc,GAAkB,CAAC,EAAG,CAClE7kD,OAAQ,mBAKdukD,EAAU/5I,KAAKs6I,GACfP,EAAU/5I,KAAK,CACbsa,IAAK,OACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGmc,GAAO,CAAC,EAAG,CACvDttH,QAAS,IACTorF,EAAG,ySAEL38F,SAAUw+H,EAAe,GAAK,CAAC,CAC7Br/H,IAAK,UACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGwc,GAAkB,CAAC,EAAG,CAClE7kD,OAAQ,qBAKTmkD,GAEHI,EAAU/5I,KAAK,CACbsa,IAAK,OACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGmc,GAAO,CAAC,EAAG,CACvDttH,QAAS,IACTorF,EAAG,gJAEL38F,SAAU,CAAC,CACTb,IAAK,UACLqsH,WAAY9I,EAAeA,EAAe,CAAC,EAAGwc,GAAkB,CAAC,EAAG,CAClE7kD,OAAQ,qBAMT,CACLl7E,IAAK,IACLqsH,WAAY,CACV,MAAS,WAEXxrH,SAAU4+H,EAEd,CACF,GA3zDIloC,GA60DmB,CACvB4oC,UAAWxN,IA90DIwN,UACf7O,GA00DY,CAAC3F,GAAW+O,GAAiBY,GAAQG,GAAeE,GA7Z7C,CACnB7P,MAAO,WACL,MAAO,CACL8O,0BAA2B,SAAmChJ,GAE5D,OADAA,EAAY6F,uBAAyB/N,GAC9BkI,CACT,EAEJ,EACAiJ,SAAU,SAAkBC,GAC1BA,EAAasF,mBAAqB,SAAU9N,GAC1C,IAAIyI,EAAezI,EAAOhoB,KACtBA,OAAwB,IAAjBywB,EAA0B5U,EAAW4U,EAE5C93I,GAAOymI,sBACTA,GAAqBpf,EAEzB,CACF,GAIuB,CACvBshB,OAAQ,WACN,MAAO,CACLC,IAAK,CACHwU,QAAS,WACPpJ,KACAoG,IAAa,CACf,GAGN,EACAvR,MAAO,WACL,MAAO,CACLwU,UAAW,WACTvpF,GAAQ26E,GAAW,4BAA6B,CAAC,GACnD,EACAkB,OAAQ,WAxtBPuE,IACLA,GAAGoJ,YAytBC,EACA/N,MAAO,SAAeF,GACpB,IAAIqF,EAAuBrF,EAAOqF,qBAE9B0F,GACFnG,KAEAngF,GAAQ26E,GAAW,4BAA6B,CAC9CiG,qBAAsBA,IAG5B,EAEJ,GAwWgH6F,GAAiBS,GAAOmB,GAbzH,CACftT,MAAO,WACL,MAAO,CACL2R,oBAAqB,SAA6B7L,EAAatnB,GAC7D,IAAIk2B,EAAal2B,EAAKloH,aAAa,kBAC/BmxI,EAAwB,OAAfiN,IAA6C,KAAfA,GAA2BA,GAEtE,OADA5O,EAAoB,OAAI2B,EACjB3B,CACT,EAEJ,IAt0DAL,GAAS,CAAC,EACV5nI,OAAOC,KAAK4nI,IAAWpqI,SAAQ,SAAUy2G,IACC,IAApC4zB,GAAoB1mI,QAAQ8yG,WACvB2zB,GAAU3zB,EAErB,IAEAyzB,GAASlqI,SAAQ,SAAUq5I,GACzB,IAAI7U,EAAS6U,EAAO7U,OAAS6U,EAAO7U,SAAW,CAAC,EAiBhD,GAhBAjiI,OAAOC,KAAKgiI,GAAQxkI,SAAQ,SAAUs5I,GACV,mBAAf9U,EAAO8U,KAChBnpC,GAAImpC,GAAM9U,EAAO8U,IAGS,WAAxB/c,EAAQiI,EAAO8U,KACjB/2I,OAAOC,KAAKgiI,EAAO8U,IAAKt5I,SAAQ,SAAUw3D,GACnC24C,GAAImpC,KACPnpC,GAAImpC,GAAM,CAAC,GAGbnpC,GAAImpC,GAAI9hF,GAAMgtE,EAAO8U,GAAI9hF,EAC3B,GAEJ,IAEI6hF,EAAO3U,MAAO,CAChB,IAAIA,EAAQ2U,EAAO3U,QACnBniI,OAAOC,KAAKkiI,GAAO1kI,SAAQ,SAAUuqI,GAC9BJ,GAAOI,KACVJ,GAAOI,GAAQ,IAGjBJ,GAAOI,GAAMjsI,KAAKomI,EAAM6F,GAC1B,GACF,CAEI8O,EAAO5F,UACT4F,EAAO5F,SAASrJ,GAEpB,IAuyDF,IAIImP,GAAUhO,GAAIxa,MAGd1sG,GAAOknH,GAAIlnH,wCC5+Ff,SAAS,GAAQw3G,EAAQC,GACvB,IAAIt5H,EAAOD,OAAOC,KAAKq5H,GAEvB,GAAIt5H,OAAOw5H,sBAAuB,CAChC,IAAIC,EAAUz5H,OAAOw5H,sBAAsBF,GAC3CC,IAAmBE,EAAUA,EAAQz9H,QAAO,SAAU09H,GACpD,OAAO15H,OAAO25H,yBAAyBL,EAAQI,GAAK1hH,UACtD,KAAK/X,EAAKlE,KAAKuE,MAAML,EAAMw5H,EAC7B,CAEA,OAAOx5H,CACT,CAEA,SAAS,GAAegH,GACtB,IAAK,IAAIL,EAAI,EAAGA,EAAI1H,UAAU7B,OAAQuJ,IAAK,CACzC,IAAIs4F,EAAS,MAAQhgG,UAAU0H,GAAK1H,UAAU0H,GAAK,CAAC,EACpDA,EAAI,EAAI,GAAQ5G,OAAOk/F,IAAS,GAAIzhG,SAAQ,SAAUlB,GACpD,GAAgB0K,EAAQ1K,EAAK2iG,EAAO3iG,GACtC,IAAKyD,OAAO85H,0BAA4B95H,OAAO+5H,iBAAiB9yH,EAAQjH,OAAO85H,0BAA0B56B,IAAW,GAAQl/F,OAAOk/F,IAASzhG,SAAQ,SAAUlB,GAC5JyD,OAAO8X,eAAe7Q,EAAQ1K,EAAKyD,OAAO25H,yBAAyBz6B,EAAQ3iG,GAC7E,GACF,CAEA,OAAO0K,CACT,CAEA,SAAS,GAAQ2mG,GAGf,OAAO,GAAU,mBAAqBqsB,QAAU,iBAAmBA,OAAOC,SAAW,SAAUtsB,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBqsB,QAAUrsB,EAAIgB,cAAgBqrB,QAAUrsB,IAAQqsB,OAAO1+H,UAAY,gBAAkBqyG,CAC1H,EAAG,GAAQA,EACb,CAEA,SAAS,GAAgBA,EAAKrxG,EAAK+G,GAYjC,OAXI/G,KAAOqxG,EACT5tG,OAAO8X,eAAe81F,EAAKrxG,EAAK,CAC9B+G,MAAOA,EACP0U,YAAY,EACZC,cAAc,EACdmiH,UAAU,IAGZxsB,EAAIrxG,GAAO+G,EAGNsqG,CACT,CAiBA,SAASqpC,GAAyB/3C,EAAQg4C,GACxC,GAAc,MAAVh4C,EAAgB,MAAO,CAAC,EAE5B,IAEI3iG,EAAKqK,EAFLK,EAlBN,SAAuCi4F,EAAQg4C,GAC7C,GAAc,MAAVh4C,EAAgB,MAAO,CAAC,EAC5B,IAEI3iG,EAAKqK,EAFLK,EAAS,CAAC,EACVkwI,EAAan3I,OAAOC,KAAKi/F,GAG7B,IAAKt4F,EAAI,EAAGA,EAAIuwI,EAAW95I,OAAQuJ,IACjCrK,EAAM46I,EAAWvwI,GACbswI,EAAS91I,QAAQ7E,IAAQ,IAC7B0K,EAAO1K,GAAO2iG,EAAO3iG,IAGvB,OAAO0K,CACT,CAKemwI,CAA8Bl4C,EAAQg4C,GAInD,GAAIl3I,OAAOw5H,sBAAuB,CAChC,IAAI6d,EAAmBr3I,OAAOw5H,sBAAsBt6B,GAEpD,IAAKt4F,EAAI,EAAGA,EAAIywI,EAAiBh6I,OAAQuJ,IACvCrK,EAAM86I,EAAiBzwI,GACnBswI,EAAS91I,QAAQ7E,IAAQ,GACxByD,OAAOzE,UAAU+7I,qBAAqB/oI,KAAK2wF,EAAQ3iG,KACxD0K,EAAO1K,GAAO2iG,EAAO3iG,GAEzB,CAEA,OAAO0K,CACT,CAEA,SAAS,GAAmBqzH,GAC1B,OAGF,SAA4BA,GAC1B,GAAIx6H,MAAMC,QAAQu6H,GAAM,OAAO,GAAkBA,EACnD,CALS,CAAmBA,IAO5B,SAA0Ba,GACxB,GAAsB,oBAAXlB,QAAmD,MAAzBkB,EAAKlB,OAAOC,WAA2C,MAAtBiB,EAAK,cAAuB,OAAOr7H,MAAMiiG,KAAKo5B,EACtH,CAToC,CAAiBb,IAWrD,SAAqCjmB,EAAGinB,GACtC,GAAKjnB,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGinB,GACvD,IAAIlnB,EAAIp0G,OAAOzE,UAAU+yB,SAAS/f,KAAK8lG,GAAGruG,MAAM,GAAI,GAEpD,MADU,WAANouG,GAAkBC,EAAEzF,cAAawF,EAAIC,EAAEzF,YAAYntG,MAC7C,QAAN2yG,GAAqB,QAANA,EAAoBt0G,MAAMiiG,KAAKsS,GACxC,cAAND,GAAqB,2CAA2Cp7G,KAAKo7G,GAAW,GAAkBC,EAAGinB,QAAzG,CALc,CAMhB,CAlB6D,CAA4BhB,IA4BzF,WACE,MAAM,IAAIQ,UAAU,uIACtB,CA9BiG,EACjG,CAmBA,SAAS,GAAkBR,EAAKnsB,IACnB,MAAPA,GAAeA,EAAMmsB,EAAIj9H,UAAQ8wG,EAAMmsB,EAAIj9H,QAE/C,IAAK,IAAIuJ,EAAI,EAAG20H,EAAO,IAAIz7H,MAAMquG,GAAMvnG,EAAIunG,EAAKvnG,IAAK20H,EAAK30H,GAAK0zH,EAAI1zH,GAEnE,OAAO20H,CACT,CAmEA,SAASgc,GAAS/T,GAChB,OAPoB51B,EAOH41B,GANjB51B,GAAY,IAEGA,EAKN41B,GAITA,EAASA,EAAOr/H,QAAQ,iBAAiB,SAAUoB,EAAOiyI,GACxD,OAAOA,EAAMA,EAAI7kD,cAAgB,EACnC,KAEc8kD,OAAO,EAAG,GAAG10I,cAAgBygI,EAAOiU,OAAO,GAhB3D,IAAsB7pC,CAiBtB,CAEA,IAAI8pC,GAAc,CAAC,SAqEf,IAAa,EAEjB,IACE,IAAa,CACf,CAAE,MAAOp6I,GAAI,CAUb,SAASq6I,GAAkB71H,GAGzB,OAAIA,GAA0B,WAAlB,GAAQA,IAAsBA,EAAKpF,QAAUoF,EAAKgD,UAAYhD,EAAKA,KACtEA,EAGL,GAAMA,KACD,GAAMA,KAAKA,GAIP,OAATA,EACK,KAILA,GAA0B,WAAlB,GAAQA,IAAsBA,EAAKpF,QAAUoF,EAAKgD,SACrDhD,EAILhiB,MAAMC,QAAQ+hB,IAAyB,IAAhBA,EAAKzkB,OAEvB,CACLqf,OAAQoF,EAAK,GACbgD,SAAUhD,EAAK,IAKC,iBAATA,EACF,CACLpF,OAAQ,MACRoI,SAAUhD,QAHd,CAMF,CAKA,SAAS81H,GAAcr7I,EAAK+G,GAK1B,OAAOxD,MAAMC,QAAQuD,IAAUA,EAAMjG,OAAS,IAAMyC,MAAMC,QAAQuD,IAAUA,EAAQ,GAAgB,CAAC,EAAG/G,EAAK+G,GAAS,CAAC,CACzH,CAEA,IAAIu0I,GAAY,CAAC,gBACjB,SAASC,GAAgB5Y,GACvB,IAAIjnG,EAAeinG,EAAKjnG,aACpB3pB,EAAQ2oI,GAAyB/X,EAAM2Y,IAEvCE,EAAWzpI,EAAMwT,KACjBk2H,EAAW1pI,EAAMq7H,KACjBC,EAASt7H,EAAMs7H,OACfttI,EAAYgS,EAAMhS,UAClB8mB,EAAQ9U,EAAM8U,MACd0mH,EAAUx7H,EAAMw7H,QAChBD,EAASv7H,EAAMu7H,OACfrB,EAAamP,GAAkBI,GAC/Bj3I,EAAU82I,GAAc,UAAW,GAAG11I,OAAO,GA3NnD,SAAmBoM,GACjB,IAAI2pI,EAEAC,EAAO5pI,EAAM4pI,KACbC,EAAO7pI,EAAM6pI,KACbC,EAAW9pI,EAAM8pI,SACjBC,EAAS/pI,EAAM+pI,OACfC,EAAQhqI,EAAMgqI,MACdC,EAAQjqI,EAAMiqI,MACdC,EAAOlqI,EAAMkqI,KACbC,EAAYnqI,EAAMmqI,UAClBC,EAAcpqI,EAAMoqI,YACpBC,EAAQrqI,EAAMqqI,MACdC,EAAatqI,EAAMsqI,WACnBC,EAAUvqI,EAAMuqI,QAChB3wH,EAAS5Z,EAAM4Z,OACf4wH,EAAWxqI,EAAMwqI,SACjBC,EAAOzqI,EAAMyqI,KACb9jI,EAAO3G,EAAM2G,KACb+jI,EAAW1qI,EAAM0qI,SACjBC,EAAO3qI,EAAM2qI,KAEbn4I,GAkBD,GAlBYm3I,EAAW,CACxB,UAAWC,EACX,UAAWC,EACX,eAAgBC,EAChB,YAAaC,EACb,WAAYC,EACZ,WAAYC,EACZ,UAAWC,EACX,kBAAmBE,EACnB,gBAAiBD,EACjB,WAAYE,EACZ,QAASC,EACT,aAAcC,EACd,YAAa3wH,EACb,QAAS4wH,EACT,WAAoB,IAATC,EACX,qBAA+B,eAATA,GAAkC,SAATA,EAC/C,mBAA6B,aAATA,GAAgC,SAATA,GAChB,MAAM72I,OAAO+S,GAAO,MAAOA,GAAwC,GAAgBgjI,EAAU,aAAa/1I,OAAO82I,GAAW,MAAOA,GAA8D,IAAbA,GAAiB,GAAgBf,EAAU,WAAW/1I,OAAO+2I,GAAO,MAAOA,GAAwC,GAAgBhB,EAAU,kBAAmB3pI,EAAM4qI,aAAcjB,GAGrY,OAAOj4I,OAAOC,KAAKa,GAASP,KAAI,SAAUhE,GACxC,OAAOuE,EAAQvE,GAAOA,EAAM,IAC9B,IAAGP,QAAO,SAAUO,GAClB,OAAOA,CACT,GACF,CA2KsEkhE,CAAUnvD,IAAS,GAAmBhS,EAAU+E,MAAM,QACtHo6C,EAAYm8F,GAAc,YAAwC,iBAApBtpI,EAAMmtC,UAAyB,GAAMA,UAAUntC,EAAMmtC,WAAantC,EAAMmtC,WACtHkuF,EAAOiO,GAAc,OAAQD,GAAkBK,IAC/CmB,EAAer3H,GAAK0mH,EAAY,GAAe,GAAe,GAAe,GAAe,CAAC,EAAG1nI,GAAU26C,GAAYkuF,GAAO,CAAC,EAAG,CACnIC,OAAQA,EACRxmH,MAAOA,EACP0mH,QAASA,EACTD,OAAQA,KAGV,IAAKsP,EAEH,OAnFJ,WAEI,IAAIC,GADD,IAAc/uD,SAAoC,mBAAlBA,QAAQ9oB,QAG1C63E,EAAW/uD,SAAS9oB,MAAMjhE,MAAM84I,EAAUl6I,UAE/C,CA4EIm6I,CAAI,sBAAuB7Q,GACpB,KAGT,IAAIgB,EAAW2P,EAAa3P,SACxB8P,EAAa,CACfviI,IAAKkhB,GAQP,OANAj4B,OAAOC,KAAKqO,GAAO7Q,SAAQ,SAAUlB,GAE9Bu7I,GAAgBjjI,aAAapV,eAAelD,KAC/C+8I,EAAW/8I,GAAO+R,EAAM/R,GAE5B,IACOg9I,GAAa/P,EAAS,GAAI8P,EACnC,CACAxB,GAAgB17I,YAAc,kBAC9B07I,GAAgB0B,UAAY,CAC1BtB,KAAM,UACNhwH,OAAQ,UACRkwH,SAAU,UACVC,OAAQ,UACR/7I,UAAW,YACX67I,KAAM,UACNI,MAAO,UACP5O,KAAM,eAAoB,CAAC,YAAkB,WAAiB,cAC9DE,OAAQ,YACR+O,WAAY,UACZC,QAAS,UACTE,KAAM,WAAgB,EAAC,GAAM,EAAO,aAAc,WAAY,SAC9Dj3H,KAAM,eAAoB,CAAC,YAAkB,WAAiB,cAC9Dg3H,SAAU,UACVG,KAAM,WAAgB,CAAC,QAAS,SAChCN,MAAO,UACPK,SAAU,WAAgB,CAAC,EAAG,GAAI,IAAK,MACvCV,MAAO,UACPrjI,KAAM,WAAgB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QACnHujI,KAAM,UACNC,UAAW,UACXC,YAAa,UACb9O,OAAQ,eAAoB,CAAC,UAAgB,cAC7CxmH,MAAO,YACP0mH,QAAS,YACTruF,UAAW,eAAoB,CAAC,YAAkB,cAClDy9F,YAAa,WAEfpB,GAAgBjjI,aAAe,CAC7BqT,QAAQ,EACR5rB,UAAW,GACXqtI,KAAM,KACNE,OAAQ,KACR+O,YAAY,EACZC,SAAS,EACTE,MAAM,EACNj3H,KAAM,KACNg3H,UAAU,EACVG,KAAM,KACNN,OAAO,EACPK,SAAU,KACV/jI,KAAM,KACNujI,MAAM,EACNC,WAAW,EACXC,aAAa,EACbR,MAAM,EACNC,MAAM,EACNC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACP1O,QAAQ,EACRxmH,MAAO,GACP0mH,QAAS,KACTruF,UAAW,KACXy9F,aAAa,GAEf,IAAIK,GAnNJ,SAASE,EAAQr7I,EAAenB,GAC9B,IAAIq8I,EAAap6I,UAAU7B,OAAS,QAAsB/E,IAAjB4G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEtF,GAAuB,iBAAZjC,EACT,OAAOA,EAGT,IAAIia,GAAYja,EAAQia,UAAY,IAAI3W,KAAI,SAAUwY,GACpD,OAAO0gI,EAAQr7I,EAAe2a,EAChC,IAGI2gI,EAAS15I,OAAOC,KAAKhD,EAAQylI,YAAc,CAAC,GAAG98H,QAAO,SAAUijG,EAAKtsG,GACvE,IAAIujH,EAAM7iH,EAAQylI,WAAWnmI,GAE7B,OAAQA,GACN,IAAK,QACHssG,EAAI8wC,MAAiB,UAAI75B,SAClB7iH,EAAQylI,WAAkB,MACjC,MAEF,IAAK,QACH75B,EAAI8wC,MAAa,MAAkB75B,EAnC5Bz+G,MAAM,KAAKd,KAAI,SAAU2F,GACpC,OAAOA,EAAER,MACX,IAAG1J,QAAO,SAAUkK,GAClB,OAAOA,CACT,IAAGN,QAAO,SAAUijG,EAAK+wC,GACvB,IAVgB95B,EAUZl5G,EAAIgzI,EAAKx4I,QAAQ,KACjB5B,EAAO+3I,GAASqC,EAAK5zI,MAAM,EAAGY,IAC9BtD,EAAQs2I,EAAK5zI,MAAMY,EAAI,GAAGlB,OAE9B,OADAlG,EAAK8sH,WAAW,UAAYzjB,GAbZiX,EAa2BtgH,EAZtCsgH,EAAIx4G,OAAO,GAAGqrF,cAAgBmtB,EAAI95G,MAAM,KAYO1C,EAAQulG,EAAIrpG,GAAQ8D,EACjEulG,CACT,GAAG,CAAC,GA0BE,MAEF,QAC+B,IAAzBtsG,EAAI6E,QAAQ,UAA2C,IAAzB7E,EAAI6E,QAAQ,SAC5CynG,EAAI8wC,MAAMp9I,EAAIwG,eAAiB+8G,EAE/BjX,EAAI8wC,MAAMpC,GAASh7I,IAAQujH,EAKjC,OAAOjX,CACT,GAAG,CACD8wC,MAAO,CAAC,IAGNE,EAAoBP,EAAWr2I,MAC/B62I,OAAsC,IAAtBD,EAA+B,CAAC,EAAIA,EACpDE,EAAY9C,GAAyBqC,EAAY5B,IAKrD,OAHAgC,EAAOC,MAAa,MAAI,GAAe,GAAe,CAAC,EAAGD,EAAOC,MAAa,OAAIG,GAG3E17I,EAAckC,WAAM,EAAQ,CAACrD,EAAQoZ,IAAK,GAAe,GAAe,CAAC,EAAGqjI,EAAOC,OAAQI,IAAY73I,OAAO,GAAmBgV,IAC1I,EAoK2Bsd,KAAK,KAAM,oFC7Y/B,IAAIwlH,EAA6B,8BAC7BC,EAA0B,2BAC1BC,EAA4B,wFChCvC,IAkCQnzG,EAlCJozG,EAAsC,WAStC,OARAA,EAAWn6I,OAAO+gH,QAAU,SAASvM,GACjC,IAAK,IAAItuG,EAAGU,EAAI,EAAGwtG,EAAIl1G,UAAU7B,OAAQuJ,EAAIwtG,EAAGxtG,IAE5C,IAAK,IAAIG,KADTb,EAAIhH,UAAU0H,GACO5G,OAAOzE,UAAUkE,eAAe8O,KAAKrI,EAAGa,KACzDytG,EAAEztG,GAAKb,EAAEa,IAEjB,OAAOytG,CACX,EACO2lC,EAAS75I,MAAMzG,KAAMqF,UAChC,EAGIsP,EAA0B,oBAAXrV,OAAyB,EAAA46G,EAAS56G,OAEjDihJ,EAAc5rI,GAASA,EAAM6rI,aAAe7rI,EAAM6rI,YAAY97I,MAC9D+7I,IAkBIvzG,EAAQv4B,EAAM+rI,gBAAkB,CAChChqI,WAAOjY,EACPkiJ,sBAAkBliJ,EAClBmiJ,iBAAkB,KAEXC,WACP3zG,EAAQozG,EAASA,EAAS,CAAC,EAAGpzG,GAAQ,CAAE0kG,KAAM,CACtCvkI,MAAO,EACPwkG,SAAU,GACXgvC,SAAU,CACTC,WAAY,EACZ1kE,KAAM,EACN2kE,OAAQ,OAGf7zG,EAAM8zG,2BACP9zG,EAAQozG,EAASA,EAAS,CAAC,EAAGpzG,GAAQ,CAAE8zG,yBAA0B,MAEtErsI,EAAM+rI,eAAiBxzG,EAChBA,GAjCP+zG,EAAmB,iHACnBruC,EAAM,WACN,MAA8B,oBAAhBuvB,aAAiCA,YAAYvvB,IAAMuvB,YAAYvvB,MAAQ30G,KAAK20G,KAC9F,EACA,SAASqvB,EAAQ7vB,GACb,IAAI1iB,EAAQkjB,IACZR,IACA,IAAI74F,EAAMq5F,IACV6tC,EAAY7O,KAAK//B,UAAYt4F,EAAMm2E,CACvC,CAgCO,SAASwxD,EAAWn6I,EAAQo6I,QACb,IAAdA,IAAwBA,GAAY,GACxClf,GAAQ,WACJ,IAAImf,EAAan7I,MAAMC,QAAQa,GAAUA,EAsK1C,SAAqBA,GACxB,IAAI/I,EAAS,GACb,GAAI+I,EAAQ,CAGR,IAFA,IAAIs6I,EAAM,EACNC,OAAa,EACTA,EAAaL,EAAiBt1I,KAAK5E,IAAU,CACjD,IAAIiF,EAAas1I,EAAWx4I,MACxBkD,EAAaq1I,GACbrjJ,EAAOkE,KAAK,CACRq/I,UAAWx6I,EAAOiG,UAAUq0I,EAAKr1I,KAGzChO,EAAOkE,KAAK,CACRwU,MAAO4qI,EAAW,GAClB/oC,aAAc+oC,EAAW,KAG7BD,EAAMJ,EAAiB/sB,SAC3B,CAEAl2H,EAAOkE,KAAK,CACRq/I,UAAWx6I,EAAOiG,UAAUq0I,IAEpC,CACA,OAAOrjJ,CACX,CA/L0DwjJ,CAAYz6I,GAC1DxH,EAAKkhJ,EAAYI,SAAUzkE,EAAO78E,EAAG68E,KAAM2kE,EAASxhJ,EAAGwhJ,OAAQD,EAAavhJ,EAAGuhJ,WAC/EK,GAAsB,IAAT/kE,GACb2kE,EAAO7+I,KAAKk/I,GACPN,IACDL,EAAYI,SAASC,WAwC1BtlH,YAAW,WACdilH,EAAYI,SAASC,WAAa,EAdtC7e,GAAQ,WACJ,IAAIwf,EAAchB,EAAYI,SAASE,OAAO50I,QAC9Cs0I,EAAYI,SAASE,OAAS,GAC9B,IAAIW,EAAmB,GAAGr5I,OAAO5B,MAAM,GAAIg7I,GACvCC,EAAiBl+I,OAAS,GAC1Bm+I,EAAoBD,EAE5B,GASA,GAAG,KAvCKC,EAAoBP,EAE5B,GACJ,CA4CA,SAASO,EAAoBC,EAAaC,GAClCpB,EAAYS,WACZT,EAAYS,WAAWY,EAAqBF,GAAa3Q,YAAa2Q,GA4I9E,SAAwBG,GACpB,GAAwB,oBAAbrjJ,SAAX,CAGA,IAAI2F,EAAO3F,SAASsjJ,qBAAqB,QAAQ,GAC7C19I,EAAe5F,SAAS6F,cAAc,SACtChF,EAAKuiJ,EAAqBC,GAAa9Q,EAAc1xI,EAAG0xI,YAAagR,EAAW1iJ,EAAG0iJ,SACvF39I,EAAaG,aAAa,0BAA2B,QACjD87I,GACAj8I,EAAaG,aAAa,QAAS87I,GAEvCj8I,EAAaZ,YAAYhF,SAASiF,eAAestI,IACjDwP,EAAY7O,KAAKvkI,QACjBhJ,EAAKX,YAAYY,GACjB,IAAIgP,EAAK5U,SAASqV,YAAY,cAC9BT,EAAGgjG,UAAU,eAAe,GAAwB,GACpDhjG,EAAG3Q,KAAO,CACNu/I,SAAU59I,GAEd5F,SAASuV,cAAcX,GACvB,IAAIyjG,EAAS,CACTzyG,aAAcA,EACd69I,cAAeJ,GAEfE,EACAxB,EAAYO,yBAAyB9+I,KAAK60G,GAG1C0pC,EAAYG,iBAAiB1+I,KAAK60G,EAzBtC,CA2BJ,CAvKQqrC,CAAeR,EAEvB,CAMO,SAASjyC,EAAUj5F,GACtB+pI,EAAY/pI,MAAQA,EA+BxB,WACI,GAAI+pI,EAAY/pI,MAAO,CAEnB,IADA,IAAI2rI,EAAiB,GACZj9I,EAAK,EAAG7F,EAAKkhJ,EAAYO,yBAA0B57I,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC9E,IAAIy8I,EAActiJ,EAAG6F,GACrBi9I,EAAengJ,KAAK2/I,EAAYM,cACpC,CACIE,EAAe7+I,OAAS,SA5BjB,KADSyjD,EA8BJ,KA7BKA,EAAS,GACnB,IAAXA,GAAuD,IAAXA,IAC5Cq7F,EAAoB7B,EAAYG,kBAChCH,EAAYG,iBAAmB,IAEpB,IAAX35F,GAAuD,IAAXA,IAC5Cq7F,EAAoB7B,EAAYO,0BAChCP,EAAYO,yBAA2B,IAuBnCW,EAAoB,GAAGt5I,OAAO5B,MAAM,GAAI47I,IAEhD,CAjCG,IAAqBp7F,CAkC5B,CAzCIs7F,EACJ,CAiBA,SAASD,EAAoBE,GACzBA,EAAQ5+I,SAAQ,SAAUi+I,GACtB,IAAIv9I,EAAeu9I,GAAeA,EAAYv9I,aAC1CA,GAAgBA,EAAamR,eAC7BnR,EAAamR,cAAcgnC,YAAYn4C,EAE/C,GACJ,CA+BA,SAASw9I,EAAqBW,GAC1B,IAAI/rI,EAAQ+pI,EAAY/pI,MACpBurI,GAAW,EA2Bf,MAAO,CACHhR,aAzBiBwR,GAAmB,IAAI/7I,KAAI,SAAUV,GACtD,IAAI08I,EAAY18I,EAAa0Q,MAC7B,GAAIgsI,EAAW,CACXT,GAAW,EAEX,IAAIU,EAAcjsI,EAAQA,EAAMgsI,QAAajkJ,EACzC85G,EAAevyG,EAAauyG,cAAgB,UAWhD,OARI7hG,IACCisI,GACDnyD,WACEkyD,KAAahsI,IACE,oBAAVksI,OACPA,OACApyD,QAAQC,KAAK,mCAAoCpoF,OAAOq6I,EAAW,wBAA0Br6I,OAAOkwG,EAAc,OAE/GoqC,GAAepqC,CAC1B,CAGI,OAAOvyG,EAAau7I,SAE5B,IAE+Bx9I,KAAK,IAChCk+I,SAAUA,EAElB,iDChOA,MAAMY,EAAuC,CAAC,EAAG,IAAM,IAAO,IAAO,MAE9D,MAAMC,EACT/tC,YAAYguC,GACR/iJ,KAAKgjJ,kBAA+BvkJ,IAAhBskJ,EAA4B,IAAIA,EAAa,MAAQF,CAC7E,CACAI,6BAA6BC,GACzB,OAAOljJ,KAAKgjJ,aAAaE,EAAaC,mBAC1C,ECTG,MAAMC,GAEbA,EAAYC,cAAgB,gBAC5BD,EAAYE,OAAS,SCFd,MAAMC,EACTxuC,YAAYyuC,EAAYC,EAAYp+G,GAChCrlC,KAAKwjJ,WAAaA,EAClBxjJ,KAAKyjJ,WAAaA,EAClBzjJ,KAAKqlC,QAAUA,CACnB,EAMG,MAAMq+G,EACTxlI,IAAIs+C,EAAKz0D,GACL,OAAO/H,KAAK2jJ,KAAK,IACV57I,EACH67I,OAAQ,MACRpnF,OAER,CACAqnF,KAAKrnF,EAAKz0D,GACN,OAAO/H,KAAK2jJ,KAAK,IACV57I,EACH67I,OAAQ,OACRpnF,OAER,CACAngD,OAAOmgD,EAAKz0D,GACR,OAAO/H,KAAK2jJ,KAAK,IACV57I,EACH67I,OAAQ,SACRpnF,OAER,CAOAsnF,gBAAgBtnF,GACZ,MAAO,EACX,ECvCG,MAAMunF,UAA8BL,EACvC3uC,YAAYivC,EAAaC,GACrBC,QACAlkJ,KAAKmkJ,aAAeH,EACpBhkJ,KAAKokJ,oBAAsBH,CAC/B,CACAtoG,WAAW0oG,GACP,IAAIC,GAAa,EACbtkJ,KAAKokJ,uBAAyBpkJ,KAAKukJ,cAAiBF,EAAQ7nF,KAAO6nF,EAAQ7nF,IAAIj1D,QAAQ,eAAiB,KAExG+8I,GAAa,EACbtkJ,KAAKukJ,mBAAqBvkJ,KAAKokJ,uBAEnCpkJ,KAAKwkJ,wBAAwBH,GAC7B,MAAMI,QAAiBzkJ,KAAKmkJ,aAAaR,KAAKU,GAC9C,OAAIC,GAAsC,MAAxBG,EAASjB,YAAsBxjJ,KAAKokJ,qBAClDpkJ,KAAKukJ,mBAAqBvkJ,KAAKokJ,sBAC/BpkJ,KAAKwkJ,wBAAwBH,SAChBrkJ,KAAKmkJ,aAAaR,KAAKU,IAEjCI,CACX,CACAD,wBAAwBH,GACfA,EAAQK,UACTL,EAAQK,QAAU,CAAC,GAEnB1kJ,KAAKukJ,aACLF,EAAQK,QAAQtB,EAAYC,eAAiB,UAAUrjJ,KAAKukJ,eAGvDvkJ,KAAKokJ,qBACNC,EAAQK,QAAQtB,EAAYC,uBACrBgB,EAAQK,QAAQtB,EAAYC,cAG/C,CACAS,gBAAgBtnF,GACZ,OAAOx8D,KAAKmkJ,aAAaL,gBAAgBtnF,EAC7C,ECxCG,MAAMmoF,UAAkBvrH,MAM3B27E,YAAYtmD,EAAc+0F,GACtB,MAAMoB,aAAuBljJ,UAC7BwiJ,MAAM,GAAGz1F,mBAA8B+0F,MACvCxjJ,KAAKwjJ,WAAaA,EAGlBxjJ,KAAK6kJ,UAAYD,CACrB,EAGG,MAAME,UAAqB1rH,MAK9B27E,YAAYtmD,EAAe,uBACvB,MAAMm2F,aAAuBljJ,UAC7BwiJ,MAAMz1F,GAGNzuD,KAAK6kJ,UAAYD,CACrB,EAGG,MAAMG,UAAmB3rH,MAK5B27E,YAAYtmD,EAAe,sBACvB,MAAMm2F,aAAuBljJ,UAC7BwiJ,MAAMz1F,GAGNzuD,KAAK6kJ,UAAYD,CACrB,EAIG,MAAMI,UAAkC5rH,MAM3C27E,YAAY7vB,EAAS+/D,GACjB,MAAML,aAAuBljJ,UAC7BwiJ,MAAMh/D,GACNllF,KAAKilJ,UAAYA,EACjBjlJ,KAAKklJ,UAAY,4BAGjBllJ,KAAK6kJ,UAAYD,CACrB,EAIG,MAAMO,UAA+B/rH,MAMxC27E,YAAY7vB,EAAS+/D,GACjB,MAAML,aAAuBljJ,UAC7BwiJ,MAAMh/D,GACNllF,KAAKilJ,UAAYA,EACjBjlJ,KAAKklJ,UAAY,yBAGjBllJ,KAAK6kJ,UAAYD,CACrB,EAIG,MAAMQ,UAAoChsH,MAM7C27E,YAAY7vB,EAAS+/D,GACjB,MAAML,aAAuBljJ,UAC7BwiJ,MAAMh/D,GACNllF,KAAKilJ,UAAYA,EACjBjlJ,KAAKklJ,UAAY,8BAGjBllJ,KAAK6kJ,UAAYD,CACrB,EAIG,MAAMS,UAAyCjsH,MAKlD27E,YAAY7vB,GACR,MAAM0/D,aAAuBljJ,UAC7BwiJ,MAAMh/D,GACNllF,KAAKklJ,UAAY,mCAGjBllJ,KAAK6kJ,UAAYD,CACrB,EAIG,MAAMU,UAAwBlsH,MAMjC27E,YAAY7vB,EAASqgE,GACjB,MAAMX,aAAuBljJ,UAC7BwiJ,MAAMh/D,GACNllF,KAAKulJ,YAAcA,EAGnBvlJ,KAAK6kJ,UAAYD,CACrB,iBChIG,MAAMY,EACTzwC,cAAgB,CAGhByqC,IAAIiG,EAAWC,GACf,EAGJF,EAAWtY,SAAW,IAAIsY,ECLnB,MAAMG,EAAU,SAEhB,MAAMC,EACTC,kBAAkB5/B,EAAKr+G,GACnB,GAAIq+G,QACA,MAAM,IAAI7sF,MAAM,QAAQxxB,2BAEhC,CACAi+I,kBAAkB5/B,EAAKr+G,GACnB,IAAKq+G,GAAOA,EAAIv6G,MAAM,SAClB,MAAM,IAAI0tB,MAAM,QAAQxxB,mCAEhC,CACAi+I,YAAY5/B,EAAKvuB,EAAQ9vF,GAErB,KAAMq+G,KAAOvuB,GACT,MAAM,IAAIt+D,MAAM,WAAWxxB,YAAeq+G,KAElD,EAGG,MAAM6/B,EAEEC,uBACP,MAAyB,iBAAXzmJ,QAAkD,iBAApBA,OAAOZ,QACvD,CAEWsnJ,yBACP,MAAuB,iBAATC,MAAqB,kBAAmBA,IAC1D,CAEWC,2BACP,MAAyB,iBAAX5mJ,aAAkD,IAApBA,OAAOZ,QACvD,CAGWynJ,oBACP,OAAQnmJ,KAAK+lJ,YAAc/lJ,KAAKgmJ,cAAgBhmJ,KAAKkmJ,aACzD,EAGG,SAASE,EAAcprH,EAAMqrH,GAChC,IAAIC,EAAS,GAab,OAZIC,EAAcvrH,IACdsrH,EAAS,yBAAyBtrH,EAAKwrH,aACnCH,IACAC,GAAU,eAYf,SAA2BtrH,GAC9B,MAAMyrH,EAAO,IAAIC,WAAW1rH,GAE5B,IAAI20F,EAAM,GAMV,OALA82B,EAAK7iJ,SAAS+iJ,IAEVh3B,GAAO,KADKg3B,EAAM,GAAK,IAAM,KACXA,EAAIlyH,SAAS,MAAM,IAGlCk7F,EAAIiuB,OAAO,EAAGjuB,EAAInsH,OAAS,EACtC,CAtBqCojJ,CAAkB5rH,QAG1B,iBAATA,IACZsrH,EAAS,yBAAyBtrH,EAAKx3B,SACnC6iJ,IACAC,GAAU,eAAetrH,OAG1BsrH,CACX,CAeO,SAASC,EAActgC,GAC1B,OAAOA,GAA8B,oBAAhB4gC,cAChB5gC,aAAe4gC,aAEX5gC,EAAIlR,aAAwC,gBAAzBkR,EAAIlR,YAAYntG,KAChD,CAEO+zC,eAAemrG,EAAYC,EAAQC,EAAeC,EAAYzqF,EAAKn3B,EAASt9B,GAC/E,MAAM28I,EAAU,CAAC,GACV98I,EAAM6B,GAASy9I,IACtBxC,EAAQ98I,GAAQ6B,EAChBs9I,EAAOvH,IAAI,IAAS2H,MAAO,IAAIH,8BAA0CZ,EAAc/gH,EAASt9B,EAAQq/I,uBACxG,MAAMC,EAAed,EAAclhH,GAAW,cAAgB,OACxDo/G,QAAiBwC,EAAWpD,KAAKrnF,EAAK,CACxCn3B,UACAq/G,QAAS,IAAKA,KAAY38I,EAAQ28I,SAClC2C,eACAC,QAASv/I,EAAQu/I,QACjBC,gBAAiBx/I,EAAQw/I,kBAE7BR,EAAOvH,IAAI,IAAS2H,MAAO,IAAIH,mDAA+DvC,EAASjB,cAC3G,CAeO,MAAMgE,EACTzyC,YAAYs0B,EAASoe,GACjBznJ,KAAK0nJ,SAAWre,EAChBrpI,KAAK2nJ,UAAYF,CACrB,CACA3lI,UACI,MAAMhZ,EAAQ9I,KAAK0nJ,SAASE,UAAUrgJ,QAAQvH,KAAK2nJ,WAC/C7+I,GAAS,GACT9I,KAAK0nJ,SAASE,UAAUl6I,OAAO5E,EAAO,GAEH,IAAnC9I,KAAK0nJ,SAASE,UAAUpkJ,QAAgBxD,KAAK0nJ,SAASG,gBACtD7nJ,KAAK0nJ,SAASG,iBAAiBvR,OAAOrnD,IAAD,GAE7C,EAGG,MAAM64D,EACT/yC,YAAYgzC,GACR/nJ,KAAKgoJ,UAAYD,EACjB/nJ,KAAKioJ,IAAMz3D,OACf,CACAgvD,IAAI0I,EAAUhjE,GACV,GAAIgjE,GAAYloJ,KAAKgoJ,UAAW,CAC5B,MAAMG,EAAM,KAAI,IAAIlqJ,MAAOmqJ,kBAAkB,IAASF,OAAchjE,IACpE,OAAQgjE,GACJ,KAAK,IAASG,SACd,KAAK,IAASjvH,MACVp5B,KAAKioJ,IAAIvgF,MAAMygF,GACf,MACJ,KAAK,IAASG,QACVtoJ,KAAKioJ,IAAIx3D,KAAK03D,GACd,MACJ,KAAK,IAASI,YACVvoJ,KAAKioJ,IAAIO,KAAKL,GACd,MACJ,QAEInoJ,KAAKioJ,IAAIzI,IAAI2I,GAGzB,CACJ,EAGG,SAASjB,IACZ,IAAIuB,EAAsB,uBAI1B,OAHI3C,EAASK,SACTsC,EAAsB,cAEnB,CAACA,EAAqBC,EAAmB/C,EAASgD,IAmDrD7C,EAASK,OACF,SAGA,UAvDyEyC,KACxF,CAEO,SAASF,EAAmBG,EAASC,EAAIC,EAASC,GAErD,IAAI5pJ,EAAY,qBAChB,MAAM6pJ,EAAgBJ,EAAQrhJ,MAAM,KAiBpC,OAhBApI,GAAa,GAAG6pJ,EAAc,MAAMA,EAAc,KAClD7pJ,GAAa,KAAKypJ,MAEdzpJ,GADA0pJ,GAAa,KAAPA,EACO,GAAGA,MAGH,eAEjB1pJ,GAAa,GAAG2pJ,IAEZ3pJ,GADA4pJ,EACa,KAAKA,IAGL,4BAEjB5pJ,GAAa,IACNA,CACX,CAEc,SAASupJ,IACnB,IAAI7C,EAASK,OAaT,MAAO,GAZP,OAAQ+C,QAAQC,UACZ,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAOD,QAAQC,SAM/B,CAEc,SAASP,IACnB,GAAI9C,EAASK,OACT,OAAO+C,QAAQE,SAAStiC,IAGhC,CAUO,SAASuiC,EAAe5lJ,GAC3B,OAAIA,EAAE04H,MACK14H,EAAE04H,MAEJ14H,EAAEyhF,QACAzhF,EAAEyhF,QAEN,GAAGzhF,GACd,CC/NO,MAAM6lJ,UAAwB5F,EACjC3uC,YAAYgyC,GAGR,GAFA7C,QACAlkJ,KAAKupJ,QAAUxC,EACM,oBAAVyC,MAAuB,CAG9B,MAAMC,EAA0D,QAEhEzpJ,KAAK0pJ,KAAO,IAAKD,EAAY,gBAAiBE,WAC9C3pJ,KAAK4pJ,WAAaH,EAAY,cAG9BzpJ,KAAK4pJ,WAAaH,EAAY,eAAZA,CAA4BzpJ,KAAK4pJ,WAAY5pJ,KAAK0pJ,KACxE,MAEI1pJ,KAAK4pJ,WAAaJ,MAAM7uH,KDiN7B,WAEH,GAA0B,oBAAfkvH,WACP,OAAOA,WAEX,GAAoB,oBAAT5D,KACP,OAAOA,KAEX,GAAsB,oBAAX3mJ,OACP,OAAOA,OAEX,QAAsB,IAAX,EAAA46G,EACP,OAAO,EAAAA,EAEX,MAAM,IAAI9gF,MAAM,wBACpB,CChOyC0wH,IAEjC,GAA+B,oBAApBC,gBAAiC,CAGxC,MAAMN,EAA0D,QAEhEzpJ,KAAKgqJ,qBAAuBP,EAAY,mBAC5C,MAEIzpJ,KAAKgqJ,qBAAuBD,eAEpC,CAEApuG,WAAW0oG,GAEP,GAAIA,EAAQ4F,aAAe5F,EAAQ4F,YAAYC,QAC3C,MAAM,IAAInF,EAEd,IAAKV,EAAQT,OACT,MAAM,IAAIxqH,MAAM,sBAEpB,IAAKirH,EAAQ7nF,IACT,MAAM,IAAIpjC,MAAM,mBAEpB,MAAM+wH,EAAkB,IAAInqJ,KAAKgqJ,qBACjC,IAAItiF,EAEA28E,EAAQ4F,cACR5F,EAAQ4F,YAAYG,QAAU,KAC1BD,EAAgBE,QAChB3iF,EAAQ,IAAIq9E,CAAY,GAKhC,IAsBIN,EAtBAx7F,EAAY,KAChB,GAAIo7F,EAAQiD,QAAS,CACjB,MAAMgD,EAAYjG,EAAQiD,QAC1Br+F,EAAYztB,YAAW,KACnB2uH,EAAgBE,QAChBrqJ,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,8BACnC5gF,EAAQ,IAAIo9E,CAAc,GAC3BwF,EACP,CACwB,KAApBjG,EAAQh/G,UACRg/G,EAAQh/G,aAAU5mC,GAElB4lJ,EAAQh/G,UAERg/G,EAAQK,QAAUL,EAAQK,SAAW,CAAC,EAClC6B,EAAclC,EAAQh/G,SACtBg/G,EAAQK,QAAQ,gBAAkB,2BAGlCL,EAAQK,QAAQ,gBAAkB,4BAI1C,IACID,QAAiBzkJ,KAAK4pJ,WAAWvF,EAAQ7nF,IAAK,CAC1C/gD,KAAM4oI,EAAQh/G,QACdghF,MAAO,WACPkkC,aAAyC,IAA5BlG,EAAQkD,gBAA2B,UAAY,cAC5D7C,QAAS,CACL,mBAAoB,oBACjBL,EAAQK,SAEfd,OAAQS,EAAQT,OAChBxnE,KAAM,OACNouE,SAAU,SACVC,OAAQN,EAAgBM,QAEhC,CACA,MAAOhnJ,GACH,GAAIikE,EACA,MAAMA,EAGV,MADA1nE,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,4BAA4B7kJ,MACzDA,CACV,CACA,QACQwlD,GACA1tB,aAAa0tB,GAEbo7F,EAAQ4F,cACR5F,EAAQ4F,YAAYG,QAAU,KAEtC,CACA,IAAK3F,EAASiG,GAAI,CACd,MAAMj8F,QAAqBk8F,EAAmBlG,EAAU,QACxD,MAAM,IAAIE,EAAUl2F,GAAgBg2F,EAAShB,WAAYgB,EAASmG,OACtE,CACA,MAAMvlH,EAAUslH,EAAmBlG,EAAUJ,EAAQgD,cAC/CwD,QAAgBxlH,EACtB,OAAO,IAAIk+G,EAAakB,EAASmG,OAAQnG,EAAShB,WAAYoH,EAClE,CACA/G,gBAAgBtnF,GACZ,IAAIsuF,EAAU,GAKd,OAJIhF,EAASK,QAAUnmJ,KAAK0pJ,MAExB1pJ,KAAK0pJ,KAAKqB,WAAWvuF,GAAK,CAAC/4D,EAAGs2G,IAAM+wC,EAAU/wC,EAAEh2G,KAAK,QAElD+mJ,CACX,EAEJ,SAASH,EAAmBlG,EAAU4C,GAClC,IAAIhiH,EACJ,OAAQgiH,GACJ,IAAK,cACDhiH,EAAUo/G,EAASuG,cACnB,MACJ,IAAK,OAOL,QACI3lH,EAAUo/G,EAASp5H,OACnB,MANJ,IAAK,OACL,IAAK,WACL,IAAK,OACD,MAAM,IAAI+N,MAAM,GAAGiuH,uBAK3B,OAAOhiH,CACX,CC5IO,MAAM4lH,UAAsBvH,EAC/B3uC,YAAYgyC,GACR7C,QACAlkJ,KAAKupJ,QAAUxC,CACnB,CAEApD,KAAKU,GAED,OAAIA,EAAQ4F,aAAe5F,EAAQ4F,YAAYC,QACpCzqG,QAAQsvF,OAAO,IAAIgW,GAEzBV,EAAQT,OAGRS,EAAQ7nF,IAGN,IAAI/c,SAAQ,CAACC,EAASqvF,KACzB,MAAMmc,EAAM,IAAIC,eAChBD,EAAI54E,KAAK+xE,EAAQT,OAAQS,EAAQ7nF,KAAK,GACtC0uF,EAAI3D,qBAA8C9oJ,IAA5B4lJ,EAAQkD,iBAAuClD,EAAQkD,gBAC7E2D,EAAIE,iBAAiB,mBAAoB,kBACjB,KAApB/G,EAAQh/G,UACRg/G,EAAQh/G,aAAU5mC,GAElB4lJ,EAAQh/G,UAEJkhH,EAAclC,EAAQh/G,SACtB6lH,EAAIE,iBAAiB,eAAgB,4BAGrCF,EAAIE,iBAAiB,eAAgB,6BAG7C,MAAM1G,EAAUL,EAAQK,QACpBA,GACAv+I,OAAOC,KAAKs+I,GACP9gJ,SAAS8hC,IACVwlH,EAAIE,iBAAiB1lH,EAAQg/G,EAAQh/G,GAAQ,IAGjD2+G,EAAQgD,eACR6D,EAAI7D,aAAehD,EAAQgD,cAE3BhD,EAAQ4F,cACR5F,EAAQ4F,YAAYG,QAAU,KAC1Bc,EAAIb,QACJtb,EAAO,IAAIgW,EAAa,GAG5BV,EAAQiD,UACR4D,EAAI5D,QAAUjD,EAAQiD,SAE1B4D,EAAIG,OAAS,KACLhH,EAAQ4F,cACR5F,EAAQ4F,YAAYG,QAAU,MAE9Bc,EAAIN,QAAU,KAAOM,EAAIN,OAAS,IAClClrG,EAAQ,IAAI6jG,EAAa2H,EAAIN,OAAQM,EAAIzH,WAAYyH,EAAIzG,UAAYyG,EAAII,eAGzEvc,EAAO,IAAI4V,EAAUuG,EAAIzG,UAAYyG,EAAII,cAAgBJ,EAAIzH,WAAYyH,EAAIN,QACjF,EAEJM,EAAIK,QAAU,KACVvrJ,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,4BAA4B4C,EAAIN,WAAWM,EAAIzH,eAClF1U,EAAO,IAAI4V,EAAUuG,EAAIzH,WAAYyH,EAAIN,QAAQ,EAErDM,EAAIM,UAAY,KACZxrJ,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,8BACnCvZ,EAAO,IAAI+V,EAAe,EAE9BoG,EAAIvH,KAAKU,EAAQh/G,QAAQ,IAzDlBoa,QAAQsvF,OAAO,IAAI31G,MAAM,oBAHzBqmB,QAAQsvF,OAAO,IAAI31G,MAAM,sBA8DxC,ECxEG,MAAMqyH,UAA0B/H,EAEnC3uC,YAAYgyC,GAER,GADA7C,QACqB,oBAAVsF,OAAyB1D,EAASK,OACzCnmJ,KAAK0rJ,YAAc,IAAIpC,EAAgBvC,OAEtC,IAA8B,oBAAnBoE,eAIZ,MAAM,IAAI/xH,MAAM,+BAHhBp5B,KAAK0rJ,YAAc,IAAIT,EAAclE,EAIzC,CACJ,CAEApD,KAAKU,GAED,OAAIA,EAAQ4F,aAAe5F,EAAQ4F,YAAYC,QACpCzqG,QAAQsvF,OAAO,IAAIgW,GAEzBV,EAAQT,OAGRS,EAAQ7nF,IAGNx8D,KAAK0rJ,YAAY/H,KAAKU,GAFlB5kG,QAAQsvF,OAAO,IAAI31G,MAAM,oBAHzBqmB,QAAQsvF,OAAO,IAAI31G,MAAM,sBAMxC,CACA0qH,gBAAgBtnF,GACZ,OAAOx8D,KAAK0rJ,YAAY5H,gBAAgBtnF,EAC5C,EClCG,IAAImvF,EAYAC,ECbAC,ECQAC,GFNX,SAAWH,GAEPA,EAAkBA,EAAwB,KAAI,GAAK,OAEnDA,EAAkBA,EAA8B,WAAI,GAAK,aAEzDA,EAAkBA,EAAoC,iBAAI,GAAK,mBAE/DA,EAAkBA,EAA+B,YAAI,GAAK,aAC7D,CATD,CASGA,IAAsBA,EAAoB,CAAC,IAG9C,SAAWC,GAEPA,EAAeA,EAAqB,KAAI,GAAK,OAE7CA,EAAeA,EAAuB,OAAI,GAAK,QAClD,CALD,CAKGA,IAAmBA,EAAiB,CAAC,IGfjC,MAAM,EACT72C,cACI/0G,KAAK+rJ,YAAa,EAClB/rJ,KAAKoqJ,QAAU,IACnB,CACAC,QACSrqJ,KAAK+rJ,aACN/rJ,KAAK+rJ,YAAa,EACd/rJ,KAAKoqJ,SACLpqJ,KAAKoqJ,UAGjB,CACIK,aACA,OAAOzqJ,IACX,CACIkqJ,cACA,OAAOlqJ,KAAK+rJ,UAChB,EChBG,MAAMC,EACTj3C,YAAYkyC,EAAYF,EAAQh/I,GAC5B/H,KAAK0rJ,YAAczE,EACnBjnJ,KAAKupJ,QAAUxC,EACf/mJ,KAAKisJ,WAAa,IAAI,EACtBjsJ,KAAKksJ,SAAWnkJ,EAChB/H,KAAKmsJ,UAAW,EAChBnsJ,KAAKosJ,UAAY,KACjBpsJ,KAAKqsJ,QAAU,IACnB,CAEIC,kBACA,OAAOtsJ,KAAKisJ,WAAW/B,OAC3B,CACAvuG,cAAc6gB,EAAK+vF,GAOf,GANA3G,EAAI4G,WAAWhwF,EAAK,OACpBopF,EAAI4G,WAAWD,EAAgB,kBAC/B3G,EAAI6G,KAAKF,EAAgBX,EAAgB,kBACzC5rJ,KAAK0sJ,KAAOlwF,EACZx8D,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,uCAE7BoF,IAAmBX,EAAee,QACP,oBAAnBxB,gBAA+E,iBAAtC,IAAIA,gBAAiB9D,aACtE,MAAM,IAAIjuH,MAAM,8FAEpB,MAAOxxB,EAAM6B,GAASy9I,IAChBxC,EAAU,CAAE,CAAC98I,GAAO6B,KAAUzJ,KAAKksJ,SAASxH,SAC5CkI,EAAc,CAChB3C,YAAajqJ,KAAKisJ,WAAWxB,OAC7B/F,UACA4C,QAAS,IACTC,gBAAiBvnJ,KAAKksJ,SAAS3E,iBAE/BgF,IAAmBX,EAAee,SAClCC,EAAYvF,aAAe,eAI/B,MAAMwF,EAAU,GAAGrwF,OAASv+D,KAAK20G,QACjC5yG,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,oCAAoC0F,MACrE,MAAMpI,QAAiBzkJ,KAAK0rJ,YAAYxtI,IAAI2uI,EAASD,GACzB,MAAxBnI,EAASjB,YACTxjJ,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,qDAAqDqrH,EAASjB,eAE/FxjJ,KAAK8sJ,YAAc,IAAInI,EAAUF,EAAShB,YAAc,GAAIgB,EAASjB,YACrExjJ,KAAKmsJ,UAAW,GAGhBnsJ,KAAKmsJ,UAAW,EAEpBnsJ,KAAK+sJ,WAAa/sJ,KAAKgtJ,MAAMhtJ,KAAK0sJ,KAAME,EAC5C,CACAjxG,YAAY6gB,EAAKowF,GACb,IACI,KAAO5sJ,KAAKmsJ,UACR,IACI,MAAMU,EAAU,GAAGrwF,OAASv+D,KAAK20G,QACjC5yG,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,oCAAoC0F,MACrE,MAAMpI,QAAiBzkJ,KAAK0rJ,YAAYxtI,IAAI2uI,EAASD,GACzB,MAAxBnI,EAASjB,YACTxjJ,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,sDACvCvoJ,KAAKmsJ,UAAW,GAEa,MAAxB1H,EAASjB,YACdxjJ,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,qDAAqDqrH,EAASjB,eAE/FxjJ,KAAK8sJ,YAAc,IAAInI,EAAUF,EAAShB,YAAc,GAAIgB,EAASjB,YACrExjJ,KAAKmsJ,UAAW,GAIZ1H,EAASp/G,SACTrlC,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,0CAA0Cf,EAAc3B,EAASp/G,QAASrlC,KAAKksJ,SAAS9E,uBACrHpnJ,KAAKosJ,WACLpsJ,KAAKosJ,UAAU3H,EAASp/G,UAK5BrlC,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,qDAG7C,CACA,MAAO1jJ,GACEzD,KAAKmsJ,SAKF1oJ,aAAaqhJ,EAEb9kJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,uDAIjCnnJ,KAAK8sJ,YAAcrpJ,EACnBzD,KAAKmsJ,UAAW,GAVpBnsJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,wDAAwD1jJ,EAAEyhF,UAanG,CAER,CACA,QACIllF,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,6CAG5BnnJ,KAAKssJ,aACNtsJ,KAAKitJ,eAEb,CACJ,CACAtxG,WAAW3gB,GACP,OAAKh7B,KAAKmsJ,SAGHrF,EAAY9mJ,KAAKupJ,QAAS,cAAevpJ,KAAK0rJ,YAAa1rJ,KAAK0sJ,KAAM1xH,EAAMh7B,KAAKksJ,UAF7EzsG,QAAQsvF,OAAO,IAAI31G,MAAM,gDAGxC,CACAuiB,aACI37C,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,6CAEjCnnJ,KAAKmsJ,UAAW,EAChBnsJ,KAAKisJ,WAAW5B,QAChB,UACUrqJ,KAAK+sJ,WAEX/sJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,qDAAqDnnJ,KAAK0sJ,SAC3F,MAAMhI,EAAU,CAAC,GACV98I,EAAM6B,GAASy9I,IACtBxC,EAAQ98I,GAAQ6B,EAChB,MAAMyjJ,EAAgB,CAClBxI,QAAS,IAAKA,KAAY1kJ,KAAKksJ,SAASxH,SACxC4C,QAAStnJ,KAAKksJ,SAAS5E,QACvBC,gBAAiBvnJ,KAAKksJ,SAAS3E,uBAE7BvnJ,KAAK0rJ,YAAYrvI,OAAOrc,KAAK0sJ,KAAMQ,GACzCltJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,+CACrC,CACA,QACInnJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,0CAGjCnnJ,KAAKitJ,eACT,CACJ,CACAA,gBACI,GAAIjtJ,KAAKqsJ,QAAS,CACd,IAAIc,EAAa,gDACbntJ,KAAK8sJ,cACLK,GAAc,WAAantJ,KAAK8sJ,aAEpC9sJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAOgG,GACjCntJ,KAAKqsJ,QAAQrsJ,KAAK8sJ,YACtB,CACJ,EC5JG,MAAMM,EACTr4C,YAAYkyC,EAAYoG,EAAatG,EAAQh/I,GACzC/H,KAAK0rJ,YAAczE,EACnBjnJ,KAAKukJ,aAAe8I,EACpBrtJ,KAAKupJ,QAAUxC,EACf/mJ,KAAKksJ,SAAWnkJ,EAChB/H,KAAKosJ,UAAY,KACjBpsJ,KAAKqsJ,QAAU,IACnB,CACA1wG,cAAc6gB,EAAK+vF,GAUf,OATA3G,EAAI4G,WAAWhwF,EAAK,OACpBopF,EAAI4G,WAAWD,EAAgB,kBAC/B3G,EAAI6G,KAAKF,EAAgBX,EAAgB,kBACzC5rJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,+BAEjCnnJ,KAAK0sJ,KAAOlwF,EACRx8D,KAAKukJ,eACL/nF,IAAQA,EAAIj1D,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgB+lJ,mBAAmBttJ,KAAKukJ,iBAEjF,IAAI9kG,SAAQ,CAACC,EAASqvF,KACzB,IAKIwe,EALAC,GAAS,EACb,GAAIjB,IAAmBX,EAAe6B,KAAtC,CAKA,GAAI3H,EAASC,WAAaD,EAASE,YAC/BuH,EAAc,IAAIvtJ,KAAKksJ,SAASwB,YAAYlxF,EAAK,CAAE+qF,gBAAiBvnJ,KAAKksJ,SAAS3E,sBAEjF,CAED,MAAMuD,EAAU9qJ,KAAK0rJ,YAAY5H,gBAAgBtnF,GAC3CkoF,EAAU,CAAC,EACjBA,EAAQpB,OAASwH,EACjB,MAAOljJ,EAAM6B,GAASy9I,IACtBxC,EAAQ98I,GAAQ6B,EAChB8jJ,EAAc,IAAIvtJ,KAAKksJ,SAASwB,YAAYlxF,EAAK,CAAE+qF,gBAAiBvnJ,KAAKksJ,SAAS3E,gBAAiB7C,QAAS,IAAKA,KAAY1kJ,KAAKksJ,SAASxH,UAC/I,CACA,IACI6I,EAAYI,UAAalqJ,IACrB,GAAIzD,KAAKosJ,UACL,IACIpsJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,kCAAkCf,EAAc3iJ,EAAEu3B,KAAMh7B,KAAKksJ,SAAS9E,uBACvGpnJ,KAAKosJ,UAAU3oJ,EAAEu3B,KACrB,CACA,MAAO0sC,GAEH,YADA1nE,KAAK4tJ,OAAOlmF,EAEhB,CACJ,EAGJ6lF,EAAYhC,QAAW9nJ,IAEf+pJ,EACAxtJ,KAAK4tJ,SAGL7e,EAAO,IAAI31G,MAAM,gQAGrB,EAEJm0H,EAAYM,OAAS,KACjB7tJ,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,oBAAoBvoJ,KAAK0sJ,QAChE1sJ,KAAK8tJ,aAAeP,EACpBC,GAAS,EACT9tG,GAAS,CAEjB,CACA,MAAOj8C,GAEH,YADAsrI,EAAOtrI,EAEX,CAjDA,MAFIsrI,EAAO,IAAI31G,MAAM,6EAmDrB,GAER,CACAuiB,WAAW3gB,GACP,OAAKh7B,KAAK8tJ,aAGHhH,EAAY9mJ,KAAKupJ,QAAS,MAAOvpJ,KAAK0rJ,YAAa1rJ,KAAK0sJ,KAAM1xH,EAAMh7B,KAAKksJ,UAFrEzsG,QAAQsvF,OAAO,IAAI31G,MAAM,gDAGxC,CACA20H,OAEI,OADA/tJ,KAAK4tJ,SACEnuG,QAAQC,SACnB,CACAkuG,OAAOnqJ,GACCzD,KAAK8tJ,eACL9tJ,KAAK8tJ,aAAa/8E,QAClB/wE,KAAK8tJ,kBAAervJ,EAChBuB,KAAKqsJ,SACLrsJ,KAAKqsJ,QAAQ5oJ,GAGzB,EC7FG,MAAMuqJ,EACTj5C,YAAYkyC,EAAYhD,EAAoB8C,EAAQK,EAAmB6G,EAAsBvJ,GACzF1kJ,KAAKupJ,QAAUxC,EACf/mJ,KAAKokJ,oBAAsBH,EAC3BjkJ,KAAKkuJ,mBAAqB9G,EAC1BpnJ,KAAKmuJ,sBAAwBF,EAC7BjuJ,KAAK0rJ,YAAczE,EACnBjnJ,KAAKosJ,UAAY,KACjBpsJ,KAAKqsJ,QAAU,KACfrsJ,KAAKouJ,SAAW1J,CACpB,CACA/oG,cAAc6gB,EAAK+vF,GAKf,IAAI17B,EAIJ,OARA+0B,EAAI4G,WAAWhwF,EAAK,OACpBopF,EAAI4G,WAAWD,EAAgB,kBAC/B3G,EAAI6G,KAAKF,EAAgBX,EAAgB,kBACzC5rJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,sCAE7BnnJ,KAAKokJ,sBACLvzB,QAAc7wH,KAAKokJ,uBAEhB,IAAI3kG,SAAQ,CAACC,EAASqvF,KAEzB,IAAIsf,EADJ7xF,EAAMA,EAAIlyD,QAAQ,QAAS,MAE3B,MAAMwgJ,EAAU9qJ,KAAK0rJ,YAAY5H,gBAAgBtnF,GACjD,IAAIgxF,GAAS,EACb,GAAI1H,EAASK,QAAUL,EAASI,cAAe,CAC3C,MAAMxB,EAAU,CAAC,GACV98I,EAAM6B,GAASy9I,IACtBxC,EAAQ98I,GAAQ6B,EACZonH,IACA6zB,EAAQtB,EAAYC,eAAiB,UAAUxyB,KAE/Ci6B,IACApG,EAAQtB,EAAYE,QAAUwH,GAGlCuD,EAAY,IAAIruJ,KAAKmuJ,sBAAsB3xF,OAAK/9D,EAAW,CACvDimJ,QAAS,IAAKA,KAAY1kJ,KAAKouJ,WAEvC,MAEQv9B,IACAr0D,IAAQA,EAAIj1D,QAAQ,KAAO,EAAI,IAAM,KAAO,gBAAgB+lJ,mBAAmBz8B,MAGlFw9B,IAEDA,EAAY,IAAIruJ,KAAKmuJ,sBAAsB3xF,IAE3C+vF,IAAmBX,EAAee,SAClC0B,EAAUC,WAAa,eAE3BD,EAAUR,OAAUU,IAChBvuJ,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,0BAA0B/rF,MACjEx8D,KAAKwuJ,WAAaH,EAClBb,GAAS,EACT9tG,GAAS,EAEb2uG,EAAU9C,QAAWh4I,IACjB,IAAIm0D,EAAQ,KAGRA,EADsB,oBAAf+mF,YAA8Bl7I,aAAiBk7I,WAC9Cl7I,EAAMm0D,MAGN,wCAEZ1nE,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,0BAA0B7gF,KAAS,EAE9E2mF,EAAUV,UAAazoE,IAEnB,GADAllF,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,yCAAyCf,EAAclhE,EAAQlqD,KAAMh7B,KAAKkuJ,wBACvGluJ,KAAKosJ,UACL,IACIpsJ,KAAKosJ,UAAUlnE,EAAQlqD,KAC3B,CACA,MAAO0sC,GAEH,YADA1nE,KAAK4tJ,OAAOlmF,EAEhB,CACJ,EAEJ2mF,EAAUhC,QAAW94I,IAGjB,GAAIi6I,EACAxtJ,KAAK4tJ,OAAOr6I,OAEX,CACD,IAAIm0D,EAAQ,KAGRA,EADsB,oBAAf+mF,YAA8Bl7I,aAAiBk7I,WAC9Cl7I,EAAMm0D,MAGN,iSAKZqnE,EAAO,IAAI31G,MAAMsuC,GACrB,EACH,GAET,CACAi8E,KAAK3oH,GACD,OAAIh7B,KAAKwuJ,YAAcxuJ,KAAKwuJ,WAAWrlB,aAAenpI,KAAKmuJ,sBAAsBO,MAC7E1uJ,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,wCAAwCf,EAAcprH,EAAMh7B,KAAKkuJ,wBAClGluJ,KAAKwuJ,WAAW7K,KAAK3oH,GACdykB,QAAQC,WAEZD,QAAQsvF,OAAO,qCAC1B,CACAgf,OAMI,OALI/tJ,KAAKwuJ,YAGLxuJ,KAAK4tJ,YAAOnvJ,GAETghD,QAAQC,SACnB,CACAkuG,OAAOr6I,GAECvT,KAAKwuJ,aAELxuJ,KAAKwuJ,WAAWnC,QAAU,OAC1BrsJ,KAAKwuJ,WAAWb,UAAY,OAC5B3tJ,KAAKwuJ,WAAWjD,QAAU,OAC1BvrJ,KAAKwuJ,WAAWz9E,QAChB/wE,KAAKwuJ,gBAAa/vJ,GAEtBuB,KAAKupJ,QAAQ/J,IAAI,IAAS2H,MAAO,yCAC7BnnJ,KAAKqsJ,WACDrsJ,KAAK2uJ,cAAcp7I,KAA8B,IAAnBA,EAAMq7I,UAAqC,MAAfr7I,EAAMxE,KAG3DwE,aAAiB6lB,MACtBp5B,KAAKqsJ,QAAQ94I,GAGbvT,KAAKqsJ,UANLrsJ,KAAKqsJ,QAAQ,IAAIjzH,MAAM,sCAAsC7lB,EAAMxE,SAASwE,EAAMs7I,QAAU,wBASxG,CACAF,cAAcp7I,GACV,OAAOA,GAAmC,kBAAnBA,EAAMq7I,UAAgD,iBAAfr7I,EAAMxE,IACxE,EC3IG,MAAM+/I,EACT/5C,YAAYv4C,EAAKz0D,EAAU,CAAC,GXsFzB,IAAsBg/I,EW7ErB,GARA/mJ,KAAK+uJ,qBAAuB,OAC5B/uJ,KAAKgvJ,SAAW,CAAC,EACjBhvJ,KAAKivJ,kBAAoB,EACzBrJ,EAAI4G,WAAWhwF,EAAK,OACpBx8D,KAAKupJ,aXkFM9qJ,KADUsoJ,EWjFOh/I,EAAQg/I,QXmF7B,IAAIe,EAAc,IAASS,aAEvB,OAAXxB,EACOvB,EAAWtY,cAEHzuI,IAAfsoJ,EAAOvH,IACAuH,EAEJ,IAAIe,EAAcf,GW1FrB/mJ,KAAK+8D,QAAU/8D,KAAKkvJ,YAAY1yF,IAChCz0D,EAAUA,GAAW,CAAC,GACdq/I,uBAAkD3oJ,IAA9BsJ,EAAQq/I,mBAA0Cr/I,EAAQq/I,kBAC/C,kBAA5Br/I,EAAQw/I,sBAA6D9oJ,IAA5BsJ,EAAQw/I,gBAIxD,MAAM,IAAInuH,MAAM,mEAHhBrxB,EAAQw/I,qBAA8C9oJ,IAA5BsJ,EAAQw/I,iBAAuCx/I,EAAQw/I,gBAKrFx/I,EAAQu/I,aAA8B7oJ,IAApBsJ,EAAQu/I,QAAwB,IAAav/I,EAAQu/I,QACvE,IAAI6H,EAAkB,KAClBC,EAAoB,KACxB,GAAItJ,EAASK,OAA0C,CAGnD,MAAMsD,EAA0D,QAChE0F,EAAkB1F,EAAY,MAC9B2F,EAAoB3F,EAAY,cACpC,CACK3D,EAASK,QAA+B,oBAAdkJ,WAA8BtnJ,EAAQsnJ,UAG5DvJ,EAASK,SAAWp+I,EAAQsnJ,WAC7BF,IACApnJ,EAAQsnJ,UAAYF,GAJxBpnJ,EAAQsnJ,UAAYA,UAOnBvJ,EAASK,QAAiC,oBAAhBuH,aAAgC3lJ,EAAQ2lJ,YAG9D5H,EAASK,SAAWp+I,EAAQ2lJ,kBACA,IAAtB0B,IACPrnJ,EAAQ2lJ,YAAc0B,GAJ1BrnJ,EAAQ2lJ,YAAcA,YAO1B1tJ,KAAK0rJ,YAAc,IAAI3H,EAAsBh8I,EAAQk/I,YAAc,IAAIwE,EAAkBzrJ,KAAKupJ,SAAUxhJ,EAAQk8I,oBAChHjkJ,KAAKsvJ,iBAAmB,eACxBtvJ,KAAKuvJ,oBAAqB,EAC1BvvJ,KAAKksJ,SAAWnkJ,EAChB/H,KAAKosJ,UAAY,KACjBpsJ,KAAKqsJ,QAAU,IACnB,CACA1wG,YAAY4wG,GAIR,GAHAA,EAAiBA,GAAkBX,EAAee,OAClD/G,EAAI6G,KAAKF,EAAgBX,EAAgB,kBACzC5rJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,6CAA6C5D,EAAeW,QAC/D,iBAA1BvsJ,KAAKsvJ,iBACL,OAAO7vG,QAAQsvF,OAAO,IAAI31G,MAAM,4EAMpC,GAJAp5B,KAAKsvJ,iBAAmB,aACxBtvJ,KAAKyvJ,sBAAwBzvJ,KAAK0vJ,eAAenD,SAC3CvsJ,KAAKyvJ,sBAEmB,kBAA1BzvJ,KAAKsvJ,iBAA0D,CAE/D,MAAMpqE,EAAU,+DAIhB,OAHAllF,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO8rD,SAE3BllF,KAAK2vJ,aACJlwG,QAAQsvF,OAAO,IAAIgW,EAAW7/D,GACzC,CACK,GAA8B,cAA1BllF,KAAKsvJ,iBAAkD,CAE5D,MAAMpqE,EAAU,8GAEhB,OADAllF,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO8rD,GAC1BzlC,QAAQsvF,OAAO,IAAIgW,EAAW7/D,GACzC,CACAllF,KAAKuvJ,oBAAqB,CAC9B,CACA5L,KAAK3oH,GACD,MAA8B,cAA1Bh7B,KAAKsvJ,iBACE7vG,QAAQsvF,OAAO,IAAI31G,MAAM,yEAE/Bp5B,KAAK4vJ,aACN5vJ,KAAK4vJ,WAAa,IAAIC,EAAmB7vJ,KAAKilJ,YAG3CjlJ,KAAK4vJ,WAAWjM,KAAK3oH,GAChC,CACA2gB,WAAW+rB,GACP,MAA8B,iBAA1B1nE,KAAKsvJ,kBACLtvJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,+BAA+B9nF,2EACzDjoB,QAAQC,WAEW,kBAA1B1/C,KAAKsvJ,kBACLtvJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,+BAA+B9nF,4EACzD1nE,KAAK2vJ,eAEhB3vJ,KAAKsvJ,iBAAmB,gBACxBtvJ,KAAK2vJ,aAAe,IAAIlwG,SAASC,IAE7B1/C,KAAK+uJ,qBAAuBrvG,CAAO,UAGjC1/C,KAAK8vJ,cAAcpoF,cACnB1nE,KAAK2vJ,aACf,CACAh0G,oBAAoB+rB,GAIhB1nE,KAAK+vJ,WAAaroF,EAClB,UACU1nE,KAAKyvJ,qBACf,CACA,MAAOhsJ,GAEP,CAIA,GAAIzD,KAAKilJ,UAAW,CAChB,UACUjlJ,KAAKilJ,UAAU8I,MACzB,CACA,MAAOtqJ,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,gDAAgD31B,OACjFzD,KAAKgwJ,iBACT,CACAhwJ,KAAKilJ,eAAYxmJ,CACrB,MAEIuB,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,yFAEzC,CACA7zG,qBAAqB4wG,GAGjB,IAAI/vF,EAAMx8D,KAAK+8D,QACf/8D,KAAKokJ,oBAAsBpkJ,KAAKksJ,SAASjI,mBACzCjkJ,KAAK0rJ,YAAYtH,oBAAsBpkJ,KAAKokJ,oBAC5C,IACI,GAAIpkJ,KAAKksJ,SAAS+D,gBAAiB,CAC/B,GAAIjwJ,KAAKksJ,SAASjH,YAAc0G,EAAkBuE,WAQ9C,MAAM,IAAI92H,MAAM,gFANhBp5B,KAAKilJ,UAAYjlJ,KAAKmwJ,oBAAoBxE,EAAkBuE,kBAGtDlwJ,KAAKowJ,gBAAgB5zF,EAAK+vF,EAKxC,KACK,CACD,IAAI8D,EAAoB,KACpBC,EAAY,EAChB,EAAG,CAGC,GAFAD,QAA0BrwJ,KAAKuwJ,wBAAwB/zF,GAEzB,kBAA1Bx8D,KAAKsvJ,kBAAsF,iBAA1BtvJ,KAAKsvJ,iBACtE,MAAM,IAAIvK,EAAW,kDAEzB,GAAIsL,EAAkB3oF,MAClB,MAAM,IAAItuC,MAAMi3H,EAAkB3oF,OAEtC,GAAI2oF,EAAkBG,gBAClB,MAAM,IAAIp3H,MAAM,gMAKpB,GAHIi3H,EAAkB7zF,MAClBA,EAAM6zF,EAAkB7zF,KAExB6zF,EAAkBhD,YAAa,CAG/B,MAAMA,EAAcgD,EAAkBhD,YACtCrtJ,KAAKokJ,oBAAsB,IAAMiJ,EAEjCrtJ,KAAK0rJ,YAAYnH,aAAe8I,EAChCrtJ,KAAK0rJ,YAAYtH,yBAAsB3lJ,CAC3C,CACA6xJ,GACJ,OAASD,EAAkB7zF,KAAO8zF,EArL5B,KAsLN,GAtLM,MAsLFA,GAA+BD,EAAkB7zF,IACjD,MAAM,IAAIpjC,MAAM,+CAEdp5B,KAAKywJ,iBAAiBj0F,EAAKx8D,KAAKksJ,SAASjH,UAAWoL,EAAmB9D,EACjF,CACIvsJ,KAAKilJ,qBAAqB+G,IAC1BhsJ,KAAKgvJ,SAAS0B,mBAAoB,GAER,eAA1B1wJ,KAAKsvJ,mBAGLtvJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,8CACjCxvJ,KAAKsvJ,iBAAmB,YAKhC,CACA,MAAO7rJ,GAMH,OALAzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,mCAAqC31B,GACtEzD,KAAKsvJ,iBAAmB,eACxBtvJ,KAAKilJ,eAAYxmJ,EAEjBuB,KAAK+uJ,uBACEtvG,QAAQsvF,OAAOtrI,EAC1B,CACJ,CACAk4C,8BAA8B6gB,GAC1B,MAAMkoF,EAAU,CAAC,GACV98I,EAAM6B,GAASy9I,IACtBxC,EAAQ98I,GAAQ6B,EAChB,MAAMknJ,EAAe3wJ,KAAK4wJ,qBAAqBp0F,GAC/Cx8D,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,gCAAgCmB,MACjE,IACI,MAAMlM,QAAiBzkJ,KAAK0rJ,YAAY7H,KAAK8M,EAAc,CACvDtrH,QAAS,GACTq/G,QAAS,IAAKA,KAAY1kJ,KAAKksJ,SAASxH,SACxC4C,QAAStnJ,KAAKksJ,SAAS5E,QACvBC,gBAAiBvnJ,KAAKksJ,SAAS3E,kBAEnC,GAA4B,MAAxB9C,EAASjB,WACT,OAAO/jG,QAAQsvF,OAAO,IAAI31G,MAAM,mDAAmDqrH,EAASjB,gBAEhG,MAAM6M,EAAoBzuJ,KAAK+yH,MAAM8vB,EAASp/G,SAM9C,QALKgrH,EAAkBQ,kBAAoBR,EAAkBQ,iBAAmB,KAG5ER,EAAkBS,gBAAkBT,EAAkBU,cAEnDV,CACX,CACA,MAAO5sJ,GACH,IAAIgrD,EAAe,mDAAqDhrD,EAOxE,OANIA,aAAakhJ,GACQ,MAAjBlhJ,EAAE+/I,aACF/0F,GAA8B,uFAGtCzuD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAOq1B,GAC1BhP,QAAQsvF,OAAO,IAAIsW,EAAiC52F,GAC/D,CACJ,CACAuiG,kBAAkBx0F,EAAKs0F,GACnB,OAAKA,EAGEt0F,IAA6B,IAAtBA,EAAIj1D,QAAQ,KAAc,IAAM,KAAO,MAAMupJ,IAFhDt0F,CAGf,CACA7gB,uBAAuB6gB,EAAKy0F,EAAoBZ,EAAmBa,GAC/D,IAAIC,EAAanxJ,KAAKgxJ,kBAAkBx0F,EAAK6zF,EAAkBS,iBAC/D,GAAI9wJ,KAAKoxJ,cAAcH,GAKnB,OAJAjxJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,2EACjCxvJ,KAAKilJ,UAAYgM,QACXjxJ,KAAKowJ,gBAAgBe,EAAYD,QACvClxJ,KAAK+wJ,aAAeV,EAAkBU,cAG1C,MAAMM,EAAsB,GACtBC,EAAajB,EAAkBkB,qBAAuB,GAC5D,IAAIC,EAAYnB,EAChB,IAAK,MAAMoB,KAAYH,EAAY,CAC/B,MAAMI,EAAmB1xJ,KAAK2xJ,yBAAyBF,EAAUR,EAAoBC,GACrF,GAAIQ,aAA4Bt4H,MAE5Bi4H,EAAoBnvJ,KAAK,GAAGuvJ,EAASxM,qBACrCoM,EAAoBnvJ,KAAKwvJ,QAExB,GAAI1xJ,KAAKoxJ,cAAcM,GAAmB,CAE3C,GADA1xJ,KAAKilJ,UAAYyM,GACZF,EAAW,CACZ,IACIA,QAAkBxxJ,KAAKuwJ,wBAAwB/zF,EACnD,CACA,MAAOo1F,GACH,OAAOnyG,QAAQsvF,OAAO6iB,EAC1B,CACAT,EAAanxJ,KAAKgxJ,kBAAkBx0F,EAAKg1F,EAAUV,gBACvD,CACA,IAGI,aAFM9wJ,KAAKowJ,gBAAgBe,EAAYD,QACvClxJ,KAAK+wJ,aAAeS,EAAUT,aAElC,CACA,MAAOa,GAIH,GAHA5xJ,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,kCAAkCq4H,EAASxM,eAAe2M,KAC3FJ,OAAY/yJ,EACZ4yJ,EAAoBnvJ,KAAK,IAAIkjJ,EAA4B,GAAGqM,EAASxM,qBAAqB2M,IAAMjG,EAAkB8F,EAASxM,aAC7F,eAA1BjlJ,KAAKsvJ,iBAAoD,CACzD,MAAMpqE,EAAU,uDAEhB,OADAllF,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAOtqE,GAC1BzlC,QAAQsvF,OAAO,IAAIgW,EAAW7/D,GACzC,CACJ,CACJ,CACJ,CACA,OAAImsE,EAAoB7tJ,OAAS,EACtBi8C,QAAQsvF,OAAO,IAAIuW,EAAgB,yEAAyE+L,EAAoBttJ,KAAK,OAAQstJ,IAEjJ5xG,QAAQsvF,OAAO,IAAI31G,MAAM,+EACpC,CACA+2H,oBAAoBlL,GAChB,OAAQA,GACJ,KAAK0G,EAAkBuE,WACnB,IAAKlwJ,KAAKksJ,SAASmD,UACf,MAAM,IAAIj2H,MAAM,qDAEpB,OAAO,IAAI40H,EAAmBhuJ,KAAK0rJ,YAAa1rJ,KAAKokJ,oBAAqBpkJ,KAAKupJ,QAASvpJ,KAAKksJ,SAAS9E,kBAAmBpnJ,KAAKksJ,SAASmD,UAAWrvJ,KAAKksJ,SAASxH,SAAW,CAAC,GAChL,KAAKiH,EAAkBkG,iBACnB,IAAK7xJ,KAAKksJ,SAASwB,YACf,MAAM,IAAIt0H,MAAM,uDAEpB,OAAO,IAAIg0H,EAA0BptJ,KAAK0rJ,YAAa1rJ,KAAK0rJ,YAAYnH,aAAcvkJ,KAAKupJ,QAASvpJ,KAAKksJ,UAC7G,KAAKP,EAAkBmG,YACnB,OAAO,IAAI9F,EAAqBhsJ,KAAK0rJ,YAAa1rJ,KAAKupJ,QAASvpJ,KAAKksJ,UACzE,QACI,MAAM,IAAI9yH,MAAM,sBAAsB6rH,MAElD,CACAmL,gBAAgB5zF,EAAK+vF,GAGjB,OAFAvsJ,KAAKilJ,UAAUmH,UAAYpsJ,KAAKosJ,UAChCpsJ,KAAKilJ,UAAUoH,QAAW5oJ,GAAMzD,KAAKgwJ,gBAAgBvsJ,GAC9CzD,KAAKilJ,UAAU8M,QAAQv1F,EAAK+vF,EACvC,CACAoF,yBAAyBF,EAAUR,EAAoBC,GACnD,MAAMjM,EAAY0G,EAAkB8F,EAASxM,WAC7C,GAAIA,QAEA,OADAjlJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,uBAAuBiC,EAASxM,0DAC1D,IAAI7rH,MAAM,uBAAuBq4H,EAASxM,0DAGjD,IA8GZ,SAA0BgM,EAAoBe,GAC1C,OAAQf,GAAkE,IAA1Ce,EAAkBf,EACtD,CAhHgBgB,CAAiBhB,EAAoBhM,GAyBrC,OADAjlJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,uBAAuB7D,EAAkB1G,8CACnE,IAAIE,EAAuB,IAAIwG,EAAkB1G,iCAA0CA,GAvBlG,KADwBwM,EAASS,gBAAgBxrJ,KAAK2F,GAAMu/I,EAAev/I,KACvD9E,QAAQ2pJ,IAA4B,GAkBpD,OADAlxJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,uBAAuB7D,EAAkB1G,kEAA0E2G,EAAesF,QAC5J,IAAI93H,MAAM,IAAIuyH,EAAkB1G,wBAAgC2G,EAAesF,OAjBtF,GAAKjM,IAAc0G,EAAkBuE,aAAelwJ,KAAKksJ,SAASmD,WAC7DpK,IAAc0G,EAAkBkG,mBAAqB7xJ,KAAKksJ,SAASwB,YAEpE,OADA1tJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,uBAAuB7D,EAAkB1G,yDACnE,IAAID,EAA0B,IAAI2G,EAAkB1G,4CAAqDA,GAGhHjlJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,wBAAwB7D,EAAkB1G,QAC3E,IACI,OAAOjlJ,KAAKmwJ,oBAAoBlL,EACpC,CACA,MAAO2M,GACH,OAAOA,CACX,CAapB,CACAR,cAAcnM,GACV,OAAOA,GAAoC,iBAAhB,GAA4B,YAAaA,CACxE,CACA+K,gBAAgBtoF,GAMZ,GALA1nE,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,iCAAiC9nF,4BAAgC1nE,KAAKsvJ,qBACvGtvJ,KAAKilJ,eAAYxmJ,EAEjBipE,EAAQ1nE,KAAK+vJ,YAAcroF,EAC3B1nE,KAAK+vJ,gBAAatxJ,EACY,iBAA1BuB,KAAKsvJ,iBAAT,CAIA,GAA8B,eAA1BtvJ,KAAKsvJ,iBAEL,MADAtvJ,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,yCAAyC5gF,2EACtE,IAAItuC,MAAM,iCAAiCsuC,wEAqBrD,GAnB8B,kBAA1B1nE,KAAKsvJ,kBAGLtvJ,KAAK+uJ,uBAELrnF,EACA1nE,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,uCAAuCsuC,OAGxE1nE,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,4BAEvCvoJ,KAAK4vJ,aACL5vJ,KAAK4vJ,WAAW7B,OAAOzX,OAAO7yI,IAC1BzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,0CAA0C31B,MAAM,IAErFzD,KAAK4vJ,gBAAanxJ,GAEtBuB,KAAK+wJ,kBAAetyJ,EACpBuB,KAAKsvJ,iBAAmB,eACpBtvJ,KAAKuvJ,mBAAoB,CACzBvvJ,KAAKuvJ,oBAAqB,EAC1B,IACQvvJ,KAAKqsJ,SACLrsJ,KAAKqsJ,QAAQ3kF,EAErB,CACA,MAAOjkE,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,0BAA0BsuC,mBAAuBjkE,MACtF,CACJ,CAlCA,MAFIzD,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,yCAAyC9nF,8EAqClF,CACAwnF,YAAY1yF,GAER,GAAuC,IAAnCA,EAAI21F,YAAY,WAAY,IAA8C,IAAlC31F,EAAI21F,YAAY,UAAW,GACnE,OAAO31F,EAEX,IAAKspF,EAASC,UACV,MAAM,IAAI3sH,MAAM,mBAAmBojC,OAOvC,MAAM41F,EAAO9yJ,OAAOZ,SAAS6F,cAAc,KAG3C,OAFA6tJ,EAAK35H,KAAO+jC,EACZx8D,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,gBAAgB/rF,UAAY41F,EAAK35H,UACjE25H,EAAK35H,IAChB,CACAm4H,qBAAqBp0F,GACjB,MAAM1zD,EAAQ0zD,EAAIj1D,QAAQ,KAC1B,IAAIopJ,EAAen0F,EAAIxvD,UAAU,GAAc,IAAXlE,EAAe0zD,EAAIh5D,OAASsF,GAUhE,MAT8C,MAA1C6nJ,EAAaA,EAAantJ,OAAS,KACnCmtJ,GAAgB,KAEpBA,GAAgB,YAChBA,IAA2B,IAAX7nJ,EAAe,GAAK0zD,EAAIxvD,UAAUlE,IACA,IAA9C6nJ,EAAappJ,QAAQ,sBACrBopJ,IAA2B,IAAX7nJ,EAAe,IAAM,IACrC6nJ,GAAgB,oBAAsB3wJ,KAAKivJ,mBAExC0B,CACX,EAMG,MAAMd,EACT96C,YAAYs9C,GACRryJ,KAAKqyJ,WAAaA,EAClBryJ,KAAKsyJ,QAAU,GACftyJ,KAAKuyJ,YAAa,EAClBvyJ,KAAKwyJ,kBAAoB,IAAIC,EAC7BzyJ,KAAK0yJ,iBAAmB,IAAID,EAC5BzyJ,KAAK2yJ,iBAAmB3yJ,KAAK4yJ,WACjC,CACAjP,KAAK3oH,GAKD,OAJAh7B,KAAK6yJ,YAAY73H,GACZh7B,KAAK0yJ,mBACN1yJ,KAAK0yJ,iBAAmB,IAAID,GAEzBzyJ,KAAK0yJ,iBAAiBI,OACjC,CACA/E,OAGI,OAFA/tJ,KAAKuyJ,YAAa,EAClBvyJ,KAAKwyJ,kBAAkB9yG,UAChB1/C,KAAK2yJ,gBAChB,CACAE,YAAY73H,GACR,GAAIh7B,KAAKsyJ,QAAQ9uJ,eAAkBxD,KAAKsyJ,QAAQ,WAAe,EAC3D,MAAM,IAAIl5H,MAAM,sCAAuCp5B,KAAY,kCAA4B,KAEnGA,KAAKsyJ,QAAQpwJ,KAAK84B,GAClBh7B,KAAKwyJ,kBAAkB9yG,SAC3B,CACA/D,kBACI,OAAa,CAET,SADM37C,KAAKwyJ,kBAAkBM,SACxB9yJ,KAAKuyJ,WAAY,CACdvyJ,KAAK0yJ,kBACL1yJ,KAAK0yJ,iBAAiB3jB,OAAO,uBAEjC,KACJ,CACA/uI,KAAKwyJ,kBAAoB,IAAIC,EAC7B,MAAMM,EAAkB/yJ,KAAK0yJ,iBAC7B1yJ,KAAK0yJ,sBAAmBj0J,EACxB,MAAMu8B,EAAoC,iBAArBh7B,KAAKsyJ,QAAQ,GAC9BtyJ,KAAKsyJ,QAAQvuJ,KAAK,IAClB8rJ,EAAmBmD,eAAehzJ,KAAKsyJ,SAC3CtyJ,KAAKsyJ,QAAQ9uJ,OAAS,EACtB,UACUxD,KAAKqyJ,WAAW1O,KAAK3oH,GAC3B+3H,EAAgBrzG,SACpB,CACA,MAAOgoB,GACHqrF,EAAgBhkB,OAAOrnE,EAC3B,CACJ,CACJ,CACAm+E,sBAAsBoN,GAClB,MAAMC,EAAcD,EAAavsJ,KAAKozG,GAAMA,EAAE0sC,aAAYz6I,QAAO,CAAC03E,EAAGq2B,IAAMr2B,EAAIq2B,IACzE97G,EAAS,IAAI0oJ,WAAWwM,GAC9B,IAAItsG,EAAS,EACb,IAAK,MAAM98B,KAAQmpI,EACfj1J,EAAOihH,IAAI,IAAIynC,WAAW58H,GAAO88B,GACjCA,GAAU98B,EAAK08H,WAEnB,OAAOxoJ,EAAO+iJ,MAClB,EAEJ,MAAM0R,EACF19C,cACI/0G,KAAK8yJ,QAAU,IAAIrzG,SAAQ,CAACC,EAASqvF,KAAY/uI,KAAKmzJ,UAAWnzJ,KAAKozJ,WAAa,CAAC1zG,EAASqvF,IACjG,CACArvF,UACI1/C,KAAKmzJ,WACT,CACApkB,OAAO8f,GACH7uJ,KAAKozJ,UAAUvE,EACnB,EC9gBG,MAAMwE,EACTxN,aAAajc,GACT,MAAO,GAAGA,IAASypB,EAAkBC,iBACzC,CACAzN,aAAaniG,GACT,GAAIA,EAAMA,EAAMlgD,OAAS,KAAO6vJ,EAAkBC,gBAC9C,MAAM,IAAIl6H,MAAM,0BAEpB,MAAMokG,EAAW95E,EAAMl8C,MAAM6rJ,EAAkBC,iBAE/C,OADA91B,EAASjnH,MACFinH,CACX,EAEJ61B,EAAkBE,oBAAsB,GACxCF,EAAkBC,gBAAkB/oJ,OAAOqpH,aAAay/B,EAAkBE,qBCbnE,MAAMC,EAETC,sBAAsBC,GAClB,OAAOL,EAAkBM,MAAM/xJ,KAAKC,UAAU6xJ,GAClD,CACAE,uBAAuB54H,GACnB,IAAI64H,EACAC,EACJ,GAAIvN,EAAcvrH,GAAO,CAErB,MAAM+4H,EAAa,IAAIrN,WAAW1rH,GAC5Bg5H,EAAiBD,EAAWxsJ,QAAQ8rJ,EAAkBE,qBAC5D,IAAwB,IAApBS,EACA,MAAM,IAAI56H,MAAM,0BAIpB,MAAM66H,EAAiBD,EAAiB,EACxCH,EAActpJ,OAAOqpH,aAAantH,MAAM,KAAMR,MAAMvE,UAAUyK,MAAMuI,KAAKq/I,EAAW5nJ,MAAM,EAAG8nJ,KAC7FH,EAAiBC,EAAWvN,WAAayN,EAAkBF,EAAW5nJ,MAAM8nJ,GAAgBlT,OAAS,IACzG,KACK,CACD,MAAMmT,EAAWl5H,EACXg5H,EAAiBE,EAAS3sJ,QAAQ8rJ,EAAkBC,iBAC1D,IAAwB,IAApBU,EACA,MAAM,IAAI56H,MAAM,0BAIpB,MAAM66H,EAAiBD,EAAiB,EACxCH,EAAcK,EAASlnJ,UAAU,EAAGinJ,GACpCH,EAAiBI,EAAS1wJ,OAASywJ,EAAkBC,EAASlnJ,UAAUinJ,GAAkB,IAC9F,CAEA,MAAMz2B,EAAW61B,EAAkB1+B,MAAMk/B,GACnCpP,EAAW7iJ,KAAK+yH,MAAM6I,EAAS,IACrC,GAAIinB,EAAS1jI,KACT,MAAM,IAAIqY,MAAM,kDAKpB,MAAO,CAAC06H,EAHgBrP,EAI5B,GR5CJ,SAAWoH,GAEPA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAAwB,WAAI,GAAK,aAE7CA,EAAYA,EAA8B,iBAAI,GAAK,mBAEnDA,EAAYA,EAA8B,iBAAI,GAAK,mBAEnDA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAmB,MAAI,GAAK,OAC3C,CAfD,CAeGA,IAAgBA,EAAc,CAAC,ISf3B,MAAMsI,EACTp/C,cACI/0G,KAAK4nJ,UAAY,EACrB,CACA/mB,KAAK/2G,GACD,IAAK,MAAM29H,KAAYznJ,KAAK4nJ,UACxBH,EAAS5mB,KAAK/2G,EAEtB,CACA49C,MAAMytD,GACF,IAAK,MAAMsyB,KAAYznJ,KAAK4nJ,UACpBH,EAAS//E,OACT+/E,EAAS//E,MAAMytD,EAG3B,CACAlsD,WACI,IAAK,MAAMw+E,KAAYznJ,KAAK4nJ,UACpBH,EAASx+E,UACTw+E,EAASx+E,UAGrB,CACAmrF,UAAU3M,GAEN,OADAznJ,KAAK4nJ,UAAU1lJ,KAAKulJ,GACb,IAAID,EAAoBxnJ,KAAMynJ,EACzC,GRlBJ,SAAWqE,GAEPA,EAAiC,aAAI,eAErCA,EAA+B,WAAI,aAEnCA,EAA8B,UAAI,YAElCA,EAAkC,cAAI,gBAEtCA,EAAiC,aAAI,cACxC,CAXD,CAWGA,IAAuBA,EAAqB,CAAC,IAEzC,MAAMuI,EACTt/C,YAAYu/C,EAAYvN,EAAQwN,EAAUC,GACtCx0J,KAAKy0J,eAAiB,EACtBz0J,KAAK00J,qBAAuB,KACxB10J,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,uNAAuN,EAE9P1C,EAAI4G,WAAW8H,EAAY,cAC3B1O,EAAI4G,WAAWzF,EAAQ,UACvBnB,EAAI4G,WAAW+H,EAAU,YACzBv0J,KAAK20J,4BA1BiB,IA2BtB30J,KAAK40J,gCA1BuB,KA2B5B50J,KAAKupJ,QAAUxC,EACf/mJ,KAAK60J,UAAYN,EACjBv0J,KAAKs0J,WAAaA,EAClBt0J,KAAK80J,iBAAmBN,EACxBx0J,KAAK+0J,mBAAqB,IAAIvB,EAC9BxzJ,KAAKs0J,WAAWlI,UAAapxH,GAASh7B,KAAKg1J,qBAAqBh6H,GAChEh7B,KAAKs0J,WAAWjI,QAAW3kF,GAAU1nE,KAAKi1J,kBAAkBvtF,GAC5D1nE,KAAKk1J,WAAa,CAAC,EACnBl1J,KAAKm1J,SAAW,CAAC,EACjBn1J,KAAKo1J,iBAAmB,GACxBp1J,KAAKq1J,uBAAyB,GAC9Br1J,KAAKs1J,sBAAwB,GAC7Bt1J,KAAKu1J,cAAgB,EACrBv1J,KAAKw1J,4BAA6B,EAClCx1J,KAAKsvJ,iBAAmBxD,EAAmB2J,aAC3Cz1J,KAAKuvJ,oBAAqB,EAC1BvvJ,KAAK01J,mBAAqB11J,KAAK60J,UAAUc,aAAa,CAAE50I,KAAM8qI,EAAY+J,MAC9E,CAMA/P,cAAcyO,EAAYvN,EAAQwN,EAAUC,GACxC,OAAO,IAAIH,EAAcC,EAAYvN,EAAQwN,EAAUC,EAC3D,CAEItnH,YACA,OAAOltC,KAAKsvJ,gBAChB,CAIIyB,mBACA,OAAO/wJ,KAAKs0J,YAAct0J,KAAKs0J,WAAWvD,cAAwB,IACtE,CAEIh0F,cACA,OAAO/8D,KAAKs0J,WAAWv3F,SAAW,EACtC,CAMIA,YAAQP,GACR,GAAIx8D,KAAKsvJ,mBAAqBxD,EAAmB2J,cAAgBz1J,KAAKsvJ,mBAAqBxD,EAAmB+J,aAC1G,MAAM,IAAIz8H,MAAM,0FAEpB,IAAKojC,EACD,MAAM,IAAIpjC,MAAM,8CAEpBp5B,KAAKs0J,WAAWv3F,QAAUP,CAC9B,CAKAkzB,QAEI,OADA1vF,KAAK81J,cAAgB91J,KAAK+1J,6BACnB/1J,KAAK81J,aAChB,CACAn6G,mCACI,GAAI37C,KAAKsvJ,mBAAqBxD,EAAmB2J,aAC7C,OAAOh2G,QAAQsvF,OAAO,IAAI31G,MAAM,0EAEpCp5B,KAAKsvJ,iBAAmBxD,EAAmBkK,WAC3Ch2J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,2BACjC,UACUxvJ,KAAK0vJ,iBACP5J,EAASC,WAETzmJ,OAAOZ,SAASkd,iBAAiB,SAAU5b,KAAK00J,sBAEpD10J,KAAKsvJ,iBAAmBxD,EAAmBmK,UAC3Cj2J,KAAKuvJ,oBAAqB,EAC1BvvJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,wCACrC,CACA,MAAO/rJ,GAGH,OAFAzD,KAAKsvJ,iBAAmBxD,EAAmB2J,aAC3Cz1J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,gEAAgE/rJ,OAC1Fg8C,QAAQsvF,OAAOtrI,EAC1B,CACJ,CACAk4C,uBACI37C,KAAKk2J,2BAAwBz3J,EAC7BuB,KAAKw1J,4BAA6B,EAElC,MAAMW,EAAmB,IAAI12G,SAAQ,CAACC,EAASqvF,KAC3C/uI,KAAKo2J,mBAAqB12G,EAC1B1/C,KAAKq2J,mBAAqBtnB,CAAM,UAE9B/uI,KAAKs0J,WAAW5kE,MAAM1vF,KAAK60J,UAAUtI,gBAC3C,IACI,MAAMmH,EAAmB,CACrBa,SAAUv0J,KAAK60J,UAAUjtJ,KACzBihJ,QAAS7oJ,KAAK60J,UAAUhM,SAa5B,GAXA7oJ,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,oCAC3BxvJ,KAAKs2J,aAAat2J,KAAK+0J,mBAAmBtB,sBAAsBC,IACtE1zJ,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,sBAAsBvoJ,KAAK60J,UAAUjtJ,UAE5E5H,KAAKu2J,kBACLv2J,KAAKw2J,sBACLx2J,KAAKy2J,gCACCN,EAIFn2J,KAAKk2J,sBAKL,MAAMl2J,KAAKk2J,sBAEVl2J,KAAKs0J,WAAWtF,SAAS0B,yBACpB1wJ,KAAKs2J,aAAat2J,KAAK01J,mBAErC,CACA,MAAOjyJ,GAOH,MANAzD,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,oCAAoC/rJ,8CACrEzD,KAAKu2J,kBACLv2J,KAAK02J,0BAGC12J,KAAKs0J,WAAWvG,KAAKtqJ,GACrBA,CACV,CACJ,CAKAk4C,aAEI,MAAMg7G,EAAe32J,KAAK81J,cAC1B91J,KAAK2vJ,aAAe3vJ,KAAK8vJ,sBACnB9vJ,KAAK2vJ,aACX,UAEUgH,CACV,CACA,MAAOlzJ,GAEP,CACJ,CACAqsJ,cAAcpoF,GACV,OAAI1nE,KAAKsvJ,mBAAqBxD,EAAmB2J,cAC7Cz1J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,8BAA8B9nF,+DACxDjoB,QAAQC,WAEf1/C,KAAKsvJ,mBAAqBxD,EAAmB8K,eAC7C52J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,+BAA+B9nF,4EACzD1nE,KAAK2vJ,eAEhB3vJ,KAAKsvJ,iBAAmBxD,EAAmB8K,cAC3C52J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,2BAC7BxvJ,KAAK62J,uBAIL72J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,iEACjCj0H,aAAav7B,KAAK62J,uBAClB72J,KAAK62J,2BAAwBp4J,EAC7BuB,KAAK82J,iBACEr3G,QAAQC,YAEnB1/C,KAAKu2J,kBACLv2J,KAAK02J,oBACL12J,KAAKk2J,sBAAwBxuF,GAAS,IAAIq9E,EAAW,uEAI9C/kJ,KAAKs0J,WAAWvG,KAAKrmF,IAChC,CAQAqvF,OAAOrxD,KAAe/iG,GAClB,MAAOq0J,EAASC,GAAaj3J,KAAKk3J,wBAAwBv0J,GACpDw0J,EAAuBn3J,KAAKo3J,wBAAwB1xD,EAAY/iG,EAAMs0J,GAE5E,IAAII,EACJ,MAAMhuB,EAAU,IAAI8qB,EAkCpB,OAjCA9qB,EAAQwe,eAAiB,KACrB,MAAMyP,EAAmBt3J,KAAKu3J,wBAAwBJ,EAAqBK,cAE3E,cADOx3J,KAAKk1J,WAAWiC,EAAqBK,cACrCH,EAAaz3G,MAAK,IACd5/C,KAAKy3J,kBAAkBH,IAChC,EAENt3J,KAAKk1J,WAAWiC,EAAqBK,cAAgB,CAACE,EAAiBhwF,KAC/DA,EACA2hE,EAAQ3hE,MAAMA,GAGTgwF,IAEDA,EAAgB32I,OAAS8qI,EAAY8L,WACjCD,EAAgBhwF,MAChB2hE,EAAQ3hE,MAAM,IAAItuC,MAAMs+H,EAAgBhwF,QAGxC2hE,EAAQpgE,WAIZogE,EAAQxI,KAAM62B,EAAoB,MAE1C,EAEJL,EAAer3J,KAAKy3J,kBAAkBN,GACjC7gB,OAAO7yI,IACR4lI,EAAQ3hE,MAAMjkE,UACPzD,KAAKk1J,WAAWiC,EAAqBK,aAAa,IAE7Dx3J,KAAK43J,eAAeZ,EAASK,GACtBhuB,CACX,CACAitB,aAAapxE,GAET,OADAllF,KAAKy2J,0BACEz2J,KAAKs0J,WAAW3Q,KAAKz+D,EAChC,CAKAuyE,kBAAkBvyE,GACd,OAAOllF,KAAKs2J,aAAat2J,KAAK60J,UAAUc,aAAazwE,GACzD,CAUAy+D,KAAKj+C,KAAe/iG,GAChB,MAAOq0J,EAASC,GAAaj3J,KAAKk3J,wBAAwBv0J,GACpDk1J,EAAc73J,KAAKy3J,kBAAkBz3J,KAAK83J,kBAAkBpyD,EAAY/iG,GAAM,EAAMs0J,IAE1F,OADAj3J,KAAK43J,eAAeZ,EAASa,GACtBA,CACX,CAYAE,OAAOryD,KAAe/iG,GAClB,MAAOq0J,EAASC,GAAaj3J,KAAKk3J,wBAAwBv0J,GACpDw0J,EAAuBn3J,KAAK83J,kBAAkBpyD,EAAY/iG,GAAM,EAAOs0J,GA+B7E,OA9BU,IAAIx3G,SAAQ,CAACC,EAASqvF,KAE5B/uI,KAAKk1J,WAAWiC,EAAqBK,cAAgB,CAACE,EAAiBhwF,KAC/DA,EACAqnE,EAAOrnE,GAGFgwF,IAEDA,EAAgB32I,OAAS8qI,EAAY8L,WACjCD,EAAgBhwF,MAChBqnE,EAAO,IAAI31G,MAAMs+H,EAAgBhwF,QAGjChoB,EAAQg4G,EAAgB15J,QAI5B+wI,EAAO,IAAI31G,MAAM,4BAA4Bs+H,EAAgB32I,SAErE,EAEJ,MAAMs2I,EAAer3J,KAAKy3J,kBAAkBN,GACvC7gB,OAAO7yI,IACRsrI,EAAOtrI,UAEAzD,KAAKk1J,WAAWiC,EAAqBK,aAAa,IAE7Dx3J,KAAK43J,eAAeZ,EAASK,EAAa,GAGlD,CACA7zI,GAAGkiF,EAAYsyD,GACNtyD,GAAesyD,IAGpBtyD,EAAaA,EAAWx8F,cACnBlJ,KAAKm1J,SAASzvD,KACf1lG,KAAKm1J,SAASzvD,GAAc,KAGsB,IAAlD1lG,KAAKm1J,SAASzvD,GAAYn+F,QAAQywJ,IAGtCh4J,KAAKm1J,SAASzvD,GAAYxjG,KAAK81J,GACnC,CACA9mF,IAAIw0B,EAAYk+C,GACZ,IAAKl+C,EACD,OAEJA,EAAaA,EAAWx8F,cACxB,MAAM+uJ,EAAWj4J,KAAKm1J,SAASzvD,GAC/B,GAAKuyD,EAGL,GAAIrU,EAAQ,CACR,MAAMsU,EAAYD,EAAS1wJ,QAAQq8I,IAChB,IAAfsU,IACAD,EAASvqJ,OAAOwqJ,EAAW,GACH,IAApBD,EAASz0J,eACFxD,KAAKm1J,SAASzvD,GAGjC,aAEW1lG,KAAKm1J,SAASzvD,EAE7B,CAKA2mD,QAAQrqJ,GACAA,GACAhC,KAAKo1J,iBAAiBlzJ,KAAKF,EAEnC,CAKAm2J,eAAen2J,GACPA,GACAhC,KAAKq1J,uBAAuBnzJ,KAAKF,EAEzC,CAKAo2J,cAAcp2J,GACNA,GACAhC,KAAKs1J,sBAAsBpzJ,KAAKF,EAExC,CACAgzJ,qBAAqBh6H,GAOjB,GANAh7B,KAAKu2J,kBACAv2J,KAAKw1J,6BACNx6H,EAAOh7B,KAAKq4J,0BAA0Br9H,GACtCh7B,KAAKw1J,4BAA6B,GAGlCx6H,EAAM,CAEN,MAAMwiG,EAAWx9H,KAAK60J,UAAUyD,cAAct9H,EAAMh7B,KAAKupJ,SACzD,IAAK,MAAMrkE,KAAWs4C,EAClB,OAAQt4C,EAAQnkE,MACZ,KAAK8qI,EAAY0M,WAEbv4J,KAAKw4J,oBAAoBtzE,GACzB,MACJ,KAAK2mE,EAAY4M,WACjB,KAAK5M,EAAY8L,WAAY,CACzB,MAAM31J,EAAWhC,KAAKk1J,WAAWhwE,EAAQsyE,cACzC,GAAIx1J,EAAU,CACNkjF,EAAQnkE,OAAS8qI,EAAY8L,mBACtB33J,KAAKk1J,WAAWhwE,EAAQsyE,cAEnC,IACIx1J,EAASkjF,EACb,CACA,MAAOzhF,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,gCAAgCiwH,EAAe5lJ,KACpF,CACJ,CACA,KACJ,CACA,KAAKooJ,EAAY+J,KAEb,MACJ,KAAK/J,EAAY6M,MAAO,CACpB14J,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,uCACvC,MAAM7gF,EAAQwd,EAAQxd,MAAQ,IAAItuC,MAAM,sCAAwC8rD,EAAQxd,YAASjpE,GAClE,IAA3BymF,EAAQyzE,eAIR34J,KAAKs0J,WAAWvG,KAAKrmF,GAIrB1nE,KAAK2vJ,aAAe3vJ,KAAK8vJ,cAAcpoF,GAE3C,KACJ,CACA,QACI1nE,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,yBAAyBpjE,EAAQnkE,SAIpF,CACA/gB,KAAKw2J,qBACT,CACA6B,0BAA0Br9H,GACtB,IAAI49H,EACA9E,EACJ,KACKA,EAAe8E,GAAmB54J,KAAK+0J,mBAAmBnB,uBAAuB54H,EACtF,CACA,MAAOv3B,GACH,MAAMyhF,EAAU,qCAAuCzhF,EACvDzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO8rD,GACjC,MAAMxd,EAAQ,IAAItuC,MAAM8rD,GAExB,MADAllF,KAAKq2J,mBAAmB3uF,GAClBA,CACV,CACA,GAAIkxF,EAAgBlxF,MAAO,CACvB,MAAMwd,EAAU,oCAAsC0zE,EAAgBlxF,MACtE1nE,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO8rD,GACjC,MAAMxd,EAAQ,IAAItuC,MAAM8rD,GAExB,MADAllF,KAAKq2J,mBAAmB3uF,GAClBA,CACV,CAKA,OAHI1nE,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,8BAErCxvJ,KAAKo2J,qBACEtC,CACX,CACA2C,0BACQz2J,KAAKs0J,WAAWtF,SAAS0B,oBAK7B1wJ,KAAKy0J,gBAAiB,IAAIx2J,MAAOC,UAAY8B,KAAK40J,gCAClD50J,KAAK02J,oBACT,CACAF,sBACI,KAAKx2J,KAAKs0J,WAAWtF,UAAahvJ,KAAKs0J,WAAWtF,SAAS0B,oBAEvD1wJ,KAAK64J,eAAiBr9H,YAAW,IAAMx7B,KAAK84J,iBAAiB94J,KAAK20J,kCAEnCl2J,IAA3BuB,KAAK+4J,oBAAiC,CACtC,IAAIC,EAAWh5J,KAAKy0J,gBAAiB,IAAIx2J,MAAOC,UAC5C86J,EAAW,IACXA,EAAW,GAGfh5J,KAAK+4J,kBAAoBv9H,YAAWmgB,UAChC,GAAI37C,KAAKsvJ,mBAAqBxD,EAAmBmK,UAC7C,UACUj2J,KAAKs2J,aAAat2J,KAAK01J,mBACjC,CACA,MAGI11J,KAAK02J,mBACT,CACJ,GACDsC,EACP,CAER,CAEAF,gBAII94J,KAAKs0J,WAAWvG,KAAK,IAAI30H,MAAM,uEACnC,CACAuiB,0BAA0Bs9G,GACtB,MAAMvzD,EAAauzD,EAAkB7rJ,OAAOlE,cACtCg4G,EAAUlhH,KAAKm1J,SAASzvD,GAC9B,IAAKwb,EAOD,OANAlhH,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,mCAAmC5iD,kBAElEuzD,EAAkBzB,eAClBx3J,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,wBAAwB5iD,gCAAyCuzD,EAAkBzB,wBAChHx3J,KAAKy3J,kBAAkBz3J,KAAKk5J,yBAAyBD,EAAkBzB,aAAc,kCAAmC,SAKtI,MAAM2B,EAAcj4C,EAAQ/0G,QAEtBitJ,IAAkBH,EAAkBzB,aAE1C,IAAI6B,EACAn9B,EACAo9B,EACJ,IAAK,MAAM32F,KAAKw2F,EACZ,IACI,MAAMI,EAAUF,EAChBA,QAAY12F,EAAEl8D,MAAMzG,KAAMi5J,EAAkB5zJ,WACxC+zJ,GAAmBC,GAAOE,IAC1Bv5J,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,kCAAkCssE,gCACnE4zD,EAAoBt5J,KAAKk5J,yBAAyBD,EAAkBzB,aAAc,oCAAqC,OAG3Ht7B,OAAYz9H,CAChB,CACA,MAAOgF,GACHy4H,EAAYz4H,EACZzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,8BAA8BssE,mBAA4BjiG,MAC/F,CAEA61J,QACMt5J,KAAKy3J,kBAAkB6B,GAExBF,GAEDl9B,EACAo9B,EAAoBt5J,KAAKk5J,yBAAyBD,EAAkBzB,aAAc,GAAGt7B,IAAa,WAErFz9H,IAAR46J,EACLC,EAAoBt5J,KAAKk5J,yBAAyBD,EAAkBzB,aAAc,KAAM6B,IAGxFr5J,KAAKupJ,QAAQ/J,IAAI,IAAS8I,QAAS,wBAAwB5iD,gCAAyCuzD,EAAkBzB,kBAEtH8B,EAAoBt5J,KAAKk5J,yBAAyBD,EAAkBzB,aAAc,kCAAmC,aAEnHx3J,KAAKy3J,kBAAkB6B,IAGzBD,GACAr5J,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,qBAAqBssE,kDAGlE,CACAuvD,kBAAkBvtF,GACd1nE,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,kCAAkC9nF,4BAAgC1nE,KAAKsvJ,qBAExGtvJ,KAAKk2J,sBAAwBl2J,KAAKk2J,uBAAyBxuF,GAAS,IAAIq9E,EAAW,iFAG/E/kJ,KAAKo2J,oBACLp2J,KAAKo2J,qBAETp2J,KAAKw5J,0BAA0B9xF,GAAS,IAAItuC,MAAM,uEAClDp5B,KAAKu2J,kBACLv2J,KAAK02J,oBACD12J,KAAKsvJ,mBAAqBxD,EAAmB8K,cAC7C52J,KAAK82J,eAAepvF,GAEf1nE,KAAKsvJ,mBAAqBxD,EAAmBmK,WAAaj2J,KAAK80J,iBAEpE90J,KAAKy5J,WAAW/xF,GAEX1nE,KAAKsvJ,mBAAqBxD,EAAmBmK,WAClDj2J,KAAK82J,eAAepvF,EAO5B,CACAovF,eAAepvF,GACX,GAAI1nE,KAAKuvJ,mBAAoB,CACzBvvJ,KAAKsvJ,iBAAmBxD,EAAmB2J,aAC3Cz1J,KAAKuvJ,oBAAqB,EACtBzJ,EAASC,WACTzmJ,OAAOZ,SAAS4d,oBAAoB,SAAUtc,KAAK00J,sBAEvD,IACI10J,KAAKo1J,iBAAiBxxJ,SAASm2G,GAAMA,EAAEtzG,MAAMzG,KAAM,CAAC0nE,KACxD,CACA,MAAOjkE,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,0CAA0CsuC,mBAAuBjkE,MACtG,CACJ,CACJ,CACAk4C,iBAAiB+rB,GACb,MAAMgyF,EAAqBz7J,KAAK20G,MAChC,IAAI+mD,EAA4B,EAC5BC,OAAuBn7J,IAAVipE,EAAsBA,EAAQ,IAAItuC,MAAM,mDACrDygI,EAAiB75J,KAAK85J,mBAAmBH,IAA6B,EAAGC,GAC7E,GAAuB,OAAnBC,EAGA,OAFA75J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,2GACjCxvJ,KAAK82J,eAAepvF,GAUxB,GAPA1nE,KAAKsvJ,iBAAmBxD,EAAmB+J,aACvCnuF,EACA1nE,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,6CAA6C7gF,OAGpF1nE,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,4BAEA,IAAvCvoJ,KAAKq1J,uBAAuB7xJ,OAAc,CAC1C,IACIxD,KAAKq1J,uBAAuBzxJ,SAASm2G,GAAMA,EAAEtzG,MAAMzG,KAAM,CAAC0nE,KAC9D,CACA,MAAOjkE,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,iDAAiDsuC,mBAAuBjkE,MAC7G,CAEA,GAAIzD,KAAKsvJ,mBAAqBxD,EAAmB+J,aAE7C,YADA71J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,wFAGzC,CACA,KAA0B,OAAnBqK,GAAyB,CAM5B,GALA75J,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,4BAA4BoR,mBAA2CE,eACxG,IAAIp6G,SAASC,IACf1/C,KAAK62J,sBAAwBr7H,WAAWkkB,EAASm6G,EAAe,IAEpE75J,KAAK62J,2BAAwBp4J,EACzBuB,KAAKsvJ,mBAAqBxD,EAAmB+J,aAE7C,YADA71J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,qFAGrC,IAII,SAHMxvJ,KAAK0vJ,iBACX1vJ,KAAKsvJ,iBAAmBxD,EAAmBmK,UAC3Cj2J,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,2CACG,IAAtCvoJ,KAAKs1J,sBAAsB9xJ,OAC3B,IACIxD,KAAKs1J,sBAAsB1xJ,SAASm2G,GAAMA,EAAEtzG,MAAMzG,KAAM,CAACA,KAAKs0J,WAAWvD,gBAC7E,CACA,MAAOttJ,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,uDAAuDp5B,KAAKs0J,WAAWvD,8BAA8BttJ,MAC1I,CAEJ,MACJ,CACA,MAAOA,GAEH,GADAzD,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,8CAA8C9kJ,OACjFzD,KAAKsvJ,mBAAqBxD,EAAmB+J,aAM7C,OALA71J,KAAKupJ,QAAQ/J,IAAI,IAASgQ,MAAO,4BAA4BxvJ,KAAKsvJ,mGAE9DtvJ,KAAKsvJ,mBAAqBxD,EAAmB8K,eAC7C52J,KAAK82J,kBAIb8C,EAAan2J,aAAa21B,MAAQ31B,EAAI,IAAI21B,MAAM31B,EAAEgxB,YAClDolI,EAAiB75J,KAAK85J,mBAAmBH,IAA6B17J,KAAK20G,MAAQ8mD,EAAoBE,EAC3G,CACJ,CACA55J,KAAKupJ,QAAQ/J,IAAI,IAAS+I,YAAa,+CAA+CtqJ,KAAK20G,MAAQ8mD,YAA6BC,gDAChI35J,KAAK82J,gBACT,CACAgD,mBAAmB3W,EAAoB4W,EAAqBC,GACxD,IACI,OAAOh6J,KAAK80J,iBAAiB7R,6BAA6B,CACtD8W,sBACA5W,qBACA6W,eAER,CACA,MAAOv2J,GAEH,OADAzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,6CAA6C+pH,MAAuB4W,mBAAqCt2J,OACnI,IACX,CACJ,CACA+1J,0BAA0B9xF,GACtB,MAAMgxC,EAAY14G,KAAKk1J,WACvBl1J,KAAKk1J,WAAa,CAAC,EACnB/uJ,OAAOC,KAAKsyG,GACP90G,SAASlB,IACV,MAAMV,EAAW02G,EAAUh2G,GAC3B,IACIV,EAAS,KAAM0lE,EACnB,CACA,MAAOjkE,GACHzD,KAAKupJ,QAAQ/J,IAAI,IAASpmH,MAAO,wCAAwCsuC,mBAAuB2hF,EAAe5lJ,KACnH,IAER,CACAizJ,oBACQ12J,KAAK+4J,oBACLx9H,aAAav7B,KAAK+4J,mBAClB/4J,KAAK+4J,uBAAoBt6J,EAEjC,CACA83J,kBACQv2J,KAAK64J,gBACLt9H,aAAav7B,KAAK64J,eAE1B,CACAf,kBAAkBpyD,EAAY/iG,EAAMs3J,EAAahD,GAC7C,GAAIgD,EACA,OAAyB,IAArBhD,EAAUzzJ,OACH,CACH6B,UAAW1C,EACXs0J,YACA7pJ,OAAQs4F,EACR3kF,KAAM8qI,EAAY0M,YAIf,CACHlzJ,UAAW1C,EACXyK,OAAQs4F,EACR3kF,KAAM8qI,EAAY0M,YAIzB,CACD,MAAMf,EAAex3J,KAAKu1J,cAE1B,OADAv1J,KAAKu1J,gBACoB,IAArB0B,EAAUzzJ,OACH,CACH6B,UAAW1C,EACX60J,aAAcA,EAAa/iI,WAC3BwiI,YACA7pJ,OAAQs4F,EACR3kF,KAAM8qI,EAAY0M,YAIf,CACHlzJ,UAAW1C,EACX60J,aAAcA,EAAa/iI,WAC3BrnB,OAAQs4F,EACR3kF,KAAM8qI,EAAY0M,WAG9B,CACJ,CACAX,eAAeZ,EAASK,GACpB,GAAuB,IAAnBL,EAAQxzJ,OAAZ,CAIK6zJ,IACDA,EAAe53G,QAAQC,WAI3B,IAAK,MAAMw6G,KAAYlD,EACnBA,EAAQkD,GAAU9F,UAAU,CACxBnrF,SAAU,KACNouF,EAAeA,EAAaz3G,MAAK,IAAM5/C,KAAKy3J,kBAAkBz3J,KAAKk5J,yBAAyBgB,KAAW,EAE3GxyF,MAAQytD,IACJ,IAAIjwC,EAEAA,EADAiwC,aAAe/7F,MACL+7F,EAAIjwC,QAETiwC,GAAOA,EAAI1gG,SACN0gG,EAAI1gG,WAGJ,gBAEd4iI,EAAeA,EAAaz3G,MAAK,IAAM5/C,KAAKy3J,kBAAkBz3J,KAAKk5J,yBAAyBgB,EAAUh1E,KAAU,EAEpH27C,KAAO/2G,IACHutI,EAAeA,EAAaz3G,MAAK,IAAM5/C,KAAKy3J,kBAAkBz3J,KAAKm6J,yBAAyBD,EAAUpwI,KAAO,GA1BzH,CA8BJ,CACAotI,wBAAwBv0J,GACpB,MAAMq0J,EAAU,GACVC,EAAY,GAClB,IAAK,IAAIlqJ,EAAI,EAAGA,EAAIpK,EAAKa,OAAQuJ,IAAK,CAClC,MAAMygH,EAAW7qH,EAAKoK,GACtB,GAAI/M,KAAKo6J,cAAc5sC,GAAW,CAC9B,MAAM0sC,EAAWl6J,KAAKu1J,cACtBv1J,KAAKu1J,gBAELyB,EAAQkD,GAAY1sC,EACpBypC,EAAU/0J,KAAKg4J,EAASzlI,YAExB9xB,EAAK+K,OAAOX,EAAG,EACnB,CACJ,CACA,MAAO,CAACiqJ,EAASC,EACrB,CACAmD,cAAc9yJ,GAEV,OAAOA,GAAOA,EAAI8sJ,WAAsC,mBAAlB9sJ,EAAI8sJ,SAC9C,CACAgD,wBAAwB1xD,EAAY/iG,EAAMs0J,GACtC,MAAMO,EAAex3J,KAAKu1J,cAE1B,OADAv1J,KAAKu1J,gBACoB,IAArB0B,EAAUzzJ,OACH,CACH6B,UAAW1C,EACX60J,aAAcA,EAAa/iI,WAC3BwiI,YACA7pJ,OAAQs4F,EACR3kF,KAAM8qI,EAAYwO,kBAIf,CACHh1J,UAAW1C,EACX60J,aAAcA,EAAa/iI,WAC3BrnB,OAAQs4F,EACR3kF,KAAM8qI,EAAYwO,iBAG9B,CACA9C,wBAAwB7/H,GACpB,MAAO,CACH8/H,aAAc9/H,EACd3W,KAAM8qI,EAAYyO,iBAE1B,CACAH,yBAAyBziI,EAAI5N,GACzB,MAAO,CACH0tI,aAAc9/H,EACd5N,OACA/I,KAAM8qI,EAAY4M,WAE1B,CACAS,yBAAyBxhI,EAAIgwC,EAAO1pE,GAChC,OAAI0pE,EACO,CACHA,QACA8vF,aAAc9/H,EACd3W,KAAM8qI,EAAY8L,YAGnB,CACHH,aAAc9/H,EACd15B,SACA+iB,KAAM8qI,EAAY8L,WAE1B,ESl2BG,MAAM4C,EACTxlD,cAEI/0G,KAAK4H,KALkB,OAOvB5H,KAAK6oJ,QAAU,EAEf7oJ,KAAKusJ,eAAiBX,EAAe6B,IACzC,CAMA6K,cAAc50G,EAAOqjG,GAEjB,GAAqB,iBAAVrjG,EACP,MAAM,IAAItqB,MAAM,2DAEpB,IAAKsqB,EACD,MAAO,GAEI,OAAXqjG,IACAA,EAASvB,EAAWtY,UAGxB,MAAM1P,EAAW61B,EAAkB1+B,MAAMjxE,GACnC82G,EAAc,GACpB,IAAK,MAAMt1E,KAAWs4C,EAAU,CAC5B,MAAMi9B,EAAgB74J,KAAK+yH,MAAMzvC,GACjC,GAAkC,iBAAvBu1E,EAAc15I,KACrB,MAAM,IAAIqY,MAAM,oBAEpB,OAAQqhI,EAAc15I,MAClB,KAAK8qI,EAAY0M,WACbv4J,KAAK06J,qBAAqBD,GAC1B,MACJ,KAAK5O,EAAY4M,WACbz4J,KAAK26J,qBAAqBF,GAC1B,MACJ,KAAK5O,EAAY8L,WACb33J,KAAK46J,qBAAqBH,GAC1B,MACJ,KAAK5O,EAAY+J,KAGjB,KAAK/J,EAAY6M,MAEb,MACJ,QAEI3R,EAAOvH,IAAI,IAAS+I,YAAa,yBAA2BkS,EAAc15I,KAAO,cACjF,SAERy5I,EAAYt4J,KAAKu4J,EACrB,CACA,OAAOD,CACX,CAMA7E,aAAazwE,GACT,OAAOmuE,EAAkBM,MAAM/xJ,KAAKC,UAAUqjF,GAClD,CACAw1E,qBAAqBx1E,GACjBllF,KAAK66J,sBAAsB31E,EAAQ93E,OAAQ,gDACd3O,IAAzBymF,EAAQsyE,cACRx3J,KAAK66J,sBAAsB31E,EAAQsyE,aAAc,0CAEzD,CACAmD,qBAAqBz1E,GAEjB,GADAllF,KAAK66J,sBAAsB31E,EAAQsyE,aAAc,gDAC5B/4J,IAAjBymF,EAAQp7D,KACR,MAAM,IAAIsP,MAAM,0CAExB,CACAwhI,qBAAqB11E,GACjB,GAAIA,EAAQlnF,QAAUknF,EAAQxd,MAC1B,MAAM,IAAItuC,MAAM,4CAEf8rD,EAAQlnF,QAAUknF,EAAQxd,OAC3B1nE,KAAK66J,sBAAsB31E,EAAQxd,MAAO,2CAE9C1nE,KAAK66J,sBAAsB31E,EAAQsyE,aAAc,0CACrD,CACAqD,sBAAsBpxJ,EAAOglD,GACzB,GAAqB,iBAAVhlD,GAAgC,KAAVA,EAC7B,MAAM,IAAI2vB,MAAMq1B,EAExB,EC3FJ,MAAMqsG,EAAsB,CACxBj8C,MAAO,IAASsoC,MAChB4T,MAAO,IAASvL,MAChBhH,KAAM,IAASD,YACfyS,YAAa,IAASzS,YACtB93D,KAAM,IAAS63D,QACf7kD,QAAS,IAAS6kD,QAClB5gF,MAAO,IAAStuC,MAChB6hI,SAAU,IAAS5S,SACnB1mI,KAAM,IAASu5I,MAeZ,MAAMC,EACTC,iBAAiBC,GAEb,GADAzV,EAAI4G,WAAW6O,EAAS,gBA4EN58J,IA3EL48J,EA2EH7b,IA1ENx/I,KAAK+mJ,OAASsU,OAEb,GAAuB,iBAAZA,EAAsB,CAClC,MAAMnT,EApBlB,SAAuBtgJ,GAInB,MAAMqhI,EAAU6xB,EAAoBlzJ,EAAKsB,eACzC,QAAuB,IAAZ+/H,EACP,OAAOA,EAGP,MAAM,IAAI7vG,MAAM,sBAAsBxxB,IAE9C,CAS6B0zJ,CAAcD,GAC/Br7J,KAAK+mJ,OAAS,IAAIe,EAAcI,EACpC,MAEIloJ,KAAK+mJ,OAAS,IAAIe,EAAcuT,GAEpC,OAAOr7J,IACX,CACAu7J,QAAQ/+F,EAAKg/F,GAeT,OAdA5V,EAAI4G,WAAWhwF,EAAK,OACpBopF,EAAI6V,WAAWj/F,EAAK,OACpBx8D,KAAKw8D,IAAMA,EAIPx8D,KAAK07J,sBAD6B,iBAA3BF,EACsB,IAAKx7J,KAAK07J,yBAA0BF,GAGpC,IACtBx7J,KAAK07J,sBACRzW,UAAWuW,GAGZx7J,IACX,CAKA27J,gBAAgBpH,GAGZ,OAFA3O,EAAI4G,WAAW+H,EAAU,YACzBv0J,KAAKu0J,SAAWA,EACTv0J,IACX,CACA47J,uBAAuBC,GACnB,GAAI77J,KAAKw0J,gBACL,MAAM,IAAIp7H,MAAM,2CAWpB,OATKyiI,EAGI51J,MAAMC,QAAQ21J,GACnB77J,KAAKw0J,gBAAkB,IAAI1R,EAAuB+Y,GAGlD77J,KAAKw0J,gBAAkBqH,EANvB77J,KAAKw0J,gBAAkB,IAAI1R,EAQxB9iJ,IACX,CAKAgrI,QAGI,MAAM0wB,EAAwB17J,KAAK07J,uBAAyB,CAAC,EAO7D,QALqCj9J,IAAjCi9J,EAAsB3U,SAEtB2U,EAAsB3U,OAAS/mJ,KAAK+mJ,SAGnC/mJ,KAAKw8D,IACN,MAAM,IAAIpjC,MAAM,4FAEpB,MAAMk7H,EAAa,IAAIxF,EAAe9uJ,KAAKw8D,IAAKk/F,GAChD,OAAOrH,EAActnC,OAAOunC,EAAYt0J,KAAK+mJ,QAAUvB,EAAWtY,SAAUltI,KAAKu0J,UAAY,IAAIgG,EAAmBv6J,KAAKw0J,gBAC7H,iCCrGG,IAAIsH,mBACX,SAAWA,GAEPA,EAASA,EAAgB,MAAI,GAAK,QAElCA,EAASA,EAAgB,MAAI,GAAK,QAElCA,EAASA,EAAsB,YAAI,GAAK,cAExCA,EAASA,EAAkB,QAAI,GAAK,UAEpCA,EAASA,EAAgB,MAAI,GAAK,QAElCA,EAASA,EAAmB,SAAI,GAAK,WAErCA,EAASA,EAAe,KAAI,GAAK,MACpC,CAfD,CAeGA,IAAaA,EAAW,CAAC,eCvBsMx8J,OAAjKy8J,EAAOC,QAAmL,SAASrhD,GAAG,IAAID,EAAE,CAAC,EAAE,SAASF,EAAE/2G,GAAG,GAAGi3G,EAAEj3G,GAAG,OAAOi3G,EAAEj3G,GAAGu4J,QAAQ,IAAIzhD,EAAEG,EAAEj3G,GAAG,CAACsJ,EAAEtJ,EAAE62G,GAAE,EAAG0hD,QAAQ,CAAC,GAAG,OAAOrhD,EAAEl3G,GAAGiR,KAAK6lG,EAAEyhD,QAAQzhD,EAAEA,EAAEyhD,QAAQxhD,GAAGD,EAAED,GAAE,EAAGC,EAAEyhD,OAAO,CAAC,OAAOxhD,EAAE73C,EAAEg4C,EAAEH,EAAET,EAAEW,EAAEF,EAAER,EAAE,SAASv2G,EAAE82G,EAAEI,GAAGH,EAAEA,EAAE/2G,EAAE82G,IAAIp0G,OAAO8X,eAAexa,EAAE82G,EAAE,CAACp8F,YAAW,EAAGD,IAAIy8F,GAAG,EAAEH,EAAEE,EAAE,SAASj3G,GAAG,oBAAoB28H,QAAQA,OAAO67B,aAAa91J,OAAO8X,eAAexa,EAAE28H,OAAO67B,YAAY,CAACxyJ,MAAM,WAAWtD,OAAO8X,eAAexa,EAAE,aAAa,CAACgG,OAAM,GAAI,EAAE+wG,EAAEG,EAAE,SAASJ,EAAE92G,GAAG,GAAG,EAAEA,IAAI82G,EAAEC,EAAED,IAAI,EAAE92G,EAAE,OAAO82G,EAAE,GAAG,EAAE92G,GAAG,iBAAiB82G,GAAGA,GAAGA,EAAE2hD,WAAW,OAAO3hD,EAAE,IAAII,EAAEx0G,OAAO4mH,OAAO,MAAM,GAAGvS,EAAEE,EAAEC,GAAGx0G,OAAO8X,eAAe08F,EAAE,UAAU,CAACx8F,YAAW,EAAG1U,MAAM8wG,IAAI,EAAE92G,GAAG,iBAAiB82G,EAAE,IAAI,IAAIG,KAAKH,EAAEC,EAAER,EAAEW,EAAED,EAAE,SAASj3G,GAAG,OAAO82G,EAAE92G,EAAE,EAAEk3B,KAAK,KAAK+/E,IAAI,OAAOC,CAAC,EAAEH,EAAED,EAAE,SAAS92G,GAAG,IAAI82G,EAAE92G,GAAGA,EAAEy4J,WAAW,WAAW,OAAOz4J,EAAEi9G,OAAO,EAAE,WAAW,OAAOj9G,CAAC,EAAE,OAAO+2G,EAAER,EAAEO,EAAE,IAAIA,GAAGA,CAAC,EAAEC,EAAEA,EAAE,SAAS/2G,EAAE82G,GAAG,OAAOp0G,OAAOzE,UAAUkE,eAAe8O,KAAKjR,EAAE82G,EAAE,EAAEC,EAAEttG,EAAE,GAAGstG,EAAEA,EAAEnuG,EAAE,GAAG,CAAp5B,CAAs5B,CAAC,SAAS5I,EAAE82G,EAAEI,GAAG,aAAa,IAAID,EAAE16G,MAAMA,KAAKm8J,eAAe,SAAS14J,EAAE82G,EAAEI,GAAG,GAAGA,GAAG,IAAIt1G,UAAU7B,OAAO,IAAI,IAAIk3G,EAAEF,EAAE,EAAEztG,EAAEwtG,EAAE/2G,OAAOg3G,EAAEztG,EAAEytG,KAAKE,GAAGF,KAAKD,KAAKG,EAAEA,GAAGz0G,MAAMvE,UAAUyK,MAAMuI,KAAK6lG,EAAE,EAAEC,IAAIA,GAAGD,EAAEC,IAAI,OAAO/2G,EAAE4E,OAAOqyG,GAAGz0G,MAAMvE,UAAUyK,MAAMuI,KAAK6lG,GAAG,EAAEp0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE6hD,wBAAwB7hD,EAAE8hD,oBAAoB9hD,EAAE+hD,oBAAoB/hD,EAAEgiD,0BAA0BhiD,EAAEiiD,wBAAwBjiD,EAAEkiD,mBAAc,EAAO,IAAIjiD,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAoB,WAAW,EAAKkuG,EAAEkiD,cAAcpwJ,EAAE,IAAIiuG,EAAE,WAAW,SAAS72G,IAAI,CAAC,OAAOA,EAAEi5J,mBAAmB,GAAGj5J,EAAEk5J,kBAAkB,GAAGl5J,EAAEm5J,cAAc,EAAEn5J,EAAEi1G,UAAU,CAAC,EAAEj1G,CAAC,CAAjH,GAAqH,SAASm3G,EAAEn3G,EAAE82G,EAAEI,GAAuD,IAAID,EAAxDH,aAAasiD,SAASliD,EAAEJ,EAAEA,aAAat0G,QAAQy0G,EAAEH,GAASA,EAAEluG,EAAEywJ,aAAar5J,EAAgnE,SAAWA,EAAE82G,GAAG,MAAM,CAAC7iF,GAAG4iF,EAAEsiD,gBAAgBxqD,KAAK3uG,EAAEs5J,UAAU9+J,KAAK20G,MAAMjwG,KAAK43G,GAAG,GAAG,CAAjsEvhE,CAAEv1C,EAAEi3G,GAAG3tG,EAAEiwJ,WAAWC,kBAAkB5wJ,EAAEo6F,eAAep6F,EAAEo6F,cAAcy2D,iBAAiB7wJ,EAAEo6F,cAAcy2D,gBAAgBC,qBAAqBv7J,KAAKC,UAAU4B,KAAKi3G,EAAEP,EAAEI,GAAGA,GAAGG,EAAEH,EAAE6iD,YAAY35J,EAAEi3G,GAAG2iD,EAAE9iD,GAAGr4G,KAAKuB,IAAIk3G,IAAIL,EAAE5B,UAAUj1G,EAAEi0B,IAAIijF,EAAE,CAAC,SAASX,EAAEv2G,GAAG,IAAI82G,EAAEI,EAAEl3G,GAAGA,EAAEu3B,MAAM,iBAAiBv3B,EAAEu3B,MAA6K,SAAWv3B,EAAE82G,GAAG,QAAQluG,EAAEo6F,eAAehjG,IAAI4I,EAAEo6F,iBAAiBp6F,EAAEo6F,eAAep6F,EAAEo6F,cAAckvB,UAAUpb,GAAGA,IAAIluG,EAAEo6F,cAAckvB,SAAS2nC,WAAW9iD,EAAE+iD,kBAAkBp+J,KAAKo7G,EAAErxG,gBAAgB6D,EAAEiwJ,WAAWQ,8BAA8BzwJ,EAAEiwJ,WAAWQ,6BAA6Br+J,KAAKo7G,EAAErxG,gBAAgB,CAAnd6wG,CAAEQ,EAAE92G,EAAE4hG,QAAQ5hG,EAAEg6J,eAAeh6J,EAAEg6J,cAAcp4D,OAAOsV,EAAEl3G,EAAE65J,QAAQ75J,EAAEg6J,eAAeh6J,EAAEg6J,cAAcH,UAAiX,SAAW75J,EAAE82G,GAAGxtG,EAAEiwJ,WAAWC,mBAAmB5wJ,EAAEywJ,eAAezwJ,EAAEywJ,aAAalqF,QAAQnvE,IAAI4I,EAAEywJ,aAAazwJ,EAAEqxJ,cAAcrxJ,EAAEqxJ,YAAY9qF,QAAQnvE,IAAI4I,EAAEqxJ,cAAcrxJ,EAAEqxJ,YAAYj6J,EAAE4I,EAAEsxJ,YAAYpjD,IAAIluG,EAAEywJ,aAAar5J,EAAE4I,EAAEuxJ,aAAarjD,GAAGluG,EAAEywJ,cAAczwJ,EAAEywJ,aAAalqF,SAASvmE,EAAEywJ,aAAa,KAAKzwJ,EAAEuxJ,aAAa,MAAMvxJ,EAAEqxJ,aAAarxJ,EAAEqxJ,YAAY9qF,SAASvmE,EAAEqxJ,YAAY,KAAKrxJ,EAAEsxJ,YAAY,MAAM7jD,EAAEztG,EAAEywJ,cAAchjD,EAAEztG,EAAEqxJ,YAAY,CAAjxBxjD,CAAEK,EAAEI,GAAGJ,IAAIluG,EAAEywJ,aAAan6F,EAAEl/D,GAAG82G,IAAIluG,EAAEqxJ,aAAujC,SAAWj6J,GAAG,IAAIi3G,EAAEH,EAAE,OAAO92G,EAAEu3B,MAAM,SAASv3B,EAAEu3B,OAAO0/E,EAAEj3G,EAAEu3B,KAAKv3B,GAAG82G,GAAE,EAAG92B,EAAEo6E,aAAanjD,EAAEtI,KAAKsI,EAAE/3G,OAAO,GAAG43G,EAAEA,EAAE,GAAG92G,QAAG,IAAS82G,EAAE3uG,EAAE8uG,EAAEhjF,GAAGzxB,MAAMC,QAAQq0G,GAAGA,EAAE,CAACA,IAAIK,EAAEF,EAAEtI,KAAKsI,EAAE/3G,MAAK,WAAW,IAAI,IAAIc,EAAE82G,EAAE,GAAGI,EAAE,EAAEA,EAAEt1G,UAAU7B,OAAOm3G,IAAIJ,EAAEI,GAAGt1G,UAAUs1G,GAAGtuG,EAAEqxJ,cAAcj6J,EAAE82G,EAAEhkG,MAAM3K,EAAE8uG,EAAEhjF,GAAG6iF,EAAE92G,GAAG,IAAG,CAAx0CyJ,CAAEzJ,GAAI,CAA0tB,SAASk/D,EAAEl/D,GAAG,IAAI82G,EAAEI,EAAE,OAAOl3G,EAAEu3B,MAAM,iBAAiBv3B,EAAEu3B,KAAKtD,IAAIijF,EAAEl3G,EAAEu3B,MAAMu/E,EAAED,EAAE5B,UAAUiC,EAAEjjF,OAAO6iF,EAAE9zG,MAAM,KAAKi0G,EAAEA,EAAE,GAAGC,EAAEh4G,MAAK,GAAI,CAACg4G,EAAEmjD,oBAAmB,IAAiI,SAAWr6J,GAAG,OAAM,IAAKA,EAAEu3B,KAAK8iI,iBAAiB,CAA7K7jD,CAAEx2G,WAAW62G,EAAE5B,UAAUiC,EAAEjjF,MAAM,SAASj0B,EAAEu3B,MAAM,iBAAiBv3B,EAAEu3B,KAAKo3E,OAAOuI,EAAEl3G,EAAEu3B,MAAK,EAAGyoD,EAAEo6E,aAAaljD,EAAEvI,KAAKuI,EAAEh4G,MAAM,CAAkV,SAAS06J,EAAE55J,GAAG,OAAOA,IAAI4I,EAAEywJ,aAAaxiD,EAAEoiD,mBAAmBj5J,IAAI4I,EAAEqxJ,YAAYpjD,EAAEqiD,kBAAkB,EAAE,CAAC,SAASxiD,EAAE12G,GAAG,OAAOA,IAAI4I,EAAEywJ,aAAazwJ,EAAEuxJ,aAAan6J,IAAI4I,EAAEqxJ,YAAYrxJ,EAAEsxJ,YAAY,IAAI,CAAC,SAAS7jD,EAAEr2G,GAAG,IAAI,IAAI82G,EAAEJ,EAAE12G,GAAGk3G,EAAE0iD,EAAE55J,GAAGA,GAAG82G,GAAG,EAAEI,EAAEn3G,QAAQC,EAAE25J,YAAYziD,EAAExb,QAAQob,EAAE,CAAC,SAAS3uG,EAAEnI,EAAE82G,EAAEI,GAAG,IAAID,EAAEruG,EAAEqxJ,YAAYnjD,EAA+H,SAAW92G,EAAE82G,EAAEI,GAAG,MAAM,CAACjjF,GAAGj0B,EAAEd,KAAK43G,GAAG,GAAGujD,kBAAkBnjD,EAAE,CAA1LojD,CAAEt6J,EAAE82G,EAAEI,GAAGA,EAAER,EAAEO,GAAGA,GAAGC,GAAGD,EAAE0iD,YAAY7iD,EAAEI,EAAE,CAA6LJ,EAAEiiD,wBAAwB,SAAS/4J,EAAE82G,GAAGD,EAAE0jD,gBAAgB,SAASv6J,GAAG,OAAOu2G,EAAEv2G,EAAE,EAAE4I,EAAEo6F,cAAcp6F,EAAEo6F,eAAennG,OAAO+M,EAAEywJ,aAAazwJ,EAAEo6F,cAAc73B,SAASviE,EAAEo6F,cAAcw/C,KAAK55I,EAAEo6F,cAAc73B,OAAOviE,EAAEo6F,cAAcw3D,QAAQ5xJ,EAAEywJ,cAAcviD,IAAIluG,EAAEo6F,cAAc7qF,iBAAiB,UAAU0+F,EAAE0jD,iBAAgB,GAAI3xJ,EAAEywJ,eAAe/vJ,EAAEiwJ,WAAWC,mBAAkB,EAAG39J,OAAO4+J,gBAAgBv7F,GAAG,IAAIt2D,EAAEuxJ,aAAa,IAAIhjD,EAAE,aAAa,CAACJ,EAAEquC,SAASplJ,EAAE,CAAC,QAAQ4I,EAAEuxJ,aAAa,IAAI,CAAC,EAAErjD,EAAEgiD,0BAA0B,WAAWlwJ,EAAEo6F,cAAcnqF,oBAAoB,UAAUg+F,EAAE0jD,iBAAgB,GAAI3xJ,EAAEywJ,aAAa,KAAKzwJ,EAAEuxJ,aAAa,KAAKvxJ,EAAEqxJ,YAAY,KAAKrxJ,EAAEsxJ,YAAY,KAAKrjD,EAAEoiD,mBAAmB,GAAGpiD,EAAEqiD,kBAAkB,GAAGriD,EAAEsiD,cAAc,EAAEtiD,EAAE5B,UAAU,CAAC,CAAC,EAAE6B,EAAE+hD,oBAAoB1hD,EAAEL,EAAE8hD,oBAAoB,SAAS54J,EAAE82G,GAAG,IAAII,EAAEtuG,EAAEo6F,cAAcwL,aAAY,WAAW,IAAIorD,EAAE55J,GAAGD,SAASouG,cAAc+I,GAAGJ,IAAI,GAAE,IAAI,EAAEA,EAAE6hD,wBAAwB,SAAS34J,EAAE82G,GAAG,IAAII,EAAEtuG,EAAEqxJ,YAAYj6J,EAAp+B,SAAWA,EAAE82G,GAAG,MAAM,CAACnI,KAAK3uG,EAAEd,KAAK43G,GAAG,GAAG,CAA67B4jD,CAAE16J,EAAE82G,GAAGA,EAAEJ,EAAEQ,GAAGA,GAAGJ,EAAEI,EAAEyiD,YAAY35J,EAAE82G,GAAG8iD,EAAE1iD,GAAGz4G,KAAKuB,EAAE,CAAC,EAAE,SAASA,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE6jD,8BAA8B7jD,EAAE8jD,uBAAuB9jD,EAAE+jD,mBAAmB/jD,EAAEgkD,yBAAyBhkD,EAAEikD,uBAAkB,EAAO,IAAI9jD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,GAAG,SAASL,EAAE72G,GAA0H,YAAvH,IAASA,IAAIA,EAAEsJ,EAAE0xJ,iCAAiCh7J,GAAE,EAAG4I,EAAEqyJ,oBAAoBj7E,EAAEu5E,WAAW2B,0BAA0Bl7J,IAAUghF,MAAMhhF,IAAI,GAAGA,CAAC,CAAC,SAASm3G,IAAI,OAAOn3B,EAAEu5E,WAAW4B,gBAAgBlkD,EAAEmkD,eAAeC,SAASr7E,EAAEu5E,WAAW4B,gBAAgBlkD,EAAEmkD,eAAeE,GAAG,CAACxkD,EAAEikD,kBAAkB,WAAW,IAAI,IAAI/6J,EAAE,GAAG82G,EAAE,EAAEA,EAAEl1G,UAAU7B,OAAO+2G,IAAI92G,EAAE82G,GAAGl1G,UAAUk1G,GAAG,IAAI92B,EAAEu5E,WAAWgC,iBAAiB,MAAM,IAAI5lI,MAAM,4CAA4C,GAAGqqD,EAAEu5E,WAAWiC,cAAcx7J,GAAG,EAAEA,EAAED,OAAO,CAAC,IAAI,IAAIm3G,GAAE,EAAGD,EAAE,EAAEA,EAAEj3G,EAAED,OAAOk3G,IAAI,GAAGj3G,EAAEi3G,KAAKj3B,EAAEu5E,WAAWiC,aAAa,CAACtkD,GAAE,EAAG,KAAK,CAAC,IAAIA,EAAE,MAAM,IAAIvhF,MAAM,oCAAoCqqD,EAAEu5E,WAAWiC,aAAa,YAAY,CAAC,EAAE1kD,EAAEgkD,yBAAyBjkD,EAAEC,EAAE+jD,mBAAmB1jD,EAAEL,EAAE8jD,uBAAuB,SAAS56J,GAAG,YAAO,IAASA,IAAIA,EAAEsJ,EAAE0xJ,iCAAiC7jD,IAAIN,EAAE72G,GAAG,KAAK,CAACy7J,UAAU1kD,EAAE2kD,UAAUC,cAAc,CAACF,UAAU1kD,EAAE2kD,UAAUE,0BAA0B,EAAE9kD,EAAE6jD,8BAA8B,SAAS36J,GAAOA,EAAEggF,EAAEu5E,WAAWsC,uBAAuBj3J,OAAO5E,EAAEtB,QAAO,SAASsB,GAAG,MAAM,iBAAiBA,GAAGsJ,EAAEwyJ,8BAA8BpgK,KAAKsE,EAAE,KAAvI,IAA2I82G,EAAE,CAAC,EAAE92G,EAAEA,EAAEtB,QAAO,SAASsB,GAAG,OAAO82G,EAAE92G,KAAK82G,EAAE92G,IAAG,EAAG,IAAGggF,EAAEu5E,WAAWsC,uBAAuB77J,EAAE,EAAEggF,EAAEu5E,WAAWsC,uBAAuB97J,OAAOigF,EAAEu5E,WAAWQ,8BAA6B,EAAGnxJ,EAAEmzJ,wBAAwB/7E,EAAEu5E,WAAWsC,wBAAwB77E,EAAEu5E,WAAWQ,6BAA6B,IAAI,CAAC,EAAE,SAAS/5J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEklD,YAAYllD,EAAEmlD,oBAAoBnlD,EAAEolD,aAAaplD,EAAEqlD,SAASrlD,EAAEslD,cAActlD,EAAEskD,oBAAe,EAAO,SAASp7J,GAAGA,EAAEq8J,QAAQ,UAAUr8J,EAAEs8J,IAAI,MAAMt8J,EAAEq7J,QAAQ,UAAUr7J,EAAEs7J,IAAI,MAAMt7J,EAAEu8J,OAAO,SAASv8J,EAAEw8J,MAAM,QAAQx8J,EAAEy8J,WAAW,aAAaz8J,EAAE08J,kBAAkB,oBAAoB18J,EAAE28J,kBAAkB,oBAAoB38J,EAAE48J,YAAY,cAAc58J,EAAE68J,cAAc,eAAe,CAAnR,CAAqR/lD,EAAEskD,iBAAiBtkD,EAAEskD,eAAe,CAAC,IAAI,SAASp7J,GAAGA,EAAEwvD,SAAS,WAAWxvD,EAAE4hC,QAAQ,UAAU5hC,EAAE88J,eAAe,iBAAiB98J,EAAEogE,OAAO,SAASpgE,EAAE+8J,KAAK,OAAO/8J,EAAEg9J,UAAU,YAAYh9J,EAAEi9J,MAAM,QAAQj9J,EAAEk9J,aAAa,cAAc,CAA7L,CAA+LpmD,EAAEslD,gBAAgBtlD,EAAEslD,cAAc,CAAC,IAAI,SAASp8J,GAAGA,EAAEA,EAAEm9J,SAAS,GAAG,WAAWn9J,EAAEA,EAAEo9J,IAAI,GAAG,MAAMp9J,EAAEA,EAAEq9J,MAAM,GAAG,QAAQr9J,EAAEA,EAAEs9J,IAAI,GAAG,MAAMt9J,EAAEA,EAAEu9J,MAAM,GAAG,OAAO,CAAlH,CAAoHzmD,EAAEqlD,WAAWrlD,EAAEqlD,SAAS,CAAC,IAAI,SAASn8J,GAAGA,EAAEA,EAAEw9J,MAAM,GAAG,QAAQx9J,EAAEA,EAAEy9J,KAAK,GAAG,OAAOz9J,EAAEA,EAAE09J,MAAM,GAAG,OAAO,CAAxE,CAA0E5mD,EAAEolD,eAAeplD,EAAEolD,aAAa,CAAC,IAAI,SAASl8J,GAAGA,EAAE29J,MAAM,QAAQ39J,EAAE49J,OAAO,SAAS59J,EAAE69J,MAAM,OAAO,CAA7D,CAA+D/mD,EAAEmlD,sBAAsBnlD,EAAEmlD,oBAAoB,CAAC,IAAI,SAASj8J,GAAGA,EAAE89J,QAAQ,UAAU99J,EAAE+9J,QAAQ,UAAU/9J,EAAEg+J,OAAO,QAAQ,CAArE,CAAuElnD,EAAEklD,cAAcllD,EAAEklD,YAAY,CAAC,GAAG,EAAE,SAASh8J,EAAE82G,EAAEI,GAAG,aAAa,IAAIH,EAAEx6G,MAAMA,KAAKm8J,eAAe,SAAS14J,EAAE82G,EAAEI,GAAG,GAAGA,GAAG,IAAIt1G,UAAU7B,OAAO,IAAI,IAAIk3G,EAAEF,EAAE,EAAEztG,EAAEwtG,EAAE/2G,OAAOg3G,EAAEztG,EAAEytG,KAAKE,GAAGF,KAAKD,KAAKG,EAAEA,GAAGz0G,MAAMvE,UAAUyK,MAAMuI,KAAK6lG,EAAE,EAAEC,IAAIA,GAAGD,EAAEC,IAAI,OAAO/2G,EAAE4E,OAAOqyG,GAAGz0G,MAAMvE,UAAUyK,MAAMuI,KAAK6lG,GAAG,EAAEp0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEmnD,4BAA4BnnD,EAAEonD,sBAAsBpnD,EAAEqnD,0BAA0BrnD,EAAEsnD,0BAA0BtnD,EAAEunD,kBAAkBvnD,EAAEwnD,6BAA6BxnD,EAAEynD,cAAcznD,EAAE0nD,gBAAgB1nD,EAAEsjD,YAAYtjD,EAAE2nD,wBAAmB,EAAO,IAAIxnD,EAAEC,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAE,WAAW,SAAShgF,IAAI,CAAC,OAAOA,EAAEw0J,SAAS,CAAC,EAAEx0J,CAAC,CAA/C,GAAmD,SAAS4I,EAAE5I,GAAGggF,EAAE0+E,oBAAoB1+E,EAAE0+E,mBAAmB1+J,GAAGsJ,EAAE0vJ,cAAciB,cAAa,EAAG3wJ,EAAEqvJ,yBAAyB,cAAc,CAAC34J,GAAG,CAAC,SAAS62G,IAAI72B,EAAE2+E,wBAAwB3+E,EAAE2+E,2BAA0B,EAAG1nD,EAAE2nD,eAAe,CAAC,SAASznD,EAAEn3G,GAAGggF,EAAE6+E,mBAAmB7+E,EAAE6+E,kBAAkB7+J,EAAE,CAAC,SAASu2G,EAAEv2G,GAAGggF,EAAE8+E,aAAa9+E,EAAE8+E,YAAY9+J,GAAGsJ,EAAE0vJ,cAAciB,cAAa,EAAG3wJ,EAAEqvJ,yBAAyB,OAAO,CAAC34J,GAAG,CAAC,SAASs2G,IAAI,SAASt2G,KAAI,EAAGsJ,EAAEuvJ,qBAAqB,gBAAgB,GAAG,CAAC74E,EAAE++E,qBAAqB/+E,EAAE++E,oBAAoB/+J,IAAIA,GAAG,CAAC82G,EAAE2nD,mBAAmB,WAAWz+E,EAAEw0E,SAASwK,YAAYp2J,EAAEo3E,EAAEw0E,SAASyK,gBAAgBpoD,EAAE72B,EAAEw0E,SAAS0K,KAAK3oD,EAAEv2B,EAAEw0E,SAAS2K,aAAa7oD,EAAEt2B,EAAEw0E,SAAS4K,WAAWjoD,CAAC,EAAEL,EAAEsjD,YAAY,SAASp6J,EAAE82G,GAAG,OAAO92G,EAAEggF,EAAEw0E,SAASx0J,IAAI,EAAC,EAAGA,EAAEgD,MAAMzG,KAAKu6G,IAAI,EAAC,OAAG,EAAO,EAAEA,EAAE0nD,gBAAgB,SAASx+J,EAAE82G,EAAEI,EAAED,QAAG,IAASC,IAAIA,GAAE,QAAI,IAASD,IAAIA,EAAE,IAAIH,GAAG92B,EAAEw0E,SAASx0J,GAAG82G,EAAEI,IAAG,EAAG5tG,EAAEuvJ,qBAAqB,kBAAkB9hD,EAAE,CAAC/2G,GAAGi3G,GAAE,YAAaj3B,EAAEw0E,SAASx0J,EAAE,EAAE82G,EAAEynD,cAAc,SAASv+J,UAAUggF,EAAEw0E,SAASx0J,EAAE,EAAE82G,EAAEwnD,6BAA6B,SAASt+J,IAAIggF,EAAE0+E,mBAAmB1+J,KAAI,EAAGsJ,EAAEuvJ,qBAAqB,kBAAkB,CAAC,eAAe,EAAE/hD,EAAEunD,kBAAkBz1J,EAAEkuG,EAAEsnD,0BAA0B,SAASp+J,IAAIggF,EAAE2+E,uBAAuB3+J,KAAI,EAAGsJ,EAAEuvJ,qBAAqB,kBAAkB,CAAC,cAAc,EAAE/hD,EAAEqnD,0BAA0B,SAASn+J,IAAIggF,EAAE6+E,kBAAkB7+J,KAAI,EAAGsJ,EAAEuvJ,qBAAqB,kBAAkB,CAAC,cAAc,EAAE/hD,EAAEonD,sBAAsB,SAASl+J,IAAIggF,EAAE8+E,YAAY9+J,KAAI,EAAGsJ,EAAEuvJ,qBAAqB,kBAAkB,CAAC,QAAQ,EAAE/hD,EAAEmnD,4BAA4B,SAASj+J,IAAIggF,EAAE++E,oBAAoB/+J,KAAI,EAAGsJ,EAAEuvJ,qBAAqB,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,SAAS74J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEglD,8BAA8BhlD,EAAEgjD,kBAAkBhjD,EAAEuoD,aAAavoD,EAAEwoD,mCAAmCxoD,EAAEyoD,+BAA+BzoD,EAAE0oD,uBAAuB1oD,EAAE2oD,iCAAiC3oD,EAAE4oD,4BAA4B5oD,EAAE6oD,4BAA4B7oD,EAAE8oD,gDAAgD9oD,EAAE+oD,oCAAoC/oD,EAAEgpD,wCAAwChpD,EAAEipD,oCAAoCjpD,EAAEkkD,gCAAgClkD,EAAEsuC,aAAQ,EAAOluC,EAAEA,EAAE,GAAGJ,EAAEsuC,QAAQ,SAAStuC,EAAEkkD,gCAAgC,QAAQlkD,EAAEipD,oCAAoC,QAAQjpD,EAAEgpD,wCAAwC,QAAQhpD,EAAE+oD,oCAAoC,QAAQ/oD,EAAE8oD,gDAAgD,QAAQ9oD,EAAE6oD,4BAA4B,QAAQ7oD,EAAE4oD,4BAA4B,QAAQ5oD,EAAE2oD,iCAAiC,QAAQ3oD,EAAE0oD,uBAAuB,QAAQ1oD,EAAEyoD,+BAA+B,QAAQzoD,EAAEwoD,mCAAmC,QAAQxoD,EAAEuoD,aAAa,CAAC,8BAA8B,6BAA6B,iCAAiC,iCAAiC,kCAAkC,yBAAyB,8BAA8B,2BAA2B,+BAA+B,oCAAoC,iCAAiC,sCAAsC,0BAA0B,2BAA2B,8BAA8B,iCAAiC,6BAA6B,iCAAiC,gCAAgC,yBAAyB,0BAA0B,2BAA2B,gCAAgC,4BAA4B,4BAA4BvoD,EAAEgjD,mBAAkB,EAAG5iD,EAAE6kD,wBAAwBjlD,EAAEuoD,cAAcvoD,EAAEglD,8BAA8B,cAAc,EAAE,SAAS97J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEkpD,aAAalpD,EAAEmkD,mBAAmBnkD,EAAEmpD,4BAA4BnpD,EAAEilD,4BAAuB,EAAO,IAAI9kD,EAAEC,EAAE,IAAI,SAASH,EAAE/2G,GAAG,IAAI,IAAI82G,EAAE,IAAII,EAAEl3G,EAAE+D,MAAM,KAAKkzG,EAAE,EAAEA,EAAEC,EAAEn3G,OAAOk3G,IAAIH,IAAI,EAAEG,EAAE,MAAM,IAAIC,EAAED,GAAGpwG,QAAQ,IAAI,WAAW,OAAOiwG,EAAG,GAAG,CAACA,EAAEilD,uBAAuB,SAAS/7J,GAAG,IAAI,IAAI82G,EAAE,GAAGI,EAAE,EAAEA,EAAEl3G,EAAED,OAAOm3G,IAAIJ,IAAI,IAAII,EAAE,GAAG,KAAKH,EAAE/2G,EAAEk3G,IAAI,OAAO,IAAI0X,OAAO9X,EAAE,EAAEA,EAAEmpD,4BAA4B,SAAS/oD,GAAG,OAAO,SAASl3G,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAMuhF,GAAGJ,EAAE,CAAC,EAAEA,EAAEmkD,mBAAmB,SAASj7J,EAAE82G,GAAG,GAAG,iBAAiB92G,GAAG,iBAAiB82G,EAAE,OAAOopD,IAAI,IAAIhpD,EAAEl3G,EAAE+D,MAAM,KAAKkzG,EAAEH,EAAE/yG,MAAM,KAAK,SAASgzG,EAAE/2G,GAAG,MAAM,QAAQtE,KAAKsE,EAAE,CAAC,IAAIk3G,EAAEipD,MAAMppD,KAAKE,EAAEkpD,MAAMppD,GAAG,OAAOmpD,IAAI,KAAKhpD,EAAEn3G,OAAOk3G,EAAEl3G,QAAQm3G,EAAEz4G,KAAK,KAAK,KAAKw4G,EAAEl3G,OAAOm3G,EAAEn3G,QAAQk3G,EAAEx4G,KAAK,KAAK,IAAI,IAAI6K,EAAE,EAAEA,EAAE4tG,EAAEn3G,SAASuJ,EAAE,GAAGqxE,OAAOu8B,EAAE5tG,KAAKqxE,OAAOs8B,EAAE3tG,IAAI,OAAOqxE,OAAOu8B,EAAE5tG,IAAIqxE,OAAOs8B,EAAE3tG,IAAI,GAAG,EAAE,OAAO,CAAC,EAAEwtG,EAAEkpD,aAAa,WAAW,OAAO/oD,EAAEmpD,IAAI,CAAC,EAAE,SAASpgK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE4kD,UAAU5kD,EAAEupD,wBAAmB,EAAO,SAASrgK,GAAGA,EAAEsgK,OAAO,SAAStgK,EAAEugK,QAAQ,UAAUvgK,EAAEwgK,IAAI,KAAK,CAA7D,CAA+D1pD,EAAEupD,qBAAqBvpD,EAAEupD,mBAAmB,CAAC,IAAI,SAASrgK,GAAGA,EAAEA,EAAE47J,0BAA0B,KAAK,4BAA4B57J,EAAEA,EAAEygK,eAAe,KAAK,iBAAiBzgK,EAAEA,EAAE0gK,iCAAiC,KAAK,mCAAmC1gK,EAAEA,EAAE2gK,kBAAkB,KAAK,oBAAoB3gK,EAAEA,EAAE4gK,cAAc,KAAK,gBAAgB5gK,EAAEA,EAAE6gK,cAAc,KAAK,gBAAgB7gK,EAAEA,EAAE8gK,kBAAkB,KAAK,oBAAoB9gK,EAAEA,EAAE+gK,4BAA4B,KAAK,8BAA8B/gK,EAAEA,EAAEghK,uBAAuB,KAAK,yBAAyBhhK,EAAEA,EAAEihK,SAAS,KAAK,WAAWjhK,EAAEA,EAAEkhK,WAAW,KAAK,aAAalhK,EAAEA,EAAEmhK,oBAAoB,MAAM,sBAAsBnhK,EAAEA,EAAE27J,aAAa,KAAK,eAAe37J,EAAEA,EAAEohK,eAAe,KAAK,iBAAiBphK,EAAEA,EAAEqhK,cAAc,KAAK,eAAe,CAA/sB,CAAitBvqD,EAAE4kD,YAAY5kD,EAAE4kD,UAAU,CAAC,GAAG,EAAE,SAAS17J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEyiD,gBAAW,EAAO,IAAItiD,EAAE,WAAW,SAASj3G,IAAI,CAAC,OAAOA,EAAEu7J,kBAAiB,EAAGv7J,EAAEshK,qBAAoB,EAAGthK,EAAE67J,uBAAuB,GAAG77J,EAAE+5J,6BAA6B,KAAK/5J,EAAEuhK,oBAAoB,GAAGvhK,EAAEw5J,mBAAkB,EAAGx5J,EAAEwhK,wBAAuB,EAAGxhK,CAAC,CAA5N,GAAgO82G,EAAEyiD,WAAWtiD,CAAC,EAAE,SAASj3G,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE2qD,UAAU3qD,EAAE4qD,QAAQ5qD,EAAEroG,MAAMqoG,EAAE6qD,OAAO7qD,EAAE8qD,aAAa9qD,EAAE+qD,QAAQ/qD,EAAEob,SAASpb,EAAEgrD,MAAMhrD,EAAEirD,MAAMjrD,EAAEkrD,gBAAgBlrD,EAAEmrD,eAAenrD,EAAEorD,MAAMprD,EAAEtnD,SAASsnD,EAAEqrD,cAAcrrD,EAAEsrD,oBAAoBtrD,EAAE8nD,aAAa9nD,EAAEurD,YAAYvrD,EAAEwrD,cAAcxrD,EAAEyrD,gBAAgBzrD,EAAE0rD,mCAAmC1rD,EAAE2rD,mCAAmC3rD,EAAE4rD,8BAA8B5rD,EAAEwnD,6BAA6BxnD,EAAEonD,sBAAsBpnD,EAAE6rD,0BAA0B7rD,EAAE8rD,8BAA8B9rD,EAAEqnD,0BAA0BrnD,EAAEmnD,4BAA4BnnD,EAAEsnD,0BAA0BtnD,EAAE+rD,MAAM/rD,EAAEgsD,2BAA2BhsD,EAAEisD,WAAWjsD,EAAEksD,gBAAgBlsD,EAAEmsD,mBAAmBnsD,EAAEosD,WAAWpsD,EAAEqsD,gBAAgBrsD,EAAEssD,sBAAsBtsD,EAAEupD,mBAAmBvpD,EAAE4kD,UAAU5kD,EAAEklD,YAAYllD,EAAEolD,aAAaplD,EAAEqlD,SAASrlD,EAAEmlD,oBAAoBnlD,EAAEskD,eAAetkD,EAAEslD,cAActlD,EAAEgmD,eAAehmD,EAAEusD,uBAAkB,EAAO,IAAIpsD,EAAEC,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,oBAAoB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOw8F,EAAEosD,iBAAiB,IAAI,IAAItsD,EAAEG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,iBAAiB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOs8F,EAAE+lD,cAAc,IAAI,IAAIxzJ,EAAE4tG,EAAE,GAAGx0G,OAAO8X,eAAes8F,EAAE,gBAAgB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAE8yJ,aAAa,IAAI15J,OAAO8X,eAAes8F,EAAE,iBAAiB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAE8xJ,cAAc,IAAI14J,OAAO8X,eAAes8F,EAAE,sBAAsB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAE2yJ,mBAAmB,IAAIv5J,OAAO8X,eAAes8F,EAAE,WAAW,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAE6yJ,QAAQ,IAAIz5J,OAAO8X,eAAes8F,EAAE,eAAe,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAE4yJ,YAAY,IAAIx5J,OAAO8X,eAAes8F,EAAE,cAAc,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAE0yJ,WAAW,IAAI,IAAIh8E,EAAEk3B,EAAE,GAAGx0G,OAAO8X,eAAes8F,EAAE,YAAY,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE07E,SAAS,IAAIh5J,OAAO8X,eAAes8F,EAAE,qBAAqB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEqgF,kBAAkB,IAAI,IAAIz3J,EAAEsuG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,wBAAwB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEw6J,qBAAqB,IAAI1gK,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEu6J,eAAe,IAAIzgK,OAAO8X,eAAes8F,EAAE,aAAa,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEs6J,UAAU,IAAIxgK,OAAO8X,eAAes8F,EAAE,qBAAqB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEq6J,kBAAkB,IAAIvgK,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEo6J,eAAe,IAAItgK,OAAO8X,eAAes8F,EAAE,aAAa,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEm6J,UAAU,IAAIrgK,OAAO8X,eAAes8F,EAAE,6BAA6B,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEk6J,0BAA0B,IAAIpgK,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEi6J,KAAK,IAAIngK,OAAO8X,eAAes8F,EAAE,4BAA4B,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEw1J,yBAAyB,IAAI17J,OAAO8X,eAAes8F,EAAE,8BAA8B,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEq1J,2BAA2B,IAAIv7J,OAAO8X,eAAes8F,EAAE,4BAA4B,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEu1J,yBAAyB,IAAIz7J,OAAO8X,eAAes8F,EAAE,gCAAgC,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEg6J,6BAA6B,IAAIlgK,OAAO8X,eAAes8F,EAAE,4BAA4B,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE+5J,yBAAyB,IAAIjgK,OAAO8X,eAAes8F,EAAE,wBAAwB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAEs1J,qBAAqB,IAAIx7J,OAAO8X,eAAes8F,EAAE,+BAA+B,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE01J,4BAA4B,IAAI57J,OAAO8X,eAAes8F,EAAE,gCAAgC,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE85J,6BAA6B,IAAIhgK,OAAO8X,eAAes8F,EAAE,qCAAqC,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE65J,kCAAkC,IAAI//J,OAAO8X,eAAes8F,EAAE,qCAAqC,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE45J,kCAAkC,IAAI9/J,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE25J,eAAe,IAAI7/J,OAAO8X,eAAes8F,EAAE,gBAAgB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE05J,aAAa,IAAI,IAAIzrD,EAAEK,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,cAAc,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOo8F,EAAEwrD,WAAW,IAAI3/J,OAAO8X,eAAes8F,EAAE,eAAe,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOo8F,EAAE+nD,YAAY,IAAIl8J,OAAO8X,eAAes8F,EAAE,sBAAsB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOo8F,EAAEurD,mBAAmB,IAAI1/J,OAAO8X,eAAes8F,EAAE,gBAAgB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOo8F,EAAEsrD,aAAa,IAAI,IAAIhrD,EAAED,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,WAAW,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO08F,EAAE3nD,QAAQ,IAAI,IAAI+mD,EAAEW,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO87F,EAAE2rD,KAAK,IAAI,IAAI5rD,EAAEY,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,iBAAiB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO67F,EAAE2rD,cAAc,IAAIv/J,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO67F,EAAE0rD,eAAe,IAAI,IAAIvrD,EAAES,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOg8F,EAAEsrD,KAAK,IAAI,IAAI7iG,EAAEg4C,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOykD,EAAE4iG,KAAK,IAAI,IAAItrD,EAAEU,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,WAAW,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO+7F,EAAE0b,QAAQ,IAAI,IAAIzoH,EAAEytG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,UAAU,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOhR,EAAEo4J,OAAO,IAAI,IAAIjI,EAAE1iD,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,eAAe,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOm/I,EAAEgI,YAAY,IAAI,IAAIlrD,EAAEQ,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,SAAS,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOi8F,EAAEirD,MAAM,IAAI,IAAItrD,EAAEa,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO47F,EAAE5nG,KAAK,IAAI,IAAItG,EAAE+uG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,UAAU,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOtS,EAAEu5J,OAAO,IAAI,IAAInsH,EAAE2hE,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,YAAY,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO86B,EAAEksH,SAAS,GAAG,EAAE,SAASzhK,EAAE82G,GAAG,IAAII,EAAED,EAAEF,EAAE,oBAAoBusD,QAAQA,OAAOC,iBAAiBD,OAAOC,gBAAgBrsI,KAAKosI,SAAS,oBAAoBE,UAAU,mBAAmB3nK,OAAO2nK,SAASD,iBAAiBC,SAASD,gBAAgBrsI,KAAKssI,UAAUzsD,GAAGG,EAAE,IAAI+rC,WAAW,IAAIjjJ,EAAEu4J,QAAQ,WAAW,OAAOxhD,EAAEG,GAAGA,CAAC,IAAID,EAAE,IAAIz0G,MAAM,IAAIxC,EAAEu4J,QAAQ,WAAW,IAAI,IAAIv4J,EAAE82G,EAAE,EAAEA,EAAE,GAAGA,IAAI,IAAI,EAAEA,KAAK92G,EAAE,WAAW2W,KAAK4sH,UAAUtsB,EAAEH,GAAG92G,MAAM,EAAE82G,IAAI,GAAG,IAAI,OAAOG,CAAC,EAAE,EAAE,SAASj3G,EAAE82G,GAAG,IAAI,IAAIG,EAAE,GAAGC,EAAE,EAAEA,EAAE,MAAMA,EAAED,EAAEC,IAAIA,EAAE,KAAKlmF,SAAS,IAAImpH,OAAO,GAAGn6I,EAAEu4J,QAAQ,SAASv4J,EAAE82G,GAAG,IAAII,EAAEJ,GAAG,EAAE,MAAM,EAAEA,EAAEG,GAAGj3G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAM,IAAIJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAM,IAAIJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAM,IAAIJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAM,IAAIJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,EAAEk3G,MAAMJ,EAAE92G,GAAGk3G,KAAK52G,KAAK,GAAG,CAAC,EAAE,SAASN,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEgmD,oBAAe,EAAO,IAAIxmD,EAAEY,EAAE,GAAGT,EAAES,EAAE,GAAGh4C,EAAEg4C,EAAE,GAAGV,EAAEU,EAAE,GAAGztG,EAAEytG,EAAE,IAAI,SAASl3G,GAAG,IAAIsJ,EAAEwtG,EAAE,SAAS92B,IAAIk3B,IAAI,IAAIV,EAAEwiD,cAAciB,aAAazjD,EAAEwiD,cAAciB,YAAY3sF,OAAO,CAAC,QAAQkpC,EAAEwiD,cAAciB,YAAY,KAAKzjD,EAAEwiD,cAAckB,YAAY,IAAI,CAAC,CAAy2B,SAAShjD,IAAIJ,IAAI3I,cAAc2I,GAAGA,EAAE,IAAG,EAAGrtG,EAAE80J,eAAe,eAAc,EAAG90J,EAAE80J,eAAe,sBAAsB,CAAC,SAAS31J,IAAIsuG,IAAIJ,EAAEN,EAAEwiD,cAAch2D,cAAcwL,aAAY,WAAW,IAAIgI,EAAEwiD,cAAciB,aAAazjD,EAAEwiD,cAAciB,YAAY9qF,OAAO0nC,EAAE,uBAAuB,CAAC,IAAI72G,EAAEw2G,EAAEwiD,cAAckB,YAAY,IAAI1jD,EAAEwiD,cAAckB,YAAY,KAAI,EAAG1jD,EAAEmiD,yBAAyB,OAAO,CAAC,QAAQniD,EAAEwiD,cAAckB,YAAYl6J,CAAC,CAAC,CAAC,GAAE,MAAK,EAAGyJ,EAAE+0J,iBAAiB,cAAa,WAAW,MAAM,CAACt/F,EAAEk9F,cAAcU,eAAermD,EAAE8iD,WAAW4B,eAAe,KAAG,EAAG1xJ,EAAE+0J,iBAAiB,uBAAsB,WAAW,OAAM,CAAE,GAAE,CAAC,SAASznD,EAAE/2G,GAAG,IAAIsJ,GAAGA,EAAEm6J,iBAAiBn6J,EAAEm6J,gBAAgBzjK,EAAE,CAAC,QAAQsJ,EAAE,KAAK02E,GAAG,CAAC,CAAC,SAAS62B,EAAE72G,GAAG,IAAIsJ,GAAGA,EAAEo6J,iBAAiBp6J,EAAEo6J,gBAAgB1jK,EAAE,CAAC,QAAQsJ,EAAE,KAAK02E,GAAG,CAAC,CAAC,SAASm3B,EAAEn3G,EAAE82G,EAAEI,GAAG,IAAID,EAAEj3G,KAAKi3G,EAAEh8G,SAAS6F,cAAc,MAAMk0B,KAAK2uI,mBAAmB3jK,GAAGi3G,EAAEvsC,MAAMusC,EAAEvsC,OAAO7uE,OAAOq2H,SAASxnD,MAAM,uBAAuBusC,EAAEvsC,OAAO,EAAEusC,EAAE+Y,OAAOlsH,QAAQ,+BAA+BgzG,GAAG,WAAWA,IAAII,IAAID,EAAEjiF,KAAKuhF,EAAEU,EAAEjiF,KAAK,SAASkiF,IAAIV,EAAEwiD,cAAch2D,cAAckvB,SAASzO,OAAOlN,EAAEU,EAAEjiF,KAAK,cAAc,MAAM8hF,GAAG,WAAWA,IAAII,IAAID,EAAEjiF,KAAKuhF,EAAEU,EAAEjiF,KAAK,SAASkiF,IAAIV,EAAEwiD,cAAch2D,cAAckvB,SAASzO,OAAOlN,EAAEU,EAAEjiF,KAAK,cAAc,OAAO,CAAC,SAASuhF,EAAEv2G,EAAE82G,EAAEI,GAAG,IAAID,EAAEj3G,EAAE8D,QAAQ,KAAKizG,GAAGA,GAAG,IAAIE,EAAE,IAAIj3G,EAAEm6I,OAAOljC,IAAI,IAAIH,GAAG,KAAKI,EAAE,IAAIA,EAAE,IAAI,OAAOl3G,GAAG,IAAIi3G,EAAEj3G,EAAEA,EAAEm6I,OAAO,EAAEljC,IAAIF,CAAC,CAAC/2G,EAAE+iK,WAAW,YAAW,EAAGt5J,EAAE+0J,iBAAiB,sCAAsCznD,GAAE,IAAI,EAAGttG,EAAE+0J,iBAAiB,sCAAsC3nD,GAAE,EAAG,EAAE72G,EAAE4jK,+BAA+B,SAAS5jK,GAAGsJ,EAAEtJ,CAAC,EAAEA,EAAE6jK,aAAa,SAAS7jK,GAAG,IAAIk3G,OAAE,IAASl3G,EAAEA,EAAEsJ,GAAE,EAAGgtG,EAAEykD,mBAAmB77F,EAAEk9F,cAAcx6H,QAAQs9B,EAAEk9F,cAAcY,UAAU99F,EAAEk9F,cAAc5sG,SAAS0P,EAAEk9F,cAAch8F,OAAOlB,EAAEk9F,cAAcW,KAAK79F,EAAEk9F,cAAca,MAAM/9F,EAAEk9F,cAAcc,cAAczmD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAeiB,SAAS5lD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAeC,SAAS5kD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAeE,KAAK7kD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAeoB,OAAO/lD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAesB,mBAAmBjmD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAeuB,mBAAmBlmD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAewB,aAAanmD,EAAE8iD,WAAW4B,iBAAiBj8F,EAAEk8F,eAAeyB,gBAAgB78J,EAAE/E,SAAS6F,cAAc,MAAMk0B,KAAKkiF,EAAEn+C,KAAI,EAAGy9C,EAAEqiD,qBAAqB,8BAA8B,CAAC74J,EAAEg1B,KAAKkiF,EAAEhgG,MAAMggG,EAAE95F,OAAO85F,EAAE4sD,aAAY,SAAS9jK,EAAE82G,GAAG92G,EAAEk3G,EAAEusD,gBAAgB3sD,GAAGI,EAAEwsD,gBAAgB5sD,EAAE,KAA7xG,SAAW92G,GAAGsJ,EAAEtJ,EAAEggF,IAAI,IAAI82B,EAAExtG,EAAE4N,OAAO,IAAIggG,EAAE5tG,EAAE8T,QAAQ,IAA2H65F,GAAvHH,EAAEngG,KAAK01C,IAAIyqD,EAAEN,EAAEwiD,cAAch2D,cAAc+gE,WAAW,KAAK7sD,EAAEvgG,KAAK01C,IAAI6qD,EAAEV,EAAEwiD,cAAch2D,cAAcghE,YAAY,KAAO/oK,SAAS6F,cAAc,MAAKm2G,EAAEjiF,KAAK1rB,EAAEyvD,IAAIlyD,QAAQ,wBAAwB,OAAO,IAAIkwG,OAAE,IAASP,EAAEwiD,cAAch2D,cAAcihE,WAAWztD,EAAEwiD,cAAch2D,cAAcihE,WAAWztD,EAAEwiD,cAAch2D,cAAckhE,QAAQlkK,OAAE,IAASw2G,EAAEwiD,cAAch2D,cAAcmhE,UAAU3tD,EAAEwiD,cAAch2D,cAAcmhE,UAAU3tD,EAAEwiD,cAAch2D,cAAcohE,QAAQrtD,GAAGP,EAAEwiD,cAAch2D,cAAc+gE,WAAW,EAAEjtD,EAAE,EAAE92G,GAAGw2G,EAAEwiD,cAAch2D,cAAcghE,YAAY,EAAE9sD,EAAE,EAAEV,EAAEwiD,cAAciB,YAAYzjD,EAAEwiD,cAAch2D,cAAcn0B,KAAKooC,EAAEjiF,KAAK,SAAS,wEAAwEh1B,EAAE,UAAU+2G,EAAE,WAAWD,EAAE,YAAYI,GAAGV,EAAEwiD,cAAciB,YAAYrxJ,IAAIiuG,EAAE,qBAAqB,CAA07EI,CAAEC,EAAE,EAAEl3G,EAAEqkK,aAAa,SAASntD,IAAG,EAAGZ,EAAEykD,sBAAqB,EAAGvkD,EAAEqiD,qBAAqB,8BAA8B,CAAC3hD,EAAEotD,UAAUptD,EAAEqtD,OAAOrtD,EAAEstD,SAAQ,SAASxkK,EAAE82G,GAAG92G,EAAEk3G,EAAEusD,gBAAgB3sD,GAAGI,EAAEwsD,gBAAgB5sD,EAAE,GAAE,EAAE92G,EAAEykK,QAAQ,SAASvtD,IAAG,EAAGZ,EAAEykD,sBAAqB,EAAGvkD,EAAEqiD,qBAAqB,0BAAyB,SAAS74J,EAAE82G,GAAG92G,EAAEk3G,EAAEusD,gBAAgB3sD,GAAGI,EAAEwsD,gBAAgB5sD,EAAE,GAAE,EAAE92G,EAAE0kK,cAAc,SAAS1kK,EAAE82G,GAAGK,EAAEL,EAAE,SAAS92G,IAAG,EAAGs2G,EAAEykD,mBAAmB77F,EAAEk9F,cAAcU,iBAAgB,EAAGtmD,EAAEqiD,qBAAqB,sCAAsC,CAAC74J,KAAI,EAAGw2G,EAAEoiD,qBAAqBpiD,EAAEwiD,cAAcK,cAAa,WAAW,OAAOthI,YAAW,WAAW,OAAOy+E,EAAEwiD,cAAch2D,cAAc11B,OAAO,GAAE,IAAI,GAAE,EAAEttE,EAAE2kK,cAAc,SAAS3kK,EAAE82G,GAAGK,EAAEL,EAAE,SAAS92G,IAAG,EAAGs2G,EAAEykD,mBAAmB77F,EAAEk9F,cAAcU,iBAAgB,EAAGtmD,EAAEqiD,qBAAqB,sCAAsC,CAAC74J,KAAI,EAAGw2G,EAAEoiD,qBAAqBpiD,EAAEwiD,cAAcK,cAAa,WAAW,OAAOthI,YAAW,WAAW,OAAOy+E,EAAEwiD,cAAch2D,cAAc11B,OAAO,GAAE,IAAI,GAAE,CAAC,CAAr8I,CAAu8IwpC,EAAEgmD,iBAAiBhmD,EAAEgmD,eAAe,CAAC,GAAG,EAAE,SAAS98J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEtnD,cAAS,EAAO,IAAI5mD,EAAEsuG,EAAE,GAAGL,EAAEK,EAAE,GAAGC,EAAED,EAAE,GAAGX,EAAEW,EAAE,GAAGZ,EAAEY,EAAE,IAAI,SAASl3G,GAAG,IAAI82G,EAAEI,EAAE,SAASD,EAAEj3G,GAAGA,EAAE,IAAI+2G,EAAE/2G,GAAG82G,EAAEA,EAAE92G,GAAGA,EAAE0kK,eAAe,CAAC1kK,EAAE+iK,WAAW,YAAW,EAAGzsD,EAAEkoD,iBAAiB,gBAAgBvnD,GAAE,IAAI,EAAGX,EAAEkoD,iBAAiB,kBAAkBl1J,GAAE,EAAG,EAAEtJ,EAAE4kK,iBAAiB,SAAS5kK,IAAG,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAc5sG,SAASqnD,EAAEulD,cAAch8F,SAAQ,EAAGm2C,EAAEsiD,qBAAqB,4BAA4B,CAAC74J,GAAG,EAAEA,EAAEmsG,YAAY,SAASnsG,IAAG,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,QAAQi1E,EAAEulD,cAAc5sG,SAASqnD,EAAEulD,cAAch8F,OAAOy2C,EAAEulD,cAAcY,YAAW,EAAGzmD,EAAEsiD,qBAAqB,uBAAuB74J,EAAE,EAAEA,EAAE6kK,YAAY,SAAS7kK,EAAE82G,IAAG,EAAGluG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,QAAQi1E,EAAEulD,cAAc5sG,SAASqnD,EAAEulD,cAAcY,YAAW,EAAGzmD,EAAEsiD,qBAAqB,uBAAuB,CAAC74J,GAAG82G,IAAG,EAAGK,EAAE8oD,+BAA+B,EAAEjgK,EAAE8kK,sBAAsB,SAAS9kK,IAAG,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAc5sG,WAAWsnD,EAAE92G,KAAI,EAAGu2G,EAAEsiD,qBAAqB,kBAAkB,CAAC,QAAQ,EAAE74J,EAAE+kK,wBAAwB,SAAS/kK,IAAG,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAch8F,OAAOy2C,EAAEulD,cAAc5sG,WAAW0nD,EAAEl3G,KAAI,EAAGu2G,EAAEsiD,qBAAqB,kBAAkB,CAAC,UAAU,EAAE,IAAI9hD,EAAE,WAAW,SAAS/2G,EAAEA,GAAGzD,KAAKyoK,UAAS,EAAGzoK,KAAKhC,OAAOyF,GAAG,CAAC,CAAC,CAAC,OAAOA,EAAE/B,UAAUymK,cAAc,WAAWnoK,KAAK0oK,qBAAoB,EAAG1uD,EAAEsiD,qBAAqB,yBAAyBt8J,KAAKyoK,UAAS,CAAE,EAAEhlK,EAAE/B,UAAU0mK,cAAc,SAAS3kK,GAAGzD,KAAK0oK,qBAAoB,EAAG1uD,EAAEsiD,qBAAqB,wBAAwB,CAAC74J,IAAIzD,KAAKyoK,UAAS,CAAE,EAAEhlK,EAAE/B,UAAUgnK,kBAAkB,WAAW,GAAG1oK,KAAKyoK,SAAS,MAAM,IAAIrvI,MAAM,yDAAyD,EAAE31B,CAAC,CAApd,GAAwd,SAASsJ,IAAI,IAAItJ,EAAE,IAAIggF,EAAEk3B,EAAEA,EAAEl3G,GAAGA,EAAE0kK,eAAe,CAAC,IAAI1kF,EAAE,WAAW,SAAShgF,IAAIzD,KAAKyoK,UAAS,CAAE,CAAC,OAAOhlK,EAAE/B,UAAUymK,cAAc,WAAWnoK,KAAK0oK,qBAAoB,EAAG1uD,EAAEsiD,qBAAqB,2BAA2Bt8J,KAAKyoK,UAAS,CAAE,EAAEhlK,EAAE/B,UAAU0mK,cAAc,SAAS3kK,GAAGzD,KAAK0oK,qBAAoB,EAAG1uD,EAAEsiD,qBAAqB,0BAA0B,CAAC74J,IAAIzD,KAAKyoK,UAAS,CAAE,EAAEhlK,EAAE/B,UAAUgnK,kBAAkB,WAAW,GAAG1oK,KAAKyoK,SAAS,MAAM,IAAIrvI,MAAM,2DAA2D,EAAE31B,CAAC,CAAvc,EAA0c,CAAxiE,CAA0iE82G,EAAEtnD,WAAWsnD,EAAEtnD,SAAS,CAAC,GAAG,EAAE,SAASxvD,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEouD,UAAK,EAAO,IAAIjuD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAgBJ,EAAEouD,OAAOpuD,EAAEouD,KAAK,CAAC,IAAIC,sBAAsB,SAASruD,IAAG,EAAGG,EAAE8jD,qBAAqBjkD,GAAE,EAAGxtG,EAAEk1J,iBAAiB,eAAc,WAAW,IAAIx+J,EAAE82G,KAAI,EAAGC,EAAE8hD,qBAAqB,cAAc,CAAC74J,GAAG,KAAG,EAAGsJ,EAAEi1J,eAAe,cAAc,CAAI,EAAE,SAASv+J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEsuD,kCAAkCtuD,EAAEuuD,iBAAiBvuD,EAAEwuD,eAAexuD,EAAEyuD,sBAAsBzuD,EAAE0uD,gBAAgB1uD,EAAE2uD,kBAAkB3uD,EAAE4uD,gBAAgB5uD,EAAE6uD,iBAAiB7uD,EAAE8uD,gBAAgB9uD,EAAE+uD,eAAe/uD,EAAEgvD,gBAAgBhvD,EAAEivD,mBAAmBjvD,EAAEkvD,2BAAsB,EAAO,IAAIjvD,EAAEG,EAAE,GAAGD,EAAEC,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,GAAGL,EAAEK,EAAE,GAAGC,EAAED,EAAE,GAAGX,EAAEW,EAAE,GAAGJ,EAAEkvD,sBAAsB,WAAW,EAAElvD,EAAEivD,mBAAmB,SAAS/lK,EAAE82G,GAAG,IAAG,EAAGC,EAAEgkD,sBAAsBlkD,EAAE0iD,WAAW4B,iBAAiBlkD,EAAEmkD,eAAeC,SAASxkD,EAAE0iD,WAAW4B,iBAAiBlkD,EAAEmkD,eAAeuB,mBAAmB9lD,EAAE0iD,WAAW4B,iBAAiBlkD,EAAEmkD,eAAewB,aAAa/lD,EAAE0iD,WAAW4B,iBAAiBlkD,EAAEmkD,eAAeyB,kBAAiB,EAAG9lD,EAAE+jD,0BAA0BvkD,EAAEqpD,iDAAiD,CAAC,IAAI1oD,EAAE,CAACukD,UAAUtkD,EAAEukD,UAAUC,cAAc,MAAM,IAAIhmI,MAAMx3B,KAAKC,UAAU84G,GAAG,EAAC,EAAGl3B,EAAE64E,qBAAqB,qBAAqB,CAAC/hD,GAAG92G,EAAE,EAAE82G,EAAEgvD,gBAAgB,YAAW,EAAG/uD,EAAEgkD,mBAAmB9jD,EAAEmlD,cAAcx6H,UAAS,EAAGo+C,EAAE64E,qBAAqB,kBAAkB,GAAG,EAAE/hD,EAAE+uD,eAAe,YAAW,EAAG9uD,EAAEgkD,mBAAmB9jD,EAAEmlD,cAAcx6H,UAAS,EAAGo+C,EAAE64E,qBAAqB,iBAAiB,GAAG,EAAE/hD,EAAE8uD,gBAAgB,SAAS5lK,IAAG,EAAG+2G,EAAEgkD,mBAAmB9jD,EAAEmlD,cAAcx6H,QAAQq1E,EAAEmlD,cAAcW,MAAM/8J,EAAE,CAACA,EAAEimK,SAASjmK,EAAE8lB,MAAM9lB,EAAEmlB,YAAYnlB,EAAEsd,KAAKtd,EAAEkmK,UAAUlmK,EAAEmmK,YAAYnmK,EAAEomK,cAAcpmK,EAAEqmK,WAAWrmK,EAAEs5D,QAAQt5D,EAAEsmK,SAAStmK,EAAEumK,YAAYvmK,EAAEwmK,aAAaxmK,EAAEymK,mBAAmBzmK,EAAE0mK,iBAAgB,EAAG1mF,EAAE64E,qBAAqB,kBAAkB74J,EAAE,EAAE82G,EAAE6uD,iBAAiB,SAAS3lK,IAAG,EAAG+2G,EAAEgkD,mBAAmB9jD,EAAEmlD,cAAcx6H,SAAS5hC,EAAE,CAACA,EAAEyhF,QAAQzhF,EAAE2mK,mBAAkB,EAAG3mF,EAAE64E,qBAAqB,mBAAmB74J,EAAE,EAAE82G,EAAE4uD,gBAAgB,SAAS1lK,EAAE82G,IAAG,EAAGC,EAAEgkD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,kBAAkB,CAAC74J,GAAG82G,IAAG,EAAGxtG,EAAE22J,+BAA+B,EAAEnpD,EAAE2uD,kBAAkB,SAASzlK,EAAE82G,EAAEI,IAAG,EAAGH,EAAEgkD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB74J,EAAE82G,EAAEI,EAAE,EAAEJ,EAAE0uD,gBAAgB,SAASxlK,EAAE82G,GAAG,IAAG,EAAGC,EAAEgkD,sBAAsB/6E,EAAEg5E,cAAciB,YAAY,MAAM,IAAItkI,MAAM,oEAAmE,EAAGqqD,EAAE24E,yBAAyB34J,EAAE82G,EAAE,EAAEA,EAAEyuD,sBAAsB,SAASvlK,EAAEk3G,GAAG,IAAID,EAAE16G,MAAK,EAAGw6G,EAAEgkD,sBAAqB,EAAGnyJ,EAAE41J,iBAAiBx+J,GAAE,WAAW,IAAI,IAAIA,EAAE,GAAG82G,EAAE,EAAEA,EAAEl1G,UAAU7B,OAAO+2G,IAAI92G,EAAE82G,GAAGl1G,UAAUk1G,GAAG,OAAOI,EAAEl0G,MAAMi0G,EAAEj3G,EAAE,GAAE,EAAE82G,EAAEwuD,eAAe,SAAStlK,IAAG,EAAG+2G,EAAEgkD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,iBAAiB74J,EAAE,EAAE82G,EAAEuuD,iBAAiB,SAASrlK,EAAE82G,IAAG,EAAGC,EAAEgkD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,mBAAmB,CAAC/hD,GAAG92G,EAAE,EAAE82G,EAAEsuD,kCAAkC,SAASplK,EAAE82G,IAAG,EAAGC,EAAEgkD,sBAAqB,EAAGnyJ,EAAE41J,iBAAiB,qBAAqB1nD,GAAE,EAAG,CAAC92G,GAAG,CAAC,EAAE,SAASA,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEirD,WAAM,EAAO,IAAIlrD,EAAEK,EAAE,GAAGC,EAAED,EAAE,GAAGX,EAAEW,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAEA,EAAE4mK,OAAO,GAAG,SAAS5mK,EAAEA,EAAE6mK,aAAa,GAAG,cAAc,CAArE,CAAuE7mK,EAAE8mK,cAAc9mK,EAAE8mK,YAAY,CAAC,IAAI,IAAI5vD,EAAED,EAAEF,EAAsE,SAASztG,EAAEtJ,GAAG+2G,GAAGA,EAAE/2G,MAAK,EAAG62G,EAAEkkD,sBAAqB,EAAG5jD,EAAE0hD,qBAAqB,sBAAsB,CAAC74J,IAAI,CAAC,SAASggF,EAAEhgF,GAAGk3G,GAAGA,EAAEl3G,MAAK,EAAG62G,EAAEkkD,sBAAqB,EAAG5jD,EAAE0hD,qBAAqB,4BAA4B,CAAC74J,IAAI,CAAC,SAAS4I,EAAE5I,GAAGi3G,GAAGA,EAAEj3G,MAAK,EAAG62G,EAAEkkD,sBAAqB,EAAG5jD,EAAE0hD,qBAAqB,4BAA4B,CAAC74J,IAAI,CAACA,EAAE+mK,SAAtX,WAAWxqK,KAAKuqH,SAAQ,EAAGvqH,KAAKgoD,UAAS,CAAE,EAAsV,SAASvkD,GAAGA,EAAEgnK,SAAS,WAAWhnK,EAAEinK,QAAQ,SAAS,CAArD,CAAuDjnK,EAAEknK,eAAelnK,EAAEknK,aAAa,CAAC,IAAIlnK,EAAE+iK,WAAW,YAAW,EAAGxsD,EAAEioD,iBAAiB,sBAAsBx+E,GAAE,IAAI,EAAGu2B,EAAEioD,iBAAiB,sBAAsB51J,GAAE,IAAI,EAAG2tG,EAAEioD,iBAAiB,gBAAgBl1J,GAAE,EAAG,EAAEtJ,EAAEmnK,WAAW,SAASnnK,EAAE82G,IAAG,EAAGD,EAAEkkD,qBAAqBhkD,EAAED,GAAE,EAAGK,EAAE0hD,qBAAqB,aAAa,CAAC74J,GAAG,EAAEA,EAAEonK,cAAc,SAASpnK,EAAE82G,IAAG,EAAGD,EAAEkkD,qBAAqB7jD,EAAEJ,GAAE,EAAGK,EAAE0hD,qBAAqB,gBAAgB,CAAC74J,GAAG,EAAEA,EAAEqnK,eAAe,SAASrnK,EAAE82G,IAAG,EAAGD,EAAEkkD,qBAAqB9jD,EAAEH,GAAE,EAAGK,EAAE0hD,qBAAqB,iBAAiB,CAAC74J,GAAG,CAAC,CAA1lC,CAA4lC82G,EAAEirD,QAAQjrD,EAAEirD,MAAM,CAAC,GAAG,EAAE,SAAS/hK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEkrD,gBAAgBlrD,EAAEmrD,oBAAe,EAAO,IAAIhrD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,GAAGA,EAAE,WAAW,SAASl3G,IAAI,CAAC,OAAOA,EAAE/B,UAAU07J,YAAY,SAAS35J,EAAE82G,IAAG,EAAGG,EAAE8jD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,kBAAkB,CAAC74J,GAAG82G,IAAG,EAAGxtG,EAAE22J,+BAA+B,EAAEjgK,EAAE/B,UAAUka,iBAAiB,SAASnY,EAAE82G,GAAG,YAAY92G,IAAG,EAAG4I,EAAE41J,iBAAiB,mBAAmB1nD,EAAE,EAAE92G,CAAC,CAAjS,GAAqS82G,EAAEmrD,eAAe/qD,EAAEA,EAAE,WAAW,SAASl3G,IAAI,CAAC,OAAO0C,OAAO8X,eAAexa,EAAE,WAAW,CAACya,IAAI,WAAW,OAAOle,KAAKk0B,YAAYl0B,KAAKk0B,UAAU,IAAIl0B,KAAK,EAAEme,YAAW,EAAGC,cAAa,IAAK3a,EAAE/B,UAAU07J,YAAY,SAAS35J,EAAE82G,IAAG,EAAGG,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcW,OAAM,EAAG/8E,EAAE64E,qBAAqB,mBAAmB,CAAC74J,GAAG82G,IAAG,EAAGxtG,EAAE22J,+BAA+B,EAAEjgK,EAAE/B,UAAUka,iBAAiB,SAASnY,EAAE82G,GAAG,YAAY92G,IAAG,EAAG4I,EAAE41J,iBAAiB,kBAAkB1nD,EAAE,EAAE92G,CAAC,CAA1b,GAA8b82G,EAAEkrD,gBAAgB9qD,CAAC,EAAE,SAASl3G,EAAE82G,EAAEI,GAAG,aAAa,IAA2CD,EAAvCF,EAAEx6G,MAAMA,KAAK+qK,YAA0BrwD,EAAE,SAASj3G,EAAE82G,GAAG,OAAOG,EAAEv0G,OAAO6kK,gBAAgB,CAACnmB,UAAU,cAAc5+I,OAAO,SAASxC,EAAE82G,GAAG92G,EAAEohJ,UAAUtqC,CAAC,GAAG,SAAS92G,EAAE82G,GAAG,IAAI,IAAII,KAAKJ,EAAEp0G,OAAOzE,UAAUkE,eAAe8O,KAAK6lG,EAAEI,KAAKl3G,EAAEk3G,GAAGJ,EAAEI,GAAG,GAAGl3G,EAAE82G,EAAE,EAAS,SAAS92G,EAAE82G,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAI0mB,UAAU,uBAAuB12H,OAAOgwG,GAAG,iCAAiC,SAASI,IAAI36G,KAAK+0G,YAAYtxG,CAAC,CAACi3G,EAAEj3G,EAAE82G,GAAG92G,EAAE/B,UAAU,OAAO64G,EAAEp0G,OAAO4mH,OAAOxS,IAAII,EAAEj5G,UAAU64G,EAAE74G,UAAU,IAAIi5G,EAAE,GAAKx0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEgrD,WAAM,EAAO,IAAIx4J,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGX,EAAEW,EAAE,GAAGZ,EAAEY,EAAE,GAAGtuG,EAAEsuG,EAAE,GAAGT,EAAES,EAAE,IAAIh4C,EAAEg4C,EAAE,GAAGL,EAAEK,EAAE,GAAGV,EAAEU,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAEwnK,OAAO,SAASxnK,EAAEynK,GAAG,IAAI,CAAvC,CAAyCznK,EAAE0nK,aAAa1nK,EAAE0nK,WAAW,CAAC,IAAI,IAAI5wD,EAAoB,WAAW,EAAK92G,EAAE2nK,KAAK7wD,EAAE92G,EAAE4nK,aAAa,SAAS5nK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,2CAA0C,EAAG4gF,EAAEwkD,mBAAmBzkD,EAAE8lD,cAAcx6H,QAAQ00E,EAAE8lD,cAAcW,MAAMzzJ,EAAEiwJ,WAAWC,mBAAkB,EAAGjjD,EAAEukD,0BAA0BtkD,EAAEipD,mCAAkC,EAAGvgG,EAAE25F,qBAAqB,eAAe74J,GAAGA,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUC,mBAAc,GAAQ37J,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUE,gCAA2B,EAAO,EAAE,IAAi4D1kD,EAAED,EAA/3DE,EAAE,SAASD,GAAG,SAASl3G,EAAEA,QAAG,IAASA,IAAIA,EAAE,MAAM,IAAI82G,EAAEI,EAAEjmG,KAAK1U,OAAOA,KAAK,OAAOyD,IAAI82G,EAAEl1E,QAAQ5hC,EAAE4hC,QAAQk1E,EAAE5iB,OAAOl0F,EAAEk0F,OAAO4iB,EAAE+wD,SAAS7nK,EAAE6nK,SAAS/wD,EAAE3yG,KAAKnE,EAAEmE,KAAK2yG,EAAEgxD,QAAQ9nK,EAAE8nK,QAAQhxD,EAAEn/F,KAAK3X,EAAE2X,MAAMm/F,CAAC,CAAC,OAAOC,EAAE/2G,EAAEk3G,GAAGl3G,EAAE/B,UAAU8pK,SAAS,SAAS/nK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,wCAAuC,EAAG4gF,EAAEwkD,mBAAmBzkD,EAAE8lD,cAAcx6H,QAAQ00E,EAAE8lD,cAAcW,OAAM,EAAGxmD,EAAEukD,0BAA0BtkD,EAAEgpD,yBAAwB,EAAG/oD,EAAEuxD,wBAAwBzrK,KAAKsrK,SAAStrK,KAAK23F,OAAO33F,KAAKqlC,UAAS,EAAG20E,EAAEukD,0BAA0BtkD,EAAE+oD,gCAAgChjK,KAAK0rK,oBAAoBjoK,GAAGzD,KAAK2rK,mBAAmBloK,GAAGA,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUoF,mBAAmB,MAAM9gK,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUC,cAAc,KAAK,EAAE37J,EAAE/B,UAAUgqK,oBAAoB,SAAS/wD,GAAG,IAAID,EAAE,CAACkxD,cAAc5rK,KAAKsrK,SAASO,mBAAmB,IAAIpoK,EAAE,CAACzD,KAAKqlC,UAAS,EAAGs9B,EAAE25F,qBAAqB,WAAW74J,GAAE,SAASA,GAAG,IAAI82G,EAAEI,IAAIl3G,GAAGA,EAAEikE,MAAMizC,EAAEl3G,EAAEikE,MAAM,MAAMjkE,GAAGA,EAAEqoK,WAAWroK,EAAEqoK,WAAWC,eAAe,GAAGxxD,GAAE,EAAGL,EAAE8xD,YAAYtxD,EAAEmxD,mBAAmBnxD,EAAEkxD,eAAejxD,EAAEl3G,EAAEikE,MAAM6yC,KAAK92G,GAAE,EAAGy2G,EAAE+xD,kBAAkBxoK,EAAEqoK,WAAWpxD,EAAEkxD,eAAelxD,EAAEmxD,mBAAmB3pK,KAAKuB,IAAIk3G,EAAE,CAACukD,UAAUz7E,EAAE07E,UAAU+E,eAAeh/E,QAAQ,yBAAyB,MAAM,GAAE,EAAEzhF,EAAE/B,UAAUiqK,mBAAmB,SAAShxD,GAAG,IAAID,GAAE,EAAGruG,EAAEo3J,gBAAgBjpD,EAAE,CAACoxD,cAAc5rK,KAAKsrK,SAASO,mBAAmB,IAAIpoK,EAAE,CAACi3G,EAAE16G,KAAKqlC,SAASrlC,KAAKqlC,SAASs1E,IAAG,EAAGh4C,EAAE25F,qBAAqB,WAAW74J,IAAG,EAAG62G,EAAE2nD,iBAAiB,WAAWvnD,GAAE,SAASj3G,GAAG,IAAI82G,EAAEI,KAAKJ,EAAE34G,KAAK+yH,MAAMlxH,IAAIikE,OAAOizC,EAAEJ,EAAE7yC,MAAM,OAAM,EAAG4yC,EAAE0nD,eAAe,WAAWtnD,IAAIH,EAAEuxD,WAAWvxD,EAAEuxD,WAAWC,eAAe,GAAGtoK,GAAE,EAAGy2G,EAAE8xD,YAAYxxD,EAAEqxD,mBAAmBrxD,EAAEoxD,eAAejxD,EAAEJ,EAAE7yC,MAAMjkE,IAAG,EAAG62G,EAAE0nD,eAAe,WAAWtnD,KAAKH,GAAE,EAAGL,EAAE+xD,kBAAkB1xD,EAAEuxD,WAAWtxD,EAAEoxD,eAAepxD,EAAEqxD,mBAAmB3pK,KAAKq4G,KAAKI,EAAE,CAACukD,UAAUz7E,EAAE07E,UAAU+E,eAAeh/E,QAAQ,yBAAyB,OAAM,EAAGo1B,EAAE0nD,eAAe,WAAWtnD,IAAI,GAAE,EAAEj3G,CAAC,CAAx2D,CAA02D82G,GAAG92G,EAAEyoK,MAAMtxD,EAAUL,EAAE,SAAS92G,GAAG,SAAS82G,IAAI,OAAO,OAAO92G,GAAGA,EAAEgD,MAAMzG,KAAKqF,YAAYrF,IAAI,CAAC,OAAOw6G,EAAED,EAAE92G,GAAG82G,EAAE74G,UAAUyqK,aAAa,WAAW,OAAOzxD,EAAE0xD,KAAK,EAAE7xD,EAAE74G,UAAU2qK,iBAAiB,SAAS5oK,GAAG,GAAGzD,KAAKssK,mBAAmB,OAAO7oK,GAAG,KAAKk3G,EAAE4xD,eAAe,GAAGvsK,KAAKssK,mBAAmBE,mBAAmB,CAACxsK,KAAKssK,mBAAmBE,qBAAqB,KAAK,EAAE,EAAEjyD,CAAC,CAApV,CAAsV,WAAW,SAAS92G,EAAEA,GAAGzD,KAAKssK,mBAAmB7oK,CAAC,CAAC,OAAOA,EAAE/B,UAAU+qK,kBAAkB,SAAShpK,EAAE82G,IAAG,EAAGP,EAAEwkD,mBAAmBzkD,EAAE8lD,cAAcx6H,QAAQ00E,EAAE8lD,cAAcW,MAAM,IAAI7lD,GAAE,EAAGX,EAAEqkD,wBAAwBpkD,EAAEspD,yCAAyC5oD,EAAEJ,GAAGA,EAAEI,IAAIl3G,EAAE,CAACipK,UAAU1sK,KAAKmsK,eAAeQ,qBAAqBlpK,IAAG,EAAGk/D,EAAE25F,qBAAqB,mBAAmB,CAAC74J,IAAG,SAASA,GAAG82G,GAAGA,EAAE92G,EAAE,IAAG,EAAEA,EAAE/B,UAAUqsJ,KAAK,SAAStqJ,GAAGzD,KAAKysK,kBAAkB9xD,EAAEiyD,cAAcnpK,EAAE,EAAEA,CAAC,CAAhd,IAAqdA,EAAEopK,gBAAgBtyD,EAAE,SAAS92G,GAAGA,EAAEA,EAAE8oK,eAAe,GAAG,iBAAiB9oK,EAAEA,EAAEmpK,cAAc,GAAG,eAAe,CAAvF,CAAyFjyD,EAAEA,GAAG,CAAC,GAAG,SAASl3G,GAAGA,EAAEA,EAAEqpK,MAAM,GAAG,QAAQrpK,EAAEA,EAAEspK,SAAS,GAAG,WAAWtpK,EAAEA,EAAEupK,WAAW,GAAG,aAAavpK,EAAEA,EAAEwpK,aAAa,GAAG,cAAc,CAA7H,CAA+HxpK,EAAEypK,kBAAkBzpK,EAAEypK,gBAAgB,CAAC,IAAI,SAASzpK,GAAGA,EAAEA,EAAE0pK,OAAO,GAAG,SAAS1pK,EAAEA,EAAE2pK,QAAQ,GAAG,SAAS,CAA3D,CAA6D3pK,EAAE4pK,SAAS5pK,EAAE4pK,OAAO,CAAC,IAAI,SAAS5pK,GAAGA,EAAEA,EAAEmmB,MAAM,GAAG,QAAQnmB,EAAEA,EAAE2oK,MAAM,GAAG,QAAQ3oK,EAAEA,EAAE6pK,cAAc,GAAG,gBAAgB7pK,EAAEA,EAAE8pK,MAAM,GAAG,OAAO,CAA/G,CAAiH7yD,EAAEj3G,EAAE+pK,YAAY/pK,EAAE+pK,UAAU,CAAC,IAAI,SAAS/pK,GAAGA,EAAEA,EAAEynK,GAAG,GAAG,KAAKznK,EAAEA,EAAEgqK,IAAI,GAAG,KAAK,CAA3C,CAA6ChqK,EAAEiqK,eAAejqK,EAAEiqK,aAAa,CAAC,IAAI,SAASjqK,GAAGA,EAAEA,EAAEkqK,MAAM,GAAG,QAAQlqK,EAAEA,EAAEmqK,IAAI,GAAG,KAAK,CAAjD,CAAmDnqK,EAAEoqK,qBAAqBpqK,EAAEoqK,mBAAmB,CAAC,IAAIpqK,EAAEqqK,YAAY,SAASzhK,EAAEiuG,GAAG,IAAIA,EAAE,MAAM,IAAIlhF,MAAM,0CAA0C,IAAI31B,EAAE82G,GAAE,EAAGP,EAAEwkD,mBAAmBzkD,EAAE8lD,cAAcx6H,QAAQ00E,EAAE8lD,cAAcW,OAAM,EAAGxmD,EAAEukD,0BAA0BtkD,EAAEgpD,yBAAyBx/J,GAAE,EAAGy2G,EAAE6zD,8BAA8B1hK,IAAIiuG,EAAE72G,EAAE,OAAM,EAAGy2G,EAAE8zD,2BAA2B3hK,IAAG,EAAGs2D,EAAE25F,qBAAqB,cAAc,CAACjwJ,IAAG,SAAS5I,EAAE82G,EAAEI,GAAG,GAAGA,GAAE,EAAGT,EAAE+zD,6BAA6B5hK,IAAIA,EAAE6hK,WAAWC,gBAAgB9B,iBAAiB1xD,QAAQ,GAAGJ,EAAE,CAAC,IAAI,IAAIG,EAAE,GAAGF,EAAE,EAAEztG,EAAEwtG,EAAEC,EAAEztG,EAAEvJ,OAAOg3G,IAAI,CAAC,IAAI/2B,EAAE12E,EAAEytG,GAAGE,EAAEx4G,KAAK,IAAI04G,EAAEn3B,GAAG,CAAC62B,EAAE72G,EAAEi3G,EAAE,MAAMJ,EAAE72G,EAAE,KAAK,KAAI82G,EAAE,CAAC2kD,UAAUz7E,EAAE07E,UAAUoF,mBAAmBjqD,EAAEC,EAAE,QAAQA,EAAE,CAAC2kD,UAAUz7E,EAAE07E,UAAUC,cAAc9kD,EAAEC,EAAE,MAAM,EAAE92G,EAAE2qK,WAAW,SAAS3qK,EAAE82G,GAAG,IAAIA,EAAE,MAAM,IAAInhF,MAAM,0CAAyC,EAAG4gF,EAAEwkD,mBAAmBzkD,EAAE8lD,cAAcx6H,QAAQ00E,EAAE8lD,cAAcW,OAAM,EAAGxmD,EAAEukD,0BAA0BtkD,EAAEgpD,yBAAwB,EAAG/oD,EAAEm0D,yBAAyB5qK,IAAG,EAAGk/D,EAAE25F,qBAAqB,aAAa,CAAC74J,GAAG82G,GAAGA,EAAE,CAAC2kD,UAAUz7E,EAAE07E,UAAUoF,oBAAoBhqD,EAAE,CAAC2kD,UAAUz7E,EAAE07E,UAAUC,cAAc,EAAE37J,EAAE6qK,YAAY,SAAS7qK,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAM,gDAA+C,EAAG4gF,EAAEwkD,mBAAmBzkD,EAAE8lD,cAAcx6H,QAAQ00E,EAAE8lD,cAAcW,MAAMzzJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAeiB,SAAS/yJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAekB,KAAKhzJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAeoB,OAAOlzJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAesB,mBAAmBpzJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAeuB,mBAAmBrzJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAewB,aAAatzJ,EAAEiwJ,WAAW4B,iBAAiB7kD,EAAE8kD,eAAeyB,eAAc,EAAGtmD,EAAEukD,0BAA0BtkD,EAAE8oD,qCAAoC,EAAG7oD,EAAEq0D,0BAA0Bh0D,IAAG,EAAG53C,EAAE25F,qBAAqB,oBAAoB,CAAC/hD,GAAG92G,GAAGA,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUoF,mBAAmB,MAAM9gK,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUC,cAAc,MAAM37J,EAAE,CAACy7J,UAAUz7E,EAAE07E,UAAUE,2BAA2B,KAAK,CAAC,CAA9yL,CAAgzL9kD,EAAEgrD,QAAQhrD,EAAEgrD,MAAM,CAAC,GAAG,EAAE,SAAS9hK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEi0D,0BAA0Bj0D,EAAEg0D,yBAAyBh0D,EAAE8zD,wBAAwB9zD,EAAEkxD,uBAAuBlxD,EAAEk0D,qCAAqCl0D,EAAEm0D,kCAAkCn0D,EAAEo0D,iCAAiCp0D,EAAEyzD,0BAA0BzzD,EAAE0zD,4BAA4B1zD,EAAEwzD,6BAA6BxzD,EAAE0xD,iBAAiB1xD,EAAEyxD,gBAAW,EAAO,IAAItxD,EAAEC,EAAE,IAAIH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAG,SAASl3B,EAAEhgF,GAAG,IAAI82G,EAAE,SAAS,MAAM92G,OAAE,EAAOA,EAAEipK,YAAYhyD,EAAE6qD,MAAMiI,UAAU5jJ,OAAO,QAAQ2wF,EAAE,MAAM92G,OAAE,EAAOA,EAAEylB,kBAAa,IAASqxF,IAAIA,EAAEq0D,mBAAmB,CAAC,SAASviK,EAAE5I,GAAG,SAASA,GAAGA,EAAEipK,WAAWhyD,EAAE6qD,MAAMiI,UAAUF,gBAAgB7pK,EAAEorK,mBAAmB,CAAC,SAASv0D,EAAE72G,GAAG,SAASA,GAAGA,EAAEipK,WAAWhyD,EAAE6qD,MAAMiI,UAAUpB,QAAQ3oK,EAAEyqK,YAAYzqK,EAAEyqK,WAAWY,iBAAiB,CAACv0D,EAAEyxD,WAAW,SAASvoK,EAAE82G,GAAG,GAAG,MAAM92G,GAAG,MAAM82G,GAAG92G,EAAED,QAAQ,EAAE,OAAO,KAAK,IAAIm3G,EAAED,EAAE,EAAE,OAAOj3G,EAAEsrK,MAAK,SAAStrK,EAAE82G,GAAG,OAAO92G,EAAEurK,SAASz0D,EAAEy0D,SAAS,GAAG,CAAC,IAAGvrK,EAAEG,SAAQ,SAASH,GAAGA,EAAEurK,UAAUt0D,IAAIC,EAAEA,EAAE,IAAIs0D,KAAK,CAACt0D,EAAEl3G,EAAEyrK,MAAM,CAACnuJ,KAAKw5F,IAAI,IAAI00D,KAAK,CAACxrK,EAAEyrK,MAAM,CAACnuJ,KAAKw5F,IAAIG,IAAI,IAAGC,CAAC,EAAEJ,EAAE0xD,iBAAiB,SAASxoK,EAAE82G,GAAG,GAAG,MAAM92G,GAAG,MAAM82G,EAAE,OAAO,KAAK,IAAI,IAAII,EAAEw0D,KAAK1rK,EAAE2rK,OAAO10D,EAAE,IAAIz0G,MAAM00G,EAAEn3G,QAAQg3G,EAAE,EAAEA,EAAEG,EAAEn3G,OAAOg3G,IAAIE,EAAEF,GAAGG,EAAEzb,WAAWsb,GAAG,IAAIztG,EAAE,IAAI25I,WAAWhsC,GAA4B,OAAzBH,EAAE,IAAI00D,KAAK,CAACliK,GAAG,CAACgU,KAAKw5F,IAAU,CAACy0D,SAASvrK,EAAEsoK,cAAcmD,KAAK30D,EAAE,EAAEA,EAAEwzD,6BAA6B,SAAStqK,GAAG,OAAO4I,EAAE5I,IAAG,EAAGsJ,EAAEsxJ,wBAAwB7jD,EAAEgpD,qCAAqClpD,EAAE72G,IAAG,EAAGsJ,EAAEsxJ,wBAAwB7jD,EAAE+oD,yCAAyC9/E,EAAEhgF,IAAG,EAAGsJ,EAAEsxJ,wBAAwB7jD,EAAE8oD,qCAAqC,IAAI,EAAE/oD,EAAE0zD,4BAA4B,SAASxqK,GAAG,QAAQA,EAAEipK,WAAWhyD,EAAE6qD,MAAMiI,UAAUpB,QAAQ3oK,EAAEyqK,aAAazqK,EAAEyqK,WAAWC,gBAAgB,EAAE5zD,EAAEyzD,0BAA0B,SAASvqK,GAAG,QAAQ,MAAMA,GAAG,GAAGA,EAAE4rK,cAAc,EAAE90D,EAAEo0D,iCAAiClrF,EAAE82B,EAAEm0D,kCAAkCriK,EAAEkuG,EAAEk0D,qCAAqCn0D,EAAEC,EAAEkxD,uBAAuB,SAAShoK,EAAE82G,EAAEI,GAAG,OAAO,MAAMl3G,GAAG,MAAM82G,GAAGA,GAAGG,EAAE6qD,MAAM4F,WAAWD,IAAI,MAAMvwD,CAAC,EAAEJ,EAAE8zD,wBAAwB,SAAS5qK,GAAG,QAAQ,MAAMA,GAAGA,EAAED,QAAQ,GAAG,GAAGC,EAAED,OAAO,EAAE+2G,EAAEg0D,yBAAyB,SAAS9qK,GAAG,OAAOA,KAAK,OAAOA,EAAE6rK,sBAAsB7rK,EAAE6rK,sBAAsB,GAAG,GAAG7rK,EAAE6rK,qBAAqB,EAAE/0D,EAAEi0D,0BAA0B,SAAS/qK,GAAG,GAAGA,EAAE,CAAC,GAAGA,EAAE8lB,OAAO,iBAAiB9lB,EAAE8lB,MAAM,OAAM,EAAG,GAAG9lB,EAAE8rK,aAAa,iBAAiB9rK,EAAE8rK,YAAY,OAAM,EAAG,GAAG9rK,EAAE+rK,kCAAkC,kBAAkB/rK,EAAE+rK,iCAAiC,OAAM,EAAG,GAAG/rK,EAAEgsK,cAAc,kBAAkBhsK,EAAEgsK,aAAa,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,EAAE,SAAShsK,EAAE82G,EAAEI,GAAG,aAAa,IAAID,EAAE16G,MAAMA,KAAK0vK,kBAAkBvpK,OAAO4mH,OAAO,SAAStpH,EAAE82G,EAAEI,EAAED,QAAG,IAASA,IAAIA,EAAEC,GAAGx0G,OAAO8X,eAAexa,EAAEi3G,EAAE,CAACv8F,YAAW,EAAGD,IAAI,WAAW,OAAOq8F,EAAEI,EAAE,GAAG,EAAE,SAASl3G,EAAE82G,EAAEI,EAAED,GAAGj3G,EAAEi3G,OAAE,IAASA,EAAEC,EAAED,GAAGH,EAAEI,EAAE,GAAGH,EAAEx6G,MAAMA,KAAK2vK,cAAc,SAASlsK,EAAE82G,GAAG,IAAI,IAAII,KAAKl3G,EAAE,YAAYk3G,GAAGx0G,OAAOzE,UAAUkE,eAAe8O,KAAK6lG,EAAEI,IAAID,EAAEH,EAAE92G,EAAEk3G,EAAE,EAAEx0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK+wG,EAAEG,EAAE,IAAIJ,GAAGC,EAAEG,EAAE,GAAGJ,EAAE,EAAE,SAAS92G,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEq1D,MAAMr1D,EAAEs1D,UAAUt1D,EAAEu1D,MAAMv1D,EAAEw1D,aAAax1D,EAAEy1D,YAAYz1D,EAAE01D,cAAc11D,EAAEsuD,kCAAkCtuD,EAAE4uD,gBAAgB5uD,EAAEyuD,sBAAsBzuD,EAAE0uD,gBAAgB1uD,EAAE6uD,iBAAiB7uD,EAAE2uD,kBAAkB3uD,EAAE8uD,gBAAgB9uD,EAAEivD,mBAAmBjvD,EAAEuuD,iBAAiBvuD,EAAEwuD,eAAexuD,EAAE+uD,eAAe/uD,EAAEgvD,gBAAgBhvD,EAAE21D,iBAAiB31D,EAAE41D,kBAAkB51D,EAAE61D,kBAAkB71D,EAAEouD,KAAKpuD,EAAE81D,SAAI,EAAO,IAAI31D,EAAEC,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,MAAM,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOw8F,EAAE21D,GAAG,IAAI,IAAI71D,EAAEG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,OAAO,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOs8F,EAAEmuD,IAAI,IAAI,IAAI57J,EAAE4tG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,oBAAoB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAEqjK,iBAAiB,IAAIjqK,OAAO8X,eAAes8F,EAAE,oBAAoB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAEojK,iBAAiB,IAAIhqK,OAAO8X,eAAes8F,EAAE,mBAAmB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOnR,EAAEmjK,gBAAgB,IAAI,IAAIzsF,EAAEk3B,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE8lF,eAAe,IAAIpjK,OAAO8X,eAAes8F,EAAE,iBAAiB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE6lF,cAAc,IAAInjK,OAAO8X,eAAes8F,EAAE,iBAAiB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEslF,cAAc,IAAI5iK,OAAO8X,eAAes8F,EAAE,mBAAmB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEqlF,gBAAgB,IAAI3iK,OAAO8X,eAAes8F,EAAE,qBAAqB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE+lF,kBAAkB,IAAIrjK,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE4lF,eAAe,IAAIljK,OAAO8X,eAAes8F,EAAE,oBAAoB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEylF,iBAAiB,IAAI/iK,OAAO8X,eAAes8F,EAAE,mBAAmB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE2lF,gBAAgB,IAAIjjK,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEwlF,eAAe,IAAI9iK,OAAO8X,eAAes8F,EAAE,wBAAwB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEulF,qBAAqB,IAAI7iK,OAAO8X,eAAes8F,EAAE,kBAAkB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAE0lF,eAAe,IAAIhjK,OAAO8X,eAAes8F,EAAE,oCAAoC,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOulE,EAAEolF,iCAAiC,IAAI,IAAIx8J,EAAEsuG,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,gBAAgB,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO7R,EAAE4jK,aAAa,IAAI,IAAI31D,EAAEK,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,cAAc,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOo8F,EAAE01D,WAAW,IAAI,IAAIp1D,EAAED,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,eAAe,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO08F,EAAEm1D,YAAY,IAAI,IAAI/1D,EAAEW,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO87F,EAAE81D,KAAK,IAAI,IAAI/1D,EAAEY,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,YAAY,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAO67F,EAAE81D,SAAS,IAAI,IAAI31D,EAAES,EAAE,IAAIx0G,OAAO8X,eAAes8F,EAAE,QAAQ,CAACp8F,YAAW,EAAGD,IAAI,WAAW,OAAOg8F,EAAE01D,KAAK,GAAG,EAAE,SAASnsK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE81D,SAAI,EAAO,IAAI71D,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAI,SAASl3G,GAAGA,EAAE6sK,UAAU,SAAS7sK,EAAEk3G,EAAED,IAAG,EAAG3tG,EAAEyxJ,sBAAqB,EAAGhkD,EAAE8hD,qBAAqB,mBAAmB,CAAC74J,IAAG,SAASA,EAAE82G,IAAI92G,EAAEk3G,EAAED,GAAGH,EAAE,GAAE,EAAE92G,EAAE8sK,qBAAqB,SAAS51D,EAAED,IAAG,EAAG3tG,EAAEyxJ,sBAAqB,EAAGhkD,EAAE8hD,qBAAqB,4BAA2B,SAAS74J,EAAE82G,IAAI92G,EAAEk3G,EAAED,GAAGH,EAAE,GAAE,EAAE92G,EAAE6jK,aAAa,SAAS7jK,EAAEk3G,EAAED,IAAG,EAAG3tG,EAAEyxJ,sBAAqB,EAAGhkD,EAAE8hD,qBAAqB,mBAAmB,CAAC74J,IAAG,SAASA,EAAE82G,IAAI92G,EAAEk3G,EAAED,GAAGH,EAAE,GAAE,EAAE,SAAS92G,GAAGA,EAAE+sK,QAAQ,UAAU/sK,EAAEgtK,KAAK,MAAM,CAA7C,CAA+ChtK,EAAEitK,eAAejtK,EAAEitK,aAAa,CAAC,GAAG,CAAxf,CAA0fn2D,EAAE81D,MAAM91D,EAAE81D,IAAI,CAAC,GAAG,EAAE,SAAS5sK,EAAE82G,EAAEI,GAAG,IAAID,EAAEC,EAAE,IAAIH,EAAEG,EAAE,KAAIA,EAAEH,GAAIm2D,GAAGj2D,EAAEC,EAAEkpD,GAAGrpD,EAAE/2G,EAAEu4J,QAAQrhD,CAAC,EAAE,SAASl3G,EAAE82G,EAAEI,GAAG,IAAIX,EAAED,EAAEG,EAAES,EAAE,GAAGh4C,EAAEg4C,EAAE,IAAIV,EAAE,EAAE/sG,EAAE,EAAEzJ,EAAEu4J,QAAQ,SAASv4J,EAAE82G,EAAEI,GAAG,IAAID,EAAEH,GAAGI,GAAG,EAAEH,EAAED,GAAG,GAAGxtG,GAAGtJ,EAAEA,GAAG,CAAC,GAAGqjH,MAAM9M,EAAEv2B,OAAE,IAAShgF,EAAEmtK,SAASntK,EAAEmtK,SAAS72D,EAAE,MAAMhtG,GAAG,MAAM02E,IAAI62B,EAAEJ,IAAI,MAAMntG,IAAIA,EAAEitG,EAAE,CAAC,EAAEM,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAK,MAAM72B,IAAIA,EAAEs2B,EAAE,OAAOO,EAAE,IAAI,EAAEA,EAAE,MAAM,IAAIjuG,OAAE,IAAS5I,EAAEotK,MAAMptK,EAAEotK,OAAM,IAAK5yK,MAAMC,UAAyCo8G,GAA/BK,OAAE,IAASl3G,EAAEqtK,MAAMrtK,EAAEqtK,MAAM5jK,EAAE,EAAIb,EAAE4tG,GAAGU,EAAEztG,GAAG,KAAI,GAAGotG,EAAE,QAAG,IAAS72G,EAAEmtK,WAAWntF,EAAEA,EAAE,EAAE,OAAO,MAAMk3B,GAAGL,EAAE,GAAGL,EAAE5tG,SAAI,IAAS5I,EAAEqtK,MAAM,EAAEn2D,GAAG,MAAM,IAAIvhF,MAAM,mDAAmD6gF,EAAE5tG,EAAE0tG,EAAEt2B,EAAEk3B,GAAG,KAAK,WAAWtuG,GAAG,eAAea,EAAEytG,IAAI,WAAWH,EAAEE,KAAKC,IAAI,GAAG,IAAIH,EAAEE,KAAKC,IAAI,GAAG,IAAIH,EAAEE,KAAKC,IAAI,EAAE,IAAIH,EAAEE,KAAK,IAAIC,EAAEtuG,EAAEA,EAAE,WAAW,IAAI,UAAUmuG,EAAEE,KAAKruG,IAAI,EAAE,IAAImuG,EAAEE,KAAK,IAAIruG,EAAEmuG,EAAEE,KAAKruG,IAAI,GAAG,GAAG,GAAGmuG,EAAEE,KAAKruG,IAAI,GAAG,IAAImuG,EAAEE,KAAKj3B,IAAI,EAAE,IAAI+2B,EAAEE,KAAK,IAAIj3B,EAAE,IAAI,IAAIm3B,EAAE,EAAEA,EAAE,IAAIA,EAAEJ,EAAEE,EAAEE,GAAG7tG,EAAE6tG,GAAG,OAAOL,GAAG53C,EAAE63C,EAAE,CAAC,EAAE,SAAS/2G,EAAE82G,EAAEI,GAAG,IAAIl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,IAAIl3G,EAAEu4J,QAAQ,SAASv4J,EAAE82G,EAAEI,GAAG,IAAID,EAAEH,GAAGI,GAAG,EAAE,iBAAiBl3G,IAAI82G,EAAE,WAAW92G,EAAE,IAAIwC,MAAM,IAAI,KAAKxC,EAAE,MAAM,IAAI+2G,GAAG/2G,EAAEA,GAAG,CAAC,GAAGujI,SAASvjI,EAAEstK,KAAKttF,KAAK,GAAG+2B,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAID,EAAE,IAAI,IAAIxtG,EAAE,EAAEA,EAAE,KAAKA,EAAEwtG,EAAEG,EAAE3tG,GAAGytG,EAAEztG,GAAG,OAAOwtG,GAAGluG,EAAEmuG,EAAE,CAAC,EAAE,SAAS/2G,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEusD,uBAAkB,EAAO,IAAIpsD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAI,SAASJ,GAAGA,EAAEy2D,SAAS,CAACC,UAAU,8BAA8BC,QAAQ,4BAA4BC,QAAQ,4BAA4BC,gBAAgB,qCAAqC,SAAS3tK,GAAGA,EAAE4tK,WAAW,aAAa5tK,EAAE6tK,QAAQ,UAAU7tK,EAAE8tK,MAAM,OAAO,CAAzE,CAA2Eh3D,EAAEi3D,eAAej3D,EAAEi3D,aAAa,CAAC,IAAI,SAAS/tK,GAAGA,EAAEguK,gBAAgB,kBAAkBhuK,EAAEiuK,SAAS,WAAWjuK,EAAEkuK,WAAW,aAAaluK,EAAEmuK,QAAQ,UAAUnuK,EAAE8tK,MAAM,OAAO,CAAnI,CAAqIh3D,EAAEs3D,wBAAwBt3D,EAAEs3D,sBAAsB,CAAC,IAAIt3D,EAAEu3D,gBAAgB,YAAW,EAAGp3D,EAAE8jD,sBAAqB,EAAGzxJ,EAAEuvJ,qBAAqB/hD,EAAEy2D,SAASC,UAAU,CAACz2D,EAAEquC,SAAS,EAAEtuC,EAAE4tD,cAAc,YAAW,EAAGztD,EAAE8jD,sBAAqB,EAAGzxJ,EAAEuvJ,qBAAqB/hD,EAAEy2D,SAASE,QAAQ,CAAC12D,EAAEquC,SAAS,EAAEtuC,EAAE6tD,cAAc,SAAS3kK,IAAG,EAAGi3G,EAAE8jD,sBAAqB,EAAGzxJ,EAAEuvJ,qBAAqB/hD,EAAEy2D,SAASG,QAAQ,CAAC1tK,EAAEorJ,OAAOprJ,EAAEyhF,SAAS,EAAEq1B,EAAEw3D,sBAAsB,SAAStuK,IAAG,EAAGi3G,EAAE8jD,sBAAqB,EAAGzxJ,EAAEuvJ,qBAAqB/hD,EAAEy2D,SAASI,gBAAgB,CAAC3tK,EAAEorJ,OAAOprJ,EAAEyhF,SAAS,CAAC,CAAh9B,CAAk9Bq1B,EAAEusD,oBAAoBvsD,EAAEusD,kBAAkB,CAAC,GAAG,EAAE,SAASrjK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEgsD,2BAA2BhsD,EAAEyrD,gBAAgBzrD,EAAEqsD,gBAAgBrsD,EAAEwrD,cAAcxrD,EAAEmsD,mBAAmBnsD,EAAEksD,gBAAgBlsD,EAAE8rD,8BAA8B9rD,EAAEqnD,0BAA0BrnD,EAAEmnD,4BAA4BnnD,EAAEonD,sBAAsBpnD,EAAEsnD,0BAA0BtnD,EAAE0rD,mCAAmC1rD,EAAE2rD,mCAAmC3rD,EAAE4rD,8BAA8B5rD,EAAE6rD,0BAA0B7rD,EAAEwnD,6BAA6BxnD,EAAEosD,WAAWpsD,EAAE+rD,MAAM/rD,EAAEssD,sBAAsBtsD,EAAEy3D,cAAcz3D,EAAE03D,YAAY13D,EAAEisD,gBAAW,EAAO,IAAI9rD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,IAAItuG,EAAEsuG,EAAE,GAAGL,EAAEK,EAAE,IAAIC,EAAED,EAAE,GAAGX,EAAEW,EAAE,GAAGZ,EAAEY,EAAE,IAAIT,EAAES,EAAE,IAAIh4C,EAAEg4C,EAAE,IAAIV,EAAEU,EAAE,GAAG,SAASztG,EAAEzJ,EAAE82G,GAAGC,EAAEwiD,WAAWgC,mBAAmBxkD,EAAEwiD,WAAWgC,kBAAiB,EAAG/kD,EAAEioD,sBAAqB,EAAGloD,EAAEwiD,0BAAyB,SAAS/4J,EAAE82G,EAAEI,QAAG,IAASA,IAAIA,EAAE5tG,EAAE0xJ,iCAAiCjkD,EAAEwiD,WAAWiC,aAAax7J,EAAE+2G,EAAEwiD,WAAW4B,eAAerkD,EAAEC,EAAEwiD,WAAW2B,0BAA0BhkD,EAAEH,EAAEwiD,WAAWgI,oBAAoBphK,SAAQ,SAASH,GAAG,OAAOA,GAAG,IAAG+2G,EAAEwiD,WAAWgI,oBAAoB,GAAGxqD,EAAEwiD,WAAW+H,qBAAoB,CAAE,GAAExqD,GAAGR,EAAEwmD,eAAeiG,aAAa/iF,EAAExwB,SAASuzG,aAAa7jG,EAAE6iG,MAAMgB,cAAa,EAAGtsD,EAAEuvD,0BAA0BxjK,MAAMC,QAAQq0G,KAAI,EAAGG,EAAE0jD,+BAA+B7jD,GAAG92G,IAAI+2G,EAAEwiD,WAAW+H,oBAAoBthK,IAAI+2G,EAAEwiD,WAAWgI,oBAAoB9iK,KAAKuB,GAAG,CAAC,SAAS45J,IAAI/9J,OAAOgnK,OAAO,CAAC,SAASnsD,EAAE12G,IAAG,EAAGi3G,EAAE8jD,qBAAqBvkD,EAAE8nD,6BAA6Bt+J,EAAE,CAAC,SAASq2G,EAAEr2G,IAAG,EAAGi3G,EAAE8jD,qBAAqBvkD,EAAEgoD,gBAAgB,mBAAmBx+J,EAAE,CAAC,SAASmI,EAAEnI,IAAG,EAAGi3G,EAAE8jD,qBAAqBvkD,EAAE4nD,0BAA0Bp+J,EAAE,CAAC,SAASu1C,EAAEv1C,IAAG,EAAGi3G,EAAE8jD,qBAAqBvkD,EAAE0nD,sBAAsBl+J,EAAE,CAAC,SAASs6J,EAAEt6J,IAAG,EAAGi3G,EAAE8jD,qBAAqBvkD,EAAEynD,4BAA4Bj+J,EAAE,CAAC,SAAS06J,EAAE16J,IAAG,EAAGi3G,EAAE8jD,qBAAqBvkD,EAAE2nD,0BAA0Bn+J,EAAE,CAAC,SAAS+qC,EAAE/qC,IAAG,EAAGi3G,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,UAAS,EAAG20E,EAAEsiD,qBAAqB,kBAAkB,CAAC74J,GAAG,CAAC82G,EAAEisD,WAAWt5J,EAAEqtG,EAAE03D,YAAY,SAASxuK,GAAGu2G,EAAEyiD,cAAch2D,cAAchjG,CAAC,EAAE82G,EAAEy3D,cAAc,WAAWx3D,EAAEwiD,WAAWgC,mBAAmBxkD,EAAEwiD,WAAWiC,eAAe9kD,EAAE,MAAML,EAAE,MAAMluG,EAAE,MAAMmyJ,EAAE,MAAMI,EAAE,MAAMnlH,EAAE,MAAMshE,EAAEquD,KAAKC,sBAAsB,OAAOpuD,EAAEwiD,WAAWiC,eAAerkD,EAAEilD,cAAc5sG,UAAUwwB,EAAExwB,SAASs1G,sBAAsB,MAAM/tD,EAAEwiD,WAAWiC,eAAerkD,EAAEilD,cAAch8F,QAAQ4f,EAAExwB,SAASu1G,wBAAwB,MAAMhuD,EAAEwiD,WAAWgC,kBAAiB,EAAGxkD,EAAEwiD,WAAW+H,qBAAoB,EAAGvqD,EAAEwiD,WAAWgI,oBAAoB,GAAGxqD,EAAEwiD,WAAWsC,uBAAuB,GAAG9kD,EAAEwiD,WAAWiC,aAAa,KAAKzkD,EAAEwiD,WAAW4B,eAAe,MAAMpkD,EAAEwiD,WAAWC,mBAAkB,EAAGjjD,EAAEuiD,6BAA6B,EAAEhiD,EAAEssD,sBAAsB,WAAWrsD,EAAEwiD,WAAWiI,yBAAyBzqD,EAAEwiD,WAAWiI,wBAAuB,GAAG,EAAGvqD,EAAE8jD,qBAAqB9/J,SAASkd,iBAAiB,WAAU,SAASnY,IAAIA,EAAEgQ,SAAShQ,EAAEiQ,UAAU,KAAKjQ,EAAE8gF,UAAU84E,IAAI55J,EAAE4zG,cAAa,EAAG5zG,EAAEkW,iBAAiBlW,EAAE42B,2BAA2B,IAAG,EAAEkgF,EAAE+rD,MAAMjJ,EAAE9iD,EAAEosD,WAAW,SAASpsD,IAAG,EAAGG,EAAE8jD,sBAAqB,EAAGxkD,EAAEsiD,qBAAqB,cAAa,SAAS74J,GAAGA,EAAEw7J,eAAex7J,EAAEw7J,aAAazkD,EAAEwiD,WAAWiC,cAAc1kD,EAAE92G,EAAE,GAAE,EAAE82G,EAAEwnD,6BAA6B5nD,EAAEI,EAAE6rD,0BAA0BtsD,EAAES,EAAE4rD,8BAA8B,SAAS1iK,IAAG,EAAGi3G,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,SAAS40E,EAAEgoD,gBAAgB,iBAAiBx+J,EAAE,EAAE82G,EAAE2rD,mCAAmC,SAASziK,IAAG,EAAGi3G,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,SAAS40E,EAAEgoD,gBAAgB,sBAAsBx+J,EAAE,EAAE82G,EAAE0rD,mCAAmC,SAASxiK,IAAG,EAAGi3G,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,SAAS40E,EAAEgoD,gBAAgB,sBAAsBx+J,EAAE,EAAE82G,EAAEsnD,0BAA0Bj2J,EAAE2uG,EAAEonD,sBAAsB3oH,EAAEuhE,EAAEmnD,4BAA4B3D,EAAExjD,EAAEqnD,0BAA0BzD,EAAE5jD,EAAE8rD,8BAA8B,SAAS5iK,IAAG,EAAGi3G,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,SAAS40E,EAAEgoD,gBAAgB,iBAAiBx+J,EAAE,EAAE82G,EAAEksD,gBAAgB,SAAShjK,EAAE82G,IAAG,EAAGG,EAAE8jD,sBAAqB,EAAGxkD,EAAEsiD,qBAAqB,kBAAkB,CAAC/hD,GAAG92G,EAAE,EAAE82G,EAAEmsD,mBAAmB,SAASjjK,EAAE82G,IAAG,EAAGG,EAAE8jD,sBAAqB,EAAGxkD,EAAEsiD,qBAAqB,qBAAqB,CAAC/hD,GAAG92G,EAAE,EAAE82G,EAAEwrD,cAAc,SAAStiK,IAAG,EAAGi3G,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,QAAQu1E,EAAEilD,cAAcY,UAAU7lD,EAAEilD,cAAcc,eAAc,EAAG3mD,EAAEsiD,qBAAqB,gBAAgB,CAAC74J,EAAEumK,YAAYvmK,EAAEyuK,eAAezuK,EAAE0uK,iBAAiB,EAAE53D,EAAEqsD,gBAAgB,SAASnjK,EAAE82G,IAAG,EAAGG,EAAE8jD,mBAAmB5jD,EAAEilD,cAAcx6H,QAAQu1E,EAAEilD,cAAcY,UAAU7lD,EAAEilD,cAAc5sG,SAAS2nD,EAAEilD,cAAcW,KAAK5lD,EAAEilD,cAAca,MAAM9lD,EAAEilD,cAAcc,eAAc,EAAG3mD,EAAEsiD,qBAAqB,kBAAkB,CAAC74J,GAAG82G,IAAG,EAAGluG,EAAEq3J,+BAA+B,EAAEnpD,EAAEyrD,gBAAgBx3H,EAAE+rE,EAAEgsD,2BAA2B,SAAS9iK,EAAE82G,EAAEI,GAAGztG,EAAEqtG,EAAEI,GAAGnsE,EAAE/qC,EAAE,CAAC,EAAE,SAASA,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE8nD,aAAa9nD,EAAEsrD,oBAAoBtrD,EAAEqrD,cAAcrrD,EAAEurD,iBAAY,EAAO,IAAIprD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGJ,EAAEurD,YAAY,SAASriK,IAAG,EAAGi3G,EAAE8jD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,cAAc,CAAC74J,GAAG,EAAE82G,EAAEqrD,cAAc,SAASniK,EAAE82G,IAAG,EAAGG,EAAE8jD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,gBAAgB,CAAC74J,GAAG82G,IAAG,EAAGC,EAAEkpD,6BAA6B,oEAAoE,EAAEnpD,EAAEsrD,oBAAoB,SAASpiK,EAAE82G,IAAG,EAAGG,EAAE8jD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,QAAQt4B,EAAE8yJ,cAAcY,UAAU1zJ,EAAE8yJ,cAAc5sG,SAASlmD,EAAE8yJ,cAAch8F,OAAO92D,EAAE8yJ,cAAcW,KAAKzzJ,EAAE8yJ,cAAca,MAAM3zJ,EAAE8yJ,cAAcc,eAAc,EAAGl9E,EAAE64E,qBAAqB,sBAAsB,CAAC74J,GAAG82G,IAAG,EAAGC,EAAEkpD,6BAA6B,uGAAuG,EAAEnpD,EAAE8nD,aAAa,SAAS5+J,IAAG,EAAGi3G,EAAE8jD,sBAAqB,EAAG/6E,EAAE64E,qBAAqB,eAAe,GAAG74J,IAAG,EAAG+2G,EAAEkpD,6BAA6B,sEAAsE,CAAC,EAAE,SAASjgK,EAAE82G,EAAEI,GAAG,aAAa,IAAID,EAAE16G,MAAMA,KAAKoyK,QAAQ,SAAS3uK,EAAE82G,GAAG,IAAII,EAAE,CAAC,EAAE,IAAIH,KAAK/2G,EAAE0C,OAAOzE,UAAUkE,eAAe8O,KAAKjR,EAAE+2G,IAAID,EAAEhzG,QAAQizG,GAAG,IAAIG,EAAEH,GAAG/2G,EAAE+2G,IAAI,GAAG,MAAM/2G,GAAG,mBAAmB0C,OAAOw5H,sBAAsB,IAAI,IAAIjlB,EAAE,EAAEF,EAAEr0G,OAAOw5H,sBAAsBl8H,GAAGi3G,EAAEF,EAAEh3G,OAAOk3G,IAAIH,EAAEhzG,QAAQizG,EAAEE,IAAI,GAAGv0G,OAAOzE,UAAU+7I,qBAAqB/oI,KAAKjR,EAAE+2G,EAAEE,MAAMC,EAAEH,EAAEE,IAAIj3G,EAAE+2G,EAAEE,KAAK,OAAOC,CAAC,EAAEx0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEorD,WAAM,EAAO,IAAInrD,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAIl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,IAAI,SAASl3G,GAAGA,EAAE4uK,UAAU,SAAS5uK,EAAE82G,GAAG,OAAM,EAAGluG,EAAEmyJ,mBAAmBhkD,EAAEqlD,cAAcx6H,QAAQm1E,EAAEqlD,cAAcY,UAAUjmD,EAAEqlD,cAAcc,eAAc,EAAGl9E,EAAE64E,qBAAqB,kBAAkB,CAAC74J,GAAG82G,GAAG,IAAIxtG,EAAE24J,cAAc,EAAEjiK,EAAE6uK,WAAW,SAAS7uK,IAAG,EAAG4I,EAAEmyJ,mBAAmBhkD,EAAEqlD,cAAcx6H,QAAQm1E,EAAEqlD,cAAcY,UAAUjmD,EAAEqlD,cAAcW,KAAKhmD,EAAEqlD,cAAcc,cAAcl9J,EAAEkX,MAAMlX,EAAEod,OAAO,IAAI05F,EAAEG,EAAEj3G,EAAE,CAAC,QAAQ,WAAW,GAAG0C,OAAOC,KAAKm0G,GAAG/2G,OAAO,MAAM,IAAI41B,MAAM,6EAA4E,EAAGqqD,EAAE64E,qBAAqB,mBAAmB,CAAC74J,GAAG,EAAEA,EAAE8uK,WAAW,SAAS9uK,EAAE82G,IAAG,EAAGluG,EAAEmyJ,mBAAmBhkD,EAAEqlD,cAAcx6H,QAAQm1E,EAAEqlD,cAAcY,UAAUjmD,EAAEqlD,cAAcW,KAAKhmD,EAAEqlD,cAAcc,eAAc,EAAGl9E,EAAE64E,qBAAqB,qBAAqB,CAAC74J,EAAEwC,MAAMC,QAAQq0G,GAAGA,EAAE,CAACA,IAAI,CAAC,CAA7yB,CAA+yBA,EAAEorD,QAAQprD,EAAEorD,MAAM,CAAC,GAAG,EAAE,SAASliK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEob,cAAS,EAAO,IAAIjb,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,IAAI,SAASl3G,GAAGA,EAAE+uK,YAAY,SAAS/uK,EAAE82G,GAAG,IAAIA,EAAE,MAAM,IAAInhF,MAAM,mDAAkD,EAAGohF,EAAEgkD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,QAAQt4B,EAAE8yJ,cAAcW,OAAM,EAAGhmD,EAAE+jD,0BAA0BlyJ,EAAE+2J,6BAA6B3/J,GAAE,EAAGggF,EAAE64E,qBAAqB,uBAAuB,CAAC74J,GAAG82G,GAAGA,EAAE,CAAC2kD,UAAUxkD,EAAEykD,UAAUoF,wBAAmB,GAAQhqD,EAAE,CAAC2kD,UAAUxkD,EAAEykD,UAAUC,mBAAc,EAAO,EAAE37J,EAAEgvK,aAAa,SAAShvK,EAAE82G,GAAG,IAAIA,EAAE,MAAM,IAAInhF,MAAM,oDAAmD,EAAGohF,EAAEgkD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,QAAQt4B,EAAE8yJ,cAAcW,OAAM,EAAGhmD,EAAE+jD,0BAA0BlyJ,EAAE+2J,6BAA6B3/J,GAAE,EAAGggF,EAAE64E,qBAAqB,wBAAwB,CAAC74J,GAAG82G,GAAGA,EAAE,CAAC2kD,UAAUxkD,EAAEykD,UAAUoF,wBAAmB,GAAQhqD,EAAE,CAAC2kD,UAAUxkD,EAAEykD,UAAUC,mBAAc,EAAO,CAAC,CAA1xB,CAA4xB7kD,EAAEob,WAAWpb,EAAEob,SAAS,CAAC,GAAG,EAAE,SAASlyH,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE+qD,aAAQ,EAAO,IAAI5qD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAEivK,QAAQ,UAAUjvK,EAAEkvK,MAAM,QAAQlvK,EAAEmvK,UAAU,YAAYnvK,EAAEovK,UAAU,YAAYpvK,EAAEqvK,UAAU,YAAYrvK,EAAEsvK,QAAQ,SAAS,CAA3I,CAA6ItvK,EAAEuvK,cAAcvvK,EAAEuvK,YAAY,CAAC,IAAI,SAASvvK,GAAGA,EAAEwvK,aAAa,eAAexvK,EAAEyvK,UAAU,WAAW,CAAjE,CAAmEzvK,EAAE0vK,WAAW1vK,EAAE0vK,SAAS,CAAC,IAAI1vK,EAAE2vK,4BAA4B,SAAS3vK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,8DAA6D,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,8BAA8B74J,EAAE,EAAEA,EAAE4vK,0BAA0B,SAAS5vK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,2DAA0D,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,4BAA4B74J,EAAE,EAAEA,EAAE6vK,kBAAkB,SAAS7vK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,kDAAiD,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,aAAal9E,EAAEo8E,cAAc5sG,SAASwwB,EAAEo8E,cAAcx6H,UAAS,EAAGq1E,EAAE4hD,qBAAqB,4BAA4B74J,EAAE,EAAEA,EAAE8vK,uCAAuC,SAAS9vK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,yEAAwE,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,iDAAiD74J,EAAE,EAAEA,EAAE+vK,mBAAmB,SAAS/vK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,oDAAmD,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAG/lD,EAAE4hD,qBAAqB,6BAA6B74J,EAAE,EAAEA,EAAEgwK,0BAA0B,SAAShwK,EAAE82G,EAAEI,GAAG,IAAIl3G,EAAE,MAAM,IAAI21B,MAAM,2DAA0D,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAG/lD,EAAE4hD,qBAAqB,oCAAoC,CAAC/hD,EAAEI,GAAGl3G,EAAE,EAAEA,EAAEiwK,yBAAyB,SAASjwK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,0DAAyD,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAG/lD,EAAE4hD,qBAAqB,mCAAmC74J,EAAE,EAAEA,EAAEkwK,iCAAiC,SAASlwK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,kEAAiE,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAGjmD,EAAEynD,iBAAiB,4BAA4Bx+J,EAAE,EAAEA,EAAEmwK,uBAAuB,SAASnwK,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAM,yDAAwD,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,iCAAiC,CAAC/hD,GAAG92G,EAAE,EAAEA,EAAEowK,sCAAsC,SAASpwK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,yEAAwE,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,gDAAgD74J,EAAE,EAAEA,EAAEqwK,6BAA6B,SAASrwK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,gEAA+D,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,uCAAuC74J,EAAE,EAAEA,EAAEswK,+BAA+B,SAAStwK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,kEAAiE,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGjmD,EAAE4hD,qBAAqB,yCAAyC74J,EAAE,EAAEA,EAAEuwK,mCAAmC,SAASvwK,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,gEAA+D,EAAGrsB,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,UAAUh9E,EAAEo8E,cAAcc,eAAc,EAAGnmD,EAAEynD,iBAAiB,+BAA+Bx+J,EAAE,CAAC,CAA1pH,CAA4pH82G,EAAE+qD,UAAU/qD,EAAE+qD,QAAQ,CAAC,GAAG,EAAE,SAAS7hK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE8qD,kBAAa,EAAO,IAAI3qD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAgBJ,EAAE8qD,eAAe9qD,EAAE8qD,aAAa,CAAC,IAAI4O,uBAAuB,SAASxwK,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAM,uDAAsD,EAAGohF,EAAEgkD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,UAAS,EAAGq1E,EAAE4hD,qBAAqB,sCAAsC,CAAC/hD,GAAG92G,EAAE,CAAI,EAAE,SAASA,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE6qD,YAAO,EAAO,IAAI1qD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,IAAItuG,EAAEsuG,EAAE,GAAGL,EAAEK,EAAE,IAAgBJ,EAAE6qD,SAAS7qD,EAAE6qD,OAAO,CAAC,IAAI8O,aAAa,SAASzwK,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAM,4CAA2C,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcx6H,QAAQm1E,EAAEqlD,cAAcW,KAAKhmD,EAAEqlD,cAAc5sG,WAAU,EAAGynD,EAAE6jD,0BAA0BjkD,EAAE6oD,8BAA6B,EAAG1/E,EAAE+qF,2BAA2Bj0D,IAAG,EAAGluG,EAAEiwJ,qBAAqB,sBAAsB,CAAC/hD,GAAG92G,GAAGA,EAAE,CAACy7J,UAAUnyJ,EAAEoyJ,UAAUoF,mBAAmB,MAAM9gK,EAAE,CAACy7J,UAAUnyJ,EAAEoyJ,UAAUC,mBAAc,EAAO,CAAI,EAAE,SAAS37J,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEroG,WAAM,EAAO,IAAIsoG,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,IAAI,SAASl3G,GAAG,SAASk3G,KAAI,EAAGH,EAAE8hD,qBAAqB,4BAA4B,CAAC,SAAS5hD,EAAEj3G,IAAG,EAAG+2G,EAAE8hD,qBAAqB,oBAAoB,CAAC74J,GAAG,EAAE,SAASA,GAAGA,EAAEA,EAAE0wK,KAAK,GAAG,MAAM,CAA9B,CAAgC1wK,EAAE2wK,mBAAmB3wK,EAAE2wK,iBAAiB,CAAC,IAAI,SAAS3wK,GAAGA,EAAEA,EAAE4wK,cAAc,GAAG,gBAAgB5wK,EAAEA,EAAE6wK,eAAe,GAAG,gBAAgB,CAAvF,CAAyF7wK,EAAE8wK,mBAAmB9wK,EAAE8wK,iBAAiB,CAAC,IAAI9wK,EAAE+wK,sBAAsB,SAASj6D,EAAE92G,IAAG,EAAGsJ,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAGp0J,EAAE41J,iBAAiB,uBAAsB,SAASx+J,QAAG,IAASA,GAAG82G,EAAE92G,EAAEk3G,EAAED,EAAE,KAAG,EAAGF,EAAE8hD,qBAAqB,8BAA8B,CAAC74J,GAAG,EAAEA,EAAEgxK,iCAAiC,SAAShxK,EAAE82G,IAAG,EAAGxtG,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAGjmD,EAAE8hD,qBAAqB,2BAA2B,CAAC74J,EAAE82G,GAAG,EAAE92G,EAAEixK,uBAAuB,SAASjxK,IAAG,EAAGsJ,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcY,YAAW,EAAGp0J,EAAE41J,iBAAiB,8BAA8Bx+J,EAAE,CAAC,CAA33B,CAA63B82G,EAAEroG,QAAQqoG,EAAEroG,MAAM,CAAC,GAAG,EAAE,SAASzO,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE4qD,aAAQ,EAAO,IAAI1hF,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,GAAGL,EAAEK,EAAE,GAAGC,EAAED,EAAE,IAAI,SAASA,GAAwwBA,EAAEg6D,mBAAmB,CAACC,gBAAgB,2BAA2Bj6D,EAAEi6D,gBAAgB,SAASnxK,EAAE82G,IAAn2B,SAAW92G,EAAE82G,GAAG,GAAG92G,GAAGA,EAAE4hC,SAAS5hC,EAAE4hC,QAAQ7hC,OAAO,OAAO,EAAE+2G,GAAGA,EAAE,CAAC2kD,UAAU5kD,EAAE6kD,UAAUoF,kBAAkBr/E,QAAQ,6BAA6B,EAAwtBw1B,CAAEj3G,EAAE82G,IAA3tB,SAAWA,EAAE92G,GAAG,GAAG82G,EAAEl1E,QAAQ0B,MAAK,SAAStjC,GAAG,OAAOA,EAAEsd,IAAI,IAAGtd,GAAGA,EAAE,CAACy7J,UAAU5kD,EAAE6kD,UAAUoF,kBAAkBr/E,QAAQ,gDAAgD,CAAC,IAAIq1B,EAAEl1E,QAAQ0B,MAAK,SAAStjC,GAAG,OAAOA,EAAEsd,OAAOw5F,EAAEl1E,QAAQ,GAAGtkB,IAAI,IAAG,OAAO,EAAEtd,GAAGA,EAAE,CAACy7J,UAAU5kD,EAAE6kD,UAAUoF,kBAAkBr/E,QAAQ,2CAA2C,CAAC,CAA4Ys1B,CAAE/2G,EAAE82G,IAA/Y,SAAW92G,EAAE82G,GAAG,GAAG,QAAQ92G,EAAE4hC,QAAQ,GAAGtkB,KAAK,CAAC,IAAItd,EAAE4hC,QAAQ0B,MAAK,SAAStjC,GAAG,OAAOA,EAAE+4D,GAAG,IAAG,OAAO,EAAE+9C,GAAGA,EAAE,CAAC2kD,UAAU5kD,EAAE6kD,UAAUoF,kBAAkBr/E,QAAQ,2CAA2C,MAAMq1B,GAAGA,EAAE,CAAC2kD,UAAU5kD,EAAE6kD,UAAUoF,kBAAkBr/E,QAAQ,+BAA+B,CAAkHn4E,CAAEtJ,EAAE82G,MAAK,EAAG92B,EAAE+6E,mBAAmB5jD,EAAEilD,cAAcx6H,QAAQu1E,EAAEilD,cAAcY,UAAU7lD,EAAEilD,cAAcW,KAAK5lD,EAAEilD,cAAca,MAAM9lD,EAAEilD,cAAcc,eAAc,EAAGt0J,EAAEiwJ,qBAAqB3hD,EAAEg6D,mBAAmBC,gBAAgB,CAACnxK,GAAG82G,GAAG,CAAC,CAArmC,CAAumCA,EAAE4qD,UAAU5qD,EAAE4qD,QAAQ,CAAC,GAAG,EAAE,SAAS1hK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE2qD,eAAU,EAAO,IAAIxqD,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAgBJ,EAAE2qD,YAAY3qD,EAAE2qD,UAAU,CAAC,IAAI5yF,KAAK,SAAS7uE,EAAE82G,GAAG,IAAG,EAAGC,EAAEgkD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,UAAU5hC,EAAE,MAAM,IAAI21B,MAAM,sDAAqD,EAAGshF,EAAE4hD,qBAAqB,iBAAiB,CAAC74J,GAAG82G,EAAE,CAAI,EAAE,SAAS92G,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE21D,iBAAiB31D,EAAE41D,kBAAkB51D,EAAE61D,uBAAkB,EAAO,SAAS3sK,GAAGA,EAAEoxK,kBAAkB,oBAAoBpxK,EAAEqxK,qBAAqB,sBAAsB,CAAjG,CAAmGv6D,EAAE61D,oBAAoB71D,EAAE61D,kBAAkB,CAAC,IAAI,SAAS3sK,GAAGA,EAAEgjJ,KAAK,OAAOhjJ,EAAEsxK,KAAK,OAAOtxK,EAAEuxK,QAAQ,SAAS,CAA3D,CAA6Dz6D,EAAE41D,oBAAoB51D,EAAE41D,kBAAkB,CAAC,IAAI,SAAS1sK,GAAGA,EAAEymK,mBAAmB,qBAAqBzmK,EAAEiT,MAAM,OAAO,CAArE,CAAuE6jG,EAAE21D,mBAAmB31D,EAAE21D,iBAAiB,CAAC,GAAG,EAAE,SAASzsK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAE01D,mBAAc,EAAO,IAAIv1D,EAAEC,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,IAAI,SAASl3G,GAAGA,EAAEwxK,iBAAiB,SAASz6D,IAAG,EAAGE,EAAE8jD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,UAAS,EAAGo+C,EAAE64E,qBAAqB,iCAAiC,CAAC,CAAC/yI,MAAMixF,EAAEjxF,MAAMygJ,YAAYxvD,EAAEwvD,YAAYG,eAAe3vD,EAAE2vD,eAAe+K,UAAU16D,EAAE06D,UAAUxL,SAASlvD,EAAEkvD,YAAW,SAASjmK,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAMmhF,EAAE,IAAGC,EAAE26D,sBAAqB,EAAG9oK,EAAE41J,iBAAiB,qBAAoB,SAASx+J,EAAE82G,EAAEI,EAAED,GAAG,OAAOF,EAAE26D,oBAAoB,CAACnL,YAAYvmK,EAAE0mK,eAAe5vD,EAAE26D,UAAUv6D,EAAE+uD,SAAShvD,GAAG,IAAGF,EAAE46D,sBAAqB,EAAG/oK,EAAE41J,iBAAiB,qBAAoB,SAASx+J,EAAE82G,EAAEI,EAAED,GAAG,OAAOF,EAAE46D,oBAAoB,CAACpL,YAAYvmK,EAAE0mK,eAAe5vD,EAAE26D,UAAUv6D,EAAE+uD,SAAShvD,GAAG,GAAE,EAAEj3G,EAAE4xK,kBAAkB,YAAW,EAAG36D,EAAE8jD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,UAAS,EAAGo+C,EAAE64E,qBAAqB,oCAAmC,EAAGjwJ,EAAE21J,eAAe,sBAAqB,EAAG31J,EAAE21J,eAAe,oBAAoB,CAAC,CAA52B,CAA82BznD,EAAE01D,gBAAgB11D,EAAE01D,cAAc,CAAC,GAAG,EAAE,SAASxsK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEy1D,iBAAY,EAAO,IAAIt1D,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAE6xK,WAAW,aAAa7xK,EAAE8xK,aAAa,eAAe9xK,EAAE+xK,eAAe,iBAAiB/xK,EAAEgyK,OAAO,SAAShyK,EAAEiyK,iBAAiB,mBAAmBjyK,EAAEkyK,YAAY,cAAclyK,EAAEmyK,2BAA2B,6BAA6BnyK,EAAEoyK,iBAAiB,mBAAmBpyK,EAAEqyK,aAAa,eAAeryK,EAAEsyK,aAAa,cAAc,CAArV,CAAuVtyK,EAAEuyK,aAAavyK,EAAEuyK,WAAW,CAAC,IAAIvyK,EAAEwyK,yBAAyB,SAASxyK,IAAG,EAAGi3G,EAAE8jD,sBAAqB,EAAGhkD,EAAE8hD,qBAAqB,uCAAuC74J,EAAE,EAAEA,EAAEyyK,+BAA+B,SAASzyK,EAAE82G,GAAG,IAAI92G,GAAG,GAAGA,EAAED,OAAO,MAAM,IAAI41B,MAAM,qFAAqF,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,yEAAwE,EAAGshF,EAAE8jD,sBAAqB,EAAGhkD,EAAE8hD,qBAAqB,6CAA6C,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAE0yK,6CAA6C,SAAS57D,GAAG,IAAIA,EAAE,MAAM,IAAInhF,MAAM,sFAAqF,EAAGshF,EAAE8jD,sBAAqB,EAAGzxJ,EAAEk1J,iBAAiB,6CAA4C,SAASx+J,IAAG,EAAGi3G,EAAE8jD,qBAAqBjkD,EAAE92G,EAAE,GAAE,EAAEA,EAAE2yK,uCAAuC,SAAS77D,GAAG,IAAIA,EAAE,MAAM,IAAInhF,MAAM,gFAA+E,EAAGshF,EAAE8jD,sBAAqB,EAAGzxJ,EAAEk1J,iBAAiB,uCAAsC,SAASx+J,IAAG,EAAGi3G,EAAE8jD,qBAAqBjkD,EAAE92G,EAAE,GAAE,CAAC,CAAt8C,CAAw8C82G,EAAEy1D,cAAcz1D,EAAEy1D,YAAY,CAAC,GAAG,EAAE,SAASvsK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEw1D,kBAAa,EAAO,IAAIr1D,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAE4yK,MAAM,QAAQ5yK,EAAE6yK,OAAO,SAAS7yK,EAAE8yK,QAAQ,UAAU9yK,EAAE+yK,QAAQ,UAAU/yK,EAAEgzK,SAAS,WAAWhzK,EAAEizK,OAAO,SAASjzK,EAAEkzK,SAAS,UAAU,CAAnJ,CAAqJlzK,EAAEmzK,iBAAiBnzK,EAAEmzK,eAAe,CAAC,IAAI,SAASnzK,GAAGA,EAAEA,EAAEozK,kBAAkB,GAAG,oBAAoBpzK,EAAEA,EAAEqzK,mBAAmB,GAAG,qBAAqBrzK,EAAEA,EAAEszK,oBAAoB,GAAG,sBAAsBtzK,EAAEA,EAAEuzK,oBAAoB,GAAG,sBAAsBvzK,EAAEA,EAAEwzK,qBAAqB,GAAG,uBAAuBxzK,EAAEA,EAAEyzK,mBAAmB,GAAG,qBAAqBzzK,EAAEA,EAAE0zK,qBAAqB,GAAG,uBAAuB1zK,EAAEA,EAAE2zK,cAAc,GAAG,eAAe,CAAnY,CAAqY3zK,EAAE4zK,cAAc5zK,EAAE4zK,YAAY,CAAC,IAAI,SAAS5zK,GAAGA,EAAEA,EAAEy3J,KAAK,GAAG,OAAOz3J,EAAEA,EAAE6zK,cAAc,GAAG,gBAAgB7zK,EAAEA,EAAE8zK,kBAAkB,GAAG,oBAAoB9zK,EAAEA,EAAE+zK,YAAY,GAAG,cAAc/zK,EAAEA,EAAEg0K,WAAW,GAAG,aAAah0K,EAAEA,EAAEi0K,kBAAkB,GAAG,oBAAoBj0K,EAAEA,EAAEk0K,qBAAqB,GAAG,uBAAuBl0K,EAAEA,EAAEm0K,iBAAiB,GAAG,mBAAmBn0K,EAAEA,EAAEo0K,oBAAoB,GAAG,sBAAsBp0K,EAAEA,EAAEq0K,gBAAgB,GAAG,kBAAkBr0K,EAAEA,EAAEs0K,wCAAwC,IAAI,yCAAyC,CAA/e,CAAift0K,EAAEu0K,0BAA0Bv0K,EAAEu0K,wBAAwB,CAAC,IAAIv0K,EAAEw0K,uBAAuB,SAASx0K,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,kEAAiE,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAG1zJ,EAAEuvJ,qBAAqB,sCAAsC74J,EAAE,EAAEA,EAAEy0K,eAAe,SAASz0K,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAM,4DAA4D,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,0DAAyD,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAG1zJ,EAAEuvJ,qBAAqB,8BAA8B,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAE00K,mBAAmB,SAAS10K,EAAE82G,GAAG,IAAI92G,EAAE,MAAM,IAAI21B,MAAM,mEAAmE,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,8DAA6D,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAG1zJ,EAAEuvJ,qBAAqB,kCAAkC,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAE20K,iBAAiB,SAAS30K,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,4DAA2D,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAG1zJ,EAAEuvJ,qBAAqB,gCAAgC74J,EAAE,EAAEA,EAAE40K,2CAA2C,SAAS50K,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,qFAAoF,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAGh9E,EAAEw+E,iBAAiB,yCAAyCx+J,EAAE,EAAEA,EAAE60K,uBAAuB,SAAS70K,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,iEAAgE,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAGh9E,EAAEw+E,iBAAiB,4BAA4Bx+J,EAAE,EAAEA,EAAE80K,mCAAmC,SAAS90K,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,6EAA4E,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAGh9E,EAAEw+E,iBAAiB,iCAAiCx+J,EAAE,EAAEA,EAAE+0K,qCAAqC,SAAS/0K,GAAG,IAAIA,EAAE,MAAM,IAAI21B,MAAM,+EAA8E,EAAGshF,EAAE8jD,mBAAmBhkD,EAAEqlD,cAAcY,YAAW,EAAGh9E,EAAEw+E,iBAAiB,mCAAmCx+J,EAAE,CAAC,CAAhvG,CAAkvG82G,EAAEw1D,eAAex1D,EAAEw1D,aAAa,CAAC,GAAG,EAAE,SAAStsK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEu1D,WAAM,EAAO,IAAIrsF,EAAEk3B,EAAE,GAAGtuG,EAAEsuG,EAAE,GAAGL,EAAEK,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAEg1K,QAAQ,UAAUh1K,EAAEi1K,IAAI,MAAMj1K,EAAEk1K,UAAU,YAAYl1K,EAAEm1K,YAAY,cAAcn1K,EAAEo1K,OAAO,SAASp1K,EAAEq1K,WAAW,YAAY,CAA3I,CAA6Ir1K,EAAEs1K,uBAAuBt1K,EAAEs1K,qBAAqB,CAAC,IAAI,SAASt1K,GAAGA,EAAEA,EAAEu1K,WAAW,GAAG,aAAav1K,EAAEA,EAAEw1K,gBAAgB,GAAG,kBAAkBx1K,EAAEA,EAAEy1K,OAAO,GAAG,SAASz1K,EAAEA,EAAE01K,SAAS,GAAG,WAAW11K,EAAEA,EAAE21K,OAAO,GAAG,SAAS31K,EAAEA,EAAE41K,UAAU,GAAG,YAAY51K,EAAEA,EAAE61K,WAAW,GAAG,aAAa71K,EAAEA,EAAE81K,OAAO,GAAG,SAAS91K,EAAEA,EAAE+1K,SAAS,GAAG,WAAW/1K,EAAEA,EAAEg2K,aAAa,GAAG,cAAc,CAA7S,CAA+Sh2K,EAAEi2K,2BAA2Bj2K,EAAEi2K,yBAAyB,CAAC,KAAgBj2K,EAAEk2K,6BAA6Bl2K,EAAEk2K,2BAA2B,CAAC,IAAIC,eAAe,kBAAgCn2K,EAAEo2K,4BAA4Bp2K,EAAEo2K,0BAA0B,CAAC,IAAIC,SAAS,WAAc,SAASr2K,GAAGA,EAAEs2K,WAAW,aAAat2K,EAAEu2K,YAAY,cAAcv2K,EAAEw2K,OAAO,QAAQ,CAAnF,CAAqFx2K,EAAEy2K,qBAAqBz2K,EAAEy2K,mBAAmB,CAAC,IAAIz2K,EAAE02K,uBAAuB,SAAS12K,EAAE82G,GAAG,IAAG,EAAGluG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,GAAG,IAAIA,EAAED,OAAO,MAAM,IAAI41B,MAAM,yEAAyE,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,2DAA0D,EAAGqqD,EAAE64E,qBAAqB,+BAA+B,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAE22K,sBAAsB,SAAS32K,EAAE82G,GAAG,IAAG,EAAGluG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,GAAG,IAAIA,EAAED,OAAO,MAAM,IAAI41B,MAAM,wEAAwE,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,0DAAyD,EAAGqqD,EAAE64E,qBAAqB,8BAA8B,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAE42K,yBAAyB,SAAS52K,EAAE82G,EAAEI,GAAG,IAAG,EAAGtuG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,EAAE,MAAM,IAAI21B,MAAM,2EAA2E,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,2EAA2E,IAAIuhF,EAAE,MAAM,IAAIvhF,MAAM,6DAA4D,EAAGqqD,EAAE64E,qBAAqB,iCAAiC,CAAC74J,EAAE82G,GAAGI,EAAE,EAAEl3G,EAAE62K,8BAA8B,SAAS72K,EAAE82G,EAAEI,GAAG,IAAG,EAAGtuG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,IAAI82G,EAAE,MAAM,IAAInhF,MAAM,0FAA0F,IAAIuhF,EAAE,MAAM,IAAIvhF,MAAM,iEAAiE,GAAG,mBAAmB31B,IAAIA,EAAE82K,eAAe,MAAM,IAAInhJ,MAAM,gFAA+E,EAAGqqD,EAAE64E,qBAAqB,sCAAsC,CAAC74J,EAAE82G,GAAGI,EAAE,EAAEl3G,EAAE+2K,qBAAqB,SAAS/2K,EAAE82G,EAAEI,GAAG,IAAG,EAAGtuG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,IAAI82G,EAAE,MAAM,IAAInhF,MAAM,0EAA0E,GAAG31B,EAAE82K,eAAe,MAAM,IAAInhJ,MAAM,iEAAgE,EAAGqqD,EAAE64E,qBAAqB,6BAA6B,CAAC74J,EAAE82G,EAAEI,GAAG,EAAEl3G,EAAEg3K,qBAAqB,SAASh3K,EAAE82G,GAAG,QAAG,IAAS92G,IAAIA,GAAE,IAAI,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAUk1E,EAAE,MAAM,IAAInhF,MAAM,yDAAwD,EAAGqqD,EAAE64E,qBAAqB,6BAA6B,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAEi3K,cAAc,SAASj3K,EAAE82G,EAAEI,EAAED,EAAEF,EAAEztG,GAAG,QAAG,IAASytG,IAAIA,GAAE,IAAI,EAAGnuG,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,GAAG,IAAIA,EAAED,OAAO,MAAM,IAAI41B,MAAM,+DAA+D,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,8DAA8D,IAAIuhF,EAAE,MAAM,IAAIvhF,MAAM,mEAAmE,IAAIshF,EAAE,MAAM,IAAIthF,MAAM,yEAAyE,IAAIrsB,EAAE,MAAM,IAAIqsB,MAAM,kDAAiD,EAAGqqD,EAAE64E,qBAAqB,sBAAsB,CAAC74J,EAAE82G,EAAEI,EAAED,EAAEF,GAAGztG,EAAE,EAAEtJ,EAAEk3K,iBAAiB,SAASl3K,GAAG,IAAG,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAU5hC,EAAE,MAAM,IAAI21B,MAAM,qDAAoD,EAAGqqD,EAAE64E,qBAAqB,yBAAyB,GAAG74J,EAAE,EAAEA,EAAEm3K,mBAAmB,SAASn3K,EAAE82G,GAAG,QAAG,IAAS92G,IAAIA,OAAE,IAAQ,EAAG4I,EAAEmyJ,mBAAmBlkD,EAAEulD,cAAcx6H,UAAUk1E,EAAE,MAAM,IAAInhF,MAAM,uDAAsD,EAAGqqD,EAAE64E,qBAAqB,2BAA2B,CAAC74J,GAAG82G,EAAE,CAAC,CAA9mI,CAAgnIA,EAAEu1D,QAAQv1D,EAAEu1D,MAAM,CAAC,GAAG,EAAE,SAASrsK,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEs1D,eAAU,EAAO,IAAIr1D,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,GAAGl3B,EAAEk3B,EAAE,IAAgBJ,EAAEs1D,YAAYt1D,EAAEs1D,UAAU,CAAC,IAAIgL,gBAAgB,SAASp3K,EAAE82G,EAAEI,EAAED,GAAG,IAAG,EAAG3tG,EAAEyxJ,mBAAmB/6E,EAAEo8E,cAAcx6H,UAAU5hC,GAAG,GAAGA,EAAED,OAAO,MAAM,IAAI41B,MAAM,qEAAqE,IAAIshF,EAAE,MAAM,IAAIthF,MAAM,wDAAuD,EAAGohF,EAAE8hD,qBAAqB,4BAA4B,CAAC74J,EAAE82G,EAAEI,GAAGD,EAAE,CAAI,EAAE,SAASj3G,EAAE82G,EAAEI,GAAG,aAAax0G,OAAO8X,eAAes8F,EAAE,aAAa,CAAC9wG,OAAM,IAAK8wG,EAAEq1D,WAAM,EAAO,IAAIl1D,EAAEC,EAAE,GAAGH,EAAEG,EAAE,GAAG5tG,EAAE4tG,EAAE,IAAI,SAASl3G,IAAI,SAASA,GAAGA,EAAEA,EAAE89J,QAAQ,GAAG,UAAU99J,EAAEA,EAAE+9J,QAAQ,GAAG,UAAU/9J,EAAEA,EAAEg+J,OAAO,GAAG,QAAQ,CAApF,CAAsFh+J,EAAEg8J,cAAch8J,EAAEg8J,YAAY,CAAC,IAAIh8J,EAAEq3K,gBAAgB,SAASr3K,EAAE82G,GAAG,IAAG,EAAGC,EAAEgkD,mBAAmBzxJ,EAAE8yJ,cAAcx6H,UAAU5hC,EAAE,MAAM,IAAI21B,MAAM,2DAA2D,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,oDAAmD,EAAGshF,EAAE4hD,qBAAqB,wBAAwB,CAAC74J,GAAG82G,EAAE,EAAE92G,EAAEs3K,eAAe,SAASt3K,EAAE82G,GAAG,IAAG,EAAGC,EAAEgkD,sBAAsB/6J,EAAE,MAAM,IAAI21B,MAAM,2DAA2D,IAAImhF,EAAE,MAAM,IAAInhF,MAAM,mDAAkD,EAAGshF,EAAE4hD,qBAAqB,uBAAuB,CAAC74J,GAAG82G,EAAE,CAAC,CAArrB,CAAurBA,EAAEq1D,QAAQr1D,EAAEq1D,MAAM,CAAC,GAAG,ktBCA1r2E,IAAIoL,EAAY,gBACZC,EAAM,EACNC,GAAmB,EAmBhB,SAASC,EAAeC,EAAetsC,GAC1C,IAAIusC,EAAavsC,EAEjB,OADAusC,EAAWh3D,aAAQ5lH,GACZ,IAAKo+J,SAASn7J,UAAUi5B,KAAKl0B,MAAM20K,EAAeC,GAC7D,CAsCO,SAAS,EAASC,EAAWvnE,GAIhC,IAFA,IAAItqG,EAAQsqG,EACRlb,EAASyiF,EAAUhxK,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAAI9C,MAAM,KAC3DuF,EAAI,EAAGA,EAAI8rF,EAAOr1F,SAAW,EAAYiG,GAAQsD,IACtDtD,EAAQA,EAAMovF,EAAOjuF,SAASmC,EAAE0nB,WAAY,MAEhD,OAAOhrB,CACX,CAWO,SAAS4Y,EAASi5J,EAAW7xK,EAAOsqG,GACvC,IAKIhnG,EAEArK,EAPA0D,EAAOk1K,EAAUhxK,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAAI9C,MAAM,KAE9DkoF,EAAQqkB,GAAO,CAAC,EAEhBwnE,EAAU7rF,EAEVlsF,EAAS4C,EAAK5C,OAElB,IAAKuJ,EAAI,EAAGA,EAAIvJ,EAAQuJ,IACpBrK,EAAM0D,EAAKwE,SAASmC,EAAE0nB,WAAY,KAC9B1nB,EAAI,IAAMvJ,EACV+3K,EAAQ,GAAK74K,QAAiBjE,IAAVgL,EAAsB,CAAC,EAAIA,EAE1C,EAAkB8xK,EAAQ,GAAK74K,MACpC64K,EAAQ,GAAK74K,GAAO,CAAC,GAEzB64K,EAAUA,EAAQ,GAAK74K,GAE3B,OAAOgtF,CACX,CAUO,SAAS8rF,EAAaznE,EAAKrxG,UACvBqxG,EAAI,GAAKrxG,EACpB,CAKO,IAAI+4K,EAAoC,oBAAXn8K,OAAyBA,OAAS,CAAC,EAShE,SAAS,EAASy0G,GAErB,OAAS,EAAkBA,IAAQA,EAAIgB,cAD1B,CAAC,EACgDA,WAClE,CAUO,SAAS2mE,EAAaC,EAAYC,GAErC,OAAOD,EAAWC,EACtB,CASO,SAAS,EAAMv2E,EAAQG,GAC1B,IAAK,EAAkBA,GAKnB,IAJA,IAAIq2E,EAAUx2E,EACVy2E,EAAWt2E,EAEXu2E,EAAY,YACP32K,EAAK,EAAGqiH,EAFNthH,OAAOC,KAAKo/F,GAESpgG,EAAKqiH,EAAOjkH,OAAQ4B,IAAM,CACtD,IAAI1C,EAAM+kH,EAAOriH,GACZ,EAAkBy2K,EAAQ,GAAKE,MAA0D,IAA1CF,EAAQ,GAAKE,GAAWx0K,QAAQ7E,KAC/E,EAASo5K,EAAS,GAAKp5K,MAASuD,MAAMC,QAAQ41K,EAAS,GAAKp5K,IAI7Dm5K,EAAQ,GAAKn5K,GAAOo5K,EAAS,GAAKp5K,GAHlC,EAAOm5K,EAAQ,GAAKn5K,GAAMm5K,EAAQ,GAAKn5K,GAAMo5K,EAAS,GAAKp5K,IAAM,EAKzE,CAER,CAWO,SAAS,EAAOs5K,EAAQjoD,EAAO3E,EAAQ6sD,GAC1C,IAAIj+K,EAASg+K,GAA4B,iBAAXA,EAAsBA,EAAS,CAAC,EAC1Dx4K,EAAS6B,UAAU7B,OACnBy4K,IACAz4K,GAAkB,GAwCtB,IAtCA,IAAI8C,EAAU,SAAUyG,GAEpB,IAAKmvK,EAAYnvK,GACb,MAAO,WAGX,IAAIovK,EAAOD,EAAYnvK,GACvB5G,OAAOC,KAAK+1K,GAAMv4K,SAAQ,SAAUlB,GAChC,IAEI05K,EAFAz/G,EAAM3+D,EAAO,GAAK0E,GAClBo7G,EAAOq+D,EAAK,GAAKz5K,GAEjB25K,EAAiBp2K,MAAMC,QAAQ43G,IAAS73G,MAAMC,QAAQy2D,IAASmhD,EAAKt6G,SAAWm5D,EAAIn5D,OAEnF84K,GAAoBC,OAAgB5/G,aAAep0B,OAAW8zI,GAC9DJ,GAAQK,IAAsB,EAASx+D,IAAS73G,MAAMC,QAAQ43G,IAC1D,EAASA,IACTs+D,EAAQz/G,GAAY,CAAC,EAEjB12D,MAAMC,QAAQk2K,IAAUA,EAAMx2K,eAAe,kBAC7C,EAAOw2K,EAAO,CAAC,EAAGt+D,EAAMm+D,GAGxBj+K,EAAO,GAAK0E,GAAO,EAAO05K,EAAO,CAAC,EAAGt+D,EAAMm+D,KAK/CG,EAAQG,IAAa5/G,GAAOx2D,OAAOC,KAAK03G,GAAMt6G,OAASm5D,GAAY,GAEnE3+D,EAAO,GAAK0E,GAAO,EAAO,GAAI05K,EAAOt+D,EAAOs+D,GAASA,EAAM54K,QAAYs6G,GAAQA,EAAKt6G,SAIxFxF,EAAO,GAAK0E,GAAOo7G,CAE3B,GACJ,EACIo+D,EAAc72K,UACT0H,EAAI,EAAGA,EAAIvJ,EAAQuJ,IACxBzG,EAAQyG,GAEZ,OAAO/O,CACX,CAQO,SAAS,EAAkByL,GAC9B,OAAOA,OACX,CAQO,SAAS,EAAYA,GACxB,YAAQ,IAAuBA,CACnC,CAQO,SAAS+yK,EAAYC,GACxB,OAAOA,EAAc,IAAMxB,GAC/B,CASO,SAASh9H,EAASy+H,EAAe1iG,GAEpC,IAAIiuE,EACJ,OAAO,WACH,IAAIhmJ,EAAQjC,KAER2C,EAAO0C,UAKXk2B,aAAa0sH,GACbA,EAAMzsH,YALM,WAER,OADAysH,EAAM,KACCy0B,EAAcj2K,MAAMxE,EAAOU,EACtC,GAEwBq3E,EAC5B,CACJ,CA0CO,SAAS2iG,EAAqBz9J,EAAO0vD,GAExC,OADW1vD,IACE0vD,KADF1vD,IAIOxgB,WAJPwgB,IAQAy9J,EARAz9J,EAQ0B+uD,WAAYW,EAErD,CAQO,SAASguG,EAAW13F,GACvB,IACI,MAAM,IAAI9rD,MAAM8rD,EACpB,CACA,MAAOzhF,GAEH,MAAMA,EAAEyhF,QAAU,KAAOzhF,EAAE04H,KAC/B,CACJ,CASO,SAASmqC,EAAMljK,EAASy5K,GAC3B,IAAIC,EAAMp+K,SAAS6F,cAAc,OAC7Bw4K,EAAQ,GAAG5wK,MAAMuI,KAAKhW,SAASsjJ,qBAAqB,QAAQ,GAAG1rD,iBAAiB,sBAChF0mF,EAAS,GAAG7wK,MAAMuI,KAAKhW,SAASsjJ,qBAAqB,QAAQ,GAAG1rD,iBAAiB,gBACrF,GAAI0mF,EAAOx5K,OACP,IAAK,IAAI82G,EAAI,EAAGhG,EAAM0oE,EAAOx5K,OAAQ82G,EAAIhG,EAAKgG,IAC1CyiE,EAAM76K,KAAK86K,EAAOpyK,SAAS0vG,EAAE7lF,WAAY,MAGjD,IAAIwoJ,EAAY,GACZ,EAAkBJ,KAClBA,EAAcv9K,OAAOgzE,KAAK,GAAI,QAAS,oCAE3CwqG,EAAIp5K,YAAYN,EAAQg5C,WAAU,IAC7B,IAAIrvC,EAAI,EAAb,IAAgBunG,EAAMyoE,EAAMv5K,OAAQuJ,EAAIunG,EAAKvnG,IACzCkwK,GAAaF,EAAMnyK,SAASmC,EAAE0nB,WAAY,KAAKg+G,UAEnDoqC,EAAYn+K,SAASi1J,MAAM,+BAAiCspB,EAAY,gBAAkBH,EAAI/0C,UAAnE,8EAE3B80C,EAAYn+K,SAASqyE,QACrB8rG,EAAYjnK,QAEZ,IAAIsnK,EAAWjrE,aAAY,WACnB4qE,EAAYM,QACZN,EAAYvW,QACZuW,EAAY9rG,QACZ6gC,cAAcsrE,GAEtB,GAAG,KACH,OAAOL,CACX,CAQO,SAASO,EAAW3zK,GACvB,IAAIzL,EAASyL,EAAQ,GACrB,OAAIzL,EAAO0N,MAAM,yDACN1N,EAEJA,EAAS,IACpB,CAgBO,SAASu+K,IACZ,OAAOrB,CACX,CAQO,SAASmC,EAAWj6K,GACvB,IAAIk6K,EAAQ,QACZ,OAAMl6K,aAAmB+gF,OAASo4F,KAAe,EAAkBn5K,EAAQ,GAAKk6K,IAGzEl6K,EAFI1E,SAAS6+K,SAASn6K,EAAQ,GAAKk6K,GAAQ5+K,SAAU,KAAM8+K,YAAYC,wBAAyB,MAAMC,eAGjH,CAUO,SAASv8K,EAAYiC,EAASolD,GAEjC,IAAIwlB,EAA6B,iBAAd,EAA0BtvE,SAASuG,cAAc7B,GAAWA,EAC/E,GAAI4qE,EAAK,GAAKgtG,GACV,IAAK,IAAI51K,EAAK,EAAG7F,EAAKyuE,EAAK,GAAKgtG,GAAY51K,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC9D,IAAIu4K,EAAOp+K,EAAG6F,GACd,GAAIu4K,aAAgBn1H,EAChB,OAAOm1H,CAEf,CAEJ,OAAO,IACX,CCvcA,ICCWC,EDDPC,EAAyB,CACzB,KAAQ,CACJ,QAAW,aACX,MAAS,YAIbC,EAAuB,CACvB,QAAW,IACX,MAAS,IACT,YAAe,IACf,SAAY,IACZ,UAAa,IACb,SAAY,IACZ,IAAO,MACP,YAAe,KAEfC,EAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAM/CC,EAA4B,WAC5B,SAASA,IACT,CA6KA,OArKAA,EAAWC,cAAgB,SAAUlqE,EAAKmqE,GAEtC,OAAO,EADK3B,IAAa2B,EAAQ,QAAUA,EACpBnqE,EAC3B,EAOAiqE,EAAWG,mBAAqB,SAAUpqE,GACtC,OAAO,EAAS,gCAAiCA,IAAQ/zG,KAAKo+K,gBAClE,EAQAJ,EAAWK,cAAgB,SAAU14K,EAAMS,GAGvC,IAFA,IACIizJ,EAAM,CAAC,EACFj0J,EAAK,EAAGk5K,EAFFl4K,GAAQD,OAAOC,KAAKT,GAEKP,EAAKk5K,EAAW96K,OAAQ4B,IAAM,CAClE,IAAI1C,EAAM47K,EAAWl5K,GAEhBi0J,EAAIzzJ,eAAeD,EAAKjD,MAEzB22J,EAAI1zJ,EAAKjD,IAAQA,EAEzB,CACA,OAAO22J,CACX,EAOA2kB,EAAWO,eAAiB,SAAU9pK,GAClC,IAAI+pK,EAAW/pK,EAAM/N,KAAI,SAAUipH,GAC/B,OAAOA,EAAIrlH,QAAQ,4BAA6B,OACpD,IAAGvG,KAAK,KAER,OAAO,IADMsuH,OACKmsD,EAAU,IAChC,EAMAR,EAAWS,eAAiB,SAAU94K,GAGlC,IAFA,IACI+4K,EAAM,CAAC,EACFt5K,EAAK,EAAGu5K,EAFDx4K,OAAOC,KAAK03K,GAEc14K,EAAKu5K,EAAYn7K,OAAQ4B,IAAM,CACrE,IAAI1C,EAAMi8K,EAAYv5K,GAEtBs5K,EAAI/4K,EAAKjD,IAAQo7K,EAAqBp7K,EAC1C,CACA,OAAOg8K,CACX,EAOAV,EAAWY,eAAiB,SAAU34D,GAGlC,IAFA,IAAI3R,EAAM2R,EAAIziH,OACVk7K,EAAM,GACD3xK,EAAI,EAAGA,EAAIunG,EAAKvnG,IAEjB2xK,GADA3xK,IAAMunG,EAAM,EACL2R,EAAIr7G,SAASmC,EAAE0nB,WAAY,KAAO,IAGlCwxF,EAAIr7G,SAASmC,EAAE0nB,WAAY,KAG1C,OAAOiqJ,CACX,EASAV,EAAWa,kBAAoB,SAAUp1K,EAAOq1K,EAAO/qE,GACnD,OAAOtqG,EAAMa,QAAQw0K,GAAO,SAAUnvD,GAElC,OAAO5b,EAAI4b,EACf,GACJ,EAOAquD,EAAWe,0BAA4B,SAAUhrE,GAC7C,IAAI2qE,EAAM,CAAC,EAGX,OAFAA,EAAI3qE,IAAM,EAAS,UAAWA,GAC9B2qE,EAAIM,QAAU,EAAS,yBAA0BN,EAAI3qE,KAC9C2qE,CACX,EAUAV,EAAWiB,yBAA2B,SAAUC,EAAQC,EAAcC,EAAaC,GAC/E,IAAIX,EAAM,CAAC,EACPY,EAAMt/K,KAAK++K,0BAA0BG,GACzC,IAAK,EAAYI,EAAIN,UAAYK,EAAY,CACzC,IAAIE,EAASF,EAAa,EAAS,mBAAoBC,GAAO,EAASA,EAAIN,QAAU,WAAYG,GACjG,IAAK,EAAYI,GAAS,CACtBb,EAAIc,YAAcx/K,KAAKq+K,cAAckB,EAAQxB,GAC7C,IAAI0B,EAASptD,OACbqsD,EAAIgB,iBAAmB,IAAID,EAAOz/K,KAAK4+K,eAAeW,GAAS,KAC/Db,EAAIiB,aAAe,IAAMJ,EAAO,GAAK,IAAMA,EAAO,GAAK,IACnDH,IACAV,EAAIiB,aAAeJ,EAAO,GAAK,IAAMA,EAAO,GAC5Cb,EAAIkB,mBAAqB,EAASP,EAAa,gBAAkB,wBAA0BC,EAAIN,QAASM,EAAIvrE,KAC5G2qE,EAAImB,YAAc7/K,KAAKy+K,eAAeC,EAAIkB,oBAC1ClB,EAAIS,aAAeG,EAAIN,QAE/B,CACJ,CACA,OAAON,CACX,EAUAV,EAAW8B,gBAAkB,SAAUZ,EAAQC,EAAcY,GACzD,IAAIrB,EAAM,CAAEsB,OAAQ,CAAC,GACjBV,EAAMt/K,KAAK++K,0BAA0BG,GACzC,IAAK,EAAYI,EAAIN,SAAU,CAC3BN,EAAIS,aAAeG,EAAIN,QACvBN,EAAIuB,cAAgB,EAAS,wBAA0BX,EAAIN,QAASM,EAAIvrE,KACxE2qE,EAAIwB,cAAgB,EAAS,gBAAiBxB,EAAIuB,eAClD,IAAIV,EAAS,EAASD,EAAIN,QAAU,WAAYG,GAChD,IAAK,EAAYI,GACb,IAAK,IAAIn6K,EAAK,EAAG+6K,EAAqBpC,EAAkB34K,EAAK+6K,EAAmB38K,OAAQ4B,IAAM,CAC1F,IAAI2H,EAAIozK,EAAmB/6K,GAE3Bs5K,EAAIsB,OAAOjzK,GAAKwyK,EAAOxyK,EAC3B,CAER,CACA,OAAO2xK,CACX,EACAV,EAAWoC,MAAQ,cACnBpC,EAAWqC,OAAS,eACpBrC,EAAWI,iBAAmBP,EACvBG,CACX,CAhL+B,GAqL3BsC,EAAqB,CACrB,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,MACP,IAAO,MACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,KACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,OACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,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,IACP,IAAO,IACP,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,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,MACP,IAAO,OACP,IAAO,OACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,QCpWX,SAAW1C,GACP,IAAI2C,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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V,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IAC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OAAOjzK,GAAKwyK,EAAOxyK,EAC3B,CAER,CACA,OAAO2xK,CACX,EACAV,EAAWoC,MAAQ,cACnBpC,EAAWqC,OAAS,eACpBrC,EAAWI,iBAAmBP,EACvBG,CACX,CAhL+B,GAqL3BsC,EAAqB,CACrB,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,MACP,IAAO,MACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,IACP,IAAO,QACP,IAAO,QACP,IAAO,KACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,OACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,OACP,IAAO,IACP,IAAO,IACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,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,IACP,IAAO,IACP,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,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,MACP,IAAO,OACP,IAAO,OACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,QCpWX,SAAW1C,GACP,IAAI2C,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,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AOzC,GAAwByC,GAAkC,IAA5BH,EAAU16M,QAAQ66M,GAAc9mC,EAAW2mC,GAAa,QAM/FG,EAFAA,EAAI12M,MAAM0zM,IAEJ,KAAOO,GADbyC,EAAMxC,GAAawC,IACoD,IAA5BH,EAAU16M,QAAQ66M,GAAc9mC,EAAW2mC,GAAa,OAIrF,KAARG,EAAa,KAAO5C,GAAa4C,EAAI93M,QAAQ,MAAO,WAAqD,IAA5B23M,EAAU16M,QAAQ66M,GAAc9mC,EAAW2mC,EAAWvC,GAAgB,KAAO,IAGxK,OAAO0C,CACX,GACJ,CAzHwBS,CAAQnB,EAAUI,EAASpN,EAAQgL,GAKvD,OADS,IAAI7iD,SAASilD,EADT,YAAeC,EAAf,s2CAEHpnL,KAAK+5K,EACnB,CCsFe,CAAO4L,EAAgB5L,EAClC,EACOmN,CACX,CAT2B,KAUapB,QAVxC,IChJIqC,GAAa,CACb,SACA,QACA,cACA,4BACA,kCACA,wCACA,oCACA,uBACA,0BACA,0BACA,2CAEAC,GAAc,CACd,CAAEt/F,UAAW,OAAQr4G,SAAU,yBAC/B,CAAEq4G,UAAW,aAAcr4G,SAAU,+BACrC,CAAEq4G,UAAW,QAASr4G,SAAU,0BAChC,CAAEq4G,UAAW,QAASr4G,SAAU,0BAChC,CAAEq4G,UAAW,OAAQr4G,SAAU,qCAE/B43M,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,S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AS,IACVu4G,EAAS35S,UAAW,2BAAuB,GAC9CohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,yBAAqB,GAC5CohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,qBAAiB,GACxCohM,EAAW,EACP,QAAS,SACVu4G,EAAS35S,UAAW,gBAAY,GACnCohM,EAAW,EACP,QAAQ,CAAC,EAAGo4G,KACbG,EAAS35S,UAAW,cAAU,GACjCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,qBAAiB,GACxCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,oBAAgB,GACvCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,cAAU,GACjCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,oBAAgB,GACvCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,qBAAiB,GACxCohM,EAAW,EACP,QAAS,SACVu4G,EAAS35S,UAAW,iBAAa,GACpCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,oBAAgB,GACvCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,iBAAa,GACpCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,wBAAoB,GAC3CohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,qBAAiB,GACxCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,eAAW,GAClCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,iBAAa,GACpCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,yBAAqB,GAC5CohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,gBAAY,GACnCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,iBAAa,GACpCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,gBAAY,GACnCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,mBAAe,GACtCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,oBAAgB,GACvCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,mBAAe,GACtCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,qBAAiB,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AAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,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,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO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CA,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,CACHv2M,UAAW,CACPw2M,KAAML,GACNj6E,WAAYk6E,IAGxB,EACAE,EAAmBG,SAAW,SAAU35M,GACpC,IAAIqgB,EAAO9pB,KAAKkjN,iBAEhB,OADaljN,KAAKqjN,eAAev5L,EAAMrgB,EAE3C,EACAw5M,EAAmBI,eAAiB,SAAUv5L,EAAMrgB,GAChDzJ,KAAK+iN,YAAcj5L,EAAKnd,UAAUk8H,WAClC7oI,KAAK8iN,WAAah5L,EAAKnd,UAAUw2M,KACjCnjN,KAAKsjN,YAAc5kN,SAAS6F,cAAc,OAC1CvE,KAAKsjN,YAAYv7E,UAAYt+H,EAC7BzJ,KAAKujN,gBACLvjN,KAAKwjN,iBACLxjN,KAAKyjN,iBACL,IAAIC,EAAe1jN,KAAKsjN,YAAYv7E,UAEpC,OADA/nI,KAAK2jN,gBACED,EAAap5M,QAAQ,QAAS,IACzC,EACA24M,EAAmBU,cAAgB,WAG/B,IADA,IAAIC,EAAQ5jN,KAAKsjN,YAAYjmM,SACpB+8F,EAAI,EAAGA,EAAIwpG,EAAMpgN,OAAQ42G,IAE9B,IADA,IAAIqJ,EAAYmgG,EAAMh5M,SAASwvG,EAAE3lF,WAAY,KAAKo0G,WACzC97H,EAAI,EAAGA,EAAI02G,EAAUjgH,OAAQuJ,IAClC/M,KAAKsjN,YAAYjmM,SAASzS,SAASwvG,E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ACP,IAAO,IACP,IAAO,IACP,IAAO,QACP,IAAO,QACP,IAAO,QACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,KACP,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,IACP,IAAO,IACP,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,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,MACP,IAAO,OACP,IAAO,OACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,QCpWX,SAAWJ,GACP,IAAI2C,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,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AAW,4BAnEd,WAqEGnL,KAAKijN,IAEnBA,EAAI12M,MAAM,MACV02M,EAAM,GAAaA,IAEvBA,EAAM,KAAO,GAAwBA,GAAkC,IAA5BH,EAAU16M,QAAQ66M,GAAc9mC,EAAW2mC,GAAa,QAM/FG,EAFAA,EAAI12M,MAAM,IAEJ,KAAO,GADb02M,EAAM,GAAaA,IACoD,IAA5BH,EAAU16M,QAAQ66M,GAAc9mC,EAAW2mC,GAAa,OAIrF,KAARG,EAAa,KAAO,GAAaA,EAAI93M,QAAQ,MAAO,WAAqD,IAA5B23M,EAAU16M,QAAQ66M,GAAc9mC,EAAW2mC,EAAWvC,GAAgB,KAAO,IAGxK,OAAO0C,CACX,GACJ,CAzHwB,CAAQV,EAAUI,EAASpN,EAAQgL,GAKvD,OADS,IAAI7iD,SAASilD,EADT,YAAeC,EAAf,s2CAEHpnL,KAAK+5K,EACnB,CCsFe,CAAO4L,EAAgB5L,EAClC,EACOmN,CACX,CAT2B,GChJvB,KD0JuB,IAAI,IAASpB,QC1JvB,CACb,SACA,QACA,cACA,4BACA,kCACA,wCACA,oCACA,uBACA,0BACA,0BACA,4CAEA,GAAc,CACd,CAAEh9F,UAAW,OAAQr4G,SAAU,yBAC/B,CAAEq4G,UAAW,aAAcr4G,SAAU,+BACrC,CAAEq4G,UAAW,QAASr4G,SAAU,0BAChC,CAAEq4G,UAAW,QAASr4G,SAAU,0BAChC,CAAEq4G,UAAW,OAAQr4G,SAAU,qCAE/B,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,YA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IACV6na,EAAS7na,UAAW,wBAAoB,GAC3C,GAAW,EACP,QAAS,CAAC,IACX6na,EAAS7na,UAAW,sBAAkB,GACzC,GAAW,EACP,QAAS,KACV6na,EAAS7na,UAAW,gBAAY,GACnC,GAAW,EACP,SAAS,IACV6na,EAAS7na,UAAW,eAAW,GAClC,GAAW,EACP,QAAS,OACV6na,EAAS7na,UAAW,gBAAY,GACnC,GAAW,EACP,SAAS,IACV6na,EAAS7na,UAAW,gBAAY,GACnC,GAAW,EACP,SAAS,IACV6na,EAAS7na,UAAW,kBAAc,GACrC,GAAW,EACP,SAAS,IACV6na,EAAS7na,UAAW,2BAAuB,GAC9C,GAAW,EACP,QAAQ,CAAC,EAAGywsB,KACb5oS,EAAS7na,UAAW,eAAW,GAClC,GAAW,EACP,QAAS,KACV6na,EAAS7na,UAAW,yBAAqB,GAC5C,GAAW,EACP,QAAS,IACV6na,EAAS7na,UAAW,mBAAe,GACtC,GAAW,EACP,QAAS,MACV6na,EAAS7na,UAAW,mBAAe,GACtC,GAAW,EACP,QAAS,OACV6na,EAAS7na,UAAW,gBAAY,GACnC,GAAW,EACP,QAAW,CAAC,CAAC,GAAIwwsB,KAClB3oS,EAAS7na,UAAW,aAAS,GAChC,GAAW,EACP,SAAS,IACV6na,EAAS7na,UAAW,oBAAgB,GACvC,GAAW,EACP,SAAS,IACV6na,EAAS7na,UAAW,uBAAmB,GAC1C,GAAW,EACP,QAAS,YACV6na,EAAS7na,UAAW,kBAAc,GACrC,GAAW,EACP,WACD6na,EAAS7na,UAAW,eAAW,GAClC,GAAW,EACP,WACD6na,EAAS7na,UAAW,sBAAkB,GACzC,GAAW,EACP,WACD6na,EAAS7na,UAAW,iBAAa,GACpC,GAAW,EACP,WACD6na,EAAS7na,UAAW,oBAAgB,GACvC,GAAW,EACP,WACD6na,EAAS7na,UAAW,yBAAqB,GAC5C,GAAW,EACP,WACD6na,EAAS7na,UAAW,gBAAY,GACnC,GAAW,EACP,WACD6na,EAAS7na,UAAW,iBAAa,GACpC,GAAW,EACP,WACD6na,EAAS7na,UAAW,eAAW,GAClC,GAAW,EACP,WA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AAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5K,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACtK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACtK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5K,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACtK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5K,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MACtK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAGnKD,EAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IA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MAAO,qBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,YACN,CACDxzP,KAAM,IACNwzP,MAAO,oBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,8CACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,aACN,CACDxzP,KAAM,IACNwzP,MAAO,SACN,CACDxzP,KAAM,IACNwzP,MAAO,oBACN,CACDxzP,KAAM,IACNwzP,MAAO,oBACN,CACDxzP,KAAM,IACNwzP,MAAO,kBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,qCACN,CACDxzP,KAAM,IACNwzP,MAAO,WACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,aACN,CACDxzP,KAAM,IACNwzP,MAAO,QACN,CACDxzP,KAAM,IACNwzP,MAAO,kBACN,CACDxzP,KAAM,IACNwzP,MAAO,iBACN,CACDxzP,KAAM,IACNwzP,MAAO,uCACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,OACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,MACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,aACN,CACDxzP,KAAM,IACNwzP,MAAO,gBACN,CACDxzP,KAAM,IACNwzP,MAAO,oBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,MACN,CACDxzP,KAAM,IACNwzP,MAAO,iCACN,CACDxzP,KAAM,IACNwzP,MAAO,QACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,MACNwzP,MAAO,KACN,CACDxzP,KAAM,MACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,kBACN,CACDxzP,KAAM,IACNwzP,MAAO,kBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,uBACN,CACDxzP,KAAM,IACNwzP,MAAO,SACN,CACDxzP,KAAM,IACNwzP,MAAO,iBACN,CACDxzP,KAAM,IACNwzP,MAAO,uBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,WACN,CACDxzP,KAAM,IACNwzP,MAAO,sBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,+CACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,cACN,CACDxzP,KAAM,IACNwzP,MAAO,SACN,CACDxzP,KAAM,IACNwzP,MAAO,oBACN,CACDxzP,KAAM,IACNwzP,MAAO,qBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,mBACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,qCACN,CACDxzP,KAAM,IACNwzP,MAAO,WACN,CACDxzP,KAAM,KACNwzP,MAAO,KACN,CACDxzP,KAAM,IACNwzP,MAAO,cACN,CACDxzP,KAAM,IACNwzP,MAAO,QACN,CACDxzP,KAAM,IACNwzP,MAAO,mBACN,CACDxzP,KAAM,IACNwzP,MAAO,kBAIP8pV,EAAgB,CAAC,EACZ7v0B,EAAI,EAAGA,EAAI8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AAK,MACLC,IAAK,OAETC,QAAS,CACLC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbzzyB,IAAK,CAAC,MAAO,MACb0zyB,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACb7zyB,IAAK,CAAC,MAAO,MACb8zyB,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbhqD,IAAK,CAAC,MAAO,OACbiqD,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACb911B,IAAK,CAAC,MAAO,OACb+11B,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACbC,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AgB,iBAAiB,iBAAiB,oBAAoB,mBAAmB,kBAAkB,mBAAmB,kBAAkB,kBAAkB,iBAAiB,iBAAiB,qBAAqB,oBAAoB,mBAAmB,oBAAoB,oBAAoB,qBAAqB,mBAAmB,oBAAoB,qBAAqB,uBAAuB,qBAAqB,sBAAsB,oBAAoB,oBAAoB,oBAAoB,sBAAsB,oBAAoB,oBAAoB,uBAAuB,mBAAmB,oBAAoB,oBAAoB,mBAAmB,oBAAoB,qBAAqB,mBAAmB,oBAAoB,oBAAoB,qBAAqB,qBAAqB,oBAAoB,qBAAqB,mBAAmB,oBAAoB,oBAAoB,qBAAqB,qBAAqB,mBAAmB,mBAAmB,mBAAmB,qBAAqB,oBAAoB,qBAAqB,oBAAoB,oBAAoB,oBAAoB,sBAAsB,kBAAkB,qBAAqB,oBAAoB,qBAAqB,kBAAkB,oBAAoB,oBAAoB,oBAAoB,mBAAmB,mBAAmB,uBAAuB,oBAAoB,qBAAqB,oBAAoB,qBAAqB,qBAAqB,qBAAqB,oBAAoB,uBAAuB,oBAAoB,oBAAoB,kBAAkB,qBAAqB,qBAAqB,oBAAoB,oBAAoB,mBAAmB,sBAAsB,uBAAuB,oBAAoB,uBAAuB,mBAAmB,oBAAoB,qBAAqB,mBAAmB,qBAAqB,oBAAoB,oBAAoB,qBAAqB,oBAAoB,oBAAoB,qBAAqB,oBAAoB,mBAAmB,mBAAmB,oBAAoB,oBAAoB,qBAAqB,oBAAoB,qBAAqB,oBAAoB,mBAAmB,oBAAoB,oBAAoB,mBAAmB,oBAAoB,qBAAqB,sBAAsB,sBAAsB,oBAAoB,oBAAoB,oBAAoB,qBAAqB,qBAAqB,sBAAsB,qBAAqB,oBAAoB,sBAAsB,mBAAmB,qBAAqB,sBAAsB,oBAAoB,kBAAkB,sBAAsB,kBAAkB,qBAAqB,oBAAoB,sBAAsB,qBAAqB,qBAAqB,sBAAsB,oBAAoB,sBAAsB,qBAAqB,qBAAqB,mBAAmB,qBAAqB,qBAAqB,qBAAqB,mBAAmB,oBAAoB,oBAAoB,oBAAoB,sBAAsB,qBAAqB,mBAAmB,qBAAqB,oBAAoB,qBAAqB,sBAAsB,qBAAqB,oBAAoB,qBAAqB,oBAAoB,oBAAoB,kBAAkB,sBAAsB,oBAAoB,qBAAqB,mBAAmB,oBAAoB,oBAAoB,sBAAsB,mBAAmB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AuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBA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","sources":["webpack://LegalCluster.MarketPlace.Web/webpack/runtime/load script","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/date-time-utilities/lib/dateMath/dateMath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/Stylesheet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/fontFace.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/mergeStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/styleToClassName.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-file-type-icons/lib/FileTypeIconMap.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useAsync.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useConst.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useControllableValue.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useId.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useOnEvent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/usePrevious.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useTarget.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useUnmount.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/common/DirectionalHint.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/BaseButton.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/CommandButton/CommandButton.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/Rectangle.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Callout/Callout.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/safeRequestAnimationFrame.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/Customizer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/effects/FluentDepths.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/createTheme.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/node_modules/@fluentui/theme/lib/mergeThemes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-hooks/lib/useEventCallback.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Icon/Icon.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Image/Image.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Image/Image.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Image/Image.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Image/Image.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Label/Label.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Label/Label.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Label/Label.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Layer/Layer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Panel/Panel.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Panel/Panel.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Panel/Panel.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Panel/Panel.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Popup/Popup.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/overflow.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/selection/Selection.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/string.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/selection/Selection.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/selection/SelectionZone.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Announced/Announced.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Announced/Announced.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Announced/Announced.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.scss.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsController.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/ie11Detector.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Autofill/Autofill.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.scss.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/BasePicker.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/initials.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/Persona.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaConsts.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaInitialsColor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/Persona.base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/Persona.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/Persona/Persona.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItem.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePickerItems/PeoplePickerItemSuggestion.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/PeoplePicker/PeoplePicker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/hoist.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/set-version/lib/setVersion.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/set-version/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/merge-styles/lib/keyframes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/classNames/AnimationClassNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/utilities/buildClassMap.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/CommonStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/zIndexes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/getFocusStyle.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/hiddenContentStyle.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/getGlobalClassNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/effects/FluentDepths.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/createTheme.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/node_modules/@fluentui/theme/lib/mergeThemes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/theme.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/GeneralStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/styles/getPlaceholderStyles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/warn/warn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/utilities/icons.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/version.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/style-utilities/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/Async.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/BaseComponent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/DelayedRender.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/EventGroup.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/GlobalSettings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/KeyCodes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/aria.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/array.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/classNamesFunction.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/createMergedRef.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/css.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/Customizations.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/CustomizerContext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/customizable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/dom/canUseDOM.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/dom/getDocument.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/dom/getWindow.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/dom/on.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/appendFunction.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/extendComponent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/focus.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/getId.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/hoistStatics.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/initializeComponentRef.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/language.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/localStorage.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/memoize.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/merge.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/mobileDetector.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/modalize.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/object.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/osDetector.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/properties.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/rtl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/scroll.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/sessionStorage.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/setFocusVisibility.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/styled.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/customizations/useCustomizationSettings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/keyboard.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/useFocusRects.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/lib/warn/warnDeprecations.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/elementContains.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/getParent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/utilities/node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/fast-memoize/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/error.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/load-themed-styles/lib-es6/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/Errors.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/Loggers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/Utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/ITransport.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/AbortController.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/Subject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/signalr/dist/esm/ILogger.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/teams-js/dist/MicrosoftTeams.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/hijri-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/observer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/internationalization.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/ajax.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/browser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/fetch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/event-handler.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/dom.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/notify-property-change.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/animation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/validate-lic.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/module-loader.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/child-property.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/component.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/draggable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/droppable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/keyboard.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/l10n.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/touch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/template.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/template-engine.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-buttons/src/button/button.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-buttons/src/check-box/check-box.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-buttons/src/common/common.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-calendars/src/calendar/calendar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-calendars/src/datepicker/datepicker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-calendars/src/timepicker/timepicker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-calendars/src/datetimepicker/datetimepicker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-data/src/adaptors.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-data/src/manager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-data/src/query.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-data/src/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-dropdowns/src/combo-box/combo-box.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-dropdowns/src/common/incremental-search.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/drop-down-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/drop-down-list.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-splitbuttons/src/split-button/split-button.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/color-picker/color-picker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/input/input.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/numerictextbox/numerictextbox.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/slider/slider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/textbox/textbox.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-lists/src/common/list-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/hijri-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/observer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/internationalization.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/ajax.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/browser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/event-handler.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/dom.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/notify-property-change.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/animation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/validate-lic.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/module-loader.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/child-property.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/component.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/draggable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/droppable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/keyboard.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/touch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/l10n.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/template.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/template-engine.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/src/common/common.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/node_modules/@syncfusion/ej2-buttons/src/button/button.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/toolbar/toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/treeview/treeview.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/common/collision.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/common/position.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/common/resize.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/popup/popup.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-base/src/component-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-base/src/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-base/src/complex-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-base/src/services.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-base/src/template.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-splitbuttons/src/common/common.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-splitbuttons/src/drop-down-button/drop-down-button.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/abortcontroller-polyfill/dist/umd-polyfill.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/add-px-to-style/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/asap/browser-raw.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/adapters/xhr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/axios.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/cancel/Cancel.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/cancel/CancelToken.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/cancel/isCancel.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/Axios.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/InterceptorManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/buildFullPath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/createError.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/dispatchRequest.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/enhanceError.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/mergeConfig.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/settle.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/core/transformData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/defaults.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/bind.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/buildURL.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/combineURLs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/cookies.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/spread.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/helpers/validator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/axios/lib/utils.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/adminTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/alertTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/analyticsTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/approvalTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/avatarTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/clustersTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/companyTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/configTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/contextTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/cookiesTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/expertiseTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/exploreTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/globalTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/languageTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/legalEntitiesTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/menuTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/messagingTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/notificationsTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/onboardingTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/organizationsTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/panelsTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/pdfOverlayTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/profileTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/proposalTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/recommendationTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/rfpTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/rmsTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/searchTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/sogeTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/stakesTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/workTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/activityActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/adminActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/alertActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/assetsmanagementActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/avatarActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/billingActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/ActionPost/ICOIPost.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/clustersActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/clustersFilesystemActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/contextActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/datesActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/globalActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/languageActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/legalEntitiesActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/messagingActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/notificationsActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/onboardingActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/organizationActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/pdfOverlayActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/permissionsActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/profileActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/searchActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/sogeActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/stakeActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/validationActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Alert/Alert.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Approvals/ApprovalDetails.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Approvals/ApprovalPanelContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Approvals/ApprovalPanelHeader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/AssetsManagement/PanelsComponents/PanelHeader/PanelHeader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Attachment/Uploader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Attachment/Attachment.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Avatar/Avatar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Badge/Badge.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Breadcrumbs/GlobalBreadcrumbs.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Buttons/Button.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Buttons/IconButton.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Buttons/NewButton.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/CLEComponents/SingleRegistrationRow.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/CLEComponents/MainInformation.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/CLEComponents/Presentation.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/NumberContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/TextContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/BooleanContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/DateContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/LegalDateContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Buttons/SingleRadioItem.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/SingleSelectContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/MultiSelectContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/LegalEntityContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/NewDesignLegalEntityContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/MultipleLegalEntityContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/MultiplePeopleContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/SingleAttachment.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/AttachmentContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/PartyContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/AddressContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/NumberAndSelectContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/CheckboxContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/EnumSelectContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/pickerHooks.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterDocuments/SignatureForm/PickerInput.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/InvolvedPartiesContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/StakeCollection.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/AreaOfResponsabilities.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/StakeCoupleCollection.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/Common.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/LayoutTemplates/AttachmentSection.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/LayoutTemplates/DonorLayout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/LayoutTemplates/BeneficiaryLayout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/LayoutTemplates/DateSection.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/LayoutTemplates/PartiesLayout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/PartyContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/CLEComponents/StakesWrapper.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/stakes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ConfirmPopup/ConfirmPopup.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ContextMenu/ContextMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/clsx/dist/clsx.m.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/node_modules/get-user-locale/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/shared/const.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/shared/dateFormatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/shared/dates.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/shared/propTypes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/Calendar/Navigation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/Flex.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/shared/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/TileGroup.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/Tile.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/CenturyView/Decade.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/CenturyView/Decades.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/CenturyView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/DecadeView/Year.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/DecadeView/Years.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/DecadeView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/YearView/Month.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/YearView/Months.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/YearView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/MonthView/Day.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/MonthView/Days.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/MonthView/Weekdays.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/MonthView/WeekNumber.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/MonthView/WeekNumbers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/MonthView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/Calendar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-calendar/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/CustomCalendar/CustomCalendar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/CutomIcons/LcLogo.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/DatePicker/DatePicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Date/DateStandardFormat.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/DebouncedPeoplePicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/StatusMenu/StatusMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/DropDown/DropDown.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ExternalLink/index.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/FileViewers/FilesystemImageViewer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/FileViewers/FilesystemPdfViewer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/FileViewers/ImageViewer.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/text-layer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/accessibility-tags/accessibility-tags.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/utility/path-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/point.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/matrix.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/hijri-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/observer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/internationalization.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/ajax.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/browser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/event-handler.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/dom.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/notify-property-change.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/animation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/validate-lic.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/module-loader.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/child-property.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/component.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/draggable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/droppable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/keyboard.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/touch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/l10n.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/template.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/template-engine.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/src/common/common.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/src/check-box/check-box.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/node_modules/@syncfusion/ej2-buttons/src/button/button.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/tab/tab.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/types.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/signature.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-notifications/src/toast/toast.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/context-menu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/size.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/pdf-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/navigation-pane.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/enum/enum.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/ajax-handler.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/rect.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/utility/diagram-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/utility/dom-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/utility/base-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/drawing-element.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/text-element.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/container.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/selector.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/path-element.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/connector-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/action.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/tools.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/canvas-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/svg-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/dom-util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-context-menu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/spinner.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-ui-adaptor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/pdfviewer-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/form-fields/form-fields.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/image-element.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/canvas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/html-element.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/pdfviewer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-pdfviewer/src/pdfviewer/pdfviewer.component.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/menu/menu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/annotation-toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/formdesigner-toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/navigation/page-navigation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-lists/src/list-view/list-view.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/bookmark-view/bookmark-view.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/thumbnail-view/thumbnail-view.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/magnification/magnification.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/text-selection/text-selection.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/text-search/text-search.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/form-designer/form-designer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/text-markup-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/shape-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/measure-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/stamp-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/src/accordion/accordion.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/hijri-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/observer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/internationalization.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/ajax.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/browser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/event-handler.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/dom.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/notify-property-change.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/animation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/validate-lic.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/module-loader.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/child-property.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/component.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/draggable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/droppable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/keyboard.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/touch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/l10n.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/template.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/template-engine.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/src/common/common.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/node_modules/@syncfusion/ej2-buttons/src/button/button.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/base/mask-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/form-validator/form-validator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/maskedtextbox/maskedtextbox.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/events.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/classes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/models.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inplace-editor/src/inplace-editor/base/inplace-editor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/sticky-notes-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/ink-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/free-text-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/input-element.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/annotation/link-annotation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/print/print.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/FileViewers/PdfViewerTranslation.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/FileViewers/PdfViewer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/GoogleAddress/GoogleAddressEditor.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/GoogleAddress/GoogleAddressView.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/GridStyles/Components.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Hint/Hint.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/IconLabel/IconLabel.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Icons.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-image-crop/dist/ReactCrop.css?c0a1","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ImageCropper/ImageCropper.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Images/LinkImage.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Inputs/Checkbox.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Inputs/RadioButton.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Inputs/TextArea.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Inputs/TextComponent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Label/Label.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Loader/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Loader/Loader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/MandatoryFieldStar/MandatoryFieldStar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/MessagesMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Meta/Meta.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/NoData/NoData.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Panel/CommonStyles.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Panel/Panel.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Panel/PanelComments/PanelComments.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/Components/NewCompanyForm.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/Components/NewUserForm.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/Components/SearchResults.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/CorePicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/LegalEntitiesPicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/StaticDataPicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/UsersAndLegalEntitiesPicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pickers/UsersPicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/PillPicker/PillPicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Pill/Pill.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Popup/Popup.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Privacy/Privacy.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ProfilesSummary/ProfilesSummary.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ResultsBox/ResultBox.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/enum.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/constant.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/classes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/render.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/keyboard.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/common/constant.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/view-source.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/interface.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/services/service-locator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/services/renderer-factory.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/execute-command-callback.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/ajax-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/contextMenu-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/details-view-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/navigation-pane-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/search-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/toolbar-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-filemanager/src/file-manager/models/upload-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/items.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/toolbar-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/iframe-settings.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/inline-mode.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/models/default-locale.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/html-attributes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/full-screen.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/enter-key.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/dialog-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/base/rich-text-editor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/src/rich-text-editor/richtexteditor.component.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/toolbar-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/base-toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/dropdown-buttons.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/toolbar-action.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/src/uploader/uploader.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/common/util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/image-module.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/link-module.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/formatter/formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/base/constant.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/selection/selection.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/common/config.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/dom-node.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/lists.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/insert-methods.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/nodecutter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/formats.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/inserthtml.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/link.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/alignments.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/indents.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/base/classes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/image.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/audio.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/video.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/table.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/isformatted.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/selection-commands.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/selection-exec.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/inserthtml-exec.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/clearformat.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/clearformat-exec.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/undo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/ms-word-clean-up.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/insert-text.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/format-painter-actions.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/emoji-picker-action.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/base/editor-manager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/formatter/html-formatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/editor-manager/plugin/toolbar-status.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/html-toolbar-status.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/content-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/iframe-content-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/color-picker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/xhtml-validation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/html-editor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/count.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/base-quick-toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/popup-renderer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/actions/quick-toolbar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-richtexteditor/node_modules/@syncfusion/ej2-richtexteditor/src/rich-text-editor/renderer/table-module.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-dropdowns/node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/drop-down-base.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-dropdowns/node_modules/@syncfusion/ej2-dropdowns/src/common/highlight-search.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-dropdowns/node_modules/@syncfusion/ej2-dropdowns/src/mention/mention.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-react-dropdowns/src/mention/mention.component.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/RichText/RT.css?cd6b","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/RichText/NewRT.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/RichText/NewRtView.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ScrollBox/ScrollBox.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/SearchMenu/SearchMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/SelectCard/SelectCard.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/SelectInput/SelectInput.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Spinner/Spinner.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/SpliceList/SpliceList.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/StatusDot/StatusDot.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/StepsPopup/SingleStep.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ProgressBar/ProgressBar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/StepsPopup/StepsPopup.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Switch/Switch.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TagPicker/Tag.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TagPicker/PickerList.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TagPicker/PickerWrapper.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TagPicker/ITagPicker.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TagPicker/TagPicker.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TextWithEllipsis/MultilineTextWithEllipsis.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/TextWithEllipsis/TextWithEllipsis.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ToolTip/ToolTip.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ToolTip/ToolTipWrapper.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/WhiteBox/WhiteBox.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/WhiteBox/WhiteBoxHeader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/WhiteCollapsedSection/WhiteCollapsedSection.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/WorkspaceLogo/WorkspaceLogo.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/PeopleInCharge/PeopleInChargeBrief.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Home/SingleWorkElem.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/textColorByCode.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/Avatar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/MessageBox/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/SendMessage.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/SingleConversation.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/Components/ImageBox.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/Components/AttachmentBox.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/SingleMessage.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/Components/SingleElement.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/NavMenuNotification/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/NavMenuNotification/NavMenuNotification.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NewDesignCommon/Dropzone/Dropzone.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NewDesignCommon/NewDesignSwitch/NewDesignSwitch.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NewDesignCommon/NewDesignSwitch/newDesignTheme.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NewDesignCommon/Overlay/Overlay.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NewDesignCommon/Overlay/OverlayContext.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Notifications/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Notifications/LegalDocNotificationPopup.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-file-type-icons/lib/FileIconType.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-file-type-icons/lib/getFileTypeIconProps.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterActivity/Components/FileIcon.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterActivity/Components/SingleApprover.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterActivity/Components/StyledComponents.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterDocuments/FileManager/FolderIcon.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/OverviewContent/ApprovalMessage.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/PresentationComponents.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/NewDesignPeopleContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/PeopleContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/SetPropertiesIcon.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeComponents/StakeStyles.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/DatesContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/DatesPopup/StatusDropdown.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Buttons/OnOff.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/DatesPopup/DatesPopup.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/ClustersV2/ClusterOverview/StakeContainers/NewDesignStakeLayout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Soge/SidebarTocContext/SidebarTocContext.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/Activity/enums.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/AssetManagement/actions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/AssetManagement/global.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/AssetManagement/negotiations.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/CLE/ICLE.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IAlert.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IAnalytics.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IClusterStake.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IClusters.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IClustersFilesystem.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/ICompany.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IConfiguration.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IDatagrid.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IDates.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IFilters.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IGlobal.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/ILanguage.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IMenu.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/INotification.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IOrganization.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IPermissions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IRoleManager.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/ISearch.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/ISoge.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/IValidation.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/Messaging/IMessaging.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/entities/RFP/IFinancialsForm.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/history.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/instance.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/proposalReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/services/GoogleAnalyticsService.ts","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/redux/es/redux.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/redux-thunk/es/index.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/onboardingReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/rfpReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/index.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/adminReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/alertReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/analyticsReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/approvalReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/avatarReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/clustersReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/companyReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/configReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/contextReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/cookiesReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/expertiseReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/exploreReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/fileRepositoryReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/actionTypes/fileRepositoryTypes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/globalReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/languageReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/legalEntitiesReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/menuReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/messagingReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/notificationReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/organizationReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/panelsReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/pdfOverlayReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/profileReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/recommendationsReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/rmsReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/searchReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/sogeReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/stakeReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/reducers/workReducer.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/http.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/store.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/breakpoint.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/colors.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/fontSizes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/global/keyframes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/mixins/placeholder.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/mixins/shadow.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/sizes.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/RichTextTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/addressFormatter.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/arrayTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/attachment.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/authTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/clusterFilesystemTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/Wizards/POAWizard/CreatePOAClusterStep.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/Wizards/POAWizard/POAClusterCreatedStep.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Organization/Wizards/POAWizard/CreatePOACluster.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/clusterTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/dataGridTools.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/GridStyles/ColumnTemplates/MultiStakeTemplate.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/countries-and-timezones/dist/index.esm.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/date.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/draftJS.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/emailChecker.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/errorTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/files.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/generalTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/hooks.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/keyboardTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/languageTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/lazyBlock.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/legalDocTools/sogeTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/links.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/messaging.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/notificationRedirect.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/numberTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/objectTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/organizationHooks.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/pathContext.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/permissions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/profileConstants.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/reduxTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/referentials.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/selectConfiguration.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/statusHelper.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/storage.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/string.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/themeActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/theme.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/translationTools.ts","webpack://LegalCluster.MarketPlace.Web/./node_modules/blacklist/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/classnames/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/create-react-class/factory.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/create-react-class/index.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/RichText/RT.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-base/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-buttons/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-icons/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-inputs/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-lists/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-navigations/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-popups/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-richtexteditor/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/@syncfusion/ej2-splitbuttons/styles/material.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-image-crop/dist/ReactCrop.css","webpack://LegalCluster.MarketPlace.Web/./node_modules/css-loader/dist/runtime/api.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/decode-uri-component/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/diacritics/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/dom-css/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/escape-string-regexp/index.js","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/1024/cluster-preview.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/LegalCluster-PrimaryBlue-OnlyRainbowStar.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/cogs.svg","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/ar.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/da.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/de.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/en.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/es.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/fi.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/fil.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/fr.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/hr.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/hu.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/id.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/it.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/ja.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/ms.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/nl.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/pl.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/pt.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/ro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/ru.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/sk.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/sl.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/th.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/tr.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/uk.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/vi.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/icons/languages/zh.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/placeholders/message-placeholder.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/svgicons/book-closed-color.svg","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/svgicons/books-color.svg","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/svgicons/chapter.svg","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/svgicons/section.svg","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/association.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/basic-contract.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-distribution-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-fondation-merieux.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-key-accounts-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-lease-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-lease.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-maintenance-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-sale-representative-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-supplier-IT-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-supplier-sepro.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/contract-supplier-webhelp.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-foreign-mf-brands.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-sa-board.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-sa-supervisory.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-sarl.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-sas.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-sc.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/corporate-simple-sas.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/distribution-mf-brand.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/elected_office.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/family.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/financial.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/franchise-mf-brand.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/gift.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/iconPrivate.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/iconPublic.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/iconSecret.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/invitation.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/knowledge-management.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/no-link.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/other.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/patronage-v2-create.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/sponsoring-v2-create.png","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/supply-mf-brand.png","webpack://LegalCluster.MarketPlace.Web/./node_modules/file-saver/dist/FileSaver.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/filter-obj/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/formik/node_modules/deepmerge/dist/es.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isPlainObject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/clone.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/toPath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/cloneDeep.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/formik/dist/formik.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/get-user-locale/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/value-equal/esm/value-equal.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/history/esm/history.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/in-browser-language/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intersection-observer/intersection-observer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intl-messageformat/lib/src/core.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intl-messageformat/lib/src/error.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intl-messageformat/lib/src/formatters.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intl/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intl/lib/core.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/intl/locale-data/jsonp/en.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/jwt-decode/lib/atob.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/jwt-decode/lib/base64_url_decode.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/jwt-decode/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/loadjs/dist/loadjs.umd.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash.debounce/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash.memoize/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash/lodash.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/merge-class-names/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/merge-refs/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment-timezone/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment-timezone/moment-timezone.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/af.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar-dz.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar-kw.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar-ly.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar-ma.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar-sa.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar-tn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/az.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/be.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/bg.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/bm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/bn-bd.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/bn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/bo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/br.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/bs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ca.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/cs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/cv.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/cy.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/da.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/de-at.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/de-ch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/de.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/dv.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/el.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-au.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-ca.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-gb.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-ie.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-il.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-in.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-nz.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/en-sg.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/eo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/es-do.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/es-mx.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/es-us.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/es.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/et.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/eu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fa.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fi.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fil.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fr-ca.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fr-ch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/fy.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ga.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/gd.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/gl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/gom-deva.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/gom-latn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/gu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/he.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/hi.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/hr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/hu.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/hy-am.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/id.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/is.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/it-ch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/it.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ja.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/jv.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ka.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/kk.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/km.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/kn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ko.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ku.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ky.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/lb.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/lo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/lt.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/lv.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/me.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/mi.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/mk.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ml.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/mn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/mr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ms-my.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ms.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/mt.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/my.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/nb.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ne.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/nl-be.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/nl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/nn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/oc-lnc.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/pa-in.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/pl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/pt-br.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/pt.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ro.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ru.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sd.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/se.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/si.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sk.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sq.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sr-cyrl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ss.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sv.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/sw.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ta.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/te.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tg.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/th.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tk.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tl-ph.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tlh.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tzl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tzm-latn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/tzm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ug-cn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/uk.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ur.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/uz-latn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/uz.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/vi.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/x-pseudo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/yo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/zh-cn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/zh-hk.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/zh-mo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/zh-tw.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://LegalCluster.MarketPlace.Web/./node_modules/moment/moment.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/object-assign/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/performance-now/lib/performance-now.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/polished/dist/polished.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/prefix-style/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/prop-types/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/property-expr/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/query-string-for-all/dist/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/query-string/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/raf/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/ie11.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/es6/symbol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/fn/array/from.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_a-function.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_an-object.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_array-includes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_classof.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_cof.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_core.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_create-property.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_ctx.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_defined.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_descriptors.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_dom-create.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_enum-bug-keys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_enum-keys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_export.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_fails.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_function-to-string.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_global.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_has.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_hide.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_html.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_ie8-dom-define.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_iobject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_is-array-iter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_is-array.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_is-object.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_iter-call.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_iter-create.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_iter-define.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_iter-detect.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_iterators.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_library.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_meta.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-create.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-dp.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-dps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-gopd.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-gopn-ext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-gopn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-gops.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-gpo.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-keys-internal.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-keys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_object-pie.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_property-desc.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_redefine.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_set-to-string-tag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_shared-key.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_shared.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_string-at.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_to-absolute-index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_to-integer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_to-iobject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_to-length.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_to-object.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_to-primitive.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_uid.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_wks-define.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_wks-ext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/_wks.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/core.get-iterator-method.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/es6.array.from.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/es6.object.to-string.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/es6.string.iterator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/core-js/modules/es6.symbol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/promise/lib/core.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/promise/lib/es6-extensions.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/promise/lib/rejection-tracking.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-app-polyfill/node_modules/whatwg-fetch/fetch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-appinsights/dist-esm/src/ReactAI.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-appinsights/dist-esm/src/withAITracking.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-appinsights/node_modules/react/cjs/react.production.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-appinsights/node_modules/react/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/Scrollbars/defaultRenderElements.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/Scrollbars/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/Scrollbars/styles.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/utils/getInnerHeight.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/utils/getInnerWidth.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/utils/getScrollbarWidth.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/utils/isString.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-custom-scrollbars/lib/utils/returnFalse.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput/DayInput.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput/Input.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput/MonthInput.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput/MonthSelect.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput/NativeInput.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DateInput/YearInput.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/DatePicker.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/Divider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/entry.nostyle.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/shared/dateFormatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/shared/dates.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/shared/propTypes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/dist/shared/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/shared/const.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/shared/dateFormatter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/shared/dates.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/shared/propTypes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/Calendar/Navigation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/Flex.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/shared/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/TileGroup.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/Tile.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/CenturyView/Decade.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/CenturyView/Decades.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/CenturyView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/DecadeView/Year.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/DecadeView/Years.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/DecadeView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/YearView/Month.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/YearView/Months.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/YearView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/MonthView/Day.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/MonthView/Days.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/MonthView/Weekdays.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/MonthView/WeekNumber.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/MonthView/WeekNumbers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/MonthView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/Calendar.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-date-picker/node_modules/react-calendar/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-dom/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-fast-compare/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/detect-element-overflow/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-fit/dist/esm/Fit.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-fit/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-gtm-module/dist/Snippets.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-gtm-module/dist/TagManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-gtm-module/dist/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-gtm-module/dist/utils/warn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-highlighter/lib/highlighter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-highlighter/lib/regExpPropType.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-image-crop/dist/ReactCrop.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-intercom/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-intl/lib/src/components/injectIntl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-intl/lib/src/components/message.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-intl/lib/src/components/useIntl.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-intl/lib/src/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-is/cjs/react-is.production.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-is/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-places-autocomplete/dist/PlacesAutocomplete.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-places-autocomplete/dist/helpers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-places-autocomplete/dist/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-places-autocomplete/dist/utils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/components/Context.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/utils/batch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/utils/Subscription.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/components/Provider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/connect/mergeProps.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/connect/connect.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/hooks/useStore.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/hooks/useSelector.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/es/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-redux/node_modules/react-is/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-router/esm/react-router.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-router/node_modules/isarray/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-textarea-autosize/dist/react-textarea-autosize.esm.browser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react/cjs/react.production.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/scheduler/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/shallowequal/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/split-on-first/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/strict-uri-encode/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/styled-components/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/synchronous-promise/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/text-encoding-shim/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/to-camel-case/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/to-no-case/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/to-space-case/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/toposort/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/tslib/tslib.es6.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/stonlyScript.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_isKey.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_castPath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hasPath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/has.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/cloneDeepWith.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isString.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_mapToArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_setToArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hasUnicode.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_unicodeToArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stringToArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_asciiToArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/values.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseValues.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/toArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_iteratorToArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/printValue.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/locale.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/isSchema.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/Condition.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/ValidationError.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/runValidations.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/prependDeep.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_createBaseFor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseFor.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseForOwn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_SetCache.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_setCacheAdd.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_setCacheHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arraySome.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_equalArrays.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cacheHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_equalByTag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_equalObjects.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsEqual.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_isStrictComparable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseMatches.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getMatchData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsMatch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseGet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseHasIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/get.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/hasIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/identity.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/property.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseProperty.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_basePropertyDeep.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIteratee.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/mapValues.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/Reference.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/createValidation.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/mixed.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/reach.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/inherits.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/boolean.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/isAbsent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/string.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/number.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/isodate.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/date.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arrayReduce.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_deburrLetter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_basePropertyOf.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/deburr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_asciiWords.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hasUnicodeWord.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_unicodeWords.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/words.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_createCompounder.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/snakeCase.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_castSlice.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseSlice.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/upperFirst.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_createCaseFirst.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/capitalize.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/camelCase.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/sortFields.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/sortByKeyOrder.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/util/makePath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/object.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/array.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/mapKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/Lazy.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/yup/es/index.js","webpack://LegalCluster.MarketPlace.Web/./wwwroot/assets/images/wizardCard/ sync ^\\.\\/.*\\.png$","webpack://LegalCluster.MarketPlace.Web/./node_modules/@wojtekmaj/date-utils/dist/cjs/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/make-event-props/dist/cjs/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/update-input-width/dist/cjs/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fortawesome/pro-duotone-svg-icons/index.mjs","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fortawesome/pro-light-svg-icons/index.mjs","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fortawesome/pro-regular-svg-icons/index.mjs","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fortawesome/pro-solid-svg-icons/index.mjs","webpack://LegalCluster.MarketPlace.Web/./node_modules/@wojtekmaj/date-utils/dist/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_assocIndexOf.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_listCacheDelete.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_ListCache.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_listCacheClear.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_listCacheGet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_listCacheHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_listCacheSet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Map.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_nativeCreate.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hashGet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hashHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Hash.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hashClear.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hashDelete.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_hashSet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_mapCacheClear.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getMapData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_isKeyable.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_MapCache.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_mapCacheDelete.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_mapCacheGet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_mapCacheHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_mapCacheSet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Stack.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stackClear.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stackDelete.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stackGet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stackHas.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stackSet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Symbol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Uint8Array.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseTimes.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arrayMap.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arrayPush.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_defineProperty.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseAssignValue.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_assignValue.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_copyObject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseKeysIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_nativeKeysIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/keysIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cloneBuffer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getSymbolsIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getAllKeysIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_initCloneArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cloneRegExp.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cloneSymbol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_initCloneByTag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cloneDataView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_cloneTypedArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseCreate.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isMap.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsMap.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isSet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsSet.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseClone.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_initCloneObject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_copySymbolsIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseAssignIn.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_copySymbols.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseAssign.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arrayEach.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getRawTag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_objectToString.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseGetTag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseUnary.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_copyArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_freeGlobal.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getAllKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_coreJsData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_isMasked.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsNative.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getNative.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getValue.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getPrototype.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getSymbols.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_arrayFilter.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_DataView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Promise.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_Set.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_WeakMap.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_getTag.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_isIndex.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_isPrototype.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_nodeUtil.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_overArg.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_root.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/memoize.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_stringToPath.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_memoizeCapped.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_toKey.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_toSource.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/eq.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsArguments.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isArguments.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isArrayLike.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isBuffer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/stubFalse.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isFunction.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isLength.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isObject.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isObjectLike.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isSymbol.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/isTypedArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_nativeKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/keys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/stubArray.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/_baseToString.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/lodash-es/toString.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://LegalCluster.MarketPlace.Web/webpack/bootstrap","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/compat get default export","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/define property getters","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/ensure chunk","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/get javascript chunk filename","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/global","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/hasOwnProperty shorthand","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/make namespace object","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/node module decorator","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/publicPath","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/jsonp chunk loading","webpack://LegalCluster.MarketPlace.Web/webpack/runtime/nonce","webpack://LegalCluster.MarketPlace.Web/./node_modules/whatwg-fetch/fetch.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-0.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-1.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-2.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-3.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-4.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-5.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-6.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-7.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-8.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-9.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-10.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-11.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-12.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-13.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-14.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-15.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-16.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-17.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/iconAliases.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/version.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/font-icons-mdl2/lib/index.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@fluentui/react-file-type-icons/lib/initializeFileTypeIcons.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/styled-reset/lib/esm/index.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/global/lcr-button.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/global/lcr-tag.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/gridStyles.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/global.ts","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/dynamicproto-js/lib/dist/esm/dynamicproto-js.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/fonts.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/styleHelpers/old-css.ts","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-shims/dist-esm/Constants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-shims/dist-esm/Helpers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-shims/dist-esm/TsLibShims.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InternalConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DataCacheHelper.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EventHelpers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/W3cTraceParent.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Timing.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/AnalyticsPlugin.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/ContextTagKeys.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/InternalConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/SeverityLevel.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/InternalConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-web/dist-esm/InternalConstants.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@microsoft/applicationinsights-web/dist-esm/__DynamicConstants.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/configActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/ChunkLoader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/GlobalLoader.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Auth/AuthStart.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Auth/AuthEnd.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Auth/Logout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/TeamsAuth.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/404.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/NotificationList/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/NotificationList/NotificationHook.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/NotificationList/NotificationList.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/UserMenuDropdown.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/DesktopNavMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Common/Logo/Logo.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Layout/TopBar/TopBar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Layout/SideBar/MenuItem.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/NavMenu/Components/OrganizationsScroller.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Home/UsefulLinks/UsefulLinksGrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/usefulLinksHooks.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Layout/SideBar/SidebarMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Layout/SideBar/SideBar.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Layout/Layout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/approvals.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/wopi.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/lazyRoute.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Home.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/GlobalDirectory.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Invite.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RegisterContainerV2.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SettingsForm.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/TermsAndConditionsContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CaseCreationContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ValidationForm.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/UserProfileV2.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/NotificationsContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/EvaluationConfirmationContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CopyrightsContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/NetworkContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/LegalEntitiesContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/NewLegalEntity.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpInitialProporsal.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpSimpleComponent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpFinancialsAndTimeline.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpRecipients.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpSummary.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpExtras.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpSubmit.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RfpWithdraw.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/QuotationDetailsContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalIntroduction.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalScopeTimeline.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalFinancials.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalTeam.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalSummary.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RFPRecipientSummary.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalSumbission.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ManageMyProposals.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ProposalExtras.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/WithdrawProposal.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Messaging.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/QuotationContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/OrganizationSettings.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ClusterContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/FastTrack.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/FastTrackSummary.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/MyRequests.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SingleStakeDataGrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AdminConsoleContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/TeamSettings.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/TeamsSettings.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CreateTeam.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CodeOfConduct.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/BookReferenceTexts.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AllTexts.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/VersionOverview.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/LegalDocument.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Panel.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CLEContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CLEGraphExport.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/LegalEntities/EntityPreviewExport.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/RichTextHelper.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AddLawFirm.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ViewLawFirm.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CodeArchives.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeDocumentation.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeNotices.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeArticle.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeVersions.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/NormsManagement.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/MoveContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SettingsVersions.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AmendementsVersions.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AmendmentsDatagrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeBranches.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/BranchesDatagrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeApprovals.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/VersionDatagrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/NewBranch.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AuditTrail.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Directory.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/TeamsConfigCluster.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/OrgsContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/BranchCompare.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/BranchArticleDetails.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/BranchStructureDetails.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CreateAmendment.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SogeSearch.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ManageBranchStructure.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Reporting.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CampaignsList.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/CampaignCreate.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/SingleCampaign.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ClusterContent.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Registration.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ResumeYourWorkContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/PopupSystem/ConversationMenu.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/PopupSystem/SingleConversationWindow.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Messaging/PopupSystem/MessagingContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Alert/AlertContainer.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Tracking/Tracking.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/analyticsTools.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/analyticsActions.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Cookies/Components.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/actions/cookiesAction.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Cookies/Cookies.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/tools/cookies.ts","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/GlobalLayout.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ViewNews.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/NewsList.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AddNewOrEditNews.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AMQuestions.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/FAQDatagrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/Billing.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ClausierDataragid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AllRights.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/OwnerDataTable.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/RightsDatagrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/TrackerDatagrid.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/OrganizationSettingsV2.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/AdminConsoleContainerV2.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Home/NullPage.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/IconsIndex.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/ComponentsIndex.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/routes/PLEPreviewExport.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/components/Auth/ShadowAuth.tsx","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/message.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/number.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/dateTime.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/plural.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/list.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/displayName.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/react-intl/lib/src/components/provider.js","webpack://LegalCluster.MarketPlace.Web/./node_modules/@formatjs/intl/lib/src/create-intl.js","webpack://LegalCluster.MarketPlace.Web/./ClientApp/IntlProvider.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/App.tsx","webpack://LegalCluster.MarketPlace.Web/./ClientApp/boot.tsx"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"LegalCluster.MarketPlace.Web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { DayOfWeek, MonthOfYear, FirstWeekOfYear, DateRangeType } from '../dateValues/dateValues';\nimport { TimeConstants } from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param date - The origin date\n * @param days - The number of days to offset. 'days' can be negative.\n * @returns A new Date object offset from the origin date by the given number of days\n */\nexport function addDays(date, days) {\n var result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of weeks.\n * @param date - The origin date\n * @param weeks - The number of weeks to offset. 'weeks' can be negative.\n * @returns A new Date object offset from the origin date by the given number of weeks\n */\nexport function addWeeks(date, weeks) {\n return addDays(date, weeks * TimeConstants.DaysInOneWeek);\n}\n/**\n * Returns a date offset from the given date by the specified number of months.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param months - The number of months to offset. 'months' can be negative.\n * @returns A new Date object offset from the origin date by the given number of months\n */\nexport function addMonths(date, months) {\n var result = new Date(date.getTime());\n var newMonth = result.getMonth() + months;\n result.setMonth(newMonth);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((newMonth % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of years.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param years - The number of years to offset. 'years' can be negative.\n * @returns A new Date object offset from the origin date by the given number of years\n */\nexport function addYears(date, years) {\n var result = new Date(date.getTime());\n result.setFullYear(date.getFullYear() + years);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((date.getMonth() % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date that is the first day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the month.\n */\nexport function getMonthStart(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the month.\n */\nexport function getMonthEnd(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the first day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the year.\n */\nexport function getYearStart(date) {\n return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the year.\n */\nexport function getYearEnd(date) {\n return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is a copy of the given date, aside from the month changing to the given month.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param month - The 0-based index of the month to set on the date.\n * @returns A new Date object with the given month set.\n */\nexport function setMonth(date, month) {\n return addMonths(date, month - date.getMonth());\n}\n/**\n * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.\n * @returns True if the two dates represent the same date (regardless of time-of-day), false otherwise.\n */\nexport function compareDates(date1, date2) {\n if (!date1 && !date2) {\n return true;\n }\n else if (!date1 || !date2) {\n return false;\n }\n else {\n return (date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate());\n }\n}\n/**\n * Compare the date parts of two dates\n * @param date1 - The first date to compare\n * @param date2 - The second date to compare\n * @returns A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value\n * if date1 is later than date2.\n */\nexport function compareDatePart(date1, date2) {\n return getDatePartHashValue(date1) - getDatePartHashValue(date2);\n}\n/**\n * Gets the date range array including the specified date. The date range array is calculated as the list\n * of dates accounting for the specified first day of the week and date range type.\n * @param date - The input date\n * @param dateRangeType - The desired date range type, i.e., day, week, month, etc.\n * @param firstDayOfWeek - The first day of the week.\n * @param workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.\n * @param daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day\n * for multiday view. Defaults to 1\n * @returns An array of dates representing the date range containing the specified date.\n */\nexport function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {\n if (daysToSelectInDayView === void 0) { daysToSelectInDayView = 1; }\n var datesArray = [];\n var startDate;\n var endDate = null;\n if (!workWeekDays) {\n workWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\n }\n daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);\n switch (dateRangeType) {\n case DateRangeType.Day:\n startDate = getDatePart(date);\n endDate = addDays(startDate, daysToSelectInDayView);\n break;\n case DateRangeType.Week:\n case DateRangeType.WorkWeek:\n startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);\n endDate = addDays(startDate, TimeConstants.DaysInOneWeek);\n break;\n case DateRangeType.Month:\n startDate = new Date(date.getFullYear(), date.getMonth(), 1);\n endDate = addMonths(startDate, 1);\n break;\n default:\n throw new Error('Unexpected object: ' + dateRangeType);\n }\n // Populate the dates array with the dates in range\n var nextDate = startDate;\n do {\n if (dateRangeType !== DateRangeType.WorkWeek) {\n // push all days not in work week view\n datesArray.push(nextDate);\n }\n else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {\n datesArray.push(nextDate);\n }\n nextDate = addDays(nextDate, 1);\n } while (!compareDates(nextDate, endDate));\n return datesArray;\n}\n/**\n * Checks whether the specified date is in the given date range.\n * @param date - The origin date\n * @param dateRange - An array of dates to do the lookup on\n * @returns True if the date matches one of the dates in the specified array, false otherwise.\n */\nexport function isInDateRangeArray(date, dateRange) {\n for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {\n var dateInRange = dateRange_1[_i];\n if (compareDates(date, dateInRange)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param navigatedDate - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The weeks number array for the current month.\n */\nexport function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {\n var selectedYear = navigatedDate.getFullYear();\n var selectedMonth = navigatedDate.getMonth();\n var dayOfMonth = 1;\n var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);\n var endOfFirstWeek = dayOfMonth +\n (firstDayOfWeek + TimeConstants.DaysInOneWeek - 1) -\n adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());\n var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);\n dayOfMonth = endOfWeekRange.getDate();\n var weeksArray = [];\n for (var i = 0; i < weeksInMonth; i++) {\n // Get week number for end of week\n weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));\n dayOfMonth += TimeConstants.DaysInOneWeek;\n endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);\n }\n return weeksArray;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param date - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The week's number in the year.\n */\nexport function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {\n // First four-day week of the year - minumum days count\n var fourDayWeek = 4;\n switch (firstWeekOfYear) {\n case FirstWeekOfYear.FirstFullWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, TimeConstants.DaysInOneWeek);\n case FirstWeekOfYear.FirstFourDayWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);\n default:\n return getFirstDayWeekOfYear(date, firstDayOfWeek);\n }\n}\n/**\n * Gets the date for the first day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getStartDateOfWeek(date, firstDayOfWeek) {\n var daysOffset = firstDayOfWeek - date.getDay();\n if (daysOffset > 0) {\n // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.\n daysOffset -= TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets the date for the last day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getEndDateOfWeek(date, firstDayOfWeek) {\n var lastDayOfWeek = firstDayOfWeek - 1 >= 0 ? firstDayOfWeek - 1 : TimeConstants.DaysInOneWeek - 1;\n var daysOffset = lastDayOfWeek - date.getDay();\n if (daysOffset < 0) {\n // If last day of week is < date, go 1 week forward, to ensure resulting date is in the future.\n daysOffset += TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets a new date with the time portion zeroed out, i.e., set to midnight\n * @param date - The origin date\n * @returns A new date with the time set to midnight\n */\nfunction getDatePart(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Helper function to assist in date comparisons\n */\nexport function getDatePartHashValue(date) {\n // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.\n // eslint-disable-next-line no-bitwise\n return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param numberOfFullDays - week settings.\n * @returns The week's number in the year.\n */\nfunction getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {\n var dayOfYear = getDayOfYear(date) - 1;\n var num = date.getDay() - (dayOfYear % TimeConstants.DaysInOneWeek);\n var lastDayOfPrevYear = new Date(date.getFullYear() - 1, MonthOfYear.December, 31);\n var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;\n var num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n var num3 = dayOfYear - num2;\n if (num3 < 0) {\n num -= daysInYear % TimeConstants.DaysInOneWeek;\n num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n num3 = daysInYear - num2;\n }\n return Math.floor(num3 / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @returns The week's number in the year.\n */\nfunction getFirstDayWeekOfYear(date, firstDayOfWeek) {\n var num = getDayOfYear(date) - 1;\n var num2 = date.getDay() - (num % TimeConstants.DaysInOneWeek);\n var num3 = (num2 - firstDayOfWeek + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n return Math.floor((num + num3) / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns adjusted week day number when `firstDayOfWeek` is other than Sunday.\n * For Week Day Number comparison checks\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param dateWeekDay - shifts number forward to 1 week in case passed as true\n * @returns The day of week adjusted to `firstDayOfWeek`; e.g. when `firstDayOfWeek` is Monday (1),\n * Sunday becomes 7.\n */\nfunction adjustWeekDay(firstDayOfWeek, dateWeekDay) {\n return firstDayOfWeek !== DayOfWeek.Sunday && dateWeekDay < firstDayOfWeek\n ? dateWeekDay + TimeConstants.DaysInOneWeek\n : dateWeekDay;\n}\n/**\n * Returns the day number for a date in a year:\n * the number of days since January 1st in the particular year.\n * @param date - A date to find the day number for.\n * @returns The day's number in the year.\n */\nfunction getDayOfYear(date) {\n var month = date.getMonth();\n var year = date.getFullYear();\n var daysUntilDate = 0;\n for (var i = 0; i < month; i++) {\n daysUntilDate += daysInMonth(i + 1, year);\n }\n daysUntilDate += date.getDate();\n return daysUntilDate;\n}\n/**\n * Returns the number of days in the month\n * @param month - The month number to target (months 1-12).\n * @param year - The year to target.\n * @returns The number of days in the month.\n */\nfunction daysInMonth(month, year) {\n return new Date(year, month, 0).getDate();\n}\n//# sourceMappingURL=dateMath.js.map","/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL) {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n/**\n * Gets the current RTL value.\n */\nexport function getRTL() {\n if (_rtl === undefined) {\n _rtl =\n typeof document !== 'undefined' &&\n !!document.documentElement &&\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nvar _rtl;\n_rtl = getRTL();\nexport function getStyleOptions() {\n return {\n rtl: getRTL(),\n };\n}\n//# sourceMappingURL=StyleOptionsState.js.map","import { __assign } from \"tslib\";\nexport var InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0,\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1,\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2,\n};\nvar STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nvar REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\nvar _global = {};\n// Grab window.\ntry {\n // Why the cast?\n // if compiled/type checked in same program with `@fluentui/font-icons-mdl2` which extends `Window` on global\n // ( check packages/font-icons-mdl2/src/index.ts ) the definitions don't match! Thus the need of this extra assertion\n _global = (window || {});\n}\ncatch (_a) {\n /* leave as blank object */\n}\nvar _stylesheet;\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nvar Stylesheet = /** @class */ (function () {\n function Stylesheet(config, serializedStylesheet) {\n var _a, _b, _c, _d, _e, _f;\n this._rules = [];\n this._preservedRules = [];\n this._counter = 0;\n this._keyToClassName = {};\n this._onInsertRuleCallbacks = [];\n this._onResetCallbacks = [];\n this._classNameToArgs = {};\n this._config = __assign({ \n // If there is no document we won't have an element to inject into.\n injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n this._classNameToArgs = (_a = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.classNameToArgs) !== null && _a !== void 0 ? _a : this._classNameToArgs;\n this._counter = (_b = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.counter) !== null && _b !== void 0 ? _b : this._counter;\n this._keyToClassName = (_d = (_c = this._config.classNameCache) !== null && _c !== void 0 ? _c : serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.keyToClassName) !== null && _d !== void 0 ? _d : this._keyToClassName;\n this._preservedRules = (_e = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.preservedRules) !== null && _e !== void 0 ? _e : this._preservedRules;\n this._rules = (_f = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.rules) !== null && _f !== void 0 ? _f : this._rules;\n }\n /**\n * Gets the singleton instance.\n */\n Stylesheet.getInstance = function () {\n _stylesheet = _global[STYLESHEET_SETTING];\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n var fabricConfig = (_global === null || _global === void 0 ? void 0 : _global.FabricConfig) || {};\n var stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n _stylesheet = stylesheet;\n _global[STYLESHEET_SETTING] = stylesheet;\n }\n return _stylesheet;\n };\n /**\n * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n * @returns string representation of `ISerializedStylesheet` interface.\n */\n Stylesheet.prototype.serialize = function () {\n return JSON.stringify({\n classNameToArgs: this._classNameToArgs,\n counter: this._counter,\n keyToClassName: this._keyToClassName,\n preservedRules: this._preservedRules,\n rules: this._rules,\n });\n };\n /**\n * Configures the stylesheet.\n */\n Stylesheet.prototype.setConfig = function (config) {\n this._config = __assign(__assign({}, this._config), config);\n };\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onReset = function (callback) {\n var _this = this;\n this._onResetCallbacks.push(callback);\n return function () {\n _this._onResetCallbacks = _this._onResetCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Configures an insert rule callback.\n *\n * @param callback - A callback which will be called when a rule is inserted.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onInsertRule = function (callback) {\n var _this = this;\n this._onInsertRuleCallbacks.push(callback);\n return function () {\n _this._onInsertRuleCallbacks = _this._onInsertRuleCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n Stylesheet.prototype.getClassName = function (displayName) {\n var namespace = this._config.namespace;\n var prefix = displayName || this._config.defaultPrefix;\n return \"\" + (namespace ? namespace + '-' : '') + prefix + \"-\" + this._counter++;\n };\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {\n this._keyToClassName[key] = className;\n this._classNameToArgs[className] = {\n args: args,\n rules: rules,\n };\n };\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n Stylesheet.prototype.classNameFromKey = function (key) {\n return this._keyToClassName[key];\n };\n /**\n * Gets all classnames cache with the stylesheet.\n */\n Stylesheet.prototype.getClassNameCache = function () {\n return this._keyToClassName;\n };\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.argsFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.args;\n };\n /**\n * Gets the rules associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.insertedRulesFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.rules;\n };\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n Stylesheet.prototype.insertRule = function (rule, preserve) {\n var injectionMode = this._config.injectionMode;\n var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n if (preserve) {\n this._preservedRules.push(rule);\n }\n if (element) {\n switch (injectionMode) {\n case InjectionMode.insertNode:\n var sheet = element.sheet;\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n }\n catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n break;\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n }\n else {\n this._rules.push(rule);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (this._config.onInsertRule) {\n // eslint-disable-next-line deprecation/deprecation\n this._config.onInsertRule(rule);\n }\n this._onInsertRuleCallbacks.forEach(function (callback) { return callback(); });\n };\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n Stylesheet.prototype.getRules = function (includePreservedRules) {\n return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n };\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n Stylesheet.prototype.reset = function () {\n this._rules = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n this._onResetCallbacks.forEach(function (callback) { return callback(); });\n };\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n Stylesheet.prototype.resetKeys = function () {\n this._keyToClassName = {};\n };\n Stylesheet.prototype._getStyleElement = function () {\n var _this = this;\n if (!this._styleElement && typeof document !== 'undefined') {\n this._styleElement = this._createStyleElement();\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n window.requestAnimationFrame(function () {\n _this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n };\n Stylesheet.prototype._createStyleElement = function () {\n var head = document.head;\n var styleElement = document.createElement('style');\n var nodeToInsertBefore = null;\n styleElement.setAttribute('data-merge-styles', 'true');\n var cspSettings = this._config.cspSettings;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n }\n else {\n var placeholderStyleTag = this._findPlaceholderStyleTag();\n if (placeholderStyleTag) {\n nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n }\n else {\n nodeToInsertBefore = head.childNodes[0];\n }\n }\n head.insertBefore(styleElement, head.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n this._lastStyleElement = styleElement;\n return styleElement;\n };\n Stylesheet.prototype._findPlaceholderStyleTag = function () {\n var head = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n };\n return Stylesheet;\n}());\nexport { Stylesheet };\n//# sourceMappingURL=Stylesheet.js.map","import { __spreadArray } from \"tslib\";\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n if (styleSets && styleSets.length === 1 && styleSets[0] && !styleSets[0].subComponentStyles) {\n return styleSets[0];\n }\n var mergedSet = {};\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n var workingSubcomponentStyles = {};\n for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {\n var currentSet = styleSets_1[_a];\n if (currentSet) {\n for (var prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n var currentComponentStyles = currentSet.subComponentStyles;\n for (var subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n }\n else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n continue;\n }\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n var mergedValue = mergedSet[prop];\n var currentValue = currentSet[prop];\n if (mergedValue === undefined) {\n mergedSet[prop] = currentValue;\n }\n else {\n mergedSet[prop] = __spreadArray(__spreadArray([], (Array.isArray(mergedValue) ? mergedValue : [mergedValue])), (Array.isArray(currentValue) ? currentValue : [currentValue]));\n }\n }\n }\n }\n }\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n var mergedSubStyles = mergedSet.subComponentStyles;\n var _loop_1 = function (subCompProp) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n var workingSet_1 = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = function (styleProps) {\n return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {\n return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;\n }));\n };\n }\n };\n // now we process the subcomponent styles if there are any\n for (var subCompProp in workingSubcomponentStyles) {\n _loop_1(subCompProp);\n }\n }\n return mergedSet;\n}\n//# sourceMappingURL=concatStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps(styleProps) {\n var allStyles = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n allStyles[_i - 1] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {\n var styles = allStyles_1[_a];\n if (styles) {\n result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n }\n }\n if (result.length === 1) {\n return result[0];\n }\n else if (result.length) {\n // cliffkoh: I cannot figure out how to avoid the cast to any here.\n // It is something to do with the use of Omit in IStyleSet.\n // It might not be necessary once Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n // the official version).\n return concatStyleSets.apply(void 0, result);\n }\n return {};\n}\n//# sourceMappingURL=concatStyleSetsWithProps.js.map","import { Stylesheet } from './Stylesheet';\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n var objects = [];\n var stylesheet = Stylesheet.getInstance();\n function _processArgs(argsList) {\n for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {\n var arg = argsList_1[_i];\n if (arg) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n }\n else {\n var translatedArgs = stylesheet.argsFromClassName(arg);\n if (translatedArgs) {\n _processArgs(translatedArgs);\n }\n else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n }\n else if (Array.isArray(arg)) {\n _processArgs(arg);\n }\n else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n _processArgs(args);\n return {\n classes: classes,\n objects: objects,\n };\n}\n//# sourceMappingURL=extractStyleParts.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font) {\n var stylesheet = Stylesheet.getInstance();\n var rule = serializeRuleEntries(getStyleOptions(), font);\n var className = stylesheet.classNameFromKey(rule);\n if (className) {\n return;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@font-face{\" + rule + \"}\", true);\n stylesheet.cacheClassName(name, rule, [], ['font-face', rule]);\n}\n//# sourceMappingURL=fontFace.js.map","import { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n return mergeCssSets(styleSets, getStyleOptions());\n}\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(styleSets, options) {\n var classNameSet = { subComponentStyles: {} };\n var styleSet = styleSets[0];\n if (!styleSet && styleSets.length <= 1) {\n return { subComponentStyles: {} };\n }\n var concatenatedStyleSet = concatStyleSets.apply(void 0, styleSets);\n var registrations = [];\n for (var styleSetArea in concatenatedStyleSet) {\n if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n if (styleSetArea === 'subComponentStyles') {\n classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};\n continue;\n }\n var styles = concatenatedStyleSet[styleSetArea];\n var _a = extractStyleParts(styles), classes = _a.classes, objects = _a.objects;\n if (objects === null || objects === void 0 ? void 0 : objects.length) {\n var registration = styleToRegistration(options || {}, { displayName: styleSetArea }, objects);\n if (registration) {\n registrations.push(registration);\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n }\n else {\n classNameSet[styleSetArea] = classes.join(' ');\n }\n }\n }\n for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {\n var registration = registrations_1[_i];\n if (registration) {\n applyRegistration(registration, options === null || options === void 0 ? void 0 : options.specificityMultiplier);\n }\n }\n return classNameSet;\n}\n//# sourceMappingURL=mergeStyleSets.js.map","import { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { styleToClassName } from './styleToClassName';\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return mergeCss(args, getStyleOptions());\n}\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(args, options) {\n var styleArgs = args instanceof Array ? args : [args];\n var _a = extractStyleParts(styleArgs), classes = _a.classes, objects = _a.objects;\n if (objects.length) {\n classes.push(styleToClassName(options || {}, objects));\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=mergeStyles.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n var _a;\n if (!_vendorSettings) {\n var doc = typeof document !== 'undefined' ? document : undefined;\n var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n var userAgent = (_a = nav === null || nav === void 0 ? void 0 : nav.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n }\n else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n return _vendorSettings;\n}\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings) {\n _vendorSettings = vendorSettings;\n}\n//# sourceMappingURL=getVendorSettings.js.map","var rules = {};\nexport function kebabRules(rulePairs, index) {\n var rule = rulePairs[index];\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n//# sourceMappingURL=kebabRules.js.map","import { getVendorSettings } from '../getVendorSettings';\nvar autoPrefixNames = {\n 'user-select': 1,\n};\nexport function prefixRules(rulePairs, index) {\n var vendorSettings = getVendorSettings();\n var name = rulePairs[index];\n if (autoPrefixNames[name]) {\n var value = rulePairs[index + 1];\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n//# sourceMappingURL=prefixRules.js.map","var NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\nexport function provideUnits(rulePairs, index) {\n var name = rulePairs[index];\n var value = rulePairs[index + 1];\n if (typeof value === 'number') {\n var isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name) > -1;\n var isVariableOrPrefixed = name.indexOf('--') > -1;\n var unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n rulePairs[index + 1] = \"\" + value + unit;\n }\n}\n//# sourceMappingURL=provideUnits.js.map","var _a;\nvar LEFT = 'left';\nvar RIGHT = 'right';\nvar NO_FLIP = '@noflip';\nvar NAME_REPLACEMENTS = (_a = {},\n _a[LEFT] = RIGHT,\n _a[RIGHT] = LEFT,\n _a);\nvar VALUE_REPLACEMENTS = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options, rulePairs, index) {\n if (options.rtl) {\n var name_1 = rulePairs[index];\n if (!name_1) {\n return;\n }\n var value = rulePairs[index + 1];\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n }\n else if (name_1.indexOf(LEFT) >= 0) {\n rulePairs[index] = name_1.replace(LEFT, RIGHT);\n }\n else if (name_1.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name_1.replace(RIGHT, LEFT);\n }\n else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n }\n else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n }\n else if (NAME_REPLACEMENTS[name_1]) {\n rulePairs[index] = NAME_REPLACEMENTS[name_1];\n }\n else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n }\n else {\n switch (name_1) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value, partIndex) {\n var parts = value.split(' ');\n var numberVal = parseInt(parts[partIndex], 10);\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n return parts.join(' ');\n}\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value) {\n if (typeof value === 'string') {\n var parts = value.split(' ');\n if (parts.length === 4) {\n return parts[0] + \" \" + parts[3] + \" \" + parts[2] + \" \" + parts[1];\n }\n }\n return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","import { __spreadArray } from \"tslib\";\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\nvar DISPLAY_NAME = 'displayName';\nfunction getDisplayName(rules) {\n var rootStyle = rules && rules['&'];\n return rootStyle ? rootStyle.displayName : undefined;\n}\nvar globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals) {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n var replacementInfo = [];\n var findGlobal = /\\:global\\((.+?)\\)/g;\n var match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map(function (v) { return \":global(\" + v.trim() + \")\"; })\n .join(', '),\n ]);\n }\n }\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce(function (selector, _a) {\n var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];\n var prefix = selector.slice(0, matchIndex);\n var suffix = selector.slice(matchEndIndex);\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\nfunction expandSelector(newSelector, currentSelector) {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n }\n else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n }\n else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n return newSelector;\n}\nfunction extractSelector(currentSelector, rules, selector, value) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector);\n }\n else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map(function (s) { return s.trim(); })\n .forEach(function (separatedSelector) {\n return extractRules([value], rules, expandSelector(separatedSelector, currentSelector));\n });\n }\n else {\n extractRules([value], rules, expandSelector(selector, currentSelector));\n }\n}\nfunction extractRules(args, rules, currentSelector) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (currentSelector === void 0) { currentSelector = '&'; }\n var stylesheet = Stylesheet.getInstance();\n var currentRules = rules[currentSelector];\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {\n var arg = args_1[_i];\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n var expandedRules = stylesheet.argsFromClassName(arg);\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector);\n }\n // Else if the arg is an array, we need to recurse in.\n }\n else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector);\n }\n else {\n for (var prop in arg) {\n if (arg.hasOwnProperty(prop)) {\n var propValue = arg[prop];\n if (prop === 'selectors') {\n // every child is a selector.\n var selectors = arg.selectors;\n for (var newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector]);\n }\n }\n }\n else if (typeof propValue === 'object') {\n // prop is a selector.\n if (propValue !== null) {\n extractSelector(currentSelector, rules, prop, propValue);\n }\n }\n else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n }\n else {\n currentRules[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n return rules;\n}\nfunction expandQuads(currentRules, name, value) {\n var parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n if (parts.length === 0) {\n parts.push(value);\n }\n if (parts[parts.length - 1] === '!important') {\n // Remove !important from parts, and append it to each part individually\n parts = parts.slice(0, -1).map(function (p) { return p + ' !important'; });\n }\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\nfunction getKeyForRules(options, rules) {\n var serialized = [options.rtl ? 'rtl' : 'ltr'];\n var hasProps = false;\n for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {\n var selector = _a[_i];\n serialized.push(selector);\n var rulesForSelector = rules[selector];\n for (var propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n return hasProps ? serialized.join('') : undefined;\n}\nfunction repeatString(target, count) {\n if (count <= 0) {\n return '';\n }\n if (count === 1) {\n return target;\n }\n return target + repeatString(target, count - 1);\n}\nexport function serializeRuleEntries(options, ruleEntries) {\n if (!ruleEntries) {\n return '';\n }\n var allEntries = [];\n for (var entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n // Apply transforms.\n for (var i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n // Apply punctuation.\n for (var i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n return allEntries.join('');\n}\nexport function styleToRegistration(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var rules = extractRules(args);\n var key = getKeyForRules(options, rules);\n if (key) {\n var stylesheet = Stylesheet.getInstance();\n var registration = {\n className: stylesheet.classNameFromKey(key),\n key: key,\n args: args,\n };\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n var rulesToInsert = [];\n for (var _a = 0, _b = rules.__order; _a < _b.length; _a++) {\n var selector = _b[_a];\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n return registration;\n }\n return undefined;\n}\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration, specificityMultiplier) {\n if (specificityMultiplier === void 0) { specificityMultiplier = 1; }\n var stylesheet = Stylesheet.getInstance();\n var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (var i = 0; i < rulesToInsert.length; i += 2) {\n var rules = rulesToInsert[i + 1];\n if (rules) {\n var selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(\".\" + registration.className, specificityMultiplier));\n // Insert. Note if a media query, we must close the query with a final bracket.\n var processedRule = selector + \"{\" + rules + \"}\" + (selector.indexOf('@') === 0 ? '}' : '');\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className, key, args, rulesToInsert);\n }\n}\nexport function styleToClassName(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var registration = styleToRegistration.apply(void 0, __spreadArray([options], args));\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier);\n return registration.className;\n }\n return '';\n}\n//# sourceMappingURL=styleToClassName.js.map","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value) {\n var parts = [];\n var partStart = 0;\n var parens = 0;\n for (var i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n return parts;\n}\n//# sourceMappingURL=tokenizeWithParentheses.js.map","/**\n * Enumeration of icon file names, and what extensions they map to.\n * Please keep items alphabetical. Items without extensions may require specific logic in the code to map.\n * Always use getFileTypeIconProps to get the most up-to-date icon at the right pixel density.\n */\nexport var FileTypeIconMap = {\n accdb: {\n extensions: ['accdb', 'mdb'],\n },\n archive: {\n extensions: ['7z', 'ace', 'arc', 'arj', 'dmg', 'gz', 'iso', 'lzh', 'pkg', 'rar', 'sit', 'tgz', 'tar', 'z'],\n },\n audio: {\n extensions: [\n 'aif',\n 'aiff',\n 'aac',\n 'alac',\n 'amr',\n 'ape',\n 'au',\n 'awb',\n 'dct',\n 'dss',\n 'dvf',\n 'flac',\n 'gsm',\n 'm4a',\n 'm4p',\n 'mid',\n 'mmf',\n 'mp3',\n 'oga',\n 'ra',\n 'rm',\n 'wav',\n 'wma',\n 'wv',\n ],\n },\n calendar: {\n extensions: ['ical', 'icalendar', 'ics', 'ifb', 'vcs'],\n },\n classifier: {\n extensions: ['classifier'],\n },\n clipchamp: {\n extensions: ['clipchamp'],\n },\n code: {\n extensions: [\n 'abap',\n 'ada',\n 'adp',\n 'ahk',\n 'as',\n 'as3',\n 'asc',\n 'ascx',\n 'asm',\n 'asp',\n 'awk',\n 'bash',\n 'bash_login',\n 'bash_logout',\n 'bash_profile',\n 'bashrc',\n 'bat',\n 'bib',\n 'bsh',\n 'build',\n 'builder',\n 'c',\n 'cbl',\n 'c++',\n 'capfile',\n 'cc',\n 'cfc',\n 'cfm',\n 'cfml',\n 'cl',\n 'clj',\n 'cls',\n 'cmake',\n 'cmd',\n 'coffee',\n 'config',\n 'cpp',\n 'cpt',\n 'cpy',\n 'cs',\n 'cshtml',\n 'cson',\n 'csproj',\n 'css',\n 'ctp',\n 'cxx',\n 'd',\n 'ddl',\n 'di',\n 'disco',\n 'dml',\n 'dtd',\n 'dtml',\n 'el',\n 'emakefile',\n 'erb',\n 'erl',\n 'f',\n 'f90',\n 'f95',\n 'fs',\n 'fsi',\n 'fsscript',\n 'fsx',\n 'gemfile',\n 'gemspec',\n 'gitconfig',\n 'go',\n 'groovy',\n 'gvy',\n 'h',\n 'h++',\n 'haml',\n 'handlebars',\n 'hbs',\n 'hcp',\n 'hh',\n 'hpp',\n 'hrl',\n 'hs',\n 'htc',\n 'hxx',\n 'idl',\n 'iim',\n 'inc',\n 'inf',\n 'ini',\n 'inl',\n 'ipp',\n 'irbrc',\n 'jade',\n 'jav',\n 'java',\n 'js',\n 'json',\n 'jsp',\n 'jsproj',\n 'jsx',\n 'l',\n 'less',\n 'lhs',\n 'lisp',\n 'log',\n 'lst',\n 'ltx',\n 'lua',\n 'm',\n 'mak',\n 'make',\n 'manifest',\n 'master',\n 'md',\n 'markdn',\n 'markdown',\n 'mdown',\n 'mkdn',\n 'ml',\n 'mli',\n 'mll',\n 'mly',\n 'mm',\n 'mud',\n 'nfo',\n 'opml',\n 'osascript',\n 'p',\n 'pas',\n 'patch',\n 'php',\n 'php2',\n 'php3',\n 'php4',\n 'php5',\n 'phtml',\n 'pl',\n 'pm',\n 'pod',\n 'pp',\n 'profile',\n 'ps1',\n 'ps1xml',\n 'psd1',\n 'psm1',\n 'pss',\n 'pt',\n 'py',\n 'pyw',\n 'r',\n 'rake',\n 'rb',\n 'rbx',\n 'rc',\n 'rdf',\n 're',\n 'reg',\n 'rest',\n 'resw',\n 'resx',\n 'rhtml',\n 'rjs',\n 'rprofile',\n 'rpy',\n 'rss',\n 'rst',\n 'ruby',\n 'rxml',\n 's',\n 'sass',\n 'scala',\n 'scm',\n 'sconscript',\n 'sconstruct',\n 'script',\n 'scss',\n 'sgml',\n 'sh',\n 'shtml',\n 'sml',\n 'svn-base',\n 'swift',\n 'sql',\n 'sty',\n 'tcl',\n 'tex',\n 'textile',\n 'tld',\n 'tli',\n 'tmpl',\n 'tpl',\n 'vb',\n 'vi',\n 'vim',\n 'vmg',\n 'webpart',\n 'wsp',\n 'wsdl',\n 'xhtml',\n 'xoml',\n 'xsd',\n 'xslt',\n 'yaml',\n 'yaws',\n 'yml',\n 'zsh',\n ],\n },\n contact: {\n extensions: ['vcf'],\n },\n /* css: {}, not broken out yet, snapping to 'code' for now */\n csv: {\n extensions: ['csv'],\n },\n desktopfolder: {},\n docset: {},\n documentsfolder: {},\n docx: {\n extensions: ['doc', 'docm', 'docx', 'docb'],\n },\n dotx: {\n extensions: ['dot', 'dotm', 'dotx'],\n },\n email: {\n extensions: ['eml', 'msg', 'oft', 'ost', 'pst'],\n },\n exe: {\n extensions: ['application', 'appref-ms', 'apk', 'app', 'appx', 'exe', 'ipa', 'msi', 'xap'],\n },\n favoritesfolder: {},\n folder: {},\n font: {\n extensions: ['ttf', 'otf', 'woff'],\n },\n form: {},\n genericfile: {},\n html: {\n extensions: ['htm', 'html', 'mht'],\n },\n ipynb: {\n extensions: ['nnb', 'ipynb'],\n },\n link: {\n extensions: ['lnk', 'link', 'url', 'website', 'webloc'],\n },\n linkedfolder: {},\n listitem: {},\n loop: {\n extensions: ['fluid', 'loop'],\n },\n officescript: {\n extensions: ['osts'],\n },\n splist: {},\n model: {\n extensions: [\n '3ds',\n '3mf',\n 'blend',\n 'cool',\n 'dae',\n 'df',\n 'dwfx',\n 'dwg',\n 'dxf',\n 'fbx',\n 'glb',\n 'gltf',\n 'holo',\n 'layer',\n 'layout',\n 'max',\n 'mcworld',\n 'mtl',\n 'obj',\n 'off',\n 'ply',\n 'skp',\n 'stp',\n 'stl',\n 't',\n 'thl',\n 'x',\n ],\n },\n mpp: {\n extensions: ['mpp'],\n },\n mpt: {\n extensions: ['mpt'],\n },\n multiple: {},\n one: {\n // This represents a single Fluid Note, or a partial exported section/page of a notebook.\n extensions: ['note', 'one'],\n },\n onetoc: {\n extensions: ['ms-one-stub', 'onetoc', 'onetoc2', 'onepkg'], // This represents a complete, logical notebook.\n },\n pbiapp: {},\n pdf: {\n extensions: ['pdf'],\n },\n photo: {\n extensions: [\n 'arw',\n 'bmp',\n 'cr2',\n 'crw',\n 'dic',\n 'dicm',\n 'dcm',\n 'dcm30',\n 'dcr',\n 'dds',\n 'dib',\n 'dng',\n 'erf',\n 'gif',\n 'heic',\n 'heif',\n 'ico',\n 'jfi',\n 'jfif',\n 'jif',\n 'jpe',\n 'jpeg',\n 'jpg',\n 'jxr',\n 'kdc',\n 'mrw',\n 'nef',\n 'orf',\n 'pct',\n 'pict',\n 'png',\n 'pns',\n 'psb',\n 'psd',\n 'raw',\n 'tga',\n 'tif',\n 'tiff',\n 'wdp',\n ],\n },\n photo360: {},\n picturesfolder: {},\n potx: {\n extensions: ['pot', 'potm', 'potx'],\n },\n powerbi: {\n extensions: ['pbids', 'pbix'],\n },\n ppsx: {\n extensions: ['pps', 'ppsm', 'ppsx'],\n },\n pptx: {\n extensions: ['ppt', 'pptm', 'pptx', 'sldx', 'sldm'],\n },\n presentation: {\n extensions: ['odp', 'gslides', 'key'],\n },\n pub: {\n extensions: ['pub'],\n },\n spo: {\n extensions: ['aspx'],\n },\n sponews: {},\n spreadsheet: {\n extensions: ['odc', 'ods', 'gsheet', 'numbers', 'tsv'],\n },\n rtf: {\n extensions: ['epub', 'gdoc', 'odt', 'rtf', 'wri', 'pages'],\n },\n sharedfolder: {},\n playlist: {},\n sway: {},\n sysfile: {\n extensions: [\n 'bak',\n 'bin',\n 'cab',\n 'cache',\n 'cat',\n 'cer',\n 'class',\n 'dat',\n 'db',\n 'dbg',\n 'dl_',\n 'dll',\n 'ithmb',\n 'jar',\n 'kb',\n 'ldt',\n 'lrprev',\n 'pkpass',\n 'ppa',\n 'ppam',\n 'pdb',\n 'rom',\n 'thm',\n 'thmx',\n 'vsl',\n 'xla',\n 'xlam',\n 'xlb',\n 'xll',\n ],\n },\n txt: {\n extensions: ['dif', 'diff', 'readme', 'out', 'plist', 'properties', 'text', 'txt'],\n },\n vaultclosed: {},\n vaultopen: {},\n vector: {\n extensions: [\n 'ai',\n 'ait',\n 'cvs',\n 'dgn',\n 'gdraw',\n 'pd',\n 'emf',\n 'eps',\n 'fig',\n 'ind',\n 'indd',\n 'indl',\n 'indt',\n 'indb',\n 'ps',\n 'svg',\n 'svgz',\n 'wmf',\n 'oxps',\n 'xps',\n 'xd',\n 'sketch',\n ],\n },\n video: {\n extensions: [\n '3g2',\n '3gp',\n '3gp2',\n '3gpp',\n 'asf',\n 'avi',\n 'dvr-ms',\n 'flv',\n 'm1v',\n 'm4v',\n 'mkv',\n 'mod',\n 'mov',\n 'mm4p',\n 'mp2',\n 'mp2v',\n 'mp4',\n 'mp4v',\n 'mpa',\n 'mpe',\n 'mpeg',\n 'mpg',\n 'mpv',\n 'mpv2',\n 'mts',\n 'ogg',\n 'qt',\n 'swf',\n 'ts',\n 'vob',\n 'webm',\n 'wlmp',\n 'wm',\n 'wmv',\n 'wmx',\n ],\n },\n video360: {},\n vsdx: {\n extensions: ['vdx', 'vsd', 'vsdm', 'vsdx', 'vsw', 'vdw'],\n },\n vssx: {\n extensions: ['vss', 'vssm', 'vssx'],\n },\n vstx: {\n extensions: ['vst', 'vstm', 'vstx', 'vsx'],\n },\n whiteboard: {\n extensions: ['whiteboard', 'wbtx'],\n },\n xlsx: {\n extensions: ['xlc', 'xls', 'xlsb', 'xlsm', 'xlsx', 'xlw'],\n },\n xltx: {\n extensions: ['xlt', 'xltm', 'xltx'],\n },\n xml: {\n extensions: ['xaml', 'xml', 'xsl'],\n },\n xsn: {\n extensions: ['xsn'],\n },\n zip: {\n extensions: ['zip'],\n },\n};\n//# sourceMappingURL=FileTypeIconMap.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n });\n }\n else {\n event = document.createEvent('MouseEvents');\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, window, // not using getWindow() since this can only be run client side\n 0, // detail\n 0, // screen x\n 0, // screen y\n 0, // client x\n 0, // client y\n ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n null);\n }\n target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles({\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n }, focusZoneClass);\n }\n return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nvar FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _a, _b, _c, _d;\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._onFocus = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var _a = _this.props, onActiveElementChanged = _a.onActiveElementChanged, \n // eslint-disable-next-line deprecation/deprecation\n doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n // eslint-disable-next-line deprecation/deprecation\n onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n var newActiveElement;\n if (isImmediateDescendant) {\n newActiveElement = ev.target;\n }\n else {\n var parentElement = ev.target;\n while (parentElement && parentElement !== _this._root.current) {\n if (isElementTabbable(parentElement) && _this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n }\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n var maybeElementToFocus = defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n _this._root.current &&\n defaultTabbableElement(_this._root.current);\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n }\n else {\n // force focus on first focusable element\n _this.focus(true);\n if (_this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n var initialElementFocused = !_this._activeElement;\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== _this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n _this._setFocusAlignment(newActiveElement, true, true);\n }\n _this._activeElement = newActiveElement;\n if (initialElementFocused) {\n _this._updateTabIndexes();\n }\n }\n if (onActiveElementChanged) {\n onActiveElementChanged(_this._activeElement, ev);\n }\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n if (onFocus) {\n onFocus(ev);\n }\n else if (onFocusNotification) {\n onFocusNotification();\n }\n };\n _this._onBlur = function () {\n _this._setParkedFocus(false);\n };\n _this._onMouseDown = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var disabled = _this.props.disabled;\n if (disabled) {\n return;\n }\n var target = ev.target;\n var path = [];\n while (target && target !== _this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n }\n while (path.length) {\n target = path.pop();\n if (target && isElementTabbable(target)) {\n _this._setActiveElement(target, true);\n }\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n /**\n * Handle the keystrokes.\n */\n _this._onKeyDown = function (ev, theme) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, direction = _a.direction, disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n if (disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n _this._isImmediateDescendantOfZone(ev.target)) {\n // Try to focus\n var innerZone = _this._getFirstInnerZone();\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n }\n else if (isElementFocusSubZone(ev.target)) {\n if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n return;\n }\n }\n else {\n return;\n }\n }\n else if (ev.altKey) {\n return;\n }\n else {\n // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusLeft(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusRight(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusUp()) {\n break;\n }\n }\n return;\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n break;\n }\n return;\n case KeyCodes.tab:\n if (\n // eslint-disable-next-line deprecation/deprecation\n _this.props.allowTabKey ||\n _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n _this._isElementInput(ev.target))) {\n var focusChanged = false;\n _this._processingTabKey = true;\n if (direction === FocusZoneDirection.vertical ||\n !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n }\n else {\n var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n }\n _this._processingTabKey = false;\n if (focusChanged) {\n break;\n }\n else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n _this._activeElement = null;\n }\n }\n return;\n case KeyCodes.home:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, false))) {\n return false;\n }\n var firstChild = _this._root.current && _this._root.current.firstChild;\n if (_this._root.current &&\n firstChild &&\n _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n break;\n }\n return;\n case KeyCodes.end:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, true))) {\n return false;\n }\n var lastChild = _this._root.current && _this._root.current.lastChild;\n if (_this._root.current &&\n _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n break;\n }\n return;\n case KeyCodes.enter:\n if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n default:\n return;\n }\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._getHorizontalDistanceFromCenter = function (isForward, activeRect, targetRect) {\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n // Manage componentRef resolution.\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n _this._id = getId('FocusZone');\n _this._focusAlignment = {\n left: 0,\n top: 0,\n };\n _this._processingTabKey = false;\n var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n return _this;\n }\n /** Used for testing purposes only. */\n FocusZone.getOuterZones = function () {\n return _outerZones.size;\n };\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n * for ref counting to work correctly!\n */\n FocusZone._onKeyDownCapture = function (ev) {\n // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n }\n };\n FocusZone.prototype.componentDidMount = function () {\n var root = this._root.current;\n _allInstances[this._id] = this;\n if (root) {\n var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n if (!this._isInnerZone) {\n _outerZones.add(this);\n this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (this.props.defaultActiveElement) {\n // eslint-disable-next-line deprecation/deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n }\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n };\n FocusZone.prototype.componentDidUpdate = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n // reset those variables (and update tab indexes) to avoid memory leaks\n if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n (this._defaultFocusElement &&\n !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n this._activeElement = null;\n this._defaultFocusElement = null;\n this._updateTabIndexes();\n }\n if (!this.props.preventFocusRestoration &&\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n // The element has been removed after the render, attempt to restore focus.\n var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n }\n else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n };\n FocusZone.prototype.componentWillUnmount = function () {\n delete _allInstances[this._id];\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n this._activeElement = null;\n this._defaultFocusElement = null;\n };\n FocusZone.prototype.render = function () {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, tag = _a.as, elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n var divProps = getNativeProps(this.props, htmlElementProperties);\n var Tag = tag || elementType || 'div';\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n // Only support RTL defined in global theme, not contextual theme/RTL.\n var theme = getTheme();\n return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n // Once the getClassName correctly memoizes inputs this should\n // be replaced so that className is passed to getRootClass and is included there so\n // the class names will always be in the same order.\n className: css(getRootClass(), className), \n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n };\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n if (this._root.current) {\n if (!forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone) {\n var ownerZoneElement = this._getOwnerZone(this._root.current);\n if (ownerZoneElement !== this._root.current) {\n var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n return false;\n }\n else if (!forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement) &&\n (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n this._activeElement.focus();\n return true;\n }\n else {\n var firstChild = this._root.current.firstChild;\n return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n }\n }\n return false;\n };\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusLast = function () {\n if (this._root.current) {\n var lastChild = this._root.current && this._root.current.lastChild;\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n }\n return false;\n };\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusElement = function (element, forceAlignment) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, onBeforeFocus = _a.onBeforeFocus, shouldReceiveFocus = _a.shouldReceiveFocus;\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n if (element) {\n // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n this._setActiveElement(element, forceAlignment);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n return true;\n }\n return false;\n };\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n FocusZone.prototype.setFocusAlignment = function (point) {\n this._focusAlignment = point;\n };\n Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n get: function () {\n return this._defaultFocusElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n get: function () {\n return this._activeElement;\n },\n enumerable: false,\n configurable: true\n });\n FocusZone.prototype._evaluateFocusBeforeRender = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (doc) {\n var focusedElement = doc.activeElement;\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n var shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n }\n }\n };\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n FocusZone.prototype._setParkedFocus = function (isParked) {\n var root = this._root.current;\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n }\n else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n }\n else {\n root.removeAttribute('tabindex');\n }\n }\n }\n };\n FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n var previousActiveElement = this._activeElement;\n this._activeElement = element;\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n previousActiveElement.tabIndex = -1;\n }\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n this._activeElement.tabIndex = 0;\n }\n };\n FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n };\n /**\n * Walk up the dom try to find a focusable element.\n */\n FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n var target = targetElement;\n if (target === this._root.current) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SUMMARY') {\n return false;\n }\n if (this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n raiseClickFromKeyboardEvent(target, ev);\n return true;\n }\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n } while (target !== this._root.current);\n return false;\n };\n /**\n * Traverse to find first child zone.\n */\n FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n rootElement = rootElement || this._activeElement || this._root.current;\n if (!rootElement) {\n return null;\n }\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var child = rootElement.firstElementChild;\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var match = this._getFirstInnerZone(child);\n if (match) {\n return match;\n }\n child = child.nextElementSibling;\n }\n return null;\n };\n FocusZone.prototype._moveFocus = function (isForward, getDistanceFromCenter, ev, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n var candidateDistance = -1;\n var candidateElement = undefined;\n var changedFocus = false;\n var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n do {\n element = (isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n }\n else {\n candidateElement = element;\n break;\n }\n } while (element);\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n else {\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n }\n return changedFocus;\n };\n FocusZone.prototype._moveFocusDown = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (this._moveFocus(true, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n if (targetRectTop < activeRectBottom) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusUp = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (this._moveFocus(false, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectBottom = Math.floor(targetRect.bottom);\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectTop = Math.floor(activeRect.top);\n if (targetRectBottom > activeRectTop) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusLeft = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(getRTL(theme), function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.right <= activeRect.right &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = activeRect.right - targetRect.right;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusRight = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(!getRTL(theme), function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.left >= activeRect.left &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = targetRect.left - activeRect.left;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n var candidateDistance = -1;\n var candidateElement = undefined;\n var targetTop = -1;\n var targetBottom = -1;\n var pagesize = scrollableParent.clientHeight;\n var activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n var changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement, false, true);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n return changedFocus;\n };\n FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n if (this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)) {\n var rect = element.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var top_1 = rect.top + rect.height / 2;\n if (!this._focusAlignment) {\n this._focusAlignment = { left: left, top: top_1 };\n }\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n if (isVertical) {\n this._focusAlignment.top = top_1;\n }\n }\n };\n FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n return this._getOwnerZone(element) === this._root.current;\n };\n FocusZone.prototype._getOwnerZone = function (element) {\n var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n return parentElement;\n };\n FocusZone.prototype._updateTabIndexes = function (element) {\n if (!this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function') {\n this._activeElement = this.props.defaultTabbableElement(this._root.current);\n }\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement)) {\n this._activeElement = null;\n }\n var childNodes = element && element.children;\n for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n var child = childNodes[childIndex];\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n if (isElementTabbable(child)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n }\n else if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n }\n else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n this._updateTabIndexes(child);\n }\n };\n FocusZone.prototype._isContentEditableElement = function (element) {\n return element && element.getAttribute('contenteditable') === 'true';\n };\n FocusZone.prototype._isElementInput = function (element) {\n if (element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n return true;\n }\n return false;\n };\n FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n // If a tab was used, we want to focus on the next element.\n if (!this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n var selectionStart = element.selectionStart;\n var selectionEnd = element.selectionEnd;\n var isRangeSelected = selectionStart !== selectionEnd;\n var inputValue = element.value;\n var isReadonly = element.readOnly;\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (isRangeSelected ||\n (selectionStart > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n return false;\n }\n }\n return true;\n };\n FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n };\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n FocusZone.prototype._portalContainsElement = function (element) {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n };\n FocusZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusZone.defaultProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n };\n return FocusZone;\n}(React.Component));\nexport { FocusZone };\n//# sourceMappingURL=FocusZone.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0,\n /** All tabbing action is allowed */\n all: 1,\n /** Tabbing is allowed only on input elements */\n inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n /** Only react to up/down arrows. */\n FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n /** Only react to left/right arrows. */\n FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n /** React to all arrows. */\n FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n var asyncRef = React.useRef();\n if (!asyncRef.current) {\n asyncRef.current = new Async();\n }\n React.useEffect(function () {\n return function () {\n var _a;\n (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n asyncRef.current = undefined;\n };\n }, []);\n return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n var ref = React.useRef();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? initialValue() : initialValue,\n };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n var isControlled = useConst(controlledValue !== undefined);\n var currentValue = isControlled ? controlledValue : value;\n // Duplicate the current value and onChange in refs so they're accessible from\n // setValueOrCallOnChange without creating a new callback every time\n var valueRef = React.useRef(currentValue);\n var onChangeRef = React.useRef(onChange);\n React.useEffect(function () {\n valueRef.current = currentValue;\n onChangeRef.current = onChange;\n });\n // To match the behavior of the setter returned by React.useState, this callback's identity\n // should never change. This means it MUST NOT directly reference variables that can change.\n var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n // Assuming here that TValue is not a function, because a controllable value will typically\n // be something a user can enter as input\n var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n if (onChangeRef.current) {\n onChangeRef.current(ev, newValue);\n }\n if (!isControlled) {\n setValue(newValue);\n }\n }; });\n return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n//# sourceMappingURL=useId.js.map","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n var refs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArray([], refs));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement) {\n return;\n }\n var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n var targetWindow = useWindow();\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n if (target) {\n if (typeof target === 'string') {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n }\n else if ('stopPropagation' in target) {\n targetRef.current = target;\n }\n else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n }\n else if ('current' in target) {\n targetRef.current = target.current;\n }\n else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n var unmountRef = React.useRef(callback);\n unmountRef.current = callback;\n React.useEffect(function () { return function () {\n var _a;\n (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","export var DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0,\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1,\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2,\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3,\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4,\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5,\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6,\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7,\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8,\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9,\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10,\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11,\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12,\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n var _a, _b;\n var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n var isExpanded = expanded && !isSplit;\n return mergeStyleSets({\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n {\n selectors: (_a = {},\n _a[\":hover .\" + classNames.msButtonIcon] = styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n _a[\":hover .\" + classNames.msButtonMenuIcon] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n _a[':hover'] = styles.rootExpandedHovered,\n _a),\n },\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n _b[\":hover .\" + classNames.msButtonLabel] = styles.labelHovered,\n _b[\":hover .\" + classNames.msButtonIcon] = styles.iconHovered,\n _b[\":hover .\" + classNames.msButtonDescription] = styles.descriptionHovered,\n _b[\":hover .\" + classNames.msButtonMenuIcon] = styles.menuIconHovered,\n _b[':focus'] = styles.rootFocused,\n _b[':active'] = styles.rootPressed,\n _b[\":active .\" + classNames.msButtonIcon] = styles.iconPressed,\n _b[\":active .\" + classNames.msButtonDescription] = styles.descriptionPressed,\n _b[\":active .\" + classNames.msButtonMenuIcon] = styles.menuIconPressed,\n _b),\n },\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n selectors: {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n selectors: {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n var className = props.className, imageProps = props.imageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n var altText = imageProps.alt || props['aria-label'];\n var hasName = altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n // move naming or describing attributes from the container (where they are invalid) to the image\n var imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n var containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n // Item is not checkable.\n return null;\n}\nexport function hasSubmenu(item) {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n var item = props.item, classNames = props.classNames;\n var iconProps = item.iconProps;\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props, defaultIconRenderer);\n }\n return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n var isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n var onClick = function (e) { return onCheckmarkClick(item, e); };\n return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onClick }));\n }\n return null;\n};\nvar renderItemName = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\nvar renderSecondaryText = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n if (item.secondaryText) {\n return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n }\n return null;\n};\nvar renderSubMenuIcon = function (_a) {\n var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n if (hasSubmenu(item)) {\n return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n }\n return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n __extends(ContextualMenuItemBase, _super);\n function ContextualMenuItemBase(props) {\n var _this = _super.call(this, props) || this;\n _this.openSubMenu = function () {\n var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n if (getSubmenuTarget) {\n var submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n _this.dismissSubMenu = function () {\n var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n _this.dismissMenu = function (dismissAll) {\n var dismissMenu = _this.props.dismissMenu;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemBase.prototype.render = function () {\n var _a = this.props, item = _a.item, classNames = _a.classNames;\n var renderContent = item.onRenderContent || this._renderLayout;\n return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n renderCheckMarkIcon: renderCheckMarkIcon,\n renderItemIcon: renderItemIcon,\n renderItemName: renderItemName,\n renderSecondaryText: renderSecondaryText,\n renderSubMenuIcon: renderSubMenuIcon,\n })));\n };\n ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n return (React.createElement(React.Fragment, null,\n defaultRenders.renderCheckMarkIcon(props),\n defaultRenders.renderItemIcon(props),\n defaultRenders.renderItemName(props),\n defaultRenders.renderSecondaryText(props),\n defaultRenders.renderSubMenuIcon(props)));\n };\n return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n var _a, _b, _c, _d, _e;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n var menuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px',\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n // ensure disabled text looks different than enabled\n color: 'GrayText',\n opacity: 1,\n },\n _a),\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: (_b = {\n '.ms-ContextualMenu-submenuIcon': (_c = {},\n _c[HighContrastSelector] = {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n _c)\n },\n _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _b),\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px',\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n secondaryText: {\n color: theme.palette.neutralSecondary,\n paddingLeft: '20px',\n textAlign: 'right',\n },\n icon: {\n display: 'inline-block',\n minHeight: '1px',\n maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n fontSize: IconFontSizes.medium,\n width: IconFontSizes.medium,\n margin: '0 4px',\n verticalAlign: 'middle',\n flexShrink: '0',\n selectors: (_d = {},\n _d[MediumScreenSelector] = {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n _d),\n },\n iconColor: {\n color: semanticColors.menuIcon,\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n },\n subMenuIcon: {\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n color: palette.neutralSecondary,\n textAlign: 'center',\n display: 'inline-block',\n verticalAlign: 'middle',\n flexShrink: '0',\n fontSize: IconFontSizes.small,\n selectors: (_e = {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n }\n },\n _e[MediumScreenSelector] = {\n fontSize: IconFontSizes.medium, // 16px\n },\n _e),\n },\n splitButtonFlexContainer: [\n getFocusStyle(theme),\n {\n display: 'flex',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n ],\n };\n return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n var _a;\n return mergeStyleSets(getDividerClassNames(theme), {\n /* eslint-enable deprecation/deprecation */\n wrapper: {\n position: 'absolute',\n right: 28,\n selectors: (_a = {},\n _a[MediumScreenSelector] = {\n right: 32, // fontSize of the icon increased from 12px to 16px\n },\n _a),\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n});\nvar GlobalClassNames = {\n item: 'ms-ContextualMenu-item',\n divider: 'ms-ContextualMenu-divider',\n root: 'ms-ContextualMenu-link',\n isChecked: 'is-checked',\n isExpanded: 'is-expanded',\n isDisabled: 'is-disabled',\n linkContent: 'ms-ContextualMenu-linkContent',\n linkContentMenu: 'ms-ContextualMenu-linkContent',\n icon: 'ms-ContextualMenu-icon',\n iconColor: 'ms-ContextualMenu-iconColor',\n checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n label: 'ms-ContextualMenu-itemText',\n secondaryText: 'ms-ContextualMenu-secondaryText',\n splitMenu: 'ms-ContextualMenu-splitMenu',\n screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n var _a, _b, _c, _d;\n var styles = getMenuItemStyles(theme);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return mergeStyleSets({\n item: [classNames.item, styles.item, itemClassName],\n divider: [classNames.divider, styles.divider, dividerClassName],\n root: [\n classNames.root,\n styles.root,\n checked && [classNames.isChecked, styles.rootChecked],\n isAnchorLink && styles.anchorLink,\n expanded && [classNames.isExpanded, styles.rootExpanded],\n disabled && [classNames.isDisabled, styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_a = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _a[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _a),\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: \"calc(100% - \" + CONTEXTUAL_SPLIT_MENU_MINWIDTH + \")\",\n },\n checked && ['is-checked', styles.rootChecked],\n (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n !(disabled || primaryDisabled) &&\n !checked && [\n {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n // when hovering over the splitPrimary also affect the splitMenu\n _b[\":hover ~ .\" + classNames.splitMenu] = styles.rootHovered,\n _b[':active'] = styles.rootPressed,\n _b[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _b[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _b),\n },\n ],\n ],\n splitMenu: [\n classNames.splitMenu,\n styles.root,\n {\n flexBasis: '0',\n padding: '0 8px',\n minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n },\n expanded && ['is-expanded', styles.rootExpanded],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_c = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n _c[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _c[\".\" + IsFocusVisibleClassName + \" &:hover\"] = { background: 'inherit;' },\n _c),\n },\n ],\n ],\n anchorLink: styles.anchorLink,\n linkContent: [classNames.linkContent, styles.linkContent],\n linkContentMenu: [\n classNames.linkContentMenu,\n styles.linkContent,\n {\n justifyContent: 'center',\n },\n ],\n icon: [\n classNames.icon,\n knownIcon && styles.iconColor,\n styles.icon,\n iconClassName,\n disabled && [classNames.isDisabled, styles.iconDisabled],\n ],\n iconColor: styles.iconColor,\n checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n subMenuIcon: [\n classNames.subMenuIcon,\n styles.subMenuIcon,\n subMenuClassName,\n expanded && { color: theme.palette.neutralPrimary },\n disabled && [styles.iconDisabled],\n ],\n label: [classNames.label, styles.label],\n secondaryText: [classNames.secondaryText, styles.secondaryText],\n splitContainer: [\n styles.splitButtonFlexContainer,\n !disabled &&\n !checked && [\n {\n selectors: (_d = {},\n _d[\".\" + IsFocusVisibleClassName + \" &:focus, .\" + IsFocusVisibleClassName + \" &:focus:hover\"] = styles.rootFocused,\n _d),\n },\n ],\n ],\n screenReaderText: [\n classNames.screenReaderText,\n styles.screenReaderText,\n hiddenContentStyle,\n { visibility: 'hidden' },\n ],\n });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n // eslint-disable-next-line deprecation/deprecation\n return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n __extends(ContextualMenuItemWrapper, _super);\n function ContextualMenuItemWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._onItemMouseEnter = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget);\n }\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget);\n }\n };\n _this._onItemMouseLeave = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._onItemMouseMove = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget);\n }\n };\n _this._getSubmenuTarget = function () {\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n return !shallowCompare(newProps, this.props);\n };\n return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n function KeytipManager() {\n this.keytips = {};\n this.persistedKeytips = {};\n this.sequenceMapping = {};\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n this.inKeytipMode = false;\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n this.shouldEnterKeytipMode = true;\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n this.delayUpdatingKeytipChange = false;\n }\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n KeytipManager.getInstance = function () {\n return this._instance;\n };\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n };\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n KeytipManager.prototype.register = function (keytipProps, persisted) {\n if (persisted === void 0) { persisted = false; }\n var props = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n var uniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event_1, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n return uniqueKeytip.uniqueID;\n };\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n var newKeytipProps = this.addParentOverflow(keytipProps);\n var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n var oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n };\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n if (persisted === void 0) { persisted = false; }\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n };\n /**\n * Manual call to enter keytip mode\n */\n KeytipManager.prototype.enterKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n };\n /**\n * Manual call to exit keytip mode\n */\n KeytipManager.prototype.exitKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n };\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n KeytipManager.prototype.getKeytips = function () {\n var _this = this;\n return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n };\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n var fullSequence = __spreadArray([], keytipProps.keySequences);\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n }\n }\n return keytipProps;\n };\n /**\n * Public function to bind for overflow items that have a submenu\n */\n KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences: overflowButtonSequences,\n keytipSequences: keytipSequences,\n });\n };\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n if (uniqueID === void 0) { uniqueID = getId(); }\n return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n };\n KeytipManager._instance = new KeytipManager();\n return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n return keySequences.reduce(function (prevValue, keySequence) {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n var overflowSequenceLen = overflowKeySequences.length;\n var overflowSequence = __spreadArray([], overflowKeySequences).pop();\n var newKeySequences = __spreadArray([], keySequences);\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n var describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n var _a;\n var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n return children((_a = {},\n _a[DATAKTP_TARGET] = keytipId,\n _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n _a['aria-describedby'] = ariaDescribedBy,\n _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n var uniqueId = React.useRef();\n var keytipProps = options.keytipProps\n ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n var keytipManager = useConst(KeytipManager.getInstance());\n var prevOptions = usePrevious(options);\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n useIsomorphicLayoutEffect(function () {\n if (uniqueId.current &&\n keytipProps &&\n ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n return function () {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var nativeKeytipProps = {\n ariaDescribedBy: undefined,\n keytipId: undefined,\n };\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n // Add the parent overflow sequence if necessary\n var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n // Construct aria-describedby and data-ktp-id attributes\n var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n var keySequences = __spreadArray([], newKeytipProps.keySequences);\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n var keytipId = sequencesToID(keySequences);\n return {\n ariaDescribedBy: ariaDescribedBy,\n keytipId: keytipId,\n };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n __extends(ContextualMenuAnchor, _super);\n function ContextualMenuAnchor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._anchor = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._getSubmenuTarget = function () {\n return _this._anchor.current ? _this._anchor.current : undefined;\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n return _this;\n }\n ContextualMenuAnchor.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var anchorRel = item.rel;\n if (item.target && item.target.toLowerCase() === '_blank') {\n anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n }\n var itemHasSubmenu = hasSubmenu(item);\n var nativeProps = getNativeProps(item, anchorProperties);\n var disabled = isItemDisabled(item);\n var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, nativeProps['aria-describedby']);\n var additionalItemProperties = {\n 'aria-describedby': ariaDescribedByIds,\n };\n return (React.createElement(\"div\", null,\n React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, additionalItemProperties, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \n // eslint-disable-next-line deprecation/deprecation\n style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n };\n return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = React.forwardRef(function (props, ref) {\n // eslint-disable-next-line deprecation/deprecation\n var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n return (React.createElement(\"span\", { className: classNames.wrapper, ref: ref },\n React.createElement(\"span\", { className: classNames.divider })));\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","export var getStyles = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n if (getClassNames) {\n var names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n __extends(ContextualMenuSplitButton, _super);\n function ContextualMenuSplitButton(props) {\n var _this = _super.call(this, props) || this;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._getSubmenuTarget = function () {\n return _this._splitButton;\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._onItemMouseEnterPrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseEnterIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, _this._splitButton);\n }\n };\n _this._onItemMouseMovePrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseMoveIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, _this._splitButton);\n }\n };\n _this._onIconItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n }\n };\n _this._executeItemClick = function (ev) {\n var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (_this._processingTouch && onItemClick) {\n return onItemClick(item, ev);\n }\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n _this._onTouchStart = function (ev) {\n if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n _this._handleTouchAndPointerEvent(ev);\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n return _this;\n }\n ContextualMenuSplitButton.prototype.componentDidMount = function () {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n };\n ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ContextualMenuSplitButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, onItemMouseLeave = _a.onItemMouseLeave, expandedMenuItemKey = _a.expandedMenuItemKey;\n var itemHasSubmenu = hasSubmenu(item);\n var keytipProps = item.keytipProps;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n var ariaDescription = item.ariaDescription;\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": item.isChecked || item.checked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n _this._renderSplitDivider(item),\n _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n var itemProps = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n /* eslint-disable deprecation/deprecation */\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n /* eslint-enable deprecation/deprecation */\n className: classNames.splitPrimary,\n canCheck: item.canCheck,\n isChecked: item.isChecked,\n checked: item.checked,\n iconProps: item.iconProps,\n onRenderIcon: item.onRenderIcon,\n data: item.data,\n 'data-is-focusable': false,\n };\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n };\n ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, keytipAttributes) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var itemProps = {\n onClick: this._onIconItemClick,\n disabled: isItemDisabled(item),\n className: classNames.splitMenu,\n subMenuProps: item.subMenuProps,\n submenuIconProps: item.submenuIconProps,\n split: true,\n key: item.key,\n };\n var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMoveIcon,\n 'data-is-focusable': false,\n 'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n 'aria-hidden': true,\n });\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, buttonProps),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n var _this = this;\n var onTap = this.props.onTap;\n if (onTap) {\n onTap(ev);\n }\n // If we already have an existing timeout from a previous touch/pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n __extends(ContextualMenuButton, _super);\n function ContextualMenuButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._btn = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._getSubmenuTarget = function () {\n return _this._btn.current ? _this._btn.current : undefined;\n };\n return _this;\n }\n ContextualMenuButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n var defaultRole = getMenuItemAriaRole(item);\n var itemHasSubmenu = hasSubmenu(item);\n var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n var buttonNativeProperties = getNativeProps(item, buttonProperties);\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n var itemRole = item.role || defaultRole;\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, buttonNativeProperties['aria-describedby']);\n var itemButtonProperties = {\n className: classNames.root,\n onClick: this._onItemClick,\n onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n onMouseEnter: this._onItemMouseEnter,\n onMouseLeave: this._onItemMouseLeave,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedByIds,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n 'aria-posinset': focusableElementIndex + 1,\n 'aria-setsize': totalItemCount,\n 'aria-disabled': isItemDisabled(item),\n 'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // eslint-disable-next-line deprecation/deprecation\n style: item.style,\n };\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","import * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, FocusRects, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport { useTarget, usePrevious, useAsync, useWarnings, useId, useIsomorphicLayoutEffect, } from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nvar DEFAULT_PROPS = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n};\nexport function getSubmenuItems(item, options) {\n var target = options === null || options === void 0 ? void 0 : options.target;\n // eslint-disable-next-line deprecation/deprecation\n var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n if (items) {\n var overrideItems = [];\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var subItem = items_1[_i];\n if (subItem.preferMenuTargetAsEventTarget) {\n // For sub-items which need an overridden target, intercept `onClick`\n var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n }\n else {\n overrideItems.push(subItem);\n }\n }\n return overrideItems;\n }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n return items.some(function (item) {\n if (item.canCheck) {\n return true;\n }\n // If the item is a section, check if any of the items in the section can check.\n if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n return true;\n }\n return false;\n });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n var styles = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styles[_i] = arguments[_i];\n }\n return function (styleProps) {\n return concatStyleSetsWithProps.apply(void 0, __spreadArray([styleProps, getItemStyles], styles));\n };\n});\n//#region Custom hooks\nfunction useVisibility(props, targetWindow) {\n var _a = props.hidden, hidden = _a === void 0 ? false : _a, onMenuDismissed = props.onMenuDismissed, onMenuOpened = props.onMenuOpened;\n var previousHidden = usePrevious(hidden);\n var onMenuOpenedRef = React.useRef(onMenuOpened);\n var onMenuClosedRef = React.useRef(onMenuDismissed);\n var propsRef = React.useRef(props);\n onMenuOpenedRef.current = onMenuOpened;\n onMenuClosedRef.current = onMenuDismissed;\n propsRef.current = props;\n React.useEffect(function () {\n var _a, _b;\n // Don't issue dismissed callbacks on initial mount\n if (hidden && previousHidden === false) {\n (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current);\n }\n else if (!hidden && previousHidden !== false) {\n (_b = onMenuOpenedRef.current) === null || _b === void 0 ? void 0 : _b.call(onMenuOpenedRef, propsRef.current);\n }\n }, [hidden, previousHidden]);\n // Issue onDismissedCallback on unmount\n React.useEffect(function () { return function () { var _a; return (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current); }; }, []);\n}\nfunction useSubMenuState(_a, dismiss) {\n var hidden = _a.hidden, items = _a.items, theme = _a.theme, className = _a.className, id = _a.id, menuTarget = _a.target;\n var _b = React.useState(), expandedMenuItemKey = _b[0], setExpandedMenuItemKey = _b[1];\n var _c = React.useState(), submenuTarget = _c[0], setSubmenuTarget = _c[1];\n /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n var _d = React.useState(), shouldFocusOnContainer = _d[0], setShouldFocusOnContainer = _d[1];\n var subMenuId = useId(COMPONENT_NAME, id);\n var closeSubMenu = React.useCallback(function () {\n setShouldFocusOnContainer(undefined);\n setExpandedMenuItemKey(undefined);\n setSubmenuTarget(undefined);\n }, []);\n var openSubMenu = React.useCallback(function (_a, target, focusContainer) {\n var submenuItemKey = _a.key;\n if (expandedMenuItemKey === submenuItemKey) {\n return;\n }\n target.focus();\n setShouldFocusOnContainer(focusContainer);\n setExpandedMenuItemKey(submenuItemKey);\n setSubmenuTarget(target);\n }, [expandedMenuItemKey]);\n React.useEffect(function () {\n if (hidden) {\n closeSubMenu();\n }\n }, [hidden, closeSubMenu]);\n var onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n var getSubmenuProps = function () {\n var item = findItemByKeyFromItems(expandedMenuItemKey, items);\n var submenuProps = null;\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget }),\n target: submenuTarget,\n onDismiss: onSubMenuDismiss,\n isSubMenu: true,\n id: subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer: shouldFocusOnContainer,\n directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className: className,\n gapSpace: 0,\n isBeakVisible: false,\n };\n if (item.subMenuProps) {\n assign(submenuProps, item.subMenuProps);\n }\n if (item.preferMenuTargetAsEventTarget) {\n var onItemClick = item.onItemClick;\n submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n }\n }\n return submenuProps;\n };\n return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss];\n}\nfunction useShouldUpdateFocusOnMouseMove(_a) {\n var delayUpdateFocusOnHover = _a.delayUpdateFocusOnHover, hidden = _a.hidden;\n var shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n var gotMouseMove = React.useRef(false);\n React.useEffect(function () {\n shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n }, [delayUpdateFocusOnHover, hidden]);\n var onMenuFocusCapture = React.useCallback(function () {\n if (delayUpdateFocusOnHover) {\n shouldUpdateFocusOnMouseEvent.current = false;\n }\n }, [delayUpdateFocusOnHover]);\n return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture];\n}\nfunction usePreviousActiveElement(_a, targetWindow, hostElement) {\n var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus;\n var previousActiveElement = React.useRef();\n var tryFocusPreviousActiveElement = React.useCallback(function (options) {\n var _a, _b;\n if (onRestoreFocus) {\n onRestoreFocus(options);\n }\n else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n }, [onRestoreFocus]);\n useIsomorphicLayoutEffect(function () {\n var _a, _b;\n if (!hidden) {\n var newElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n if (!((_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.contains(newElement)) && newElement.tagName !== 'BODY') {\n previousActiveElement.current = newElement;\n }\n }\n else if (previousActiveElement.current) {\n tryFocusPreviousActiveElement({\n originalElement: previousActiveElement.current,\n containsFocus: true,\n documentContainsFocus: ((_b = getDocument()) === null || _b === void 0 ? void 0 : _b.hasFocus()) || false,\n });\n previousActiveElement.current = undefined;\n }\n }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement, hostElement]);\n return [tryFocusPreviousActiveElement];\n}\nfunction useKeyHandlers(_a, dismiss, hostElement, openSubMenu) {\n var theme = _a.theme, isSubMenu = _a.isSubMenu, _b = _a.focusZoneProps, _c = _b === void 0 ? {} : _b, checkForNoWrap = _c.checkForNoWrap, _d = _c.direction, focusZoneDirection = _d === void 0 ? FocusZoneDirection.vertical : _d;\n /** True if the most recent keydown event was for alt (option) or meta (command). */\n var lastKeyDownWasAltOrMeta = React.useRef();\n /**\n * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n * if so, stops event propagation and dismisses menu(s).\n * @param ev - The keyboard event.\n * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n * Only does anything if `shouldHandleKey` returns true.\n * @returns Whether the event was handled.\n */\n var keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n var handled = false;\n if (shouldHandleKey(ev)) {\n dismiss(ev, dismissAllMenus);\n ev.preventDefault();\n ev.stopPropagation();\n handled = true;\n }\n return handled;\n };\n /**\n * Checks if the submenu should be closed\n */\n var shouldCloseSubMenu = function (ev) {\n var submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which !== submenuCloseKey || !isSubMenu) {\n return false;\n }\n return !!(focusZoneDirection === FocusZoneDirection.vertical ||\n (checkForNoWrap && !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n };\n var shouldHandleKeyDown = function (ev) {\n return (\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.escape ||\n shouldCloseSubMenu(ev) ||\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n };\n var onKeyDown = function (ev) {\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in shouldHandleKeyUp for reasoning.\n lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n // On Mac, pressing escape dismisses all levels of native context menus\n // eslint-disable-next-line deprecation/deprecation\n var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n var shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n lastKeyDownWasAltOrMeta.current = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\n var onKeyUp = function (ev) {\n return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n };\n var onMenuKeyDown = function (ev) {\n // Mark as handled if onKeyDown returns true (for handling collapse cases)\n // or if we are attempting to expand a submenu\n var handled = onKeyDown(ev);\n if (handled || !hostElement.current) {\n return;\n }\n // If we have a modifier key being pressed, we do not want to move focus.\n // Otherwise, handle up and down keys.\n var hasModifier = !!(ev.altKey || ev.metaKey);\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n var elementToFocus = isUp\n ? getLastFocusable(hostElement.current, hostElement.current.lastChild, true)\n : getFirstFocusable(hostElement.current, hostElement.current.firstChild, true);\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n var onItemKeyDown = function (item, ev) {\n var openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n if (!item.disabled &&\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n openSubMenu(item, ev.currentTarget);\n ev.preventDefault();\n }\n };\n return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown];\n}\nfunction useScrollHandler(asyncTracker) {\n var isScrollIdle = React.useRef(true);\n var scrollIdleTimeoutId = React.useRef();\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n var onScroll = function () {\n if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n scrollIdleTimeoutId.current = undefined;\n }\n else {\n isScrollIdle.current = false;\n }\n scrollIdleTimeoutId.current = asyncTracker.setTimeout(function () {\n isScrollIdle.current = true;\n }, NavigationIdleDelay);\n };\n return [onScroll, isScrollIdle];\n}\nfunction useOnSubmenuDismiss(dismiss, closeSubMenu) {\n var isMountedRef = React.useRef(false);\n React.useEffect(function () {\n isMountedRef.current = true;\n return function () {\n isMountedRef.current = false;\n };\n }, []);\n /**\n * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n * after the component is unmounted. The isMountedRef is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n var onSubMenuDismiss = function (ev, dismissAll) {\n if (dismissAll) {\n dismiss(ev, dismissAll);\n }\n else if (isMountedRef.current) {\n closeSubMenu();\n }\n };\n return onSubMenuDismiss;\n}\nfunction useSubmenuEnterTimer(_a, asyncTracker) {\n var _b = _a.subMenuHoverDelay, subMenuHoverDelay = _b === void 0 ? NavigationIdleDelay : _b;\n var enterTimerRef = React.useRef(undefined);\n var cancelSubMenuTimer = function () {\n if (enterTimerRef.current !== undefined) {\n asyncTracker.clearTimeout(enterTimerRef.current);\n enterTimerRef.current = undefined;\n }\n };\n var startSubmenuTimer = function (onTimerExpired) {\n enterTimerRef.current = asyncTracker.setTimeout(function () {\n onTimerExpired();\n cancelSubMenuTimer();\n }, subMenuHoverDelay);\n };\n return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef];\n}\nfunction useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss) {\n var menuTarget = props.target;\n var onItemMouseEnterBase = function (item, ev, target) {\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var onItemMouseMoveBase = function (item, ev, target) {\n var targetElement = ev.currentTarget;\n // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n else {\n return;\n }\n if (!isScrollIdle.current ||\n subMenuEntryTimer.current !== undefined ||\n targetElement === (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement)) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var shouldIgnoreMouseEvent = function () {\n return !isScrollIdle.current || !gotMouseMove.current;\n };\n var onMouseItemLeave = function (item, ev) {\n var _a;\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n cancelSubMenuTimer();\n if (expandedMenuItemKey !== undefined) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (hostElement.current.setActive) {\n try {\n hostElement.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n (_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n };\n /**\n * Handles updating focus when mouseEnter or mouseMove fire.\n * As part of updating focus, This function will also update\n * the expand/collapse state accordingly.\n */\n var updateFocusOnMouseEvent = function (item, ev, target) {\n var targetElement = target ? target : ev.currentTarget;\n if (item.key === expandedMenuItemKey) {\n return;\n }\n cancelSubMenuTimer();\n // If the menu is not expanded we can update focus without any delay\n if (expandedMenuItemKey === undefined) {\n targetElement.focus();\n }\n // Delay updating expanding/dismissing the submenu\n // and only set focus if we have not already done so\n if (hasSubmenu(item)) {\n ev.stopPropagation();\n startSubmenuTimer(function () {\n targetElement.focus();\n openSubMenu(item, targetElement, true);\n });\n }\n else {\n startSubmenuTimer(function () {\n onSubMenuDismiss(ev);\n targetElement.focus();\n });\n }\n };\n var onItemClick = function (item, ev) {\n onItemClickBase(item, ev, ev.currentTarget);\n };\n var onItemClickBase = function (item, ev, target) {\n var items = getSubmenuItems(item, { target: menuTarget });\n // Cancel an async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n cancelSubMenuTimer();\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n executeItemClick(item, ev);\n }\n else {\n if (item.key !== expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof props.shouldFocusOnContainer === 'boolean'\n ? props.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n openSubMenu(item, target, shouldFocusOnContainer);\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n var onAnchorClick = function (item, ev) {\n executeItemClick(item, ev);\n ev.stopPropagation();\n };\n var executeItemClick = function (item, ev) {\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n var shouldDismiss = false;\n if (item.onClick) {\n shouldDismiss = !!item.onClick(ev, item);\n }\n else if (props.onItemClick) {\n shouldDismiss = !!props.onItemClick(ev, item);\n }\n if (shouldDismiss || !ev.defaultPrevented) {\n dismiss(ev, true);\n }\n };\n return [\n onItemMouseEnterBase,\n onItemMouseMoveBase,\n onMouseItemLeave,\n onItemClick,\n onAnchorClick,\n executeItemClick,\n onItemClickBase,\n ];\n}\n//#endregion\nexport var ContextualMenuBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var _a;\n var _b = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _b.ref, props = __rest(_b, [\"ref\"]);\n var hostElement = React.useRef(null);\n var asyncTracker = useAsync();\n var menuId = useId(COMPONENT_NAME, props.id);\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: {\n getMenuClassNames: 'styles',\n },\n });\n var dismiss = function (ev, dismissAll) { var _a; return (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props, ev, dismissAll); };\n var _c = useTarget(props.target, hostElement), targetRef = _c[0], targetWindow = _c[1];\n var tryFocusPreviousActiveElement = usePreviousActiveElement(props, targetWindow, hostElement)[0];\n var _d = useSubMenuState(props, dismiss), expandedMenuItemKey = _d[0], openSubMenu = _d[1], getSubmenuProps = _d[2], onSubMenuDismiss = _d[3];\n var _e = useShouldUpdateFocusOnMouseMove(props), shouldUpdateFocusOnMouseEvent = _e[0], gotMouseMove = _e[1], onMenuFocusCapture = _e[2];\n var _f = useScrollHandler(asyncTracker), onScroll = _f[0], isScrollIdle = _f[1];\n var _g = useSubmenuEnterTimer(props, asyncTracker), cancelSubMenuTimer = _g[0], startSubmenuTimer = _g[1], subMenuEntryTimer = _g[2];\n var responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n useVisibility(props, targetWindow);\n var _h = useKeyHandlers(props, dismiss, hostElement, openSubMenu), onKeyDown = _h[0], onKeyUp = _h[1], onMenuKeyDown = _h[2], onItemKeyDown = _h[3];\n var _j = useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss), onItemMouseEnterBase = _j[0], onItemMouseMoveBase = _j[1], onMouseItemLeave = _j[2], onItemClick = _j[3], onAnchorClick = _j[4], executeItemClick = _j[5], onItemClickBase = _j[6];\n //#region Render helpers\n var onDefaultRenderMenuList = function (menuListProps, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, defaultRender) {\n var indexCorrection = 0;\n var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n return (React.createElement(\"ul\", { className: menuClassNames.list, onKeyDown: onKeyDown, onKeyUp: onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n var menuItem = renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n indexCorrection += indexIncrease;\n }\n return menuItem;\n })));\n };\n var renderFocusZone = function (children, adjustedFocusZoneProps) {\n var _a = props.focusZoneAs, ChildrenRenderer = _a === void 0 ? FocusZone : _a;\n return React.createElement(ChildrenRenderer, __assign({}, adjustedFocusZoneProps), children);\n };\n /**\n * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n * cause the menu items to always re-render because the component update is based on shallow comparison.\n */\n var renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var _a;\n var renderedItems = [];\n var iconProps = item.iconProps || { iconName: 'None' };\n var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n itemProps = item.itemProps;\n var styles = itemProps ? itemProps.styles : undefined;\n // We only send a dividerClassName when the item to be rendered is a divider.\n // For all other cases, the default divider style is used.\n var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n // eslint-disable-next-line deprecation/deprecation\n var itemClassNames;\n // IContextualMenuItem#getItemClassNames for backwards compatibility\n // otherwise uses mergeStyles for class names.\n if (getItemClassNames) {\n itemClassNames = getItemClassNames(props.theme, isItemDisabled(item), expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n }\n else {\n var itemStyleProps = {\n theme: props.theme,\n disabled: isItemDisabled(item),\n expanded: expandedMenuItemKey === item.key,\n checked: !!getIsChecked(item),\n isAnchorLink: !!item.href,\n knownIcon: iconProps.iconName !== 'None',\n itemClassName: item.className,\n dividerClassName: dividerClassName,\n iconClassName: iconProps.className,\n subMenuClassName: subMenuIconClassName,\n primaryDisabled: item.primaryDisabled,\n };\n // We need to generate default styles then override if styles are provided\n // since the ContextualMenu currently handles item classNames.\n itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = menuClassNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (item.text === '-' || item.name === '-') {\n item.itemType = ContextualMenuItemType.Divider;\n }\n switch (item.itemType) {\n case ContextualMenuItemType.Divider:\n renderedItems.push(renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(renderSeparator(index, itemClassNames));\n var headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n var defaultRenderNormalItem = function () {\n return renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n var menuItem = props.onRenderContextualMenuItem\n ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n : defaultRenderNormalItem();\n renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n break;\n }\n // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n };\n var defaultMenuItemRenderer = function (item, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n return renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n };\n var renderSectionItem = function (sectionItem, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var sectionProps = sectionItem.sectionProps;\n if (!sectionProps) {\n return;\n }\n var headerItem;\n var groupProps;\n if (sectionProps.title) {\n var headerContextualMenuItem = undefined;\n var ariaLabelledby = '';\n if (typeof sectionProps.title === 'string') {\n // Since title is a user-facing string, it needs to be stripped\n // of whitespace in order to build a valid element ID\n var id_1 = menuId + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: \"section-\" + sectionProps.title + \"-title\",\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id_1,\n };\n ariaLabelledby = id_1;\n }\n else {\n var id_2 = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id_2 });\n ariaLabelledby = id_2;\n }\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabelledby,\n };\n headerItem = renderHeaderMenuItem(headerContextualMenuItem, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n }\n }\n if (sectionProps.items && sectionProps.items.length > 0) {\n return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\" + index },\n React.createElement(\"div\", __assign({}, groupProps),\n React.createElement(\"ul\", { className: menuClassNames.list, role: \"presentation\" },\n sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true),\n headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title),\n sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n return renderMenuItem(contextualMenuItem, itemsIndex, itemsIndex, sectionProps.items.length, hasCheckmarks, hasIcons, menuClassNames);\n }),\n sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)))));\n }\n };\n var renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n title) {\n return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n };\n var renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n top, fromSection) {\n if (fromSection || index > 0) {\n return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n }\n return null;\n };\n var renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n if (item.onRender) {\n return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), dismiss);\n }\n var contextualMenuItemAs = props.contextualMenuItemAs;\n var commonProps = {\n item: item,\n classNames: classNames,\n index: index,\n focusableElementIndex: focusableElementIndex,\n totalItemCount: totalItemCount,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n contextualMenuItemAs: contextualMenuItemAs,\n onItemMouseEnter: onItemMouseEnterBase,\n onItemMouseLeave: onMouseItemLeave,\n onItemMouseMove: onItemMouseMoveBase,\n onItemMouseDown: onItemMouseDown,\n executeItemClick: executeItemClick,\n onItemKeyDown: onItemKeyDown,\n expandedMenuItemKey: expandedMenuItemKey,\n openSubMenu: openSubMenu,\n dismissSubMenu: onSubMenuDismiss,\n dismissMenu: dismiss,\n };\n if (item.href) {\n return React.createElement(ContextualMenuAnchor, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n }\n if (item.split && hasSubmenu(item)) {\n return (React.createElement(ContextualMenuSplitButton, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n }\n return React.createElement(ContextualMenuButton, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase }));\n };\n var renderHeaderMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var _a = props.contextualMenuItemAs, ChildrenRenderer = _a === void 0 ? ContextualMenuItem : _a;\n var itemProps = item.itemProps, id = item.id;\n var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({ id: id, className: menuClassNames.header }, divHtmlProperties, { style: item.style }),\n React.createElement(ChildrenRenderer, __assign({ item: item, classNames: itemClassNames, index: index, onCheckmarkClick: hasCheckmarks ? onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n };\n //#endregion\n //#region Main render\n var isBeakVisible = props.isBeakVisible;\n var items = props.items, labelElementId = props.labelElementId, id = props.id, className = props.className, beakWidth = props.beakWidth, directionalHint = props.directionalHint, directionalHintForRTL = props.directionalHintForRTL, alignTargetEdge = props.alignTargetEdge, gapSpace = props.gapSpace, coverTarget = props.coverTarget, ariaLabel = props.ariaLabel, doNotLayer = props.doNotLayer, target = props.target, bounds = props.bounds, useTargetWidth = props.useTargetWidth, useTargetAsMinWidth = props.useTargetAsMinWidth, directionalHintFixed = props.directionalHintFixed, shouldFocusOnMount = props.shouldFocusOnMount, shouldFocusOnContainer = props.shouldFocusOnContainer, title = props.title, styles = props.styles, theme = props.theme, calloutProps = props.calloutProps, _k = props.onRenderSubMenu, onRenderSubMenu = _k === void 0 ? onDefaultRenderSubMenu : _k, _l = props.onRenderMenuList, onRenderMenuList = _l === void 0 ? function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); } : _l, focusZoneProps = props.focusZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames = props.getMenuClassNames;\n var classNames = getMenuClassNames\n ? getMenuClassNames(theme, className)\n : getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var hasIcons = itemsHaveIcons(items);\n function itemsHaveIcons(contextualMenuItems) {\n for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n var item = contextualMenuItems_1[_i];\n if (item.iconProps) {\n return true;\n }\n if (item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)) {\n return true;\n }\n }\n return false;\n }\n var adjustedFocusZoneProps = __assign(__assign({ direction: FocusZoneDirection.vertical, handleTabKey: FocusZoneTabbableElements.all, isCircularNavigation: true }, focusZoneProps), { className: css(classNames.root, (_a = props.focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) });\n var hasCheckmarks = canAnyMenuItemsCheck(items);\n var submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n isBeakVisible = isBeakVisible === undefined ? responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n /**\n * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n */\n var contextMenuStyle;\n var targetAsHtmlElement = targetRef.current;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n }\n else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\n }\n }\n // The menu should only return if items were provided, if no items were provided then it should not appear.\n if (items && items.length > 0) {\n var totalItemCount_1 = 0;\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var item = items_2[_i];\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount_1 += itemCount;\n }\n }\n var calloutStyles_1 = classNames.subComponentStyles\n ? classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(MenuContext.Consumer, null, function (menuContext) { return (React.createElement(Callout, __assign({ styles: calloutStyles_1, onRestoreFocus: tryFocusPreviousActiveElement }, calloutProps, { target: target || menuContext.target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: props.onDismiss || menuContext.onDismiss, onScroll: onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: props.hidden || menuContext.hidden, ref: forwardedRef }),\n React.createElement(\"div\", { style: contextMenuStyle, ref: hostElement, id: id, className: classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: onMenuKeyDown, onKeyUp: onKeyUp, onFocusCapture: onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n title && React.createElement(\"div\", { className: classNames.title },\n \" \",\n title,\n \" \"),\n items && items.length\n ? renderFocusZone(onRenderMenuList({\n ariaLabel: ariaLabel,\n items: items,\n totalItemCount: totalItemCount_1,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n defaultMenuItemRenderer: function (item) {\n return defaultMenuItemRenderer(item, classNames);\n },\n labelElementId: labelElementId,\n }, function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); }), adjustedFocusZoneProps)\n : null,\n submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)),\n React.createElement(FocusRects, null))); }));\n }\n else {\n return null;\n }\n //#endregion\n}), function (prevProps, newProps) {\n if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(prevProps, newProps);\n});\nContextualMenuBase.displayName = 'ContextualMenuBase';\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\nfunction onItemMouseDown(item, ev) {\n var _a;\n (_a = item.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(item, item, ev);\n}\nfunction onDefaultRenderSubMenu(subMenuProps, defaultRender) {\n throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n 'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n}\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key, items) {\n for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n var item = items_3[_i];\n if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n var match = findItemByKeyFromItems(key, item.sectionProps.items);\n if (match) {\n return match;\n }\n }\n else if (item.key && item.key === key) {\n return item;\n }\n }\n}\nfunction getOnClickWithOverrideTarget(onClick, target) {\n return onClick\n ? function (ev, item) {\n overrideTarget(ev, target);\n return onClick(ev, item);\n }\n : onClick;\n}\nfunction overrideTarget(ev, target) {\n if (ev && target) {\n ev.persist();\n if (target instanceof Event) {\n ev.target = target.target;\n }\n else if (target instanceof Element) {\n ev.target = target;\n }\n }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n root: 'ms-ContextualMenu',\n container: 'ms-ContextualMenu-container',\n list: 'ms-ContextualMenu-list',\n header: 'ms-ContextualMenu-header',\n title: 'ms-ContextualMenu-title',\n isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n classNames.isopen,\n {\n backgroundColor: semanticColors.menuBackground,\n minWidth: '180px',\n },\n className,\n ],\n container: [\n classNames.container,\n {\n selectors: {\n ':focus': { outline: 0 },\n },\n },\n ],\n list: [\n classNames.list,\n classNames.isopen,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n },\n ],\n header: [\n classNames.header,\n fonts.small,\n {\n fontWeight: FontWeights.semibold,\n color: semanticColors.menuHeader,\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n cursor: 'default',\n padding: '0px 6px',\n userSelect: 'none',\n textAlign: 'left',\n },\n ],\n title: [\n classNames.title,\n {\n fontSize: fonts.mediumPlus.fontSize,\n paddingRight: '14px',\n paddingLeft: '14px',\n paddingBottom: '5px',\n paddingTop: '5px',\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n },\n ],\n subComponentStyles: {\n callout: {\n root: {\n boxShadow: effects.elevation8,\n },\n },\n menuItem: {},\n },\n };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n onRenderSubMenu: props.onRenderSubMenu\n ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n//# sourceMappingURL=ContextualMenu.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n return {\n root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n !disabled && [\n {\n selectors: {\n ':focus': styles.splitButtonMenuFocused,\n },\n },\n ]),\n splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n selectors: {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n },\n ], !disabled &&\n !checked && [\n {\n selectors: {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n },\n ], disabled && styles.splitButtonContainerDisabled),\n icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n divider: mergeStyles(styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n var Outer = outer;\n var outerMemoizer = createMemoizer(function (inner) {\n if (outer === inner) {\n throw new Error('Attempted to compose a component with itself.');\n }\n var Inner = inner;\n var innerMemoizer = createMemoizer(function (defaultRender) {\n var InnerWithDefaultRender = function (innerProps) {\n return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n };\n return InnerWithDefaultRender;\n });\n var OuterWithDefaultRender = function (outerProps) {\n var defaultRender = outerProps.defaultRender;\n return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n };\n return OuterWithDefaultRender;\n });\n return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, FocusRectsContext, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n __extends(BaseButton, _super);\n function BaseButton(props) {\n var _this = _super.call(this, props) || this;\n _this._buttonElement = React.createRef();\n _this._splitButtonContainer = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._renderedVisibleMenu = false;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onRenderIcon = function (buttonProps, defaultRender) {\n var iconProps = _this.props.iconProps;\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n if (iconProps.iconName) {\n return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n }\n if (imageProps) {\n return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n }\n return null;\n };\n _this._onRenderTextContents = function () {\n var _a = _this.props, text = _a.text, children = _a.children, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n if (text || typeof children === 'string' || secondaryText) {\n return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n onRenderText(_this.props, _this._onRenderText),\n onRenderDescription(_this.props, _this._onRenderDescription)));\n }\n return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n };\n _this._onRenderText = function () {\n var text = _this.props.text;\n var children = _this.props.children;\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n if (_this._hasText()) {\n return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n }\n return null;\n };\n _this._onRenderChildren = function () {\n var children = _this.props.children;\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n return children;\n };\n _this._onRenderDescription = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n };\n _this._onRenderAriaDescription = function () {\n var ariaDescription = _this.props.ariaDescription;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n };\n _this._onRenderMenuIcon = function (props) {\n var menuIconProps = _this.props.menuIconProps;\n return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n };\n _this._onRenderMenu = function (menuProps) {\n var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n return React.createElement(MenuType, __assign({}, menuProps));\n };\n _this._onDismissMenu = function (ev) {\n var menuProps = _this.props.menuProps;\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n _this._dismissMenu();\n }\n };\n _this._dismissMenu = function () {\n _this._menuShouldFocusOnMount = undefined;\n _this._menuShouldFocusOnContainer = undefined;\n _this.setState({ menuHidden: true });\n };\n _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n if (_this.props.menuProps) {\n _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n _this._menuShouldFocusOnMount = shouldFocusOnMount;\n _this._renderedVisibleMenu = true;\n _this.setState({ menuHidden: false });\n }\n };\n _this._onToggleMenu = function (shouldFocusOnContainer) {\n var shouldFocusOnMount = true;\n if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n };\n _this._onSplitContainerFocusCapture = function (ev) {\n var container = _this._splitButtonContainer.current;\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n _this._onSplitButtonPrimaryClick = function (ev) {\n if (!_this.state.menuHidden) {\n _this._dismissMenu();\n }\n if (!_this._processingTouch && _this.props.onClick) {\n _this.props.onClick(ev);\n }\n else if (_this._processingTouch) {\n _this._onMenuClick(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n // explicity cancelling event so click won't fire after this\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuKeyDown(ev);\n }\n else if (_this.props.onKeyDown !== undefined) {\n _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onKeyUp = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onKeyPress = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseUp = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseDown = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onClick = function (ev) {\n if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuClick(ev);\n }\n else if (_this.props.onClick !== undefined) {\n _this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onSplitButtonContainerKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (_this._buttonElement.current) {\n _this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n _this._onMenuKeyDown(ev);\n }\n };\n _this._onMenuKeyDown = function (ev) {\n var _a;\n if (_this.props.disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n _this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target, (_a = _this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n }\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n if (!_this.state.menuHidden && _this.props.menuProps) {\n var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n ? _this._menuShouldFocusOnMount\n : _this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._menuShouldFocusOnMount = true;\n _this.forceUpdate();\n }\n }\n }\n };\n _this._onTouchStart = function () {\n if (_this._isSplitButton &&\n _this._splitButtonContainer.current &&\n !('onpointerdown' in _this._splitButtonContainer.current)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onMenuClick = function (ev) {\n var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n ? menuProps.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n if (!ev.defaultPrevented) {\n _this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n _this._labelId = getId();\n _this._descriptionId = getId();\n _this._ariaDescriptionId = getId();\n _this.state = {\n menuHidden: true,\n };\n return _this;\n }\n Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n get: function () {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n },\n enumerable: false,\n configurable: true\n });\n BaseButton.prototype.render = function () {\n var _a;\n var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n // eslint-disable-next-line deprecation/deprecation\n _c = _b.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n var menuHidden = this.state.menuHidden;\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n var isPrimaryButtonDisabled = disabled || primaryDisabled;\n this._classNames = getClassNames\n ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n var tag = renderAsAnchor ? 'a' : 'button';\n var nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ]);\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n var ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n }\n else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n }\n else if (nativeProps['aria-describedby']) {\n ariaDescribedBy = nativeProps['aria-describedby'];\n }\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n var ariaLabelledBy = undefined;\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n var buttonProps = assign(nativeProps, (_a = {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable\n },\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n _a));\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n }\n else if (this.props.menuProps) {\n var _e = this.props.menuProps.id, id = _e === void 0 ? this._labelId + \"-menu\" : _e;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n return this._onRenderContent(tag, buttonProps);\n };\n BaseButton.prototype.componentDidMount = function () {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n };\n BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n };\n BaseButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n BaseButton.prototype.focus = function () {\n var _a, _b;\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true, undefined, (_a = this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n this._splitButtonContainer.current.focus();\n }\n else if (this._buttonElement.current) {\n setFocusVisibility(true, undefined, (_b = this.context) === null || _b === void 0 ? void 0 : _b.registeredProviders);\n this._buttonElement.current.focus();\n }\n };\n BaseButton.prototype.dismissMenu = function () {\n this._dismissMenu();\n };\n BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n };\n BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n var _this = this;\n var props = this.props;\n var Tag = tag;\n var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n // eslint-disable-next-line deprecation/deprecation\n _d = props.onRenderMenu, \n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n var keytipProps = props.keytipProps;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n onRenderIcon(props, _this._onRenderIcon),\n _this._onRenderTextContents(),\n onRenderAriaDescription(props, _this._onRenderAriaDescription),\n onRenderChildren(props, _this._onRenderChildren),\n !_this._isSplitButton &&\n (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n menuProps &&\n !menuProps.doNotLayer &&\n _this._shouldRenderMenu() &&\n onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n var Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n if (menuProps && menuProps.doNotLayer) {\n return (React.createElement(React.Fragment, null,\n Content,\n this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n }\n return (React.createElement(React.Fragment, null,\n Content,\n React.createElement(FocusRects, null)));\n };\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n BaseButton.prototype._shouldRenderMenu = function () {\n var menuHidden = this.state.menuHidden;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n }\n else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n return false;\n };\n BaseButton.prototype._hasText = function () {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n };\n BaseButton.prototype._getMenuProps = function (menuProps) {\n var persistMenu = this.props.persistMenu;\n var menuHidden = this.state.menuHidden;\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n }\n return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n };\n BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n var _this = this;\n var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n var keytipProps = this.props.keytipProps;\n var menuHidden = this.state.menuHidden;\n var classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n React.createElement(\"span\", { style: { display: 'flex', width: '100%' } },\n _this._onRenderContent(tag, buttonProps),\n _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n _this._onRenderSplitButtonDivider(classNames)))); };\n return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n };\n BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n if (classNames && classNames.divider) {\n var onClick = function (ev) {\n ev.stopPropagation();\n };\n return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n }\n return null;\n };\n BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n var menuHidden = this.state.menuHidden;\n var menuIconProps = this.props.menuIconProps;\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n };\n BaseButton.prototype._onPointerDown = function (ev) {\n var onPointerDown = this.props.onPointerDown;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n BaseButton.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n // Only focus the button if a splitbutton menu is not open\n if (_this.state.menuHidden) {\n _this.focus();\n }\n }, TouchIdleDelay);\n };\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n if (this.props.menuTriggerKeyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n };\n BaseButton.defaultProps = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n // needed to access registeredProviders when manually setting focus visibility\n BaseButton.contextType = FocusRectsContext;\n return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n outline: 0,\n};\nvar iconStyle = function (fontSize) {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n var _a, _b;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var border = semanticColors.buttonBorder;\n var disabledBackground = semanticColors.disabledBackground;\n var disabledText = semanticColors.disabledText;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n border: '1px solid ' + border,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'inline-block',\n padding: '0 16px',\n textDecoration: 'none',\n textAlign: 'center',\n userSelect: 'none',\n selectors: {\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n },\n ],\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n selectors: {\n ':hover': noOutline,\n ':focus': noOutline,\n },\n },\n ],\n iconDisabled: {\n color: disabledText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n menuIconDisabled: {\n color: disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n icon: iconStyle(fonts.mediumPlus.fontSize),\n menuIcon: iconStyle(fonts.small.fontSize),\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var actionButtonStyles = {\n root: {\n padding: DEFAULT_PADDING,\n height: DEFAULT_BUTTON_HEIGHT,\n color: theme.palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: '1px solid transparent',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n },\n rootHovered: {\n color: theme.palette.themePrimary,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b),\n },\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.palette.black,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n },\n iconPressed: {\n color: theme.palette.themeDarker,\n },\n rootDisabled: {\n color: theme.palette.neutralTertiary,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n rootChecked: {\n color: theme.palette.black,\n },\n iconChecked: {\n color: theme.palette.themeDarker,\n },\n flexContainer: {\n justifyContent: 'flex-start',\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n iconDisabled: {\n color: 'inherit',\n },\n menuIcon: {\n color: theme.palette.neutralSecondary,\n },\n textContainer: {\n flexGrow: 0,\n },\n };\n return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n __extends(ActionButton, _super);\n function ActionButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ActionButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n ActionButton = __decorate([\n customizable('ActionButton', ['theme', 'styles'], true)\n ], ActionButton);\n return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n var splitButtonDividerBaseStyles = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n var splitButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2, pointerEvents: 'none' }),\n {\n display: 'inline-flex',\n selectors: {\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n flexGrow: '1',\n },\n '.ms-Button--primary': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n flexGrow: '1',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()),\n _a[':hover'] = {\n border: 'none',\n },\n _a[':active'] = {\n border: 'none',\n },\n _a),\n },\n '.ms-Button--primary + .ms-Button': {\n border: 'none',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n },\n _b),\n },\n },\n },\n ],\n splitButtonContainerHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n },\n _c),\n },\n '.ms-Button.is-disabled': {\n color: semanticColors.buttonTextDisabled,\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n },\n },\n },\n splitButtonContainerChecked: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n splitButtonContainerCheckedHovered: {\n selectors: {\n '.ms-Button--primary': {\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: (_g = {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: \"1px solid \" + palette.neutralSecondaryAlt,\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n },\n _g[HighContrastSelector] = {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n _g),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_h = {},\n _h[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n },\n _h) }),\n splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), { selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n },\n _j) }),\n splitButtonMenuButtonDisabled: {\n pointerEvents: 'none',\n border: 'none',\n selectors: (_k = {\n ':hover': {\n cursor: 'default',\n },\n '.ms-Button--primary': {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _l),\n },\n '.ms-Button-menuIcon': {\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n color: 'GrayText',\n },\n _m),\n }\n },\n _k[HighContrastSelector] = {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n _k),\n },\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n splitButtonContainerDisabled: {\n outline: 'none',\n border: 'none',\n selectors: (_o = {},\n _o[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n },\n splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n };\n return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var iconButtonStyles = {\n root: {\n padding: '0 4px',\n width: '32px',\n height: '32px',\n backgroundColor: 'transparent',\n border: 'none',\n color: semanticColors.link,\n },\n rootHovered: {\n color: palette.themeDarkAlt,\n backgroundColor: palette.neutralLighter,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n },\n rootHasMenu: {\n width: 'auto',\n },\n rootPressed: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootExpanded: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootChecked: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootCheckedHovered: {\n color: palette.themeDark,\n backgroundColor: palette.neutralQuaternaryAlt,\n },\n rootDisabled: {\n color: palette.neutralTertiaryAlt,\n },\n };\n return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n __extends(IconButton, _super);\n function IconButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IconButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n };\n IconButton = __decorate([\n customizable('IconButton', ['theme', 'styles'], true)\n ], IconButton);\n return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n var outOfBounds = [];\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n var edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n if (edge > 0) {\n return value;\n }\n else {\n return value * -1;\n }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n if (maintainSize === void 0) { maintainSize = true; }\n var difference = _getEdgeValue(rect, edge) - newValue;\n var returnRect = _setEdgeValue(rect, edge, newValue);\n if (maintainSize) {\n returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n }\n return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n if (gap === void 0) { gap = 0; }\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n if (gap === void 0) { gap = 0; }\n var oppositeEdge = targetEdge * -1;\n var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n var total = 0;\n for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n var edge = breakingEdges_1[_i];\n total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n }\n return total;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, gap) {\n if (gap === void 0) { gap = 0; }\n var directions = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n var currentEstimate = rect;\n var currentEdge = positionData.targetEdge;\n var currentAlignment = positionData.alignmentEdge;\n // keep track of least bad option, in case no sides fit\n var oobDegree;\n var bestEdge = currentEdge;\n var bestAlignment = currentAlignment;\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (var i = 0; i < 4; i++) {\n if (!_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n // update least-bad edges\n var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n if (!oobDegree || currentOOBDegree < oobDegree) {\n oobDegree = currentOOBDegree;\n bestEdge = currentEdge;\n bestAlignment = currentAlignment;\n }\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n }\n else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n }\n }\n else {\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n }\n // nothing fits, use least-bad option\n currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n return {\n elementRectangle: currentEstimate,\n targetEdge: bestEdge,\n alignmentEdge: bestAlignment,\n };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n var oppositeEdge = alignmentEdge * -1;\n var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n var elementEstimate = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, gap);\n }\n var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n // if directionalHintFixed is specified, we need to force the target edge to not change\n // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n if (outOfBounds.length > 0) {\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n }\n else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n var edgeAttempt = void 0;\n // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n // this is because _alignEdges will move the opposite edge\n if (preserveEdge && preserveEdge === direction * -1) {\n edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n elementEstimate.forcedInBounds = true;\n }\n else {\n edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n // only update estimate if the attempt didn't break out of the opposite bounding edge\n if (!inBounds) {\n edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n elementEstimate.forcedInBounds = true;\n }\n }\n elementEstimate.elementRectangle = edgeAttempt;\n }\n return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n var elementMiddle = _getCenterValue(rect, edge);\n var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n var targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n }\n else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n }\n else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n if (bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n return returnEdge * -1;\n }\n return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n // in the usual direction\n if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n // if the positioned element will still overflow, return all four edges with in-bounds values\n if (forceWithinBounds) {\n returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n }\n return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n var targetCenter = _getCenterValue(target, targetEdge);\n var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n }\n else {\n return negativeEdge;\n }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget) {\n var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n }\n else {\n return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, gap, directionalHintFixed, coverTarget);\n }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n var targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n var returnValue = {};\n var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n // only show the beak if the callout is not fully covering the target\n var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n return {\n elementPosition: __assign({}, returnValue),\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n hideBeak: !showBeak,\n };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n var target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n }\n else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n var clientRect = element.getBoundingClientRect();\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n var targetRectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!target.preventDefault) {\n var ev = target;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n }\n else if (!!target.getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n var rectOrPoint = target;\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n var top_1 = rectOrPoint.top || rectOrPoint.y;\n var right = rectOrPoint.right || left;\n var bottom = rectOrPoint.bottom || top_1;\n targetRectangle = new Rectangle(left, right, top_1, bottom);\n }\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n var direction = outOfBounds_1[_i];\n targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n }\n }\n }\n else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n var maxHeight = 0;\n var directionalHint = DirectionalDictionary[targetEdge];\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n }\n else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n }\n else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions) {\n var gap = props.gapSpace ? props.gapSpace : 0;\n var targetRect = _getTargetRect(boundingRect, props.target);\n var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, props.directionalHintFixed, props.coverTarget);\n return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions) {\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, doNotFinalizeReturnEdge) {\n var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n var gap = _calculateActualBeakWidthInPixels(beakWidth) / 2 + (props.gapSpace ? props.gapSpace : 0);\n var positionProps = props;\n positionProps.gapSpace = gap;\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions);\n var beakPositioned = _positionBeak(beakWidth, positionedElement);\n var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions) {\n return _positionCallout(props, hostElement, callout, previousPositions, true);\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n _finalizePositionData: _finalizePositionData,\n _finalizeBeakPosition: _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds: _positionElementWithinBounds,\n _positionBeak: _positionBeak,\n _getPositionData: _getPositionData,\n _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions) {\n return _positionElement(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions) {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions) {\n return _positionCard(props, hostElement, elementToPosition, previousPositions);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget) {\n if (gapSpace === void 0) { gapSpace = 0; }\n var mouseTarget = target;\n var elementTarget = target;\n var rectOrPointTarget = target;\n var targetRect;\n var boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, window.innerWidth - getScrollbarWidth(), 0, window.innerHeight);\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPointTarget.left || rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n var top = rectOrPointTarget.top || rectOrPointTarget.y;\n var right = rectOrPointTarget.right || left;\n var bottom = rectOrPointTarget.bottom || top;\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n }\n else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n }\n else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n var segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n // Logic for determining dual screen scenarios.\n var x = 0;\n var y = 0;\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!target.getBoundingClientRect) {\n var clientRect = target.getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = target.left || target.x;\n // eslint-disable-next-line deprecation/deprecation\n y = target.top || target.y;\n }\n var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n var segment = segments_1[_i];\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\n//# sourceMappingURL=positioning.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n function Rectangle(left, right, top, bottom) {\n if (left === void 0) { left = 0; }\n if (right === void 0) { right = 0; }\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Calculated automatically by subtracting the right from left\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n Rectangle.prototype.equals = function (rect) {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n };\n return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n opacity: 0,\n filter: 'opacity(0)',\n pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n var cachedBounds = React.useRef();\n var getBounds = React.useCallback(function () {\n if (!cachedBounds.current || targetWindowResized) {\n var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n if (!currentBounds && targetWindow) {\n currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n currentBounds = {\n top: currentBounds.top + minPagePadding,\n left: currentBounds.left + minPagePadding,\n right: currentBounds.right - minPagePadding,\n bottom: currentBounds.bottom - minPagePadding,\n width: currentBounds.width - minPagePadding * 2,\n height: currentBounds.height - minPagePadding * 2,\n };\n }\n cachedBounds.current = currentBounds;\n targetWindowResized && setTargetWindowResized(false);\n }\n return cachedBounds.current;\n }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n var async = useAsync();\n useOnEvent(targetWindow, 'resize', async.debounce(function () {\n setTargetWindowResized(true);\n }, 500, { leading: true }));\n return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, positions) {\n var _b;\n var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden;\n var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n React.useEffect(function () {\n var _a;\n var _b = (_a = getBounds()) !== null && _a !== void 0 ? _a : {}, topBounds = _b.top, bottomBounds = _b.bottom;\n if (!calloutMaxHeight && !hidden) {\n if (typeof top === 'number' && bottomBounds) {\n setMaxHeight(bottomBounds - top);\n }\n else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n setMaxHeight(bottomBounds - topBounds - bottom);\n }\n }\n else if (calloutMaxHeight) {\n setMaxHeight(calloutMaxHeight);\n }\n else {\n setMaxHeight(undefined);\n }\n }, [bottom, calloutMaxHeight, finalHeight, directionalHint, directionalHintFixed, getBounds, hidden, positions, top]);\n return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds) {\n var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n var positionAttempts = React.useRef(0);\n var previousTarget = React.useRef();\n var async = useAsync();\n var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint;\n React.useEffect(function () {\n if (!hidden) {\n var timerId_1 = async.requestAnimationFrame(function () {\n var _a, _b;\n if (hostElement.current && calloutElement) {\n var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n var dupeCalloutElement = calloutElement.cloneNode(true);\n dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\" + calloutMaxHeight : '';\n dupeCalloutElement.style.visibility = 'hidden';\n (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n var previousPositions = previousTarget.current === target ? positions : undefined;\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n var newPositions = finalHeight\n ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions)\n : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions);\n // clean up duplicate calloutElement\n (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n // Set the new position only when the positions do not exist or one of the new callout positions\n // is different. The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n positionAttempts.current++;\n setPositions(newPositions);\n }\n else if (positionAttempts.current > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n positionAttempts.current = 0;\n onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n }\n }\n }, calloutElement);\n previousTarget.current = target;\n return function () {\n async.cancelAnimationFrame(timerId_1);\n previousTarget.current = undefined;\n };\n }\n else {\n // When the callout is hidden, clear position state so that it is not accidentally used next render.\n setPositions(undefined);\n positionAttempts.current = 0;\n }\n }, [\n hidden,\n directionalHint,\n async,\n calloutElement,\n calloutMaxHeight,\n hostElement,\n targetRef,\n finalHeight,\n getBounds,\n onPositioned,\n positions,\n props,\n target,\n ]);\n return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n var async = useAsync();\n var hasPositions = !!positions;\n React.useEffect(function () {\n if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n return function () { return async.cancelAnimationFrame(timerId_2); };\n }\n }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n var hidden = _a.hidden, onDismiss = _a.onDismiss, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnScroll = _a.preventDismissOnScroll, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnResize = _a.preventDismissOnResize, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n var isMouseDownOnPopup = React.useRef(false);\n var async = useAsync();\n var mouseDownHandlers = useConst([\n function () {\n isMouseDownOnPopup.current = true;\n },\n function () {\n isMouseDownOnPopup.current = false;\n },\n ]);\n var positionsExists = !!positions;\n React.useEffect(function () {\n var dismissOnScroll = function (ev) {\n if (positionsExists && !preventDismissOnScroll) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnResize = function (ev) {\n if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnLostFocus = function (ev) {\n if (!preventDismissOnLostFocus) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnClickOrScroll = function (ev) {\n var eventPaths = ev.composedPath ? ev.composedPath() : [];\n var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n isMouseDownOnPopup.current = false;\n return;\n }\n if ((!targetRef.current && isEventTargetOutsideCallout) ||\n (ev.target !== targetWindow &&\n isEventTargetOutsideCallout &&\n (!targetRef.current ||\n 'stopPropagation' in targetRef.current ||\n dismissOnTargetClick ||\n (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n return;\n }\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnTargetWindowBlur = function (ev) {\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n ev.relatedTarget === null) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n var disposablesPromise = new Promise(function (resolve) {\n async.setTimeout(function () {\n if (!hidden && targetWindow) {\n var disposables_1 = [\n on(targetWindow, 'scroll', dismissOnScroll, true),\n on(targetWindow, 'resize', dismissOnResize, true),\n on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n ];\n resolve(function () {\n disposables_1.forEach(function (dispose) { return dispose(); });\n });\n }\n }, 0);\n });\n return function () {\n disposablesPromise.then(function (dispose) { return dispose(); });\n };\n }, [\n hidden,\n async,\n hostElement,\n targetRef,\n targetWindow,\n onDismiss,\n shouldDismissOnWindowFocus,\n dismissOnTargetClick,\n preventDismissOnLostFocus,\n preventDismissOnResize,\n preventDismissOnScroll,\n positionsExists,\n preventDismissOnEvent,\n ]);\n return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps;\n var hostElement = React.useRef(null);\n var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n var calloutCallback = React.useCallback(function (calloutEl) {\n setCalloutElement(calloutEl);\n }, []);\n var rootRef = useMergedRefs(hostElement, forwardedRef);\n var _d = useTarget(props.target, {\n current: calloutElement,\n }), targetRef = _d[0], targetWindow = _d[1];\n var getBounds = useBounds(props, targetRef, targetWindow);\n var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds);\n var maxHeight = useMaxHeight(props, getBounds, positions);\n var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n // do not set both top and bottom css props from positions\n // instead, use maxHeight\n var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n if (isForcedInBounds) {\n cssPositions.bottom = undefined;\n }\n useAutoFocus(props, positions, calloutElement);\n React.useEffect(function () {\n if (!hidden) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n }, [hidden]);\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!targetWindow) {\n return null;\n }\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n var classNames = getClassNames(styles, {\n theme: props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMaxWidth: calloutMaxWidth,\n calloutMinWidth: calloutMinWidth,\n doNotLayer: doNotLayer,\n });\n var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: calloutCallback }),\n beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n React.createElement(Popup\n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n , __assign({ \n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, popupProps), children))));\n}), function (previousProps, nextProps) {\n if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n var _a, _b;\n var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n for (var key in newElementPositions) {\n if (newElementPositions.hasOwnProperty(key)) {\n var oldPositionEdge = prevElementPositions[key];\n var newPositionEdge = newElementPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\nvar GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n display: 'flex',\n zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n _a),\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n width: '100%',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useControllableValue, useId, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nimport { useFocusRects, classNamesFunction } from '@fluentui/utilities';\nimport { Icon } from '../Icon/Icon';\nvar getClassNames = classNamesFunction();\nexport var CheckboxBase = React.forwardRef(function (props, forwardedRef) {\n var disabled = props.disabled, required = props.required, inputProps = props.inputProps, name = props.name, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, ariaPositionInSet = props.ariaPositionInSet, ariaSetSize = props.ariaSetSize, title = props.title, checkmarkIconProps = props.checkmarkIconProps, styles = props.styles, theme = props.theme, className = props.className, _a = props.boxSide, boxSide = _a === void 0 ? 'start' : _a;\n var id = useId('checkbox-', props.id);\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n var inputRef = React.useRef(null);\n var _b = useControllableValue(props.checked, props.defaultChecked, props.onChange), isChecked = _b[0], setIsChecked = _b[1];\n var _c = useControllableValue(props.indeterminate, props.defaultIndeterminate), isIndeterminate = _c[0], setIsIndeterminate = _c[1];\n useFocusRects(rootRef);\n useDebugWarning(props);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n indeterminate: isIndeterminate,\n checked: isChecked,\n reversed: boxSide !== 'start',\n isUsingCustomLabelRender: !!props.onRenderLabel,\n });\n var onChange = React.useCallback(function (event) {\n if (isIndeterminate) {\n // If indeterminate, clicking the checkbox *only* removes the indeterminate state (or if\n // controlled, lets the consumer know to change it by calling onChange). It doesn't\n // change the checked state.\n setIsChecked(!!isChecked, event);\n setIsIndeterminate(false);\n }\n else {\n setIsChecked(!isChecked, event);\n }\n }, [setIsChecked, setIsIndeterminate, isIndeterminate, isChecked]);\n var defaultLabelRenderer = React.useCallback(function (checkboxProps) {\n if (!checkboxProps) {\n return null;\n }\n return checkboxProps.label ? (React.createElement(\"span\", { className: classNames.text, title: checkboxProps.title }, checkboxProps.label)) : null;\n }, [classNames.text]);\n var setNativeIndeterminate = React.useCallback(function (indeterminate) {\n if (!inputRef.current) {\n return;\n }\n var value = !!indeterminate;\n inputRef.current.indeterminate = value;\n setIsIndeterminate(value);\n }, [setIsIndeterminate]);\n useComponentRef(props, isChecked, isIndeterminate, setNativeIndeterminate, inputRef);\n React.useEffect(function () { return setNativeIndeterminate(isIndeterminate); }, [setNativeIndeterminate, isIndeterminate]);\n var onRenderLabel = props.onRenderLabel || defaultLabelRenderer;\n var ariaChecked = isIndeterminate\n ? 'mixed'\n : undefined;\n var mergedInputProps = __assign(__assign({ className: classNames.input, type: 'checkbox' }, inputProps), { checked: !!isChecked, disabled: disabled, required: required, name: name, id: id, title: title, onChange: onChange, 'aria-disabled': disabled, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, 'aria-posinset': ariaPositionInSet, 'aria-setsize': ariaSetSize, 'aria-checked': ariaChecked });\n return (React.createElement(\"div\", { className: classNames.root, title: title, ref: mergedRootRefs },\n React.createElement(\"input\", __assign({}, mergedInputProps, { ref: inputRef, title: title, \"data-ktp-execute-target\": true })),\n React.createElement(\"label\", { className: classNames.label, htmlFor: id },\n React.createElement(\"div\", { className: classNames.checkbox, \"data-ktp-target\": true },\n React.createElement(Icon, __assign({ iconName: \"CheckMark\" }, checkmarkIconProps, { className: classNames.checkmark }))),\n onRenderLabel(props, defaultLabelRenderer))));\n});\nCheckboxBase.displayName = 'CheckboxBase';\nfunction useDebugWarning(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Checkbox',\n props: props,\n mutuallyExclusive: {\n checked: 'defaultChecked',\n indeterminate: 'defaultIndeterminate',\n },\n });\n }\n}\nfunction useComponentRef(props, isChecked, isIndeterminate, setIndeterminate, checkBoxRef) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n get checked() {\n return !!isChecked;\n },\n get indeterminate() {\n return !!isIndeterminate;\n },\n set indeterminate(indeterminate) {\n setIndeterminate(indeterminate);\n },\n focus: function () {\n if (checkBoxRef.current) {\n checkBoxRef.current.focus();\n }\n },\n }); }, [checkBoxRef, isChecked, isIndeterminate, setIndeterminate]);\n}\n//# sourceMappingURL=Checkbox.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nvar GlobalClassNames = {\n root: 'ms-Checkbox',\n label: 'ms-Checkbox-label',\n checkbox: 'ms-Checkbox-checkbox',\n checkmark: 'ms-Checkbox-checkmark',\n text: 'ms-Checkbox-text',\n};\nvar MS_CHECKBOX_LABEL_SIZE = '20px';\nvar MS_CHECKBOX_TRANSITION_DURATION = '200ms';\nvar MS_CHECKBOX_TRANSITION_TIMING = 'cubic-bezier(.4, 0, .23, 1)';\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n var className = props.className, theme = props.theme, reversed = props.reversed, checked = props.checked, disabled = props.disabled, isUsingCustomLabelRender = props.isUsingCustomLabelRender, indeterminate = props.indeterminate;\n var semanticColors = theme.semanticColors, effects = theme.effects, palette = theme.palette, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var checkmarkFontColor = semanticColors.inputForegroundChecked;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.inputBorder\n var checkmarkFontColorHovered = palette.neutralSecondary;\n // TODO: after updating the semanticColors slots mapping this needs to be semanticColors.smallInputBorder\n var checkboxBorderColor = palette.neutralPrimary;\n var checkboxBorderIndeterminateColor = semanticColors.inputBackgroundChecked;\n var checkboxBorderColorChecked = semanticColors.inputBackgroundChecked;\n var checkboxBorderColorDisabled = semanticColors.disabledBodySubtext;\n var checkboxBorderHoveredColor = semanticColors.inputBorderHovered;\n var checkboxBorderIndeterminateHoveredColor = semanticColors.inputBackgroundCheckedHovered;\n var checkboxBackgroundChecked = semanticColors.inputBackgroundChecked;\n // TODO: after updating the semanticColors slots mapping the following 2 tokens need to be\n // semanticColors.inputBackgroundCheckedHovered\n var checkboxBackgroundCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n var checkboxBorderColorCheckedHovered = semanticColors.inputBackgroundCheckedHovered;\n var checkboxHoveredTextColor = semanticColors.inputTextHovered;\n var checkboxBackgroundDisabledChecked = semanticColors.disabledBodySubtext;\n var checkboxTextColor = semanticColors.bodyText;\n var checkboxTextColorDisabled = semanticColors.disabledText;\n var indeterminateDotStyles = [\n (_a = {\n content: '\"\"',\n borderRadius: effects.roundedCorner2,\n position: 'absolute',\n width: 10,\n height: 10,\n top: 4,\n left: 4,\n boxSizing: 'border-box',\n borderWidth: 5,\n borderStyle: 'solid',\n borderColor: disabled ? checkboxBorderColorDisabled : checkboxBorderIndeterminateColor,\n transitionProperty: 'border-width, border, border-color',\n transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING\n },\n _a[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _a),\n ];\n return {\n root: [\n classNames.root,\n {\n position: 'relative',\n display: 'flex',\n },\n reversed && 'reversed',\n checked && 'is-checked',\n !disabled && 'is-enabled',\n disabled && 'is-disabled',\n !disabled && [\n !checked && (_b = {},\n _b[\":hover .\" + classNames.checkbox] = (_c = {\n borderColor: checkboxBorderHoveredColor\n },\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _c),\n _b[\":focus .\" + classNames.checkbox] = { borderColor: checkboxBorderHoveredColor },\n _b[\":hover .\" + classNames.checkmark] = (_d = {\n color: checkmarkFontColorHovered,\n opacity: '1'\n },\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n _b),\n checked &&\n !indeterminate && (_e = {},\n _e[\":hover .\" + classNames.checkbox] = {\n background: checkboxBackgroundCheckedHovered,\n borderColor: checkboxBorderColorCheckedHovered,\n },\n _e[\":focus .\" + classNames.checkbox] = {\n background: checkboxBackgroundCheckedHovered,\n borderColor: checkboxBorderColorCheckedHovered,\n },\n _e[HighContrastSelector] = (_f = {},\n _f[\":hover .\" + classNames.checkbox] = {\n background: 'Highlight',\n borderColor: 'Highlight',\n },\n _f[\":focus .\" + classNames.checkbox] = {\n background: 'Highlight',\n },\n _f[\":focus:hover .\" + classNames.checkbox] = {\n background: 'Highlight',\n },\n _f[\":focus:hover .\" + classNames.checkmark] = {\n color: 'Window',\n },\n _f[\":hover .\" + classNames.checkmark] = {\n color: 'Window',\n },\n _f),\n _e),\n indeterminate && (_g = {},\n _g[\":hover .\" + classNames.checkbox + \", :hover .\" + classNames.checkbox + \":after\"] = (_h = {\n borderColor: checkboxBorderIndeterminateHoveredColor\n },\n _h[HighContrastSelector] = {\n borderColor: 'WindowText',\n },\n _h),\n _g[\":focus .\" + classNames.checkbox] = {\n borderColor: checkboxBorderIndeterminateHoveredColor,\n },\n _g[\":hover .\" + classNames.checkmark] = {\n opacity: '0',\n },\n _g),\n (_j = {},\n _j[\":hover .\" + classNames.text + \", :focus .\" + classNames.text] = (_k = {\n color: checkboxHoveredTextColor\n },\n _k[HighContrastSelector] = {\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _k),\n _j),\n ],\n className,\n ],\n input: (_l = {\n position: 'absolute',\n background: 'none',\n opacity: 0\n },\n _l[\".\" + IsFocusVisibleClassName + \" &:focus + label::before\"] = (_m = {\n outline: '1px solid ' + theme.palette.neutralSecondary,\n outlineOffset: '2px'\n },\n _m[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _m),\n _l),\n label: [\n classNames.label,\n theme.fonts.medium,\n {\n display: 'flex',\n alignItems: isUsingCustomLabelRender ? 'center' : 'flex-start',\n cursor: disabled ? 'default' : 'pointer',\n position: 'relative',\n userSelect: 'none',\n },\n reversed && {\n flexDirection: 'row-reverse',\n justifyContent: 'flex-end',\n },\n {\n '&::before': {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n content: '\"\"',\n pointerEvents: 'none',\n },\n },\n ],\n checkbox: [\n classNames.checkbox,\n (_o = {\n position: 'relative',\n display: 'flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n height: MS_CHECKBOX_LABEL_SIZE,\n width: MS_CHECKBOX_LABEL_SIZE,\n border: \"1px solid \" + checkboxBorderColor,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n transitionProperty: 'background, border, border-color',\n transitionDuration: MS_CHECKBOX_TRANSITION_DURATION,\n transitionTimingFunction: MS_CHECKBOX_TRANSITION_TIMING,\n /* in case the icon is bigger than the box */\n overflow: 'hidden',\n ':after': indeterminate ? indeterminateDotStyles : null\n },\n _o[HighContrastSelector] = __assign({ borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _o),\n indeterminate && {\n borderColor: checkboxBorderIndeterminateColor,\n },\n !reversed\n ? // This margin on the checkbox is for backwards compat. Notably it has the effect where a customRender\n // is used, there will be only a 4px margin from checkbox to label. The label by default would have\n // another 4px margin for a total of 8px margin between checkbox and label. We don't combine the two\n // (and move it into the text) to not incur a breaking change for everyone using custom render atm.\n {\n marginRight: 4,\n }\n : {\n marginLeft: 4,\n },\n !disabled &&\n !indeterminate &&\n checked && (_p = {\n background: checkboxBackgroundChecked,\n borderColor: checkboxBorderColorChecked\n },\n _p[HighContrastSelector] = {\n background: 'Highlight',\n borderColor: 'Highlight',\n },\n _p),\n disabled && (_q = {\n borderColor: checkboxBorderColorDisabled\n },\n _q[HighContrastSelector] = {\n borderColor: 'GrayText',\n },\n _q),\n checked &&\n disabled && (_r = {\n background: checkboxBackgroundDisabledChecked,\n borderColor: checkboxBorderColorDisabled\n },\n _r[HighContrastSelector] = {\n background: 'Window',\n },\n _r),\n ],\n checkmark: [\n classNames.checkmark,\n (_s = {\n opacity: checked && !indeterminate ? '1' : '0',\n color: checkmarkFontColor\n },\n _s[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'Window' }, getHighContrastNoAdjustStyle()),\n _s),\n ],\n text: [\n classNames.text,\n (_t = {\n color: disabled ? checkboxTextColorDisabled : checkboxTextColor,\n fontSize: fonts.medium.fontSize,\n lineHeight: '20px'\n },\n _t[HighContrastSelector] = __assign({ color: disabled ? 'GrayText' : 'WindowText' }, getHighContrastNoAdjustStyle()),\n _t),\n !reversed\n ? {\n marginLeft: 4,\n }\n : {\n marginRight: 4,\n },\n ],\n };\n};\n//# sourceMappingURL=Checkbox.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CheckboxBase } from './Checkbox.base';\nimport { getStyles } from './Checkbox.styles';\nexport var Checkbox = styled(CheckboxBase, getStyles, undefined, { scope: 'Checkbox' });\n//# sourceMappingURL=Checkbox.js.map","export var SelectableOptionMenuItemType;\n(function (SelectableOptionMenuItemType) {\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Normal\"] = 0] = \"Normal\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Divider\"] = 1] = \"Divider\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"Header\"] = 2] = \"Header\";\n SelectableOptionMenuItemType[SelectableOptionMenuItemType[\"SelectAll\"] = 3] = \"SelectAll\";\n})(SelectableOptionMenuItemType || (SelectableOptionMenuItemType = {}));\n//# sourceMappingURL=SelectableOption.types.js.map","import { __spreadArray } from \"tslib\";\nimport { DropdownMenuItemType } from '../Dropdown.types';\n/**\n * A utility class to cache size and position in cache.\n *\n * Dropdown options has non-selectable display types. It is therefore not cheap to determine\n * the total number of actual selectable options as well as the position an option is in the\n * list of options - O(n) cost for each lookup.\n *\n * Given that we potentially have to make this determination on every single render pass, this\n * cache should provide a little bit of relief.\n */\nvar DropdownSizePosCache = /** @class */ (function () {\n function DropdownSizePosCache() {\n this._size = 0;\n }\n /**\n * Invalidates the cache and recalculate the size of selectable options.\n */\n DropdownSizePosCache.prototype.updateOptions = function (options) {\n var displayOnlyOptionsCache = [];\n var notSelectableOptionsCache = [];\n var size = 0;\n for (var i = 0; i < options.length; i++) {\n var _a = options[i], itemType = _a.itemType, hidden = _a.hidden;\n if (itemType === DropdownMenuItemType.Divider || itemType === DropdownMenuItemType.Header) {\n displayOnlyOptionsCache.push(i);\n notSelectableOptionsCache.push(i);\n }\n else if (hidden) {\n notSelectableOptionsCache.push(i);\n }\n else {\n size++;\n }\n }\n this._size = size;\n this._displayOnlyOptionsCache = displayOnlyOptionsCache;\n this._notSelectableOptionsCache = notSelectableOptionsCache;\n this._cachedOptions = __spreadArray([], options);\n };\n Object.defineProperty(DropdownSizePosCache.prototype, \"optionSetSize\", {\n /**\n * The size of all the selectable options.\n */\n get: function () {\n return this._size;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropdownSizePosCache.prototype, \"cachedOptions\", {\n /**\n * The chached options array.\n */\n get: function () {\n return this._cachedOptions;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the position of this option element relative to the full set of selectable option elements.\n * Note: the first selectable element is position 1 in the set.\n * @param index The raw index of the option element.\n */\n DropdownSizePosCache.prototype.positionInSet = function (index) {\n if (index === undefined) {\n return undefined;\n }\n // we could possibly memoize this too but this should be good enough, most of the time (the expectation is that\n // when you have a lot of options, the selectable options will heavily dominate over the non-selectable options.\n var offset = 0;\n while (index > this._notSelectableOptionsCache[offset]) {\n offset++;\n }\n if (this._displayOnlyOptionsCache[offset] === index) {\n throw new Error(\"Unexpected: Option at index \" + index + \" is not a selectable element.\");\n }\n if (this._notSelectableOptionsCache[offset] === index) {\n return undefined;\n }\n return index - offset + 1;\n };\n return DropdownSizePosCache;\n}());\nexport { DropdownSizePosCache };\n//# sourceMappingURL=DropdownSizePosCache.js.map","export function getAllSelectedOptions(options, selectedIndices) {\n var selectedOptions = [];\n for (var _i = 0, selectedIndices_1 = selectedIndices; _i < selectedIndices_1.length; _i++) {\n var index = selectedIndices_1[_i];\n var option = options[index];\n if (option) {\n selectedOptions.push(option);\n }\n }\n return selectedOptions;\n}\n//# sourceMappingURL=SelectableOption.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { css, KeyCodes, classNamesFunction, divProperties, findIndex, getDocument, getFirstFocusable, getId, getLastFocusable, getNativeProps, initializeComponentRef, isIOS, isMac, mergeAriaAttributeValues, safeRequestAnimationFrame, warn, warnDeprecations, warnMutuallyExclusive, } from '../../Utilities';\nimport { Callout, DirectionalHint } from '../../Callout';\nimport { CommandButton } from '../../Button';\nimport { DropdownMenuItemType } from './Dropdown.types';\nimport { DropdownSizePosCache } from './utilities/DropdownSizePosCache';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { Label } from '../../Label';\nimport { Panel } from '../../Panel';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { SelectableOptionMenuItemType, getAllSelectedOptions } from '../../SelectableOption';\n// import and use V7 Checkbox to ensure no breaking changes.\nimport { Checkbox } from '../../Checkbox';\nimport { getNextElement, getPreviousElement, getPropsWithDefaults } from '@fluentui/utilities';\nimport { useMergedRefs, usePrevious } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'Dropdown';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n options: [],\n};\nfunction useSelectedItemsState(_a) {\n var defaultSelectedKeys = _a.defaultSelectedKeys, selectedKeys = _a.selectedKeys, defaultSelectedKey = _a.defaultSelectedKey, selectedKey = _a.selectedKey, options = _a.options, multiSelect = _a.multiSelect;\n var oldOptions = usePrevious(options);\n var _b = React.useState([]), selectedIndices = _b[0], setSelectedIndices = _b[1];\n // In controlled component usage where selectedKey is provided, update the selectedIndex\n // state if the key or options change.\n var selectedKeyPropToUse;\n // this does a shallow compare (assumes options are pure), for the purposes of determining whether\n // defaultSelectedKey/defaultSelectedKeys are respected.\n var didOptionsChange = options !== oldOptions;\n if (multiSelect) {\n if (didOptionsChange && defaultSelectedKeys !== undefined) {\n selectedKeyPropToUse = defaultSelectedKeys;\n }\n else {\n selectedKeyPropToUse = selectedKeys;\n }\n }\n else {\n if (didOptionsChange && defaultSelectedKey !== undefined) {\n selectedKeyPropToUse = defaultSelectedKey;\n }\n else {\n selectedKeyPropToUse = selectedKey;\n }\n }\n var oldSelectedKeyProp = usePrevious(selectedKeyPropToUse);\n React.useEffect(function () {\n /** Get all selected indexes for multi-select mode */\n var getSelectedIndexes = function () {\n if (selectedKeyPropToUse === undefined) {\n if (multiSelect) {\n return getAllSelectedIndices();\n }\n var selectedIndex = getSelectedIndex(null);\n return selectedIndex !== -1 ? [selectedIndex] : [];\n }\n else if (!Array.isArray(selectedKeyPropToUse)) {\n var selectedIndex = getSelectedIndex(selectedKeyPropToUse);\n return selectedIndex !== -1 ? [selectedIndex] : [];\n }\n var returnValue = [];\n for (var _i = 0, selectedKeyPropToUse_1 = selectedKeyPropToUse; _i < selectedKeyPropToUse_1.length; _i++) {\n var key = selectedKeyPropToUse_1[_i];\n var selectedIndex = getSelectedIndex(key);\n selectedIndex !== -1 && returnValue.push(selectedIndex);\n }\n return returnValue;\n };\n var getAllSelectedIndices = function () {\n return options\n .map(function (option, index) { return (option.selected ? index : -1); })\n .filter(function (index) { return index !== -1; });\n };\n var getSelectedIndex = function (searchKey) {\n return findIndex(options, function (option) {\n // eslint-disable-next-line eqeqeq\n if (searchKey != null) {\n return option.key === searchKey;\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n return !!option.selected || !!option.isSelected;\n }\n });\n };\n if ((selectedKeyPropToUse !== undefined || !oldOptions) &&\n (selectedKeyPropToUse !== oldSelectedKeyProp || didOptionsChange)) {\n setSelectedIndices(getSelectedIndexes());\n }\n }, [didOptionsChange, multiSelect, oldOptions, oldSelectedKeyProp, options, selectedKeyPropToUse]);\n return [selectedIndices, setSelectedIndices];\n}\nexport var DropdownBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n var responsiveMode = useResponsiveMode(rootRef, props.responsiveMode);\n var _a = useSelectedItemsState(props), selectedIndices = _a[0], setSelectedIndices = _a[1];\n return (React.createElement(DropdownInternal, __assign({}, props, { responsiveMode: responsiveMode, hoisted: { rootRef: mergedRootRef, selectedIndices: selectedIndices, setSelectedIndices: setSelectedIndices } })));\n});\nDropdownBase.displayName = 'DropdownBase';\nvar DropdownInternal = /** @class */ (function (_super) {\n __extends(DropdownInternal, _super);\n function DropdownInternal(props) {\n var _this = _super.call(this, props) || this;\n _this._host = React.createRef();\n _this._focusZone = React.createRef();\n _this._dropDown = React.createRef();\n _this._scrollIdleDelay = 250 /* ms */;\n _this._sizePosCache = new DropdownSizePosCache();\n _this._requestAnimationFrame = safeRequestAnimationFrame(_this);\n /**\n * Close menu callout if it is open\n */\n _this.dismissMenu = function () {\n var isOpen = _this.state.isOpen;\n isOpen && _this.setState({ isOpen: false });\n };\n _this._onChange = function (event, options, index, checked, multiSelect) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onChange = _a.onChange, onChanged = _a.onChanged;\n if (onChange || onChanged) {\n // for single-select, option passed in will always be selected.\n // for multi-select, flip the checked value\n var changedOpt = multiSelect ? __assign(__assign({}, options[index]), { selected: !checked }) : options[index];\n onChange && onChange(__assign(__assign({}, event), { target: _this._dropDown.current }), changedOpt, index);\n onChanged && onChanged(changedOpt, index);\n }\n };\n /** Get either props.placeholder (new name) or props.placeHolder (old name) */\n _this._getPlaceholder = function () {\n // eslint-disable-next-line deprecation/deprecation\n return _this.props.placeholder || _this.props.placeHolder;\n };\n /** Get text in dropdown input as a string */\n _this._getTitle = function (items, _unused) {\n var _a = _this.props.multiSelectDelimiter, multiSelectDelimiter = _a === void 0 ? ', ' : _a;\n return items.map(function (i) { return i.text; }).join(multiSelectDelimiter);\n };\n /** Render text in dropdown input */\n _this._onRenderTitle = function (items) {\n return React.createElement(React.Fragment, null, _this._getTitle(items));\n };\n /** Render placeholder text in dropdown input */\n _this._onRenderPlaceholder = function (props) {\n if (!_this._getPlaceholder()) {\n return null;\n }\n return React.createElement(React.Fragment, null, _this._getPlaceholder());\n };\n /** Render Callout or Panel container and pass in list */\n _this._onRenderContainer = function (props) {\n var calloutProps = props.calloutProps, panelProps = props.panelProps;\n var _a = _this.props, responsiveMode = _a.responsiveMode, dropdownWidth = _a.dropdownWidth;\n var isSmall = responsiveMode <= ResponsiveMode.medium;\n var focusTrapZoneProps = { firstFocusableTarget: \"#\" + _this._listId + \"1\" };\n var panelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.panel\n : undefined;\n var calloutWidth = undefined;\n var calloutMinWidth = undefined;\n if (dropdownWidth === 'auto') {\n calloutMinWidth = _this._dropDown.current ? _this._dropDown.current.clientWidth : 0;\n }\n else {\n calloutWidth = dropdownWidth || (_this._dropDown.current ? _this._dropDown.current.clientWidth : 0);\n }\n return isSmall ? (React.createElement(Panel, __assign({ closeButtonAriaLabel: \"Close\", focusTrapZoneProps: focusTrapZoneProps, hasCloseButton: true, isOpen: true, isLightDismiss: true, onDismiss: _this._onDismiss, styles: panelStyles }, panelProps), _this._renderFocusableList(props))) : (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 0, doNotLayer: false, directionalHintFixed: false, directionalHint: DirectionalHint.bottomLeftEdge, calloutWidth: calloutWidth, calloutMinWidth: calloutMinWidth }, calloutProps, { className: _this._classNames.callout, target: _this._dropDown.current, onDismiss: _this._onDismiss, onScroll: _this._onScroll, onPositioned: _this._onPositioned }), _this._renderFocusableList(props)));\n };\n /** Render Caret Down Icon */\n _this._onRenderCaretDown = function (props) {\n return React.createElement(Icon, { className: _this._classNames.caretDown, iconName: \"ChevronDown\", \"aria-hidden\": true });\n };\n /** Render List of items */\n _this._onRenderList = function (props) {\n var _a = props.onRenderItem, onRenderItem = _a === void 0 ? _this._onRenderItem : _a;\n var queue = { items: [] };\n var renderedList = [];\n var emptyQueue = function () {\n var newGroup = queue.id\n ? [\n React.createElement(\"div\", { role: \"group\", key: queue.id, \"aria-labelledby\": queue.id }, queue.items),\n ]\n : queue.items;\n renderedList = __spreadArray(__spreadArray([], renderedList), newGroup);\n // Flush items and id\n queue = { items: [] };\n };\n var placeRenderedOptionIntoQueue = function (item, index) {\n /*\n Case Header\n empty queue if it's not already empty\n ensure unique ID for header and set queue ID\n push header into queue\n Case Divider\n push divider into queue if not first item\n empty queue if not already empty\n Default\n push item into queue\n */\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Header:\n queue.items.length > 0 && emptyQueue();\n var id = _this._id + item.key;\n queue.items.push(onRenderItem(__assign(__assign({ id: id }, item), { index: index }), _this._onRenderItem));\n queue.id = id;\n break;\n case SelectableOptionMenuItemType.Divider:\n index > 0 && queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n queue.items.length > 0 && emptyQueue();\n break;\n default:\n queue.items.push(onRenderItem(__assign(__assign({}, item), { index: index }), _this._onRenderItem));\n }\n };\n // Place options into the queue. Queue will be emptied anytime a Header or Divider is encountered\n props.options.forEach(function (item, index) {\n placeRenderedOptionIntoQueue(item, index);\n });\n // Push remaining items into all renderedList\n queue.items.length > 0 && emptyQueue();\n return React.createElement(React.Fragment, null, renderedList);\n };\n _this._onRenderItem = function (item) {\n switch (item.itemType) {\n case SelectableOptionMenuItemType.Divider:\n return _this._renderSeparator(item);\n case SelectableOptionMenuItemType.Header:\n return _this._renderHeader(item);\n default:\n return _this._renderOption(item);\n }\n };\n _this._renderOption = function (item) {\n var _a = _this.props, _b = _a.onRenderOption, onRenderOption = _b === void 0 ? _this._onRenderOption : _b, _c = _a.hoisted.selectedIndices, selectedIndices = _c === void 0 ? [] : _c;\n var isItemSelected = item.index !== undefined && selectedIndices ? selectedIndices.indexOf(item.index) > -1 : false;\n // select the right className based on the combination of selected/disabled\n var itemClassName = item.hidden // predicate: item hidden\n ? _this._classNames.dropdownItemHidden\n : isItemSelected && item.disabled === true // predicate: both selected and disabled\n ? _this._classNames.dropdownItemSelectedAndDisabled\n : isItemSelected // predicate: selected only\n ? _this._classNames.dropdownItemSelected\n : item.disabled === true // predicate: disabled only\n ? _this._classNames.dropdownItemDisabled\n : _this._classNames.dropdownItem;\n var title = item.title;\n var multiSelectItemStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.multiSelectItem\n : undefined;\n return !_this.props.multiSelect ? (React.createElement(CommandButton, { id: _this._listId + item.index, key: item.key, \"data-index\": item.index, \"data-is-focusable\": !item.disabled, disabled: item.disabled, className: itemClassName, onClick: _this._onItemClick(item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseEnter: _this._onItemMouseEnter.bind(_this, item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseLeave: _this._onMouseItemLeave.bind(_this, item), \n // eslint-disable-next-line react/jsx-no-bind\n onMouseMove: _this._onItemMouseMove.bind(_this, item), role: \"option\", \"aria-selected\": isItemSelected ? 'true' : 'false', ariaLabel: item.ariaLabel, title: title, \"aria-posinset\": _this._sizePosCache.positionInSet(item.index), \"aria-setsize\": _this._sizePosCache.optionSetSize }, onRenderOption(item, _this._onRenderOption))) : (React.createElement(Checkbox, { id: _this._listId + item.index, key: item.key, disabled: item.disabled, onChange: _this._onItemClick(item), inputProps: __assign({ 'aria-selected': isItemSelected, onMouseEnter: _this._onItemMouseEnter.bind(_this, item), onMouseLeave: _this._onMouseItemLeave.bind(_this, item), onMouseMove: _this._onItemMouseMove.bind(_this, item), role: 'option' }, {\n 'data-index': item.index,\n 'data-is-focusable': !(item.disabled || item.hidden),\n }), label: item.text, title: title, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderLabel: _this._onRenderItemLabel.bind(_this, item), className: css(itemClassName, 'is-multi-select'), checked: isItemSelected, styles: multiSelectItemStyles, ariaPositionInSet: !item.hidden ? _this._sizePosCache.positionInSet(item.index) : undefined, ariaSetSize: !item.hidden ? _this._sizePosCache.optionSetSize : undefined, ariaLabel: item.ariaLabel }));\n };\n /** Render content of item (i.e. text/icon inside of button) */\n _this._onRenderOption = function (item) {\n return React.createElement(\"span\", { className: _this._classNames.dropdownOptionText }, item.text);\n };\n /** Render custom label for drop down item */\n _this._onRenderItemLabel = function (item) {\n var _a = _this.props.onRenderOption, onRenderOption = _a === void 0 ? _this._onRenderOption : _a;\n return onRenderOption(item, _this._onRenderOption);\n };\n _this._onPositioned = function (positions) {\n if (_this._focusZone.current) {\n // Focusing an element can trigger a reflow. Making this wait until there is an animation\n // frame can improve perf significantly.\n _this._requestAnimationFrame(function () {\n var selectedIndices = _this.props.hoisted.selectedIndices;\n if (_this._focusZone.current) {\n if (!_this._hasBeenPositioned &&\n selectedIndices &&\n selectedIndices[0] &&\n !_this.props.options[selectedIndices[0]].disabled) {\n var element = getDocument().getElementById(_this._id + \"-list\" + selectedIndices[0]);\n if (element) {\n _this._focusZone.current.focusElement(element);\n }\n _this._hasBeenPositioned = true;\n }\n else {\n _this._focusZone.current.focus();\n }\n }\n });\n }\n if (!_this.state.calloutRenderEdge || _this.state.calloutRenderEdge !== positions.targetEdge) {\n _this.setState({\n calloutRenderEdge: positions.targetEdge,\n });\n }\n };\n _this._onItemClick = function (item) {\n return function (event) {\n if (!item.disabled) {\n _this.setSelectedIndex(event, item.index);\n if (!_this.props.multiSelect) {\n // only close the callout when it's in single-select mode\n _this.setState({\n isOpen: false,\n });\n }\n }\n };\n };\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n _this._onScroll = function () {\n if (!_this._isScrollIdle && _this._scrollIdleTimeoutId !== undefined) {\n clearTimeout(_this._scrollIdleTimeoutId);\n _this._scrollIdleTimeoutId = undefined;\n }\n else {\n _this._isScrollIdle = false;\n }\n _this._scrollIdleTimeoutId = window.setTimeout(function () {\n _this._isScrollIdle = true;\n }, _this._scrollIdleDelay);\n };\n _this._onMouseItemLeave = function (item, ev) {\n if (_this._shouldIgnoreMouseEvent()) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (_this._host.current) {\n if (_this._host.current.setActive) {\n try {\n _this._host.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n _this._host.current.focus();\n }\n }\n };\n _this._onDismiss = function () {\n _this.setState({ isOpen: false });\n };\n _this._onDropdownBlur = function (ev) {\n // If Dropdown disabled do not proceed with this logic.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n if (_this.state.isOpen) {\n // Do not call onBlur or update focus state when the callout is opened\n return;\n }\n _this.setState({ hasFocus: false });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n };\n _this._onDropdownKeyDown = function (ev) {\n // If Dropdown disabled do not process any keyboard events.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n var newIndex;\n var selectedIndex = _this.props.hoisted.selectedIndices.length ? _this.props.hoisted.selectedIndices[0] : -1;\n var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n var isOpen = _this.state.isOpen;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n _this.setState({\n isOpen: !isOpen,\n });\n break;\n case KeyCodes.escape:\n if (!isOpen) {\n return;\n }\n _this.setState({\n isOpen: false,\n });\n break;\n case KeyCodes.up:\n if (containsExpandCollapseModifier) {\n if (isOpen) {\n _this.setState({ isOpen: false });\n break;\n }\n return;\n }\n if (_this.props.multiSelect) {\n _this.setState({ isOpen: true });\n }\n else if (!_this._isDisabled()) {\n newIndex = _this._moveIndex(ev, -1, selectedIndex - 1, selectedIndex);\n }\n break;\n case KeyCodes.down:\n if (containsExpandCollapseModifier) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n if ((containsExpandCollapseModifier && !isOpen) || _this.props.multiSelect) {\n _this.setState({ isOpen: true });\n }\n else if (!_this._isDisabled()) {\n newIndex = _this._moveIndex(ev, 1, selectedIndex + 1, selectedIndex);\n }\n break;\n case KeyCodes.home:\n if (!_this.props.multiSelect) {\n newIndex = _this._moveIndex(ev, 1, 0, selectedIndex);\n }\n break;\n case KeyCodes.end:\n if (!_this.props.multiSelect) {\n newIndex = _this._moveIndex(ev, -1, _this.props.options.length - 1, selectedIndex);\n }\n break;\n case KeyCodes.space:\n // event handled in _onDropdownKeyUp\n break;\n default:\n return;\n }\n if (newIndex !== selectedIndex) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n _this._onDropdownKeyUp = function (ev) {\n // If Dropdown disabled do not process any keyboard events.\n var disabled = _this._isDisabled();\n if (disabled) {\n return;\n }\n var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n var isOpen = _this.state.isOpen;\n if (_this.props.onKeyUp) {\n _this.props.onKeyUp(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n _this.setState({\n isOpen: !isOpen,\n });\n break;\n default:\n if (shouldHandleKey && isOpen) {\n _this.setState({ isOpen: false });\n }\n return;\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onZoneKeyDown = function (ev) {\n var _a, _b;\n var elementToFocus;\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in _shouldHandleKeyUp for reasoning.\n _this._lastKeyDownWasAltOrMeta = _this._isAltOrMeta(ev);\n var containsExpandCollapseModifier = ev.altKey || ev.metaKey;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up:\n if (containsExpandCollapseModifier) {\n _this.setState({ isOpen: false });\n }\n else {\n if (_this._host.current) {\n elementToFocus = getLastFocusable(_this._host.current, _this._host.current.lastChild, true);\n }\n }\n break;\n // All directional keystrokes should be canceled when the zone is rendered.\n // This avoids the body scroll from reacting and thus dismissing the dropdown.\n case KeyCodes.home:\n case KeyCodes.end:\n case KeyCodes.pageUp:\n case KeyCodes.pageDown:\n break;\n case KeyCodes.down:\n if (!containsExpandCollapseModifier && _this._host.current) {\n elementToFocus = getFirstFocusable(_this._host.current, _this._host.current.firstChild, true);\n }\n break;\n case KeyCodes.escape:\n _this.setState({ isOpen: false });\n break;\n case KeyCodes.tab:\n _this.setState({ isOpen: false });\n var document_1 = getDocument();\n if (document_1) {\n if (ev.shiftKey) {\n (_a = getPreviousElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = getNextElement(document_1.body, _this._dropDown.current, false, false, true, true)) === null || _b === void 0 ? void 0 : _b.focus();\n }\n }\n break;\n default:\n return;\n }\n if (elementToFocus) {\n elementToFocus.focus();\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n _this._onZoneKeyUp = function (ev) {\n var shouldHandleKey = _this._shouldHandleKeyUp(ev);\n if (shouldHandleKey && _this.state.isOpen) {\n _this.setState({ isOpen: false });\n ev.preventDefault();\n }\n };\n _this._onDropdownClick = function (ev) {\n if (_this.props.onClick) {\n _this.props.onClick(ev);\n if (ev.defaultPrevented) {\n return;\n }\n }\n var isOpen = _this.state.isOpen;\n var disabled = _this._isDisabled();\n if (!disabled && !_this._shouldOpenOnFocus()) {\n _this.setState({\n isOpen: !isOpen,\n });\n }\n _this._isFocusedByClick = false; // reset\n };\n _this._onDropdownMouseDown = function () {\n _this._isFocusedByClick = true;\n };\n _this._onFocus = function (ev) {\n var disabled = _this._isDisabled();\n if (!disabled) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n var state = { hasFocus: true };\n if (_this._shouldOpenOnFocus()) {\n state.isOpen = true;\n }\n _this.setState(state);\n }\n };\n /**\n * Because the isDisabled prop is deprecated, we have had to repeat this logic all over the place.\n * This helper method avoids all the repetition.\n */\n _this._isDisabled = function () {\n var disabled = _this.props.disabled;\n // eslint-disable-next-line deprecation/deprecation\n var isDisabled = _this.props.isDisabled;\n // Remove this deprecation workaround at 1.0.0\n if (disabled === undefined) {\n disabled = isDisabled;\n }\n return disabled;\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required, disabled = props.disabled;\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n return label ? (React.createElement(Label, { className: _this._classNames.label, id: _this._labelId, required: required, styles: labelStyles, disabled: disabled }, label)) : null;\n };\n initializeComponentRef(_this);\n var multiSelect = props.multiSelect, selectedKey = props.selectedKey, selectedKeys = props.selectedKeys, defaultSelectedKey = props.defaultSelectedKey, defaultSelectedKeys = props.defaultSelectedKeys, options = props.options;\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations(COMPONENT_NAME, props, {\n isDisabled: 'disabled',\n onChanged: 'onChange',\n placeHolder: 'placeholder',\n onRenderPlaceHolder: 'onRenderPlaceholder',\n });\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n defaultSelectedKey: 'selectedKey',\n defaultSelectedKeys: 'selectedKeys',\n selectedKeys: 'selectedKey',\n });\n if (multiSelect) {\n var warnMultiSelect = function (prop) {\n return warn(\"Dropdown property '\" + prop + \"' cannot be used when 'multiSelect' is true. Use '\" + prop + \"s' instead.\");\n };\n if (selectedKey !== undefined) {\n warnMultiSelect('selectedKey');\n }\n if (defaultSelectedKey !== undefined) {\n warnMultiSelect('defaultSelectedKey');\n }\n }\n else {\n var warnNotMultiSelect = function (prop) {\n return warn(\"Dropdown property '\" + prop + \"s' cannot be used when 'multiSelect' is false/unset. Use '\" + prop + \"' instead.\");\n };\n if (selectedKeys !== undefined) {\n warnNotMultiSelect('selectedKey');\n }\n if (defaultSelectedKeys !== undefined) {\n warnNotMultiSelect('defaultSelectedKey');\n }\n }\n }\n _this._id = props.id || getId('Dropdown');\n _this._labelId = _this._id + '-label';\n _this._listId = _this._id + '-list';\n _this._optionId = _this._id + '-option';\n _this._isScrollIdle = true;\n _this._hasBeenPositioned = false;\n _this._sizePosCache.updateOptions(options);\n _this.state = {\n isOpen: false,\n hasFocus: false,\n calloutRenderEdge: undefined,\n };\n return _this;\n }\n Object.defineProperty(DropdownInternal.prototype, \"selectedOptions\", {\n /**\n * All selected options\n */\n get: function () {\n var _a = this.props, options = _a.options, selectedIndices = _a.hoisted.selectedIndices;\n return getAllSelectedOptions(options, selectedIndices);\n },\n enumerable: false,\n configurable: true\n });\n DropdownInternal.prototype.componentWillUnmount = function () {\n clearTimeout(this._scrollIdleTimeoutId);\n };\n DropdownInternal.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (prevState.isOpen === true && this.state.isOpen === false) {\n this._gotMouseMove = false;\n this._hasBeenPositioned = false;\n if (this.props.onDismiss) {\n this.props.onDismiss();\n }\n }\n };\n DropdownInternal.prototype.render = function () {\n var id = this._id;\n var props = this.props;\n var className = props.className, label = props.label, options = props.options, ariaLabel = props.ariaLabel, required = props.required, errorMessage = props.errorMessage, propStyles = props.styles, theme = props.theme, panelProps = props.panelProps, calloutProps = props.calloutProps, _a = props.onRenderTitle, onRenderTitle = _a === void 0 ? this._getTitle : _a, _b = props.onRenderContainer, onRenderContainer = _b === void 0 ? this._onRenderContainer : _b, _c = props.onRenderCaretDown, onRenderCaretDown = _c === void 0 ? this._onRenderCaretDown : _c, _d = props.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = props.onRenderItem, onRenderItem = _e === void 0 ? this._onRenderItem : _e, selectedIndices = props.hoisted.selectedIndices;\n var _f = this.state, isOpen = _f.isOpen, calloutRenderEdge = _f.calloutRenderEdge, hasFocus = _f.hasFocus;\n // eslint-disable-next-line deprecation/deprecation\n var onRenderPlaceholder = props.onRenderPlaceholder || props.onRenderPlaceHolder || this._getPlaceholder;\n // If our cached options are out of date update our cache\n if (options !== this._sizePosCache.cachedOptions) {\n this._sizePosCache.updateOptions(options);\n }\n var selectedOptions = getAllSelectedOptions(options, selectedIndices);\n var divProps = getNativeProps(props, divProperties);\n var disabled = this._isDisabled();\n var errorMessageId = id + '-errorMessage';\n this._classNames = getClassNames(propStyles, {\n theme: theme,\n className: className,\n hasError: !!(errorMessage && errorMessage.length > 0),\n hasLabel: !!label,\n isOpen: isOpen,\n required: required,\n disabled: disabled,\n isRenderingPlaceholder: !selectedOptions.length,\n panelClassName: panelProps ? panelProps.className : undefined,\n calloutClassName: calloutProps ? calloutProps.className : undefined,\n calloutRenderEdge: calloutRenderEdge,\n });\n var hasErrorMessage = !!errorMessage && errorMessage.length > 0;\n return (React.createElement(\"div\", { className: this._classNames.root, ref: this.props.hoisted.rootRef, \"aria-owns\": isOpen ? this._listId : undefined },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(\"div\", __assign({ \"data-is-focusable\": !disabled, \"data-ktp-target\": true, ref: this._dropDown, id: id, tabIndex: disabled ? -1 : 0, role: \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-expanded\": isOpen ? 'true' : 'false', \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? mergeAriaAttributeValues(this._labelId, this._optionId) : undefined, \"aria-describedby\": hasErrorMessage ? this._id + '-errorMessage' : undefined, \"aria-required\": required, \"aria-disabled\": disabled, \"aria-controls\": isOpen ? this._listId : undefined }, divProps, { className: this._classNames.dropdown, onBlur: this._onDropdownBlur, onKeyDown: this._onDropdownKeyDown, onKeyUp: this._onDropdownKeyUp, onClick: this._onDropdownClick, onMouseDown: this._onDropdownMouseDown, onFocus: this._onFocus }),\n React.createElement(\"span\", { id: this._optionId, className: this._classNames.title, \"aria-live\": hasFocus ? 'polite' : undefined, \"aria-atomic\": hasFocus ? true : undefined, \"aria-invalid\": hasErrorMessage }, \n // If option is selected render title, otherwise render the placeholder text\n selectedOptions.length\n ? onRenderTitle(selectedOptions, this._onRenderTitle)\n : onRenderPlaceholder(props, this._onRenderPlaceholder)),\n React.createElement(\"span\", { className: this._classNames.caretDownWrapper }, onRenderCaretDown(props, this._onRenderCaretDown))),\n isOpen &&\n onRenderContainer(__assign(__assign({}, props), { onDismiss: this._onDismiss, onRenderItem: onRenderItem }), this._onRenderContainer),\n hasErrorMessage && (React.createElement(\"div\", { role: \"alert\", id: errorMessageId, className: this._classNames.errorMessage }, errorMessage))));\n };\n DropdownInternal.prototype.focus = function (shouldOpenOnFocus) {\n if (this._dropDown.current) {\n this._dropDown.current.focus();\n if (shouldOpenOnFocus) {\n this.setState({\n isOpen: true,\n });\n }\n }\n };\n DropdownInternal.prototype.setSelectedIndex = function (event, index) {\n var _a = this.props, options = _a.options, selectedKey = _a.selectedKey, selectedKeys = _a.selectedKeys, multiSelect = _a.multiSelect, notifyOnReselect = _a.notifyOnReselect, _b = _a.hoisted.selectedIndices, selectedIndices = _b === void 0 ? [] : _b;\n var checked = selectedIndices ? selectedIndices.indexOf(index) > -1 : false;\n var newIndexes = [];\n index = Math.max(0, Math.min(options.length - 1, index));\n // If this is a controlled component then no state change should take place.\n if (selectedKey !== undefined || selectedKeys !== undefined) {\n this._onChange(event, options, index, checked, multiSelect);\n return;\n }\n if (!multiSelect && !notifyOnReselect && index === selectedIndices[0]) {\n return;\n }\n else if (multiSelect) {\n newIndexes = selectedIndices ? this._copyArray(selectedIndices) : [];\n if (checked) {\n var position = newIndexes.indexOf(index);\n if (position > -1) {\n // unchecked the current one\n newIndexes.splice(position, 1);\n }\n }\n else {\n // add the new selected index into the existing one\n newIndexes.push(index);\n }\n }\n else {\n // Set the selected option if this is an uncontrolled component\n newIndexes = [index];\n }\n event.persist();\n // Call onChange after state is updated\n this.props.hoisted.setSelectedIndices(newIndexes);\n this._onChange(event, options, index, checked, multiSelect);\n };\n DropdownInternal.prototype._copyArray = function (array) {\n var newArray = [];\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n var element = array_1[_i];\n newArray.push(element);\n }\n return newArray;\n };\n /**\n * Finds the next valid Dropdown option and sets the selected index to it.\n * @param stepValue - Value of how many items the function should traverse. Should be -1 or 1.\n * @param index - Index of where the search should start\n * @param selectedIndex - The selectedIndex Dropdown's state\n * @returns The next valid dropdown option's index\n */\n DropdownInternal.prototype._moveIndex = function (event, stepValue, index, selectedIndex) {\n var options = this.props.options;\n // Return selectedIndex if nothing has changed or options is empty\n if (selectedIndex === index || options.length === 0) {\n return selectedIndex;\n }\n // If the user is pressing the up or down key we want to make\n // sure that the dropdown cycles through the options without\n // causing the screen to scroll. In _onDropdownKeyDown\n // at the very end is a check to see if newIndex !== selectedIndex.\n // If the index is less than 0 and we set it back to 0, then\n // newIndex will equal selectedIndex and not stop the action\n // of the key press happening and vice versa for indexes greater\n // than or equal to the options length.\n if (index >= options.length) {\n index = 0;\n }\n else if (index < 0) {\n index = options.length - 1;\n }\n var stepCounter = 0;\n // If current index is a header or divider, or disabled, increment by step\n while (options[index].itemType === DropdownMenuItemType.Header ||\n options[index].itemType === DropdownMenuItemType.Divider ||\n options[index].disabled) {\n // If stepCounter exceeds length of options, then return selectedIndex (-1)\n if (stepCounter >= options.length) {\n return selectedIndex;\n }\n // If index + stepValue is out of bounds, wrap around\n if (index + stepValue < 0) {\n index = options.length;\n }\n else if (index + stepValue >= options.length) {\n index = -1;\n }\n index = index + stepValue;\n stepCounter++;\n }\n this.setSelectedIndex(event, index);\n return index;\n };\n /** Wrap item list in a FocusZone */\n DropdownInternal.prototype._renderFocusableList = function (props) {\n var _a = props.onRenderList, onRenderList = _a === void 0 ? this._onRenderList : _a, label = props.label, ariaLabel = props.ariaLabel, multiSelect = props.multiSelect;\n return (React.createElement(\"div\", { className: this._classNames.dropdownItemsWrapper, onKeyDown: this._onZoneKeyDown, onKeyUp: this._onZoneKeyUp, ref: this._host, tabIndex: 0 },\n React.createElement(FocusZone, { ref: this._focusZone, direction: FocusZoneDirection.vertical, id: this._listId, className: this._classNames.dropdownItems, role: \"listbox\", \"aria-label\": ariaLabel, \"aria-labelledby\": label && !ariaLabel ? this._labelId : undefined, \"aria-multiselectable\": multiSelect }, onRenderList(props, this._onRenderList))));\n };\n DropdownInternal.prototype._renderSeparator = function (item) {\n var index = item.index, key = item.key;\n var separatorClassName = item.hidden ? this._classNames.dropdownDividerHidden : this._classNames.dropdownDivider;\n if (index > 0) {\n return React.createElement(\"div\", { role: \"separator\", key: key, className: separatorClassName });\n }\n return null;\n };\n DropdownInternal.prototype._renderHeader = function (item) {\n var _a = this.props.onRenderOption, onRenderOption = _a === void 0 ? this._onRenderOption : _a;\n var key = item.key, id = item.id;\n var headerClassName = item.hidden\n ? this._classNames.dropdownItemHeaderHidden\n : this._classNames.dropdownItemHeader;\n return (React.createElement(\"div\", { id: id, key: key, className: headerClassName }, onRenderOption(item, this._onRenderOption)));\n };\n DropdownInternal.prototype._onItemMouseEnter = function (item, ev) {\n if (this._shouldIgnoreMouseEvent()) {\n return;\n }\n var targetElement = ev.currentTarget;\n targetElement.focus();\n };\n DropdownInternal.prototype._onItemMouseMove = function (item, ev) {\n var targetElement = ev.currentTarget;\n this._gotMouseMove = true;\n if (!this._isScrollIdle || document.activeElement === targetElement) {\n return;\n }\n targetElement.focus();\n };\n DropdownInternal.prototype._shouldIgnoreMouseEvent = function () {\n return !this._isScrollIdle || !this._gotMouseMove;\n };\n /**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\n DropdownInternal.prototype._isAltOrMeta = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n DropdownInternal.prototype._shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = this._lastKeyDownWasAltOrMeta && this._isAltOrMeta(ev);\n this._lastKeyDownWasAltOrMeta = false;\n return !!keyPressIsAltOrMetaAlone && !(isMac() || isIOS());\n };\n /**\n * Returns true if dropdown should set to open on focus.\n * Otherwise, isOpen state should be toggled on click\n */\n DropdownInternal.prototype._shouldOpenOnFocus = function () {\n var hasFocus = this.state.hasFocus;\n var openOnKeyboardFocus = this.props.openOnKeyboardFocus;\n return !this._isFocusedByClick && openOnKeyboardFocus === true && !hasFocus;\n };\n DropdownInternal.defaultProps = {\n options: [],\n };\n return DropdownInternal;\n}(React.Component));\n//# sourceMappingURL=Dropdown.base.js.map","var _a, _b, _c;\nimport { __assign, __spreadArray } from \"tslib\";\nimport { IsFocusVisibleClassName } from '../../Utilities';\nimport { RectangleEdge } from '../../Positioning';\nimport { FontWeights, HighContrastSelector, getGlobalClassNames, normalize, HighContrastSelectorWhite, getScreenSelector, ScreenWidthMinMedium, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dropdown-container',\n label: 'ms-Dropdown-label',\n dropdown: 'ms-Dropdown',\n title: 'ms-Dropdown-title',\n caretDownWrapper: 'ms-Dropdown-caretDownWrapper',\n caretDown: 'ms-Dropdown-caretDown',\n callout: 'ms-Dropdown-callout',\n panel: 'ms-Dropdown-panel',\n dropdownItems: 'ms-Dropdown-items',\n dropdownItem: 'ms-Dropdown-item',\n dropdownDivider: 'ms-Dropdown-divider',\n dropdownOptionText: 'ms-Dropdown-optionText',\n dropdownItemHeader: 'ms-Dropdown-header',\n titleIsPlaceHolder: 'ms-Dropdown-titleIsPlaceHolder',\n titleHasError: 'ms-Dropdown-title--hasError',\n};\nvar DROPDOWN_HEIGHT = 32;\nvar DROPDOWN_ITEM_HEIGHT = 36;\nvar highContrastAdjustMixin = (_a = {},\n _a[HighContrastSelector + \", \" + HighContrastSelectorWhite.replace('@media ', '')] = __assign({}, getHighContrastNoAdjustStyle()),\n _a);\nvar highContrastItemAndTitleStateMixin = {\n selectors: __assign((_b = {}, _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n }, _b), highContrastAdjustMixin),\n};\nvar highContrastBorderState = {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n },\n _c),\n};\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMinMedium);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, hasError = props.hasError, hasLabel = props.hasLabel, className = props.className, isOpen = props.isOpen, disabled = props.disabled, required = props.required, isRenderingPlaceholder = props.isRenderingPlaceholder, panelClassName = props.panelClassName, calloutClassName = props.calloutClassName, calloutRenderEdge = props.calloutRenderEdge;\n if (!theme) {\n throw new Error('theme is undefined or null in base Dropdown getStyles function.');\n }\n var globalClassnames = getGlobalClassNames(GlobalClassNames, theme);\n var palette = theme.palette, semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var rootHoverFocusActiveSelectorNeutralDarkMixin = {\n color: semanticColors.menuItemTextHovered,\n };\n var rootHoverFocusActiveSelectorNeutralPrimaryMixin = {\n color: semanticColors.menuItemText,\n };\n var borderColorError = {\n borderColor: semanticColors.errorText,\n };\n var dropdownItemStyle = [\n globalClassnames.dropdownItem,\n {\n backgroundColor: 'transparent',\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '0 8px',\n width: '100%',\n minHeight: DROPDOWN_ITEM_HEIGHT,\n lineHeight: 20,\n height: 0,\n position: 'relative',\n border: '1px solid transparent',\n borderRadius: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n textAlign: 'left',\n '.ms-Button-flexContainer': {\n width: '100%',\n },\n },\n ];\n var dropdownHeaderStyle = [\n globalClassnames.dropdownItemHeader,\n __assign(__assign({}, fonts.medium), { fontWeight: FontWeights.semibold, color: semanticColors.menuHeader, background: 'none', backgroundColor: 'transparent', border: 'none', height: DROPDOWN_ITEM_HEIGHT, lineHeight: DROPDOWN_ITEM_HEIGHT, cursor: 'default', padding: '0 8px', userSelect: 'none', textAlign: 'left', selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a) }),\n ];\n var selectedItemBackgroundColor = semanticColors.menuItemBackgroundPressed;\n var itemSelectors = function (isSelected) {\n var _a, _b;\n if (isSelected === void 0) { isSelected = false; }\n return {\n selectors: (_a = {\n '&:hover': [\n {\n color: semanticColors.menuItemTextHovered,\n backgroundColor: !isSelected ? semanticColors.menuItemBackgroundHovered : selectedItemBackgroundColor,\n },\n highContrastItemAndTitleStateMixin,\n ],\n '&.is-multi-select:hover': [{ backgroundColor: !isSelected ? 'transparent' : selectedItemBackgroundColor }],\n '&:active:hover': [\n {\n color: semanticColors.menuItemTextHovered,\n backgroundColor: !isSelected\n ? semanticColors.menuItemBackgroundPressed\n : semanticColors.menuItemBackgroundHovered,\n },\n highContrastItemAndTitleStateMixin,\n ]\n },\n _a[\".\" + IsFocusVisibleClassName + \" &:focus:after\"] = (_b = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n },\n _b[HighContrastSelector] = {\n inset: '2px',\n },\n _b),\n _a[HighContrastSelector] = {\n border: 'none',\n },\n _a),\n };\n };\n var dropdownItemSelected = __spreadArray(__spreadArray([], dropdownItemStyle), [\n {\n backgroundColor: selectedItemBackgroundColor,\n color: semanticColors.menuItemTextHovered,\n },\n itemSelectors(true),\n highContrastItemAndTitleStateMixin,\n ]);\n var dropdownItemDisabled = __spreadArray(__spreadArray([], dropdownItemStyle), [\n {\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n border: 'none',\n },\n _b),\n },\n ]);\n var titleOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n ? effects.roundedCorner2 + \" \" + effects.roundedCorner2 + \" 0 0\"\n : \"0 0 \" + effects.roundedCorner2 + \" \" + effects.roundedCorner2;\n var calloutOpenBorderRadius = calloutRenderEdge === RectangleEdge.bottom\n ? \"0 0 \" + effects.roundedCorner2 + \" \" + effects.roundedCorner2\n : effects.roundedCorner2 + \" \" + effects.roundedCorner2 + \" 0 0\";\n return {\n root: [globalClassnames.root, className],\n label: globalClassnames.label,\n dropdown: [\n globalClassnames.dropdown,\n normalize,\n fonts.medium,\n {\n color: semanticColors.menuItemText,\n borderColor: semanticColors.focusBorder,\n position: 'relative',\n outline: 0,\n userSelect: 'none',\n selectors: (_c = {},\n _c['&:hover .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { borderColor: isOpen ? palette.neutralSecondary : palette.neutralPrimary },\n highContrastBorderState,\n ],\n _c['&:focus .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { selectors: (_d = {}, _d[HighContrastSelector] = { color: 'Highlight' }, _d) },\n ],\n _c['&:focus:after'] = [\n {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n boxSizing: 'border-box',\n top: '0px',\n left: '0px',\n width: '100%',\n height: '100%',\n // see https://github.com/microsoft/fluentui/pull/9182 for semantic color disc\n border: !disabled ? \"2px solid \" + palette.themePrimary : 'none',\n borderRadius: '2px',\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n color: 'Highlight',\n },\n _e),\n },\n ],\n _c['&:active .' + globalClassnames.title] = [\n !disabled && rootHoverFocusActiveSelectorNeutralDarkMixin,\n { borderColor: palette.themePrimary },\n highContrastBorderState,\n ],\n _c['&:hover .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:focus .' + globalClassnames.caretDown] = [\n !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n { selectors: (_f = {}, _f[HighContrastSelector] = { color: 'Highlight' }, _f) },\n ],\n _c['&:active .' + globalClassnames.caretDown] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:hover .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:focus .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:active .' + globalClassnames.titleIsPlaceHolder] = !disabled && rootHoverFocusActiveSelectorNeutralPrimaryMixin,\n _c['&:hover .' + globalClassnames.titleHasError] = borderColorError,\n _c['&:active .' + globalClassnames.titleHasError] = borderColorError,\n _c),\n },\n isOpen && 'is-open',\n disabled && 'is-disabled',\n required && 'is-required',\n required &&\n !hasLabel && {\n selectors: (_g = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _g[HighContrastSelector] = {\n selectors: {\n ':after': {\n right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n },\n },\n },\n _g),\n },\n ],\n title: [\n globalClassnames.title,\n normalize,\n {\n backgroundColor: semanticColors.inputBackground,\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: semanticColors.inputBorder,\n borderRadius: isOpen ? titleOpenBorderRadius : effects.roundedCorner2,\n cursor: 'pointer',\n display: 'block',\n height: DROPDOWN_HEIGHT,\n lineHeight: DROPDOWN_HEIGHT - 2,\n padding: \"0 28px 0 8px\",\n position: 'relative',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n isRenderingPlaceholder && [globalClassnames.titleIsPlaceHolder, { color: semanticColors.inputPlaceholderText }],\n hasError && [globalClassnames.titleHasError, borderColorError],\n disabled && {\n backgroundColor: semanticColors.disabledBackground,\n border: 'none',\n color: semanticColors.disabledText,\n cursor: 'default',\n selectors: (_h = {},\n _h[HighContrastSelector] = __assign({ border: '1px solid GrayText', color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n ],\n caretDownWrapper: [\n globalClassnames.caretDownWrapper,\n {\n height: DROPDOWN_HEIGHT,\n lineHeight: DROPDOWN_HEIGHT - 2,\n paddingTop: 1,\n position: 'absolute',\n right: 8,\n top: 0,\n },\n !disabled && {\n cursor: 'pointer',\n },\n ],\n caretDown: [\n globalClassnames.caretDown,\n { color: palette.neutralSecondary, fontSize: fonts.small.fontSize, pointerEvents: 'none' },\n disabled && {\n color: semanticColors.disabledText,\n selectors: (_j = {},\n _j[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _j),\n },\n ],\n errorMessage: __assign(__assign({ color: semanticColors.errorText }, theme.fonts.small), { paddingTop: 5 }),\n callout: [\n globalClassnames.callout,\n {\n boxShadow: effects.elevation8,\n borderRadius: calloutOpenBorderRadius,\n selectors: (_k = {},\n _k['.ms-Callout-main'] = { borderRadius: calloutOpenBorderRadius },\n _k),\n },\n calloutClassName,\n ],\n dropdownItemsWrapper: { selectors: { '&:focus': { outline: 0 } } },\n dropdownItems: [globalClassnames.dropdownItems, { display: 'block' }],\n dropdownItem: __spreadArray(__spreadArray([], dropdownItemStyle), [itemSelectors()]),\n dropdownItemSelected: dropdownItemSelected,\n dropdownItemDisabled: dropdownItemDisabled,\n dropdownItemSelectedAndDisabled: [dropdownItemSelected, dropdownItemDisabled, { backgroundColor: 'transparent' }],\n dropdownItemHidden: __spreadArray(__spreadArray([], dropdownItemStyle), [{ display: 'none' }]),\n dropdownDivider: [globalClassnames.dropdownDivider, { height: 1, backgroundColor: semanticColors.bodyDivider }],\n dropdownDividerHidden: [globalClassnames.dropdownDivider, { display: 'none' }],\n dropdownOptionText: [\n globalClassnames.dropdownOptionText,\n {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n minWidth: 0,\n maxWidth: '100%',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n margin: '1px',\n },\n ],\n dropdownItemHeader: dropdownHeaderStyle,\n dropdownItemHeaderHidden: __spreadArray(__spreadArray([], dropdownHeaderStyle), [{ display: 'none' }]),\n subComponentStyles: {\n label: { root: { display: 'inline-block' } },\n multiSelectItem: {\n root: {\n padding: 0,\n },\n label: {\n alignSelf: 'stretch',\n padding: '0 8px',\n width: '100%',\n },\n input: {\n selectors: (_l = {},\n _l[\".\" + IsFocusVisibleClassName + \" &:focus + label::before\"] = {\n outlineOffset: '0px',\n },\n _l),\n },\n },\n panel: {\n root: [panelClassName],\n main: {\n selectors: (_m = {},\n // In case of extra small screen sizes\n _m[MinimumScreenSelector] = {\n // panelWidth xs\n width: 272,\n },\n _m),\n },\n contentInner: { padding: '0 0 20px' },\n },\n },\n };\n};\n//# sourceMappingURL=Dropdown.styles.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeRequestAnimationFrame = function (component) {\n var activeTimeouts;\n return function (cb) {\n if (!activeTimeouts) {\n activeTimeouts = new Set();\n extendComponent(component, {\n componentWillUnmount: function () {\n activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });\n },\n });\n }\n var timeoutId = requestAnimationFrame(function () {\n activeTimeouts.delete(timeoutId);\n cb();\n });\n activeTimeouts.add(timeoutId);\n };\n};\n//# sourceMappingURL=safeRequestAnimationFrame.js.map","import { styled } from '../../Utilities';\nimport { DropdownBase } from './Dropdown.base';\nimport { getStyles } from './Dropdown.styles';\nexport var Dropdown = styled(DropdownBase, getStyles, undefined, {\n scope: 'Dropdown',\n});\nDropdown.displayName = 'Dropdown';\n//# sourceMappingURL=Dropdown.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n return function (oldScopedSettings) {\n var newScopedSettings = __assign({}, oldScopedSettings);\n for (var scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n }\n }\n return newScopedSettings;\n };\n}\n//# sourceMappingURL=mergeSettings.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n __extends(Customizer, _super);\n function Customizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n return _this;\n }\n Customizer.prototype.componentDidMount = function () {\n Customizations.observe(this._onCustomizationChange);\n };\n Customizer.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onCustomizationChange);\n };\n Customizer.prototype.render = function () {\n var _this = this;\n var contextTransform = this.props.contextTransform;\n return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n var newContext = mergeCustomizations(_this.props, parentContext);\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n }));\n };\n return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","export var Depths;\n(function (Depths) {\n Depths.depth0 = '0 0 0 0 transparent';\n Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n LocalizedFontNames.Thai = 'Leelawadee UI Web';\n LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n LocalizedFontNames.Selawik = 'Selawik Web';\n LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n LocalizedFontFamilies.Arabic = \"'\" + LocalizedFontNames.Arabic + \"'\";\n LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n LocalizedFontFamilies.Cyrillic = \"'\" + LocalizedFontNames.Cyrillic + \"'\";\n LocalizedFontFamilies.EastEuropean = \"'\" + LocalizedFontNames.EastEuropean + \"'\";\n LocalizedFontFamilies.Greek = \"'\" + LocalizedFontNames.Greek + \"'\";\n LocalizedFontFamilies.Hebrew = \"'\" + LocalizedFontNames.Hebrew + \"'\";\n LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n LocalizedFontFamilies.Selawik = \"'\" + LocalizedFontNames.Selawik + \"'\";\n LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n LocalizedFontFamilies.Vietnamese = \"'\" + LocalizedFontNames.Vietnamese + \"'\";\n LocalizedFontFamilies.WestEuropean = \"'\" + LocalizedFontNames.WestEuropean + \"'\";\n LocalizedFontFamilies.Armenian = \"'\" + LocalizedFontNames.Armenian + \"'\";\n LocalizedFontFamilies.Georgian = \"'\" + LocalizedFontNames.Georgian + \"'\";\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n FontSizes.size10 = '10px';\n FontSizes.size12 = '12px';\n FontSizes.size14 = '14px';\n FontSizes.size16 = '16px';\n FontSizes.size18 = '18px';\n FontSizes.size20 = '20px';\n FontSizes.size24 = '24px';\n FontSizes.size28 = '28px';\n FontSizes.size32 = '32px';\n FontSizes.size42 = '42px';\n FontSizes.size68 = '68px';\n FontSizes.mini = '10px';\n FontSizes.xSmall = '10px';\n FontSizes.small = '12px';\n FontSizes.smallPlus = '12px';\n FontSizes.medium = '14px';\n FontSizes.mediumPlus = '16px';\n FontSizes.icon = '16px';\n FontSizes.large = '18px';\n FontSizes.xLarge = '20px';\n FontSizes.xLargePlus = '24px';\n FontSizes.xxLarge = '28px';\n FontSizes.xxLargePlus = '32px';\n FontSizes.superLarge = '42px';\n FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n FontWeights.light = 100;\n FontWeights.semilight = 300;\n FontWeights.regular = 400;\n FontWeights.semibold = 600;\n FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n IconFontSizes.xSmall = '10px';\n IconFontSizes.small = '12px';\n IconFontSizes.medium = '16px';\n IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\" + LocalizedFontNames.WestEuropean + \"'\";\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n return fontFamily + \", \" + FontFamilyFallbacks;\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n for (var lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return LanguageToFontMap[lang];\n }\n }\n return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\nexport function createFontStyles(localeCode) {\n var localizedFont = _getLocalizedFontFamily(localeCode);\n var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n var fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://res-1.cdn.office.net/files/fabric-cdn-prod_20221209.001/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage());\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n fontFamily = \"'\" + fontFamily + \"'\";\n var localFontSrc = localFontName !== undefined ? \"local('\" + localFontName + \"'),\" : '';\n fontFace({\n fontFamily: fontFamily,\n src: localFontSrc + (\"url('\" + url + \".woff2') format('woff2'),\") + (\"url('\" + url + \".woff') format('woff')\"),\n fontWeight: fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n var urlBase = baseUrl + \"/\" + cdnFolder + \"/\" + cdnFontName;\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n if (baseUrl) {\n var fontUrl = baseUrl + \"/fonts\";\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-semilight\", FontWeights.light);\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-bold\", FontWeights.semibold);\n }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n return (_b = fabricConfig === null || fabricConfig === void 0 ? void 0 : fabricConfig.fontBaseUrl) !== null && _b !== void 0 ? _b : DefaultBaseUrl;\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var result = {};\n // map palette\n var _a = p || {}, white = _a.white, black = _a.black, themePrimary = _a.themePrimary, themeDark = _a.themeDark, themeDarker = _a.themeDarker, themeDarkAlt = _a.themeDarkAlt, themeLighter = _a.themeLighter, neutralLight = _a.neutralLight, neutralLighter = _a.neutralLighter, neutralDark = _a.neutralDark, neutralQuaternary = _a.neutralQuaternary, neutralQuaternaryAlt = _a.neutralQuaternaryAlt, neutralPrimary = _a.neutralPrimary, neutralSecondary = _a.neutralSecondary, neutralSecondaryAlt = _a.neutralSecondaryAlt, neutralTertiary = _a.neutralTertiary, neutralTertiaryAlt = _a.neutralTertiaryAlt, neutralLighterAlt = _a.neutralLighterAlt, accent = _a.accent;\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = (s === null || s === void 0 ? void 0 : s.variantBorderHovered) || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n // map effects\n if (e === null || e === void 0 ? void 0 : e.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && (e === null || e === void 0 ? void 0 : e.elevation8)) {\n result.cardShadowHovered = e.elevation8;\n }\n else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n result = __assign(__assign({}, result), s);\n return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n // Add @deprecated tag as comment if enabled\n var dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","export var DefaultSpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getDocument, getNativeProps, getRTL, memoizeFunction, Customizer, FocusRectsProvider, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (_a) {\n var theme = _a.theme, dir = _a.dir;\n var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n var pageDir = getRTL() ? 'rtl' : 'ltr';\n var componentDir = dir ? dir : contextDir;\n return {\n // If Fabric dir !== contextDir\n // Or If contextDir !== pageDir\n // Then we need to set dir of the Fabric root\n rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n // If dir !== contextDir || pageDir\n // then set contextual theme around content\n needsTheme: componentDir !== contextDir,\n };\n};\nexport var FabricBase = React.forwardRef(function (props, ref) {\n var className = props.className, theme = props.theme, applyTheme = props.applyTheme, applyThemeToBody = props.applyThemeToBody, styles = props.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n applyTheme: applyTheme,\n className: className,\n });\n var rootElement = React.useRef(null);\n useApplyThemeToBody(applyThemeToBody, classNames, rootElement);\n return React.createElement(React.Fragment, null, useRenderedContent(props, classNames, rootElement, ref));\n});\nFabricBase.displayName = 'FabricBase';\nfunction useRenderedContent(props, _a, rootElement, ref) {\n var root = _a.root;\n var _b = props.as, Root = _b === void 0 ? 'div' : _b, dir = props.dir, theme = props.theme;\n var divProps = getNativeProps(props, divProperties, ['dir']);\n var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n var renderedContent = (React.createElement(FocusRectsProvider, { providerRef: rootElement },\n React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: root, ref: useMergedRefs(rootElement, ref) }))));\n // Create the contextual theme if component direction does not match parent direction.\n if (needsTheme) {\n // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed.\n renderedContent = (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n }\n return renderedContent;\n}\nfunction useApplyThemeToBody(applyThemeToBody, _a, rootElement) {\n var bodyThemed = _a.bodyThemed;\n React.useEffect(function () {\n if (applyThemeToBody) {\n var currentDoc_1 = getDocument(rootElement.current);\n if (currentDoc_1) {\n currentDoc_1.body.classList.add(bodyThemed);\n return function () {\n currentDoc_1.body.classList.remove(bodyThemed);\n };\n }\n }\n }, [bodyThemed, applyThemeToBody, rootElement]);\n return rootElement;\n}\n//# sourceMappingURL=Fabric.base.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n if (theme === void 0) { theme = {}; }\n if (depComments === void 0) { depComments = false; }\n var isInverted = !!theme.isInverted;\n var baseTheme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted: isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n var _a, _b, _c;\n if (partialTheme === void 0) { partialTheme = {}; }\n var mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n });\n if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n if (partialTheme.defaultFontStyle) {\n for (var _i = 0, _d = Object.keys(mergedTheme.fonts); _i < _d.length; _i++) {\n var fontStyle = _d[_i];\n mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_c = partialTheme === null || partialTheme === void 0 ? void 0 : partialTheme.fonts) === null || _c === void 0 ? void 0 : _c[fontStyle]);\n }\n }\n return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n root: 'ms-Fabric',\n bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n var applyTheme = props.applyTheme, className = props.className, preventBlanketFontInheritance = props.preventBlanketFontInheritance, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: theme.palette.neutralPrimary,\n },\n !preventBlanketFontInheritance && {\n '& button': inheritFont,\n '& input': inheritFont,\n '& textarea': inheritFont,\n },\n // apply theme to only if applyTheme is true\n applyTheme && {\n color: theme.semanticColors.bodyText,\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n className,\n ],\n bodyThemed: [\n {\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n ],\n };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\n/**\n * @deprecated This component is deprecated as of `@fluentui/react` version 8. Use `ThemeProvider` instead.\n */\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n * every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n * handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n var callbackRef = React.useRef(function () {\n throw new Error('Cannot call an event handler while rendering');\n });\n useIsomorphicLayoutEffect(function () {\n callbackRef.current = fn;\n }, [fn]);\n // useConst rather than useCallback to ensure the reference is always stable\n // (useCallback's deps list is an optimization, not a guarantee)\n return useConst(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback = callbackRef.current;\n return callback.apply(void 0, args);\n }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n disabled: false,\n disableFirstFocus: false,\n forceFocusInsideTrap: true,\n isClickableOutsideFocusTrap: false,\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n React.useImperativeHandle(componentRef, function () { return ({\n get previouslyFocusedElement() {\n return previouslyFocusedElement;\n },\n focus: focusFTZ,\n }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a;\n var root = React.useRef(null);\n var firstBumper = React.useRef(null);\n var lastBumper = React.useRef(null);\n var mergedRootRef = useMergedRefs(root, ref);\n var doc = useDocument();\n var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var internalState = useConst({\n hasFocus: false,\n focusStackId: useId('ftz-', props.id),\n });\n var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n },\n tabIndex: disabled ? -1 : 0,\n 'data-is-visible': true,\n 'data-is-focus-trap-zone-bumper': true,\n };\n var focusElementAsync = React.useCallback(function (element) {\n if (element !== firstBumper.current && element !== lastBumper.current) {\n focusAsync(element);\n }\n }, []);\n /**\n * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n * useEventCallback always returns the same callback reference but updates the implementation\n * every render to avoid stale captured values.\n */\n var focusFTZ = useEventCallback(function () {\n if (!root.current) {\n return; // not done mounting\n }\n var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n if (focusPreviouslyFocusedInnerElement &&\n previouslyFocusedElementInTrapZone &&\n elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n focusElementAsync(previouslyFocusedElementInTrapZone);\n return;\n }\n var firstFocusableChild = null;\n if (typeof firstFocusableTarget === 'string') {\n firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n firstFocusableChild = firstFocusableTarget(root.current);\n }\n else if (firstFocusableSelector) {\n var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n firstFocusableChild = root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!firstFocusableChild) {\n firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true);\n }\n if (firstFocusableChild) {\n focusElementAsync(firstFocusableChild);\n }\n });\n /** Used in root div focus/blur handlers */\n var focusBumper = function (isFirstBumper) {\n if (disabled || !root.current) {\n return;\n }\n var nextFocusable = isFirstBumper === internalState.hasFocus\n ? getLastTabbable(root.current, lastBumper.current, true, false)\n : getFirstTabbable(root.current, firstBumper.current, true, false);\n if (nextFocusable) {\n if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n // This can happen when FTZ contains no tabbable elements.\n // focusFTZ() will take care of finding a focusable element in FTZ.\n focusFTZ();\n }\n else {\n nextFocusable.focus();\n }\n }\n };\n /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n var onRootBlurCapture = function (ev) {\n var _a;\n (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the root\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = doc.activeElement;\n }\n if (!elementContains(root.current, relatedTarget)) {\n internalState.hasFocus = false;\n }\n };\n /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n var onRootFocusCapture = function (ev) {\n var _a;\n (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n if (ev.target === firstBumper.current) {\n focusBumper(true);\n }\n else if (ev.target === lastBumper.current) {\n focusBumper(false);\n }\n internalState.hasFocus = true;\n if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n internalState.previouslyFocusedElementInTrapZone = ev.target;\n }\n };\n /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n if (!doc) {\n return;\n }\n var activeElement = doc.activeElement;\n if (!disableRestoreFocus &&\n typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n (elementContains(root.current, activeElement) || activeElement === doc.body)) {\n focusElementAsync(elementToFocusOnDismiss);\n }\n });\n /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n // be sure to use the latest values here\n if (disabled) {\n return;\n }\n if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n var targetElement = ev.target;\n if (targetElement && !elementContains(root.current, targetElement)) {\n if (doc && doc.activeElement === doc.body) {\n setTimeout(function () {\n if (doc && doc.activeElement === doc.body) {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n }, 0);\n }\n else {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n });\n // Update window event handlers when relevant props change\n React.useEffect(function () {\n var disposables = [];\n if (forceFocusInsideTrap) {\n disposables.push(on(window, 'focus', forceFocusOrClickInTrap, true));\n }\n if (!isClickableOutsideFocusTrap) {\n disposables.push(on(window, 'click', forceFocusOrClickInTrap, true));\n }\n return function () {\n disposables.forEach(function (dispose) { return dispose(); });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, isClickableOutsideFocusTrap]);\n // On prop change or first render, focus the FTZ and update focusStack if appropriate\n React.useEffect(function () {\n // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n // is false, though it's debatable whether it should do this)\n if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n return;\n }\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n FocusTrapZone.focusStack.push(internalState.focusStackId);\n var elementToFocusOnDismiss = props.elementToFocusOnDismiss || doc.activeElement;\n if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n focusFTZ();\n }\n // To match existing behavior, always return focus on cleanup (even if we didn't handle\n // initial focus), but it's debatable whether that's correct\n return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, disabled]);\n // Handle modalization separately from first focus\n React.useEffect(function () {\n if (!disabled && enableAriaHiddenSiblings) {\n var unmodalize = modalize(root.current);\n return unmodalize;\n }\n }, [disabled, enableAriaHiddenSiblings, root]);\n // Cleanup lifecyle method for internalState.\n useUnmount(function () {\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete internalState.previouslyFocusedElementInTrapZone;\n });\n useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n var _a = getIcon(iconName) || {\n subset: {},\n code: undefined,\n }, code = _a.code, subset = _a.subset;\n if (!code) {\n return null;\n }\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var accessibleName = props['aria-label'] || props.title;\n var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n var finalChildren = children;\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n // https://github.com/microsoft/fluentui/issues/10449\n style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n /**\n * Render using the fabric icon font.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"default\"] = 0] = \"default\";\n /**\n * Render using an image, where imageProps would be used.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"image\"] = 1] = \"image\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n // Icon is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Icon.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n __extends(IconBase, _super);\n function IconBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoadingStateChange = function (state) {\n if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n _this.props.imageProps.onLoadingStateChange(state);\n }\n if (state === ImageLoadState.error) {\n _this.setState({ imageLoadError: true });\n }\n };\n _this.state = {\n imageLoadError: false,\n };\n return _this;\n }\n IconBase.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n var isImage = \n // eslint-disable-next-line deprecation/deprecation\n !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n iconClassName: iconClassName,\n isImage: isImage,\n isPlaceholder: isPlaceholder,\n });\n var RootType = isImage ? 'span' : 'i';\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'aria-label',\n ]);\n var imageLoadError = this.state.imageLoadError;\n var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n var ImageType = (imageLoadError && imageErrorAs) || Image;\n // eslint-disable-next-line deprecation/deprecation\n var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n var hasName = !!(accessibleName ||\n this.props['aria-labelledby'] ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby']);\n var containerProps = hasName\n ? {\n role: isImage || mergeImageProps ? undefined : 'img',\n 'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n }\n : {\n 'aria-hidden': true,\n };\n var finalIconContentChildren = iconContentChildren;\n if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n finalIconContentChildren = React.cloneElement(iconContentChildren, {\n alt: accessibleName,\n });\n }\n return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n };\n return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n//# sourceMappingURL=Icon.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n useIsomorphicLayoutEffect(function () {\n // If the src property changes, reset the load state\n // (does nothing if the load state is already notLoaded)\n setLoadState(ImageLoadState.notLoaded);\n }, [src]);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n React.useEffect(function () {\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n var isLoaded = imageElement.current\n ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n (imageElement.current.complete && SVG_REGEX.test(src))\n : false;\n if (isLoaded) {\n setLoadState(ImageLoadState.loaded);\n }\n }\n });\n React.useEffect(function () {\n onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n }, [loadState]);\n var onImageLoaded = React.useCallback(function (ev) {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n if (src) {\n setLoadState(ImageLoadState.loaded);\n }\n }, [src, onLoad]);\n var onImageError = React.useCallback(function (ev) {\n onError === null || onError === void 0 ? void 0 : onError(ev);\n setLoadState(ImageLoadState.error);\n }, [onError]);\n return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n var frameElement = React.useRef();\n var imageElement = React.useRef();\n var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n var imageProps = getNativeProps(props, imgProperties, [\n 'width',\n 'height',\n ]);\n var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n width: width,\n height: height,\n maximizeFrame: maximizeFrame,\n shouldFadeIn: shouldFadeIn,\n shouldStartVisible: shouldStartVisible,\n isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n // If image dimensions aren't specified, the natural size of the image is used.\n return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n var previousLoadState = React.useRef(loadState);\n var coverStyle = React.useRef();\n if (coverStyle === undefined ||\n (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n }\n previousLoadState.current = loadState;\n return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n var imageFit = props.imageFit, width = props.width, height = props.height;\n // Do not compute cover style if it was already specified in props\n if (props.coverStyle !== undefined) {\n return props.coverStyle;\n }\n else if (loadState === ImageLoadState.loaded &&\n (imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n imageElement.current &&\n frameElement.current) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n var desiredRatio = void 0;\n if (typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover) {\n desiredRatio = width / height;\n }\n else {\n desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n return ImageCoverStyle.landscape;\n }\n }\n return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ImageFitStyles = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n var window = getWindow();\n var supportsObjectFit = window !== undefined && window.navigator.msMaxTouchPoints === undefined;\n var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n /**\n * The image has been loaded successfully.\n */\n ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n /**\n * An error has been encountered while loading the image.\n */\n ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n // Label is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Label.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n __extends(LabelBase, _super);\n function LabelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LabelBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n var classNames = getClassNames(styles, {\n className: className,\n disabled: disabled,\n required: required,\n theme: theme,\n });\n return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n };\n return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n var semanticColors = theme.semanticColors;\n // Tokens\n var labelFontWeight = FontWeights.semibold;\n var labelColor = semanticColors.bodyText;\n var labelDisabledColor = semanticColors.disabledBodyText;\n var labelRequiredStarColor = semanticColors.errorText;\n return {\n root: [\n 'ms-Label',\n theme.fonts.medium,\n {\n fontWeight: labelFontWeight,\n color: labelColor,\n boxSizing: 'border-box',\n boxShadow: 'none',\n margin: 0,\n display: 'block',\n padding: '5px 0',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n disabled && {\n color: labelDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n required && {\n selectors: {\n '::after': {\n content: \"' *'\",\n color: labelRequiredStarColor,\n paddingRight: 12,\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Label.styles.js.map","import * as React from 'react';\nvar PortalCompatContext = /*#__PURE__*/React.createContext(undefined);\n\nvar portalCompatContextDefaultValue = function () {\n return function () {\n return undefined;\n };\n};\n\nexport var PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n var _a;\n\n return (_a = React.useContext(PortalCompatContext)) !== null && _a !== void 0 ? _a : portalCompatContextDefaultValue;\n}\n//# sourceMappingURL=PortalCompatContext.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, css, getDocument, setPortalAttribute, setVirtualParent, FocusRectsProvider, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nexport var LayerBase = React.forwardRef(function (props, ref) {\n var registerPortalEl = usePortalCompat();\n var rootRef = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var layerRef = React.useRef();\n var fabricElementRef = React.useRef(null);\n // Tracks if the layer mount events need to be raised.\n // Required to allow the DOM to render after the layer element is added.\n var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n var children = props.children, className = props.className, eventBubblingEnabled = props.eventBubblingEnabled, fabricProps = props.fabricProps, hostId = props.hostId, insertFirst = props.insertFirst, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onLayerMounted, \n // eslint-disable-next-line deprecation/deprecation\n onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, styles = props.styles, theme = props.theme;\n var fabricRef = useMergedRefs(fabricElementRef, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.ref);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !hostId,\n });\n // Returns the user provided hostId props element, the default target selector,\n // or undefined if document doesn't exist.\n var getHost = function (doc) {\n var _a, _b;\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n }\n return (_b = doc.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n // Find the host.\n var host = defaultHostSelector ? doc.querySelector(defaultHostSelector) : null;\n // If no host is available, create a container for injecting layers in.\n // Having a container scopes layout computation.\n if (!host) {\n host = createDefaultLayerHost(doc);\n }\n return host;\n }\n };\n // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n var removeLayerElement = function () {\n onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n var elem = layerRef.current;\n // Clear ref before removing from the DOM\n layerRef.current = undefined;\n if (elem && elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n };\n // If a doc or host exists, it will remove and update layer parentNodes.\n var createLayerElement = function () {\n var _a;\n var doc = getDocument(rootRef.current);\n if (!doc) {\n return;\n }\n var host = getHost(doc);\n if (!host) {\n return;\n }\n // Remove and re-create any previous existing layer elements.\n removeLayerElement();\n var el = ((_a = host.ownerDocument) !== null && _a !== void 0 ? _a : doc).createElement('div');\n el.className = classNames.root;\n setPortalAttribute(el);\n setVirtualParent(el, rootRef.current);\n insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n layerRef.current = el;\n setNeedRaiseLayerMount(true);\n };\n useIsomorphicLayoutEffect(function () {\n createLayerElement();\n // Check if the user provided a hostId prop and register the layer with the ID.\n if (hostId) {\n registerLayer(hostId, createLayerElement);\n }\n var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n return function () {\n if (unregisterPortalEl) {\n unregisterPortalEl();\n }\n removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, createLayerElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n }, [hostId]);\n React.useEffect(function () {\n if (layerRef.current && needRaiseLayerMount) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n setNeedRaiseLayerMount(false);\n }\n }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n useDebugWarnings(props);\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n ReactDOM.createPortal(React.createElement(FocusRectsProvider, { layerRoot: true, providerRef: fabricRef },\n React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), fabricProps, { className: css(classNames.content, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.className), ref: fabricRef }), children)), layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n // event name rather than ev.bubble.\n if (ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend') {\n ev.stopPropagation();\n }\n};\nfunction getFilteredEvents() {\n if (!filteredEventProps) {\n filteredEventProps = {};\n [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseOut',\n 'onMouseUp',\n 'onTouchMove',\n 'onTouchStart',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onInvalid',\n 'onSubmit',\n ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n }\n return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Layer',\n props: props,\n deprecations: { onLayerMounted: 'onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Layer.base.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\" + defaultHostId;\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc) {\n var host = doc.createElement('div');\n host.setAttribute('id', defaultHostId);\n host.style.cssText = 'position:fixed;z-index:1000000';\n doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc) {\n var host = doc.querySelector(\"#\" + defaultHostId);\n if (host) {\n doc.removeChild(host);\n }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(function (callback) { return callback(); });\n }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n var virtualChild = child;\n var virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n var oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n var index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isNotHost && [\n classNames.rootNoHost,\n {\n position: 'fixed',\n zIndex: ZIndexes.Layer,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n visibility: 'hidden',\n },\n ],\n className,\n ],\n content: [\n classNames.content,\n {\n visibility: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n __extends(PanelBase, _super);\n function PanelBase(props) {\n var _this = _super.call(this, props) || this;\n _this._panel = React.createRef();\n _this._animationCallback = null;\n _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n _this.dismiss = function (ev) {\n if (_this.props.onDismiss && _this.isActive) {\n _this.props.onDismiss(ev);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n _this.close();\n }\n };\n // Allow the user to scroll within the panel but not on the body\n _this._allowScrollOnPanel = function (elt) {\n if (elt) {\n if (_this._allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, _this._events);\n }\n else {\n allowScrollOnElement(elt, _this._events);\n }\n }\n else {\n _this._events.off(_this._scrollableContent);\n }\n _this._scrollableContent = elt;\n };\n _this._onRenderNavigation = function (props) {\n if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n return null;\n }\n var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n };\n _this._onRenderNavigationContent = function (props) {\n var _a;\n var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n if (hasCloseButton) {\n var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n return (React.createElement(React.Fragment, null,\n !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n React.createElement(IconButton, { styles: iconButtonStyles, className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n }\n return null;\n };\n _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n if (headerText) {\n return (React.createElement(\"div\", { className: _this._classNames.header },\n React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n }\n return null;\n };\n _this._onRenderBody = function (props) {\n return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n };\n _this._onRenderFooter = function (props) {\n var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n if (onRenderFooterContent) {\n return (React.createElement(\"div\", { className: _this._classNames.footer },\n React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n }\n return null;\n };\n _this._animateTo = function (newVisibilityState) {\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n _this.props.onOpen();\n }\n _this._animationCallback = _this._async.setTimeout(function () {\n _this.setState({ visibility: newVisibilityState });\n _this._onTransitionComplete();\n }, 200);\n };\n _this._clearExistingAnimationTimer = function () {\n if (_this._animationCallback !== null) {\n _this._async.clearTimeout(_this._animationCallback);\n }\n };\n _this._onPanelClick = function (ev) {\n _this.dismiss(ev);\n };\n _this._onTransitionComplete = function () {\n _this._updateFooterPosition();\n if (_this.state.visibility === PanelVisibilityState.open && _this.props.onOpened) {\n _this.props.onOpened();\n }\n if (_this.state.visibility === PanelVisibilityState.closed && _this.props.onDismissed) {\n _this.props.onDismissed();\n }\n };\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n ignoreExternalFocusing: 'focusTrapZoneProps',\n forceFocusInsideTrap: 'focusTrapZoneProps',\n firstFocusableSelector: 'focusTrapZoneProps',\n });\n _this.state = {\n isFooterSticky: false,\n // intentionally ignore props so animation takes place during componentDidMount\n visibility: PanelVisibilityState.closed,\n id: getId('Panel'),\n };\n return _this;\n }\n PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n if (nextProps.isOpen === undefined) {\n return null; // no state update\n }\n if (nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.closed ||\n prevState.visibility === PanelVisibilityState.animatingClosed)) {\n return { visibility: PanelVisibilityState.animatingOpen };\n }\n if (!nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.open ||\n prevState.visibility === PanelVisibilityState.animatingOpen)) {\n return { visibility: PanelVisibilityState.animatingClosed };\n }\n return null;\n };\n PanelBase.prototype.componentDidMount = function () {\n this._events.on(window, 'resize', this._updateFooterPosition);\n if (this._shouldListenForOuterClick(this.props)) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n if (this.props.isOpen) {\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n }\n };\n PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n if (this.state.visibility !== previousState.visibility) {\n this._clearExistingAnimationTimer();\n if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n this._animateTo(PanelVisibilityState.open);\n }\n else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n this._animateTo(PanelVisibilityState.closed);\n }\n }\n if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n this._events.on(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n this._events.off(document.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n };\n PanelBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n PanelBase.prototype.render = function () {\n var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n /* eslint-disable deprecation/deprecation */\n firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n var isRTL = getRTL(theme);\n var isOnRightSide = isRTL ? isLeft : !isLeft;\n var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n var nativeProps = getNativeProps(this.props, divProperties);\n var isOpen = this.isActive;\n var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n this._headerTextId = headerText && id + '-headerText';\n if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n return null;\n }\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n hasCloseButton: hasCloseButton,\n headerClassName: headerClassName,\n isAnimating: isAnimating,\n isFooterSticky: isFooterSticky,\n isFooterAtBottom: isFooterAtBottom,\n isOnRightSide: isOnRightSide,\n isOpen: isOpen,\n isHiddenOnDismiss: isHiddenOnDismiss,\n type: type,\n hasCustomNavigation: this._hasCustomNavigation,\n });\n var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n var overlay;\n if (isBlocking && isOpen) {\n overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n }\n return (React.createElement(Layer, __assign({}, layerProps),\n React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": isBlocking ? 'true' : undefined, ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel, enableAriaHiddenSiblings: isOpen ? true : false }, popupProps),\n React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n overlay,\n React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n React.createElement(\"div\", { className: _classNames.contentInner },\n React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true },\n React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n (this._hasCustomNavigation || !hasCloseButton) &&\n onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n onRenderBody(this.props, this._onRenderBody),\n onRenderFooter(this.props, this._onRenderFooter))))))));\n };\n PanelBase.prototype.open = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n };\n PanelBase.prototype.close = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (!this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingClosed });\n };\n Object.defineProperty(PanelBase.prototype, \"isActive\", {\n /** isActive is true when panel is open or opening. */\n get: function () {\n return (this.state.visibility === PanelVisibilityState.open ||\n this.state.visibility === PanelVisibilityState.animatingOpen);\n },\n enumerable: false,\n configurable: true\n });\n PanelBase.prototype._shouldListenForOuterClick = function (props) {\n return !!props.isBlocking && !!props.isOpen;\n };\n PanelBase.prototype._updateFooterPosition = function () {\n var scrollableContent = this._scrollableContent;\n if (scrollableContent) {\n var height = scrollableContent.clientHeight;\n var innerHeight_1 = scrollableContent.scrollHeight;\n this.setState({\n isFooterSticky: height < innerHeight_1 ? true : false,\n });\n }\n };\n PanelBase.prototype._dismissOnOuterClick = function (ev) {\n var panel = this._panel.current;\n if (this.isActive && panel && !ev.defaultPrevented) {\n if (!elementContains(panel, ev.target)) {\n if (this.props.onOuterClick) {\n this.props.onOuterClick(ev);\n }\n else {\n this.dismiss(ev);\n }\n }\n }\n };\n PanelBase.defaultProps = {\n isHiddenOnDismiss: false,\n isOpen: undefined,\n isBlocking: true,\n hasCloseButton: true,\n type: PanelType.smallFixedFar,\n };\n return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Panel',\n main: 'ms-Panel-main',\n commands: 'ms-Panel-commands',\n contentInner: 'ms-Panel-contentInner',\n scrollableContent: 'ms-Panel-scrollableContent',\n navigation: 'ms-Panel-navigation',\n closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n header: 'ms-Panel-header',\n headerText: 'ms-Panel-headerText',\n content: 'ms-Panel-content',\n footer: 'ms-Panel-footer',\n footerInner: 'ms-Panel-footerInner',\n isOpen: 'is-open',\n hasCloseButton: 'ms-Panel--hasCloseButton',\n smallFluid: 'ms-Panel--smFluid',\n smallFixedNear: 'ms-Panel--smLeft',\n smallFixedFar: 'ms-Panel--sm',\n medium: 'ms-Panel--md',\n large: 'ms-Panel--lg',\n largeFixed: 'ms-Panel--fixed',\n extraLarge: 'ms-Panel--xl',\n custom: 'ms-Panel--custom',\n customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n full: '100%',\n auto: 'auto',\n xs: 272,\n sm: 340,\n md1: 592,\n md2: 644,\n lg: 940,\n};\nvar panelMargin = {\n auto: 'auto',\n none: 0,\n md: 48,\n lg: 428,\n xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n _a[\"@media (min-width: \" + ScreenWidthMinMedium + \"px)\"] = {\n width: panelWidth.sm,\n },\n _a);\nvar mediumPanelSelectors = (_b = {},\n _b[\"@media (min-width: \" + ScreenWidthMinLarge + \"px)\"] = {\n width: panelWidth.md1,\n },\n _b[\"@media (min-width: \" + ScreenWidthMinXLarge + \"px)\"] = {\n width: panelWidth.md2,\n },\n _b);\nvar largePanelSelectors = (_c = {},\n _c[\"@media (min-width: \" + ScreenWidthMinUhfMobile + \"px)\"] = {\n left: panelMargin.md,\n width: panelWidth.auto,\n },\n _c[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.lg,\n },\n _c);\nvar largeFixedPanelSelectors = (_d = {},\n _d[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.auto,\n width: panelWidth.lg,\n },\n _d);\nvar extraLargePanelSelectors = (_e = {},\n _e[\"@media (min-width: \" + ScreenWidthMinXXLarge + \"px)\"] = {\n left: panelMargin.xl,\n },\n _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n var selectors;\n // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n // are not checked in here because they render the same in all the breakpoints\n // and have the checks done separately in the `getStyles` function below.\n switch (type) {\n case PanelType.smallFixedFar:\n selectors = __assign({}, smallPanelSelectors);\n break;\n case PanelType.medium:\n selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n break;\n case PanelType.large:\n selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n break;\n case PanelType.largeFixed:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n break;\n case PanelType.extraLarge:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n break;\n default:\n break;\n }\n return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n paddingLeft: '24px',\n paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _e = props.type, type = _e === void 0 ? PanelType.smallFixedFar : _e;\n var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isOpen && classNames.isOpen,\n hasCloseButton && classNames.hasCloseButton,\n {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n isCustomPanel && isOnRightSide && classNames.custom,\n isCustomPanel && !isOnRightSide && classNames.customNear,\n className,\n ],\n overlay: [\n {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n isOpen && isAnimating && AnimationClassNames.fadeIn100,\n !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n ],\n hiddenPanel: [\n !isOpen &&\n !isAnimating &&\n isHiddenOnDismiss && {\n visibility: 'hidden',\n },\n ],\n main: [\n classNames.main,\n {\n backgroundColor: semanticColors.bodyBackground,\n boxShadow: effects.elevation64,\n pointerEvents: 'auto',\n position: 'absolute',\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n bottom: 0,\n top: 0,\n // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n left: panelMargin.auto,\n right: panelMargin.none,\n width: panelWidth.full,\n selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n borderLeft: \"3px solid \" + semanticColors.variantBorder,\n borderRight: \"3px solid \" + semanticColors.variantBorder,\n }, _a), getPanelBreakpoints(type)),\n },\n type === PanelType.smallFluid && {\n left: panelMargin.none,\n },\n type === PanelType.smallFixedNear && {\n left: panelMargin.none,\n right: panelMargin.auto,\n width: panelWidth.xs,\n },\n type === PanelType.customNear && {\n right: 'auto',\n left: 0,\n },\n isCustomPanel && {\n maxWidth: '100vw',\n },\n isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n focusTrapZoneClassName,\n ],\n commands: [\n classNames.commands,\n {\n // Ensures that the sticky header always has a background to prevent overlaps on scroll.\n backgroundColor: semanticColors.bodyBackground,\n paddingTop: 18,\n selectors: (_b = {},\n _b[\"@media (min-height: \" + ScreenWidthMinMedium + \"px)\"] = {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n },\n _b),\n },\n hasCustomNavigation && {\n paddingTop: 'inherit',\n }\n ],\n navigation: [\n classNames.navigation,\n {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n hasCustomNavigation && {\n height: commandBarHeight,\n },\n ],\n contentInner: [\n classNames.contentInner,\n {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n overflowY: 'hidden',\n },\n ],\n header: [\n classNames.header,\n sharedPaddingStyles,\n {\n alignSelf: 'flex-start',\n },\n hasCloseButton &&\n !hasCustomNavigation && {\n flexGrow: 1,\n },\n hasCustomNavigation && {\n // Ensure that title doesn't shrink if screen is too small\n flexShrink: 0,\n },\n ],\n headerText: [\n classNames.headerText,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n lineHeight: '27px',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n wordBreak: 'break-word',\n hyphens: 'auto',\n },\n headerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n },\n isFooterAtBottom && {\n flexGrow: 1,\n display: 'inherit',\n flexDirection: 'inherit',\n },\n ],\n content: [\n classNames.content,\n sharedPaddingStyles,\n {\n paddingBottom: 20,\n },\n isFooterAtBottom && {\n selectors: (_c = {},\n _c[\"@media (min-height: \" + ScreenWidthMinMedium + \"px)\"] = {\n flexGrow: 1,\n },\n _c),\n },\n ],\n footer: [\n classNames.footer,\n {\n // Ensure that footer doesn't shrink if screen is too small\n flexShrink: 0,\n borderTop: '1px solid transparent',\n transition: \"opacity \" + AnimationVariables.durationValue3 + \" \" + AnimationVariables.easeFunction2,\n selectors: (_d = {},\n _d[\"@media (min-height: \" + ScreenWidthMinMedium + \"px)\"] = {\n position: 'sticky',\n bottom: 0,\n },\n _d),\n },\n isFooterSticky && {\n backgroundColor: semanticColors.bodyBackground,\n borderTopColor: semanticColors.variantBorder,\n },\n ],\n footerInner: [\n classNames.footerInner,\n sharedPaddingStyles,\n {\n paddingBottom: 16,\n paddingTop: 16,\n },\n ],\n subComponentStyles: {\n closeButton: {\n root: [\n classNames.closeButton,\n {\n marginRight: 14,\n color: theme.palette.neutralSecondary,\n fontSize: IconFontSizes.large,\n },\n hasCustomNavigation && {\n marginRight: 0,\n height: 'auto',\n width: '44px',\n },\n ],\n rootHovered: {\n color: theme.palette.neutralPrimary,\n },\n },\n },\n };\n};\n//# sourceMappingURL=Panel.styles.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n /**\n * Renders the Panel with a `fluid` (full screen) width.\n * Recommended for use on small screen breakpoints.\n * - Small (320-479): full screen width, 16px left/right padding\n * - Medium (480-639): full screen width, 16px left/right padding\n * - Large (640-1023): full screen width, 32px left/right padding\n * - XLarge (1024-1365): full screen width, 32px left/right padding\n * - XXLarge (1366-up): full screen width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): 340px width, 16px left/right padding\n * - Large (640-1023): 340px width, 32px left/right padding\n * - XLarge (1024-1365): 340px width, 32px left/right padding\n * - XXLarge (1366-up): 340px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n * - Small (320-479): 272px width, 16px left/right padding\n * - Medium (480-639): 272px width, 16px left/right padding\n * - Large (640-1023): 272px width, 32px left/right padding\n * - XLarge (1024-1365): 272px width, 32px left/right padding\n * - XXLarge (1366-up): 272px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n /**\n * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): 592px width, 32px left/right padding\n * - XLarge (1024-1365): 644px width, 32px left/right padding\n * - XXLarge (1366-up): 644px width, 40px left/right padding\n */\n PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"large\"] = 4] = \"large\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n * XX-Large breakpoint.\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 940px width, 40px left/right padding\n */\n PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n /**\n * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n var async = useAsync();\n var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var _a;\n // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n if (props.style && props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n // ClientHeight returns the client height of an element rounded to an\n // integer. On some browsers at different zoom levels this rounding\n // can generate different results for the root container and child even\n // though they are the same height. This causes us to show a scroll bar\n // when not needed. Ideally we would use BoundingClientRect().height\n // instead however seems that the API is 90% slower than using ClientHeight.\n // Therefore instead we will calculate the difference between heights and\n // allow for a 1px difference to still be considered ok and not show the\n // scroll bar.\n var rootHeight = root.current.clientHeight;\n var firstChildHeight = root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n setNeedsVerticalScrollBar(needsVerticalScrollBar);\n }\n });\n return function () { return async.dispose(); };\n });\n return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== getWindow()) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n setTimeout(function () {\n var _a;\n (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n }, 0);\n }\n}\nfunction useRestoreFocus(props, root) {\n var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n var originalFocusedElement = React.useRef();\n var containsFocus = React.useRef(false);\n React.useEffect(function () {\n originalFocusedElement.current = getDocument().activeElement;\n if (doesElementContainFocus(root.current)) {\n containsFocus.current = true;\n }\n return function () {\n var _a;\n onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n originalElement: originalFocusedElement.current,\n containsFocus: containsFocus.current,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n originalFocusedElement.current = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []);\n useOnEvent(root, 'focus', React.useCallback(function () {\n containsFocus.current = true;\n }, []), true);\n useOnEvent(root, 'blur', React.useCallback(function (ev) {\n /** The popup should update this._containsFocus when:\n * relatedTarget exists AND\n * the relatedTarget is not contained within the popup.\n * If the relatedTarget is within the popup, that means the popup still has focus\n * and focused moved from one element to another within the popup.\n * If relatedTarget is undefined or null that usually means that a\n * keyboard event occurred and focus didn't change\n */\n if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n containsFocus.current = false;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n // eslint-disable-next-line deprecation/deprecation\n var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n React.useEffect(function () {\n if (!(shouldHideSiblings && root.current)) {\n return;\n }\n var unmodalize = modalize(root.current);\n return unmodalize;\n }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n var root = React.useRef();\n var mergedRootRef = useMergedRefs(root, forwardedRef);\n useHideSiblingNodes(props, root);\n useRestoreFocus(props, root);\n var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n var needsVerticalScrollBar = useScrollbarAsync(props, root);\n var onKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.escape:\n if (onDismiss) {\n onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n }, [onDismiss]);\n var win = useWindow();\n useOnEvent(win, 'keydown', onKeyDown);\n return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { SpinnerType, SpinnerSize } from './Spinner.types';\nimport { classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar SpinnerBase = /** @class */ (function (_super) {\n __extends(SpinnerBase, _super);\n function SpinnerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SpinnerBase.prototype.render = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, styles = _a.styles, label = _a.label, theme = _a.theme, className = _a.className, labelPosition = _a.labelPosition;\n var statusMessage = ariaLabel;\n var nativeProps = getNativeProps(this.props, divProperties, ['size']);\n // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the\n // ISpinnerStyleProps, we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType\n // finally goes away we should delete this.\n var styleSize = size;\n if (styleSize === undefined && type !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: styleSize,\n className: className,\n labelPosition: labelPosition,\n });\n return (React.createElement(\"div\", __assign({}, nativeProps, { className: classNames.root }),\n React.createElement(\"div\", { className: classNames.circle }),\n label && React.createElement(\"div\", { className: classNames.label }, label),\n statusMessage && (React.createElement(\"div\", { role: \"status\", \"aria-live\": ariaLive },\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, statusMessage))))));\n };\n SpinnerBase.defaultProps = {\n size: SpinnerSize.medium,\n ariaLive: 'polite',\n labelPosition: 'bottom',\n };\n return SpinnerBase;\n}(React.Component));\nexport { SpinnerBase };\n//# sourceMappingURL=Spinner.base.js.map","import { __assign } from \"tslib\";\nimport { SpinnerSize } from './Spinner.types';\nimport { hiddenContentStyle, keyframes, HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Spinner',\n circle: 'ms-Spinner-circle',\n label: 'ms-Spinner-label',\n};\nvar spinAnimation = memoizeFunction(function () {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n });\n});\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, size = props.size, className = props.className, labelPosition = props.labelPosition;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n labelPosition === 'top' && {\n flexDirection: 'column-reverse',\n },\n labelPosition === 'right' && {\n flexDirection: 'row',\n },\n labelPosition === 'left' && {\n flexDirection: 'row-reverse',\n },\n className,\n ],\n circle: [\n classNames.circle,\n {\n boxSizing: 'border-box',\n borderRadius: '50%',\n border: '1.5px solid ' + palette.themeLight,\n borderTopColor: palette.themePrimary,\n animationName: spinAnimation(),\n animationDuration: '1.3s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'cubic-bezier(.53,.21,.29,.67)',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ borderTopColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n size === SpinnerSize.xSmall && [\n 'ms-Spinner--xSmall',\n {\n width: 12,\n height: 12,\n },\n ],\n size === SpinnerSize.small && [\n 'ms-Spinner--small',\n {\n width: 16,\n height: 16,\n },\n ],\n size === SpinnerSize.medium && [\n 'ms-Spinner--medium',\n {\n width: 20,\n height: 20,\n },\n ],\n size === SpinnerSize.large && [\n 'ms-Spinner--large',\n {\n width: 28,\n height: 28,\n },\n ],\n ],\n label: [\n classNames.label,\n theme.fonts.small,\n {\n color: palette.themePrimary,\n margin: '8px 0 0',\n textAlign: 'center',\n },\n labelPosition === 'top' && {\n margin: '0 0 8px',\n },\n labelPosition === 'right' && {\n margin: '0 0 0 8px',\n },\n labelPosition === 'left' && {\n margin: '0 8px 0 0',\n },\n ],\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Spinner.styles.js.map","import { styled } from '../../Utilities';\nimport { SpinnerBase } from './Spinner.base';\nimport { getStyles } from './Spinner.styles';\nexport var Spinner = styled(SpinnerBase, getStyles, undefined, { scope: 'Spinner' });\n//# sourceMappingURL=Spinner.js.map","/**\n * Possible variations of the spinner circle size.\n * {@docCategory Spinner}\n */\nexport var SpinnerSize;\n(function (SpinnerSize) {\n /**\n * 12px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"xSmall\"] = 0] = \"xSmall\";\n /**\n * 16px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"small\"] = 1] = \"small\";\n /**\n * 20px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"medium\"] = 2] = \"medium\";\n /**\n * 28px Spinner diameter\n */\n SpinnerSize[SpinnerSize[\"large\"] = 3] = \"large\";\n})(SpinnerSize || (SpinnerSize = {}));\n/**\n * @deprecated Use `SpinnerSize` instead. Will be removed at \\>= 2.0.0.\n * {@docCategory Spinner}\n */\nexport var SpinnerType;\n(function (SpinnerType) {\n /**\n * @deprecated Use `SpinnerSize.medium` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"normal\"] = 0] = \"normal\";\n /**\n * @deprecated Use `SpinnerSize.large` instead. Will be removed at \\>= 2.0.0.\n */\n SpinnerType[SpinnerType[\"large\"] = 1] = \"large\";\n})(SpinnerType || (SpinnerType = {}));\n//# sourceMappingURL=Spinner.types.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n /** 300 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n /** 500 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n __extends(TooltipBase, _super);\n function TooltipBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderContent = function (props) {\n if (typeof props.content === 'string') {\n return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n }\n else {\n return React.createElement(\"div\", { className: _this._classNames.subText }, props.content);\n }\n };\n return _this;\n }\n TooltipBase.prototype.render = function () {\n var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className || (calloutProps && calloutProps.className),\n beakWidth: calloutProps && calloutProps.beakWidth,\n gapSpace: calloutProps && calloutProps.gapSpace,\n maxWidth: maxWidth,\n });\n return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n React.createElement(\"div\", { className: this._classNames.content, id: id, onFocus: this.props.onFocus, onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n };\n // Specify default props values\n TooltipBase.defaultProps = {\n directionalHint: DirectionalHint.topCenter,\n maxWidth: '364px',\n calloutProps: {\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n },\n };\n return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n // The math here is done to account for the 45 degree rotation of the beak\n // and sub-pixel rounding that differs across browsers, which is more noticeable when\n // the device pixel ratio is larger\n var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) + 1 / window.devicePixelRatio;\n return {\n root: [\n 'ms-Tooltip',\n theme.fonts.medium,\n AnimationClassNames.fadeIn200,\n {\n background: semanticColors.menuBackground,\n boxShadow: effects.elevation8,\n padding: '8px',\n maxWidth: maxWidth,\n selectors: {\n ':after': {\n content: \"''\",\n position: 'absolute',\n bottom: tooltipGapSpace,\n left: tooltipGapSpace,\n right: tooltipGapSpace,\n top: tooltipGapSpace,\n zIndex: 0,\n },\n },\n },\n className,\n ],\n content: [\n 'ms-Tooltip-content',\n fonts.small,\n {\n position: 'relative',\n zIndex: 1,\n color: semanticColors.menuItemText,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n overflow: 'hidden',\n },\n ],\n subText: [\n 'ms-Tooltip-subtext',\n {\n // Using inherit here to avoid unintentional global overrides of the

tag.\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n margin: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n __extends(TooltipHostBase, _super);\n // Constructor\n function TooltipHostBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._tooltipHost = React.createRef();\n _this._defaultTooltipId = getId('tooltip');\n _this.show = function () {\n _this._toggleTooltip(true);\n };\n _this.dismiss = function () {\n _this._hideTooltip();\n };\n _this._getTargetElement = function () {\n if (!_this._tooltipHost.current) {\n return undefined;\n }\n var overflowMode = _this.props.overflowMode;\n // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n // to the parent element, otherwise it might look off.\n if (overflowMode !== undefined) {\n switch (overflowMode) {\n case TooltipOverflowMode.Parent:\n return _this._tooltipHost.current.parentElement;\n case TooltipOverflowMode.Self:\n return _this._tooltipHost.current;\n }\n }\n return _this._tooltipHost.current;\n };\n _this._onTooltipFocus = function (ev) {\n if (_this._ignoreNextFocusEvent) {\n _this._ignoreNextFocusEvent = false;\n return;\n }\n _this._onTooltipMouseEnter(ev);\n };\n _this._onTooltipContentFocus = function (ev) {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n };\n _this._onTooltipBlur = function (ev) {\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement,\n // and ignoring when it next gets focus back.\n // See https://github.com/microsoft/fluentui/issues/13541\n _this._ignoreNextFocusEvent = (document === null || document === void 0 ? void 0 : document.activeElement) === ev.target;\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._hideTooltip();\n }, 0);\n };\n // Show Tooltip\n _this._onTooltipMouseEnter = function (ev) {\n var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n if (overflowMode !== undefined) {\n var overflowElement = _this._getTargetElement();\n if (overflowElement && !hasOverflow(overflowElement)) {\n return;\n }\n }\n if (ev.target && portalContainsElement(ev.target, _this._getTargetElement())) {\n // Do not show tooltip when target is inside a portal relative to TooltipHost.\n return;\n }\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (delay !== TooltipDelay.zero) {\n var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n _this._openTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(true);\n }, delayTime);\n }\n else {\n _this._toggleTooltip(true);\n }\n };\n // Hide Tooltip\n _this._onTooltipMouseLeave = function (ev) {\n var closeDelay = _this.props.closeDelay;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (closeDelay) {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(false);\n }, closeDelay);\n }\n else {\n _this._toggleTooltip(false);\n }\n if (TooltipHostBase._currentVisibleTooltip === _this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n };\n _this._onTooltipKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n _this._hideTooltip();\n ev.stopPropagation();\n }\n };\n _this._clearDismissTimer = function () {\n _this._async.clearTimeout(_this._dismissTimerId);\n };\n _this._clearOpenTimer = function () {\n _this._async.clearTimeout(_this._openTimerId);\n };\n // Hide Tooltip\n _this._hideTooltip = function () {\n _this._clearOpenTimer();\n _this._clearDismissTimer();\n _this._toggleTooltip(false);\n };\n _this._toggleTooltip = function (isTooltipVisible) {\n if (_this.state.isTooltipVisible !== isTooltipVisible) {\n _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n }\n };\n _this._getDelayTime = function (delay) {\n switch (delay) {\n case TooltipDelay.medium:\n return 300;\n case TooltipDelay.long:\n return 500;\n default:\n return 0;\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n isAriaPlaceholderRendered: false,\n isTooltipVisible: false,\n };\n _this._async = new Async(_this);\n return _this;\n }\n // Render\n TooltipHostBase.prototype.render = function () {\n var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.setAriaDescribedBy, \n // eslint-disable-next-line deprecation/deprecation\n setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var isTooltipVisible = this.state.isTooltipVisible;\n var tooltipId = id || this._defaultTooltipId;\n var tooltipRenderProps = __assign(__assign({ id: tooltipId + \"--tooltip\", content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n onDismiss: this._hideTooltip,\n onFocus: this._onTooltipContentFocus,\n onMouseEnter: this._onTooltipMouseEnter,\n onMouseLeave: this._onTooltipMouseLeave,\n }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id'])), tooltipProps);\n // Get the content of the tooltip for use in the hidden div used for screen readers\n var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent)\n ? tooltipProps.onRenderContent(tooltipRenderProps, function (props) { return ((props === null || props === void 0 ? void 0 : props.content) ? React.createElement(React.Fragment, null, props.content) : null); })\n : content;\n var showTooltip = isTooltipVisible && !!tooltipContent;\n var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined;\n return (React.createElement(\"div\", __assign({ className: this._classNames.root, ref: this._tooltipHost }, { onFocusCapture: this._onTooltipFocus }, { onBlurCapture: this._onTooltipBlur }, { onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, role: \"none\", \"aria-describedby\": ariaDescribedBy }),\n children,\n showTooltip && React.createElement(Tooltip, __assign({}, tooltipRenderProps)),\n React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, tooltipContent)));\n };\n TooltipHostBase.prototype.componentWillUnmount = function () {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n this._async.dispose();\n };\n TooltipHostBase.defaultProps = {\n delay: TooltipDelay.medium,\n };\n return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-TooltipHost',\n ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'inline',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n /** Only show tooltip if parent DOM element is overflowing */\n TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n /**\n * Only show tooltip if tooltip host's content is overflowing.\n * Note that this does not check the children for overflow, only the TooltipHost root.\n */\n TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","export var SELECTION_CHANGE = 'change';\nexport var SELECTION_ITEMS_CHANGE = 'items-change';\n/**\n * {@docCategory Selection}\n */\nexport var SelectionMode;\n(function (SelectionMode) {\n SelectionMode[SelectionMode[\"none\"] = 0] = \"none\";\n SelectionMode[SelectionMode[\"single\"] = 1] = \"single\";\n SelectionMode[SelectionMode[\"multiple\"] = 2] = \"multiple\";\n})(SelectionMode || (SelectionMode = {}));\n/**\n * {@docCategory Selection}\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n SelectionDirection[SelectionDirection[\"horizontal\"] = 0] = \"horizontal\";\n SelectionDirection[SelectionDirection[\"vertical\"] = 1] = \"vertical\";\n})(SelectionDirection || (SelectionDirection = {}));\n//# sourceMappingURL=Selection.types.js.map","// Regex that finds { and } so they can be removed on a lookup for string format\nvar FORMAT_ARGS_REGEX = /[\\{\\}]/g;\n// Regex that finds {#} so it can be replaced by the arguments in string format\nvar FORMAT_REGEX = /\\{\\d+\\}/g;\n/**\n * String format method, used for scenarios where at runtime you\n * need to evaluate a formatted string given a tokenized string. This\n * usually only is needed in localization scenarios.\n\n * @example\n * ```tsx\n * \"I love {0} every {1}\".format(\"CXP\")\n * ```\n * will result in a Debug Exception.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(s) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var args = values;\n // Callback match function\n function replaceFunc(match) {\n // looks up in the args\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')];\n // catches undefined in nondebug and null in debug and nondebug\n if (replacement === null || replacement === undefined) {\n replacement = '';\n }\n return replacement;\n }\n return s.replace(FORMAT_REGEX, replaceFunc);\n}\n//# sourceMappingURL=string.js.map","import { SELECTION_CHANGE, SelectionMode, SELECTION_ITEMS_CHANGE } from './Selection.types';\nimport { EventGroup } from '../EventGroup';\n/**\n * {@docCategory Selection}\n */\nvar Selection = /** @class */ (function () {\n /**\n * Create a new Selection. If `TItem` does not have a `key` property, you must provide an options\n * object with a `getKey` implementation. Providing options is optional otherwise.\n * (At most one `options` object is accepted.)\n */\n function Selection() {\n var options = []; // Otherwise, arguments require options with `getKey`.\n for (var _i = 0 // Otherwise, arguments require options with `getKey`.\n ; _i < arguments.length // Otherwise, arguments require options with `getKey`.\n ; _i++ // Otherwise, arguments require options with `getKey`.\n ) {\n options[_i] = arguments[_i]; // Otherwise, arguments require options with `getKey`.\n }\n var _a = options[0] || {}, onSelectionChanged = _a.onSelectionChanged, onItemsChanged = _a.onItemsChanged, getKey = _a.getKey, _b = _a.canSelectItem, canSelectItem = _b === void 0 ? function () { return true; } : _b, items = _a.items, _c = _a.selectionMode, selectionMode = _c === void 0 ? SelectionMode.multiple : _c;\n this.mode = selectionMode;\n this._getKey = getKey || defaultGetKey;\n this._changeEventSuppressionCount = 0;\n this._exemptedCount = 0;\n this._anchoredIndex = 0;\n this._unselectableCount = 0;\n this._onSelectionChanged = onSelectionChanged;\n this._onItemsChanged = onItemsChanged;\n this._canSelectItem = canSelectItem;\n this._keyToIndexMap = {};\n this._isModal = false;\n this.setItems(items || [], true);\n this.count = this.getSelectedCount();\n }\n Selection.prototype.canSelectItem = function (item, index) {\n if (typeof index === 'number' && index < 0) {\n return false;\n }\n return this._canSelectItem(item, index);\n };\n Selection.prototype.getKey = function (item, index) {\n var key = this._getKey(item, index);\n return typeof key === 'number' || key ? \"\" + key : '';\n };\n Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {\n this._changeEventSuppressionCount += isEnabled ? -1 : 1;\n if (this._changeEventSuppressionCount === 0 && this._hasChanged) {\n this._hasChanged = false;\n if (!suppressChange) {\n this._change();\n }\n }\n };\n Selection.prototype.isModal = function () {\n return this._isModal;\n };\n Selection.prototype.setModal = function (isModal) {\n if (this._isModal !== isModal) {\n this.setChangeEvents(false);\n this._isModal = isModal;\n if (!isModal) {\n this.setAllSelected(false);\n }\n this._change();\n this.setChangeEvents(true);\n }\n };\n /**\n * Selection needs the items, call this method to set them. If the set\n * of items is the same, this will re-evaluate selection and index maps.\n * Otherwise, shouldClear should be set to true, so that selection is\n * cleared.\n */\n Selection.prototype.setItems = function (items, shouldClear) {\n if (shouldClear === void 0) { shouldClear = true; }\n var newKeyToIndexMap = {};\n var newUnselectableIndices = {};\n var hasSelectionChanged = false;\n this.setChangeEvents(false);\n // Reset the unselectable count.\n this._unselectableCount = 0;\n var haveItemsChanged = false;\n // Build lookup table for quick selection evaluation.\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item) {\n var key = this.getKey(item, i);\n if (key) {\n if (!haveItemsChanged && (!(key in this._keyToIndexMap) || this._keyToIndexMap[key] !== i)) {\n haveItemsChanged = true;\n }\n newKeyToIndexMap[key] = i;\n }\n }\n newUnselectableIndices[i] = item && !this.canSelectItem(item);\n if (newUnselectableIndices[i]) {\n this._unselectableCount++;\n }\n }\n if (shouldClear || items.length === 0) {\n this._setAllSelected(false, true);\n }\n // Check the exemption list for discrepencies.\n var newExemptedIndicies = {};\n var newExemptedCount = 0;\n for (var indexProperty in this._exemptedIndices) {\n if (this._exemptedIndices.hasOwnProperty(indexProperty)) {\n var index = Number(indexProperty);\n var item = this._items[index];\n var exemptKey = item ? this.getKey(item, Number(index)) : undefined;\n var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;\n if (newIndex === undefined) {\n // The item has likely been replaced or removed.\n hasSelectionChanged = true;\n }\n else {\n // We know the new index of the item. update the existing exemption table.\n newExemptedIndicies[newIndex] = true;\n newExemptedCount++;\n hasSelectionChanged = hasSelectionChanged || newIndex !== index;\n }\n }\n }\n if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {\n // If everything was selected but the number of items has changed, selection has changed.\n hasSelectionChanged = true;\n }\n if (!haveItemsChanged) {\n for (var _i = 0, _a = Object.keys(this._keyToIndexMap); _i < _a.length; _i++) {\n var key = _a[_i];\n if (!(key in newKeyToIndexMap)) {\n haveItemsChanged = true;\n break;\n }\n }\n }\n this._exemptedIndices = newExemptedIndicies;\n this._exemptedCount = newExemptedCount;\n this._keyToIndexMap = newKeyToIndexMap;\n this._unselectableIndices = newUnselectableIndices;\n this._items = items;\n this._selectedItems = null;\n if (hasSelectionChanged) {\n this._updateCount();\n }\n if (haveItemsChanged) {\n EventGroup.raise(this, SELECTION_ITEMS_CHANGE);\n if (this._onItemsChanged) {\n this._onItemsChanged();\n }\n }\n if (hasSelectionChanged) {\n this._change();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.getItems = function () {\n return this._items;\n };\n Selection.prototype.getSelection = function () {\n if (!this._selectedItems) {\n this._selectedItems = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedItems.push(items[i]);\n }\n }\n }\n }\n return this._selectedItems;\n };\n Selection.prototype.getSelectedCount = function () {\n return this._isAllSelected\n ? this._items.length - this._exemptedCount - this._unselectableCount\n : this._exemptedCount;\n };\n Selection.prototype.getSelectedIndices = function () {\n if (!this._selectedIndices) {\n this._selectedIndices = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedIndices.push(i);\n }\n }\n }\n }\n return this._selectedIndices;\n };\n Selection.prototype.getItemIndex = function (key) {\n var index = this._keyToIndexMap[key];\n return index !== null && index !== void 0 ? index : -1;\n };\n Selection.prototype.isRangeSelected = function (fromIndex, count) {\n if (count === 0) {\n return false;\n }\n var endIndex = fromIndex + count;\n for (var i = fromIndex; i < endIndex; i++) {\n if (!this.isIndexSelected(i)) {\n return false;\n }\n }\n return true;\n };\n Selection.prototype.isAllSelected = function () {\n var selectableCount = this._items.length - this._unselectableCount;\n // In single mode, we can only have a max of 1 item.\n if (this.mode === SelectionMode.single) {\n selectableCount = Math.min(selectableCount, 1);\n }\n return ((this.count > 0 && this._isAllSelected && this._exemptedCount === 0) ||\n (!this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0));\n };\n Selection.prototype.isKeySelected = function (key) {\n var index = this._keyToIndexMap[key];\n return this.isIndexSelected(index);\n };\n Selection.prototype.isIndexSelected = function (index) {\n return !!((this.count > 0 && this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index]) ||\n (!this._isAllSelected && this._exemptedIndices[index]));\n };\n Selection.prototype.setAllSelected = function (isAllSelected) {\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {\n var index = this._keyToIndexMap[key];\n if (index >= 0) {\n this.setIndexSelected(index, isSelected, shouldAnchor);\n }\n };\n Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n index = Math.min(Math.max(0, index), this._items.length - 1);\n // No-op on out of bounds selections.\n if (index < 0 || index >= this._items.length) {\n return;\n }\n this.setChangeEvents(false);\n var isExempt = this._exemptedIndices[index];\n var canSelect = !this._unselectableIndices[index];\n if (canSelect) {\n if (isSelected && this.mode === SelectionMode.single) {\n // If this is single-select, the previous selection should be removed.\n this._setAllSelected(false, true);\n }\n // Determine if we need to remove the exemption.\n if (isExempt && ((isSelected && this._isAllSelected) || (!isSelected && !this._isAllSelected))) {\n delete this._exemptedIndices[index];\n this._exemptedCount--;\n }\n // Determine if we need to add the exemption.\n if (!isExempt && ((isSelected && !this._isAllSelected) || (!isSelected && this._isAllSelected))) {\n this._exemptedIndices[index] = true;\n this._exemptedCount++;\n }\n if (shouldAnchor) {\n this._anchoredIndex = index;\n }\n }\n this._updateCount();\n this.setChangeEvents(true);\n };\n Selection.prototype.setRangeSelected = function (fromIndex, count, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n fromIndex = Math.min(Math.max(0, fromIndex), this._items.length - 1);\n // Clamp the range.\n count = Math.min(Math.max(0, count), this._items.length - fromIndex);\n // No-op on out of bounds selections.\n if (fromIndex < 0 || fromIndex >= this._items.length || count === 0) {\n return;\n }\n this.setChangeEvents(false);\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = fromIndex;\n var endIndex = fromIndex + count - 1;\n var newAnchorIndex = anchorIndex >= endIndex ? startIndex : endIndex;\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, isSelected, shouldAnchor ? startIndex === newAnchorIndex : false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToKey = function (key, clearSelection) {\n this.selectToIndex(this._keyToIndexMap[key], clearSelection);\n };\n Selection.prototype.selectToRange = function (fromIndex, count, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n if (count === 1) {\n this.setIndexSelected(fromIndex, true, true);\n }\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(fromIndex, anchorIndex);\n var endIndex = Math.max(fromIndex + count - 1, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToIndex = function (index, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n this.setIndexSelected(index, true, true);\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(index, anchorIndex);\n var endIndex = Math.max(index, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.toggleAllSelected = function () {\n this.setAllSelected(!this.isAllSelected());\n };\n Selection.prototype.toggleKeySelected = function (key) {\n this.setKeySelected(key, !this.isKeySelected(key), true);\n };\n Selection.prototype.toggleIndexSelected = function (index) {\n this.setIndexSelected(index, !this.isIndexSelected(index), true);\n };\n Selection.prototype.toggleRangeSelected = function (fromIndex, count) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n var isRangeSelected = this.isRangeSelected(fromIndex, count);\n var endIndex = fromIndex + count;\n if (this.mode === SelectionMode.single && count > 1) {\n return;\n }\n this.setChangeEvents(false);\n for (var i = fromIndex; i < endIndex; i++) {\n this.setIndexSelected(i, !isRangeSelected, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._updateCount = function (preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n var count = this.getSelectedCount();\n if (count !== this.count) {\n this.count = count;\n this._change();\n }\n if (!this.count && !preserveModalState) {\n this.setModal(false);\n }\n };\n Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount(preserveModalState);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._change = function () {\n if (this._changeEventSuppressionCount === 0) {\n this._selectedItems = null;\n this._selectedIndices = undefined;\n EventGroup.raise(this, SELECTION_CHANGE);\n if (this._onSelectionChanged) {\n this._onSelectionChanged();\n }\n }\n else {\n this._hasChanged = true;\n }\n };\n return Selection;\n}());\nexport { Selection };\nfunction defaultGetKey(item, index) {\n // 0 may be used as a key\n var _a = (item || {}).key, key = _a === void 0 ? \"\" + index : _a;\n return key;\n}\n//# sourceMappingURL=Selection.js.map","/**\n * Enum to help identify which suggestions action button is selected.\n * {@docCategory Pickers}\n */\nexport var SuggestionActionType;\n(function (SuggestionActionType) {\n /** None of the actions is selected. */\n SuggestionActionType[SuggestionActionType[\"none\"] = 0] = \"none\";\n /** ForceResolve action is selected. */\n SuggestionActionType[SuggestionActionType[\"forceResolve\"] = 1] = \"forceResolve\";\n /** SearchMore action is selected. */\n SuggestionActionType[SuggestionActionType[\"searchMore\"] = 2] = \"searchMore\";\n})(SuggestionActionType || (SuggestionActionType = {}));\n//# sourceMappingURL=Suggestions.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, KeyCodes, elementContains, findScrollableParent, getParent, getDocument, getWindow, isElementTabbable, css, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport { SelectionMode } from './interfaces';\n// Selection definitions:\n//\n// Anchor index: the point from which a range selection starts.\n// Focus index: the point from which layout movement originates from.\n//\n// These two can differ. Tests:\n//\n// If you start at index 5\n// Shift click to index 10\n// The focus is 10, the anchor is 5.\n// If you shift click at index 0\n// The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.\n// If you click index 8\n// The anchor and focus are set to 8.\nvar SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';\nvar SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';\nvar SELECTION_SPAN_ATTRIBUTE_NAME = 'data-selection-span';\nvar SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';\nvar SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';\nvar SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';\nvar SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';\nvar SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';\n/**\n * {@docCategory Selection}\n */\nvar SelectionZone = /** @class */ (function (_super) {\n __extends(SelectionZone, _super);\n function SelectionZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n /**\n * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone\n * react to the event. Note that focus events in IE \\<= 11 will occur asynchronously after .focus() has\n * been called on an element, so we need a flag to store the idea that we will bypass the \"next\"\n * focus event that occurs. This method does that.\n */\n _this.ignoreNextFocus = function () {\n _this._handleNextFocus(false);\n };\n _this._onSelectionChange = function () {\n var selection = _this.props.selection;\n var isModal = selection.isModal && selection.isModal();\n _this.setState({\n isModal: isModal,\n });\n };\n _this._onMouseDownCapture = function (ev) {\n var target = ev.target;\n if (document.activeElement !== target && !elementContains(document.activeElement, target)) {\n _this.ignoreNextFocus();\n return;\n }\n if (!elementContains(target, _this._root.current)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n _this.ignoreNextFocus();\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * When we focus an item, for single/multi select scenarios, we should try to select it immediately\n * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them\n * specially.\n */\n _this._onFocus = function (ev) {\n var target = ev.target;\n var selection = _this.props.selection;\n var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;\n var selectionMode = _this._getSelectionMode();\n if (_this._shouldHandleFocus && selectionMode !== SelectionMode.none) {\n var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);\n var itemRoot = _this._findItemRoot(target);\n if (!isToggle && itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (span === undefined) {\n if (isToggleModifierPressed) {\n // set anchor only.\n selection.setIndexSelected(index, selection.isIndexSelected(index), true);\n if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {\n selection.setModal(true);\n _this._setIsTouch(false);\n }\n }\n else {\n if (_this.props.isSelectedOnFocus) {\n _this._onItemSurfaceClick('focus', index);\n }\n }\n }\n }\n }\n _this._handleNextFocus(false);\n };\n _this._onMouseDown = function (ev) {\n _this._updateModifiers(ev);\n var toggleWithoutModifierPressed = _this.props.toggleWithoutModifierPressed;\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n // No-op if selection is disabled\n if (_this._isSelectionDisabled(target)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n break;\n }\n else if (itemRoot) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&\n !_this._isShiftPressed &&\n !_this._isCtrlPressed &&\n !_this._isMetaPressed &&\n !toggleWithoutModifierPressed) {\n _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot), _this._getItemSpan(itemRoot));\n break;\n }\n else if (_this.props.disableAutoSelectOnInputElements &&\n (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onTouchStartCapture = function (ev) {\n _this._setIsTouch(true);\n };\n _this._onClick = function (ev) {\n var _a = _this.props.enableTouchInvocationTarget, enableTouchInvocationTarget = _a === void 0 ? false : _a;\n _this._updateModifiers(ev);\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n _this._onToggleAllClick(ev);\n }\n break;\n }\n else if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n if (_this._isShiftPressed) {\n _this._onItemSurfaceClick('click', index, span);\n }\n else {\n _this._onToggleClick(ev, index, span);\n }\n }\n break;\n }\n else if ((_this._isTouch &&\n enableTouchInvocationTarget &&\n _this._hasAttribute(target, SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME)) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n }\n break;\n }\n else if (target === itemRoot) {\n if (!isSelectionDisabled) {\n _this._onItemSurfaceClick('click', index, span);\n }\n break;\n }\n else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onContextMenu = function (ev) {\n var target = ev.target;\n var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;\n if (onItemContextMenu) {\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n _this._onInvokeMouseDown(ev, index);\n var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);\n // In order to keep back compat, if the value here is undefined, then we should still\n // call preventDefault(). Only in the case where true is explicitly returned should\n // the call be skipped.\n if (!skipPreventDefault) {\n ev.preventDefault();\n }\n }\n }\n };\n /**\n * In multi selection, if you double click within an item's root (but not within the invoke element or\n * input elements), we should execute the invoke handler.\n */\n _this._onDoubleClick = function (ev) {\n var target = ev.target;\n var onItemInvoked = _this.props.onItemInvoked;\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {\n var index = _this._getItemIndex(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (target === itemRoot) {\n _this._onInvokeClick(ev, index);\n break;\n }\n target = getParent(target);\n }\n target = getParent(target);\n }\n };\n _this._onKeyDownCapture = function (ev) {\n _this._updateModifiers(ev);\n _this._handleNextFocus(true);\n };\n _this._onKeyDown = function (ev) {\n _this._updateModifiers(ev);\n var target = ev.target;\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n var _a = _this.props, selection = _a.selection, selectionClearedOnEscapePress = _a.selectionClearedOnEscapePress;\n // eslint-disable-next-line deprecation/deprecation\n var isSelectAllKey = ev.which === KeyCodes.a && (_this._isCtrlPressed || _this._isMetaPressed);\n // eslint-disable-next-line deprecation/deprecation\n var isClearSelectionKey = ev.which === KeyCodes.escape;\n // Ignore key downs from input elements.\n if (_this._isInputElement(target)) {\n // A key was pressed while an item in this zone was focused.\n return;\n }\n var selectionMode = _this._getSelectionMode();\n // If ctrl-a is pressed, select all (if all are not already selected.)\n if (isSelectAllKey && selectionMode === SelectionMode.multiple && !selection.isAllSelected()) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(true);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n // If escape is pressed and the component is configured to clear on escape press,\n // clear selection (if any are selected.)\n if (selectionClearedOnEscapePress && isClearSelectionKey && selection.getSelectedCount() > 0) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(false);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n var itemRoot = _this._findItemRoot(target);\n // If a key was pressed within an item, we should treat \"enters\" as invokes and \"space\" as toggle\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n // For toggle elements, assuming they are rendered as buttons, they will generate a click event,\n // so we can no-op for any keydowns in this case.\n break;\n }\n else if (_this._shouldAutoSelect(target)) {\n if (!isSelectionDisabled && span === undefined) {\n // If the event went to an element which should trigger auto-select, select it and then let\n // the default behavior kick in.\n _this._onInvokeMouseDown(ev, index, span);\n }\n break;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) &&\n (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'SUMMARY')) {\n return false;\n }\n else if (target === itemRoot) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n ev.preventDefault();\n }\n return;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.space) {\n if (!isSelectionDisabled) {\n _this._onToggleClick(ev, index, span);\n }\n ev.preventDefault();\n return;\n }\n break;\n }\n target = getParent(target);\n }\n }\n };\n _this._events = new EventGroup(_this);\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n var selection = _this.props.selection;\n // Reflect the initial modal state of selection into the state.\n var isModal = selection.isModal && selection.isModal();\n _this.state = {\n isModal: isModal,\n };\n return _this;\n }\n SelectionZone.getDerivedStateFromProps = function (nextProps, prevState) {\n var isModal = nextProps.selection.isModal && nextProps.selection.isModal();\n return __assign(__assign({}, prevState), { isModal: isModal });\n };\n SelectionZone.prototype.componentDidMount = function () {\n var win = getWindow(this._root.current);\n // Track the latest modifier keys globally.\n this._events.on(win, 'keydown, keyup', this._updateModifiers, true);\n this._events.on(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(document.body, 'touchstart', this._onTouchStartCapture, true);\n this._events.on(document.body, 'touchend', this._onTouchStartCapture, true);\n // Subscribe to the selection to keep modal state updated.\n this._events.on(this.props.selection, 'change', this._onSelectionChange);\n };\n SelectionZone.prototype.render = function () {\n var isModal = this.state.isModal;\n return (React.createElement(\"div\", { className: css('ms-SelectionZone', this.props.className, {\n 'ms-SelectionZone--modal': !!isModal,\n }), ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: \"presentation\", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus, \"data-selection-is-modal\": isModal ? true : undefined },\n this.props.children,\n React.createElement(FocusRects, null)));\n };\n SelectionZone.prototype.componentDidUpdate = function (previousProps) {\n var selection = this.props.selection;\n if (selection !== previousProps.selection) {\n // Whenever selection changes, update the subscripton to keep modal state updated.\n this._events.off(previousProps.selection);\n this._events.on(selection, 'change', this._onSelectionChange);\n }\n };\n SelectionZone.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n SelectionZone.prototype._isSelectionDisabled = function (target) {\n if (this._getSelectionMode() === SelectionMode.none) {\n return true;\n }\n while (target !== this._root.current) {\n if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {\n return true;\n }\n target = getParent(target);\n }\n return false;\n };\n SelectionZone.prototype._onToggleAllClick = function (ev) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n selection.toggleAllSelected();\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n SelectionZone.prototype._onToggleClick = function (ev, index, span) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n selection.setChangeEvents(false);\n if (this.props.enterModalOnTouch &&\n this._isTouch &&\n (span !== undefined ? !selection.isRangeSelected(index, span) : !selection.isIndexSelected(index)) &&\n selection.setModal) {\n selection.setModal(true);\n this._setIsTouch(false);\n }\n if (selectionMode === SelectionMode.multiple) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n if (span === undefined || span === 1) {\n var isSelected = selection.isIndexSelected(index);\n var isModal = selection.isModal && selection.isModal();\n selection.setAllSelected(false);\n selection.setIndexSelected(index, !isSelected, true);\n if (isModal && selection.setModal) {\n // Since the above call to setAllSelected(false) clears modal state,\n // restore it. This occurs because the SelectionMode of the Selection\n // may differ from the SelectionZone.\n selection.setModal(true);\n }\n }\n }\n else {\n selection.setChangeEvents(true);\n return;\n }\n selection.setChangeEvents(true);\n ev.stopPropagation();\n // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior\n // for checkboxes if you use a checkbox for the toggle.\n };\n SelectionZone.prototype._onInvokeClick = function (ev, index) {\n var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;\n if (onItemInvoked) {\n onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n SelectionZone.prototype._onItemSurfaceClick = function (type, index, span) {\n var _a;\n var _b = this.props, selection = _b.selection, toggleWithoutModifierPressed = _b.toggleWithoutModifierPressed;\n var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n if (this._isShiftPressed && !this._isTabPressed) {\n if (span !== undefined) {\n (_a = selection.selectToRange) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, !isToggleModifierPressed);\n }\n else {\n selection.selectToIndex(index, !isToggleModifierPressed);\n }\n }\n else if (type === 'click' && (isToggleModifierPressed || toggleWithoutModifierPressed)) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else {\n this._clearAndSelectIndex(index, span);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n this._clearAndSelectIndex(index, span);\n }\n };\n SelectionZone.prototype._onInvokeMouseDown = function (ev, index, span) {\n var selection = this.props.selection;\n if (span !== undefined) {\n if (selection.isRangeSelected(index, span)) {\n return;\n }\n }\n else {\n // Only do work if item is not selected.\n if (selection.isIndexSelected(index)) {\n return;\n }\n }\n this._clearAndSelectIndex(index, span);\n };\n /**\n * To avoid high startup cost of traversing the DOM on component mount,\n * defer finding the scrollable parent until a click interaction.\n *\n * The styles will probably already calculated since we're running in a click handler,\n * so this is less likely to cause layout thrashing then doing it in mount.\n */\n SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {\n var scrollParent = findScrollableParent(this._root.current);\n // unbind this handler and replace binding with a binding on the actual scrollable parent\n this._events.off(document, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);\n // If we clicked inside the scrollable parent, call through to the handler on this click.\n if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {\n this._tryClearOnEmptyClick(ev);\n }\n };\n SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {\n if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {\n this.props.selection.setAllSelected(false);\n }\n };\n SelectionZone.prototype._clearAndSelectIndex = function (index, span) {\n var _a;\n var _b = this.props, selection = _b.selection, _c = _b.selectionClearedOnSurfaceClick, selectionClearedOnSurfaceClick = _c === void 0 ? true : _c;\n var isAlreadySingleSelected = (span === undefined || span === 1) && selection.getSelectedCount() === 1 && selection.isIndexSelected(index);\n if (!isAlreadySingleSelected && selectionClearedOnSurfaceClick) {\n var isModal = selection.isModal && selection.isModal();\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n if (span !== undefined) {\n (_a = selection.setRangeSelected) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, true, true);\n }\n else {\n selection.setIndexSelected(index, true, true);\n }\n if (isModal || (this.props.enterModalOnTouch && this._isTouch)) {\n if (selection.setModal) {\n selection.setModal(true);\n }\n if (this._isTouch) {\n this._setIsTouch(false);\n }\n }\n selection.setChangeEvents(true);\n }\n };\n /**\n * We need to track the modifier key states so that when focus events occur, which do not contain\n * modifier states in the Event object, we know how to behave.\n */\n SelectionZone.prototype._updateModifiers = function (ev) {\n this._isShiftPressed = ev.shiftKey;\n this._isCtrlPressed = ev.ctrlKey;\n this._isMetaPressed = ev.metaKey;\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.keyCode;\n this._isTabPressed = keyCode ? keyCode === KeyCodes.tab : false;\n };\n SelectionZone.prototype._findItemRoot = function (target) {\n var selection = this.props.selection;\n while (target !== this._root.current) {\n var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);\n var index = Number(indexValue);\n if (indexValue !== null && index >= 0 && index < selection.getItems().length) {\n break;\n }\n target = getParent(target);\n }\n if (target === this._root.current) {\n return undefined;\n }\n return target;\n };\n SelectionZone.prototype._getItemIndex = function (itemRoot) {\n var _a;\n var indexValue = parseInt((_a = itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(indexValue) ? -1 : indexValue;\n };\n SelectionZone.prototype._getItemSpan = function (itemRoot) {\n var _a;\n var spanValue = parseInt((_a = itemRoot.getAttribute(SELECTION_SPAN_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(spanValue) ? undefined : spanValue;\n };\n SelectionZone.prototype._shouldAutoSelect = function (element) {\n return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);\n };\n SelectionZone.prototype._hasAttribute = function (element, attributeName) {\n var isToggle = false;\n while (!isToggle && element !== this._root.current) {\n var value = element.getAttribute(attributeName);\n if (value === 'false') {\n isToggle = false;\n break;\n }\n isToggle = value === 'true';\n element = getParent(element);\n }\n return isToggle;\n };\n SelectionZone.prototype._isInputElement = function (element) {\n return (element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.getAttribute('contenteditable') === 'true' ||\n element.getAttribute('contenteditable') === '');\n };\n SelectionZone.prototype._isNonHandledClick = function (element) {\n var doc = getDocument();\n if (doc && element) {\n while (element && element !== doc.documentElement) {\n if (isElementTabbable(element) || element.hasAttribute('data-selection-index')) {\n return false;\n }\n element = getParent(element);\n }\n }\n return true;\n };\n SelectionZone.prototype._handleNextFocus = function (handleFocus) {\n var _this = this;\n if (this._shouldHandleFocusTimeoutId) {\n this._async.clearTimeout(this._shouldHandleFocusTimeoutId);\n this._shouldHandleFocusTimeoutId = undefined;\n }\n this._shouldHandleFocus = handleFocus;\n if (handleFocus) {\n this._async.setTimeout(function () {\n _this._shouldHandleFocus = false;\n }, 100);\n }\n };\n SelectionZone.prototype._setIsTouch = function (isTouch) {\n var _this = this;\n if (this._isTouchTimeoutId) {\n this._async.clearTimeout(this._isTouchTimeoutId);\n this._isTouchTimeoutId = undefined;\n }\n this._isTouch = true;\n if (isTouch) {\n this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 300);\n }\n };\n SelectionZone.prototype._getSelectionMode = function () {\n var selection = this.props.selection;\n var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : SelectionMode.none : _a;\n return selectionMode;\n };\n SelectionZone.defaultProps = {\n isSelectedOnFocus: true,\n toggleWithoutModifierPressed: false,\n selectionMode: SelectionMode.multiple,\n selectionClearedOnEscapePress: true,\n };\n return SelectionZone;\n}(React.Component));\nexport { SelectionZone };\n//# sourceMappingURL=SelectionZone.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, divProperties } from '../../Utilities';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Announced}\n */\nvar AnnouncedBase = /** @class */ (function (_super) {\n __extends(AnnouncedBase, _super);\n function AnnouncedBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnnouncedBase.prototype.render = function () {\n var _a = this.props, message = _a.message, styles = _a.styles, _b = _a.as, Root = _b === void 0 ? 'div' : _b, className = _a.className;\n var classNames = getClassNames(styles, { className: className });\n return (React.createElement(Root, __assign({ role: \"status\", className: classNames.root }, getNativeProps(this.props, divProperties, ['className'])),\n React.createElement(DelayedRender, null,\n React.createElement(\"div\", { className: classNames.screenReaderText }, message))));\n };\n AnnouncedBase.defaultProps = {\n 'aria-live': 'polite',\n };\n return AnnouncedBase;\n}(React.Component));\nexport { AnnouncedBase };\n//# sourceMappingURL=Announced.base.js.map","import { styled } from '../../Utilities';\nimport { AnnouncedBase } from './Announced.base';\nimport { getStyles } from './Announced.styles';\nexport var Announced = styled(AnnouncedBase, getStyles);\n//# sourceMappingURL=Announced.js.map","import { hiddenContentStyle } from '../../Styling';\nexport var getStyles = function (props) {\n return {\n root: props.className,\n screenReaderText: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=Announced.styles.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".root_8c91000a{min-width:260px}.suggestionsItem_8c91000a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:relative;overflow:hidden}.suggestionsItem_8c91000a:hover{background:\" }, { \"theme\": \"neutralLighter\", \"defaultValue\": \"#f3f2f1\" }, { \"rawString\": \"}.suggestionsItem_8c91000a:hover .closeButton_8c91000a{display:block}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a:hover{background:Highlight;color:HighlightText}}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a{background:Highlight;color:HighlightText;-ms-high-contrast-adjust:none}}.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a .closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralPrimary\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.suggestionsItem_8c91000a.suggestionsItemIsSuggested_8c91000a .itemButton_8c91000a{color:HighlightText}}.suggestionsItem_8c91000a .closeButton_8c91000a{display:none;color:\" }, { \"theme\": \"neutralSecondary\", \"defaultValue\": \"#605e5c\" }, { \"rawString\": \"}.suggestionsItem_8c91000a .closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.actionButton_8c91000a{background-color:transparent;border:0;cursor:pointer;margin:0;position:relative;border-top:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";height:40px;width:100%;font-size:12px}[dir=ltr] .actionButton_8c91000a{padding-left:8px}[dir=rtl] .actionButton_8c91000a{padding-right:8px}html[dir=ltr] .actionButton_8c91000a{text-align:left}html[dir=rtl] .actionButton_8c91000a{text-align:right}.actionButton_8c91000a:hover{background-color:\" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \";cursor:pointer}.actionButton_8c91000a:active,.actionButton_8c91000a:focus{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.actionButton_8c91000a .ms-Button-icon{font-size:16px;width:25px}.actionButton_8c91000a .ms-Button-label{margin:0 4px 0 9px}html[dir=rtl] .actionButton_8c91000a .ms-Button-label{margin:0 9px 0 4px}.buttonSelected_8c91000a{background-color:\" }, { \"theme\": \"themeLight\", \"defaultValue\": \"#c7e0f4\" }, { \"rawString\": \"}.suggestionsTitle_8c91000a{padding:0 12px;color:\" }, { \"theme\": \"themePrimary\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \";font-size:12px;line-height:40px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsContainer_8c91000a{overflow-y:auto;overflow-x:hidden;max-height:300px;border-bottom:1px solid \" }, { \"theme\": \"neutralLight\", \"defaultValue\": \"#edebe9\" }, { \"rawString\": \"}.suggestionsNone_8c91000a{text-align:center;color:#797775;font-size:12px;line-height:30px}.suggestionsSpinner_8c91000a{margin:5px 0;white-space:nowrap;line-height:20px;font-size:12px}html[dir=ltr] .suggestionsSpinner_8c91000a{padding-left:14px}html[dir=rtl] .suggestionsSpinner_8c91000a{padding-right:14px}html[dir=ltr] .suggestionsSpinner_8c91000a{text-align:left}html[dir=rtl] .suggestionsSpinner_8c91000a{text-align:right}.suggestionsSpinner_8c91000a .ms-Spinner-circle{display:inline-block;vertical-align:middle}.suggestionsSpinner_8c91000a .ms-Spinner-label{display:inline-block;margin:0 10px 0 16px;vertical-align:middle}html[dir=rtl] .suggestionsSpinner_8c91000a .ms-Spinner-label{margin:0 16px 0 10px}.itemButton_8c91000a.itemButton_8c91000a{width:100%;padding:0;min-width:0;height:100%}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.itemButton_8c91000a.itemButton_8c91000a{color:WindowText}}.itemButton_8c91000a.itemButton_8c91000a:hover{color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.closeButton_8c91000a.closeButton_8c91000a{padding:0 4px;height:auto;width:32px}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.closeButton_8c91000a.closeButton_8c91000a{color:WindowText}}.closeButton_8c91000a.closeButton_8c91000a:hover{background:\" }, { \"theme\": \"neutralTertiaryAlt\", \"defaultValue\": \"#c8c6c4\" }, { \"rawString\": \";color:\" }, { \"theme\": \"neutralDark\", \"defaultValue\": \"#201f1e\" }, { \"rawString\": \"}.suggestionsAvailable_8c91000a{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var root = \"root_8c91000a\";\nexport var suggestionsItem = \"suggestionsItem_8c91000a\";\nexport var closeButton = \"closeButton_8c91000a\";\nexport var suggestionsItemIsSuggested = \"suggestionsItemIsSuggested_8c91000a\";\nexport var itemButton = \"itemButton_8c91000a\";\nexport var actionButton = \"actionButton_8c91000a\";\nexport var buttonSelected = \"buttonSelected_8c91000a\";\nexport var suggestionsTitle = \"suggestionsTitle_8c91000a\";\nexport var suggestionsContainer = \"suggestionsContainer_8c91000a\";\nexport var suggestionsNone = \"suggestionsNone_8c91000a\";\nexport var suggestionsSpinner = \"suggestionsSpinner_8c91000a\";\nexport var suggestionsAvailable = \"suggestionsAvailable_8c91000a\";\n//# sourceMappingURL=Suggestions.scss.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, initializeComponentRef } from '../../../Utilities';\nimport { CommandButton, IconButton } from '../../../Button';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory Pickers}\n */\nvar SuggestionsItem = /** @class */ (function (_super) {\n __extends(SuggestionsItem, _super);\n function SuggestionsItem(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n SuggestionsItem.prototype.render = function () {\n var _a;\n var _b = this.props, suggestionModel = _b.suggestionModel, RenderSuggestion = _b.RenderSuggestion, onClick = _b.onClick, className = _b.className, id = _b.id, onRemoveItem = _b.onRemoveItem, isSelectedOverride = _b.isSelectedOverride, removeButtonAriaLabel = _b.removeButtonAriaLabel, styles = _b.styles, theme = _b.theme, removeButtonIconProps = _b.removeButtonIconProps;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from SuggestionsItem class because it\n // might be used by consumers separately from pickers extending from BasePicker\n // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n // we can not use the 'styled' function without adding some helpers which can break\n // downstream consumers who did not use the new helpers.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // in Suggestions when the typed SuggestionsItem class is ready to be rendered. If the\n // check passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n suggested: suggestionModel.selected || isSelectedOverride,\n })\n : {\n root: css('ms-Suggestions-item', legacyStyles.suggestionsItem, (_a = {},\n _a['is-suggested ' + legacyStyles.suggestionsItemIsSuggested] = suggestionModel.selected || isSelectedOverride,\n _a), className),\n itemButton: css('ms-Suggestions-itemButton', legacyStyles.itemButton),\n closeButton: css('ms-Suggestions-closeButton', legacyStyles.closeButton),\n };\n return (React.createElement(\"div\", { className: classNames.root, role: \"presentation\" },\n React.createElement(CommandButton, { onClick: onClick, className: classNames.itemButton, id: id, \"aria-selected\": suggestionModel.selected, role: \"option\", \"aria-label\": suggestionModel.ariaLabel }, RenderSuggestion(suggestionModel.item, this.props)),\n this.props.showRemoveButton ? (React.createElement(IconButton, { iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, title: removeButtonAriaLabel, ariaLabel: removeButtonAriaLabel, onClick: onRemoveItem, className: classNames.closeButton })) : null));\n };\n return SuggestionsItem;\n}(React.Component));\nexport { SuggestionsItem };\n//# sourceMappingURL=SuggestionsItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, KeyCodes, classNamesFunction, css, styled } from '../../../Utilities';\nimport { CommandButton } from '../../../Button';\nimport { Spinner } from '../../../Spinner';\nimport { Announced } from '../../../Announced';\nimport { SuggestionActionType } from './Suggestions.types';\nimport { SuggestionsItem } from './SuggestionsItem';\nimport { getStyles as suggestionsItemStyles } from './SuggestionsItem.styles';\nimport * as stylesImport from './Suggestions.scss';\nvar legacyStyles = stylesImport;\nvar getClassNames = classNamesFunction();\nvar StyledSuggestionsItem = styled(SuggestionsItem, suggestionsItemStyles, undefined, {\n scope: 'SuggestionItem',\n});\n/**\n * {@docCategory Pickers}\n */\nvar Suggestions = /** @class */ (function (_super) {\n __extends(Suggestions, _super);\n function Suggestions(suggestionsProps) {\n var _this = _super.call(this, suggestionsProps) || this;\n _this._forceResolveButton = React.createRef();\n _this._searchForMoreButton = React.createRef();\n _this._selectedElement = React.createRef();\n _this._scrollContainer = React.createRef();\n /**\n * Returns true if the event was handled, false otherwise\n */\n _this.tryHandleKeyDown = function (keyCode, currentSuggestionIndex) {\n var isEventHandled = false;\n var newSelectedActionType = null;\n var currentSelectedAction = _this.state.selectedActionType;\n var suggestionLength = _this.props.suggestions.length;\n if (keyCode === KeyCodes.down) {\n switch (currentSelectedAction) {\n case SuggestionActionType.forceResolve:\n if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else if (_this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n else {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n case SuggestionActionType.searchMore:\n if (_this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n else if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n break;\n case SuggestionActionType.none:\n if (currentSuggestionIndex === -1 && _this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n }\n }\n else if (keyCode === KeyCodes.up) {\n switch (currentSelectedAction) {\n case SuggestionActionType.forceResolve:\n if (_this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n else if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n break;\n case SuggestionActionType.searchMore:\n if (suggestionLength > 0) {\n _this._refocusOnSuggestions(keyCode);\n newSelectedActionType = SuggestionActionType.none;\n }\n else if (_this._forceResolveButton.current) {\n newSelectedActionType = SuggestionActionType.forceResolve;\n }\n break;\n case SuggestionActionType.none:\n if (currentSuggestionIndex === -1 && _this._searchForMoreButton.current) {\n newSelectedActionType = SuggestionActionType.searchMore;\n }\n break;\n }\n }\n if (newSelectedActionType !== null) {\n _this.setState({ selectedActionType: newSelectedActionType });\n isEventHandled = true;\n }\n return isEventHandled;\n };\n _this._getAlertText = function () {\n var _a = _this.props, isLoading = _a.isLoading, isSearching = _a.isSearching, suggestions = _a.suggestions, suggestionsAvailableAlertText = _a.suggestionsAvailableAlertText, noResultsFoundText = _a.noResultsFoundText, isExtendedLoading = _a.isExtendedLoading, loadingText = _a.loadingText;\n if (!isLoading && !isSearching) {\n if (suggestions.length > 0) {\n return suggestionsAvailableAlertText || '';\n }\n if (noResultsFoundText) {\n return noResultsFoundText;\n }\n }\n else if (isLoading && isExtendedLoading) {\n return loadingText || '';\n }\n return '';\n };\n _this._getMoreResults = function () {\n if (_this.props.onGetMoreResults) {\n _this.props.onGetMoreResults();\n // Reset selected action type as it will be of type SuggestionActionType.none after more results are gotten\n _this.setState({ selectedActionType: SuggestionActionType.none });\n }\n };\n _this._forceResolve = function () {\n if (_this.props.createGenericItem) {\n _this.props.createGenericItem();\n }\n };\n _this._shouldShowForceResolve = function () {\n return _this.props.showForceResolve ? _this.props.showForceResolve() : false;\n };\n _this._onClickTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n _this.props.onSuggestionClick(ev, item, index);\n };\n };\n _this._refocusOnSuggestions = function (keyCode) {\n if (typeof _this.props.refocusSuggestions === 'function') {\n _this.props.refocusSuggestions(keyCode);\n }\n };\n _this._onRemoveTypedSuggestionsItem = function (item, index) {\n return function (ev) {\n var onSuggestionRemove = _this.props.onSuggestionRemove;\n onSuggestionRemove(ev, item, index);\n ev.stopPropagation();\n };\n };\n initializeComponentRef(_this);\n _this.state = {\n selectedActionType: SuggestionActionType.none,\n };\n return _this;\n }\n Suggestions.prototype.componentDidMount = function () {\n this.scrollSelected();\n this.activeSelectedElement = this._selectedElement ? this._selectedElement.current : null;\n };\n Suggestions.prototype.componentDidUpdate = function () {\n // Only scroll to selected element if the selected element has changed. Otherwise do nothing.\n // This prevents some odd behavior where scrolling the active element out of view and clicking on a selected element\n // will trigger a focus event and not give the clicked element the click.\n if (this._selectedElement.current && this.activeSelectedElement !== this._selectedElement.current) {\n this.scrollSelected();\n this.activeSelectedElement = this._selectedElement.current;\n }\n };\n Suggestions.prototype.render = function () {\n var _a, _b;\n var _this = this;\n var _c = this.props, forceResolveText = _c.forceResolveText, mostRecentlyUsedHeaderText = _c.mostRecentlyUsedHeaderText, searchForMoreIcon = _c.searchForMoreIcon, searchForMoreText = _c.searchForMoreText, className = _c.className, moreSuggestionsAvailable = _c.moreSuggestionsAvailable, noResultsFoundText = _c.noResultsFoundText, suggestions = _c.suggestions, isLoading = _c.isLoading, isSearching = _c.isSearching, loadingText = _c.loadingText, onRenderNoResultFound = _c.onRenderNoResultFound, searchingText = _c.searchingText, isMostRecentlyUsedVisible = _c.isMostRecentlyUsedVisible, resultsMaximumNumber = _c.resultsMaximumNumber, resultsFooterFull = _c.resultsFooterFull, resultsFooter = _c.resultsFooter, _d = _c.isResultsFooterVisible, isResultsFooterVisible = _d === void 0 ? true : _d, suggestionsHeaderText = _c.suggestionsHeaderText, suggestionsClassName = _c.suggestionsClassName, theme = _c.theme, styles = _c.styles, suggestionsListId = _c.suggestionsListId, suggestionsContainerAriaLabel = _c.suggestionsContainerAriaLabel;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from Suggestions class because it\n // might be used by consumers separately from pickers extending from BasePicker\n // and have not used the new 'styles' prop. Because it's expecting a type parameter,\n // we can not use the 'styled' function without adding some helpers which can break\n // downstream consumers who did not use the new helpers.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // in BasePicker when the typed Suggestions class is ready to be rendered. If the check\n // passes we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n this._classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n suggestionsClassName: suggestionsClassName,\n forceResolveButtonSelected: this.state.selectedActionType === SuggestionActionType.forceResolve,\n searchForMoreButtonSelected: this.state.selectedActionType === SuggestionActionType.searchMore,\n })\n : {\n root: css('ms-Suggestions', className, legacyStyles.root),\n title: css('ms-Suggestions-title', legacyStyles.suggestionsTitle),\n searchForMoreButton: css('ms-SearchMore-button', legacyStyles.actionButton, (_a = {},\n _a['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.searchMore,\n _a)),\n forceResolveButton: css('ms-forceResolve-button', legacyStyles.actionButton, (_b = {},\n _b['is-selected ' + legacyStyles.buttonSelected] = this.state.selectedActionType === SuggestionActionType.forceResolve,\n _b)),\n suggestionsAvailable: css('ms-Suggestions-suggestionsAvailable', legacyStyles.suggestionsAvailable),\n suggestionsContainer: css('ms-Suggestions-container', legacyStyles.suggestionsContainer, suggestionsClassName),\n noSuggestions: css('ms-Suggestions-none', legacyStyles.suggestionsNone),\n };\n var spinnerStyles = this._classNames.subComponentStyles\n ? this._classNames.subComponentStyles.spinner\n : undefined;\n // TODO: cleanup after refactor of pickers to composition pattern and remove SASS support.\n var spinnerClassNameOrStyles = styles\n ? { styles: spinnerStyles }\n : {\n className: css('ms-Suggestions-spinner', legacyStyles.suggestionsSpinner),\n };\n var noResults = function () {\n var defaultRender = function () {\n return React.createElement(\"div\", { className: _this._classNames.noSuggestions }, noResultsFoundText);\n };\n return (\n // This ID can be used by the parent to set aria-activedescendant to this\n React.createElement(\"div\", { id: \"sug-noResultsFound\", role: \"option\" }, onRenderNoResultFound ? onRenderNoResultFound(undefined, defaultRender) : defaultRender()));\n };\n // MostRecently Used text should supercede the header text if it's there and available.\n var headerText = suggestionsHeaderText;\n if (isMostRecentlyUsedVisible && mostRecentlyUsedHeaderText) {\n headerText = mostRecentlyUsedHeaderText;\n }\n var footerTitle = undefined;\n if (isResultsFooterVisible) {\n footerTitle = suggestions.length >= resultsMaximumNumber ? resultsFooterFull : resultsFooter;\n }\n var hasNoSuggestions = (!suggestions || !suggestions.length) && !isLoading;\n var forceResolveId = this.state.selectedActionType === SuggestionActionType.forceResolve ? 'sug-selectedAction' : undefined;\n var searchForMoreId = this.state.selectedActionType === SuggestionActionType.searchMore ? 'sug-selectedAction' : undefined;\n return (React.createElement(\"div\", { className: this._classNames.root, \"aria-label\": suggestionsContainerAriaLabel || headerText, id: suggestionsListId, role: \"listbox\" },\n React.createElement(Announced, { message: this._getAlertText(), \"aria-live\": \"polite\" }),\n headerText ? React.createElement(\"div\", { className: this._classNames.title }, headerText) : null,\n forceResolveText && this._shouldShowForceResolve() && (React.createElement(CommandButton, { componentRef: this._forceResolveButton, className: this._classNames.forceResolveButton, id: forceResolveId, onClick: this._forceResolve, \"data-automationid\": 'sug-forceResolve' }, forceResolveText)),\n isLoading && React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { ariaLabel: loadingText, label: loadingText })),\n hasNoSuggestions ? noResults() : this._renderSuggestions(),\n searchForMoreText && moreSuggestionsAvailable && (React.createElement(CommandButton, { componentRef: this._searchForMoreButton, className: this._classNames.searchForMoreButton, iconProps: searchForMoreIcon || { iconName: 'Search' }, id: searchForMoreId, onClick: this._getMoreResults, \"data-automationid\": 'sug-searchForMore', role: 'option' }, searchForMoreText)),\n isSearching ? React.createElement(Spinner, __assign({}, spinnerClassNameOrStyles, { ariaLabel: searchingText, label: searchingText })) : null,\n footerTitle && !moreSuggestionsAvailable && !isMostRecentlyUsedVisible && !isSearching ? (React.createElement(\"div\", { className: this._classNames.title }, footerTitle(this.props))) : null));\n };\n Suggestions.prototype.hasSuggestedAction = function () {\n return !!this._searchForMoreButton.current || !!this._forceResolveButton.current;\n };\n Suggestions.prototype.hasSuggestedActionSelected = function () {\n return this.state.selectedActionType !== SuggestionActionType.none;\n };\n Suggestions.prototype.executeSelectedAction = function () {\n switch (this.state.selectedActionType) {\n case SuggestionActionType.forceResolve:\n this._forceResolve();\n break;\n case SuggestionActionType.searchMore:\n this._getMoreResults();\n break;\n }\n };\n Suggestions.prototype.focusAboveSuggestions = function () {\n if (this._forceResolveButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n }\n else if (this._searchForMoreButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.searchMore });\n }\n };\n Suggestions.prototype.focusBelowSuggestions = function () {\n if (this._searchForMoreButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.searchMore });\n }\n else if (this._forceResolveButton.current) {\n this.setState({ selectedActionType: SuggestionActionType.forceResolve });\n }\n };\n Suggestions.prototype.focusSearchForMoreButton = function () {\n if (this._searchForMoreButton.current) {\n this._searchForMoreButton.current.focus();\n }\n };\n Suggestions.prototype.scrollSelected = function () {\n if (this._selectedElement.current &&\n this._scrollContainer.current &&\n this._scrollContainer.current.scrollTo !== undefined) {\n var _a = this._selectedElement.current, offsetHeight = _a.offsetHeight, offsetTop = _a.offsetTop;\n var _b = this._scrollContainer.current, parentOffsetHeight = _b.offsetHeight, scrollTop = _b.scrollTop;\n var isAbove = offsetTop < scrollTop;\n var isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\n if (isAbove) {\n this._scrollContainer.current.scrollTo(0, offsetTop);\n }\n else if (isBelow) {\n this._scrollContainer.current.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\n }\n }\n };\n Suggestions.prototype._renderSuggestions = function () {\n var _this = this;\n var _a = this.props, onRenderSuggestion = _a.onRenderSuggestion, removeSuggestionAriaLabel = _a.removeSuggestionAriaLabel, suggestionsItemClassName = _a.suggestionsItemClassName, resultsMaximumNumber = _a.resultsMaximumNumber, showRemoveButtons = _a.showRemoveButtons, removeButtonIconProps = _a.removeButtonIconProps;\n var suggestions = this.props.suggestions;\n var StyledTypedSuggestionsItem = StyledSuggestionsItem;\n var selectedIndex = -1;\n suggestions.some(function (element, index) {\n if (element.selected) {\n selectedIndex = index;\n return true;\n }\n return false;\n });\n if (resultsMaximumNumber) {\n suggestions =\n selectedIndex >= resultsMaximumNumber\n ? suggestions.slice(selectedIndex - resultsMaximumNumber + 1, selectedIndex + 1)\n : suggestions.slice(0, resultsMaximumNumber);\n }\n if (suggestions.length === 0) {\n return null;\n }\n return (React.createElement(\"div\", { className: this._classNames.suggestionsContainer, ref: this._scrollContainer, role: \"presentation\" }, suggestions.map(function (suggestion, index) { return (React.createElement(\"div\", { ref: suggestion.selected ? _this._selectedElement : undefined, key: suggestion.item.key ? suggestion.item.key : index, role: \"presentation\" },\n React.createElement(StyledTypedSuggestionsItem, { suggestionModel: suggestion, RenderSuggestion: onRenderSuggestion, onClick: _this._onClickTypedSuggestionsItem(suggestion.item, index), className: suggestionsItemClassName, showRemoveButton: showRemoveButtons, removeButtonAriaLabel: removeSuggestionAriaLabel, onRemoveItem: _this._onRemoveTypedSuggestionsItem(suggestion.item, index), id: 'sug-' + index, removeButtonIconProps: removeButtonIconProps }))); })));\n };\n return Suggestions;\n}(React.Component));\nexport { Suggestions };\n//# sourceMappingURL=Suggestions.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getHighContrastNoAdjustStyle, HighContrastSelector, hiddenContentStyle, } from '../../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Suggestions',\n suggestionsContainer: 'ms-Suggestions-container',\n title: 'ms-Suggestions-title',\n forceResolveButton: 'ms-forceResolve-button',\n searchForMoreButton: 'ms-SearchMore-button',\n spinner: 'ms-Suggestions-spinner',\n noSuggestions: 'ms-Suggestions-none',\n suggestionsAvailable: 'ms-Suggestions-suggestionsAvailable',\n isSelected: 'is-selected',\n};\nexport function getStyles(props) {\n var _a;\n var className = props.className, suggestionsClassName = props.suggestionsClassName, theme = props.theme, forceResolveButtonSelected = props.forceResolveButtonSelected, searchForMoreButtonSelected = props.searchForMoreButtonSelected;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var actionButtonStyles = {\n backgroundColor: 'transparent',\n border: 0,\n cursor: 'pointer',\n margin: 0,\n paddingLeft: 8,\n position: 'relative',\n borderTop: \"1px solid \" + palette.neutralLight,\n height: 40,\n textAlign: 'left',\n width: '100%',\n fontSize: fonts.small.fontSize,\n selectors: {\n ':hover': {\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n cursor: 'pointer',\n },\n ':focus, :active': {\n backgroundColor: palette.themeLight,\n },\n '.ms-Button-icon': {\n fontSize: fonts.mediumPlus.fontSize,\n width: 25,\n },\n '.ms-Button-label': {\n margin: '0 4px 0 9px',\n },\n },\n };\n var actionButtonSelectedStyles = {\n backgroundColor: palette.themeLight,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _a),\n };\n return {\n root: [\n classNames.root,\n {\n minWidth: 260,\n },\n className,\n ],\n suggestionsContainer: [\n classNames.suggestionsContainer,\n {\n overflowY: 'auto',\n overflowX: 'hidden',\n maxHeight: 300,\n transform: 'translate3d(0,0,0)',\n },\n suggestionsClassName,\n ],\n title: [\n classNames.title,\n {\n padding: '0 12px',\n fontSize: fonts.small.fontSize,\n color: palette.themePrimary,\n lineHeight: 40,\n borderBottom: \"1px solid \" + semanticColors.menuItemBackgroundPressed,\n },\n ],\n forceResolveButton: [\n classNames.forceResolveButton,\n actionButtonStyles,\n forceResolveButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n ],\n searchForMoreButton: [\n classNames.searchForMoreButton,\n actionButtonStyles,\n searchForMoreButtonSelected && [classNames.isSelected, actionButtonSelectedStyles],\n ],\n noSuggestions: [\n classNames.noSuggestions,\n {\n textAlign: 'center',\n color: palette.neutralSecondary,\n fontSize: fonts.small.fontSize,\n lineHeight: 30,\n },\n ],\n suggestionsAvailable: [classNames.suggestionsAvailable, hiddenContentStyle],\n subComponentStyles: {\n spinner: {\n root: [\n classNames.spinner,\n {\n margin: '5px 0',\n paddingLeft: 14,\n textAlign: 'left',\n whiteSpace: 'nowrap',\n lineHeight: 20,\n fontSize: fonts.small.fontSize,\n },\n ],\n circle: {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n label: {\n display: 'inline-block',\n verticalAlign: 'middle',\n margin: '0 10px 0 16px',\n },\n },\n },\n };\n}\n//# sourceMappingURL=Suggestions.styles.js.map","/**\n * {@docCategory Pickers}\n */\nvar SuggestionsController = /** @class */ (function () {\n function SuggestionsController() {\n var _this = this;\n this._isSuggestionModel = function (value) {\n return value.item !== undefined;\n };\n this._ensureSuggestionModel = function (suggestion) {\n if (_this._isSuggestionModel(suggestion)) {\n return suggestion;\n }\n else {\n return {\n item: suggestion,\n selected: false,\n ariaLabel: suggestion.name || suggestion.primaryText,\n };\n }\n };\n this.suggestions = [];\n this.currentIndex = -1;\n }\n SuggestionsController.prototype.updateSuggestions = function (newSuggestions, selectedIndex, maxCount) {\n if (newSuggestions && newSuggestions.length > 0) {\n if (maxCount && newSuggestions.length > maxCount) {\n var startIndex = selectedIndex && selectedIndex > maxCount ? selectedIndex + 1 - maxCount : 0;\n newSuggestions = newSuggestions.slice(startIndex, startIndex + maxCount - 1);\n }\n this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);\n this.currentIndex = selectedIndex ? selectedIndex : 0;\n if (selectedIndex === -1) {\n this.currentSuggestion = undefined;\n }\n else if (selectedIndex !== undefined) {\n this.suggestions[selectedIndex].selected = true;\n this.currentSuggestion = this.suggestions[selectedIndex];\n }\n }\n else {\n this.suggestions = [];\n this.currentIndex = -1;\n this.currentSuggestion = undefined;\n }\n };\n /**\n * Increments the suggestion index and gets the next suggestion in the list.\n */\n SuggestionsController.prototype.nextSuggestion = function () {\n if (this.suggestions && this.suggestions.length) {\n if (this.currentIndex < this.suggestions.length - 1) {\n this.setSelectedSuggestion(this.currentIndex + 1);\n return true;\n }\n else if (this.currentIndex === this.suggestions.length - 1) {\n this.setSelectedSuggestion(0);\n return true;\n }\n }\n return false;\n };\n /**\n * Decrements the suggestion index and gets the previous suggestion in the list.\n */\n SuggestionsController.prototype.previousSuggestion = function () {\n if (this.suggestions && this.suggestions.length) {\n if (this.currentIndex > 0) {\n this.setSelectedSuggestion(this.currentIndex - 1);\n return true;\n }\n else if (this.currentIndex === 0) {\n this.setSelectedSuggestion(this.suggestions.length - 1);\n return true;\n }\n }\n return false;\n };\n SuggestionsController.prototype.getSuggestions = function () {\n return this.suggestions;\n };\n SuggestionsController.prototype.getCurrentItem = function () {\n return this.currentSuggestion;\n };\n SuggestionsController.prototype.getSuggestionAtIndex = function (index) {\n return this.suggestions[index];\n };\n SuggestionsController.prototype.hasSelectedSuggestion = function () {\n return this.currentSuggestion ? true : false;\n };\n SuggestionsController.prototype.removeSuggestion = function (index) {\n this.suggestions.splice(index, 1);\n };\n SuggestionsController.prototype.createGenericSuggestion = function (itemToConvert) {\n var itemToAdd = this.convertSuggestionsToSuggestionItems([itemToConvert])[0];\n this.currentSuggestion = itemToAdd;\n };\n SuggestionsController.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {\n return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];\n };\n SuggestionsController.prototype.deselectAllSuggestions = function () {\n if (this.currentIndex > -1) {\n this.suggestions[this.currentIndex].selected = false;\n this.currentIndex = -1;\n }\n };\n SuggestionsController.prototype.setSelectedSuggestion = function (index) {\n if (index > this.suggestions.length - 1 || index < 0) {\n this.currentIndex = 0;\n this.currentSuggestion.selected = false;\n this.currentSuggestion = this.suggestions[0];\n this.currentSuggestion.selected = true;\n }\n else {\n if (this.currentIndex > -1) {\n this.suggestions[this.currentIndex].selected = false;\n }\n this.suggestions[index].selected = true;\n this.currentIndex = index;\n this.currentSuggestion = this.suggestions[index];\n }\n };\n return SuggestionsController;\n}());\nexport { SuggestionsController };\n//# sourceMappingURL=SuggestionsController.js.map","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function () {\n var _a;\n var win = getWindow();\n if (!((_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)) {\n return false;\n }\n return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};\n//# sourceMappingURL=ie11Detector.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, getNativeProps, initializeComponentRef, inputProperties, isIE11, KeyCodes } from '../../Utilities';\nvar SELECTION_FORWARD = 'forward';\nvar SELECTION_BACKWARD = 'backward';\n/**\n * {@docCategory Autofill}\n */\nvar Autofill = /** @class */ (function (_super) {\n __extends(Autofill, _super);\n function Autofill(props) {\n var _this = _super.call(this, props) || this;\n _this._inputElement = React.createRef();\n _this._autoFillEnabled = true;\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionStart = function (ev) {\n _this.setState({ isComposing: true });\n _this._autoFillEnabled = false;\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionUpdate = function () {\n if (isIE11()) {\n _this._updateValue(_this._getCurrentInputValue(), true);\n }\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionEnd = function (ev) {\n var inputValue = _this._getCurrentInputValue();\n _this._tryEnableAutofill(inputValue, _this.value, false, true);\n _this.setState({ isComposing: false });\n // Due to timing, this needs to be async, otherwise no text will be selected.\n _this._async.setTimeout(function () {\n // it's technically possible that the value of isComposing is reset during this timeout,\n // so explicitly trigger this with composing=true here, since it is supposed to be the\n // update for composition end\n _this._updateValue(_this._getCurrentInputValue(), false);\n }, 0);\n };\n _this._onClick = function () {\n if (_this.value && _this.value !== '' && _this._autoFillEnabled) {\n _this._autoFillEnabled = false;\n }\n };\n _this._onKeyDown = function (ev) {\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the event is actively being composed, then don't alert autofill.\n // Right now typing does not have isComposing, once that has been fixed any should be removed.\n if (!ev.nativeEvent.isComposing) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.backspace:\n _this._autoFillEnabled = false;\n break;\n case KeyCodes.left:\n case KeyCodes.right:\n if (_this._autoFillEnabled) {\n _this.setState({ inputValue: _this.props.suggestedDisplayValue || '' });\n _this._autoFillEnabled = false;\n }\n break;\n default:\n if (!_this._autoFillEnabled) {\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.enableAutofillOnKeyPress.indexOf(ev.which) !== -1) {\n _this._autoFillEnabled = true;\n }\n }\n break;\n }\n }\n };\n _this._onInputChanged = function (ev) {\n var value = _this._getCurrentInputValue(ev);\n if (!_this.state.isComposing) {\n _this._tryEnableAutofill(value, _this.value, ev.nativeEvent.isComposing);\n }\n // If it is not IE11 and currently composing, update the value\n if (!(isIE11() && _this.state.isComposing)) {\n var nativeEventComposing = ev.nativeEvent.isComposing;\n var isComposing = nativeEventComposing === undefined ? _this.state.isComposing : nativeEventComposing;\n _this._updateValue(value, isComposing);\n }\n };\n _this._onChanged = function () {\n // Swallow this event, we don't care about it\n // We must provide it because React PropTypes marks it as required, but onInput serves the correct purpose\n return;\n };\n /**\n * Updates the current input value as well as getting a new display value.\n * @param newValue - The new value from the input\n */\n _this._updateValue = function (newValue, composing) {\n // Only proceed if the value is nonempty and is different from the old value\n // This is to work around the fact that, in IE 11, inputs with a placeholder fire an onInput event on focus\n if (!newValue && newValue === _this.value) {\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onInputChange = _a.onInputChange, onInputValueChange = _a.onInputValueChange;\n if (onInputChange) {\n newValue = (onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(newValue, composing)) || '';\n }\n _this.setState({ inputValue: newValue }, function () { return onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(newValue, composing); });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this.state = {\n inputValue: props.defaultVisibleValue || '',\n isComposing: false,\n };\n return _this;\n }\n Autofill.getDerivedStateFromProps = function (props, state) {\n // eslint-disable-next-line deprecation/deprecation\n if (props.updateValueInWillReceiveProps) {\n // eslint-disable-next-line deprecation/deprecation\n var updatedInputValue = props.updateValueInWillReceiveProps();\n // Don't update if we have a null value or the value isn't changing\n // the value should still update if an empty string is passed in\n if (updatedInputValue !== null && updatedInputValue !== state.inputValue && !state.isComposing) {\n return __assign(__assign({}, state), { inputValue: updatedInputValue });\n }\n }\n return null;\n };\n Object.defineProperty(Autofill.prototype, \"cursorLocation\", {\n get: function () {\n if (this._inputElement.current) {\n var inputElement = this._inputElement.current;\n if (inputElement.selectionDirection !== SELECTION_FORWARD) {\n return inputElement.selectionEnd;\n }\n else {\n return inputElement.selectionStart;\n }\n }\n else {\n return -1;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"isValueSelected\", {\n get: function () {\n return Boolean(this.inputElement && this.inputElement.selectionStart !== this.inputElement.selectionEnd);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"value\", {\n get: function () {\n return this._getControlledValue() || this.state.inputValue || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionStart\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionStart : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionEnd\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionEnd : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement.current;\n },\n enumerable: false,\n configurable: true\n });\n Autofill.prototype.componentDidUpdate = function (_, _1, cursor) {\n var _a = this.props, suggestedDisplayValue = _a.suggestedDisplayValue, shouldSelectFullInputValueInComponentDidUpdate = _a.shouldSelectFullInputValueInComponentDidUpdate, preventValueSelection = _a.preventValueSelection;\n var differenceIndex = 0;\n if (preventValueSelection) {\n return;\n }\n var isFocused = this._inputElement.current && this._inputElement.current === document.activeElement;\n if (isFocused &&\n this._autoFillEnabled &&\n this.value &&\n suggestedDisplayValue &&\n _doesTextStartWith(suggestedDisplayValue, this.value)) {\n var shouldSelectFullRange = false;\n if (shouldSelectFullInputValueInComponentDidUpdate) {\n shouldSelectFullRange = shouldSelectFullInputValueInComponentDidUpdate();\n }\n if (shouldSelectFullRange) {\n this._inputElement.current.setSelectionRange(0, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n else {\n while (differenceIndex < this.value.length &&\n this.value[differenceIndex].toLocaleLowerCase() === suggestedDisplayValue[differenceIndex].toLocaleLowerCase()) {\n differenceIndex++;\n }\n if (differenceIndex > 0) {\n this._inputElement.current.setSelectionRange(differenceIndex, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n }\n }\n else if (this._inputElement.current) {\n if (cursor !== null && !this._autoFillEnabled && !this.state.isComposing) {\n this._inputElement.current.setSelectionRange(cursor.start, cursor.end, cursor.dir);\n }\n }\n };\n Autofill.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n Autofill.prototype.render = function () {\n var nativeProps = getNativeProps(this.props, inputProperties);\n var style = __assign(__assign({}, this.props.style), { fontFamily: 'inherit' });\n return (React.createElement(\"input\", __assign({ autoCapitalize: \"off\", autoComplete: \"off\", \"aria-autocomplete\": 'both' }, nativeProps, { style: style, ref: this._inputElement, value: this._getDisplayValue(), onCompositionStart: this._onCompositionStart, onCompositionUpdate: this._onCompositionUpdate, onCompositionEnd: this._onCompositionEnd, \n // TODO (Fabric 8?) - switch to calling only onChange. See notes in TextField._onInputChange.\n onChange: this._onChanged, onInput: this._onInputChanged, onKeyDown: this._onKeyDown, onClick: this.props.onClick ? this.props.onClick : this._onClick, \"data-lpignore\": true })));\n };\n Autofill.prototype.focus = function () {\n this._inputElement.current && this._inputElement.current.focus();\n };\n Autofill.prototype.clear = function () {\n this._autoFillEnabled = true;\n this._updateValue('', false);\n this._inputElement.current && this._inputElement.current.setSelectionRange(0, 0);\n };\n Autofill.prototype.getSnapshotBeforeUpdate = function () {\n var _a, _b;\n var inel = this._inputElement.current;\n if (inel && inel.selectionStart !== this.value.length) {\n return {\n start: (_a = inel.selectionStart) !== null && _a !== void 0 ? _a : inel.value.length,\n end: (_b = inel.selectionEnd) !== null && _b !== void 0 ? _b : inel.value.length,\n dir: inel.selectionDirection || 'backward' || 'none',\n };\n }\n return null;\n };\n Autofill.prototype._getCurrentInputValue = function (ev) {\n if (ev && ev.target && ev.target.value) {\n return ev.target.value;\n }\n else if (this.inputElement && this.inputElement.value) {\n return this.inputElement.value;\n }\n else {\n return '';\n }\n };\n /**\n * Attempts to enable autofill. Whether or not autofill is enabled depends on the input value,\n * whether or not any text is selected, and only if the new input value is longer than the old input value.\n * Autofill should never be set to true if the value is composing. Once compositionEnd is called, then\n * it should be completed.\n * See https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent for more information on composition.\n * @param newValue - new input value\n * @param oldValue - old input value\n * @param isComposing - if true then the text is actively being composed and it has not completed.\n * @param isComposed - if the text is a composed text value.\n */\n Autofill.prototype._tryEnableAutofill = function (newValue, oldValue, isComposing, isComposed) {\n if (!isComposing &&\n newValue &&\n this._inputElement.current &&\n this._inputElement.current.selectionStart === newValue.length &&\n !this._autoFillEnabled &&\n (newValue.length > oldValue.length || isComposed)) {\n this._autoFillEnabled = true;\n }\n };\n Autofill.prototype._getDisplayValue = function () {\n if (this._autoFillEnabled) {\n return _getDisplayValue(this.value, this.props.suggestedDisplayValue);\n }\n return this.value;\n };\n Autofill.prototype._getControlledValue = function () {\n var value = this.props.value;\n if (value === undefined || typeof value === 'string') {\n return value;\n }\n // eslint-disable-next-line no-console\n console.warn(\"props.value of Autofill should be a string, but it is \" + value + \" with type of \" + typeof value);\n return value.toString();\n };\n Autofill.defaultProps = {\n enableAutofillOnKeyPress: [KeyCodes.down, KeyCodes.up],\n };\n return Autofill;\n}(React.Component));\nexport { Autofill };\n/**\n * Returns a string that should be used as the display value.\n * It evaluates this based on whether or not the suggested value starts with the input value\n * and whether or not autofill is enabled.\n * @param inputValue - the value that the input currently has.\n * @param suggestedDisplayValue - the possible full value\n */\nfunction _getDisplayValue(inputValue, suggestedDisplayValue) {\n var displayValue = inputValue;\n if (suggestedDisplayValue && inputValue && _doesTextStartWith(suggestedDisplayValue, displayValue)) {\n displayValue = suggestedDisplayValue;\n }\n return displayValue;\n}\nfunction _doesTextStartWith(text, startWith) {\n if (!text || !startWith) {\n return false;\n }\n if (process.env.NODE_ENV !== 'production') {\n for (var _i = 0, _a = [text, startWith]; _i < _a.length; _i++) {\n var val = _a[_i];\n if (typeof val !== 'string') {\n throw new Error(Autofill.name + \" received non-string value \\\"\" + val + \"\\\" of type \" + typeof val + \" from either input's value or suggestedDisplayValue\");\n }\n }\n }\n return text.toLocaleLowerCase().indexOf(startWith.toLocaleLowerCase()) === 0;\n}\n//# sourceMappingURL=Autofill.js.map","/* eslint-disable */\nimport { loadStyles } from '@microsoft/load-themed-styles';\nloadStyles([{ \"rawString\": \".picker_94f06b16{position:relative}.pickerText_94f06b16{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid \" }, { \"theme\": \"neutralTertiary\", \"defaultValue\": \"#a19f9d\" }, { \"rawString\": \";min-width:180px;min-height:30px}.pickerText_94f06b16:hover{border-color:\" }, { \"theme\": \"inputBorderHovered\", \"defaultValue\": \"#323130\" }, { \"rawString\": \"}.pickerText_94f06b16.inputFocused_94f06b16{position:relative;border-color:\" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}.pickerText_94f06b16.inputFocused_94f06b16:after{pointer-events:none;content:\\\"\\\";position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;border:2px solid \" }, { \"theme\": \"inputFocusBorderAlt\", \"defaultValue\": \"#0078d4\" }, { \"rawString\": \"}@media screen and (-ms-high-contrast:active),screen and (forced-colors:active){.pickerText_94f06b16.inputDisabled_94f06b16{position:relative;border-color:GrayText}.pickerText_94f06b16.inputDisabled_94f06b16:after{pointer-events:none;content:\\\"\\\";position:absolute;left:0;top:0;bottom:0;right:0;background-color:Window}}.pickerInput_94f06b16{height:34px;border:none;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;outline:0;padding:0 6px 0;-ms-flex-item-align:end;align-self:flex-end}.pickerItems_94f06b16{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%}.screenReaderOnly_94f06b16{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}\" }]);\nexport var picker = \"picker_94f06b16\";\nexport var pickerText = \"pickerText_94f06b16\";\nexport var inputFocused = \"inputFocused_94f06b16\";\nexport var inputDisabled = \"inputDisabled_94f06b16\";\nexport var pickerInput = \"pickerInput_94f06b16\";\nexport var pickerItems = \"pickerItems_94f06b16\";\nexport var screenReaderOnly = \"screenReaderOnly_94f06b16\";\n//# sourceMappingURL=BasePicker.scss.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, KeyCodes, css, elementContains, format, getId, classNamesFunction, styled, initializeComponentRef, } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { Selection, SelectionZone, SelectionMode } from '../../utilities/selection/index';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Suggestions } from './Suggestions/Suggestions';\nimport { getStyles as suggestionsStyles } from './Suggestions/Suggestions.styles';\nimport { SuggestionsController } from './Suggestions/SuggestionsController';\nimport { ValidationState } from './BasePicker.types';\nimport { Autofill } from '../Autofill/index';\nimport * as stylesImport from './BasePicker.scss';\nvar legacyStyles = stylesImport;\nvar EXTENDED_LOAD_TIME = 3000;\nvar getClassNames = classNamesFunction();\n/**\n * Should be removed once new picker without inheritance is created\n */\nfunction getStyledSuggestions(suggestionsType) {\n return styled(suggestionsType, suggestionsStyles, undefined, {\n scope: 'Suggestions',\n });\n}\n/**\n * {@docCategory Pickers}\n */\nvar BasePicker = /** @class */ (function (_super) {\n __extends(BasePicker, _super);\n function BasePicker(basePickerProps) {\n var _this = _super.call(this, basePickerProps) || this;\n // Refs\n _this.root = React.createRef();\n _this.input = React.createRef();\n _this.suggestionElement = React.createRef();\n /**\n * @deprecated this is no longer necessary as typescript now supports generic elements\n */\n _this.SuggestionOfProperType = Suggestions;\n // eslint-disable-next-line deprecation/deprecation\n _this._styledSuggestions = getStyledSuggestions(_this.SuggestionOfProperType);\n _this.dismissSuggestions = function (ev) {\n var selectItemFunction = function () {\n var addItemOnDismiss = true;\n if (_this.props.onDismiss) {\n addItemOnDismiss = _this.props.onDismiss(ev, _this.suggestionStore.currentSuggestion ? _this.suggestionStore.currentSuggestion.item : undefined);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n // Select the first suggestion if one is available and permitted by onDismiss when user leaves.\n if (addItemOnDismiss !== false &&\n _this.canAddItems() &&\n _this.suggestionStore.hasSelectedSuggestion() &&\n _this.state.suggestedDisplayValue) {\n _this.addItemByIndex(0);\n }\n }\n };\n if (_this.currentPromise) {\n _this.currentPromise.then(function () { return selectItemFunction(); });\n }\n else {\n selectItemFunction();\n }\n _this.setState({ suggestionsVisible: false });\n };\n _this.refocusSuggestions = function (keyCode) {\n _this.resetFocus();\n if (_this.suggestionStore.suggestions && _this.suggestionStore.suggestions.length > 0) {\n if (keyCode === KeyCodes.up) {\n _this.suggestionStore.setSelectedSuggestion(_this.suggestionStore.suggestions.length - 1);\n }\n else if (keyCode === KeyCodes.down) {\n _this.suggestionStore.setSelectedSuggestion(0);\n }\n }\n };\n _this.onInputChange = function (value) {\n _this.updateValue(value);\n _this.setState({\n moreSuggestionsAvailable: true,\n isMostRecentlyUsedVisible: false,\n });\n };\n _this.onSuggestionClick = function (ev, item, index) {\n _this.addItemByIndex(index);\n };\n _this.onSuggestionRemove = function (ev, item, index) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(item);\n }\n _this.suggestionStore.removeSuggestion(index);\n };\n _this.onInputFocus = function (ev) {\n _this.selection.setAllSelected(false);\n // Only trigger all of the focus if this component isn't already focused.\n // For example when an item is selected or removed from the selected list it should be treated\n // as though the input is still focused.\n if (!_this.state.isFocused) {\n _this._userTriggeredSuggestions();\n if (_this.props.inputProps && _this.props.inputProps.onFocus) {\n _this.props.inputProps.onFocus(ev);\n }\n }\n };\n _this.onInputBlur = function (ev) {\n if (_this.props.inputProps && _this.props.inputProps.onBlur) {\n _this.props.inputProps.onBlur(ev);\n }\n };\n _this.onBlur = function (ev) {\n if (_this.state.isFocused) {\n // Only blur the entire component if an unrelated element gets focus.\n // Otherwise treat it as though it still has focus.\n // Do nothing if the blur is coming from something\n // inside the comboBox root or the comboBox menu since\n // it we are not really bluring from the whole comboBox\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the ComboBox\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = document.activeElement;\n }\n if (relatedTarget && !elementContains(_this.root.current, relatedTarget)) {\n _this.setState({ isFocused: false });\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n }\n }\n };\n /**\n * Resets focus to last element in wrapper div if clicking back into Picker that has hit item limit\n */\n _this.onWrapperClick = function (ev) {\n if (_this.state.items.length && !_this.canAddItems()) {\n _this.resetFocus(_this.state.items.length - 1);\n }\n };\n /**\n * Reveals suggestions any time the user clicks on the input element\n * without shifting focus.\n */\n _this.onClick = function (ev) {\n if (_this.props.inputProps !== undefined && _this.props.inputProps.onClick !== undefined) {\n _this.props.inputProps.onClick(ev);\n }\n // Only primary (left) clicks show suggestions.\n if (ev.button === 0) {\n _this._userTriggeredSuggestions();\n }\n };\n _this.onFocus = function () {\n if (!_this.state.isFocused) {\n _this.setState({ isFocused: true });\n }\n };\n _this.onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.which;\n switch (keyCode) {\n case KeyCodes.escape:\n if (_this.state.suggestionsVisible) {\n _this.setState({ suggestionsVisible: false });\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n case KeyCodes.tab:\n case KeyCodes.enter:\n if (_this.suggestionElement.current && _this.suggestionElement.current.hasSuggestedActionSelected()) {\n _this.suggestionElement.current.executeSelectedAction();\n }\n else if (!ev.shiftKey && _this.suggestionStore.hasSelectedSuggestion() && _this.state.suggestionsVisible) {\n _this.completeSuggestion();\n ev.preventDefault();\n ev.stopPropagation();\n }\n else {\n _this._completeGenericSuggestion();\n }\n break;\n case KeyCodes.backspace:\n if (!_this.props.disabled) {\n _this.onBackspace(ev);\n }\n ev.stopPropagation();\n break;\n case KeyCodes.del:\n if (!_this.props.disabled) {\n if (_this.input.current &&\n ev.target === _this.input.current.inputElement &&\n _this.state.suggestionsVisible &&\n _this.suggestionStore.currentIndex !== -1) {\n if (_this.props.onRemoveSuggestion) {\n _this.props.onRemoveSuggestion(_this.suggestionStore.currentSuggestion.item);\n }\n _this.suggestionStore.removeSuggestion(_this.suggestionStore.currentIndex);\n _this.forceUpdate();\n }\n else {\n _this.onBackspace(ev);\n }\n }\n ev.stopPropagation();\n break;\n case KeyCodes.up:\n if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.hasSuggestedAction() &&\n _this.suggestionStore.currentIndex === 0) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.suggestionElement.current.focusAboveSuggestions();\n _this.suggestionStore.deselectAllSuggestions();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionStore.previousSuggestion()) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.onSuggestionSelect();\n }\n }\n }\n }\n break;\n case KeyCodes.down:\n if (_this.input.current && ev.target === _this.input.current.inputElement && _this.state.suggestionsVisible) {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.tryHandleKeyDown(keyCode, _this.suggestionStore.currentIndex)) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionElement.current &&\n _this.suggestionElement.current.hasSuggestedAction() &&\n _this.suggestionStore.currentIndex + 1 === _this.suggestionStore.suggestions.length) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.suggestionElement.current.focusBelowSuggestions();\n _this.suggestionStore.deselectAllSuggestions();\n _this.forceUpdate();\n }\n else {\n if (_this.suggestionStore.nextSuggestion()) {\n ev.preventDefault();\n ev.stopPropagation();\n _this.onSuggestionSelect();\n }\n }\n }\n }\n break;\n }\n };\n _this.onItemChange = function (changedItem, index) {\n var items = _this.state.items;\n if (index >= 0) {\n var newItems = items;\n newItems[index] = changedItem;\n _this._updateSelectedItems(newItems);\n }\n };\n _this.onGetMoreResults = function () {\n _this.setState({\n isSearching: true,\n }, function () {\n if (_this.props.onGetMoreResults && _this.input.current) {\n var suggestions = _this.props.onGetMoreResults(_this.input.current.value, _this.state.items);\n var suggestionsArray = suggestions;\n var suggestionsPromiseLike = suggestions;\n if (Array.isArray(suggestionsArray)) {\n _this.updateSuggestions(suggestionsArray);\n _this.setState({ isSearching: false });\n }\n else if (suggestionsPromiseLike.then) {\n suggestionsPromiseLike.then(function (newSuggestions) {\n _this.updateSuggestions(newSuggestions);\n _this.setState({ isSearching: false });\n });\n }\n }\n else {\n _this.setState({ isSearching: false });\n }\n if (_this.input.current) {\n _this.input.current.focus();\n }\n _this.setState({\n moreSuggestionsAvailable: false,\n isResultsFooterVisible: true,\n });\n });\n };\n _this.completeSelection = function (item) {\n _this.addItem(item);\n _this.updateValue('');\n if (_this.input.current) {\n _this.input.current.clear();\n }\n _this.setState({ suggestionsVisible: false });\n };\n _this.addItemByIndex = function (index) {\n _this.completeSelection(_this.suggestionStore.getSuggestionAtIndex(index).item);\n };\n _this.addItem = function (item) {\n var processedItem = _this.props.onItemSelected\n ? _this.props.onItemSelected(item)\n : item;\n if (processedItem === null) {\n return;\n }\n var processedItemObject = processedItem;\n var processedItemPromiseLike = processedItem;\n if (processedItemPromiseLike && processedItemPromiseLike.then) {\n processedItemPromiseLike.then(function (resolvedProcessedItem) {\n var newItems = _this.state.items.concat([resolvedProcessedItem]);\n _this._updateSelectedItems(newItems);\n });\n }\n else {\n var newItems = _this.state.items.concat([processedItemObject]);\n _this._updateSelectedItems(newItems);\n }\n _this.setState({ suggestedDisplayValue: '', selectionRemoved: undefined });\n };\n _this.removeItem = function (item) {\n var items = _this.state.items;\n var index = items.indexOf(item);\n if (index >= 0) {\n var newItems = items.slice(0, index).concat(items.slice(index + 1));\n _this.setState({ selectionRemoved: item });\n _this._updateSelectedItems(newItems);\n // reset selection removed text after a timeout so it isn't reached by screen reader virtual cursor.\n // the exact timing isn't important, the live region will fully read even if the text is removed.\n _this._async.setTimeout(function () {\n _this.setState({ selectionRemoved: undefined });\n }, 1000);\n }\n };\n _this.removeItems = function (itemsToRemove) {\n var items = _this.state.items;\n var newItems = items.filter(function (item) { return itemsToRemove.indexOf(item) === -1; });\n _this._updateSelectedItems(newItems);\n };\n /**\n * @deprecated this is no longer necessary as focuszone has been removed\n */\n _this._shouldFocusZoneEnterInnerZone = function (ev) {\n // If suggestions are shown const up/down keys control them, otherwise allow them through to control the focusZone.\n if (_this.state.suggestionsVisible) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up:\n case KeyCodes.down:\n return true;\n }\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n return true;\n }\n return false;\n };\n _this._onResolveSuggestions = function (updatedValue) {\n var suggestions = _this.props.onResolveSuggestions(updatedValue, _this.state.items);\n if (suggestions !== null) {\n _this.updateSuggestionsList(suggestions, updatedValue);\n }\n };\n _this._completeGenericSuggestion = function () {\n if (_this.props.onValidateInput &&\n _this.input.current &&\n _this.props.onValidateInput(_this.input.current.value) !== ValidationState.invalid &&\n _this.props.createGenericItem) {\n var itemToConvert = _this.props.createGenericItem(_this.input.current.value, _this.props.onValidateInput(_this.input.current.value));\n _this.suggestionStore.createGenericSuggestion(itemToConvert);\n _this.completeSuggestion();\n }\n };\n /**\n * This should be called when the user does something other than use text entry to trigger suggestions.\n *\n */\n _this._userTriggeredSuggestions = function () {\n if (!_this.state.suggestionsVisible) {\n var input = _this.input.current ? _this.input.current.value : '';\n if (!input) {\n _this.onEmptyInputFocus();\n }\n else {\n if (_this.suggestionStore.suggestions.length === 0) {\n _this._onResolveSuggestions(input);\n }\n else {\n _this.setState({\n isMostRecentlyUsedVisible: false,\n suggestionsVisible: true,\n });\n }\n }\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n var items = basePickerProps.selectedItems || basePickerProps.defaultSelectedItems || [];\n _this._id = getId();\n _this._ariaMap = {\n selectedItems: \"selected-items-\" + _this._id,\n selectedSuggestionAlert: \"selected-suggestion-alert-\" + _this._id,\n suggestionList: \"suggestion-list-\" + _this._id,\n combobox: \"combobox-\" + _this._id,\n };\n _this.suggestionStore = new SuggestionsController();\n _this.selection = new Selection({ onSelectionChanged: function () { return _this.onSelectionChange(); } });\n _this.selection.setItems(items);\n _this.state = {\n items: items,\n suggestedDisplayValue: '',\n isMostRecentlyUsedVisible: false,\n moreSuggestionsAvailable: false,\n isFocused: false,\n isSearching: false,\n selectedIndices: [],\n selectionRemoved: undefined,\n };\n return _this;\n }\n BasePicker.getDerivedStateFromProps = function (newProps) {\n if (newProps.selectedItems) {\n return { items: newProps.selectedItems };\n }\n return null;\n };\n Object.defineProperty(BasePicker.prototype, \"items\", {\n get: function () {\n return this.state.items;\n },\n enumerable: false,\n configurable: true\n });\n BasePicker.prototype.componentDidMount = function () {\n this.selection.setItems(this.state.items);\n this._onResolveSuggestions = this._async.debounce(this._onResolveSuggestions, this.props.resolveDelay);\n };\n BasePicker.prototype.componentDidUpdate = function (oldProps, oldState) {\n if (this.state.items && this.state.items !== oldState.items) {\n var currentSelectedIndex = this.selection.getSelectedIndices()[0];\n this.selection.setItems(this.state.items);\n if (this.state.isFocused) {\n // Reset focus and selection so that selected item stays in sync if something\n // has been removed\n if (this.state.items.length < oldState.items.length) {\n this.selection.setIndexSelected(currentSelectedIndex, false, true);\n this.resetFocus(currentSelectedIndex);\n }\n // Reset focus to last item if the input is removed\n else if (this.state.items.length > oldState.items.length && !this.canAddItems()) {\n this.resetFocus(this.state.items.length - 1);\n }\n }\n }\n };\n BasePicker.prototype.componentWillUnmount = function () {\n if (this.currentPromise) {\n this.currentPromise = undefined;\n }\n this._async.dispose();\n };\n BasePicker.prototype.focus = function () {\n if (this.input.current) {\n this.input.current.focus();\n }\n };\n BasePicker.prototype.focusInput = function () {\n if (this.input.current) {\n this.input.current.focus();\n }\n };\n BasePicker.prototype.completeSuggestion = function (forceComplete) {\n if (this.suggestionStore.hasSelectedSuggestion() && this.input.current) {\n this.completeSelection(this.suggestionStore.currentSuggestion.item);\n }\n else if (forceComplete) {\n this._completeGenericSuggestion();\n }\n };\n BasePicker.prototype.render = function () {\n var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused, items = _a.items;\n var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, selectionAriaLabel = _b.selectionAriaLabel, _c = _b.selectionRole, selectionRole = _c === void 0 ? 'list' : _c, theme = _b.theme, styles = _b.styles;\n var suggestionsVisible = !!this.state.suggestionsVisible;\n var suggestionsAvailable = suggestionsVisible ? this._ariaMap.suggestionList : undefined;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from BasePicker class because it\n // might be used by consumers who created custom pickers from extending from\n // this base class and have not used the new 'styles' prop.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // for every other already existing picker variant (PeoplePicker, TagPicker)\n // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n isFocused: isFocused,\n disabled: disabled,\n inputClassName: inputProps && inputProps.className,\n })\n : {\n root: css('ms-BasePicker', className ? className : ''),\n text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused),\n itemsWrapper: legacyStyles.pickerItems,\n input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n screenReaderText: legacyStyles.screenReaderOnly,\n };\n var comboLabel = this.props['aria-label'] || (inputProps === null || inputProps === void 0 ? void 0 : inputProps['aria-label']);\n // selectionAriaLabel is contained in a separate rather than an aria-label on the items list\n // because if the items list has an aria-label, the aria-describedby on the input will only read\n // that label instead of all the selected items. Using aria-labelledby instead fixes this, since\n // aria-describedby and aria-labelledby will not follow a second aria-labelledby\n return (React.createElement(\"div\", { ref: this.root, className: classNames.root, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onWrapperClick },\n this.renderCustomAlert(classNames.screenReaderText),\n React.createElement(\"span\", { id: this._ariaMap.selectedItems + \"-label\", hidden: true }, selectionAriaLabel || comboLabel),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.multiple },\n React.createElement(\"div\", { className: classNames.text, \"aria-owns\": suggestionsAvailable },\n items.length > 0 && (React.createElement(\"span\", { id: this._ariaMap.selectedItems, className: classNames.itemsWrapper, role: selectionRole, \"aria-labelledby\": this._ariaMap.selectedItems + \"-label\" }, this.renderItems())),\n this.canAddItems() && (React.createElement(Autofill, __assign({ spellCheck: false }, inputProps, { className: classNames.input, componentRef: this.input, id: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.id) ? inputProps.id : this._ariaMap.combobox, onClick: this.onClick, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": suggestionsVisible ? this.getActiveDescendant() : undefined, \"aria-controls\": suggestionsAvailable, \"aria-describedby\": items.length > 0 ? this._ariaMap.selectedItems : undefined, \"aria-expanded\": suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": comboLabel, role: \"combobox\", disabled: disabled, onInputChange: this.props.onInputChange }))))),\n this.renderSuggestions()));\n };\n BasePicker.prototype.canAddItems = function () {\n var items = this.state.items;\n var itemLimit = this.props.itemLimit;\n return itemLimit === undefined || items.length < itemLimit;\n };\n BasePicker.prototype.renderSuggestions = function () {\n var StyledTypedSuggestions = this._styledSuggestions;\n return this.state.suggestionsVisible && this.input ? (React.createElement(Callout, __assign({ isBeakVisible: false, gapSpace: 5, target: this.input.current ? this.input.current.inputElement : undefined, onDismiss: this.dismissSuggestions, directionalHint: DirectionalHint.bottomLeftEdge, directionalHintForRTL: DirectionalHint.bottomRightEdge }, this.props.pickerCalloutProps),\n React.createElement(StyledTypedSuggestions\n // Assumed to set in derived component's defaultProps\n , __assign({ \n // Assumed to set in derived component's defaultProps\n onRenderSuggestion: this.props.onRenderSuggestionsItem, onSuggestionClick: this.onSuggestionClick, onSuggestionRemove: this.onSuggestionRemove, suggestions: this.suggestionStore.getSuggestions(), componentRef: this.suggestionElement, onGetMoreResults: this.onGetMoreResults, moreSuggestionsAvailable: this.state.moreSuggestionsAvailable, isLoading: this.state.suggestionsLoading, isExtendedLoading: this.state.suggestionsExtendedLoading, isSearching: this.state.isSearching, isMostRecentlyUsedVisible: this.state.isMostRecentlyUsedVisible, isResultsFooterVisible: this.state.isResultsFooterVisible, refocusSuggestions: this.refocusSuggestions, removeSuggestionAriaLabel: this.props.removeButtonAriaLabel, suggestionsListId: this._ariaMap.suggestionList, createGenericItem: this._completeGenericSuggestion }, this.props.pickerSuggestionsProps)))) : null;\n };\n BasePicker.prototype.renderItems = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, removeButtonAriaLabel = _a.removeButtonAriaLabel, removeButtonIconProps = _a.removeButtonIconProps;\n var onRenderItem = this.props.onRenderItem;\n var _b = this.state, items = _b.items, selectedIndices = _b.selectedIndices;\n return items.map(function (item, index) {\n return onRenderItem({\n item: item,\n index: index,\n key: item.key ? item.key : index,\n selected: selectedIndices.indexOf(index) !== -1,\n onRemoveItem: function () { return _this.removeItem(item); },\n disabled: disabled,\n onItemChange: _this.onItemChange,\n removeButtonAriaLabel: removeButtonAriaLabel,\n removeButtonIconProps: removeButtonIconProps,\n });\n });\n };\n BasePicker.prototype.resetFocus = function (index) {\n var items = this.state.items;\n if (items.length && index >= 0) {\n var newEl = this.root.current &&\n this.root.current.querySelectorAll('[data-selection-index]')[Math.min(index, items.length - 1)];\n if (newEl) {\n newEl.focus();\n }\n }\n else if (items.length && !this.canAddItems()) {\n this.resetFocus(items.length - 1);\n }\n else {\n if (this.input.current) {\n this.input.current.focus();\n }\n }\n };\n BasePicker.prototype.onSuggestionSelect = function () {\n if (this.suggestionStore.currentSuggestion) {\n var currentValue = this.input.current ? this.input.current.value : '';\n var itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, currentValue);\n this.setState({ suggestedDisplayValue: itemValue });\n }\n };\n BasePicker.prototype.onSelectionChange = function () {\n this.setState({\n selectedIndices: this.selection.getSelectedIndices(),\n });\n };\n BasePicker.prototype.updateSuggestions = function (suggestions) {\n var _a;\n var maxSuggestionsCount = (_a = this.props.pickerSuggestionsProps) === null || _a === void 0 ? void 0 : _a.resultsMaximumNumber;\n this.suggestionStore.updateSuggestions(suggestions, 0, maxSuggestionsCount);\n this.forceUpdate();\n };\n /**\n * Only to be called when there is nothing in the input. Checks to see if the consumer has\n * provided a function to resolve suggestions\n */\n BasePicker.prototype.onEmptyInputFocus = function () {\n var emptyResolveSuggestions = this.props.onEmptyResolveSuggestions\n ? this.props.onEmptyResolveSuggestions\n : // eslint-disable-next-line deprecation/deprecation\n this.props.onEmptyInputFocus;\n // Only attempt to resolve suggestions if it exists\n if (emptyResolveSuggestions) {\n var suggestions = emptyResolveSuggestions(this.state.items);\n this.updateSuggestionsList(suggestions);\n this.setState({\n isMostRecentlyUsedVisible: true,\n suggestionsVisible: true,\n moreSuggestionsAvailable: false,\n });\n }\n };\n BasePicker.prototype.updateValue = function (updatedValue) {\n this._onResolveSuggestions(updatedValue);\n };\n BasePicker.prototype.updateSuggestionsList = function (suggestions, updatedValue) {\n var _this = this;\n // Check to see if the returned value is an array, if it is then just pass it into the next function .\n // If the returned value is not an array then check to see if it's a promise or PromiseLike.\n // If it is then resolve it asynchronously.\n if (Array.isArray(suggestions)) {\n this._updateAndResolveValue(updatedValue, suggestions);\n }\n else if (suggestions && suggestions.then) {\n this.setState({\n suggestionsLoading: true,\n });\n this._startLoadTimer();\n // Clear suggestions\n this.suggestionStore.updateSuggestions([]);\n if (updatedValue !== undefined) {\n this.setState({\n suggestionsVisible: this._getShowSuggestions(),\n });\n }\n else {\n this.setState({\n suggestionsVisible: this.input.current && this.input.current.inputElement === document.activeElement,\n });\n }\n // Ensure that the promise will only use the callback if it was the most recent one.\n this.currentPromise = suggestions;\n suggestions.then(function (newSuggestions) {\n if (suggestions === _this.currentPromise) {\n _this._updateAndResolveValue(updatedValue, newSuggestions);\n }\n });\n }\n };\n BasePicker.prototype.resolveNewValue = function (updatedValue, suggestions) {\n var _this = this;\n this.updateSuggestions(suggestions);\n var itemValue = undefined;\n if (this.suggestionStore.currentSuggestion) {\n itemValue = this._getTextFromItem(this.suggestionStore.currentSuggestion.item, updatedValue);\n }\n // Only set suggestionloading to false after there has been time for the new suggestions to flow\n // to the suggestions list. This is to ensure that the suggestions are available before aria-activedescendant\n // is set so that screen readers will read out the first selected option.\n this.setState({\n suggestedDisplayValue: itemValue,\n suggestionsVisible: this._getShowSuggestions(),\n }, function () { return _this.setState({ suggestionsLoading: false, suggestionsExtendedLoading: false }); });\n };\n BasePicker.prototype.onChange = function (items) {\n if (this.props.onChange) {\n this.props.onChange(items);\n }\n };\n // This is protected because we may expect the backspace key to work differently in a different kind of picker.\n // This lets the subclass override it and provide it's own onBackspace. For an example see the BasePickerListBelow\n BasePicker.prototype.onBackspace = function (ev) {\n if ((this.state.items.length && !this.input.current) ||\n (this.input.current && !this.input.current.isValueSelected && this.input.current.cursorLocation === 0)) {\n if (this.selection.getSelectedCount() > 0) {\n this.removeItems(this.selection.getSelection());\n }\n else {\n this.removeItem(this.state.items[this.state.items.length - 1]);\n }\n }\n };\n BasePicker.prototype.getActiveDescendant = function () {\n var _a;\n if (this.state.suggestionsLoading) {\n return undefined;\n }\n var currentIndex = this.suggestionStore.currentIndex;\n if (currentIndex < 0) {\n // if the suggestions element has actions and the currentIndex does not point to a suggestion,\n // return the action id\n if ((_a = this.suggestionElement.current) === null || _a === void 0 ? void 0 : _a.hasSuggestedAction()) {\n return 'sug-selectedAction';\n }\n // If there are no suggestions and no action suggested, then return the ID for the no results found.\n if (this.suggestionStore.suggestions.length === 0) {\n return 'sug-noResultsFound';\n }\n return undefined;\n }\n else {\n return \"sug-\" + currentIndex;\n }\n };\n /** @deprecated use renderCustomAlert instead */\n BasePicker.prototype.getSuggestionsAlert = function (suggestionAlertClassName) {\n if (suggestionAlertClassName === void 0) { suggestionAlertClassName = legacyStyles.screenReaderOnly; }\n var currentIndex = this.suggestionStore.currentIndex;\n if (this.props.enableSelectedSuggestionAlert) {\n var selectedSuggestion = currentIndex > -1 ? this.suggestionStore.getSuggestionAtIndex(this.suggestionStore.currentIndex) : undefined;\n var selectedSuggestionAlertText = selectedSuggestion ? selectedSuggestion.ariaLabel : undefined;\n // keeping the id/className here for legacy support\n return (React.createElement(\"div\", { id: this._ariaMap.selectedSuggestionAlert, className: suggestionAlertClassName }, selectedSuggestionAlertText + \" \"));\n }\n };\n BasePicker.prototype.renderCustomAlert = function (alertClassName) {\n if (alertClassName === void 0) { alertClassName = legacyStyles.screenReaderOnly; }\n var _a = this.props.suggestionRemovedText, suggestionRemovedText = _a === void 0 ? 'removed {0}' : _a;\n var removedItemText = '';\n if (this.state.selectionRemoved) {\n var itemName = this._getTextFromItem(this.state.selectionRemoved, '');\n removedItemText = format(suggestionRemovedText, itemName);\n }\n return (React.createElement(\"div\", { className: alertClassName, id: this._ariaMap.selectedSuggestionAlert, \"aria-live\": \"assertive\" },\n // eslint-disable-next-line deprecation/deprecation\n this.getSuggestionsAlert(alertClassName),\n removedItemText));\n };\n /** If suggestions are still loading after a predefined amount of time, set state to show user alert */\n BasePicker.prototype._startLoadTimer = function () {\n var _this = this;\n this._async.setTimeout(function () {\n if (_this.state.suggestionsLoading) {\n _this.setState({ suggestionsExtendedLoading: true });\n }\n }, EXTENDED_LOAD_TIME);\n };\n /**\n * Takes in the current updated value and either resolves it with the new suggestions\n * or if updated value is undefined then it clears out currently suggested items\n */\n BasePicker.prototype._updateAndResolveValue = function (updatedValue, newSuggestions) {\n var _a;\n if (updatedValue !== undefined) {\n this.resolveNewValue(updatedValue, newSuggestions);\n }\n else {\n var maxSuggestionsCount = (_a = this.props.pickerSuggestionsProps) === null || _a === void 0 ? void 0 : _a.resultsMaximumNumber;\n this.suggestionStore.updateSuggestions(newSuggestions, -1, maxSuggestionsCount);\n if (this.state.suggestionsLoading) {\n this.setState({\n suggestionsLoading: false,\n suggestionsExtendedLoading: false,\n });\n }\n }\n };\n /**\n * Controls what happens whenever there is an action that impacts the selected items.\n * If `selectedItems` is provided, this will act as a controlled component and it will not update its own state.\n */\n BasePicker.prototype._updateSelectedItems = function (items) {\n var _this = this;\n if (this.props.selectedItems) {\n // If the component is a controlled component then the controlling component will need to add or remove the items.\n this.onChange(items);\n }\n else {\n this.setState({ items: items }, function () {\n _this._onSelectedItemsUpdated(items);\n });\n }\n };\n BasePicker.prototype._onSelectedItemsUpdated = function (items) {\n this.onChange(items);\n };\n /**\n * Suggestions are normally shown after the user updates text and the text\n * is non-empty, but also when the user clicks on the input element.\n * @returns True if suggestions should be shown.\n */\n BasePicker.prototype._getShowSuggestions = function () {\n var areSuggestionsVisible = this.input.current !== undefined &&\n this.input.current !== null &&\n this.input.current.inputElement === document.activeElement &&\n this.input.current.value !== '';\n return areSuggestionsVisible;\n };\n BasePicker.prototype._getTextFromItem = function (item, currentValue) {\n if (this.props.getTextFromItem) {\n return this.props.getTextFromItem(item, currentValue);\n }\n else {\n return '';\n }\n };\n return BasePicker;\n}(React.Component));\nexport { BasePicker };\nvar BasePickerListBelow = /** @class */ (function (_super) {\n __extends(BasePickerListBelow, _super);\n function BasePickerListBelow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BasePickerListBelow.prototype.render = function () {\n var _a = this.state, suggestedDisplayValue = _a.suggestedDisplayValue, isFocused = _a.isFocused;\n var _b = this.props, className = _b.className, inputProps = _b.inputProps, disabled = _b.disabled, selectionAriaLabel = _b.selectionAriaLabel, _c = _b.selectionRole, selectionRole = _c === void 0 ? 'list' : _c, theme = _b.theme, styles = _b.styles;\n var suggestionsVisible = !!this.state.suggestionsVisible;\n var suggestionsAvailable = suggestionsVisible ? this._ariaMap.suggestionList : undefined;\n // TODO\n // Clean this up by leaving only the first part after removing support for SASS.\n // Currently we can not remove the SASS styles from BasePicker class because it\n // might be used by consumers who created custom pickers from extending from\n // this base class and have not used the new 'styles' prop.\n // We check for 'styles' prop which is going to be injected by the 'styled' HOC\n // for every other already existing picker variant (PeoplePicker, TagPicker)\n // so that we can use the CSS-in-JS styles. If the check fails (ex: custom picker),\n // then we just use the old SASS styles instead.\n var classNames = styles\n ? getClassNames(styles, {\n theme: theme,\n className: className,\n isFocused: isFocused,\n inputClassName: inputProps && inputProps.className,\n })\n : {\n root: css('ms-BasePicker', legacyStyles.picker, className ? className : ''),\n text: css('ms-BasePicker-text', legacyStyles.pickerText, this.state.isFocused && legacyStyles.inputFocused, disabled && legacyStyles.inputDisabled),\n itemsWrapper: legacyStyles.pickerItems,\n input: css('ms-BasePicker-input', legacyStyles.pickerInput, inputProps && inputProps.className),\n screenReaderText: legacyStyles.screenReaderOnly,\n };\n var comboLabel = this.props['aria-label'] || (inputProps === null || inputProps === void 0 ? void 0 : inputProps['aria-label']);\n return (React.createElement(\"div\", { ref: this.root, onBlur: this.onBlur, onFocus: this.onFocus },\n React.createElement(\"div\", { className: classNames.root, onKeyDown: this.onKeyDown },\n this.renderCustomAlert(classNames.screenReaderText),\n React.createElement(\"div\", { className: classNames.text, \"aria-owns\": suggestionsAvailable },\n React.createElement(Autofill, __assign({}, inputProps, { className: classNames.input, componentRef: this.input, onFocus: this.onInputFocus, onBlur: this.onInputBlur, onClick: this.onClick, onInputValueChange: this.onInputChange, suggestedDisplayValue: suggestedDisplayValue, \"aria-activedescendant\": suggestionsVisible ? this.getActiveDescendant() : undefined, \"aria-controls\": suggestionsAvailable, \"aria-expanded\": suggestionsVisible, \"aria-haspopup\": \"listbox\", \"aria-label\": comboLabel, role: \"combobox\", id: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.id) ? inputProps.id : this._ariaMap.combobox, disabled: disabled, onInputChange: this.props.onInputChange })))),\n this.renderSuggestions(),\n React.createElement(SelectionZone, { selection: this.selection, selectionMode: SelectionMode.single },\n React.createElement(\"div\", { id: this._ariaMap.selectedItems, className: \"ms-BasePicker-selectedItems\" // just a className hook without any styles applied to it.\n , role: selectionRole, \"aria-label\": selectionAriaLabel || comboLabel }, this.renderItems()))));\n };\n BasePickerListBelow.prototype.onBackspace = function (ev) {\n // override the existing backspace method to not do anything because the list items appear below.\n };\n return BasePickerListBelow;\n}(BasePicker));\nexport { BasePickerListBelow };\n//# sourceMappingURL=BasePicker.js.map","import { getGlobalClassNames, getInputFocusStyle, getPlaceholderStyles, hiddenContentStyle, HighContrastSelector, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-BasePicker',\n text: 'ms-BasePicker-text',\n itemsWrapper: 'ms-BasePicker-itemsWrapper',\n input: 'ms-BasePicker-input',\n};\nexport function getStyles(props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isFocused = props.isFocused, inputClassName = props.inputClassName, disabled = props.disabled;\n if (!theme) {\n throw new Error('theme is undefined or null in base BasePicker getStyles function.');\n }\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var inputBorder = semanticColors.inputBorder, inputBorderHovered = semanticColors.inputBorderHovered, inputFocusBorderAlt = semanticColors.inputFocusBorderAlt;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // placeholder style constants\n var placeholderStyles = [\n fonts.medium,\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n };\n // The following lines are to create a semi-transparent color overlay for the disabled state with designer's approval.\n // @todo: investigate the performance cost of the calculation below and apply if negligible.\n // Replacing with a static color for now.\n // const rgbColor: IRGB | undefined = cssColor(palette.neutralQuaternaryAlt);\n // const disabledOverlayColor = rgbColor ? `rgba(${rgbColor.r}, ${rgbColor.g}, ${rgbColor.b}, 0.29)` : 'transparent';\n var disabledOverlayColor = 'rgba(218, 218, 218, 0.29)';\n return {\n root: [classNames.root, className, { position: 'relative' }],\n text: [\n classNames.text,\n {\n display: 'flex',\n position: 'relative',\n flexWrap: 'wrap',\n alignItems: 'center',\n boxSizing: 'border-box',\n minWidth: 180,\n minHeight: 30,\n border: \"1px solid \" + inputBorder,\n borderRadius: effects.roundedCorner2,\n },\n !isFocused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: inputBorderHovered,\n },\n },\n },\n isFocused && !disabled && getInputFocusStyle(inputFocusBorderAlt, effects.roundedCorner2),\n disabled && {\n borderColor: disabledOverlayColor,\n selectors: (_c = {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n background: disabledOverlayColor,\n }\n },\n _c[HighContrastSelector] = {\n borderColor: 'GrayText',\n selectors: {\n ':after': {\n background: 'none',\n },\n },\n },\n _c),\n },\n ],\n itemsWrapper: [\n classNames.itemsWrapper,\n {\n display: 'flex',\n flexWrap: 'wrap',\n maxWidth: '100%',\n },\n ],\n input: [\n classNames.input,\n fonts.medium,\n {\n height: 30,\n border: 'none',\n flexGrow: 1,\n outline: 'none',\n padding: '0 6px 0',\n alignSelf: 'flex-end',\n borderRadius: effects.roundedCorner2,\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n selectors: {\n '::-ms-clear': {\n display: 'none',\n },\n '&:placeholder-shown': {\n textOverflow: 'ellipsis',\n },\n },\n },\n getPlaceholderStyles(placeholderStyles),\n disabled && getPlaceholderStyles(disabledPlaceholderStyles),\n inputClassName,\n ],\n screenReaderText: hiddenContentStyle,\n };\n}\n//# sourceMappingURL=BasePicker.styles.js.map","/**\n * Validation state of the user's input.\n * {@docCategory Pickers}\n */\nexport var ValidationState;\n(function (ValidationState) {\n /** User input is valid. */\n ValidationState[ValidationState[\"valid\"] = 0] = \"valid\";\n /** User input could be valid or invalid, its state is not known yet. */\n ValidationState[ValidationState[\"warning\"] = 1] = \"warning\";\n /** User input is invalid. */\n ValidationState[ValidationState[\"invalid\"] = 2] = \"invalid\";\n})(ValidationState || (ValidationState = {}));\n//# sourceMappingURL=BasePicker.types.js.map","/**\n * Regular expressions matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n * so for example, (xyz) [xyz] {xyz} all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{\\<][^\\)\\]\\}\\>]*[\\)\\]\\}\\>]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic: Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n * CJK Unified Ideographs Extension B\n */\n// eslint-disable-next-line @fluentui/max-len\nvar UNSUPPORTED_TEXT_REGEX = /[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n var initials = '';\n var splits = displayName.split(' ');\n if (splits.length === 2) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[1].charAt(0).toUpperCase();\n }\n else if (splits.length === 3) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[2].charAt(0).toUpperCase();\n }\n else if (splits.length !== 0) {\n initials += splits[0].charAt(0).toUpperCase();\n }\n if (isRtl && initials.length > 1) {\n return initials.charAt(1) + initials.charAt(0);\n }\n return initials;\n}\nfunction cleanupDisplayName(displayName) {\n displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n displayName = displayName.trim();\n return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n if (!displayName) {\n return '';\n }\n displayName = cleanupDisplayName(displayName);\n // For names containing CJK characters, and phone numbers, we don't display initials\n if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n return '';\n }\n return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size24` instead.\n */\n PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size32` instead.\n */\n PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size40` instead.\n */\n PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size48` instead.\n */\n PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size72` instead.\n */\n PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size100` instead.\n */\n PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * No `PersonaCoin` is rendered.\n */\n PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n /**\n * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n /**\n * Renders a 16px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n /**\n * Renders a 24px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n /**\n * Renders a 28px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n /**\n * Renders a 32px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n /**\n * Renders a 40px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n /**\n * Renders a 48px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n /**\n * Renders a 56px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n /**\n * Renders a 72px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n /**\n * Renders a 100px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n /**\n * Renders a 120px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n /**\n * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n /**\n * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n * can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n /**\n * Transparent is not intended to be used with typical initials due to accessibility issues.\n * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n /**\n * `gray` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n personaSize.size8 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size10 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size16 = '16px';\n personaSize.size24 = '24px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size28 = '28px';\n personaSize.size32 = '32px';\n personaSize.size40 = '40px';\n personaSize.size48 = '48px';\n personaSize.size56 = '56px';\n personaSize.size72 = '72px';\n personaSize.size100 = '100px';\n personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n personaPresenceSize.size6 = '6px';\n personaPresenceSize.size8 = '8px';\n personaPresenceSize.size12 = '12px';\n personaPresenceSize.size16 = '16px';\n personaPresenceSize.size20 = '20px';\n personaPresenceSize.size28 = '28px';\n personaPresenceSize.size32 = '32px';\n /**\n * @deprecated This is now unused\n */\n personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n isSize8: size === PersonaSize.size8,\n /* eslint-disable deprecation/deprecation */\n isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n isSize16: size === PersonaSize.size16,\n isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n isSize32: size === PersonaSize.size32,\n isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n isSize56: size === PersonaSize.size56,\n isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n // Old deprecated sizes\n _a[PersonaSize.tiny] = 10,\n _a[PersonaSize.extraExtraSmall] = 24,\n _a[PersonaSize.extraSmall] = 28,\n _a[PersonaSize.small] = 40,\n _a[PersonaSize.regular] = 48,\n _a[PersonaSize.large] = 72,\n _a[PersonaSize.extraLarge] = 100,\n // New sizes\n _a[PersonaSize.size8] = 8,\n _a[PersonaSize.size10] = 10,\n _a[PersonaSize.size16] = 16,\n _a[PersonaSize.size24] = 24,\n _a[PersonaSize.size28] = 28,\n /* eslint-enable deprecation/deprecation */\n _a[PersonaSize.size32] = 32,\n _a[PersonaSize.size40] = 40,\n _a[PersonaSize.size48] = 48,\n _a[PersonaSize.size56] = 56,\n _a[PersonaSize.size72] = 72,\n _a[PersonaSize.size100] = 100,\n _a[PersonaSize.size120] = 120,\n _a);\nexport var presenceBoolean = function (presence) { return ({\n isAvailable: presence === PersonaPresence.online,\n isAway: presence === PersonaPresence.away,\n isBlocked: presence === PersonaPresence.blocked,\n isBusy: presence === PersonaPresence.busy,\n isDoNotDisturb: presence === PersonaPresence.dnd,\n isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n // There can be many PersonaPresence rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaPresenceBase = React.forwardRef(function (props, forwardedRef) {\n var coinSize = props.coinSize, isOutOfOffice = props.isOutOfOffice, styles = props.styles, // Use getStyles from props.\n presence = props.presence, theme = props.theme, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors;\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n var size = sizeBoolean(props.size);\n // Render Presence Icon if Persona is above size 32.\n var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n (coinSize ? coinSize > 32 : true);\n var presenceHeightWidth = coinSize\n ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n ? coinSize / coinSizePresenceScaleFactor + 'px'\n : presenceMaxSize + 'px'\n : '';\n var presenceFontSize = coinSize\n ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n ? coinSize / coinSizeFontScaleFactor + 'px'\n : presenceFontMaxSize + 'px'\n : '';\n var coinSizeWithPresenceIconStyle = coinSize\n ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n : undefined;\n var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n presence: presence,\n size: props.size,\n isOutOfOffice: isOutOfOffice,\n presenceColors: presenceColors,\n });\n if (presence === PersonaPresenceEnum.none) {\n return null;\n }\n return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle, ref: mergedRootRef }, renderIcon && (React.createElement(Icon, { className: classNames.presenceIcon, iconName: determineIcon(props.presence, props.isOutOfOffice), style: coinSizeWithPresenceIconStyle }))));\n});\nPersonaPresenceBase.displayName = 'PersonaPresenceBase';\nfunction determineIcon(presence, isOutOfOffice) {\n if (!presence) {\n return undefined;\n }\n var oofIcon = 'SkypeArrow';\n switch (PersonaPresenceEnum[presence]) {\n case 'online':\n return 'SkypeCheck';\n case 'away':\n return isOutOfOffice ? oofIcon : 'SkypeClock';\n case 'dnd':\n return 'SkypeMinus';\n case 'offline':\n return isOutOfOffice ? oofIcon : '';\n }\n return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n presence: 'ms-Persona-presence',\n presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var theme = props.theme, presenceColors = props.presenceColors;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n // Presence colors\n var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n var isOpenCirclePresence = presence.isOffline ||\n (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n var borderSizeForSmallPersonas = '1px';\n var borderSizeForLargePersonas = '2px';\n var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n return {\n presence: [\n classNames.presence,\n __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \" + presenceColorBackground, textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'border-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n backgroundColor: 'WindowText',\n },\n _a) }),\n (size.isSize8 || size.isSize10) && {\n right: 'auto',\n top: '7px',\n left: 0,\n border: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n top: '9px',\n border: '1px solid WindowText',\n },\n _b),\n },\n (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n makeSizeStyle(personaPresenceSize.size8),\n (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n size.isSize16 && {\n height: personaPresenceSize.size6,\n width: personaPresenceSize.size6,\n borderWidth: '1.5px',\n },\n size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n presence.isAvailable && {\n backgroundColor: presenceColorAvailable,\n selectors: (_c = {},\n _c[HighContrastSelector] = backgroundColor('Highlight'),\n _c),\n },\n presence.isAway && backgroundColor(presenceColorAway),\n presence.isBlocked && [\n {\n selectors: (_d = {\n // Only show :after at larger sizes\n ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n ? {\n content: '\"\"',\n width: '100%',\n height: borderSize,\n backgroundColor: presenceColorBusy,\n transform: 'translateY(-50%) rotate(-45deg)',\n position: 'absolute',\n top: '50%',\n left: 0,\n }\n : undefined\n },\n _d[HighContrastSelector] = {\n selectors: {\n ':after': {\n width: \"calc(100% - 4px)\",\n left: '2px',\n backgroundColor: 'Window',\n },\n },\n },\n _d),\n },\n ],\n presence.isBusy && backgroundColor(presenceColorBusy),\n presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n presence.isOffline && backgroundColor(presenceColorOffline),\n (isOpenCirclePresence || presence.isBlocked) && [\n {\n backgroundColor: presenceColorBackground,\n selectors: (_e = {\n ':before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n border: borderSize + \" solid \" + presenceColorBusy,\n borderRadius: '50%',\n boxSizing: 'border-box',\n }\n },\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n selectors: {\n ':before': {\n width: \"calc(100% - 2px)\",\n height: \"calc(100% - 2px)\",\n top: '1px',\n left: '1px',\n borderColor: 'Window',\n },\n },\n },\n _e),\n },\n ],\n isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n isOpenCirclePresence &&\n presence.isOffline &&\n props.isOutOfOffice &&\n makeBeforeBorderStyle(borderSize, presenceColorOof),\n ],\n presenceIcon: [\n classNames.presenceIcon,\n {\n color: presenceColorBackground,\n fontSize: '6px',\n lineHeight: personaPresenceSize.size12,\n verticalAlign: 'top',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'Window',\n },\n _f),\n },\n size.isSize56 && {\n fontSize: '8px',\n lineHeight: personaPresenceSize.size16,\n },\n size.isSize72 && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaPresenceSize.size20,\n },\n size.isSize100 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size28,\n },\n size.isSize120 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size32,\n },\n presence.isAway && {\n position: 'relative',\n left: isOpenCirclePresence ? undefined : '1px',\n },\n isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n ],\n };\n};\nfunction makeOpenCircleIconStyle(color) {\n return {\n color: color,\n borderColor: color,\n };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n return {\n selectors: {\n ':before': {\n border: borderSize + \" solid \" + color,\n },\n },\n };\n}\nfunction makeSizeStyle(size) {\n return {\n height: size,\n width: size,\n };\n}\nfunction backgroundColor(color) {\n return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n * its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n PersonaInitialsColor.lightBlue,\n PersonaInitialsColor.blue,\n PersonaInitialsColor.darkBlue,\n PersonaInitialsColor.teal,\n PersonaInitialsColor.green,\n PersonaInitialsColor.darkGreen,\n PersonaInitialsColor.lightPink,\n PersonaInitialsColor.pink,\n PersonaInitialsColor.magenta,\n PersonaInitialsColor.purple,\n PersonaInitialsColor.orange,\n PersonaInitialsColor.lightRed,\n PersonaInitialsColor.darkRed,\n PersonaInitialsColor.violet,\n PersonaInitialsColor.gold,\n PersonaInitialsColor.burgundy,\n PersonaInitialsColor.warmGray,\n PersonaInitialsColor.cyan,\n PersonaInitialsColor.rust,\n PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n var color = PersonaInitialsColor.blue;\n if (!displayName) {\n return color;\n }\n var hashCode = 0;\n for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n var ch = displayName.charCodeAt(iLen);\n var shift = iLen % 8;\n // eslint-disable-next-line no-bitwise\n hashCode ^= (ch << shift) + (ch >> (8 - shift));\n }\n color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n switch (personaInitialsColor) {\n case PersonaInitialsColor.lightBlue:\n return '#4F6BED';\n case PersonaInitialsColor.blue:\n return '#0078D4';\n case PersonaInitialsColor.darkBlue:\n return '#004E8C';\n case PersonaInitialsColor.teal:\n return '#038387';\n case PersonaInitialsColor.lightGreen:\n case PersonaInitialsColor.green:\n return '#498205';\n case PersonaInitialsColor.darkGreen:\n return '#0B6A0B';\n case PersonaInitialsColor.lightPink:\n return '#C239B3';\n case PersonaInitialsColor.pink:\n return '#E3008C';\n case PersonaInitialsColor.magenta:\n return '#881798';\n case PersonaInitialsColor.purple:\n return '#5C2E91';\n case PersonaInitialsColor.orange:\n return '#CA5010';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.red:\n return '#EE1111';\n case PersonaInitialsColor.lightRed:\n return '#D13438';\n case PersonaInitialsColor.darkRed:\n return '#A4262C';\n case PersonaInitialsColor.transparent:\n return 'transparent';\n case PersonaInitialsColor.violet:\n return '#8764B8';\n case PersonaInitialsColor.gold:\n return '#986F0B';\n case PersonaInitialsColor.burgundy:\n return '#750B1C';\n case PersonaInitialsColor.warmGray:\n return '#7A7574';\n case PersonaInitialsColor.cyan:\n return '#005B70';\n case PersonaInitialsColor.rust:\n return '#8E562E';\n case PersonaInitialsColor.coolGray:\n return '#69797E';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.black:\n return '#1D1D1D';\n case PersonaInitialsColor.gray:\n return '#393939';\n }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n // eslint-disable-next-line deprecation/deprecation\n var primaryText = props.primaryText, text = props.text;\n var initialsColor = props.initialsColor;\n var initialsColorCode;\n if (typeof initialsColor === 'string') {\n initialsColorCode = initialsColor;\n }\n else {\n initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n }\n return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, getPropsWithDefaults, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nimport { useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction({\n // There can be many PersonaCoin rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n return mergeStyles(className, !showUnknownPersonaCoin && {\n backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n color: initialsTextColor,\n });\n});\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'PersonaCoin',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\nfunction useImageLoadState(_a) {\n var onPhotoLoadingStateChange = _a.onPhotoLoadingStateChange, imageUrl = _a.imageUrl;\n var _b = React.useState(ImageLoadState.notLoaded), imageLoadState = _b[0], setImageLoadstate = _b[1];\n React.useEffect(function () {\n setImageLoadstate(ImageLoadState.notLoaded);\n }, [imageUrl]);\n var onLoadingStateChange = function (loadState) {\n setImageLoadstate(loadState);\n onPhotoLoadingStateChange === null || onPhotoLoadingStateChange === void 0 ? void 0 : onPhotoLoadingStateChange(loadState);\n };\n return [imageLoadState, onLoadingStateChange];\n}\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaCoinBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var _a = useImageLoadState(props), imageLoadState = _a[0], onLoadingStateChange = _a[1];\n var renderCoin = getCoinRenderer(onLoadingStateChange);\n var className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.onRenderCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = _b === void 0 ? renderCoin : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onRenderPersonaCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, _d = props.onRenderInitials, onRenderInitials = _d === void 0 ? renderPersonaCoinInitials : _d, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = props.primaryText, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, text = props.text, theme = props.theme, size = props.size;\n var divProps = getNativeProps(props, divProperties);\n var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n var hideImage = showUnknownPersonaCoin;\n var personaPresenceProps = {\n coinSize: coinSize,\n isOutOfOffice: isOutOfOffice,\n presence: presence,\n presenceTitle: presenceTitle,\n presenceColors: presenceColors,\n size: size,\n theme: theme,\n };\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n className: coinProps && coinProps.className ? coinProps.className : className,\n size: size,\n coinSize: coinSize,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var shouldRenderInitials = Boolean(imageLoadState !== ImageLoadState.loaded &&\n ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || imageLoadState === ImageLoadState.error || hideImage));\n return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin, ref: forwardedRef }),\n // Render PersonaCoin if size is not size8. size10 and tiny need to removed after a deprecation cleanup.\n // eslint-disable-next-line deprecation/deprecation\n size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(props, renderPersonaCoinInitials))),\n !hideImage && onRenderPersonaCoin(props, renderCoin),\n React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n // Just render Contact Icon if there isn't a Presence prop.\n React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n props.children));\n});\nPersonaCoinBase.displayName = 'PersonaCoinBase';\nvar getCoinRenderer = function (onLoadingStateChange) { return function (_a) {\n var coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, _b = _a.size, size = _b === void 0 ? DEFAULT_PROPS.size : _b;\n // Render the Image component only if an image URL is provided\n if (!imageUrl) {\n return null;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: size,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var dimension = coinSize || sizeToPixels[size];\n return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: onLoadingStateChange }));\n}; };\nvar renderPersonaCoinInitials = function (_a) {\n var imageInitials = _a.imageInitials, allowPhoneInitials = _a.allowPhoneInitials, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, text = _a.text, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = _a.primaryText, theme = _a.theme;\n if (showUnknownPersonaCoin) {\n return React.createElement(Icon, { iconName: \"Help\" });\n }\n var isRTL = getRTL(theme);\n imageInitials = imageInitials || getInitials(text || primaryText || '', isRTL, allowPhoneInitials);\n return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n};\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n coin: 'ms-Persona-coin',\n imageArea: 'ms-Persona-imageArea',\n image: 'ms-Persona-image',\n initials: 'ms-Persona-initials',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, coinSize = props.coinSize;\n var palette = theme.palette, fonts = theme.fonts;\n var size = sizeBoolean(props.size);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Static colors used when displaying 'unknown persona' coin\n var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n return {\n coin: [\n classNames.coin,\n fonts.medium,\n size.isSize8 && classNames.size8,\n size.isSize10 && classNames.size10,\n size.isSize16 && classNames.size16,\n size.isSize24 && classNames.size24,\n size.isSize28 && classNames.size28,\n size.isSize32 && classNames.size32,\n size.isSize40 && classNames.size40,\n size.isSize48 && classNames.size48,\n size.isSize56 && classNames.size56,\n size.isSize72 && classNames.size72,\n size.isSize100 && classNames.size100,\n size.isSize120 && classNames.size120,\n className,\n ],\n size10WithoutPresenceIcon: {\n fontSize: fonts.xSmall.fontSize,\n position: 'absolute',\n top: '5px',\n right: 'auto',\n left: 0,\n },\n imageArea: [\n classNames.imageArea,\n {\n position: 'relative',\n textAlign: 'center',\n flex: '0 0 auto',\n height: dimension,\n width: dimension,\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n ],\n image: [\n classNames.image,\n {\n marginRight: '10px',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 0,\n borderRadius: '50%',\n perspective: '1px',\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n dimension > 10 && {\n height: dimension,\n width: dimension,\n },\n ],\n initials: [\n classNames.initials,\n {\n borderRadius: '50%',\n color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n fontSize: fonts.large.fontSize,\n fontWeight: FontWeights.semibold,\n // copying the logic for the dimensions; defaulted to 46 for size48\n lineHeight: dimension === 48 ? 46 : dimension,\n height: dimension,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n _a.i = {\n fontWeight: FontWeights.semibold,\n },\n _a),\n },\n props.showUnknownPersonaCoin && {\n backgroundColor: unknownPersonaBackgroundColor,\n },\n dimension < 32 && {\n fontSize: fonts.xSmall.fontSize,\n },\n dimension >= 32 &&\n dimension < 40 && {\n fontSize: fonts.medium.fontSize,\n },\n dimension >= 40 &&\n dimension < 56 && {\n fontSize: fonts.mediumPlus.fontSize,\n },\n dimension >= 56 &&\n dimension < 72 && {\n fontSize: fonts.xLarge.fontSize,\n },\n dimension >= 72 &&\n dimension < 100 && {\n fontSize: fonts.xxLarge.fontSize,\n },\n dimension >= 100 && {\n fontSize: fonts.superLarge.fontSize,\n },\n ],\n };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps, getPropsWithDefaults } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from './Persona.types';\nimport { useWarnings, useMergedRefs } from '@fluentui/react-hooks';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n showOverflowTooltip: true,\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Persona',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n /**\n * Deprecation helper for getting text.\n */\n var getText = function () {\n // eslint-disable-next-line deprecation/deprecation\n return props.text || props.primaryText || '';\n };\n /**\n * Renders various types of Text (primaryText, secondaryText, etc)\n * based on the classNames passed\n * @param elementClassNames - element className\n * @param renderFunction - render function\n * @param defaultRenderFunction - default render function\n */\n var renderElement = function (elementClassNames, renderFunction, defaultRenderFunction) {\n var content = renderFunction && renderFunction(props, defaultRenderFunction);\n return content ? (React.createElement(\"div\", { dir: \"auto\", className: elementClassNames }, content)) : undefined;\n };\n /**\n * using closure to wrap the default render behavior\n * to make it independent of the type of text passed\n * @param text - text to render\n */\n var onRenderText = function (text, tooltip) {\n if (tooltip === void 0) { tooltip = true; }\n // return default render behavior for valid text or undefined\n return text\n ? tooltip\n ? function () {\n // default onRender behavior\n return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n }\n : function () { return React.createElement(React.Fragment, null, text); }\n : undefined;\n };\n var onInternalRenderPersonaCoin = function (providedCoinProps) {\n return React.createElement(PersonaCoin, __assign({}, providedCoinProps));\n };\n // wrapping default render behavior based on various props properties\n var onInternalRenderPrimaryText = onRenderText(getText(), props.showOverflowTooltip);\n var onInternalRenderSecondaryText = onRenderText(props.secondaryText, props.showOverflowTooltip);\n var onInternalRenderTertiaryText = onRenderText(props.tertiaryText, props.showOverflowTooltip);\n var onInternalRenderOptionalText = onRenderText(props.optionalText, props.showOverflowTooltip);\n var hidePersonaDetails = props.hidePersonaDetails, _a = props.onRenderOptionalText, onRenderOptionalText = _a === void 0 ? onInternalRenderOptionalText : _a, _b = props.onRenderPrimaryText, onRenderPrimaryText = _b === void 0 ? onInternalRenderPrimaryText : _b, _c = props.onRenderSecondaryText, onRenderSecondaryText = _c === void 0 ? onInternalRenderSecondaryText : _c, _d = props.onRenderTertiaryText, onRenderTertiaryText = _d === void 0 ? onInternalRenderTertiaryText : _d, _e = props.onRenderPersonaCoin, onRenderPersonaCoin = _e === void 0 ? onInternalRenderPersonaCoin : _e;\n var size = props.size;\n // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n var allowPhoneInitials = props.allowPhoneInitials, className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageAlt = props.imageAlt, imageInitials = props.imageInitials, imageShouldFadeIn = props.imageShouldFadeIn, imageShouldStartVisible = props.imageShouldStartVisible, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, onPhotoLoadingStateChange = props.onPhotoLoadingStateChange, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = props.onRenderCoin, onRenderInitials = props.onRenderInitials, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials, showUnknownPersonaCoin: showUnknownPersonaCoin, coinSize: coinSize, imageAlt: imageAlt, imageInitials: imageInitials, imageShouldFadeIn: imageShouldFadeIn, imageShouldStartVisible: imageShouldStartVisible, imageUrl: imageUrl, initialsColor: initialsColor, initialsTextColor: initialsTextColor, onPhotoLoadingStateChange: onPhotoLoadingStateChange, onRenderCoin: onRenderCoin, onRenderInitials: onRenderInitials, presence: presence, presenceTitle: presenceTitle, showInitialsUntilImageLoads: showInitialsUntilImageLoads, size: size, text: getText(), isOutOfOffice: isOutOfOffice, presenceColors: presenceColors }, coinProps);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showSecondaryText: showSecondaryText,\n presence: presence,\n size: size,\n });\n var divProps = getNativeProps(props, divProperties);\n var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n renderElement(classNames.primaryText, onRenderPrimaryText, onInternalRenderPrimaryText),\n renderElement(classNames.secondaryText, onRenderSecondaryText, onInternalRenderSecondaryText),\n renderElement(classNames.tertiaryText, onRenderTertiaryText, onInternalRenderTertiaryText),\n renderElement(classNames.optionalText, onRenderOptionalText, onInternalRenderOptionalText),\n props.children));\n return (React.createElement(\"div\", __assign({}, divProps, { ref: mergedRootRef, className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n onRenderPersonaCoin(personaCoinProps, onRenderPersonaCoin),\n /* eslint-disable deprecation/deprecation */\n (!hidePersonaDetails ||\n size === PersonaSize.size8 ||\n size === PersonaSize.size10 ||\n size === PersonaSize.tiny) &&\n personaDetails\n /* eslint-enable deprecation/deprecation */\n ));\n});\nPersonaBase.displayName = 'PersonaBase';\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n root: 'ms-Persona',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n available: 'ms-Persona--online',\n away: 'ms-Persona--away',\n blocked: 'ms-Persona--blocked',\n busy: 'ms-Persona--busy',\n doNotDisturb: 'ms-Persona--donotdisturb',\n offline: 'ms-Persona--offline',\n details: 'ms-Persona-details',\n primaryText: 'ms-Persona-primaryText',\n secondaryText: 'ms-Persona-secondaryText',\n tertiaryText: 'ms-Persona-tertiaryText',\n optionalText: 'ms-Persona-optionalText',\n textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n var showSecondaryTextDefaultHeight = '16px';\n var sharedTextStyles = {\n color: semanticColors.bodySubtext,\n fontWeight: FontWeights.regular,\n fontSize: fonts.small.fontSize,\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n normalize,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n height: personaSize.size48,\n minWidth: personaSize.size48,\n display: 'flex',\n alignItems: 'center',\n selectors: {\n '.contextualHost': {\n display: 'none',\n },\n },\n },\n size.isSize8 && [\n classNames.size8,\n {\n height: personaSize.size8,\n minWidth: personaSize.size8,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize10 && [\n classNames.size10,\n {\n height: personaSize.size10,\n minWidth: personaSize.size10,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize16 && [\n classNames.size16,\n {\n height: personaSize.size16,\n minWidth: personaSize.size16,\n },\n ],\n size.isSize24 && [\n classNames.size24,\n {\n height: personaSize.size24,\n minWidth: personaSize.size24,\n },\n ],\n size.isSize24 &&\n showSecondaryText && {\n height: '36px',\n },\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize28 && [\n classNames.size28,\n {\n height: personaSize.size28,\n minWidth: personaSize.size28,\n },\n ],\n size.isSize28 &&\n showSecondaryText && {\n height: '32px',\n },\n size.isSize32 && [\n classNames.size32,\n {\n height: personaSize.size32,\n minWidth: personaSize.size32,\n },\n ],\n size.isSize40 && [\n classNames.size40,\n {\n height: personaSize.size40,\n minWidth: personaSize.size40,\n },\n ],\n size.isSize48 && classNames.size48,\n size.isSize56 && [\n classNames.size56,\n {\n height: personaSize.size56,\n minWidth: personaSize.size56,\n },\n ],\n size.isSize72 && [\n classNames.size72,\n {\n height: personaSize.size72,\n minWidth: personaSize.size72,\n },\n ],\n size.isSize100 && [\n classNames.size100,\n {\n height: personaSize.size100,\n minWidth: personaSize.size100,\n },\n ],\n size.isSize120 && [\n classNames.size120,\n {\n height: personaSize.size120,\n minWidth: personaSize.size120,\n },\n ],\n /**\n * Modifiers: presence\n */\n presence.isAvailable && classNames.available,\n presence.isAway && classNames.away,\n presence.isBlocked && classNames.blocked,\n presence.isBusy && classNames.busy,\n presence.isDoNotDisturb && classNames.doNotDisturb,\n presence.isOffline && classNames.offline,\n className,\n ],\n details: [\n classNames.details,\n {\n padding: '0 24px 0 16px',\n minWidth: 0,\n width: '100%',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n },\n (size.isSize8 || size.isSize10) && {\n paddingLeft: 17, // increased padding because we don't render a coin at this size\n },\n (size.isSize24 || size.isSize28 || size.isSize32) && {\n padding: '0 8px',\n },\n (size.isSize40 || size.isSize48) && {\n padding: '0 12px',\n },\n ],\n primaryText: [\n classNames.primaryText,\n noWrap,\n {\n color: semanticColors.bodyText,\n fontWeight: FontWeights.regular,\n fontSize: fonts.medium.fontSize,\n selectors: {\n ':hover': {\n color: semanticColors.inputTextHovered,\n },\n },\n },\n showSecondaryText && {\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n (size.isSize8 || size.isSize10) && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaSize.size8,\n },\n size.isSize16 && {\n lineHeight: personaSize.size28,\n },\n (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.xLarge.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 22,\n },\n ],\n secondaryText: [\n classNames.secondaryText,\n noWrap,\n sharedTextStyles,\n (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n display: 'none',\n },\n showSecondaryText && {\n display: 'block',\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n size.isSize24 &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 18,\n },\n ],\n tertiaryText: [\n classNames.tertiaryText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize72 || size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n optionalText: [\n classNames.optionalText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n textContent: [classNames.textContent, noWrap],\n };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle, } from '../../../../Styling';\nimport { ButtonGlobalClassNames } from '../../../Button/BaseButton.classNames';\nvar GlobalClassNames = {\n root: 'ms-PickerPersona-container',\n itemContent: 'ms-PickerItem-content',\n removeButton: 'ms-PickerItem-removeButton',\n isSelected: 'is-selected',\n isInvalid: 'is-invalid',\n};\nvar REMOVE_BUTTON_SIZE = 24;\nvar PICKER_PERSONA_RADIUS = 15;\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var className = props.className, theme = props.theme, selected = props.selected, invalid = props.invalid, disabled = props.disabled;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var personaPrimaryTextStyles = [\n selected &&\n !invalid &&\n !disabled && {\n color: palette.white,\n selectors: (_a = {\n ':hover': {\n color: palette.white,\n }\n },\n _a[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _a),\n },\n ((invalid && !selected) || (invalid && selected && disabled)) && {\n color: palette.redDark,\n borderBottom: \"2px dotted \" + palette.redDark,\n selectors: (_b = {},\n _b[\".\" + classNames.root + \":hover &\"] = {\n // override Persona root:hover selector\n color: palette.redDark,\n },\n _b),\n },\n invalid &&\n selected &&\n !disabled && {\n color: palette.white,\n borderBottom: \"2px dotted \" + palette.white,\n },\n disabled && {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n },\n ];\n var personaSecondaryTextStyles = [\n selected &&\n !invalid &&\n !disabled && {\n color: palette.white,\n selectors: (_d = {\n ':hover': {\n color: palette.white,\n }\n },\n _d[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _d),\n },\n ];\n var personaCoinInitialsStyles = [\n invalid && {\n fontSize: fonts.xLarge.fontSize,\n },\n ];\n return {\n root: [\n classNames.root,\n getFocusStyle(theme, { inset: -2 }),\n {\n borderRadius: PICKER_PERSONA_RADIUS,\n display: 'inline-flex',\n alignItems: 'center',\n background: palette.neutralLighter,\n margin: '1px 2px',\n cursor: 'default',\n userSelect: 'none',\n maxWidth: 300,\n verticalAlign: 'middle',\n minWidth: 0,\n selectors: (_e = {\n ':hover': {\n background: !selected && !disabled ? palette.neutralLight : '',\n }\n },\n _e[HighContrastSelector] = [{ border: '1px solid WindowText' }, disabled && { borderColor: 'GrayText' }],\n _e),\n },\n selected &&\n !disabled && [\n classNames.isSelected,\n {\n background: palette.themePrimary,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'HighLight', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n ],\n invalid && [classNames.isInvalid],\n invalid &&\n selected &&\n !disabled && {\n background: palette.redDark,\n },\n className,\n ],\n itemContent: [\n classNames.itemContent,\n {\n flex: '0 1 auto',\n minWidth: 0,\n // CSS below is needed for IE 11 to properly truncate long persona names in the picker\n // and to clip the presence indicator (in all browsers)\n maxWidth: '100%',\n overflow: 'hidden',\n },\n ],\n removeButton: [\n classNames.removeButton,\n {\n borderRadius: PICKER_PERSONA_RADIUS,\n color: palette.neutralPrimary,\n flex: '0 0 auto',\n width: REMOVE_BUTTON_SIZE,\n height: REMOVE_BUTTON_SIZE,\n selectors: {\n ':hover': {\n background: palette.neutralTertiaryAlt,\n color: palette.neutralDark,\n },\n },\n },\n selected && [\n getFocusStyle(theme, {\n inset: 2,\n borderColor: 'transparent',\n highContrastStyle: { inset: 2, left: 1, top: 1, bottom: 1, right: 1, outlineColor: 'ButtonText' },\n outlineColor: palette.white,\n borderRadius: PICKER_PERSONA_RADIUS,\n }),\n {\n color: palette.white,\n selectors: (_g = {\n ':hover': {\n color: palette.white,\n background: palette.themeDark,\n },\n ':active': {\n color: palette.white,\n background: palette.themeDarker,\n }\n },\n _g[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _g),\n },\n invalid && {\n selectors: {\n ':hover': {\n background: palette.red,\n },\n ':active': {\n background: palette.redDark,\n },\n },\n },\n ],\n disabled && {\n selectors: (_h = {},\n _h[\".\" + ButtonGlobalClassNames.msButtonIcon] = {\n color: semanticColors.buttonText,\n },\n _h),\n },\n ],\n subComponentStyles: {\n persona: {\n primaryText: personaPrimaryTextStyles,\n secondaryText: personaSecondaryTextStyles,\n },\n personaCoin: {\n initials: personaCoinInitialsStyles,\n },\n },\n };\n}\n//# sourceMappingURL=PeoplePickerItem.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getId, classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { IconButton } from '../../../../Button';\nimport { ValidationState } from '../../BasePicker.types';\nimport { getStyles } from './PeoplePickerItem.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemBase = function (props) {\n var item = props.item, onRemoveItem = props.onRemoveItem, index = props.index, selected = props.selected, removeButtonAriaLabel = props.removeButtonAriaLabel, styles = props.styles, theme = props.theme, className = props.className, disabled = props.disabled, removeButtonIconProps = props.removeButtonIconProps;\n var buttonRef = React.createRef();\n var handleClick = function () {\n var _a;\n (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n };\n var itemId = getId();\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n selected: selected,\n disabled: disabled,\n invalid: item.ValidationState === ValidationState.warning,\n });\n var personaStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.persona\n : undefined;\n var personaCoinStyles = classNames.subComponentStyles\n ? classNames.subComponentStyles.personaCoin\n : undefined;\n return (React.createElement(\"div\", { \"data-selection-index\": index, className: classNames.root, role: 'listitem', key: index, onClick: handleClick },\n React.createElement(\"div\", { className: classNames.itemContent, id: 'selectedItemPersona-' + itemId },\n React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, coinProps: { styles: personaCoinStyles } }, item))),\n React.createElement(IconButton, { componentRef: buttonRef, id: itemId, onClick: onRemoveItem, disabled: disabled, iconProps: removeButtonIconProps !== null && removeButtonIconProps !== void 0 ? removeButtonIconProps : { iconName: 'Cancel' }, styles: { icon: { fontSize: '12px' } }, className: classNames.removeButton, ariaLabel: removeButtonAriaLabel, \"aria-labelledby\": itemId + \" selectedItemPersona-\" + itemId })));\n};\nexport var PeoplePickerItem = styled(PeoplePickerItemBase, getStyles, undefined, { scope: 'PeoplePickerItem' });\n//# sourceMappingURL=PeoplePickerItem.js.map","import { getGlobalClassNames, HighContrastSelector } from '../../../../Styling';\nimport { SuggestionsItemGlobalClassNames as suggested } from '../../Suggestions/SuggestionsItem.styles';\nvar GlobalClassNames = {\n root: 'ms-PeoplePicker-personaContent',\n personaWrapper: 'ms-PeoplePicker-Persona',\n};\nexport function getStyles(props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var textSelectorsStyles = {\n selectors: (_a = {},\n _a[\".\" + suggested.isSuggested + \" &\"] = {\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _b),\n },\n _a[\".\" + classNames.root + \":hover &\"] = {\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'HighlightText',\n },\n _c),\n },\n _a),\n };\n return {\n root: [\n classNames.root,\n {\n width: '100%',\n padding: '4px 12px',\n },\n className,\n ],\n personaWrapper: [\n classNames.personaWrapper,\n {\n width: 180,\n },\n ],\n subComponentStyles: {\n persona: {\n primaryText: textSelectorsStyles,\n secondaryText: textSelectorsStyles,\n },\n },\n };\n}\n//# sourceMappingURL=PeoplePickerItemSuggestion.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, styled } from '../../../../Utilities';\nimport { Persona, PersonaSize } from '../../../../Persona';\nimport { getStyles } from './PeoplePickerItemSuggestion.styles';\nvar getClassNames = classNamesFunction();\nexport var PeoplePickerItemSuggestionBase = function (props) {\n var personaProps = props.personaProps, suggestionsProps = props.suggestionsProps, compact = props.compact, styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: (suggestionsProps && suggestionsProps.suggestionsItemClassName) || className,\n });\n var personaStyles = classNames.subComponentStyles && classNames.subComponentStyles.persona\n ? classNames.subComponentStyles.persona\n : undefined;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(Persona, __assign({ size: PersonaSize.size24, styles: personaStyles, className: classNames.personaWrapper, showSecondaryText: !compact, showOverflowTooltip: false }, personaProps))));\n};\nexport var PeoplePickerItemSuggestion = styled(PeoplePickerItemSuggestionBase, getStyles, undefined, { scope: 'PeoplePickerItemSuggestion' });\n//# sourceMappingURL=PeoplePickerItemSuggestion.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, getInitials, styled } from '../../../Utilities';\nimport { BasePicker, BasePickerListBelow } from '../BasePicker';\nimport { ValidationState } from '../BasePicker.types';\nimport { PeoplePickerItem } from './PeoplePickerItems/PeoplePickerItem';\nimport { PeoplePickerItemSuggestion } from './PeoplePickerItems/PeoplePickerItemSuggestion';\nimport { getStyles } from '../BasePicker.styles';\n/**\n * {@docCategory PeoplePicker}\n */\nvar BasePeoplePicker = /** @class */ (function (_super) {\n __extends(BasePeoplePicker, _super);\n function BasePeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BasePeoplePicker;\n}(BasePicker));\nexport { BasePeoplePicker };\n/**\n * {@docCategory PeoplePicker}\n */\nvar MemberListPeoplePicker = /** @class */ (function (_super) {\n __extends(MemberListPeoplePicker, _super);\n function MemberListPeoplePicker() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return MemberListPeoplePicker;\n}(BasePickerListBelow));\nexport { MemberListPeoplePicker };\n/**\n * Standard People Picker.\n * {@docCategory PeoplePicker}\n */\nvar NormalPeoplePickerBase = /** @class */ (function (_super) {\n __extends(NormalPeoplePickerBase, _super);\n function NormalPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for NormalPeoplePicker. */\n NormalPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n createGenericItem: createGenericItem,\n };\n return NormalPeoplePickerBase;\n}(BasePeoplePicker));\nexport { NormalPeoplePickerBase };\n/**\n * Compact layout. It uses personas without secondary text when displaying search results.\n * {@docCategory PeoplePicker}\n */\nvar CompactPeoplePickerBase = /** @class */ (function (_super) {\n __extends(CompactPeoplePickerBase, _super);\n function CompactPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for CompactPeoplePicker. */\n CompactPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps, compact: true })); },\n createGenericItem: createGenericItem,\n };\n return CompactPeoplePickerBase;\n}(BasePeoplePicker));\nexport { CompactPeoplePickerBase };\n/**\n * MemberList layout. The selected people show up below the search box.\n * {@docCategory PeoplePicker}\n */\nvar ListPeoplePickerBase = /** @class */ (function (_super) {\n __extends(ListPeoplePickerBase, _super);\n function ListPeoplePickerBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** Default props for ListPeoplePicker. */\n ListPeoplePickerBase.defaultProps = {\n onRenderItem: function (props) { return React.createElement(PeoplePickerItem, __assign({}, props)); },\n onRenderSuggestionsItem: function (personaProps, suggestionsProps) { return (React.createElement(PeoplePickerItemSuggestion, { personaProps: personaProps, suggestionsProps: suggestionsProps })); },\n createGenericItem: createGenericItem,\n };\n return ListPeoplePickerBase;\n}(MemberListPeoplePicker));\nexport { ListPeoplePickerBase };\n/**\n * {@docCategory PeoplePicker}\n */\nexport function createGenericItem(name, currentValidationState) {\n var personaToConvert = {\n key: name,\n primaryText: name,\n imageInitials: '!',\n ValidationState: currentValidationState,\n };\n if (currentValidationState !== ValidationState.warning) {\n personaToConvert.imageInitials = getInitials(name, getRTL());\n }\n return personaToConvert;\n}\nexport var NormalPeoplePicker = styled(NormalPeoplePickerBase, getStyles, undefined, {\n scope: 'NormalPeoplePicker',\n});\nexport var CompactPeoplePicker = styled(CompactPeoplePickerBase, getStyles, undefined, {\n scope: 'CompactPeoplePicker',\n});\nexport var ListPeoplePicker = styled(ListPeoplePickerBase, getStyles, undefined, {\n scope: 'ListPeoplePickerBase',\n});\n//# sourceMappingURL=PeoplePicker.js.map","import { __assign } from \"tslib\";\nimport { getGlobalClassNames, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nexport var SuggestionsItemGlobalClassNames = {\n root: 'ms-Suggestions-item',\n itemButton: 'ms-Suggestions-itemButton',\n closeButton: 'ms-Suggestions-closeButton',\n isSuggested: 'is-suggested',\n};\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f;\n var className = props.className, theme = props.theme, suggested = props.suggested;\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(SuggestionsItemGlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'flex',\n alignItems: 'stretch',\n boxSizing: 'border-box',\n width: '100%',\n position: 'relative',\n selectors: {\n '&:hover': {\n background: semanticColors.menuItemBackgroundHovered,\n },\n '&:hover .ms-Suggestions-closeButton': {\n display: 'block',\n },\n },\n },\n suggested && {\n selectors: (_a = {},\n _a[\".\" + IsFocusVisibleClassName + \" &\"] = {\n selectors: (_b = {},\n _b[\".\" + classNames.closeButton] = {\n display: 'block',\n background: semanticColors.menuItemBackgroundPressed,\n },\n _b),\n },\n _a[':after'] = {\n pointerEvents: 'none',\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n border: \"1px solid \" + theme.semanticColors.focusBorder,\n },\n _a),\n },\n className,\n ],\n itemButton: [\n classNames.itemButton,\n {\n width: '100%',\n padding: 0,\n border: 'none',\n height: '100%',\n // Force the item button to be collapsible so it can always shrink\n // to accommodate the close button as a peer in its flex container.\n minWidth: 0,\n // Require for IE11 to truncate the component.\n overflow: 'hidden',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'WindowText',\n selectors: {\n ':hover': __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n },\n },\n _c[':hover'] = {\n color: semanticColors.menuItemTextHovered,\n },\n _c),\n },\n suggested && [\n classNames.isSuggested,\n {\n background: semanticColors.menuItemBackgroundPressed,\n selectors: (_d = {\n ':hover': {\n background: semanticColors.menuDivider,\n }\n },\n _d[HighContrastSelector] = __assign({ background: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n ],\n ],\n closeButton: [\n classNames.closeButton,\n {\n display: 'none',\n color: palette.neutralSecondary,\n padding: '0 4px',\n height: 'auto',\n width: 32,\n selectors: (_e = {\n ':hover, :active': {\n background: palette.neutralTertiaryAlt,\n color: palette.neutralDark,\n }\n },\n _e[HighContrastSelector] = {\n color: 'WindowText',\n },\n _e),\n },\n suggested && (_f = {},\n _f[\".\" + IsFocusVisibleClassName + \" &\"] = {\n selectors: {\n ':hover, :active': {\n background: palette.neutralTertiary,\n },\n },\n },\n _f.selectors = {\n ':hover, :active': {\n background: palette.neutralTertiary,\n color: palette.neutralPrimary,\n },\n },\n _f),\n ],\n };\n}\n//# sourceMappingURL=SuggestionsItem.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n /** Width \\<= 479px */\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n /** Width \\> 479px and \\<= 639px */\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n /** Width \\> 639px and \\<= 1023px */\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n /** Width \\> 1023px and \\<= 1365px */\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n /** Width \\> 1365px and \\<= 1919px */\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n /** Width \\> 1919px */\n ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n var currentWindow = getWindow(element);\n if (currentWindow) {\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n try {\n return currentWindow.document.documentElement.clientWidth;\n }\n catch (e) {\n return currentWindow.innerWidth;\n }\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n var hoisted = [];\n var _loop_1 = function (methodName) {\n if (typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n source[methodName].apply(source, args);\n };\n }\n };\n for (var methodName in source) {\n _loop_1(methodName);\n }\n return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n __extends(BaseDecorator, _super);\n function BaseDecorator(props) {\n var _this = _super.call(this, props) || this;\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n return _this;\n }\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n }\n else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n };\n return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n var onResize = React.useCallback(function () {\n var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n // Setting the same value should not cause a re-render.\n if (lastResponsiveMode !== newResponsiveMode) {\n setLastResponsiveMode(newResponsiveMode);\n }\n }, [elementRef, lastResponsiveMode]);\n var win = useWindow();\n useOnEvent(win, 'resize', onResize);\n // Call resize function initially on mount, or if the override changes from defined to undefined\n // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n React.useEffect(function () {\n if (overrideResponsiveMode === undefined) {\n onResize();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n }, [overrideResponsiveMode]);\n return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n Position[Position[\"top\"] = 0] = \"top\";\n Position[Position[\"bottom\"] = 1] = \"bottom\";\n Position[Position[\"start\"] = 2] = \"start\";\n Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n _win = window;\n}\ncatch (e) {\n /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var packages = (_win.__packages__ = _win.__packages__ || {});\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n var versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n//# sourceMappingURL=setVersion.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@fluentui/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline) {\n var stylesheet = Stylesheet.getInstance();\n var rulesArray = [];\n for (var prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n var rules = rulesArray.join('');\n var className = stylesheet.classNameFromKey(rules);\n if (className) {\n return className;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@keyframes \" + name + \"{\" + rules + \"}\", true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n return name;\n}\n//# sourceMappingURL=keyframes.js.map","import { keyframes } from '@fluentui/merge-styles';\n/* Register the keyframes */\nvar EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nvar EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nvar DURATION_1 = '0.167s';\nvar DURATION_2 = '0.267s';\nvar DURATION_3 = '0.367s';\nvar DURATION_4 = '0.467s';\nvar FADE_IN = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\nvar FADE_OUT = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\nvar SLIDE_RIGHT_IN10 = _createSlideInX(-10);\nvar SLIDE_RIGHT_IN20 = _createSlideInX(-20);\nvar SLIDE_RIGHT_IN40 = _createSlideInX(-40);\nvar SLIDE_RIGHT_IN400 = _createSlideInX(-400);\nvar SLIDE_LEFT_IN10 = _createSlideInX(10);\nvar SLIDE_LEFT_IN20 = _createSlideInX(20);\nvar SLIDE_LEFT_IN40 = _createSlideInX(40);\nvar SLIDE_LEFT_IN400 = _createSlideInX(400);\nvar SLIDE_UP_IN10 = _createSlideInY(10);\nvar SLIDE_UP_IN20 = _createSlideInY(20);\nvar SLIDE_DOWN_IN10 = _createSlideInY(-10);\nvar SLIDE_DOWN_IN20 = _createSlideInY(-20);\nvar SLIDE_RIGHT_OUT10 = _createSlideOutX(10);\nvar SLIDE_RIGHT_OUT20 = _createSlideOutX(20);\nvar SLIDE_RIGHT_OUT40 = _createSlideOutX(40);\nvar SLIDE_RIGHT_OUT400 = _createSlideOutX(400);\nvar SLIDE_LEFT_OUT10 = _createSlideOutX(-10);\nvar SLIDE_LEFT_OUT20 = _createSlideOutX(-20);\nvar SLIDE_LEFT_OUT40 = _createSlideOutX(-40);\nvar SLIDE_LEFT_OUT400 = _createSlideOutX(-400);\nvar SLIDE_UP_OUT10 = _createSlideOutY(-10);\nvar SLIDE_UP_OUT20 = _createSlideOutY(-20);\nvar SLIDE_DOWN_OUT10 = _createSlideOutY(10);\nvar SLIDE_DOWN_OUT20 = _createSlideOutY(20);\nvar SCALE_UP100 = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_DOWN98 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\nvar SCALE_DOWN100 = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_UP103 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\nvar ROTATE90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\nvar ROTATE_N90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport var AnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport var AnimationStyles = {\n slideRightIn10: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN10, DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN20, DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN40, DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(FADE_IN + \",\" + SLIDE_RIGHT_IN400, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN10, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN20, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN40, DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(FADE_IN + \",\" + SLIDE_LEFT_IN400, DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(FADE_IN + \",\" + SLIDE_UP_IN10, DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(FADE_IN + \",\" + SLIDE_UP_IN20, DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(FADE_IN + \",\" + SLIDE_DOWN_IN10, DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(FADE_IN + \",\" + SLIDE_DOWN_IN20, DURATION_3, EASING_FUNCTION_1),\n slideRightOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT40, DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(FADE_OUT + \",\" + SLIDE_RIGHT_OUT400, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT40, DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(FADE_OUT + \",\" + SLIDE_LEFT_OUT400, DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_UP_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_UP_OUT20, DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(FADE_OUT + \",\" + SLIDE_DOWN_OUT10, DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(FADE_OUT + \",\" + SLIDE_DOWN_OUT20, DURATION_3, EASING_FUNCTION_1),\n scaleUpIn100: _createAnimation(FADE_IN + \",\" + SCALE_UP100, DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(FADE_IN + \",\" + SCALE_DOWN100, DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(FADE_OUT + \",\" + SCALE_UP103, DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(FADE_OUT + \",\" + SCALE_DOWN98, DURATION_1, EASING_FUNCTION_2),\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n // expandCollapse 100/200/400, delay 100/200\n};\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n return {\n animationName: animationName,\n animationDuration: animationDuration,\n animationTimingFunction: animationTimingFunction,\n animationFillMode: 'both',\n };\n}\nfunction _createSlideInX(fromX) {\n return keyframes({\n from: { transform: \"translate3d(\" + fromX + \"px,0,0)\", pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideInY(fromY) {\n return keyframes({\n from: { transform: \"translate3d(0,\" + fromY + \"px,0)\", pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideOutX(toX) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(\" + toX + \"px,0,0)\" },\n });\n}\nfunction _createSlideOutY(toY) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(0,\" + toY + \"px,0)\" },\n });\n}\n//# sourceMappingURL=AnimationStyles.js.map","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\n/**\n * {@docCategory AnimationClassNames}\n */\nexport var AnimationClassNames = buildClassMap(AnimationStyles);\n//# sourceMappingURL=AnimationClassNames.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n LocalizedFontNames.Thai = 'Leelawadee UI Web';\n LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n LocalizedFontNames.Selawik = 'Selawik Web';\n LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n LocalizedFontFamilies.Arabic = \"'\" + LocalizedFontNames.Arabic + \"'\";\n LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n LocalizedFontFamilies.Cyrillic = \"'\" + LocalizedFontNames.Cyrillic + \"'\";\n LocalizedFontFamilies.EastEuropean = \"'\" + LocalizedFontNames.EastEuropean + \"'\";\n LocalizedFontFamilies.Greek = \"'\" + LocalizedFontNames.Greek + \"'\";\n LocalizedFontFamilies.Hebrew = \"'\" + LocalizedFontNames.Hebrew + \"'\";\n LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n LocalizedFontFamilies.Selawik = \"'\" + LocalizedFontNames.Selawik + \"'\";\n LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n LocalizedFontFamilies.Vietnamese = \"'\" + LocalizedFontNames.Vietnamese + \"'\";\n LocalizedFontFamilies.WestEuropean = \"'\" + LocalizedFontNames.WestEuropean + \"'\";\n LocalizedFontFamilies.Armenian = \"'\" + LocalizedFontNames.Armenian + \"'\";\n LocalizedFontFamilies.Georgian = \"'\" + LocalizedFontNames.Georgian + \"'\";\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n FontSizes.size10 = '10px';\n FontSizes.size12 = '12px';\n FontSizes.size14 = '14px';\n FontSizes.size16 = '16px';\n FontSizes.size18 = '18px';\n FontSizes.size20 = '20px';\n FontSizes.size24 = '24px';\n FontSizes.size28 = '28px';\n FontSizes.size32 = '32px';\n FontSizes.size42 = '42px';\n FontSizes.size68 = '68px';\n FontSizes.mini = '10px';\n FontSizes.xSmall = '10px';\n FontSizes.small = '12px';\n FontSizes.smallPlus = '12px';\n FontSizes.medium = '14px';\n FontSizes.mediumPlus = '16px';\n FontSizes.icon = '16px';\n FontSizes.large = '18px';\n FontSizes.xLarge = '20px';\n FontSizes.xLargePlus = '24px';\n FontSizes.xxLarge = '28px';\n FontSizes.xxLargePlus = '32px';\n FontSizes.superLarge = '42px';\n FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n FontWeights.light = 100;\n FontWeights.semilight = 300;\n FontWeights.regular = 400;\n FontWeights.semibold = 600;\n FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n IconFontSizes.xSmall = '10px';\n IconFontSizes.small = '12px';\n IconFontSizes.medium = '16px';\n IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","import { mergeStyles } from '../MergeStyles';\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles) {\n var classes = {};\n var _loop_1 = function (styleName) {\n if (styles.hasOwnProperty(styleName)) {\n var className_1;\n Object.defineProperty(classes, styleName, {\n get: function () {\n if (className_1 === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className_1 = mergeStyles(styles[styleName]).toString();\n }\n return className_1;\n },\n enumerable: true,\n configurable: true,\n });\n }\n };\n for (var styleName in styles) {\n _loop_1(styleName);\n }\n return classes;\n}\n//# sourceMappingURL=buildClassMap.js.map","export var HighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var HighContrastSelectorWhite = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: black-on-white), screen and (forced-colors: active) and (prefers-color-scheme: light)';\nexport var HighContrastSelectorBlack = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: white-on-black), screen and (forced-colors: active) and (prefers-color-scheme: dark)';\n/**\n * @deprecated Use `HighContrastSelector`\n */\nexport var EdgeChromiumHighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var ScreenWidthMinSmall = 320;\nexport var ScreenWidthMinMedium = 480;\nexport var ScreenWidthMinLarge = 640;\nexport var ScreenWidthMinXLarge = 1024;\nexport var ScreenWidthMinXXLarge = 1366;\nexport var ScreenWidthMinXXXLarge = 1920;\nexport var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\nexport var ScreenWidthMinUhfMobile = 768;\nexport function getScreenSelector(min, max) {\n var minSelector = typeof min === 'number' ? \" and (min-width: \" + min + \"px)\" : '';\n var maxSelector = typeof max === 'number' ? \" and (max-width: \" + max + \"px)\" : '';\n return \"@media only screen\" + minSelector + maxSelector;\n}\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle() {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getEdgeChromiumNoHighContrastAdjustSelector() {\n var _a;\n return _a = {},\n // eslint-disable-next-line deprecation/deprecation\n _a[EdgeChromiumHighContrastSelector] = {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n },\n _a;\n}\n//# sourceMappingURL=CommonStyles.js.map","export var ZIndexes;\n(function (ZIndexes) {\n ZIndexes.Nav = 1;\n /**\n * @deprecated Do not use\n */\n ZIndexes.ScrollablePane = 1;\n ZIndexes.FocusStyle = 1;\n ZIndexes.Coachmark = 1000;\n ZIndexes.Layer = 1000000;\n ZIndexes.KeytipLayer = 1000001;\n})(ZIndexes || (ZIndexes = {}));\n//# sourceMappingURL=zIndexes.js.map","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nexport function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly, borderRadius) {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position: position,\n highContrastStyle: highContrastStyle,\n borderColor: borderColor,\n outlineColor: outlineColor,\n isFocusedOnly: isFocusedOnly,\n borderRadius: borderRadius,\n });\n }\n else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\nfunction _getFocusStyleInternal(theme, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var borderRadius = options.borderRadius, _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h, pointerEvents = options.pointerEvents;\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position: position,\n selectors: (_a = {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n }\n },\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n _a[\".\" + IsFocusVisibleClassName + \" &\" + (isFocusedOnly ? ':focus' : '') + \":after\"] = {\n content: '\"\"',\n position: 'absolute',\n pointerEvents: pointerEvents,\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: width + \"px solid \" + borderColor,\n outline: width + \"px solid \" + outlineColor,\n zIndex: ZIndexes.FocusStyle,\n borderRadius: borderRadius,\n selectors: (_b = {},\n _b[HighContrastSelector] = highContrastStyle,\n _b),\n },\n _a),\n };\n}\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear() {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme, inset, width, color) {\n var _a;\n if (inset === void 0) { inset = 0; }\n if (width === void 0) { width = 1; }\n return {\n selectors: (_a = {},\n _a[\":global(\" + IsFocusVisibleClassName + \") &:focus\"] = {\n outline: width + \" solid \" + (color || theme.palette.neutralSecondary),\n outlineOffset: -inset + \"px\",\n },\n _a),\n };\n}\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport var getInputFocusStyle = function (borderColor, borderRadius, borderType, borderPosition) {\n var _a, _b, _c;\n if (borderType === void 0) { borderType = 'border'; }\n if (borderPosition === void 0) { borderPosition = -1; }\n var isBorderBottom = borderType === 'borderBottom';\n return {\n borderColor: borderColor,\n selectors: {\n ':after': (_a = {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition\n },\n _a[borderType] = \"2px solid \" + borderColor,\n _a.borderRadius = borderRadius,\n _a.width = borderType === 'borderBottom' ? '100%' : undefined,\n _a.selectors = (_b = {},\n _b[HighContrastSelector] = (_c = {},\n _c[borderType === 'border' ? 'borderColor' : 'borderBottomColor'] = 'Highlight',\n _c),\n _b),\n _a),\n },\n };\n};\n//# sourceMappingURL=getFocusStyle.js.map","export var hiddenContentStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=hiddenContentStyle.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nimport { memoizeFunction } from '@fluentui/utilities';\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nvar _getGlobalClassNames = memoizeFunction(function (classNames, disableGlobalClassNames) {\n var styleSheet = Stylesheet.getInstance();\n if (disableGlobalClassNames) {\n // disable global classnames\n return Object.keys(classNames).reduce(function (acc, className) {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {});\n }\n // use global classnames\n return classNames;\n});\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {\n return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);\n}\n//# sourceMappingURL=getGlobalClassNames.js.map","export var Depths;\n(function (Depths) {\n Depths.depth0 = '0 0 0 0 transparent';\n Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\" + LocalizedFontNames.WestEuropean + \"'\";\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n return fontFamily + \", \" + FontFamilyFallbacks;\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n for (var lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return LanguageToFontMap[lang];\n }\n }\n return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\nexport function createFontStyles(localeCode) {\n var localizedFont = _getLocalizedFontFamily(localeCode);\n var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n var fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://res-1.cdn.office.net/files/fabric-cdn-prod_20221209.001/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage());\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n fontFamily = \"'\" + fontFamily + \"'\";\n var localFontSrc = localFontName !== undefined ? \"local('\" + localFontName + \"'),\" : '';\n fontFace({\n fontFamily: fontFamily,\n src: localFontSrc + (\"url('\" + url + \".woff2') format('woff2'),\") + (\"url('\" + url + \".woff') format('woff')\"),\n fontWeight: fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n var urlBase = baseUrl + \"/\" + cdnFolder + \"/\" + cdnFontName;\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n if (baseUrl) {\n var fontUrl = baseUrl + \"/fonts\";\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-semilight\", FontWeights.light);\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', fontUrl + \"/leelawadeeui-thai/leelawadeeui-bold\", FontWeights.semibold);\n }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n return (_b = fabricConfig === null || fabricConfig === void 0 ? void 0 : fabricConfig.fontBaseUrl) !== null && _b !== void 0 ? _b : DefaultBaseUrl;\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var result = {};\n // map palette\n var _a = p || {}, white = _a.white, black = _a.black, themePrimary = _a.themePrimary, themeDark = _a.themeDark, themeDarker = _a.themeDarker, themeDarkAlt = _a.themeDarkAlt, themeLighter = _a.themeLighter, neutralLight = _a.neutralLight, neutralLighter = _a.neutralLighter, neutralDark = _a.neutralDark, neutralQuaternary = _a.neutralQuaternary, neutralQuaternaryAlt = _a.neutralQuaternaryAlt, neutralPrimary = _a.neutralPrimary, neutralSecondary = _a.neutralSecondary, neutralSecondaryAlt = _a.neutralSecondaryAlt, neutralTertiary = _a.neutralTertiary, neutralTertiaryAlt = _a.neutralTertiaryAlt, neutralLighterAlt = _a.neutralLighterAlt, accent = _a.accent;\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = (s === null || s === void 0 ? void 0 : s.variantBorderHovered) || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n // map effects\n if (e === null || e === void 0 ? void 0 : e.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && (e === null || e === void 0 ? void 0 : e.elevation8)) {\n result.cardShadowHovered = e.elevation8;\n }\n else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n result = __assign(__assign({}, result), s);\n return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n // Add @deprecated tag as comment if enabled\n var dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","export var DefaultSpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n if (theme === void 0) { theme = {}; }\n if (depComments === void 0) { depComments = false; }\n var isInverted = !!theme.isInverted;\n var baseTheme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted: isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n var _a, _b, _c;\n if (partialTheme === void 0) { partialTheme = {}; }\n var mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n });\n if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n if (partialTheme.defaultFontStyle) {\n for (var _i = 0, _d = Object.keys(mergedTheme.fonts); _i < _d.length; _i++) {\n var fontStyle = _d[_i];\n mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_c = partialTheme === null || partialTheme === void 0 ? void 0 : partialTheme.fonts) === null || _c === void 0 ? void 0 : _c[fontStyle]);\n }\n }\n return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","import { __assign } from \"tslib\";\nimport { Customizations, getWindow } from '@fluentui/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme';\nexport { createTheme } from '@fluentui/theme';\nvar _theme = createTheme({});\nvar _onThemeChangeCallbacks = [];\nexport var ThemeSettingName = 'theme';\nexport function initializeThemeInCustomizations() {\n var _a;\n var _b, _c;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var win = getWindow();\n if ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n }\n else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if ((_c = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _c === void 0 ? void 0 : _c.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n // Set the default theme.\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n }\n}\ninitializeThemeInCustomizations();\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments) {\n if (depComments === void 0) { depComments = false; }\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback) {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback) {\n var i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n _onThemeChangeCallbacks.splice(i, 1);\n}\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme, depComments) {\n var _a;\n if (depComments === void 0) { depComments = false; }\n _theme = createTheme(theme, depComments);\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme(__assign(__assign(__assign(__assign({}, _theme.palette), _theme.semanticColors), _theme.effects), _loadFonts(_theme)));\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n _onThemeChangeCallbacks.forEach(function (callback) {\n try {\n callback(_theme);\n }\n catch (e) {\n // don't let a bad callback break everything else\n }\n });\n return _theme;\n}\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme) {\n var lines = {};\n for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {\n var fontName = _a[_i];\n var font = theme.fonts[fontName];\n for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {\n var propName = _c[_b];\n var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n var value = font[propName];\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name_1] = value;\n }\n }\n return lines;\n}\n//# sourceMappingURL=theme.js.map","// This file mimics styles and mixins from _General.Mixins.scss\nexport var normalize = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\nexport var noWrap = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=GeneralStyles.js.map","/**\n * Generates placeholder style for each of the browsers supported by `@fluentui/react`.\n * @param styles - The style to use.\n * @returns The placeholder style object for each browser depending on the placeholder directive it uses.\n */\nexport function getPlaceholderStyles(styles) {\n return {\n selectors: {\n '::placeholder': styles,\n ':-ms-input-placeholder': styles,\n '::-ms-input-placeholder': styles, // Edge\n },\n };\n}\n//# sourceMappingURL=getPlaceholderStyles.js.map","/* eslint-disable no-console */\nvar _warningCallback = undefined;\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message) {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n }\n else if (console && console.warn) {\n console.warn(message);\n }\n}\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback) {\n _warningCallback = warningCallback;\n}\n//# sourceMappingURL=warn.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nvar ICON_SETTING_NAME = 'icons';\nvar _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n// Reset icon registration on stylesheet resets.\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () {\n for (var name_1 in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {\n _iconSettings[name_1].subset.className = undefined;\n }\n }\n });\n}\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nvar normalizeIconName = function (name) { return name.toLowerCase(); };\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset, options) {\n var subset = __assign(__assign({}, iconSubset), { isRegistered: false, className: undefined });\n var icons = iconSubset.icons;\n // Grab options, optionally mix user provided ones on top.\n options = options ? __assign(__assign({}, _iconSettings.__options), options) : _iconSettings.__options;\n for (var iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n var code = icons[iconName];\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n }\n else {\n _iconSettings[normalizedIconName] = {\n code: code,\n subset: subset,\n };\n }\n }\n }\n}\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames) {\n var options = _iconSettings.__options;\n var _loop_1 = function (iconName) {\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n }\n else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(\"The icon \\\"\" + iconName + \"\\\" tried to unregister but was not registered.\");\n }\n }\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach(function (key) {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n };\n for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {\n var iconName = iconNames_1[_i];\n _loop_1(iconName);\n }\n}\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName, mappedToName) {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name) {\n var icon = undefined;\n var options = _iconSettings.__options;\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n if (name) {\n icon = _iconSettings[name];\n if (icon) {\n var subset = icon.subset;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\"The icon \\\"\" + name + \"\\\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.\");\n }\n }\n }\n return icon;\n}\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options) {\n _iconSettings.__options = __assign(__assign({}, _iconSettings.__options), options);\n}\nvar _missingIcons = [];\nvar _missingIconsTimer = undefined;\nfunction _warnDuplicateIcon(iconName) {\n var options = _iconSettings.__options;\n var warningDelay = 2000;\n var maxIconsInMessage = 10;\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(function () {\n warn(\"Some icons were re-registered. Applications should only call registerIcons for any given \" +\n \"icon once. Redefining what an icon is may have unintended consequences. Duplicates \" +\n \"include: \\n\" +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? \" (+ \" + (_missingIcons.length - maxIconsInMessage) + \" more)\" : ''));\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n//# sourceMappingURL=icons.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/style-utilities', '8.9.1');\n//# sourceMappingURL=version.js.map","export * from './classNames/index';\nexport * from './styles/index';\nexport * from './utilities/index';\nexport * from './interfaces/index';\nexport * from './MergeStyles';\nimport './version';\n// Ensure theme is initialized when this package is referenced.\nimport { initializeThemeInCustomizations } from './styles/theme';\ninitializeThemeInCustomizations();\n//# sourceMappingURL=index.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Async(parent, onError) {\n this._timeoutIds = null;\n this._immediateIds = null;\n this._intervalIds = null;\n this._animationFrameIds = null;\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = function () {\n /* do nothing */\n };\n }\n /**\n * Dispose function, clears all async operations.\n */\n Async.prototype.dispose = function () {\n var id;\n this._isDisposed = true;\n this._parent = null;\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n this._timeoutIds = null;\n }\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n this._immediateIds = null;\n }\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n this._animationFrameIds = null;\n }\n };\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setTimeout = function (callback, duration) {\n var _this = this;\n var timeoutId = 0;\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n timeoutId = setTimeout(function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._timeoutIds) {\n delete _this._timeoutIds[timeoutId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._timeoutIds[timeoutId] = true;\n }\n return timeoutId;\n };\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n Async.prototype.clearTimeout = function (id) {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n };\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n Async.prototype.setImmediate = function (callback, targetElement) {\n var _this = this;\n var immediateId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n var setImmediateCallback = function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._immediateIds) {\n delete _this._immediateIds[immediateId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n immediateId = win.setTimeout(setImmediateCallback, 0);\n this._immediateIds[immediateId] = true;\n }\n return immediateId;\n };\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n Async.prototype.clearImmediate = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n };\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setInterval = function (callback, duration) {\n var _this = this;\n var intervalId = 0;\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n intervalId = setInterval(function () {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._intervalIds[intervalId] = true;\n }\n return intervalId;\n };\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n Async.prototype.clearInterval = function (id) {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n };\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.throttle = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n return this._noop;\n }\n var waitMS = wait || 0;\n var leading = true;\n var trailing = true;\n var lastExecuteTime = 0;\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n var callback = function (userCall) {\n var now = Date.now();\n var delta = now - lastExecuteTime;\n var waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(_this._parent, lastArgs);\n }\n else if (timeoutId === null && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n return resultFunction;\n };\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.debounce = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n var noOpFunction = (function () {\n /** Do nothing */\n });\n noOpFunction.cancel = function () {\n return;\n };\n noOpFunction.flush = (function () { return null; });\n noOpFunction.pending = function () { return false; };\n return noOpFunction;\n }\n var waitMS = wait || 0;\n var leading = false;\n var trailing = true;\n var maxWait = null;\n var lastCallTime = 0;\n var lastExecuteTime = Date.now();\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n var markExecuted = function (time) {\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n var invokeFunction = function (time) {\n markExecuted(time);\n lastResult = func.apply(_this._parent, lastArgs);\n };\n var callback = function (userCall) {\n var now = Date.now();\n var executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n var delta = now - lastCallTime;\n var waitLength = waitMS - delta;\n var maxWaitDelta = now - lastExecuteTime;\n var maxWaitExpired = false;\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n }\n else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n }\n else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n var pending = function () {\n return !!timeoutId;\n };\n var cancel = function () {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n var flush = function () {\n if (pending()) {\n invokeFunction(Date.now());\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n return resultFunction;\n };\n Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n var _this = this;\n var animationFrameId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n var animationFrameCallback = function () {\n try {\n // Now delete the record and call the callback.\n if (_this._animationFrameIds) {\n delete _this._animationFrameIds[animationFrameId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n this._animationFrameIds[animationFrameId] = true;\n }\n return animationFrameId;\n };\n Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype._logError = function (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n };\n return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function BaseComponent(props, context) {\n var _this = _super.call(this, props, context) || this;\n // eslint-disable-next-line deprecation/deprecation\n _makeAllSafe(_this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n return _this;\n }\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._updateComponentRef(prevProps, this.props);\n };\n /**\n * When the component has mounted, update the componentRef.\n */\n BaseComponent.prototype.componentDidMount = function () {\n this._setComponentRef(this.props.componentRef, this);\n };\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n BaseComponent.prototype.componentWillUnmount = function () {\n this._setComponentRef(this.props.componentRef, null);\n if (this.__disposables) {\n for (var i = 0, len = this._disposables.length; i < len; i++) {\n var disposable = this.__disposables[i];\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n };\n Object.defineProperty(BaseComponent.prototype, \"className\", {\n /**\n * Gets the object's class name.\n */\n get: function () {\n if (!this.__className) {\n var funcNameRegex = /function (.{1,})\\(/;\n var results = funcNameRegex.exec(this.constructor.toString());\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n return this.__className;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n get: function () {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_async\", {\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n return this.__async;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_events\", {\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n return this.__events;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n BaseComponent.prototype._resolveRef = function (refName) {\n var _this = this;\n if (!this.__resolves) {\n this.__resolves = {};\n }\n if (!this.__resolves[refName]) {\n this.__resolves[refName] = function (ref) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (_this[refName] = ref);\n };\n }\n return this.__resolves[refName];\n };\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n if (newProps === void 0) { newProps = {}; }\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n };\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n warnDeprecations(this.className, this.props, deprecationMap);\n };\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n };\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n };\n BaseComponent.prototype._setComponentRef = function (ref, value) {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n if (typeof ref === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref.current = value;\n }\n }\n };\n return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n for (var i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n var classMethod = obj[methodName];\n var prototypeMethod = prototype[methodName];\n if (classMethod || prototypeMethod) {\n obj[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var retVal;\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, args);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, args);\n }\n return retVal;\n };\n }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getWindow } from './dom/getWindow';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nvar DelayedRender = /** @class */ (function (_super) {\n __extends(DelayedRender, _super);\n function DelayedRender(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isRendered: getWindow() === undefined,\n };\n return _this;\n }\n DelayedRender.prototype.componentDidMount = function () {\n var _this = this;\n var delay = this.props.delay;\n this._timeoutId = window.setTimeout(function () {\n _this.setState({\n isRendered: true,\n });\n }, delay);\n };\n DelayedRender.prototype.componentWillUnmount = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n };\n DelayedRender.prototype.render = function () {\n return this.state.isRendered ? React.Children.only(this.props.children) : null;\n };\n DelayedRender.defaultProps = {\n delay: 0,\n };\n return DelayedRender;\n}(React.Component));\nexport { DelayedRender };\n//# sourceMappingURL=DelayedRender.js.map","import { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nvar EventGroup = /** @class */ (function () {\n /** parent: the context in which events attached to non-HTMLElements are called */\n function EventGroup(parent) {\n this._id = EventGroup._uniqueId++;\n this._parent = parent;\n this._eventRecords = [];\n }\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent) {\n var retVal;\n if (EventGroup._isElement(target)) {\n if (typeof document !== 'undefined' && document.createEvent) {\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, bubbleEvent || false, true);\n assign(ev, eventArgs);\n retVal = target.dispatchEvent(ev);\n }\n else if (typeof document !== 'undefined' && document.createEventObject) {\n // IE8\n var evObj = document.createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n var events = target.__events__;\n var eventRecords = events ? events[eventName] : null;\n if (eventRecords) {\n for (var id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n var eventRecordList = eventRecords[id];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n var record = eventRecordList[listIndex];\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n return retVal;\n };\n EventGroup.isObserved = function (target, eventName) {\n var events = target && target.__events__;\n return !!events && !!events[eventName];\n };\n /** Check to see if the target has declared support of the given event. */\n EventGroup.isDeclared = function (target, eventName) {\n var declaredEvents = target && target.__declaredEvents;\n return !!declaredEvents && !!declaredEvents[eventName];\n };\n EventGroup.stopPropagation = function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n else {\n // IE8\n event.cancelBubble = true;\n }\n };\n EventGroup._isElement = function (target) {\n return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n };\n EventGroup.prototype.dispose = function () {\n if (!this._isDisposed) {\n this._isDisposed = true;\n this.off();\n this._parent = null;\n }\n };\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n EventGroup.prototype.onAll = function (target, events, useCapture) {\n for (var eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n };\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n EventGroup.prototype.on = function (target, eventName, callback, options) {\n var _this = this;\n if (eventName.indexOf(',') > -1) {\n var events = eventName.split(/[ ,]+/);\n for (var i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n }\n else {\n var parent_1 = this._parent;\n var eventRecord = {\n target: target,\n eventName: eventName,\n parent: parent_1,\n callback: callback,\n options: options,\n };\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n var events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n events[eventName][this._id].push(eventRecord);\n events[eventName].count++;\n if (EventGroup._isElement(target)) {\n var processElementEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n var result;\n try {\n result = callback.apply(parent_1, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n var e = args[0];\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n e.cancelBubble = true;\n }\n }\n catch (e) {\n // ignore\n }\n return result;\n };\n eventRecord.elementCallback = processElementEvent;\n if (target.addEventListener) {\n target.addEventListener(eventName, processElementEvent, options);\n }\n else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n }\n else {\n var processObjectEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n return callback.apply(parent_1, args);\n };\n eventRecord.objectCallback = processObjectEvent;\n }\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n };\n EventGroup.prototype.off = function (target, eventName, callback, options) {\n for (var i = 0; i < this._eventRecords.length; i++) {\n var eventRecord = this._eventRecords[i];\n if ((!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)) {\n var events = eventRecord.target.__events__;\n var targetArrayLookup = events[eventRecord.eventName];\n var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n }\n else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n }\n else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n this._eventRecords.splice(i--, 1);\n }\n }\n };\n /** Trigger the given event in the context of this instance of EventGroup. */\n EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n };\n /** Declare an event as being supported by this instance of EventGroup. */\n EventGroup.prototype.declare = function (event) {\n var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n }\n else {\n for (var i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n };\n EventGroup._uniqueId = 0;\n return EventGroup;\n}());\nexport { EventGroup };\n//# sourceMappingURL=EventGroup.js.map","import * as React from 'react';\nimport { FocusRectsContext } from './useFocusRects';\nexport var FocusRectsProvider = function (props) {\n var providerRef = props.providerRef, layerRoot = props.layerRoot;\n var registeredProviders = React.useState([])[0];\n var parentContext = React.useContext(FocusRectsContext);\n // Inherit the parent context if it exists, unless this is a layer root.\n // This allows the topmost provider element in the DOM tree to handle the focus events.\n // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef.\n var inheritParentContext = parentContext !== undefined && !layerRoot;\n var context = React.useMemo(function () {\n return inheritParentContext\n ? undefined\n : {\n providerRef: providerRef,\n registeredProviders: registeredProviders,\n registerProvider: function (ref) {\n // Register this child provider with the current context, and any parent contexts\n registeredProviders.push(ref);\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerProvider(ref);\n },\n unregisterProvider: function (ref) {\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.unregisterProvider(ref);\n var i = registeredProviders.indexOf(ref);\n if (i >= 0) {\n registeredProviders.splice(i, 1);\n }\n },\n };\n }, [providerRef, registeredProviders, parentContext, inheritParentContext]);\n React.useEffect(function () {\n if (context) {\n context.registerProvider(context.providerRef);\n return function () { return context.unregisterProvider(context.providerRef); };\n }\n }, [context]);\n // Create a new context provider if this is not inheriting from the parent.\n if (context) {\n return React.createElement(FocusRectsContext.Provider, { value: context }, props.children);\n }\n else {\n return React.createElement(React.Fragment, null, props.children);\n }\n};\n//# sourceMappingURL=FocusRectsProvider.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\nvar GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nvar CALLBACK_STATE_PROP_NAME = '__callbacks__';\nvar _counter = 0;\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nvar GlobalSettings = /** @class */ (function () {\n function GlobalSettings() {\n }\n GlobalSettings.getValue = function (key, defaultValue) {\n var globalSettings = _getGlobalSettings();\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n return globalSettings[key];\n };\n GlobalSettings.setValue = function (key, value) {\n var globalSettings = _getGlobalSettings();\n var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n var oldValue = globalSettings[key];\n if (value !== oldValue) {\n globalSettings[key] = value;\n var changeDescription = {\n oldValue: oldValue,\n value: value,\n key: key,\n };\n for (var id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n return value;\n };\n GlobalSettings.addChangeListener = function (cb) {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n var id = cb.__id__;\n var callbacks = _getCallbacks();\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n callbacks[id] = cb;\n };\n GlobalSettings.removeChangeListener = function (cb) {\n var callbacks = _getCallbacks();\n delete callbacks[cb.__id__];\n };\n return GlobalSettings;\n}());\nexport { GlobalSettings };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings() {\n var _a;\n var win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var globalObj = win || {};\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},\n _a[CALLBACK_STATE_PROP_NAME] = {},\n _a);\n }\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\nfunction _getCallbacks() {\n var globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n//# sourceMappingURL=GlobalSettings.js.map","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport var KeyCodes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n pauseBreak: 19,\n capslock: 20,\n escape: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n del: 46,\n zero: 48,\n one: 49,\n two: 50,\n three: 51,\n four: 52,\n five: 53,\n six: 54,\n seven: 55,\n eight: 56,\n nine: 57,\n colon: 58,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n leftWindow: 91,\n rightWindow: 92,\n select: 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96,\n one_numpad: 97,\n two_numpad: 98,\n three_numpad: 99,\n four_numpad: 100,\n five_numpad: 101,\n six_numpad: 102,\n seven_numpad: 103,\n eight_numpad: 104,\n nine_numpad: 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106,\n add: 107,\n subtract: 109,\n decimalPoint: 110,\n divide: 111,\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 numlock: 144,\n scrollLock: 145,\n semicolon: 186,\n equalSign: 187,\n comma: 188,\n dash: 189,\n period: 190,\n forwardSlash: 191,\n graveAccent: 192,\n openBracket: 219,\n backSlash: 220,\n closeBracket: 221,\n singleQuote: 222,\n};\n//# sourceMappingURL=KeyCodes.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n var ariaAttributes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ariaAttributes[_i] = arguments[_i];\n }\n var mergedAttribute = ariaAttributes\n .filter(function (arg) { return arg; })\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var index = -1;\n for (var i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n var index = findIndex(array, cb);\n if (index < 0) {\n return undefined;\n }\n return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n var array = [];\n for (var i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n return items.reduce(function (rows, currentValue, index) {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n }\n else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n var copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n var copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n var result = [];\n array.forEach(function (item) { return (result = result.concat(item)); });\n return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=array.js.map","import { mergeCssSets, Stylesheet } from '@fluentui/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nvar MAX_CACHE_COUNT = 50;\nvar DEFAULT_SPECIFICITY_MULTIPLIER = 5;\nvar _memoizedClassNames = 0;\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () { return _memoizedClassNames++; });\n}\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nvar retVal = '__retval__';\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction(options) {\n // We build a trie where each node is a Map. The map entry key represents an argument\n // value, and the entry value is another node (Map). Each node has a `__retval__`\n // property which is used to hold the cached response.\n if (options === void 0) { options = {}; }\n // To derive the response, we can simply ensure the arguments are added or already\n // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n // we call the `getStyles` api to evaluate, cache on the property, and return that.\n var map = new Map();\n var styleCalcCount = 0;\n var getClassNamesCount = 0;\n var currentMemoizedClassNames = _memoizedClassNames;\n var getClassNames = function (styleFunctionOrObject, styleProps) {\n var _a;\n if (styleProps === void 0) { styleProps = {}; }\n // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n // If there is also no style overrides, we can skip merge styles completely and\n // simply return the result from the style funcion.\n if (options.useStaticStyles &&\n typeof styleFunctionOrObject === 'function' &&\n styleFunctionOrObject.__noStyleOverride__) {\n return styleFunctionOrObject(styleProps);\n }\n getClassNamesCount++;\n var current = map;\n var theme = styleProps.theme;\n var rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n var disableCaching = options.disableCaching;\n // On reset of our stylesheet, reset memoized cache.\n if (currentMemoizedClassNames !== _memoizedClassNames) {\n currentMemoizedClassNames = _memoizedClassNames;\n map = new Map();\n styleCalcCount = 0;\n }\n if (!options.disableCaching) {\n current = _traverseMap(map, styleFunctionOrObject);\n current = _traverseMap(current, styleProps);\n }\n if (disableCaching || !current[retVal]) {\n if (styleFunctionOrObject === undefined) {\n current[retVal] = {};\n }\n else {\n current[retVal] = mergeCssSets([\n (typeof styleFunctionOrObject === 'function'\n ? styleFunctionOrObject(styleProps)\n : styleFunctionOrObject),\n ], { rtl: !!rtl, specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined });\n }\n if (!disableCaching) {\n styleCalcCount++;\n }\n }\n if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n var win = getWindow();\n if ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.enableClassNameCacheFullWarning) {\n // eslint-disable-next-line no-console\n console.warn(\"Styles are being recalculated too frequently. Cache miss rate is \" + styleCalcCount + \"/\" + getClassNamesCount + \".\");\n // eslint-disable-next-line no-console\n console.trace();\n }\n map.clear();\n styleCalcCount = 0;\n // Mutate the options passed in, that's all we can do.\n options.disableCaching = true;\n }\n // Note: the retVal is an attached property on the Map; not a key in the Map. We use this attached property to\n // cache the return value for this branch of the graph.\n return current[retVal];\n };\n return getClassNames;\n}\nfunction _traverseEdge(current, value) {\n value = _normalizeValue(value);\n if (!current.has(value)) {\n current.set(value, new Map());\n }\n return current.get(value);\n}\nfunction _traverseMap(current, inputs) {\n if (typeof inputs === 'function') {\n var cachedInputsFromStyled = inputs.__cachedInputs__;\n if (cachedInputsFromStyled) {\n // The styled helper will generate the styles function and will attach the cached\n // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n // These should be used as cache keys for deriving the memoized value.\n for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {\n var input = _a[_i];\n current = _traverseEdge(current, input);\n }\n }\n else {\n current = _traverseEdge(current, inputs);\n }\n }\n else if (typeof inputs === 'object') {\n for (var propName in inputs) {\n if (inputs.hasOwnProperty(propName)) {\n current = _traverseEdge(current, inputs[propName]);\n }\n }\n }\n return current;\n}\nfunction _normalizeValue(value) {\n switch (value) {\n case undefined:\n return '__undefined__';\n case null:\n return '__null__';\n default:\n return value;\n }\n}\n//# sourceMappingURL=classNamesFunction.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) { return function (newValue) {\n for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n var ref = _a[_i];\n if (typeof ref === 'function') {\n ref(newValue);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = newValue;\n }\n }\n}; };\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n var local = {\n refs: [],\n };\n return function () {\n var newRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newRefs[_i] = arguments[_i];\n }\n if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n local.resolver = createResolver(local);\n }\n local.refs = newRefs;\n return local.resolver;\n };\n};\n//# sourceMappingURL=createMergedRef.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n }\n else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var key in arg) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings } from '../GlobalSettings';\nvar CustomizationsGlobalKey = 'customizations';\nvar NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\nvar _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\nvar _events = [];\nvar Customizations = /** @class */ (function () {\n function Customizations() {\n }\n Customizations.reset = function () {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n };\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n Customizations.applySettings = function (settings) {\n _allSettings.settings = __assign(__assign({}, _allSettings.settings), settings);\n Customizations._raiseChange();\n };\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n Customizations.applyScopedSettings = function (scopeName, settings) {\n _allSettings.scopedSettings[scopeName] = __assign(__assign({}, _allSettings.scopedSettings[scopeName]), settings);\n Customizations._raiseChange();\n };\n Customizations.getSettings = function (properties, scopeName, localSettings) {\n if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }\n var settings = {};\n var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n return settings;\n };\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n Customizations.applyBatchedUpdates = function (code, suppressUpdate) {\n Customizations._suppressUpdates = true;\n try {\n code();\n }\n catch (_a) {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n };\n Customizations.observe = function (onChange) {\n _events.push(onChange);\n };\n Customizations.unobserve = function (onChange) {\n _events = _events.filter(function (cb) { return cb !== onChange; });\n };\n Customizations._raiseChange = function () {\n if (!Customizations._suppressUpdates) {\n _events.forEach(function (cb) { return cb(); });\n }\n };\n return Customizations;\n}());\nexport { Customizations };\n//# sourceMappingURL=Customizations.js.map","import * as React from 'react';\nexport var CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n//# sourceMappingURL=CustomizerContext.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets } from '@fluentui/merge-styles';\nexport function customizable(scope, fields, concatStyles) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function customizableFactory(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(ComponentWithInjectedProps, _super);\n function ComponentWithInjectedProps(props) {\n var _this = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._styleCache = {};\n _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n return _this;\n }\n ComponentWithInjectedProps.prototype.componentDidMount = function () {\n Customizations.observe(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.render = function () {\n var _this = this;\n return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var componentProps = _this.props;\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n }\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (_this._styleCache.default !== defaultProps.styles ||\n _this._styleCache.component !== componentProps.styles) {\n var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n _this._styleCache.default = defaultProps.styles;\n _this._styleCache.component = componentProps.styles;\n _this._styleCache.merged = mergedStyles;\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged }));\n }\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps));\n }));\n };\n ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n this.forceUpdate();\n };\n return ComponentWithInjectedProps;\n }(React.Component)),\n _a.displayName = 'Customized' + scope,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n//# sourceMappingURL=customizable.js.map","/**\n * Verifies if an application can use DOM.\n */\nexport function canUseDOM() {\n return (typeof window !== 'undefined' &&\n !!(window.document &&\n // eslint-disable-next-line deprecation/deprecation\n window.document.createElement));\n}\n//# sourceMappingURL=canUseDOM.js.map","import { canUseDOM } from './canUseDOM';\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth.\n *\n * @public\n */\nexport function getDocument(rootElement) {\n if (!canUseDOM() || typeof document === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n//# sourceMappingURL=getDocument.js.map","import { canUseDOM } from './canUseDOM';\nvar _window = undefined;\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n _window = window;\n}\ncatch (e) {\n /* no-op */\n}\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement) {\n if (!canUseDOM() || typeof _window === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n//# sourceMappingURL=getWindow.js.map","export function on(element, eventName, callback, options) {\n element.addEventListener(eventName, callback, options);\n return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n var functions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n functions[_i - 1] = arguments[_i];\n }\n if (functions.length < 2) {\n return functions[0];\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n functions.forEach(function (f) { return f && f.apply(parent, args); });\n };\n}\n//# sourceMappingURL=appendFunction.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n for (var name_1 in methods) {\n if (methods.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n }\n }\n}\n//# sourceMappingURL=extendComponent.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones) {\n return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode) {\n if (checkNode === void 0) { checkNode = true; }\n return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement, bypassHiddenElements) {\n var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements);\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable) {\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check its children.\n if (traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getPreviousElement(rootElement, currentElement.lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true)) || !tabbable) {\n return childMatch;\n }\n var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n var childMatchParent = childMatch.parentElement;\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its previous sibling.\n var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable);\n if (siblingMatch) {\n return siblingMatch;\n }\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable);\n }\n return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements) {\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible;\n var isCurrentElementVisible = checkElementVisibility(currentElement);\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) {\n return currentElement;\n }\n // Check its children.\n if (!suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n if (childMatch) {\n return childMatch;\n }\n }\n if (currentElement === rootElement) {\n return null;\n }\n // Check its sibling.\n var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n if (siblingMatch) {\n return siblingMatch;\n }\n if (!suppressParentTraversal) {\n return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements);\n }\n return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n // Fallback to other methods of determining actual visibility.\n return (element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element) {\n return (!!element &&\n isElementVisible(element) &&\n !element.hidden &&\n window.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex) {\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || element.disabled) {\n return false;\n }\n var tabIndex = 0;\n var tabIndexAttributeValue = null;\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n var result = !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet);\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n var document = getDocument(element);\n var currentActiveElement = document && document.activeElement;\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute) {\n return elementContainsAttribute(element, noWrapDataAttribute) === 'true' ? false : true;\n}\nvar targetToFocusOnNextRepaint = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n if (element) {\n // An element was already queued to be focused, so replace that one with the new element\n if (targetToFocusOnNextRepaint) {\n targetToFocusOnNextRepaint = element;\n return;\n }\n targetToFocusOnNextRepaint = element;\n var win = getWindow(element);\n if (win) {\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n win.requestAnimationFrame(function () {\n targetToFocusOnNextRepaint && targetToFocusOnNextRepaint.focus();\n // We are done focusing for this frame, so reset the queued focus element\n targetToFocusOnNextRepaint = undefined;\n });\n }\n }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n var element = parent;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var index = path_1[_i];\n var nextChild = element.children[Math.min(index, element.children.length - 1)];\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n var path = [];\n while (toElement && fromElement && toElement !== fromElement) {\n var parent_1 = getParent(toElement, true);\n if (parent_1 === null) {\n return [];\n }\n path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n toElement = parent_1;\n }\n return path;\n}\n//# sourceMappingURL=focus.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute) {\n var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); });\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@fluentui/merge-styles';\n// Initialize global window id.\nvar CURRENT_ID_PROPERTY = '__currentId__';\nvar DEFAULT_ID_STRING = 'id__';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar _global = getWindow() || {};\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\nvar _initializedStylesheetResets = false;\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix) {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n var index = _global[CURRENT_ID_PROPERTY]++;\n return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter) {\n if (counter === void 0) { counter = 0; }\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n//# sourceMappingURL=getId.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n var props = __assign({}, propsWithoutDefaults);\n for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n var key = _a[_i];\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dest[name_1] = source[name_1];\n }\n }\n return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n if (prevProps.componentRef !== this.props.componentRef) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _setComponentRef(prevProps.componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n componentRef.current = value;\n }\n else if (typeof componentRef === 'function') {\n componentRef(value);\n }\n }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n// Default to undefined so that we initialize on first read.\nvar _language;\nvar STORAGE_KEY = 'language';\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function getLanguage(persistenceType) {\n if (persistenceType === void 0) { persistenceType = 'sessionStorage'; }\n if (_language === undefined) {\n var doc = getDocument();\n var savedLanguage = persistenceType === 'localStorage'\n ? localStorage.getItem(STORAGE_KEY)\n : persistenceType === 'sessionStorage'\n ? sessionStorage.getItem(STORAGE_KEY)\n : undefined;\n if (savedLanguage) {\n _language = savedLanguage;\n }\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n if (_language === undefined) {\n _language = 'en';\n }\n }\n return _language;\n}\nexport function setLanguage(language, persistenceParam) {\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'sessionStorage' : persistenceParam;\n if (persistenceType === 'localStorage') {\n localStorage.setItem(STORAGE_KEY, language);\n }\n else if (persistenceType === 'sessionStorage') {\n sessionStorage.setItem(STORAGE_KEY, language);\n }\n _language = language;\n}\n//# sourceMappingURL=language.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key, data) {\n try {\n var win = getWindow();\n win && win.localStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=localStorage.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nvar _initializedStylesheetResets = false;\nvar _resetCounter = 0;\nvar _emptyObject = { empty: true };\nvar _dictionary = {};\nvar _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap) {\n _weakMap = weakMap;\n}\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations() {\n _resetCounter++;\n}\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(_target, _key, descriptor) {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n return {\n configurable: true,\n get: function () {\n return fn;\n },\n };\n}\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {\n if (maxCacheSize === void 0) { maxCacheSize = 100; }\n if (ignoreNullOrUndefinedResult === void 0) { ignoreNullOrUndefinedResult = false; }\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n if (!_initializedStylesheetResets) {\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n var rootNode;\n var cacheSize = 0;\n var localResetCounter = _resetCounter;\n return function memoizedFunction() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var currentNode = rootNode;\n if (rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n currentNode = rootNode;\n // Traverse the tree until we find the match.\n for (var i = 0; i < args.length; i++) {\n var arg = _normalizeArg(args[i]);\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n currentNode = currentNode.map.get(arg);\n }\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb.apply(void 0, args);\n cacheSize++;\n }\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb.apply(void 0, args);\n }\n return currentNode.value;\n };\n}\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer(getValue) {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n var cache = new _weakMap();\n function memoizedGetValue(input) {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n if (cache.has(input)) {\n return cache.get(input);\n }\n var value = getValue(input);\n cache.set(input, value);\n return value;\n }\n return memoizedGetValue;\n}\nfunction _normalizeArg(val) {\n if (!val) {\n return _emptyObject;\n }\n else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n }\n else if (!_dictionary[val]) {\n _dictionary[val] = { val: val };\n }\n return _dictionary[val];\n}\nfunction _createNode() {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n//# sourceMappingURL=memoize.js.map","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n _merge(target || {}, arg);\n }\n return target;\n}\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target, source, circularReferences) {\n if (circularReferences === void 0) { circularReferences = []; }\n circularReferences.push(source);\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n if (name_1 !== '__proto__' && name_1 !== 'constructor' && name_1 !== 'prototype') {\n var value = source[name_1];\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n var isCircularReference = circularReferences.indexOf(value) > -1;\n target[name_1] = (isCircularReference\n ? value\n : _merge(target[name_1] || {}, value, circularReferences));\n }\n else {\n target[name_1] = value;\n }\n }\n }\n }\n circularReferences.pop();\n return target;\n}\n//# sourceMappingURL=merge.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n var targetDocument = getDocument(target);\n if (!targetDocument) {\n // can't do this in SSR\n return function () { return undefined; };\n }\n var affectedNodes = [];\n // start at target, then recurse and do the same for parent, until we reach \n while (target !== targetDocument.body && target.parentElement) {\n // grab all siblings of current element\n for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n var sibling = _a[_i];\n // but ignore elements that are already aria-hidden\n var ariaHidden = sibling.getAttribute('aria-hidden');\n if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n affectedNodes.push([sibling, ariaHidden]);\n }\n }\n target = target.parentElement;\n }\n // take all those elements and set aria-hidden=true on them\n affectedNodes.forEach(function (_a) {\n var node = _a[0];\n node.setAttribute('aria-hidden', 'true');\n });\n return function () {\n unmodalize(affectedNodes);\n affectedNodes = []; // dispose\n };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n affectedNodes.forEach(function (_a) {\n var node = _a[0], originalValue = _a[1];\n // Restore the original value (false or unset)\n if (originalValue) {\n node.setAttribute('aria-hidden', originalValue);\n }\n else {\n node.removeAttribute('aria-hidden');\n }\n });\n}\n//# sourceMappingURL=modalize.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n if (!a || !b) {\n // only return true if both a and b are falsy\n return !a && !b;\n }\n for (var propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (var propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n target = target || {};\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var sourceObject = args_1[_a];\n if (sourceObject) {\n for (var propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n // map to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map(function (p) {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p, theEnum[p]);\n }\n return undefined;\n })\n .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n return Object.keys(obj).reduce(function (arr, key) {\n arr.push(obj[key]);\n return arr;\n }, []);\n}\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n for (var key in obj) {\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=object.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n var _a;\n if (typeof isMacResult === 'undefined' || reset) {\n var win = getWindow();\n // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","var toObjectMap = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var result = {};\n for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n var item = items_1[_a];\n var keys = Array.isArray(item) ? item : Object.keys(item);\n for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n var key = keys_1[_b];\n result[key] = 1;\n }\n }\n return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementEvents = toObjectMap([\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\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 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementProperties = toObjectMap([\n 'accessKey',\n 'children',\n 'className',\n 'contentEditable',\n 'dir',\n 'draggable',\n 'hidden',\n 'htmlFor',\n 'id',\n 'lang',\n 'ref',\n 'role',\n 'style',\n 'tabIndex',\n 'title',\n 'translate',\n 'spellCheck',\n 'name', // global\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var audioProperties = toObjectMap(htmlElementProperties, [\n 'height',\n 'loop',\n 'muted',\n 'preload',\n 'src',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport var videoProperties = toObjectMap(audioProperties, [\n 'poster', // video\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n 'start', // ol\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n 'download',\n 'href',\n 'hrefLang',\n 'media',\n 'rel',\n 'target',\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus',\n 'disabled',\n 'form',\n 'formAction',\n 'formEncType',\n 'formMethod',\n 'formNoValidate',\n 'formTarget',\n 'type',\n 'value', // button, input, li, option, meter, progress, param,\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport var inputProperties = toObjectMap(buttonProperties, [\n 'accept',\n 'alt',\n 'autoCapitalize',\n 'autoComplete',\n 'checked',\n 'dirname',\n 'form',\n 'height',\n 'inputMode',\n 'list',\n 'max',\n 'maxLength',\n 'min',\n 'minLength',\n 'multiple',\n 'pattern',\n 'placeholder',\n 'readOnly',\n 'required',\n 'src',\n 'step',\n 'size',\n 'type',\n 'value',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport var textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize',\n 'cols',\n 'dirname',\n 'form',\n 'maxLength',\n 'minLength',\n 'placeholder',\n 'readOnly',\n 'required',\n 'rows',\n 'wrap', // textarea\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport var selectProperties = toObjectMap(buttonProperties, [\n 'form',\n 'multiple',\n 'required', // input, select, textarea\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n 'selected',\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding',\n 'cellSpacing', // table\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan',\n 'scope', // th\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'headers',\n 'rowSpan',\n 'scope', // th\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset',\n 'action',\n 'encType',\n 'encType',\n 'method',\n 'noValidate',\n 'target', // form\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport var iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow',\n 'allowFullScreen',\n 'allowPaymentRequest',\n 'allowTransparency',\n 'csp',\n 'height',\n 'importance',\n 'referrerPolicy',\n 'sandbox',\n 'src',\n 'srcDoc',\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n 'alt',\n 'crossOrigin',\n 'height',\n 'src',\n 'srcSet',\n 'useMap',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n var isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n var keys = Object.keys(props);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var isNativeProp = (!isArray && allowedPropNames[key]) ||\n (isArray && allowedPropNames.indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=properties.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n var outerMemoizer = createMemoizer(function (inner) {\n var innerMemoizer = createMemoizer(function (defaultRender) {\n return function (innerProps) {\n return inner(innerProps, defaultRender);\n };\n });\n return function (outerProps, defaultRender) {\n return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n };\n });\n return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@fluentui/merge-styles';\nvar RTL_LOCAL_STORAGE_KEY = 'isRTL';\n// Default to undefined so that we initialize on first read.\nvar _isRTL;\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme) {\n if (theme === void 0) { theme = {}; }\n if (theme.rtl !== undefined) {\n return theme.rtl;\n }\n if (_isRTL === undefined) {\n // Fabric supports persisting the RTL setting between page refreshes via session storage\n var savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n if (savedRTL !== null) {\n _isRTL = savedRTL === '1';\n setRTL(_isRTL);\n }\n var doc = getDocument();\n if (_isRTL === undefined && doc) {\n _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n mergeStylesSetRTL(_isRTL);\n }\n }\n return !!_isRTL;\n}\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL, persistSetting) {\n if (persistSetting === void 0) { persistSetting = false; }\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n if (persistSetting) {\n setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n }\n _isRTL = isRTL;\n mergeStylesSetRTL(_isRTL);\n}\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key, theme) {\n if (theme === void 0) { theme = {}; }\n if (getRTL(theme)) {\n if (key === KeyCodes.left) {\n key = KeyCodes.right;\n }\n else if (key === KeyCodes.right) {\n key = KeyCodes.left;\n }\n }\n return key;\n}\n//# sourceMappingURL=rtl.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _previousClientY = 0;\n var _element = null;\n // remember the clientY for future calls of _preventOverscrolling\n var _saveClientY = function (event) {\n if (event.targetTouches.length === 1) {\n _previousClientY = event.targetTouches[0].clientY;\n }\n };\n // prevent the body from scrolling when the user attempts\n // to scroll past the top or bottom of the element\n var _preventOverscrolling = function (event) {\n // only respond to a single-finger touch\n if (event.targetTouches.length !== 1) {\n return;\n }\n // prevent the body touchmove handler from firing\n // so that scrolling is allowed within the element\n event.stopPropagation();\n if (!_element) {\n return;\n }\n var clientY = event.targetTouches[0].clientY - _previousClientY;\n var scrollableParent = findScrollableParent(event.target);\n if (scrollableParent) {\n _element = scrollableParent;\n }\n // if the element is scrolled to the top,\n // prevent the user from scrolling up\n if (_element.scrollTop === 0 && clientY > 0) {\n event.preventDefault();\n }\n // if the element is scrolled to the bottom,\n // prevent the user from scrolling down\n if (_element.scrollHeight - Math.ceil(_element.scrollTop) <= _element.clientHeight && clientY < 0) {\n event.preventDefault();\n }\n };\n events.on(element, 'touchstart', _saveClientY, { passive: false });\n events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _allowElementScroll = function (event) {\n event.stopPropagation();\n };\n events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n var doc = getDocument();\n if (doc && doc.body && !_bodyScrollDisabledCount) {\n doc.body.classList.add(DisabledScrollClassName);\n doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n }\n _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n if (_bodyScrollDisabledCount > 0) {\n var doc = getDocument();\n if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n doc.body.classList.remove(DisabledScrollClassName);\n doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n }\n _bodyScrollDisabledCount--;\n }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth() {\n if (_scrollbarWidth === undefined) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.setProperty('width', '100px');\n scrollDiv.style.setProperty('height', '100px');\n scrollDiv.style.setProperty('overflow', 'scroll');\n scrollDiv.style.setProperty('position', 'absolute');\n scrollDiv.style.setProperty('top', '-9999px');\n document.body.appendChild(scrollDiv);\n // Get the scrollbar width\n _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n // Delete the DIV\n document.body.removeChild(scrollDiv);\n }\n return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n var el = startingElement;\n var doc = getDocument(startingElement);\n // First do a quick scan for the scrollable attribute.\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n return el;\n }\n el = el.parentElement;\n }\n // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n el = startingElement;\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n var computedStyles = getComputedStyle(el);\n var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n return el;\n }\n }\n el = el.parentElement;\n }\n // Fall back to window scroll.\n if (!el || el === doc.body) {\n el = getWindow(startingElement);\n }\n return el;\n}\n//# sourceMappingURL=scroll.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.sessionStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key, data) {\n var _a;\n try {\n (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.sessionStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=sessionStorage.js.map","import { getWindow } from './dom/getWindow';\nexport var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport var IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\nfunction updateClassList(el, enabled) {\n if (el) {\n el.classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n el.classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - Whether to turn focus visibility on or off.\n * @param target - Optional target from which to get window in case no `providerElem` has been specified.\n * @param registeredProviders - Array of provider refs that are associated with a FocusRectsProvider. If no array\n * is passed in, the classnames are attached to the document body that contains `target`.\n */\nexport function setFocusVisibility(enabled, target, registeredProviders) {\n var _a;\n if (registeredProviders) {\n registeredProviders.forEach(function (ref) { return updateClassList(ref.current, enabled); });\n }\n else {\n updateClassList((_a = getWindow(target)) === null || _a === void 0 ? void 0 : _a.document.body, enabled);\n }\n}\n//# sourceMappingURL=setFocusVisibility.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSetsWithProps } from '@fluentui/merge-styles';\nimport { useCustomizationSettings } from './customizations/useCustomizationSettings';\nvar DefaultFields = ['theme', 'styles'];\nexport function styled(Component, baseStyles, getProps, customizable, pure) {\n customizable = customizable || { scope: '', fields: undefined };\n var scope = customizable.scope, _a = customizable.fields, fields = _a === void 0 ? DefaultFields : _a;\n var Wrapped = React.forwardRef(function (props, forwardedRef) {\n var styles = React.useRef();\n var settings = useCustomizationSettings(fields, scope);\n var customizedStyles = settings.styles, dir = settings.dir, rest = __rest(settings, [\"styles\", \"dir\"]);\n var additionalProps = getProps ? getProps(props) : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var cache = (styles.current && styles.current.__cachedInputs__) || [];\n var propStyles = props.styles;\n if (!styles.current || customizedStyles !== cache[1] || propStyles !== cache[2]) {\n // Using styled components as the Component arg will result in nested styling arrays.\n // The function can be cached and in order to prevent the props from being retained within it's closure\n // we pass in just the styles and not the entire props\n var concatenatedStyles = function (styleProps) {\n return concatStyleSetsWithProps(styleProps, baseStyles, customizedStyles, propStyles);\n };\n // The __cachedInputs__ array is attached to the function and consumed by the\n // classNamesFunction as a list of keys to include for memoizing classnames.\n concatenatedStyles.__cachedInputs__ = [\n baseStyles,\n customizedStyles,\n propStyles,\n ];\n concatenatedStyles.__noStyleOverride__ =\n !customizedStyles && !propStyles;\n styles.current = concatenatedStyles;\n }\n return React.createElement(Component, __assign({ ref: forwardedRef }, rest, additionalProps, props, { styles: styles.current }));\n });\n // Function.prototype.name is an ES6 feature, so the cast to any is required until we're\n // able to drop IE 11 support and compile with ES6 libs\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Wrapped.displayName = \"Styled\" + (Component.displayName || Component.name);\n // This preserves backwards compatibility.\n var pureComponent = pure ? React.memo(Wrapped) : Wrapped;\n // Check if the wrapper has a displayName after it has been memoized. Then assign it to the pure component.\n if (Wrapped.displayName) {\n pureComponent.displayName = Wrapped.displayName;\n }\n return pureComponent;\n}\n//# sourceMappingURL=styled.js.map","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\n/**\n * Hook to get Customizations settings from Customizations singleton or CustomizerContext.\n * It will trigger component state update on settings change observed.\n */\nexport function useCustomizationSettings(properties, scopeName) {\n var forceUpdate = useForceUpdate();\n var customizations = React.useContext(CustomizerContext).customizations;\n var inCustomizerContext = customizations.inCustomizerContext;\n React.useEffect(function () {\n if (!inCustomizerContext) {\n Customizations.observe(forceUpdate);\n }\n return function () {\n if (!inCustomizerContext) {\n Customizations.unobserve(forceUpdate);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate\n }, [inCustomizerContext]);\n return Customizations.getSettings(properties, scopeName, customizations);\n}\nfunction useForceUpdate() {\n var _a = React.useState(0), setValue = _a[1];\n return function () { return setValue(function (value) { return ++value; }); };\n}\n//# sourceMappingURL=useCustomizationSettings.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n _a[KeyCodes.up] = 1,\n _a[KeyCodes.down] = 1,\n _a[KeyCodes.left] = 1,\n _a[KeyCodes.right] = 1,\n _a[KeyCodes.home] = 1,\n _a[KeyCodes.end] = 1,\n _a[KeyCodes.tab] = 1,\n _a[KeyCodes.pageUp] = 1,\n _a[KeyCodes.pageDown] = 1,\n _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n DirectionalKeyCodes[which] = 1;\n}\n/**\n * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to remove global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function removeDirectionalKeyCode(which) {\n delete DirectionalKeyCodes[which];\n}\n//# sourceMappingURL=keyboard.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\nvar mountCounters = new WeakMap();\nvar callbackMap = new WeakMap();\nfunction setMountCounters(key, delta) {\n var newValue;\n var currValue = mountCounters.get(key);\n if (currValue) {\n newValue = currValue + delta;\n }\n else {\n newValue = 1;\n }\n mountCounters.set(key, newValue);\n return newValue;\n}\nfunction setCallbackMap(context) {\n var callbacks = callbackMap.get(context);\n if (callbacks) {\n return callbacks;\n }\n var onMouseDown = function (ev) { return _onMouseDown(ev, context.registeredProviders); };\n var onPointerDown = function (ev) { return _onPointerDown(ev, context.registeredProviders); };\n var onKeyDown = function (ev) { return _onKeyDown(ev, context.registeredProviders); };\n var onKeyUp = function (ev) { return _onKeyUp(ev, context.registeredProviders); };\n callbacks = { onMouseDown: onMouseDown, onPointerDown: onPointerDown, onKeyDown: onKeyDown, onKeyUp: onKeyUp };\n callbackMap.set(context, callbacks);\n return callbacks;\n}\nexport var FocusRectsContext = React.createContext(undefined);\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of\n * the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to\n * call this method multiple times.)\n * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the\n * 'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document\n * body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the\n * current element of the FocusRectsContext providerRef or the document body if no such element is provided via\n * context, and removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n var context = React.useContext(FocusRectsContext);\n React.useEffect(function () {\n var _a, _b;\n var win = getWindow(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return undefined;\n }\n var el = win;\n var onMouseDown;\n var onPointerDown;\n var onKeyDown;\n var onKeyUp;\n if ((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) {\n el = context.providerRef.current;\n var callbacks = setCallbackMap(context);\n onMouseDown = callbacks.onMouseDown;\n onPointerDown = callbacks.onPointerDown;\n onKeyDown = callbacks.onKeyDown;\n onKeyUp = callbacks.onKeyUp;\n }\n else {\n onMouseDown = _onMouseDown;\n onPointerDown = _onPointerDown;\n onKeyDown = _onKeyDown;\n onKeyUp = _onKeyUp;\n }\n var count = setMountCounters(el, 1);\n if (count <= 1) {\n el.addEventListener('mousedown', onMouseDown, true);\n el.addEventListener('pointerdown', onPointerDown, true);\n el.addEventListener('keydown', onKeyDown, true);\n el.addEventListener('keyup', onKeyUp, true);\n }\n return function () {\n var _a;\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return;\n }\n count = setMountCounters(el, -1);\n if (count === 0) {\n el.removeEventListener('mousedown', onMouseDown, true);\n el.removeEventListener('pointerdown', onPointerDown, true);\n el.removeEventListener('keydown', onKeyDown, true);\n el.removeEventListener('keyup', onKeyUp, true);\n }\n };\n }, [context, rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n useFocusRects(props.rootRef);\n return null;\n};\nfunction _onMouseDown(ev, registeredProviders) {\n setFocusVisibility(false, ev.target, registeredProviders);\n}\nfunction _onPointerDown(ev, registeredProviders) {\n if (ev.pointerType !== 'mouse') {\n setFocusVisibility(false, ev.target, registeredProviders);\n }\n}\n// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when\n// attaching the listeners and classnames to the provider instead of the document body.\n// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider\n// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired.\n// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements\n// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for\n// every element that is being tabbed into.\n// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList\n// when focus visibility is turned on.\nfunction _onKeyDown(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\nfunction _onKeyUp(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\n//# sourceMappingURL=useFocusRects.js.map","import * as React from 'react';\nimport { canUseDOM } from './dom/canUseDOM';\n/**\n * React currently throws a warning when using `useLayoutEffect` on the server. To get around it,\n * this hook calls `useEffect` on the server (no-op) and `useLayoutEffect` in the browser.\n *\n * Prefer `useEffect` unless you have a specific need to do something after mount and before paint,\n * such as to avoid a render flash for certain operations.\n *\n * Server-side rendering is detected based on `canUseDOM` from `@fluentui/utilities`.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */\n// eslint-disable-next-line no-restricted-properties\nexport var useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n if (condition === true && process.env.NODE_ENV !== 'production') {\n for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n var requiredPropName = requiredProps_1[_i];\n if (!(requiredPropName in props)) {\n warn(componentName + \" property '\" + requiredPropName + \"' is required when '\" + conditionalPropName + \"' is used.'\");\n }\n }\n }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { warn } from './warn';\n/**\n * Warns when a deprecated props are being used.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\nexport function warnDeprecations(componentName, props, deprecationMap) {\n if (process.env.NODE_ENV !== 'production') {\n for (var propName in deprecationMap) {\n if (props && propName in props) {\n var deprecationMessage = componentName + \" property '\" + propName + \"' was used but has been deprecated.\";\n var replacementPropName = deprecationMap[propName];\n if (replacementPropName) {\n deprecationMessage += \" Use '\" + replacementPropName + \"' instead.\";\n }\n warn(deprecationMessage);\n }\n }\n }\n}\n//# sourceMappingURL=warnDeprecations.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n var isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n }\n else {\n isContained = false;\n while (child) {\n var nextParent = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n }\n }\n else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction) {\n if (!element || element === document.body) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n return (child &&\n ((allowVirtualParents && getVirtualParent(child)) || (child.parentNode && child.parentNode)));\n}\n//# sourceMappingURL=getParent.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n var parent;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent) {\n var elementMatch = findElementRecursive(target, function (testElement) { return parent === testElement || testElement.hasAttribute(DATA_PORTAL_ATTRIBUTE); });\n return elementMatch !== null && elementMatch.hasAttribute(DATA_PORTAL_ATTRIBUTE);\n}\n//# sourceMappingURL=portalContainsElement.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"AX\": [\n \"H\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"AR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CL\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BO\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-EC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-PE\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"GT\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"HN\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MX\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"NI\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"PY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"SV\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"UY\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"JP\": [\n \"H\",\n \"h\",\n \"K\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BO\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"EC\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"PE\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \" \\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n return _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \" \\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \" \\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \" \\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage ? 'default message' : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i; // TODO: this needs to support fass\n// TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.2.1\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded$1 = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded$1);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar _excluded = [\"forwardedRef\"];\nfunction FontAwesomeIcon(_ref) {\n var forwardedRef = _ref.forwardedRef,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: forwardedRef\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n}\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","/*\n * Application Insights JavaScript SDK - Common, 2.8.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Store the theming state in __themeState__ global scope for reuse in the case of duplicate\n// load-themed-styles hosted on the page.\nvar _root = typeof window === 'undefined' ? global : window; // eslint-disable-line @typescript-eslint/no-explicit-any\n// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).\nvar _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;\nvar _themeState = initializeThemeState();\n/**\n * Matches theming tokens. For example, \"[theme: themeSlotName, default: #FFF]\" (including the quotes).\n */\nvar _themeTokenRegex = /[\\'\\\"]\\[theme:\\s*(\\w+)\\s*(?:\\,\\s*default:\\s*([\\\\\"\\']?[\\.\\,\\(\\)\\#\\-\\s\\w]*[\\.\\,\\(\\)\\#\\-\\w][\\\"\\']?))?\\s*\\][\\'\\\"]/g;\nvar now = function () {\n return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();\n};\nfunction measure(func) {\n var start = now();\n func();\n var end = now();\n _themeState.perf.duration += end - start;\n}\n/**\n * initialize global state object\n */\nfunction initializeThemeState() {\n var state = _root.__themeState__ || {\n theme: undefined,\n lastStyleElement: undefined,\n registeredStyles: []\n };\n if (!state.runState) {\n state = __assign(__assign({}, state), { perf: {\n count: 0,\n duration: 0\n }, runState: {\n flushTimer: 0,\n mode: 0 /* Mode.sync */,\n buffer: []\n } });\n }\n if (!state.registeredThemableStyles) {\n state = __assign(__assign({}, state), { registeredThemableStyles: [] });\n }\n _root.__themeState__ = state;\n return state;\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load\n * event is fired.\n * @param {string | ThemableArray} styles Themable style text to register.\n * @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.\n */\nexport function loadStyles(styles, loadAsync) {\n if (loadAsync === void 0) { loadAsync = false; }\n measure(function () {\n var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);\n var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;\n if (loadAsync || mode === 1 /* Mode.async */) {\n buffer.push(styleParts);\n if (!flushTimer) {\n _themeState.runState.flushTimer = asyncLoadStyles();\n }\n }\n else {\n applyThemableStyles(styleParts);\n }\n });\n}\n/**\n * Allows for customizable loadStyles logic. e.g. for server side rendering application\n * @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}\n * a loadStyles callback that gets called when styles are loaded or reloaded\n */\nexport function configureLoadStyles(loadStylesFn) {\n _themeState.loadStyles = loadStylesFn;\n}\n/**\n * Configure run mode of load-themable-styles\n * @param mode load-themable-styles run mode, async or sync\n */\nexport function configureRunMode(mode) {\n _themeState.runState.mode = mode;\n}\n/**\n * external code can call flush to synchronously force processing of currently buffered styles\n */\nexport function flush() {\n measure(function () {\n var styleArrays = _themeState.runState.buffer.slice();\n _themeState.runState.buffer = [];\n var mergedStyleArray = [].concat.apply([], styleArrays);\n if (mergedStyleArray.length > 0) {\n applyThemableStyles(mergedStyleArray);\n }\n });\n}\n/**\n * register async loadStyles\n */\nfunction asyncLoadStyles() {\n return setTimeout(function () {\n _themeState.runState.flushTimer = 0;\n flush();\n }, 0);\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load event\n * is fired.\n * @param {string} styleText Style to register.\n * @param {IStyleRecord} styleRecord Existing style record to re-apply.\n */\nfunction applyThemableStyles(stylesArray, styleRecord) {\n if (_themeState.loadStyles) {\n _themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);\n }\n else {\n registerStyles(stylesArray);\n }\n}\n/**\n * Registers a set theme tokens to find and replace. If styles were already registered, they will be\n * replaced.\n * @param {theme} theme JSON object of theme tokens to values.\n */\nexport function loadTheme(theme) {\n _themeState.theme = theme;\n // reload styles.\n reloadStyles();\n}\n/**\n * Clear already registered style elements and style records in theme_State object\n * @param option - specify which group of registered styles should be cleared.\n * Default to be both themable and non-themable styles will be cleared\n */\nexport function clearStyles(option) {\n if (option === void 0) { option = 3 /* ClearStyleOptions.all */; }\n if (option === 3 /* ClearStyleOptions.all */ || option === 2 /* ClearStyleOptions.onlyNonThemable */) {\n clearStylesInternal(_themeState.registeredStyles);\n _themeState.registeredStyles = [];\n }\n if (option === 3 /* ClearStyleOptions.all */ || option === 1 /* ClearStyleOptions.onlyThemable */) {\n clearStylesInternal(_themeState.registeredThemableStyles);\n _themeState.registeredThemableStyles = [];\n }\n}\nfunction clearStylesInternal(records) {\n records.forEach(function (styleRecord) {\n var styleElement = styleRecord && styleRecord.styleElement;\n if (styleElement && styleElement.parentElement) {\n styleElement.parentElement.removeChild(styleElement);\n }\n });\n}\n/**\n * Reloads styles.\n */\nfunction reloadStyles() {\n if (_themeState.theme) {\n var themableStyles = [];\n for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {\n var styleRecord = _a[_i];\n themableStyles.push(styleRecord.themableStyle);\n }\n if (themableStyles.length > 0) {\n clearStyles(1 /* ClearStyleOptions.onlyThemable */);\n applyThemableStyles([].concat.apply([], themableStyles));\n }\n }\n}\n/**\n * Find theme tokens and replaces them with provided theme values.\n * @param {string} styles Tokenized styles to fix.\n */\nexport function detokenize(styles) {\n if (styles) {\n styles = resolveThemableArray(splitStyles(styles)).styleString;\n }\n return styles;\n}\n/**\n * Resolves ThemingInstruction objects in an array and joins the result into a string.\n * @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.\n */\nfunction resolveThemableArray(splitStyleArray) {\n var theme = _themeState.theme;\n var themable = false;\n // Resolve the array of theming instructions to an array of strings.\n // Then join the array to produce the final CSS string.\n var resolvedArray = (splitStyleArray || []).map(function (currentValue) {\n var themeSlot = currentValue.theme;\n if (themeSlot) {\n themable = true;\n // A theming annotation. Resolve it.\n var themedValue = theme ? theme[themeSlot] : undefined;\n var defaultValue = currentValue.defaultValue || 'inherit';\n // Warn to console if we hit an unthemed value even when themes are provided, but only if \"DEBUG\" is true.\n // Allow the themedValue to be undefined to explicitly request the default value.\n if (theme &&\n !themedValue &&\n console &&\n !(themeSlot in theme) &&\n typeof DEBUG !== 'undefined' &&\n DEBUG) {\n console.warn(\"Theming value not provided for \\\"\".concat(themeSlot, \"\\\". Falling back to \\\"\").concat(defaultValue, \"\\\".\"));\n }\n return themedValue || defaultValue;\n }\n else {\n // A non-themable string. Preserve it.\n return currentValue.rawString;\n }\n });\n return {\n styleString: resolvedArray.join(''),\n themable: themable\n };\n}\n/**\n * Split tokenized CSS into an array of strings and theme specification objects\n * @param {string} styles Tokenized styles to split.\n */\nexport function splitStyles(styles) {\n var result = [];\n if (styles) {\n var pos = 0; // Current position in styles.\n var tokenMatch = void 0;\n while ((tokenMatch = _themeTokenRegex.exec(styles))) {\n var matchIndex = tokenMatch.index;\n if (matchIndex > pos) {\n result.push({\n rawString: styles.substring(pos, matchIndex)\n });\n }\n result.push({\n theme: tokenMatch[1],\n defaultValue: tokenMatch[2] // May be undefined\n });\n // index of the first character after the current match\n pos = _themeTokenRegex.lastIndex;\n }\n // Push the rest of the string after the last match.\n result.push({\n rawString: styles.substring(pos)\n });\n }\n return result;\n}\n/**\n * Registers a set of style text. If it is registered too early, we will register it when the\n * window.load event is fired.\n * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.\n * @param {IStyleRecord} styleRecord May specify a style Element to update.\n */\nfunction registerStyles(styleArray) {\n if (typeof document === 'undefined') {\n return;\n }\n var head = document.getElementsByTagName('head')[0];\n var styleElement = document.createElement('style');\n var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;\n styleElement.setAttribute('data-load-themed-styles', 'true');\n if (_styleNonce) {\n styleElement.setAttribute('nonce', _styleNonce);\n }\n styleElement.appendChild(document.createTextNode(styleString));\n _themeState.perf.count++;\n head.appendChild(styleElement);\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('styleinsert', true /* bubbleEvent */, false /* cancelable */);\n ev.args = {\n newStyle: styleElement\n };\n document.dispatchEvent(ev);\n var record = {\n styleElement: styleElement,\n themableStyle: styleArray\n };\n if (themable) {\n _themeState.registeredThemableStyles.push(record);\n }\n else {\n _themeState.registeredStyles.push(record);\n }\n}\n//# sourceMappingURL=index.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=AccessTokenHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n//# sourceMappingURL=Errors.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"7.0.10\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n constructor(connection, logger, protocol, reconnectPolicy) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=HubConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */ || this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","!function(e,n){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(\"microsoftTeams\",[],n):\"object\"==typeof exports?exports.microsoftTeams=n():e.microsoftTeams=n()}(window,function(){return function(t){var r={};function o(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=r,o.d=function(e,n,t){o.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},o.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},o.t=function(n,e){if(1&e&&(n=o(n)),8&e)return n;if(4&e&&\"object\"==typeof n&&n&&n.__esModule)return n;var t=Object.create(null);if(o.r(t),Object.defineProperty(t,\"default\",{enumerable:!0,value:n}),2&e&&\"string\"!=typeof n)for(var r in n)o.d(t,r,function(e){return n[e]}.bind(null,r));return t},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,\"a\",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p=\"\",o(o.s=19)}([function(e,n,t){\"use strict\";var r=this&&this.__spreadArray||function(e,n,t){if(t||2===arguments.length)for(var r,o=0,i=n.length;oNumber(r[i])?1:-1;return 0},n.generateGUID=function(){return r.v4()}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.ErrorCode=n.FileOpenPreference=void 0,function(e){e.Inline=\"inline\",e.Desktop=\"desktop\",e.Web=\"web\"}(n.FileOpenPreference||(n.FileOpenPreference={})),function(e){e[e.NOT_SUPPORTED_ON_PLATFORM=100]=\"NOT_SUPPORTED_ON_PLATFORM\",e[e.INTERNAL_ERROR=500]=\"INTERNAL_ERROR\",e[e.NOT_SUPPORTED_IN_CURRENT_CONTEXT=501]=\"NOT_SUPPORTED_IN_CURRENT_CONTEXT\",e[e.PERMISSION_DENIED=1e3]=\"PERMISSION_DENIED\",e[e.NETWORK_ERROR=2e3]=\"NETWORK_ERROR\",e[e.NO_HW_SUPPORT=3e3]=\"NO_HW_SUPPORT\",e[e.INVALID_ARGUMENTS=4e3]=\"INVALID_ARGUMENTS\",e[e.UNAUTHORIZED_USER_OPERATION=5e3]=\"UNAUTHORIZED_USER_OPERATION\",e[e.INSUFFICIENT_RESOURCES=6e3]=\"INSUFFICIENT_RESOURCES\",e[e.THROTTLE=7e3]=\"THROTTLE\",e[e.USER_ABORT=8e3]=\"USER_ABORT\",e[e.OPERATION_TIMED_OUT=8001]=\"OPERATION_TIMED_OUT\",e[e.OLD_PLATFORM=9e3]=\"OLD_PLATFORM\",e[e.FILE_NOT_FOUND=404]=\"FILE_NOT_FOUND\",e[e.SIZE_EXCEEDED=1e4]=\"SIZE_EXCEEDED\"}(n.ErrorCode||(n.ErrorCode={}))},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.GlobalVars=void 0;var r=function(){function e(){}return e.initializeCalled=!1,e.initializeCompleted=!1,e.additionalValidOrigins=[],e.additionalValidOriginsRegexp=null,e.initializeCallbacks=[],e.isFramelessWindow=!1,e.printCapabilityEnabled=!1,e}();n.GlobalVars=r},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.stageView=n.sharing=n.video=n.people=n.monetization=n.meeting=n.location=n.media=n.menus=n.ParentAppWindow=n.ChildAppWindow=n.tasks=n.settings=n.navigateToTab=n.navigateCrossDomain=n.navigateBack=n.returnFocus=n.shareDeepLink=n.setFrameContext=n.registerAppButtonHoverLeaveHandler=n.registerAppButtonHoverEnterHandler=n.registerAppButtonClickHandler=n.registerOnThemeChangeHandler=n.registerOnLoadHandler=n.registerFullScreenHandler=n.registerChangeSettingsHandler=n.registerFocusEnterHandler=n.registerBeforeUnloadHandler=n.registerBackButtonHandler=n.print=n.initializeWithFrameContext=n.initialize=n.getTabInstances=n.getMruTabInstances=n.getContext=n.executeDeepLink=n.enablePrintCapability=n.FileOpenPreference=n.ErrorCode=n.ChannelType=n.UserTeamRole=n.TeamType=n.TaskModuleDimension=n.HostClientType=n.FrameContexts=n.authentication=n.appInitialization=void 0;var r=t(25);Object.defineProperty(n,\"appInitialization\",{enumerable:!0,get:function(){return r.appInitialization}});var o=t(11);Object.defineProperty(n,\"authentication\",{enumerable:!0,get:function(){return o.authentication}});var i=t(2);Object.defineProperty(n,\"FrameContexts\",{enumerable:!0,get:function(){return i.FrameContexts}}),Object.defineProperty(n,\"HostClientType\",{enumerable:!0,get:function(){return i.HostClientType}}),Object.defineProperty(n,\"TaskModuleDimension\",{enumerable:!0,get:function(){return i.TaskModuleDimension}}),Object.defineProperty(n,\"TeamType\",{enumerable:!0,get:function(){return i.TeamType}}),Object.defineProperty(n,\"UserTeamRole\",{enumerable:!0,get:function(){return i.UserTeamRole}}),Object.defineProperty(n,\"ChannelType\",{enumerable:!0,get:function(){return i.ChannelType}});var a=t(6);Object.defineProperty(n,\"ErrorCode\",{enumerable:!0,get:function(){return a.ErrorCode}}),Object.defineProperty(n,\"FileOpenPreference\",{enumerable:!0,get:function(){return a.FileOpenPreference}});var s=t(26);Object.defineProperty(n,\"enablePrintCapability\",{enumerable:!0,get:function(){return s.enablePrintCapability}}),Object.defineProperty(n,\"executeDeepLink\",{enumerable:!0,get:function(){return s.executeDeepLink}}),Object.defineProperty(n,\"getContext\",{enumerable:!0,get:function(){return s.getContext}}),Object.defineProperty(n,\"getMruTabInstances\",{enumerable:!0,get:function(){return s.getMruTabInstances}}),Object.defineProperty(n,\"getTabInstances\",{enumerable:!0,get:function(){return s.getTabInstances}}),Object.defineProperty(n,\"initialize\",{enumerable:!0,get:function(){return s.initialize}}),Object.defineProperty(n,\"initializeWithFrameContext\",{enumerable:!0,get:function(){return s.initializeWithFrameContext}}),Object.defineProperty(n,\"print\",{enumerable:!0,get:function(){return s.print}}),Object.defineProperty(n,\"registerBackButtonHandler\",{enumerable:!0,get:function(){return s.registerBackButtonHandler}}),Object.defineProperty(n,\"registerBeforeUnloadHandler\",{enumerable:!0,get:function(){return s.registerBeforeUnloadHandler}}),Object.defineProperty(n,\"registerFocusEnterHandler\",{enumerable:!0,get:function(){return s.registerFocusEnterHandler}}),Object.defineProperty(n,\"registerChangeSettingsHandler\",{enumerable:!0,get:function(){return s.registerChangeSettingsHandler}}),Object.defineProperty(n,\"registerFullScreenHandler\",{enumerable:!0,get:function(){return s.registerFullScreenHandler}}),Object.defineProperty(n,\"registerOnLoadHandler\",{enumerable:!0,get:function(){return s.registerOnLoadHandler}}),Object.defineProperty(n,\"registerOnThemeChangeHandler\",{enumerable:!0,get:function(){return s.registerOnThemeChangeHandler}}),Object.defineProperty(n,\"registerAppButtonClickHandler\",{enumerable:!0,get:function(){return s.registerAppButtonClickHandler}}),Object.defineProperty(n,\"registerAppButtonHoverEnterHandler\",{enumerable:!0,get:function(){return s.registerAppButtonHoverEnterHandler}}),Object.defineProperty(n,\"registerAppButtonHoverLeaveHandler\",{enumerable:!0,get:function(){return s.registerAppButtonHoverLeaveHandler}}),Object.defineProperty(n,\"setFrameContext\",{enumerable:!0,get:function(){return s.setFrameContext}}),Object.defineProperty(n,\"shareDeepLink\",{enumerable:!0,get:function(){return s.shareDeepLink}});var l=t(27);Object.defineProperty(n,\"returnFocus\",{enumerable:!0,get:function(){return l.returnFocus}}),Object.defineProperty(n,\"navigateBack\",{enumerable:!0,get:function(){return l.navigateBack}}),Object.defineProperty(n,\"navigateCrossDomain\",{enumerable:!0,get:function(){return l.navigateCrossDomain}}),Object.defineProperty(n,\"navigateToTab\",{enumerable:!0,get:function(){return l.navigateToTab}});var u=t(12);Object.defineProperty(n,\"settings\",{enumerable:!0,get:function(){return u.settings}});var d=t(28);Object.defineProperty(n,\"tasks\",{enumerable:!0,get:function(){return d.tasks}});var c=t(16);Object.defineProperty(n,\"ChildAppWindow\",{enumerable:!0,get:function(){return c.ChildAppWindow}}),Object.defineProperty(n,\"ParentAppWindow\",{enumerable:!0,get:function(){return c.ParentAppWindow}});var g=t(15);Object.defineProperty(n,\"menus\",{enumerable:!0,get:function(){return g.menus}});var m=t(17);Object.defineProperty(n,\"media\",{enumerable:!0,get:function(){return m.media}});var f=t(29);Object.defineProperty(n,\"location\",{enumerable:!0,get:function(){return f.location}});var p=t(30);Object.defineProperty(n,\"meeting\",{enumerable:!0,get:function(){return p.meeting}});var C=t(31);Object.defineProperty(n,\"monetization\",{enumerable:!0,get:function(){return C.monetization}});var h=t(32);Object.defineProperty(n,\"people\",{enumerable:!0,get:function(){return h.people}});var b=t(33);Object.defineProperty(n,\"video\",{enumerable:!0,get:function(){return b.video}});var v=t(34);Object.defineProperty(n,\"sharing\",{enumerable:!0,get:function(){return v.sharing}});var y=t(35);Object.defineProperty(n,\"stageView\",{enumerable:!0,get:function(){return y.stageView}})},function(e,n){var t,r,o=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||\"undefined\"!=typeof msCrypto&&\"function\"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);o?(t=new Uint8Array(16),e.exports=function(){return o(t),t}):(r=new Array(16),e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),r[n]=e>>>((3&n)<<3)&255;return r})},function(e,n){for(var r=[],t=0;t<256;++t)r[t]=(t+256).toString(16).substr(1);e.exports=function(e,n){var t=n||0;return[(n=r)[e[t++]],n[e[t++]],n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],\"-\",n[e[t++]],n[e[t++]],n[e[t++]],n[e[t++]],n[e[t++]],n[e[+t]]].join(\"\")}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.authentication=void 0;var c=t(1),g=t(7),m=t(2),f=t(0),p=t(3);!function(e){var i,n;function a(){t();try{f.Communication.childWindow&&f.Communication.childWindow.close()}finally{f.Communication.childWindow=null,f.Communication.childOrigin=null}}function r(e){i=e,a();var n=i.width||600,t=i.height||400,n=Math.min(n,f.Communication.currentWindow.outerWidth-400),t=Math.min(t,f.Communication.currentWindow.outerHeight-200),r=document.createElement(\"a\");r.href=i.url.replace(\"{oauthRedirectMethod}\",\"web\");var o=void 0!==f.Communication.currentWindow.screenLeft?f.Communication.currentWindow.screenLeft:f.Communication.currentWindow.screenX,e=void 0!==f.Communication.currentWindow.screenTop?f.Communication.currentWindow.screenTop:f.Communication.currentWindow.screenY;o+=f.Communication.currentWindow.outerWidth/2-n/2,e+=f.Communication.currentWindow.outerHeight/2-t/2,f.Communication.childWindow=f.Communication.currentWindow.open(r.href,\"_blank\",\"toolbar=no, location=yes, status=no, menubar=no, scrollbars=yes, top=\"+e+\", left=\"+o+\", width=\"+n+\", height=\"+t),f.Communication.childWindow?s():l(\"FailedToOpenWindow\")}function t(){n&&(clearInterval(n),n=0),(0,p.removeHandler)(\"initialize\"),(0,p.removeHandler)(\"navigateCrossDomain\")}function s(){t(),n=f.Communication.currentWindow.setInterval(function(){if(!f.Communication.childWindow||f.Communication.childWindow.closed)l(\"CancelledByUser\");else{var e=f.Communication.childOrigin;try{f.Communication.childOrigin=\"*\",(0,f.sendMessageEventToChild)(\"ping\")}finally{f.Communication.childOrigin=e}}},100),(0,p.registerHandler)(\"initialize\",function(){return[m.FrameContexts.authentication,g.GlobalVars.hostClientType]}),(0,p.registerHandler)(\"navigateCrossDomain\",function(){return!1})}function o(e){try{i&&i.successCallback&&i.successCallback(e)}finally{i=null,a()}}function l(e){try{i&&i.failureCallback&&i.failureCallback(e)}finally{i=null,a()}}function u(e,n,t){var r;e&&((r=document.createElement(\"a\")).href=decodeURIComponent(e),r.host&&r.host!==window.location.host&&\"outlook.office.com\"===r.host&&-1n.sequence?1:-1}),e.forEach(function(e){e.sequence==r&&(t=t?new Blob([t,e.file],{type:n}):new Blob([e.file],{type:n}),r++)}),t},n.decodeAttachment=function(e,n){if(null==e||null==n)return null;for(var t=atob(e.chunk),r=new Array(t.length),o=0;o>>24&255,o[r++]=t>>>16&255,o[r++]=t>>>8&255,o[r++]=255&t,s=s/4294967296*1e4&268435455,o[r++]=s>>>8&255,o[r++]=255&s,o[r++]=s>>>24&15|16,o[r++]=s>>>16&255,o[r++]=a>>>8|128,o[r++]=255&a;for(var u=0;u<6;++u)o[r+u]=i[u];return n||m(o)}},function(e,n,t){var a=t(9),s=t(10);e.exports=function(e,n,t){var r=n&&t||0;\"string\"==typeof e&&(n=\"binary\"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,n)for(var i=0;i<16;++i)n[r+i]=o[i];return n||s(o)}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.appInitialization=void 0;var r=t(1),o=t(4),i=t(0);!function(n){n.Messages={AppLoaded:\"appInitialization.appLoaded\",Success:\"appInitialization.success\",Failure:\"appInitialization.failure\",ExpectedFailure:\"appInitialization.expectedFailure\"},function(e){e.AuthFailed=\"AuthFailed\",e.Timeout=\"Timeout\",e.Other=\"Other\"}(n.FailedReason||(n.FailedReason={})),function(e){e.PermissionError=\"PermissionError\",e.NotFound=\"NotFound\",e.Throttling=\"Throttling\",e.Offline=\"Offline\",e.Other=\"Other\"}(n.ExpectedFailureReason||(n.ExpectedFailureReason={})),n.notifyAppLoaded=function(){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.AppLoaded,[o.version])},n.notifySuccess=function(){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.Success,[o.version])},n.notifyFailure=function(e){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.Failure,[e.reason,e.message])},n.notifyExpectedFailure=function(e){(0,r.ensureInitialized)(),(0,i.sendMessageToParent)(n.Messages.ExpectedFailure,[e.reason,e.message])}}(n.appInitialization||(n.appInitialization={}))},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.initializeWithFrameContext=n.setFrameContext=n.executeDeepLink=n.shareDeepLink=n.getMruTabInstances=n.getTabInstances=n.registerChangeSettingsHandler=n.registerFocusEnterHandler=n.registerBeforeUnloadHandler=n.registerOnLoadHandler=n.registerBackButtonHandler=n.registerAppButtonHoverLeaveHandler=n.registerAppButtonHoverEnterHandler=n.registerAppButtonClickHandler=n.registerFullScreenHandler=n.registerOnThemeChangeHandler=n.getContext=n.print=n.enablePrintCapability=n._uninitialize=n._initialize=n.initialize=void 0;var r=t(1),o=t(7),i=t(4),a=t(12),s=t(5),l=t(13),u=t(2),d=t(0),c=t(11),g=t(14),m=t(15),f=t(3);function p(e,n){o.GlobalVars.initializeCalled||(o.GlobalVars.initializeCalled=!0,f.initializeHandlers(),(0,d.initializeCommunication)(function(e,n,t){void 0===t&&(t=i.defaultSDKVersionForCompatCheck),o.GlobalVars.frameContext=e,o.GlobalVars.hostClientType=n,o.GlobalVars.clientSupportedSDKVersion=t,o.GlobalVars.initializeCallbacks.forEach(function(e){return e()}),o.GlobalVars.initializeCallbacks=[],o.GlobalVars.initializeCompleted=!0},n),c.authentication.initialize(),a.settings.initialize(),m.menus.initialize(),(0,g.initializePrivateApis)()),Array.isArray(n)&&(0,r.processAdditionalValidOrigins)(n),e&&(o.GlobalVars.initializeCompleted?e():o.GlobalVars.initializeCallbacks.push(e))}function C(){window.print()}function h(e){(0,r.ensureInitialized)(),f.registerOnThemeChangeHandler(e)}function b(e){(0,r.ensureInitialized)(),f.registerHandler(\"fullScreenChange\",e)}function v(e){(0,r.ensureInitialized)(),f.registerBackButtonHandler(e)}function y(e){(0,r.ensureInitialized)(),f.registerOnLoadHandler(e)}function P(e){(0,r.ensureInitialized)(),f.registerBeforeUnloadHandler(e)}function T(e){(0,r.ensureInitialized)(),f.registerFocusEnterHandler(e)}function w(e){(0,r.ensureInitialized)(u.FrameContexts.content),(0,d.sendMessageToParent)(\"setFrameContext\",[e])}n.initialize=p,n._initialize=function(e){d.Communication.currentWindow=e},n._uninitialize=function(){o.GlobalVars.initializeCalled&&(o.GlobalVars.frameContext&&(h(null),b(null),v(null),P(null),T(null),y(null),l.logs.registerGetLogHandler(null)),o.GlobalVars.frameContext===u.FrameContexts.settings&&a.settings.registerOnSaveHandler(null),o.GlobalVars.frameContext===u.FrameContexts.remove&&a.settings.registerOnRemoveHandler(null),o.GlobalVars.initializeCalled=!1,o.GlobalVars.initializeCompleted=!1,o.GlobalVars.initializeCallbacks=[],o.GlobalVars.additionalValidOrigins=[],o.GlobalVars.frameContext=null,o.GlobalVars.hostClientType=null,(o.GlobalVars.isFramelessWindow=!1,d.uninitializeCommunication)())},n.enablePrintCapability=function(){o.GlobalVars.printCapabilityEnabled||(o.GlobalVars.printCapabilityEnabled=!0,(0,r.ensureInitialized)(),document.addEventListener(\"keydown\",function(e){(e.ctrlKey||e.metaKey)&&80===e.keyCode&&(C(),e.cancelBubble=!0,e.preventDefault(),e.stopImmediatePropagation())}))},n.print=C,n.getContext=function(n){(0,r.ensureInitialized)(),(0,d.sendMessageToParent)(\"getContext\",function(e){e.frameContext||(e.frameContext=o.GlobalVars.frameContext),n(e)})},n.registerOnThemeChangeHandler=h,n.registerFullScreenHandler=b,n.registerAppButtonClickHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"appButtonClick\",e)},n.registerAppButtonHoverEnterHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"appButtonHoverEnter\",e)},n.registerAppButtonHoverLeaveHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"appButtonHoverLeave\",e)},n.registerBackButtonHandler=v,n.registerOnLoadHandler=y,n.registerBeforeUnloadHandler=P,n.registerFocusEnterHandler=T,n.registerChangeSettingsHandler=function(e){(0,r.ensureInitialized)(u.FrameContexts.content),f.registerHandler(\"changeSettings\",e)},n.getTabInstances=function(e,n){(0,r.ensureInitialized)(),(0,d.sendMessageToParent)(\"getTabInstances\",[n],e)},n.getMruTabInstances=function(e,n){(0,r.ensureInitialized)(),(0,d.sendMessageToParent)(\"getMruTabInstances\",[n],e)},n.shareDeepLink=function(e){(0,r.ensureInitialized)(u.FrameContexts.content,u.FrameContexts.sidePanel,u.FrameContexts.meetingStage),(0,d.sendMessageToParent)(\"shareDeepLink\",[e.subEntityId,e.subEntityLabel,e.subEntityWebUrl])},n.executeDeepLink=function(e,n){(0,r.ensureInitialized)(u.FrameContexts.content,u.FrameContexts.sidePanel,u.FrameContexts.settings,u.FrameContexts.task,u.FrameContexts.stage,u.FrameContexts.meetingStage),(0,d.sendMessageToParent)(\"executeDeepLink\",[e],n||(0,s.getGenericOnCompleteHandler)())},n.setFrameContext=w,n.initializeWithFrameContext=function(e,n,t){p(n,t),w(e)}},function(e,n,t){\"use strict\";Object.defineProperty(n,\"__esModule\",{value:!0}),n.navigateBack=n.navigateCrossDomain=n.navigateToTab=n.returnFocus=void 0;var r=t(1),o=t(5),i=t(2),a=t(0);n.returnFocus=function(e){(0,r.ensureInitialized)(),(0,a.sendMessageToParent)(\"returnFocus\",[e])},n.navigateToTab=function(e,n){(0,r.ensureInitialized)(),(0,a.sendMessageToParent)(\"navigateToTab\",[e],n||(0,o.getGenericOnCompleteHandler)(\"Invalid internalTabInstanceId and/or channelId were/was provided\"))},n.navigateCrossDomain=function(e,n){(0,r.ensureInitialized)(i.FrameContexts.content,i.FrameContexts.sidePanel,i.FrameContexts.settings,i.FrameContexts.remove,i.FrameContexts.task,i.FrameContexts.stage,i.FrameContexts.meetingStage),(0,a.sendMessageToParent)(\"navigateCrossDomain\",[e],n||(0,o.getGenericOnCompleteHandler)(\"Cross-origin navigation is only supported for URLs matching the pattern registered in the manifest.\"))},n.navigateBack=function(e){(0,r.ensureInitialized)(),(0,a.sendMessageToParent)(\"navigateBack\",[],e||(0,o.getGenericOnCompleteHandler)(\"Back navigation is not supported in the current client or context.\"))}},function(e,n,t){\"use strict\";var r=this&&this.__rest||function(e,n){var t={};for(o in e)Object.prototype.hasOwnProperty.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols)for(var r=0,o=Object.getOwnPropertySymbols(e);r ' + reference + '' + div.innerHTML +\n '' + '');\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 var regExp = RegExp;\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 var regExp = RegExp;\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, option);\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, option) {\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, option);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[\"\" + i] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\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 if (fValue === '0' && option && option.format === '0') {\n return fValue + curData.nend;\n }\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, option) {\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 var str = value + '';\n if (str[0] === '0' && option && option.format === '###.00') {\n str = str.slice(1);\n }\n return str;\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 var regExp = RegExp;\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 regExp = RegExp;\nvar parseRegex = new regExp('^([^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';\nvar regExp = RegExp;\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 /* eslint-disable */\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 = new regExp(\"(^[ncpae]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.currencyFormatRegex = new regExp(\"(^[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 dOptions.isCustomFormat = true;\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 // eslint-disable-next-line\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 * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\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 && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {\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 { isNullOrUndefined as isNOU, isObject, merge } from './util';\n/**\n * The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server.\n * ```typescript\n * var fetchApi = new Fetch('index.html', 'GET');\n * fetchApi.send()\n * .then((value) => {\n * console.log(value);\n * }).catch((error) => {\n * console.log(error);\n * });\n * ```\n */\nvar Fetch = /** @class */ (function () {\n /**\n * Constructor for Fetch class.\n *\n * @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent.\n * @param {string} type - Specifies which request method is to be used, such as GET, POST, etc.\n * @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource.\n */\n function Fetch(options, type, contentType) {\n /**\n * Specifies which request method is to be used, such as GET, POST, etc.\n *\n * @default GET\n */\n this.type = 'GET';\n /**\n * A boolean value indicating whether to reject the promise or not.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n if (typeof options === 'string') {\n this.url = options;\n this.type = !isNOU(type) ? type.toUpperCase() : this.type;\n this.contentType = contentType;\n }\n else if (isObject(options) && Object.keys(options).length > 0) {\n merge(this, options);\n }\n this.contentType = !isNOU(this.contentType) ? this.contentType : 'application/json; charset=utf-8';\n }\n /**\n * Send the request to server.\n *\n * @param {string|Object} data - Specifies the data that needs to be added to the request.\n * @returns {Promise} - Returns the response to a request.\n */\n Fetch.prototype.send = function (data) {\n var _this = this;\n var contentTypes = {\n 'application/json': 'json',\n 'multipart/form-data': 'formData',\n 'application/octet-stream': 'blob',\n 'application/x-www-form-urlencoded': 'formData'\n };\n try {\n if (isNOU(this.fetchRequest) && this.type === 'GET') {\n this.fetchRequest = new Request(this.url, { method: this.type });\n }\n else if (isNOU(this.fetchRequest)) {\n this.data = !isNOU(data) ? data : this.data;\n this.fetchRequest = new Request(this.url, {\n method: this.type,\n headers: { 'Content-Type': this.contentType },\n body: this.data\n });\n }\n var eventArgs = { cancel: false, fetchRequest: this.fetchRequest };\n this.triggerEvent(this['beforeSend'], eventArgs);\n if (eventArgs.cancel) {\n return null;\n }\n this.fetchResponse = fetch(this.fetchRequest);\n return this.fetchResponse.then(function (response) {\n _this.triggerEvent(_this['onLoad'], response);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n var responseType = 'text';\n for (var _i = 0, _a = Object.keys(contentTypes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (response.headers.get('Content-Type').indexOf(key) !== -1) {\n responseType = contentTypes[key];\n }\n }\n return response[responseType]();\n // eslint-disable-next-line\n }).then(function (data) {\n _this.triggerEvent(_this['onSuccess'], data, _this);\n return data;\n // eslint-disable-next-line\n }).catch(function (error) {\n var returnVal = {};\n if (_this.emitError) {\n _this.triggerEvent(_this['onFailure'], error);\n returnVal = Promise.reject(error);\n }\n return returnVal;\n });\n }\n catch (error) {\n return error;\n }\n };\n Fetch.prototype.triggerEvent = function (callback, data, instance) {\n if (!isNOU(callback) && typeof callback === 'function') {\n callback(data, instance);\n }\n };\n return Fetch;\n}());\nexport { Fetch };\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 var regExp = RegExp;\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 if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\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","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', '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 = '22';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/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 = 'npxKeyReplaceu7LHssS0w7rBxYyDg3+Cf4SIjIKDgISCgIqKiopxgoKLhoqLhopxoZ6MUQ==';\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=MjI=\";\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","/**\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 { 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 var regExp = RegExp;\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.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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.enableAutoScroll) {\n this.setDragArea();\n }\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 var isDialogEle = this.helperElement.classList.contains('e-dialog');\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 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : 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 (document.scrollingElement && (!isdragscroll && !this.clone)) {\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.isSafari() ? 'touchend' : 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.isSafari() ? 'touchend' : 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 | Function} 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 if (typeof template === 'function') {\n return template;\n }\n else {\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}\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 && str !== \"true\" && str !== \"false\") ? 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","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","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.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) {\n this.element.checked = false;\n this.validCheck = false;\n }\n else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) {\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.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) {\n this.element.checked = true;\n this.validCheck = false;\n }\n else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) {\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 this.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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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","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};\n/* eslint-disable @typescript-eslint/no-unused-expressions */\nimport { Component, EventHandler, Internationalization } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, L10n } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { cldrData, getDefaultDateObject, rippleEffect } from '@syncfusion/ej2-base';\nimport { removeClass, detach, closest, addClass, attributes } from '@syncfusion/ej2-base';\nimport { getValue, getUniqueID, extend, Browser } from '@syncfusion/ej2-base';\nimport { Property, Event, isNullOrUndefined, throwError } from '@syncfusion/ej2-base';\n//class constant defination.\nvar OTHERMONTH = 'e-other-month';\nvar OTHERDECADE = 'e-other-year';\nvar ROOT = 'e-calendar';\nvar DEVICE = 'e-device';\nvar HEADER = 'e-header';\nvar RTL = 'e-rtl';\nvar CONTENT = 'e-content';\nvar YEAR = 'e-year';\nvar MONTH = 'e-month';\nvar DECADE = 'e-decade';\nvar ICON = 'e-icons';\nvar PREVICON = 'e-prev';\nvar NEXTICON = 'e-next';\nvar PREVSPAN = 'e-date-icon-prev';\nvar NEXTSPAN = 'e-date-icon-next ';\nvar ICONCONTAINER = 'e-icon-container';\nvar DISABLED = 'e-disabled';\nvar OVERLAY = 'e-overlay';\nvar WEEKEND = 'e-weekend';\nvar WEEKNUMBER = 'e-week-number';\nvar SELECTED = 'e-selected';\nvar FOCUSEDDATE = 'e-focused-date';\nvar OTHERMONTHROW = 'e-month-hide';\nvar TODAY = 'e-today';\nvar TITLE = 'e-title';\nvar LINK = 'e-day';\nvar CELL = 'e-cell';\nvar WEEKHEADER = 'e-week-header';\nvar ZOOMIN = 'e-zoomin';\nvar FOOTER = 'e-footer-container';\nvar BTN = 'e-btn';\nvar FLAT = 'e-flat';\nvar CSS = 'e-css';\nvar PRIMARY = 'e-primary';\nvar DAYHEADERLONG = 'e-calendar-day-header-lg';\nvar dayMilliSeconds = 86400000;\nvar minutesMilliSeconds = 60000;\n/**\n *\n * @private\n */\nvar CalendarBase = /** @class */ (function (_super) {\n __extends(CalendarBase, _super);\n /**\n * Initialized new instance of Calendar Class.\n * Constructor for creating the widget\n *\n * @param {CalendarBaseModel} options - Specifies the CalendarBase model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function CalendarBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.effect = '';\n _this.isPopupClicked = false;\n _this.isDateSelected = true;\n _this.isTodayClicked = false;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.previousDates = false;\n return _this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n CalendarBase.prototype.render = function () {\n this.rangeValidation(this.min, this.max);\n this.calendarEleCopy = this.element.cloneNode(true);\n if (this.calendarMode === 'Islamic') {\n if (+(this.min.setSeconds(0)) === +new Date(1900, 0, 1, 0, 0, 0)) {\n this.min = new Date(1944, 2, 18);\n }\n if (+this.max === +new Date(2099, 11, 31)) {\n this.max = new Date(2069, 10, 16);\n }\n }\n this.globalize = new Internationalization(this.locale);\n if (isNullOrUndefined(this.firstDayOfWeek) || this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\n this.setProperties({ firstDayOfWeek: this.globalize.getFirstDayOfWeek() }, true);\n }\n this.todayDisabled = false;\n this.todayDate = new Date(new Date().setHours(0, 0, 0, 0));\n if (this.getModuleName() === 'calendar') {\n this.element.classList.add(ROOT);\n if (this.enableRtl) {\n this.element.classList.add(RTL);\n }\n if (Browser.isDevice) {\n this.element.classList.add(DEVICE);\n }\n attributes(this.element, {\n 'data-role': 'calendar'\n });\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.calendarElement = this.createElement('div');\n this.calendarElement.classList.add(ROOT);\n if (this.enableRtl) {\n this.calendarElement.classList.add(RTL);\n }\n if (Browser.isDevice) {\n this.calendarElement.classList.add(DEVICE);\n }\n attributes(this.calendarElement, {\n 'data-role': 'calendar'\n });\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.createHeader();\n this.createContent();\n this.wireEvents();\n };\n CalendarBase.prototype.rangeValidation = function (min, max) {\n if (isNullOrUndefined(min)) {\n this.setProperties({ min: new Date(1900, 0, 1) }, true);\n }\n if (isNullOrUndefined(max)) {\n this.setProperties({ max: new Date(2099, 11, 31) }, true);\n }\n };\n CalendarBase.prototype.getDefaultKeyConfig = function () {\n this.defaultKeyConfigs = {\n controlUp: 'ctrl+38',\n controlDown: 'ctrl+40',\n moveDown: 'downarrow',\n moveUp: 'uparrow',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n select: 'enter',\n home: 'home',\n end: 'end',\n pageUp: 'pageup',\n pageDown: 'pagedown',\n shiftPageUp: 'shift+pageup',\n shiftPageDown: 'shift+pagedown',\n controlHome: 'ctrl+home',\n controlEnd: 'ctrl+end',\n altUpArrow: 'alt+uparrow',\n spacebar: 'space',\n altRightArrow: 'alt+rightarrow',\n altLeftArrow: 'alt+leftarrow'\n };\n return this.defaultKeyConfigs;\n };\n CalendarBase.prototype.validateDate = function (value) {\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(this.min))) }, true);\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(this.max))) }, true);\n this.currentDate = this.currentDate ? this.currentDate : new Date(new Date().setHours(0, 0, 0, 0));\n if (!isNullOrUndefined(value) && this.min <= this.max && value >= this.min && value <= this.max) {\n this.currentDate = new Date(this.checkValue(value));\n }\n };\n CalendarBase.prototype.setOverlayIndex = function (popupWrapper, popupElement, modal, isDevice) {\n if (isDevice && !isNullOrUndefined(popupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\n var index = parseInt(popupElement.style.zIndex, 10) ? parseInt(popupElement.style.zIndex, 10) : 1000;\n modal.style.zIndex = (index - 1).toString();\n popupWrapper.style.zIndex = index.toString();\n }\n };\n CalendarBase.prototype.minMaxUpdate = function (value) {\n if (!(+this.min <= +this.max)) {\n this.setProperties({ min: this.min }, true);\n addClass([this.element], OVERLAY);\n }\n else {\n removeClass([this.element], OVERLAY);\n }\n this.min = isNullOrUndefined(this.min) || !(+this.min) ? this.min = new Date(1900, 0, 1) : this.min;\n this.max = isNullOrUndefined(this.max) || !(+this.max) ? this.max = new Date(2099, 11, 31) : this.max;\n if (+this.min <= +this.max && value && +value <= +this.max && +value >= +this.min) {\n this.currentDate = new Date(this.checkValue(value));\n }\n else {\n if (+this.min <= +this.max && !value && +this.currentDate > +this.max) {\n this.currentDate = new Date(this.checkValue(this.max));\n }\n else {\n if (+this.currentDate < +this.min) {\n this.currentDate = new Date(this.checkValue(this.min));\n }\n }\n }\n };\n CalendarBase.prototype.createHeader = function () {\n var ariaPrevAttrs = {\n 'aria-disabled': 'false',\n 'aria-label': 'previous month'\n };\n var ariaNextAttrs = {\n 'aria-disabled': 'false',\n 'aria-label': 'next month'\n };\n var ariaTitleAttrs = {\n 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title'\n };\n this.headerElement = this.createElement('div', { className: HEADER });\n var iconContainer = this.createElement('div', { className: ICONCONTAINER });\n this.previousIcon = this.createElement('button', { className: '' + PREVICON, attrs: { type: 'button' } });\n rippleEffect(this.previousIcon, {\n duration: 400,\n selector: '.e-prev',\n isCenterRipple: true\n });\n attributes(this.previousIcon, ariaPrevAttrs);\n this.nextIcon = this.createElement('button', { className: '' + NEXTICON, attrs: { type: 'button' } });\n rippleEffect(this.nextIcon, {\n selector: '.e-next',\n duration: 400,\n isCenterRipple: true\n });\n if (this.getModuleName() === 'daterangepicker') {\n attributes(this.previousIcon, { tabIndex: '-1' });\n attributes(this.nextIcon, { tabIndex: '-1' });\n }\n attributes(this.nextIcon, ariaNextAttrs);\n this.headerTitleElement = this.createElement('div', { className: '' + LINK + ' ' + TITLE });\n attributes(this.headerTitleElement, ariaTitleAttrs);\n this.headerElement.appendChild(this.headerTitleElement);\n this.previousIcon.appendChild(this.createElement('span', { className: '' + PREVSPAN + ' ' + ICON }));\n this.nextIcon.appendChild(this.createElement('span', { className: '' + NEXTSPAN + ' ' + ICON }));\n iconContainer.appendChild(this.previousIcon);\n iconContainer.appendChild(this.nextIcon);\n this.headerElement.appendChild(iconContainer);\n if (this.getModuleName() === 'calendar') {\n this.element.appendChild(this.headerElement);\n }\n else {\n this.calendarElement.appendChild(this.headerElement);\n }\n this.adjustLongHeaderSize();\n };\n CalendarBase.prototype.createContent = function () {\n this.contentElement = this.createElement('div', { className: CONTENT });\n this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '', 'aria-labelledby': this.element.id } });\n if (this.getModuleName() === 'calendar') {\n this.element.appendChild(this.contentElement);\n }\n else {\n this.calendarElement.appendChild(this.contentElement);\n }\n this.contentElement.appendChild(this.table);\n this.createContentHeader();\n this.createContentBody();\n if (this.showTodayButton) {\n this.createContentFooter();\n }\n };\n CalendarBase.prototype.getCultureValues = function () {\n var culShortNames = [];\n var cldrObj;\n var dayFormat = 'days.stand-alone.' + this.dayHeaderFormat.toLowerCase();\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrObj = (getValue(dayFormat, getDefaultDateObject()));\n }\n else {\n cldrObj = (this.getCultureObjects(cldrData, '' + this.locale));\n }\n if (!isNullOrUndefined(cldrObj)) {\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\n var obj = _a[_i];\n culShortNames.push(getValue(obj, cldrObj));\n }\n }\n return culShortNames;\n };\n CalendarBase.prototype.toCapitalize = function (text) {\n return !isNullOrUndefined(text) && text.length ? text[0].toUpperCase() + text.slice(1) : text;\n };\n CalendarBase.prototype.createContentHeader = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content .e-week-header')[0])) {\n detach(this.element.querySelectorAll('.e-content .e-week-header')[0]);\n }\n }\n else {\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content .e-week-header')[0])) {\n detach(this.calendarElement.querySelectorAll('.e-content .e-week-header')[0]);\n }\n }\n var daysCount = 6;\n var html = '';\n if (this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\n this.setProperties({ firstDayOfWeek: 0 }, true);\n }\n this.tableHeadElement = this.createElement('thead', { className: WEEKHEADER });\n if (this.weekNumber) {\n html += '';\n if (this.getModuleName() === 'calendar') {\n addClass([this.element], '' + WEEKNUMBER);\n }\n else {\n addClass([this.calendarElement], '' + WEEKNUMBER);\n }\n }\n // eslint-disable-next-line max-len\n var shortNames = this.getCultureValues().length > 0 && this.getCultureValues() ? this.shiftArray(((this.getCultureValues().length > 0 && this.getCultureValues())), this.firstDayOfWeek) : null;\n if (!isNullOrUndefined(shortNames)) {\n for (var days = 0; days <= daysCount; days++) {\n html += '' + this.toCapitalize(shortNames[days]) + '';\n }\n }\n html = '' + html + '';\n this.tableHeadElement.innerHTML = html;\n this.table.appendChild(this.tableHeadElement);\n };\n CalendarBase.prototype.createContentBody = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content tbody')[0])) {\n detach(this.element.querySelectorAll('.e-content tbody')[0]);\n }\n }\n else {\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content tbody')[0])) {\n detach(this.calendarElement.querySelectorAll('.e-content tbody')[0]);\n }\n }\n switch (this.start) {\n case 'Year':\n this.renderYears();\n break;\n case 'Decade':\n this.renderDecades();\n break;\n default:\n this.renderMonths();\n }\n };\n CalendarBase.prototype.updateFooter = function () {\n this.todayElement.textContent = this.l10.getConstant('today');\n this.todayElement.setAttribute('aria-label', this.l10.getConstant('today'));\n };\n CalendarBase.prototype.createContentFooter = function () {\n if (this.showTodayButton) {\n var minimum = new Date(+this.min);\n var maximum = new Date(+this.max);\n var l10nLocale = { today: 'Today' };\n this.globalize = new Internationalization(this.locale);\n this.l10 = new L10n(this.getModuleName(), l10nLocale, this.locale);\n this.todayElement = this.createElement('button', { attrs: { role: 'button' } });\n rippleEffect(this.todayElement);\n this.updateFooter();\n addClass([this.todayElement], [BTN, TODAY, FLAT, PRIMARY, CSS]);\n if ((!(+new Date(minimum.setHours(0, 0, 0, 0)) <= +this.todayDate &&\n +this.todayDate <= +new Date(maximum.setHours(0, 0, 0, 0)))) || (this.todayDisabled)) {\n addClass([this.todayElement], DISABLED);\n }\n this.footer = this.createElement('div', { className: FOOTER });\n this.footer.appendChild(this.todayElement);\n if (this.getModuleName() === 'calendar') {\n this.element.appendChild(this.footer);\n }\n if (this.getModuleName() === 'datepicker') {\n this.calendarElement.appendChild(this.footer);\n }\n if (this.getModuleName() === 'datetimepicker') {\n this.calendarElement.appendChild(this.footer);\n }\n if (!this.todayElement.classList.contains(DISABLED)) {\n EventHandler.add(this.todayElement, 'click', this.todayButtonClick, this);\n }\n }\n };\n CalendarBase.prototype.wireEvents = function (id, ref, keyConfig, moduleName) {\n EventHandler.add(this.headerTitleElement, 'click', this.navigateTitle, this);\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n if (this.getModuleName() === 'calendar') {\n this.keyboardModule = new KeyboardEvents(this.element, {\n eventName: 'keydown',\n keyAction: this.keyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n else {\n this.keyboardModule = new KeyboardEvents(this.calendarElement, {\n eventName: 'keydown',\n keyAction: this.keyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n };\n CalendarBase.prototype.dateWireEvents = function (id, ref, keyConfig, moduleName) {\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, keyConfig);\n this.serverModuleName = moduleName;\n };\n CalendarBase.prototype.todayButtonClick = function (e, value, isCustomDate) {\n if (this.showTodayButton) {\n if (this.currentView() === this.depth) {\n this.effect = '';\n }\n else {\n this.effect = 'e-zoomin';\n }\n if (this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n this.navigateTo(this.depth, new Date(this.checkValue(value)), isCustomDate);\n }\n else {\n this.navigateTo('Month', new Date(this.checkValue(value)), isCustomDate);\n }\n }\n };\n CalendarBase.prototype.resetCalendar = function () {\n this.calendarElement && detach(this.calendarElement);\n this.tableBodyElement && detach(this.tableBodyElement);\n this.table && detach(this.table);\n this.tableHeadElement && detach(this.tableHeadElement);\n this.nextIcon && detach(this.nextIcon);\n this.previousIcon && detach(this.previousIcon);\n this.footer && detach(this.footer);\n this.todayElement = null;\n this.renderDayCellArgs = null;\n this.calendarElement = this.tableBodyElement = this.footer = this.tableHeadElement =\n this.nextIcon = this.previousIcon = this.table = null;\n };\n CalendarBase.prototype.keyActionHandle = function (e, value, multiSelection) {\n var focusedDate = this.tableBodyElement.querySelector('tr td.e-focused-date');\n var selectedDate;\n if (multiSelection) {\n if (!isNullOrUndefined(focusedDate) && +value === parseInt(focusedDate.getAttribute('id').split('_')[0], 10)) {\n selectedDate = focusedDate;\n }\n else {\n selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\n }\n }\n else {\n selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\n }\n var view = this.getViewNumber(this.currentView());\n var depthValue = this.getViewNumber(this.depth);\n var levelRestrict = (view === depthValue && this.getViewNumber(this.start) >= depthValue);\n this.effect = '';\n switch (e.action) {\n case 'moveLeft':\n this.keyboardNavigate(-1, view, e, this.max, this.min);\n e.preventDefault();\n break;\n case 'moveRight':\n this.keyboardNavigate(1, view, e, this.max, this.min);\n e.preventDefault();\n break;\n case 'moveUp':\n if (view === 0) {\n this.keyboardNavigate(-7, view, e, this.max, this.min); // move the current date to the previous seven days.\n }\n else {\n this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.\n }\n e.preventDefault();\n break;\n case 'moveDown':\n if (view === 0) {\n this.keyboardNavigate(7, view, e, this.max, this.min);\n }\n else {\n this.keyboardNavigate(4, view, e, this.max, this.min);\n }\n e.preventDefault();\n break;\n case 'select':\n if (e.target === this.todayElement) {\n this.todayButtonClick(e, value);\n }\n else {\n var element = !isNullOrUndefined(focusedDate) ? focusedDate : selectedDate;\n if (!isNullOrUndefined(element) && !element.classList.contains(DISABLED)) {\n if (levelRestrict) {\n // eslint-disable-next-line radix\n var d = new Date(parseInt('' + (element).id, 0));\n this.selectDate(e, d, (element));\n }\n else {\n this.contentClick(null, --view, (element), value);\n }\n }\n }\n break;\n case 'controlUp':\n this.title();\n e.preventDefault();\n break;\n case 'controlDown':\n if (!isNullOrUndefined(focusedDate) && !levelRestrict || !isNullOrUndefined(selectedDate) && !levelRestrict) {\n this.contentClick(null, --view, (focusedDate || selectedDate), value);\n }\n e.preventDefault();\n break;\n case 'home':\n this.currentDate = this.firstDay(this.currentDate);\n detach(this.tableBodyElement);\n if (view === 0) {\n this.renderMonths(e);\n }\n else if (view === 1) {\n this.renderYears(e);\n }\n else {\n this.renderDecades(e);\n }\n e.preventDefault();\n break;\n case 'end':\n this.currentDate = this.lastDay(this.currentDate, view);\n detach(this.tableBodyElement);\n if (view === 0) {\n this.renderMonths(e);\n }\n else if (view === 1) {\n this.renderYears(e);\n }\n else {\n this.renderDecades(e);\n }\n e.preventDefault();\n break;\n case 'pageUp':\n this.addMonths(this.currentDate, -1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'pageDown':\n this.addMonths(this.currentDate, 1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'shiftPageUp':\n this.addYears(this.currentDate, -1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'shiftPageDown':\n this.addYears(this.currentDate, 1);\n this.navigateTo('Month', this.currentDate);\n e.preventDefault();\n break;\n case 'controlHome':\n this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 0, 1));\n e.preventDefault();\n break;\n case 'controlEnd':\n this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 11, 31));\n e.preventDefault();\n break;\n }\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n CalendarBase.prototype.keyboardNavigate = function (number, currentView, e, max, min) {\n var date = new Date(this.checkValue(this.currentDate));\n switch (currentView) {\n case 2:\n this.addYears(this.currentDate, number);\n if (this.isMonthYearRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderDecades(e);\n }\n else {\n this.currentDate = date;\n }\n break;\n case 1:\n this.addMonths(this.currentDate, number);\n if (this.calendarMode === 'Gregorian') {\n if (this.isMonthYearRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderYears(e);\n }\n else {\n this.currentDate = date;\n }\n }\n else {\n if (this.isMonthYearRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderYears(e);\n }\n else {\n this.currentDate = date;\n }\n }\n break;\n case 0:\n this.addDay(this.currentDate, number, e, max, min);\n if (this.isMinMaxRange(this.currentDate)) {\n detach(this.tableBodyElement);\n this.renderMonths(e);\n }\n else {\n this.currentDate = date;\n }\n break;\n }\n };\n /**\n * Initialize the event handler\n *\n * @param {Date} value - Specifies value of date.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.preRender = function (value) {\n var _this = this;\n this.navigatePreviousHandler = this.navigatePrevious.bind(this);\n this.navigateNextHandler = this.navigateNext.bind(this);\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\n this.navigateHandler = function (e) {\n _this.triggerNavigate(e);\n };\n };\n CalendarBase.prototype.minMaxDate = function (localDate) {\n var currentDate = new Date(new Date(+localDate).setHours(0, 0, 0, 0));\n var minDate = new Date(new Date(+this.min).setHours(0, 0, 0, 0));\n var maxDate = new Date(new Date(+this.max).setHours(0, 0, 0, 0));\n if (+currentDate === +minDate || +currentDate === +maxDate) {\n if (+localDate < +this.min) {\n localDate = new Date(+this.min);\n }\n if (+localDate > +this.max) {\n localDate = new Date(+this.max);\n }\n }\n return localDate;\n };\n CalendarBase.prototype.renderMonths = function (e, value, isCustomDate) {\n var numCells = this.weekNumber ? 8 : 7;\n var tdEles;\n if (this.calendarMode === 'Gregorian') {\n tdEles = this.renderDays(this.currentDate, value, null, null, isCustomDate, e);\n }\n else {\n tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);\n }\n this.createContentHeader();\n if (this.calendarMode === 'Gregorian') {\n this.renderTemplate(tdEles, numCells, MONTH, e, value);\n }\n else {\n this.islamicModule.islamicRenderTemplate(tdEles, numCells, MONTH, e, value);\n }\n };\n CalendarBase.prototype.renderDays = function (currentDate, value, multiSelection, values, isTodayDate, e) {\n var tdEles = [];\n var cellsCount = 42;\n var todayDate = isTodayDate ? new Date(+currentDate) : this.getDate(new Date(), this.timezone);\n var localDate = new Date(this.checkValue(currentDate));\n var minMaxDate;\n var currentMonth = localDate.getMonth();\n this.titleUpdate(currentDate, 'days');\n var d = localDate;\n localDate = new Date(d.getFullYear(), d.getMonth(), 0, d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n while (localDate.getDay() !== this.firstDayOfWeek) {\n this.setStartDate(localDate, -1 * dayMilliSeconds);\n }\n for (var day = 0; day < cellsCount; ++day) {\n var weekEle = this.createElement('td', { className: CELL });\n var weekAnchor = this.createElement('span');\n if (day % 7 === 0 && this.weekNumber) {\n // 6 days are added to get Last day of the week and 3 days are added to get middle day of the week.\n var numberOfDays = this.weekRule === 'FirstDay' ? 6 : (this.weekRule === 'FirstFourDayWeek' ? 3 : 0);\n var finalDate = new Date(localDate.getFullYear(), localDate.getMonth(), (localDate.getDate() + numberOfDays));\n weekAnchor.textContent = '' + this.getWeek(finalDate);\n weekEle.appendChild(weekAnchor);\n addClass([weekEle], '' + WEEKNUMBER);\n tdEles.push(weekEle);\n }\n minMaxDate = new Date(+localDate);\n localDate = this.minMaxDate(localDate);\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full' };\n var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\n var tdEle = this.dayCell(localDate);\n var title = this.globalize.formatDate(localDate, { type: 'date', skeleton: 'full' });\n var dayLink = this.createElement('span');\n dayLink.textContent = this.globalize.formatDate(localDate, { format: 'd', type: 'date', skeleton: 'yMd' });\n var disabled = (this.min > localDate) || (this.max < localDate);\n if (disabled) {\n addClass([tdEle], DISABLED);\n addClass([tdEle], OVERLAY);\n }\n else {\n dayLink.setAttribute('title', '' + title);\n }\n if (currentMonth !== localDate.getMonth()) {\n addClass([tdEle], OTHERMONTH);\n }\n if (localDate.getDay() === 0 || localDate.getDay() === 6) {\n addClass([tdEle], WEEKEND);\n }\n tdEle.appendChild(dayLink);\n this.renderDayCellArgs = {\n date: localDate,\n isDisabled: false,\n element: tdEle,\n isOutOfRange: disabled\n };\n var argument = this.renderDayCellArgs;\n this.renderDayCellEvent(argument);\n if (argument.isDisabled) {\n var selectDate = new Date(this.checkValue(value));\n var argsDate = new Date(this.checkValue(argument.date));\n if (multiSelection) {\n if (!isNullOrUndefined(values) && values.length > 0) {\n for (var index = 0; index < values.length; index++) {\n var localDateString = +new Date(this.globalize.formatDate(argument.date, { type: 'date', skeleton: 'yMd' }));\n var tempDateString = +new Date(this.globalize.formatDate(values[index], { type: 'date', skeleton: 'yMd' }));\n if (localDateString === tempDateString) {\n values.splice(index, 1);\n index = -1;\n }\n }\n }\n }\n else if (selectDate && +selectDate === +argsDate) {\n this.setProperties({ value: null }, true);\n }\n }\n if (this.renderDayCellArgs.isDisabled && !tdEle.classList.contains(SELECTED)) {\n addClass([tdEle], DISABLED);\n addClass([tdEle], OVERLAY);\n if (+this.renderDayCellArgs.date === +this.todayDate) {\n this.todayDisabled = true;\n }\n }\n var otherMnthBool = tdEle.classList.contains(OTHERMONTH);\n var disabledCls = tdEle.classList.contains(DISABLED);\n if (!disabledCls) {\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\n }\n // to set the value as null while setting the disabled date onProperty change.\n // if (args.isDisabled && +this.value === +args.date) {\n // this.setProperties({ value: null }, true);\n // }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var currentTarget = void 0;\n if (!isNullOrUndefined(e) && e.type === 'click') {\n currentTarget = e.currentTarget;\n }\n if (multiSelection && !isNullOrUndefined(values) && !disabledCls) {\n for (var tempValue = 0; tempValue < values.length; tempValue++) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var formatOptions = { format: null, type: 'date', skeleton: 'short', calendar: type };\n var localDateString = this.globalize.formatDate(localDate, formatOptions);\n var tempDateString = this.globalize.formatDate(values[tempValue], formatOptions);\n if ((localDateString === tempDateString && this.getDateVal(localDate, values[tempValue]))\n || (this.getDateVal(localDate, value))) {\n addClass([tdEle], SELECTED);\n }\n if (!isNullOrUndefined(currentTarget) && currentTarget.innerText === tdEle.innerText &&\n this.previousDates && tdEle.classList.contains(SELECTED) && currentTarget.classList.contains(SELECTED)) {\n removeClass([tdEle], SELECTED);\n this.previousDates = false;\n var copyValues = this.copyValues(values);\n for (var i = 0; i < copyValues.length; i++) {\n var type_1 = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var formatOptions_1 = { format: null, type: 'date', skeleton: 'short', calendar: type_1 };\n var localDateString_1 = this.globalize.formatDate(date, formatOptions_1);\n var tempDateString_1 = this.globalize.formatDate(copyValues[i], formatOptions_1);\n if (localDateString_1 === tempDateString_1) {\n var index = copyValues.indexOf(copyValues[i]);\n copyValues.splice(index, 1);\n values.splice(index, 1);\n }\n }\n this.setProperties({ values: copyValues }, true);\n }\n else {\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\n }\n }\n if (values.length <= 0) {\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\n }\n }\n else if (!disabledCls && this.getDateVal(localDate, value)) {\n addClass([tdEle], SELECTED);\n }\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\n if (!isNullOrUndefined(date) && date.getFullYear() === todayDate.getFullYear() && date.getMonth() === todayDate.getMonth()\n && date.getDate() === todayDate.getDate()) {\n addClass([tdEle], TODAY);\n }\n tdEles.push(this.renderDayCellArgs.element);\n localDate = new Date(+minMaxDate);\n this.addDay(localDate, 1, null, this.max, this.min);\n }\n return tdEles;\n };\n CalendarBase.prototype.updateFocus = function (otherMonth, disabled, localDate, tableElement, currentDate) {\n if (currentDate.getDate() === localDate.getDate() && !otherMonth && !disabled) {\n addClass([tableElement], FOCUSEDDATE);\n }\n else {\n // eslint-disable-next-line radix\n if (currentDate >= this.max && parseInt(tableElement.id, 0) === +this.max && !otherMonth && !disabled) {\n addClass([tableElement], FOCUSEDDATE);\n }\n // eslint-disable-next-line radix\n if (currentDate <= this.min && parseInt(tableElement.id, 0) === +this.min && !otherMonth && !disabled) {\n addClass([tableElement], FOCUSEDDATE);\n }\n }\n };\n CalendarBase.prototype.renderYears = function (e, value) {\n this.removeTableHeadElement();\n var numCells = 4;\n var tdEles = [];\n var valueUtil = isNullOrUndefined(value);\n var curDate = new Date(this.checkValue(this.currentDate));\n var mon = curDate.getMonth();\n var yr = curDate.getFullYear();\n var localDate = curDate;\n var curYrs = localDate.getFullYear();\n var minYr = new Date(this.checkValue(this.min)).getFullYear();\n var minMonth = new Date(this.checkValue(this.min)).getMonth();\n var maxYr = new Date(this.checkValue(this.max)).getFullYear();\n var maxMonth = new Date(this.checkValue(this.max)).getMonth();\n localDate.setMonth(0);\n this.titleUpdate(this.currentDate, 'months');\n localDate.setDate(1);\n for (var month = 0; month < 12; ++month) {\n var tdEle = this.dayCell(localDate);\n var dayLink = this.createElement('span');\n var localMonth = (value && (value).getMonth() === localDate.getMonth());\n var select = (value && (value).getFullYear() === yr && localMonth);\n dayLink.textContent = this.toCapitalize(this.globalize.formatDate(localDate, {\n format: null, type: 'dateTime', skeleton: 'MMM'\n }));\n if ((this.min && (curYrs < minYr || (month < minMonth && curYrs === minYr))) || (this.max && (curYrs > maxYr || (month > maxMonth && curYrs >= maxYr)))) {\n addClass([tdEle], DISABLED);\n }\n else if (!valueUtil && select) {\n addClass([tdEle], SELECTED);\n }\n else {\n if (localDate.getMonth() === mon && this.currentDate.getMonth() === mon) {\n addClass([tdEle], FOCUSEDDATE);\n }\n }\n localDate.setDate(1);\n localDate.setMonth(localDate.getMonth() + 1);\n if (!tdEle.classList.contains(DISABLED)) {\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\n }\n tdEle.appendChild(dayLink);\n tdEles.push(tdEle);\n }\n this.renderTemplate(tdEles, numCells, YEAR, e, value);\n };\n CalendarBase.prototype.renderDecades = function (e, value) {\n this.removeTableHeadElement();\n var numCells = 4;\n var yearCell = 12;\n var tdEles = [];\n var localDate = new Date(this.checkValue(this.currentDate));\n localDate.setMonth(0);\n localDate.setDate(1);\n var localYr = localDate.getFullYear();\n var startYr = new Date(localDate.setFullYear((localYr - localYr % 10)));\n var endYr = new Date(localDate.setFullYear((localYr - localYr % 10 + (10 - 1))));\n var startFullYr = startYr.getFullYear();\n var endFullYr = endYr.getFullYear();\n var startHdrYr = this.globalize.formatDate(startYr, {\n format: null, type: 'dateTime', skeleton: 'y'\n });\n var endHdrYr = this.globalize.formatDate(endYr, { format: null, type: 'dateTime', skeleton: 'y' });\n this.headerTitleElement.textContent = startHdrYr + ' - ' + (endHdrYr);\n var start = new Date(localYr - (localYr % 10) - 1, 0, 1);\n var startYear = start.getFullYear();\n for (var rowIterator = 0; rowIterator < yearCell; ++rowIterator) {\n var year = startYear + rowIterator;\n localDate.setFullYear(year);\n var tdEle = this.dayCell(localDate);\n var dayLink = this.createElement('span');\n dayLink.textContent = this.globalize.formatDate(localDate, {\n format: null, type: 'dateTime', skeleton: 'y'\n });\n if ((year < startFullYr) || (year > endFullYr)) {\n addClass([tdEle], OTHERDECADE);\n if (!isNullOrUndefined(value) && localDate.getFullYear() === (value).getFullYear()) {\n addClass([tdEle], SELECTED);\n }\n if (year < new Date(this.checkValue(this.min)).getFullYear() ||\n year > new Date(this.checkValue(this.max)).getFullYear()) {\n addClass([tdEle], DISABLED);\n }\n }\n else if (year < new Date(this.checkValue(this.min)).getFullYear() ||\n year > new Date(this.checkValue(this.max)).getFullYear()) {\n addClass([tdEle], DISABLED);\n }\n else if (!isNullOrUndefined(value) && localDate.getFullYear() === (value).getFullYear()) {\n addClass([tdEle], SELECTED);\n }\n else {\n if (localDate.getFullYear() === this.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED)) {\n addClass([tdEle], FOCUSEDDATE);\n }\n }\n if (!tdEle.classList.contains(DISABLED)) {\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\n }\n tdEle.appendChild(dayLink);\n tdEles.push(tdEle);\n }\n this.renderTemplate(tdEles, numCells, 'e-decade', e, value);\n };\n CalendarBase.prototype.dayCell = function (localDate) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var dateFormatOptions = { skeleton: 'full', type: 'dateTime', calendar: type };\n var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\n var value;\n if (!isNullOrUndefined(date)) {\n value = date.valueOf();\n }\n var attrs = {\n className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false' }\n };\n return this.createElement('td', attrs);\n };\n CalendarBase.prototype.firstDay = function (date) {\n var collection = this.currentView() !== 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '') :\n this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '');\n if (collection.length) {\n for (var i = 0; i < collection.length; i++) {\n if (!collection[i].classList.contains(DISABLED)) {\n // eslint-disable-next-line radix\n date = new Date(parseInt(collection[i].id, 0));\n break;\n }\n }\n }\n return date;\n };\n CalendarBase.prototype.lastDay = function (date, view) {\n var lastDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n if (view !== 2) {\n var timeOffset = Math.abs(lastDate.getTimezoneOffset() - this.firstDay(date).getTimezoneOffset());\n if (timeOffset) {\n lastDate.setHours(this.firstDay(date).getHours() + (timeOffset / 60));\n }\n return this.findLastDay(lastDate);\n }\n else {\n return this.findLastDay(this.firstDay(lastDate));\n }\n };\n CalendarBase.prototype.checkDateValue = function (value) {\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\n };\n CalendarBase.prototype.findLastDay = function (date) {\n var collection = this.currentView() === 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '') :\n this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '');\n if (collection.length) {\n for (var i = collection.length - 1; i >= 0; i--) {\n if (!collection[i].classList.contains(DISABLED)) {\n // eslint-disable-next-line radix\n date = new Date(parseInt(collection[i].id, 0));\n break;\n }\n }\n }\n return date;\n };\n CalendarBase.prototype.removeTableHeadElement = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content table thead')[0])) {\n detach(this.tableHeadElement);\n }\n }\n else {\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content table thead')[0])) {\n detach(this.tableHeadElement);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.renderTemplate = function (elements, count, classNm, e, value) {\n var view = this.getViewNumber(this.currentView());\n var trEle;\n this.tableBodyElement = this.createElement('tbody');\n this.table.appendChild(this.tableBodyElement);\n removeClass([this.contentElement, this.headerElement], [MONTH, DECADE, YEAR]);\n addClass([this.contentElement, this.headerElement], [classNm]);\n var weekNumCell = 41;\n var numberCell = 35;\n var otherMonthCell = 6;\n var row = count;\n var rowIterator = 0;\n for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {\n trEle = this.createElement('tr');\n for (rowIterator = 0 + rowIterator; rowIterator < row; rowIterator++) {\n if (!elements[rowIterator].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowIterator].children[0])) {\n addClass([elements[rowIterator].children[0]], [LINK]);\n rippleEffect(elements[rowIterator].children[0], {\n duration: 600,\n isCenterRipple: true\n });\n }\n trEle.appendChild(elements[rowIterator]);\n if (this.weekNumber && rowIterator === otherMonthCell + 1 && elements[otherMonthCell + 1].classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n if (!this.weekNumber && rowIterator === otherMonthCell && elements[otherMonthCell].\n classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n if (this.weekNumber) {\n if (rowIterator === weekNumCell && elements[weekNumCell].classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n }\n else {\n if (rowIterator === numberCell && elements[numberCell].classList.contains(OTHERMONTH)) {\n addClass([trEle], OTHERMONTHROW);\n }\n }\n }\n row = row + count;\n rowIterator = rowIterator + 0;\n this.tableBodyElement.appendChild(trEle);\n }\n this.table.querySelector('tbody').className = this.effect;\n if (this.calendarMode === 'Gregorian') {\n this.iconHandler();\n }\n else {\n this.islamicModule.islamicIconHandler();\n }\n if (view !== this.getViewNumber(this.currentView()) || (view === 0 && view !== this.getViewNumber(this.currentView()))) {\n this.navigateHandler(e);\n }\n this.setAriaActiveDescendant();\n };\n CalendarBase.prototype.clickHandler = function (e, value) {\n this.clickEventEmitter(e);\n var eve = e.currentTarget;\n var view = this.getViewNumber(this.currentView());\n if (eve.classList.contains(OTHERMONTH)) {\n this.contentClick(e, 0, null, value);\n }\n else if (view === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n this.contentClick(e, 1, null, value);\n }\n else if (2 === view) {\n this.contentClick(e, 1, null, value);\n }\n else if (!eve.classList.contains(OTHERMONTH) && view === 0) {\n this.selectDate(e, this.getIdValue(e, null), null);\n }\n else {\n this.contentClick(e, 0, eve, value);\n }\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n // Content click event handler required for extended components\n CalendarBase.prototype.clickEventEmitter = function (e) {\n e.preventDefault();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.contentClick = function (e, view, element, value) {\n var currentView = this.getViewNumber(this.currentView());\n var d = this.getIdValue(e, element);\n switch (view) {\n case 0:\n if (currentView === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n detach(this.tableBodyElement);\n this.currentDate = d;\n this.effect = ZOOMIN;\n this.renderMonths(e);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n this.currentDate.setMonth(d.getMonth());\n if (d.getMonth() > 0 && this.currentDate.getMonth() !== d.getMonth()) {\n this.currentDate.setDate(0);\n }\n this.currentDate.setFullYear(d.getFullYear());\n }\n else {\n this.currentDate = d;\n }\n this.effect = ZOOMIN;\n detach(this.tableBodyElement);\n this.renderMonths(e);\n }\n break;\n case 1:\n if (currentView === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\n this.selectDate(e, d, null);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n this.currentDate.setFullYear(d.getFullYear());\n }\n else {\n this.islamicPreviousHeader = this.headerElement.textContent;\n var islamicDate = this.islamicModule.getIslamicDate(d);\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year, islamicDate.month, 1);\n }\n this.effect = ZOOMIN;\n detach(this.tableBodyElement);\n this.renderYears(e);\n }\n }\n };\n CalendarBase.prototype.switchView = function (view, e, multiSelection, isCustomDate) {\n switch (view) {\n case 0:\n detach(this.tableBodyElement);\n this.renderMonths(e, null, isCustomDate);\n break;\n case 1:\n detach(this.tableBodyElement);\n this.renderYears(e);\n break;\n case 2:\n detach(this.tableBodyElement);\n this.renderDecades(e);\n }\n };\n /**\n * To get component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n CalendarBase.prototype.getModuleName = function () {\n return 'calendar';\n };\n /**\n *\n * @returns {void}\n\n */\n CalendarBase.prototype.requiredModules = function () {\n var modules = [];\n if (this) {\n modules.push({ args: [this], member: 'islamic' });\n }\n return modules;\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n CalendarBase.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Called internally if any of the property value changed.\n *\n * @param {CalendarBaseModel} newProp - Returns the dynamic property value of the component.\n * @param {CalendarBaseModel} oldProp - Returns the previous property value of the component.\n * @param {boolean} multiSelection - - Specifies whether multiple date selection is enabled or not.\n * @param {Date[]} values - Specifies the dates.\n * @returns {void}\n * @private\n */\n CalendarBase.prototype.onPropertyChanged = function (newProp, oldProp, multiSelection, values) {\n this.effect = '';\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 if (newProp.enableRtl) {\n if (this.getModuleName() === 'calendar') {\n this.element.classList.add('e-rtl');\n }\n else {\n this.calendarElement.classList.add('e-rtl');\n }\n }\n else {\n if (this.getModuleName() === 'calendar') {\n this.element.classList.remove('e-rtl');\n }\n else {\n this.calendarElement.classList.remove('e-rtl');\n }\n }\n break;\n case 'dayHeaderFormat':\n this.getCultureValues();\n if (this.getModuleName() !== 'datepicker') {\n this.createContentHeader();\n }\n else if (this.calendarElement) {\n this.createContentHeader();\n }\n this.adjustLongHeaderSize();\n break;\n case 'min':\n case 'max':\n this.rangeValidation(this.min, this.max);\n if (prop === 'min') {\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(newProp.min))) }, true);\n }\n else {\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(newProp.max))) }, true);\n }\n this.setProperties({ start: this.currentView() }, true);\n if (this.tableBodyElement) {\n detach(this.tableBodyElement);\n }\n this.minMaxUpdate();\n if (multiSelection) {\n this.validateValues(multiSelection, values);\n }\n if (this.getModuleName() !== 'datepicker') {\n this.createContentBody();\n }\n else if (this.calendarElement) {\n this.createContentBody();\n }\n if ((this.todayDate < this.min || this.max < this.todayDate) && (this.footer) && (this.todayElement)) {\n detach(this.todayElement);\n detach(this.footer);\n this.todayElement = this.footer = null;\n this.createContentFooter();\n }\n else {\n if ((this.footer) && (this.todayElement) && this.todayElement.classList.contains('e-disabled')) {\n removeClass([this.todayElement], DISABLED);\n detach(this.todayElement);\n detach(this.footer);\n this.todayElement = this.footer = null;\n this.createContentFooter();\n }\n }\n break;\n case 'start':\n case 'depth':\n case 'weekNumber':\n case 'firstDayOfWeek':\n case 'weekRule':\n this.checkView();\n if (this.getModuleName() !== 'datepicker') {\n this.createContentHeader();\n this.createContentBody();\n }\n else if (this.calendarElement) {\n this.createContentHeader();\n this.createContentBody();\n }\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n if (this.getModuleName() !== 'datepicker') {\n this.createContentHeader();\n this.createContentBody();\n }\n else if (this.calendarElement) {\n this.createContentHeader();\n this.createContentBody();\n }\n this.l10.setLocale(this.locale);\n this.updateFooter();\n break;\n case 'showTodayButton':\n if (newProp.showTodayButton) {\n this.createContentFooter();\n }\n else {\n if (!isNullOrUndefined(this.todayElement) && !isNullOrUndefined(this.footer)) {\n detach(this.todayElement);\n detach(this.footer);\n this.todayElement = this.footer = undefined;\n }\n }\n this.setProperties({ showTodayButton: newProp.showTodayButton }, true);\n break;\n }\n }\n };\n /**\n * values property updated with considered disabled dates of the calendar.\n *\n * @param {boolean} multiSelection - Specifies whether multiple date selection is enabled.\n * @param {Date[]} values - Specifies the dates to validate.\n * @returns {void}\n */\n CalendarBase.prototype.validateValues = function (multiSelection, values) {\n if (multiSelection && !isNullOrUndefined(values) && values.length > 0) {\n var copyValues = this.copyValues(values);\n for (var skipIndex = 0; skipIndex < copyValues.length; skipIndex++) {\n var tempValue = copyValues[skipIndex];\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var tempValueString = void 0;\n if (this.calendarMode === 'Gregorian') {\n tempValueString = this.globalize.formatDate(tempValue, { type: 'date', skeleton: 'yMd' });\n }\n else {\n tempValueString = this.globalize.formatDate(tempValue, { type: 'dateTime', skeleton: 'full', calendar: 'islamic' });\n }\n var minFormatOption = { type: 'date', skeleton: 'yMd', calendar: type };\n var minStringValue = this.globalize.formatDate(this.min, minFormatOption);\n var minString = minStringValue;\n var maxFormatOption = { type: 'date', skeleton: 'yMd', calendar: type };\n var maxStringValue = this.globalize.formatDate(this.max, maxFormatOption);\n var maxString = maxStringValue;\n if (+new Date(tempValueString) < +new Date(minString) ||\n +new Date(tempValueString) > +new Date(maxString)) {\n copyValues.splice(skipIndex, 1);\n skipIndex = -1;\n }\n }\n this.setProperties({ values: copyValues }, true);\n }\n };\n CalendarBase.prototype.setValueUpdate = function () {\n if (!isNullOrUndefined(this.tableBodyElement)) {\n detach(this.tableBodyElement);\n this.setProperties({ start: this.currentView() }, true);\n this.createContentBody();\n }\n };\n CalendarBase.prototype.copyValues = function (values) {\n var copyValues = [];\n if (!isNullOrUndefined(values) && values.length > 0) {\n for (var index = 0; index < values.length; index++) {\n copyValues.push(new Date(+values[index]));\n }\n }\n return copyValues;\n };\n CalendarBase.prototype.titleUpdate = function (date, view) {\n var globalize = new Internationalization(this.locale);\n var dayFormatOptions;\n var monthFormatOptions;\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n if (this.calendarMode === 'Gregorian') {\n dayFormatOptions = globalize.formatDate(date, { type: 'dateTime', skeleton: 'yMMMM', calendar: type });\n monthFormatOptions = globalize.formatDate(date, {\n format: null, type: 'dateTime', skeleton: 'y', calendar: type\n });\n }\n else {\n dayFormatOptions = globalize.formatDate(date, { type: 'dateTime', format: 'MMMM y', calendar: type });\n monthFormatOptions = globalize.formatDate(date, { type: 'dateTime', format: 'y', calendar: type });\n }\n switch (view) {\n case 'days':\n this.headerTitleElement.textContent = this.toCapitalize(dayFormatOptions);\n break;\n case 'months':\n this.headerTitleElement.textContent = monthFormatOptions;\n }\n };\n CalendarBase.prototype.setActiveDescendant = function () {\n var id;\n var focusedEle = this.tableBodyElement.querySelector('tr td.e-focused-date');\n var selectedEle = this.tableBodyElement.querySelector('tr td.e-selected');\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var title;\n var view = this.currentView();\n if (view === 'Month') {\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'full', calendar: type });\n }\n else if (view === 'Year') {\n if (type !== 'islamic') {\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'yMMMM', calendar: type });\n }\n else {\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'GyMMM', calendar: type });\n }\n }\n else {\n title = this.globalize.formatDate(this.currentDate, {\n format: null, type: 'date', skeleton: 'y', calendar: type\n });\n }\n if (selectedEle || focusedEle) {\n if (!isNullOrUndefined(selectedEle)) {\n selectedEle.setAttribute('aria-selected', 'true');\n }\n (focusedEle || selectedEle).setAttribute('aria-label', title);\n id = (focusedEle || selectedEle).getAttribute('id');\n }\n return id;\n };\n CalendarBase.prototype.iconHandler = function () {\n new Date(this.checkValue(this.currentDate)).setDate(1);\n switch (this.currentView()) {\n case 'Month':\n this.previousIconHandler(this.compareMonth(new Date(this.checkValue(this.currentDate)), this.min) < 1);\n this.nextIconHandler(this.compareMonth(new Date(this.checkValue(this.currentDate)), this.max) > -1);\n break;\n case 'Year':\n this.previousIconHandler(this.compareYear(new Date(this.checkValue(this.currentDate)), this.min) < 1);\n this.nextIconHandler(this.compareYear(new Date(this.checkValue(this.currentDate)), this.max) > -1);\n break;\n case 'Decade':\n this.previousIconHandler(this.compareDecade(new Date(this.checkValue(this.currentDate)), this.min) < 1);\n this.nextIconHandler(this.compareDecade(new Date(this.checkValue(this.currentDate)), this.max) > -1);\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n CalendarBase.prototype.destroy = function () {\n if (this.getModuleName() === 'calendar' && this.element) {\n removeClass([this.element], [ROOT]);\n }\n else {\n if (this.calendarElement && this.element) {\n removeClass([this.element], [ROOT]);\n }\n }\n if (this.getModuleName() === 'calendar' && this.element) {\n if (!isNullOrUndefined(this.headerTitleElement)) {\n EventHandler.remove(this.headerTitleElement, 'click', this.navigateTitle);\n }\n if (this.todayElement) {\n EventHandler.remove(this.todayElement, 'click', this.todayButtonClick);\n }\n this.previousIconHandler(true);\n this.nextIconHandler(true);\n this.keyboardModule.destroy();\n this.element.removeAttribute('data-role');\n if (!isNullOrUndefined(this.calendarEleCopy.getAttribute('tabindex'))) {\n this.element.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.element.removeAttribute('tabindex');\n }\n }\n if (this.element) {\n this.element.innerHTML = '';\n }\n this.todayElement = null;\n this.tableBodyElement = null;\n this.renderDayCellArgs = null;\n this.headerElement = null;\n this.nextIcon = null;\n this.table = null;\n this.tableHeadElement = null;\n this.previousIcon = null;\n this.headerTitleElement = null;\n this.footer = null;\n this.contentElement = null;\n _super.prototype.destroy.call(this);\n };\n CalendarBase.prototype.title = function (e) {\n var currentView = this.getViewNumber(this.currentView());\n this.effect = ZOOMIN;\n this.switchView(++currentView, e);\n };\n CalendarBase.prototype.getViewNumber = function (stringVal) {\n if (stringVal === 'Month') {\n return 0;\n }\n else if (stringVal === 'Year') {\n return 1;\n }\n else {\n return 2;\n }\n };\n CalendarBase.prototype.navigateTitle = function (e) {\n e.preventDefault();\n this.title(e);\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n CalendarBase.prototype.previous = function () {\n this.effect = '';\n var currentView = this.getViewNumber(this.currentView());\n switch (this.currentView()) {\n case 'Month':\n this.addMonths(this.currentDate, -1);\n this.switchView(currentView);\n break;\n case 'Year':\n this.addYears(this.currentDate, -1);\n this.switchView(currentView);\n break;\n case 'Decade':\n this.addYears(this.currentDate, -10);\n this.switchView(currentView);\n break;\n }\n };\n CalendarBase.prototype.navigatePrevious = function (e) {\n !Browser.isDevice && e.preventDefault();\n if (this.calendarMode === 'Gregorian') {\n this.previous();\n }\n else {\n this.islamicModule.islamicPrevious();\n }\n this.triggerNavigate(e);\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n CalendarBase.prototype.next = function () {\n this.effect = '';\n var currentView = this.getViewNumber(this.currentView());\n switch (this.currentView()) {\n case 'Month':\n this.addMonths(this.currentDate, 1);\n this.switchView(currentView);\n break;\n case 'Year':\n this.addYears(this.currentDate, 1);\n this.switchView(currentView);\n break;\n case 'Decade':\n this.addYears(this.currentDate, 10);\n this.switchView(currentView);\n break;\n }\n };\n CalendarBase.prototype.navigateNext = function (eve) {\n !Browser.isDevice && eve.preventDefault();\n if (this.calendarMode === 'Gregorian') {\n this.next();\n }\n else {\n this.islamicModule.islamicNext();\n }\n this.triggerNavigate(eve);\n if (this.getModuleName() === 'calendar') {\n this.table.focus();\n }\n };\n /**\n * This method is used to navigate to the month/year/decade view of the Calendar.\n *\n * @param {string} view - Specifies the view of the Calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @param {boolean} isCustomDate - Specifies whether the calendar is rendered with custom today date or not.\n * @returns {void}\n */\n CalendarBase.prototype.navigateTo = function (view, date, isCustomDate) {\n if (+date >= +this.min && +date <= +this.max) {\n this.currentDate = date;\n }\n if (+date <= +this.min) {\n this.currentDate = new Date(this.checkValue(this.min));\n }\n if (+date >= +this.max) {\n this.currentDate = new Date(this.checkValue(this.max));\n }\n if ((this.getViewNumber(this.depth) >= this.getViewNumber(view))) {\n if ((this.getViewNumber(this.depth) <= this.getViewNumber(this.start))\n || this.getViewNumber(this.depth) === this.getViewNumber(view)) {\n view = this.depth;\n }\n }\n this.switchView(this.getViewNumber(view), null, null, isCustomDate);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the Calendar.\n *\n * @returns {string}\n */\n CalendarBase.prototype.currentView = function () {\n if (!isNullOrUndefined(this.contentElement) && this.contentElement.classList.contains(YEAR)) {\n return 'Year';\n }\n else if (!isNullOrUndefined(this.contentElement) && this.contentElement.classList.contains(DECADE)) {\n return 'Decade';\n }\n else {\n return 'Month';\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n CalendarBase.prototype.getDateVal = function (date, value) {\n return (!isNullOrUndefined(value) && date.getDate() === (value).getDate()\n && date.getMonth() === (value).getMonth() && date.getFullYear() === (value).getFullYear());\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n CalendarBase.prototype.getCultureObjects = function (ld, c) {\n var gregorianFormat = '.dates.calendars.gregorian.days.format.' + this.dayHeaderFormat.toLowerCase();\n var islamicFormat = '.dates.calendars.islamic.days.format.' + this.dayHeaderFormat.toLowerCase();\n var mainVal = 'main.';\n if (this.calendarMode === 'Gregorian') {\n return getValue(mainVal + '' + this.locale + gregorianFormat, ld);\n }\n else {\n return getValue('main.' + '' + this.locale + islamicFormat, ld);\n }\n };\n CalendarBase.prototype.getWeek = function (d) {\n var currentDate = new Date(this.checkValue(d)).valueOf();\n var date = new Date(d.getFullYear(), 0, 1).valueOf();\n return Math.ceil((((currentDate - date) + dayMilliSeconds) / dayMilliSeconds) / 7);\n };\n CalendarBase.prototype.setStartDate = function (date, time) {\n var tzOffset = date.getTimezoneOffset();\n var d = new Date(date.getTime() + time);\n var tzOffsetDiff = d.getTimezoneOffset() - tzOffset;\n date.setTime(d.getTime() + tzOffsetDiff * minutesMilliSeconds);\n };\n CalendarBase.prototype.addMonths = function (date, i) {\n if (this.calendarMode === 'Gregorian') {\n var day = date.getDate();\n date.setDate(1);\n date.setMonth(date.getMonth() + i);\n date.setDate(Math.min(day, this.getMaxDays(date)));\n }\n else {\n var islamicDate = this.islamicModule.getIslamicDate(date);\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year, (islamicDate.month) + i, 1);\n }\n };\n CalendarBase.prototype.addYears = function (date, i) {\n if (this.calendarMode === 'Gregorian') {\n var day = date.getDate();\n date.setDate(1);\n date.setFullYear(date.getFullYear() + i);\n date.setDate(Math.min(day, this.getMaxDays(date)));\n }\n else {\n var islamicDate = this.islamicModule.getIslamicDate(date);\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year + i, (islamicDate.month), 1);\n }\n };\n CalendarBase.prototype.getIdValue = function (e, element) {\n var eve;\n if (e) {\n eve = e.currentTarget;\n }\n else {\n eve = element;\n }\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full', calendar: type };\n // eslint-disable-next-line radix\n var dateString = this.globalize.formatDate(new Date(parseInt('' + eve.getAttribute('id'), 0)), dateFormatOptions);\n var date = this.globalize.parseDate(dateString, dateFormatOptions);\n var value = date.valueOf() - date.valueOf() % 1000;\n return new Date(value);\n //return this.globalize.parseDate(dateString, dateFormatOptions);\n };\n CalendarBase.prototype.adjustLongHeaderSize = function () {\n removeClass([this.element], DAYHEADERLONG);\n if (this.dayHeaderFormat === 'Wide') {\n addClass([this.getModuleName() === 'calendar' ? this.element : this.calendarElement], DAYHEADERLONG);\n }\n };\n CalendarBase.prototype.selectDate = function (e, date, node, multiSelection, values) {\n var element = node || e.currentTarget;\n this.isDateSelected = false;\n if (this.currentView() === 'Decade') {\n this.setDateDecade(this.currentDate, date.getFullYear());\n }\n else if (this.currentView() === 'Year') {\n this.setDateYear(this.currentDate, date);\n }\n else {\n if (multiSelection && !this.checkPresentDate(date, values)) {\n var copyValues = this.copyValues(values);\n if (!isNullOrUndefined(values) && copyValues.length > 0) {\n copyValues.push(new Date(this.checkValue(date)));\n this.setProperties({ values: copyValues }, true);\n this.setProperties({ value: values[values.length - 1] }, true);\n }\n else {\n this.setProperties({ values: [new Date(this.checkValue(date))] }, true);\n }\n }\n else {\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\n }\n this.currentDate = new Date(this.checkValue(date));\n }\n var tableBodyElement = closest(element, '.' + ROOT);\n if (isNullOrUndefined(tableBodyElement)) {\n tableBodyElement = this.tableBodyElement;\n }\n if (!multiSelection && !isNullOrUndefined(tableBodyElement.querySelector('.' + SELECTED))) {\n removeClass([tableBodyElement.querySelector('.' + SELECTED)], SELECTED);\n }\n if (!multiSelection && !isNullOrUndefined(tableBodyElement.querySelector('.' + FOCUSEDDATE))) {\n removeClass([tableBodyElement.querySelector('.' + FOCUSEDDATE)], FOCUSEDDATE);\n }\n if (multiSelection) {\n var copyValues = this.copyValues(values);\n var collection = Array.prototype.slice.call(this.tableBodyElement.querySelectorAll('td'));\n for (var index = 0; index < collection.length; index++) {\n var tempElement = tableBodyElement.querySelectorAll('td' + '.' + FOCUSEDDATE)[0];\n var selectedElement = tableBodyElement.querySelectorAll('td' + '.' + SELECTED)[0];\n if (collection[index] === tempElement) {\n removeClass([collection[index]], FOCUSEDDATE);\n }\n if (collection[index] === selectedElement &&\n !this.checkPresentDate(new Date(parseInt(selectedElement.getAttribute('id').split('_')[0], 10)), values)) {\n removeClass([collection[index]], SELECTED);\n }\n }\n if (element.classList.contains(SELECTED)) {\n removeClass([element], SELECTED);\n for (var i = 0; i < copyValues.length; i++) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var formatOptions = { format: null, type: 'date', skeleton: 'short', calendar: type };\n var localDateString = this.globalize.formatDate(date, formatOptions);\n var tempDateString = this.globalize.formatDate(copyValues[i], formatOptions);\n if (localDateString === tempDateString) {\n var index = copyValues.indexOf(copyValues[i]);\n copyValues.splice(index, 1);\n addClass([element], FOCUSEDDATE);\n }\n }\n this.setProperties({ values: copyValues }, true);\n }\n else {\n addClass([element], SELECTED);\n }\n }\n else {\n addClass([element], SELECTED);\n }\n this.isDateSelected = true;\n };\n CalendarBase.prototype.checkPresentDate = function (dates, values) {\n var previousValue = false;\n if (!isNullOrUndefined(values)) {\n for (var checkPrevious = 0; checkPrevious < values.length; checkPrevious++) {\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\n var localDateString = this.globalize.formatDate(dates, {\n format: null, type: 'date', skeleton: 'short', calendar: type\n });\n var tempDateString = this.globalize.formatDate(values[checkPrevious], {\n format: null, type: 'date', skeleton: 'short', calendar: type\n });\n if (localDateString === tempDateString) {\n previousValue = true;\n }\n }\n }\n return previousValue;\n };\n CalendarBase.prototype.setAriaActiveDescendant = function () {\n attributes(this.table, {\n 'aria-activedescendant': '' + this.setActiveDescendant()\n });\n };\n CalendarBase.prototype.previousIconHandler = function (disabled) {\n if (disabled) {\n if (!isNullOrUndefined(this.previousIcon)) {\n EventHandler.remove(this.previousIcon, 'click', this.navigatePreviousHandler);\n addClass([this.previousIcon], '' + DISABLED);\n addClass([this.previousIcon], '' + OVERLAY);\n this.previousIcon.setAttribute('aria-disabled', 'true');\n }\n }\n else {\n EventHandler.add(this.previousIcon, 'click', this.navigatePreviousHandler);\n removeClass([this.previousIcon], '' + DISABLED);\n removeClass([this.previousIcon], '' + OVERLAY);\n this.previousIcon.setAttribute('aria-disabled', 'false');\n }\n };\n CalendarBase.prototype.renderDayCellEvent = function (args) {\n extend(this.renderDayCellArgs, { name: 'renderDayCell' });\n this.trigger('renderDayCell', args);\n };\n CalendarBase.prototype.navigatedEvent = function (eve) {\n extend(this.navigatedArgs, { name: 'navigated', event: eve });\n this.trigger('navigated', this.navigatedArgs);\n };\n CalendarBase.prototype.triggerNavigate = function (event) {\n this.navigatedArgs = { view: this.currentView(), date: this.currentDate };\n this.navigatedEvent(event);\n };\n CalendarBase.prototype.nextIconHandler = function (disabled) {\n if (disabled) {\n if (!isNullOrUndefined(this.previousIcon)) {\n EventHandler.remove(this.nextIcon, 'click', this.navigateNextHandler);\n addClass([this.nextIcon], DISABLED);\n addClass([this.nextIcon], OVERLAY);\n this.nextIcon.setAttribute('aria-disabled', 'true');\n }\n }\n else {\n EventHandler.add(this.nextIcon, 'click', this.navigateNextHandler);\n removeClass([this.nextIcon], DISABLED);\n removeClass([this.nextIcon], OVERLAY);\n this.nextIcon.setAttribute('aria-disabled', 'false');\n }\n };\n CalendarBase.prototype.compare = function (startDate, endDate, modifier) {\n var start = endDate.getFullYear();\n var end;\n var result;\n end = start;\n result = 0;\n if (modifier) {\n start = start - start % modifier;\n end = start - start % modifier + modifier - 1;\n }\n if (startDate.getFullYear() > end) {\n result = 1;\n }\n else if (startDate.getFullYear() < start) {\n result = -1;\n }\n return result;\n };\n CalendarBase.prototype.isMinMaxRange = function (date) {\n return +date >= +this.min && +date <= +this.max;\n };\n CalendarBase.prototype.isMonthYearRange = function (date) {\n if (this.calendarMode === 'Gregorian') {\n return date.getMonth() >= this.min.getMonth()\n && date.getFullYear() >= this.min.getFullYear()\n && date.getMonth() <= this.max.getMonth()\n && date.getFullYear() <= this.max.getFullYear();\n }\n else {\n var islamicDate = this.islamicModule.getIslamicDate(date);\n return islamicDate.month >= (this.islamicModule.getIslamicDate(new Date(1944, 1, 18))).month\n && islamicDate.year >= (this.islamicModule.getIslamicDate(new Date(1944, 1, 18))).year\n && islamicDate.month <= (this.islamicModule.getIslamicDate(new Date(2069, 1, 16))).month\n && islamicDate.year <= (this.islamicModule.getIslamicDate(new Date(2069, 1, 16))).year;\n }\n };\n CalendarBase.prototype.compareYear = function (start, end) {\n return this.compare(start, end, 0);\n };\n CalendarBase.prototype.compareDecade = function (start, end) {\n return this.compare(start, end, 10);\n };\n CalendarBase.prototype.shiftArray = function (array, i) {\n return array.slice(i).concat(array.slice(0, i));\n };\n CalendarBase.prototype.addDay = function (date, i, e, max, min) {\n var column = i;\n var value = new Date(+date);\n if (!isNullOrUndefined(this.tableBodyElement) && !isNullOrUndefined(e)) {\n while (this.findNextTD(new Date(+date), column, max, min)) {\n column += i;\n }\n var rangeValue = new Date(value.setDate(value.getDate() + column));\n column = (+rangeValue > +max || +rangeValue < +min) ? column === i ? i - i : i : column;\n }\n date.setDate(date.getDate() + column);\n };\n CalendarBase.prototype.findNextTD = function (date, column, max, min) {\n var value = new Date(date.setDate(date.getDate() + column));\n var collection = [];\n var isDisabled = false;\n if ((!isNullOrUndefined(value) && value.getMonth()) === (!isNullOrUndefined(this.currentDate) && this.currentDate.getMonth())) {\n var tdEles = void 0;\n if (this.calendarMode === 'Gregorian') {\n tdEles = this.renderDays(value);\n }\n else {\n tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);\n }\n collection = tdEles.filter(function (element) {\n return element.classList.contains(DISABLED);\n });\n }\n else {\n collection = this.tableBodyElement.querySelectorAll('td.' + DISABLED);\n }\n if (+value <= (+(max)) && +value >= (+(min))) {\n if (collection.length) {\n for (var i = 0; i < collection.length; i++) {\n // eslint-disable-next-line radix\n isDisabled = (+value === +new Date(parseInt(collection[i].id, 0))) ? true : false;\n if (isDisabled) {\n break;\n }\n }\n }\n }\n return isDisabled;\n };\n CalendarBase.prototype.getMaxDays = function (d) {\n var date;\n var tmpDate = new Date(this.checkValue(d));\n date = 28;\n var month = tmpDate.getMonth();\n while (tmpDate.getMonth() === month) {\n ++date;\n tmpDate.setDate(date);\n }\n return date - 1;\n };\n CalendarBase.prototype.setDateDecade = function (date, year) {\n date.setFullYear(year);\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\n };\n CalendarBase.prototype.setDateYear = function (date, value) {\n date.setFullYear(value.getFullYear(), value.getMonth(), date.getDate());\n if (value.getMonth() !== date.getMonth()) {\n date.setDate(0);\n this.currentDate = new Date(this.checkValue(value));\n }\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\n };\n CalendarBase.prototype.compareMonth = function (start, end) {\n var result;\n if (start.getFullYear() > end.getFullYear()) {\n result = 1;\n }\n else if (start.getFullYear() < end.getFullYear()) {\n result = -1;\n }\n else {\n result = start.getMonth() === end.getMonth() ? 0 : start.getMonth() > end.getMonth() ? 1 : -1;\n }\n return result;\n };\n CalendarBase.prototype.checkValue = function (inValue) {\n if (inValue instanceof Date) {\n return (inValue.toUTCString());\n }\n else {\n return ('' + inValue);\n }\n };\n CalendarBase.prototype.checkView = function () {\n if (this.start !== 'Decade' && this.start !== 'Year') {\n this.setProperties({ start: 'Month' }, true);\n }\n if (this.depth !== 'Decade' && this.depth !== 'Year') {\n this.setProperties({ depth: 'Month' }, true);\n }\n if (this.getViewNumber(this.depth) > this.getViewNumber(this.start)) {\n this.setProperties({ depth: 'Month' }, true);\n }\n };\n CalendarBase.prototype.getDate = function (date, timezone) {\n if (timezone) {\n date = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\n }\n return date;\n };\n __decorate([\n Property(new Date(1900, 0, 1))\n ], CalendarBase.prototype, \"min\", void 0);\n __decorate([\n Property(true)\n ], CalendarBase.prototype, \"enabled\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], CalendarBase.prototype, \"max\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property('Gregorian')\n ], CalendarBase.prototype, \"calendarMode\", void 0);\n __decorate([\n Property('Month')\n ], CalendarBase.prototype, \"start\", void 0);\n __decorate([\n Property('Month')\n ], CalendarBase.prototype, \"depth\", void 0);\n __decorate([\n Property(false)\n ], CalendarBase.prototype, \"weekNumber\", void 0);\n __decorate([\n Property('FirstDay')\n ], CalendarBase.prototype, \"weekRule\", void 0);\n __decorate([\n Property(true)\n ], CalendarBase.prototype, \"showTodayButton\", void 0);\n __decorate([\n Property('Short')\n ], CalendarBase.prototype, \"dayHeaderFormat\", void 0);\n __decorate([\n Property(false)\n ], CalendarBase.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(null)\n ], CalendarBase.prototype, \"serverTimezoneOffset\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"navigated\", void 0);\n __decorate([\n Event()\n ], CalendarBase.prototype, \"renderDayCell\", void 0);\n CalendarBase = __decorate([\n NotifyPropertyChanges\n ], CalendarBase);\n return CalendarBase;\n}(Component));\nexport { CalendarBase };\n/**\n * Represents the Calendar component that allows the user to select a date.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Calendar = /** @class */ (function (_super) {\n __extends(Calendar, _super);\n /**\n * Initialized new instance of Calendar Class.\n * Constructor for creating the widget\n *\n * @param {CalendarModel} options - Specifies the Calendar model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function Calendar(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n Calendar.prototype.render = function () {\n if (this.calendarMode === 'Islamic' && this.islamicModule === undefined) {\n throwError('Requires the injectable Islamic modules to render Calendar in Islamic mode');\n }\n if (this.isMultiSelection && typeof this.values === 'object' && !isNullOrUndefined(this.values) && this.values.length > 0) {\n var tempValues = [];\n var copyValues = [];\n for (var limit = 0; limit < this.values.length; limit++) {\n if (tempValues.indexOf(+this.values[limit]) === -1) {\n tempValues.push(+this.values[limit]);\n copyValues.push(this.values[limit]);\n }\n }\n this.setProperties({ values: copyValues }, true);\n for (var index = 0; index < this.values.length; index++) {\n if (!this.checkDateValue(this.values[index])) {\n if (typeof (this.values[index]) === 'string' && this.checkDateValue(new Date(this.checkValue(this.values[index])))) {\n var copyDate = new Date(this.checkValue(this.values[index]));\n this.values.splice(index, 1);\n this.values.splice(index, 0, copyDate);\n }\n else {\n this.values.splice(index, 1);\n }\n }\n }\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n this.previousValues = this.values.length;\n }\n this.validateDate();\n this.minMaxUpdate();\n if (this.getModuleName() === 'calendar') {\n this.setEnable(this.enabled);\n this.setClass(this.cssClass);\n }\n _super.prototype.render.call(this);\n if (this.getModuleName() === 'calendar') {\n var form = closest(this.element, 'form');\n if (form) {\n EventHandler.add(form, 'reset', this.formResetHandler.bind(this));\n }\n this.setTimeZone(this.serverTimezoneOffset);\n }\n this.renderComplete();\n };\n Calendar.prototype.setEnable = function (enable) {\n if (!enable) {\n addClass([this.element], DISABLED);\n }\n else {\n removeClass([this.element], DISABLED);\n }\n };\n Calendar.prototype.setClass = function (newCssClass, oldCssClass) {\n if (!isNullOrUndefined(oldCssClass)) {\n oldCssClass = (oldCssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newCssClass)) {\n newCssClass = (newCssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(oldCssClass) && oldCssClass !== '') {\n removeClass([this.element], oldCssClass.split(' '));\n }\n if (!isNullOrUndefined(newCssClass)) {\n addClass([this.element], newCssClass.split(' '));\n }\n };\n Calendar.prototype.isDayLightSaving = function () {\n var secondOffset = new Date(this.value.getFullYear(), 6, 1).getTimezoneOffset();\n var firstOffset = new Date(this.value.getFullYear(), 0, 1).getTimezoneOffset();\n return (this.value.getTimezoneOffset() < Math.max(firstOffset, secondOffset));\n };\n Calendar.prototype.setTimeZone = function (offsetValue) {\n if (!isNullOrUndefined(this.serverTimezoneOffset) && this.value) {\n var serverTimezoneDiff = offsetValue;\n var clientTimeZoneDiff = new Date().getTimezoneOffset() / 60;\n var timeZoneDiff = serverTimezoneDiff + clientTimeZoneDiff;\n timeZoneDiff = this.isDayLightSaving() ? timeZoneDiff-- : timeZoneDiff;\n this.value = new Date(this.value.getTime() + (timeZoneDiff * 60 * 60 * 1000));\n }\n };\n Calendar.prototype.formResetHandler = function () {\n this.setProperties({ value: null }, true);\n };\n Calendar.prototype.validateDate = function () {\n if (typeof this.value === 'string') {\n this.setProperties({ value: this.checkDateValue(new Date(this.checkValue(this.value))) }, true); // persist the value property.\n }\n _super.prototype.validateDate.call(this, this.value);\n if (!isNullOrUndefined(this.value) && this.min <= this.max && this.value >= this.min && this.value <= this.max) {\n this.currentDate = new Date(this.checkValue(this.value));\n }\n if (isNaN(+this.value)) {\n this.setProperties({ value: null }, true);\n }\n };\n Calendar.prototype.minMaxUpdate = function () {\n if (this.getModuleName() === 'calendar') {\n if (!isNullOrUndefined(this.value) && this.value <= this.min && this.min <= this.max) {\n this.setProperties({ value: this.min }, true);\n this.changedArgs = { value: this.value };\n }\n else {\n if (!isNullOrUndefined(this.value) && this.value >= this.max && this.min <= this.max) {\n this.setProperties({ value: this.max }, true);\n this.changedArgs = { value: this.value };\n }\n }\n }\n if (this.getModuleName() !== 'calendar' && !isNullOrUndefined(this.value)) {\n if (!isNullOrUndefined(this.value) && this.value < this.min && this.min <= this.max) {\n _super.prototype.minMaxUpdate.call(this, this.min);\n }\n else {\n if (!isNullOrUndefined(this.value) && this.value > this.max && this.min <= this.max) {\n _super.prototype.minMaxUpdate.call(this, this.max);\n }\n }\n }\n else {\n _super.prototype.minMaxUpdate.call(this, this.value);\n }\n };\n Calendar.prototype.generateTodayVal = function (value) {\n var tempValue = new Date();\n if (!isNullOrUndefined(this.timezone)) {\n tempValue = _super.prototype.getDate.call(this, tempValue, this.timezone);\n }\n if (value && isNullOrUndefined(this.timezone)) {\n tempValue.setHours(value.getHours());\n tempValue.setMinutes(value.getMinutes());\n tempValue.setSeconds(value.getSeconds());\n tempValue.setMilliseconds(value.getMilliseconds());\n }\n else {\n tempValue = new Date(tempValue.getFullYear(), tempValue.getMonth(), tempValue.getDate(), 0, 0, 0, 0);\n }\n return tempValue;\n };\n Calendar.prototype.todayButtonClick = function (e) {\n if (this.showTodayButton) {\n var tempValue = this.generateTodayVal(this.value);\n this.setProperties({ value: tempValue }, true);\n this.isTodayClicked = true;\n this.todayButtonEvent = e;\n if (this.isMultiSelection) {\n var copyValues = this.copyValues(this.values);\n if (!_super.prototype.checkPresentDate.call(this, tempValue, this.values)) {\n copyValues.push(tempValue);\n this.setProperties({ values: copyValues });\n }\n }\n _super.prototype.todayButtonClick.call(this, e, new Date(+this.value));\n }\n };\n Calendar.prototype.keyActionHandle = function (e) {\n _super.prototype.keyActionHandle.call(this, e, this.value, this.isMultiSelection);\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Calendar.prototype.preRender = function () {\n var _this = this;\n this.changeHandler = function (e) {\n _this.triggerChange(e);\n };\n this.checkView();\n _super.prototype.preRender.call(this, this.value);\n };\n /**\n * @returns {void}\n\n */\n Calendar.prototype.createContent = function () {\n this.previousDate = this.value;\n this.previousDateTime = this.value;\n _super.prototype.createContent.call(this);\n };\n Calendar.prototype.minMaxDate = function (localDate) {\n return _super.prototype.minMaxDate.call(this, localDate);\n };\n Calendar.prototype.renderMonths = function (e, value, isCustomDate) {\n _super.prototype.renderMonths.call(this, e, this.value, isCustomDate);\n };\n Calendar.prototype.renderDays = function (currentDate, value, isMultiSelect, values, isCustomDate, e) {\n var tempDays = _super.prototype.renderDays.call(this, currentDate, this.value, this.isMultiSelection, this.values, isCustomDate, e);\n if (this.isMultiSelection) {\n _super.prototype.validateValues.call(this, this.isMultiSelection, this.values);\n }\n return tempDays;\n };\n Calendar.prototype.renderYears = function (e) {\n if (this.calendarMode === 'Gregorian') {\n _super.prototype.renderYears.call(this, e, this.value);\n }\n else {\n this.islamicModule.islamicRenderYears(e, this.value);\n }\n };\n Calendar.prototype.renderDecades = function (e) {\n if (this.calendarMode === 'Gregorian') {\n _super.prototype.renderDecades.call(this, e, this.value);\n }\n else {\n this.islamicModule.islamicRenderDecade(e, this.value);\n }\n };\n Calendar.prototype.renderTemplate = function (elements, count, classNm, e) {\n if (this.calendarMode === 'Gregorian') {\n _super.prototype.renderTemplate.call(this, elements, count, classNm, e, this.value);\n }\n else {\n this.islamicModule.islamicRenderTemplate(elements, count, classNm, e, this.value);\n }\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler();\n };\n Calendar.prototype.clickHandler = function (e) {\n var eve = e.currentTarget;\n this.isPopupClicked = true;\n if (eve.classList.contains(OTHERMONTH)) {\n if (this.isMultiSelection) {\n var copyValues = this.copyValues(this.values);\n if (copyValues.toString().indexOf(this.getIdValue(e, null).toString()) === -1) {\n copyValues.push(this.getIdValue(e, null));\n this.setProperties({ values: copyValues }, true);\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n else {\n this.previousDates = true;\n }\n }\n else {\n this.setProperties({ value: this.getIdValue(e, null) }, true);\n }\n }\n var storeView = this.currentView();\n _super.prototype.clickHandler.call(this, e, this.value);\n if (this.isMultiSelection && this.currentDate !== this.value &&\n !isNullOrUndefined(this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0]) && storeView === 'Year') {\n this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0].classList.remove(FOCUSEDDATE);\n }\n };\n Calendar.prototype.switchView = function (view, e, isMultiSelection, isCustomDate) {\n _super.prototype.switchView.call(this, view, e, this.isMultiSelection, isCustomDate);\n };\n /**\n * To get component name\n *\n * @returns {string} Return the component name.\n * @private\n */\n Calendar.prototype.getModuleName = function () {\n _super.prototype.getModuleName.call(this);\n return 'calendar';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n Calendar.prototype.getPersistData = function () {\n _super.prototype.getPersistData.call(this);\n var keyEntity = ['value', 'values'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Called internally if any of the property value changed.\n *\n * @param {CalendarModel} newProp - Returns the dynamic property value of the component.\n * @param {CalendarModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n Calendar.prototype.onPropertyChanged = function (newProp, oldProp) {\n this.effect = '';\n this.rangeValidation(this.min, this.max);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'value':\n if (this.isDateSelected) {\n if (typeof newProp.value === 'string') {\n this.setProperties({ value: new Date(this.checkValue(newProp.value)) }, true);\n }\n else {\n newProp.value = new Date(this.checkValue(newProp.value));\n }\n if (isNaN(+this.value)) {\n this.setProperties({ value: oldProp.value }, true);\n }\n this.update();\n }\n break;\n case 'values':\n if (this.isDateSelected) {\n if (typeof newProp.values === 'string' || typeof newProp.values === 'number') {\n this.setProperties({ values: null }, true);\n }\n else {\n var copyValues = this.copyValues(this.values);\n for (var index = 0; index < copyValues.length; index++) {\n var tempDate = copyValues[index];\n if (this.checkDateValue(tempDate) && !_super.prototype.checkPresentDate.call(this, tempDate, copyValues)) {\n copyValues.push(tempDate);\n }\n }\n this.setProperties({ values: copyValues }, true);\n if (this.values.length > 0) {\n this.setProperties({ value: newProp.values[newProp.values.length - 1] }, true);\n }\n }\n this.validateValues(this.isMultiSelection, this.values);\n this.update();\n }\n break;\n case 'isMultiSelection':\n if (this.isDateSelected) {\n this.setProperties({ isMultiSelection: newProp.isMultiSelection }, true);\n this.update();\n }\n break;\n case 'enabled':\n this.setEnable(this.enabled);\n break;\n case 'cssClass':\n if (this.getModuleName() === 'calendar') {\n this.setClass(newProp.cssClass, oldProp.cssClass);\n }\n break;\n default:\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp, this.isMultiSelection, this.values);\n }\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Calendar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'calendar') {\n var form = closest(this.element, 'form');\n if (form) {\n EventHandler.remove(form, 'reset', this.formResetHandler.bind(this));\n }\n }\n };\n /**\n * This method is used to navigate to the month/year/decade view of the Calendar.\n *\n * @param {string} view - Specifies the view of the Calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @param {boolean} isCustomDate - Specifies whether the calendar is rendered with custom today date or not.\n * @returns {void}\n\n */\n Calendar.prototype.navigateTo = function (view, date, isCustomDate) {\n this.minMaxUpdate();\n _super.prototype.navigateTo.call(this, view, date, isCustomDate);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the Calendar.\n *\n * @returns {string}\n\n */\n Calendar.prototype.currentView = function () {\n return _super.prototype.currentView.call(this);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * This method is used to add the single or multiple dates to the values property of the Calendar.\n *\n * @param {Date | Date[]} dates - Specifies the date or dates to be added to the values property of the Calendar.\n * @returns {void}\n\n */\n Calendar.prototype.addDate = function (dates) {\n if (typeof dates !== 'string' && typeof dates !== 'number') {\n var copyValues = this.copyValues(this.values);\n if (typeof dates === 'object' && (dates).length > 0) {\n var tempDates = dates;\n for (var i = 0; i < tempDates.length; i++) {\n if (this.checkDateValue(tempDates[i]) && !_super.prototype.checkPresentDate.call(this, tempDates[i], copyValues)) {\n if (!isNullOrUndefined(copyValues) && copyValues.length > 0) {\n copyValues.push(tempDates[i]);\n }\n else {\n copyValues = [new Date(+tempDates[i])];\n }\n }\n }\n }\n else {\n if (this.checkDateValue(dates) && !_super.prototype.checkPresentDate.call(this, dates, copyValues)) {\n if (!isNullOrUndefined(copyValues) && copyValues.length > 0) {\n copyValues.push((dates));\n }\n else {\n copyValues = [new Date(+dates)];\n }\n }\n }\n this.setProperties({ values: copyValues }, true);\n if (this.isMultiSelection) {\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n this.validateValues(this.isMultiSelection, copyValues);\n this.update();\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler();\n }\n };\n /**\n * This method is used to remove the single or multiple dates from the values property of the Calendar.\n *\n * @param {Date | Date[]} dates - Specifies the date or dates which need to be removed from the values property of the Calendar.\n * @returns {void}\n\n */\n Calendar.prototype.removeDate = function (dates) {\n if (typeof dates !== 'string' && typeof dates !== 'number' && !isNullOrUndefined(this.values) && this.values.length > 0) {\n var copyValues = this.copyValues(this.values);\n if (typeof dates === 'object' && ((dates).length > 0)) {\n var tempDates = dates;\n for (var index = 0; index < tempDates.length; index++) {\n for (var i = 0; i < copyValues.length; i++) {\n if (+copyValues[i] === +tempDates[index]) {\n copyValues.splice(i, 1);\n }\n }\n }\n }\n else {\n for (var i = 0; i < copyValues.length; i++) {\n if (+copyValues[i] === +dates) {\n copyValues.splice(i, 1);\n }\n }\n }\n this.setProperties({ values: copyValues }, false);\n this.update();\n if (this.isMultiSelection) {\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler();\n }\n };\n /**\n * To set custom today date in calendar\n *\n * @param {Date} date - Specifies date value to be set.\n * @private\n * @returns {void}\n */\n Calendar.prototype.setTodayDate = function (date) {\n var todayDate = new Date(+date);\n this.setProperties({ value: todayDate }, true);\n _super.prototype.todayButtonClick.call(this, null, todayDate, true);\n };\n Calendar.prototype.update = function () {\n this.validateDate();\n this.minMaxUpdate();\n _super.prototype.setValueUpdate.call(this);\n };\n Calendar.prototype.selectDate = function (e, date, element) {\n _super.prototype.selectDate.call(this, e, date, element, this.isMultiSelection, this.values);\n if (this.isMultiSelection && !isNullOrUndefined(this.values) && this.values.length > 0) {\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\n }\n this.changedArgs = { value: this.value, values: this.values };\n this.changeHandler(e);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Calendar.prototype.changeEvent = function (e) {\n if ((this.value && this.value.valueOf()) !== (this.previousDate && +this.previousDate.valueOf())\n || this.isMultiSelection) {\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', this.changedArgs);\n }\n this.previousDate = new Date(+this.value);\n }\n };\n Calendar.prototype.triggerChange = function (e) {\n if (!isNullOrUndefined(this.todayButtonEvent) && this.isTodayClicked) {\n e = this.todayButtonEvent;\n this.isTodayClicked = false;\n }\n this.changedArgs.event = e || null;\n this.changedArgs.isInteracted = !isNullOrUndefined(e);\n if (!isNullOrUndefined(this.value)) {\n this.setProperties({ value: this.value }, true);\n }\n // eslint-disable-next-line use-isnan\n if (!this.isMultiSelection && +this.value !== Number.NaN && (!isNullOrUndefined(this.value) &&\n !isNullOrUndefined(this.previousDate) || this.previousDate === null\n && !isNaN(+this.value))) {\n this.changeEvent(e);\n }\n else if (!isNullOrUndefined(this.values) && this.previousValues !== this.values.length) {\n this.changeEvent(e);\n this.previousValues = this.values.length;\n }\n };\n __decorate([\n Property(null)\n ], Calendar.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Calendar.prototype, \"values\", void 0);\n __decorate([\n Property(false)\n ], Calendar.prototype, \"isMultiSelection\", void 0);\n __decorate([\n Event()\n ], Calendar.prototype, \"change\", void 0);\n Calendar = __decorate([\n NotifyPropertyChanges\n ], Calendar);\n return Calendar;\n}(CalendarBase));\nexport { Calendar };\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, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Animation, Event, extend, L10n, Browser, formatUnit } from '@syncfusion/ej2-base';\nimport { detach, addClass, removeClass, closest, attributes, Touch } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, setValue, getUniqueID } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { Calendar } from '../calendar/calendar';\n//class constant defination\nvar DATEWRAPPER = 'e-date-wrapper';\nvar ROOT = 'e-datepicker';\nvar LIBRARY = 'e-lib';\nvar CONTROL = 'e-control';\nvar POPUPWRAPPER = 'e-popup-wrapper';\nvar INPUTWRAPPER = 'e-input-group-icon';\nvar POPUP = 'e-popup';\nvar INPUTCONTAINER = 'e-input-group';\nvar INPUTFOCUS = 'e-input-focus';\nvar INPUTROOT = 'e-input';\nvar ERROR = 'e-error';\nvar ACTIVE = 'e-active';\nvar OVERFLOW = 'e-date-overflow';\nvar DATEICON = 'e-date-icon';\nvar CLEARICON = 'e-clear-icon';\nvar ICONS = 'e-icons';\nvar OPENDURATION = 300;\nvar OFFSETVALUE = 4;\nvar SELECTED = 'e-selected';\nvar FOCUSEDDATE = 'e-focused-date';\nvar NONEDIT = 'e-non-edit';\nvar containerAttr = ['title', 'class', 'style'];\n/**\n * Represents the DatePicker component that allows user to select\n * or enter a date value.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DatePicker = /** @class */ (function (_super) {\n __extends(DatePicker, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {DatePickerModel} options - Specifies the DatePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function DatePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isDateIconClicked = false;\n _this.isAltKeyPressed = false;\n _this.isInteracted = true;\n _this.invalidValueString = null;\n _this.checkPreviousValue = null;\n _this.maskedDateValue = '';\n _this.isAngular = false;\n _this.preventChange = false;\n _this.isIconClicked = false;\n _this.isDynamicValueChanged = false;\n _this.moduleName = _this.getModuleName();\n _this.isFocused = false;\n _this.isBlur = false;\n _this.datepickerOptions = options;\n return _this;\n }\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n DatePicker.prototype.render = function () {\n this.initialize();\n this.bindEvents();\n if (this.floatLabelType === 'Auto') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n this.setTimeZone(this.serverTimezoneOffset);\n };\n DatePicker.prototype.setTimeZone = function (offsetValue) {\n if (!isNullOrUndefined(this.serverTimezoneOffset) && this.value) {\n var clientTimeZoneDiff = new Date().getTimezoneOffset() / 60;\n var serverTimezoneDiff = offsetValue;\n var timeZoneDiff = serverTimezoneDiff + clientTimeZoneDiff;\n timeZoneDiff = this.isDayLightSaving() ? timeZoneDiff-- : timeZoneDiff;\n this.value = new Date((this.value).getTime() + (timeZoneDiff * 60 * 60 * 1000));\n this.updateInput();\n }\n };\n DatePicker.prototype.isDayLightSaving = function () {\n var firstOffset = new Date(this.value.getFullYear(), 0, 1).getTimezoneOffset();\n var secondOffset = new Date(this.value.getFullYear(), 6, 1).getTimezoneOffset();\n return (this.value.getTimezoneOffset() < Math.max(firstOffset, secondOffset));\n };\n DatePicker.prototype.setAllowEdit = function () {\n if (this.allowEdit) {\n if (!this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n else {\n attributes(this.inputElement, { 'readonly': '' });\n }\n this.updateIconState();\n };\n DatePicker.prototype.updateIconState = function () {\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\n if (this.inputElement.value === '') {\n removeClass([this.inputWrapper.container], [NONEDIT]);\n }\n else {\n addClass([this.inputWrapper.container], [NONEDIT]);\n }\n }\n else if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], [NONEDIT]);\n }\n };\n DatePicker.prototype.initialize = function () {\n this.checkInvalidValue(this.value);\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n this.createInput();\n this.updateHtmlAttributeToWrapper();\n this.setAllowEdit();\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n this.updateInput(true);\n this.updateInputValue(this.maskedDateValue);\n }\n else if (!this.enableMask) {\n this.updateInput(true);\n }\n this.previousElementValue = this.inputElement.value;\n this.previousDate = !isNullOrUndefined(this.value) ? new Date(+this.value) : null;\n this.inputElement.setAttribute('value', this.inputElement.value);\n this.inputValueCopy = this.value;\n };\n DatePicker.prototype.createInput = function () {\n var ariaAttrs = {\n 'aria-atomic': 'true', 'aria-expanded': 'false',\n 'role': 'combobox', 'autocomplete': 'off', 'autocorrect': 'off',\n 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'\n };\n if (this.getModuleName() === 'datepicker') {\n var l10nLocale = { placeholder: this.placeholder };\n this.globalize = new Internationalization(this.locale);\n this.l10n = new L10n('datepicker', l10nLocale, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (this.fullScreenMode && Browser.isDevice) {\n this.cssClass = \"e-popup-expand\";\n }\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n var isBindClearAction = this.enableMask ? false : true;\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n floatLabelType: this.floatLabelType,\n bindClearAction: isBindClearAction,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n },\n buttons: [INPUTWRAPPER + ' ' + DATEICON + ' ' + ICONS]\n }, this.createElement);\n this.setWidth(this.width);\n if (this.inputElement.name !== '') {\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute('name'));\n }\n else {\n this.inputElement.setAttribute('name', '' + this.element.id);\n }\n attributes(this.inputElement, ariaAttrs);\n if (!this.enabled) {\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.inputElement.tabIndex = -1;\n }\n else {\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);\n addClass([this.inputWrapper.container], DATEWRAPPER);\n };\n DatePicker.prototype.updateInput = function (isDynamic, isBlur) {\n if (isDynamic === void 0) { isDynamic = false; }\n if (isBlur === void 0) { isBlur = false; }\n var formatOptions;\n if (this.value && !this.isCalendar()) {\n this.disabledDates(isDynamic, isBlur);\n }\n if (isNaN(+new Date(this.checkValue(this.value)))) {\n this.setProperties({ value: null }, true);\n }\n if (this.strictMode) {\n //calls the Calendar processDate protected method to update the date value according to the strictMode true behaviour.\n _super.prototype.validateDate.call(this);\n this.minMaxUpdates();\n _super.prototype.minMaxUpdate.call(this);\n }\n if (!isNullOrUndefined(this.value)) {\n var dateValue = this.value;\n var dateString = void 0;\n var tempFormat = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n dateString = this.globalize.formatDate(this.value, {\n format: tempFormat, type: 'dateTime', skeleton: 'yMd'\n });\n }\n else {\n dateString = this.globalize.formatDate(this.value, {\n format: tempFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n });\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n dateString = this.globalize.formatDate(this.value, formatOptions);\n }\n if ((+dateValue <= +this.max) && (+dateValue >= +this.min)) {\n this.updateInputValue(dateString);\n }\n else {\n var value = (+dateValue >= +this.max || !+this.value) || (!+this.value || +dateValue <= +this.min);\n if (!this.strictMode && value) {\n this.updateInputValue(dateString);\n }\n }\n }\n if (isNullOrUndefined(this.value) && this.strictMode) {\n if (!this.enableMask) {\n this.updateInputValue('');\n }\n else {\n this.updateInputValue(this.maskedDateValue);\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n }\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\n this.updateInputValue(this.invalidValueString);\n }\n this.changedArgs = { value: this.value };\n this.errorClass();\n this.updateIconState();\n };\n DatePicker.prototype.minMaxUpdates = function () {\n if (!isNullOrUndefined(this.value) && this.value < this.min && this.min <= this.max && this.strictMode) {\n this.setProperties({ value: this.min }, true);\n this.changedArgs = { value: this.value };\n }\n else {\n if (!isNullOrUndefined(this.value) && this.value > this.max && this.min <= this.max && this.strictMode) {\n this.setProperties({ value: this.max }, true);\n this.changedArgs = { value: this.value };\n }\n }\n };\n DatePicker.prototype.checkStringValue = function (val) {\n var returnDate = null;\n var formatOptions = null;\n var formatDateTime = null;\n if (this.getModuleName() === 'datetimepicker') {\n var culture = new Internationalization(this.locale);\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd' };\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime' };\n }\n else {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime', calendar: 'islamic' };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n }\n returnDate = this.checkDateValue(this.globalize.parseDate(val, formatOptions));\n if (isNullOrUndefined(returnDate) && (this.getModuleName() === 'datetimepicker')) {\n returnDate = this.checkDateValue(this.globalize.parseDate(val, formatDateTime));\n }\n return returnDate;\n };\n DatePicker.prototype.checkInvalidValue = function (value) {\n if (!(value instanceof Date) && !isNullOrUndefined(value)) {\n var valueDate = null;\n var valueString = value;\n if (typeof value === 'number') {\n valueString = value.toString();\n }\n var formatOptions = null;\n var formatDateTime = null;\n if (this.getModuleName() === 'datetimepicker') {\n var culture = new Internationalization(this.locale);\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd' };\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime' };\n }\n else {\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime', calendar: 'islamic' };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n }\n var invalid = false;\n if (typeof valueString !== 'string') {\n valueString = null;\n invalid = true;\n }\n else {\n if (typeof valueString === 'string') {\n valueString = valueString.trim();\n }\n valueDate = this.checkStringValue(valueString);\n if (!valueDate) {\n var extISOString = null;\n var basicISOString = null;\n // eslint-disable-next-line\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n // eslint-disable-next-line\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\n || (/^[a-zA-Z0-9- ]*$/).test(valueString) || isNaN(+new Date(this.checkValue(valueString)))) {\n invalid = true;\n }\n else {\n valueDate = new Date(valueString);\n }\n }\n }\n if (invalid) {\n if (!this.strictMode) {\n this.invalidValueString = valueString;\n }\n this.setProperties({ value: null }, true);\n }\n else {\n this.setProperties({ value: valueDate }, true);\n }\n }\n };\n DatePicker.prototype.bindInputEvent = function () {\n if (!isNullOrUndefined(this.formatString) || this.enableMask) {\n if (this.enableMask || this.formatString.indexOf('y') === -1) {\n EventHandler.add(this.inputElement, 'input', this.inputHandler, this);\n }\n else {\n EventHandler.remove(this.inputElement, 'input', this.inputHandler);\n }\n }\n };\n DatePicker.prototype.bindEvents = function () {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateIconHandler, this);\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\n if (this.enableMask) {\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\n }\n this.bindInputEvent();\n // To prevent the twice triggering.\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.resetFormHandler, this);\n }\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.keyboardModules = new KeyboardEvents(this.inputElement, {\n eventName: 'keydown',\n keyAction: this.inputKeyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n };\n DatePicker.prototype.keydownHandler = function (e) {\n switch (e.code) {\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'ArrowDown':\n case 'Home':\n case 'End':\n case 'Delete':\n if (this.enableMask && !this.popupObj && !this.readonly) {\n if (e.code !== 'Delete') {\n e.preventDefault();\n }\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n }\n break;\n default:\n break;\n }\n };\n DatePicker.prototype.unBindEvents = function () {\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateIconHandler);\n }\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\n if (this.enableMask) {\n EventHandler.remove(this.inputElement, 'keydown', this.keydownHandler);\n }\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.resetFormHandler);\n }\n };\n DatePicker.prototype.resetFormHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.inputElement.disabled) {\n var value = this.inputElement.getAttribute('value');\n if (this.element.tagName === 'EJS-DATEPICKER' || this.element.tagName === 'EJS-DATETIMEPICKER') {\n value = '';\n this.inputValueCopy = null;\n this.inputElement.setAttribute('value', '');\n }\n this.setProperties({ value: this.inputValueCopy }, true);\n this.restoreValue();\n if (this.inputElement) {\n this.updateInputValue(value);\n this.errorClass();\n }\n }\n };\n DatePicker.prototype.restoreValue = function () {\n this.currentDate = this.value ? this.value : new Date();\n this.previousDate = this.value;\n this.previousElementValue = (isNullOrUndefined(this.inputValueCopy)) ? '' :\n this.globalize.formatDate(this.inputValueCopy, {\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\n });\n };\n DatePicker.prototype.inputChangeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.stopPropagation();\n };\n DatePicker.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n };\n DatePicker.prototype.resetHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.preventDefault();\n this.clear(e);\n };\n DatePicker.prototype.mouseUpHandler = function (e) {\n if (this.enableMask) {\n e.preventDefault();\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n }\n };\n DatePicker.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n if (!this.enableMask) {\n this.updateInputValue('');\n }\n var clearedArgs = {\n event: event\n };\n this.trigger('cleared', clearedArgs);\n this.invalidValueString = '';\n this.updateInput();\n this.popupUpdate();\n this.changeEvent(event);\n if (this.enableMask) {\n this.notify('clearHandler', {\n module: 'MaskedDateTime'\n });\n }\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 DatePicker.prototype.preventEventBubbling = function (e) {\n e.preventDefault();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.interopAdaptor.invokeMethodAsync('OnDateIconClick');\n };\n DatePicker.prototype.updateInputValue = function (value) {\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n DatePicker.prototype.dateIconHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.isIconClicked = true;\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n this.inputElement.blur();\n }\n e.preventDefault();\n if (!this.readonly) {\n if (this.isCalendar()) {\n this.hide(e);\n }\n else {\n this.isDateIconClicked = true;\n this.show(null, e);\n if (this.getModuleName() === 'datetimepicker') {\n this.inputElement.focus();\n }\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n addClass(this.inputWrapper.buttons, ACTIVE);\n }\n }\n this.isIconClicked = false;\n };\n DatePicker.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 (!isNullOrUndefined(this.htmlAttributes[\"\" + key])) {\n if (containerAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValues !== '') {\n addClass([this.inputWrapper.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var setStyle = this.inputWrapper.container.getAttribute(key);\n if (!isNullOrUndefined(setStyle)) {\n if (setStyle.charAt(setStyle.length - 1) === ';') {\n setStyle = setStyle + this.htmlAttributes[\"\" + key];\n }\n else {\n setStyle = setStyle + ';' + this.htmlAttributes[\"\" + key];\n }\n }\n else {\n setStyle = this.htmlAttributes[\"\" + key];\n }\n this.inputWrapper.container.setAttribute(key, setStyle);\n }\n else {\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n }\n };\n DatePicker.prototype.updateHtmlAttributeToElement = 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.inputElement.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n DatePicker.prototype.updateCssClass = function (newCssClass, oldCssClass) {\n if (!isNullOrUndefined(oldCssClass)) {\n oldCssClass = (oldCssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newCssClass)) {\n newCssClass = (newCssClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newCssClass, [this.inputWrapper.container], oldCssClass);\n if (this.popupWrapper) {\n Input.setCssClass(newCssClass, [this.popupWrapper], oldCssClass);\n }\n };\n DatePicker.prototype.calendarKeyActionHandle = function (e) {\n switch (e.action) {\n case 'escape':\n if (this.isCalendar()) {\n this.hide(e);\n }\n else {\n this.inputWrapper.container.children[this.index].blur();\n }\n break;\n case 'enter':\n if (!this.isCalendar()) {\n this.show(null, e);\n }\n else {\n if (+this.value !== +this.currentDate && !this.isCalendar()) {\n this.inputWrapper.container.children[this.index].focus();\n }\n }\n if (this.getModuleName() === 'datetimepicker') {\n this.inputElement.focus();\n }\n break;\n case 'tab':\n this.hide(e);\n }\n };\n DatePicker.prototype.inputFocusHandler = function () {\n this.isFocused = true;\n if (!this.enabled) {\n return;\n }\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\n if (this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.inputElement.selectionStart = 0;\n this.inputElement.selectionEnd = this.inputElement.value.length;\n }\n }\n var focusArguments = {\n model: this\n };\n this.isDateIconClicked = false;\n this.trigger('focus', focusArguments);\n this.updateIconState();\n if (this.openOnFocus && !this.isIconClicked) {\n this.show();\n }\n };\n DatePicker.prototype.inputHandler = function () {\n this.isPopupClicked = false;\n if (this.enableMask) {\n this.notify('inputHandler', {\n module: 'MaskedDateTime'\n });\n }\n };\n DatePicker.prototype.inputBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.strictModeUpdate();\n if (this.inputElement.value === '' && isNullOrUndefined(this.value)) {\n this.invalidValueString = null;\n this.updateInputValue('');\n }\n this.isBlur = true;\n this.updateInput(false, true);\n this.isBlur = false;\n this.popupUpdate();\n this.changeTrigger(e);\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\n if (this.inputElement.value === this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue('');\n }\n }\n this.errorClass();\n if (this.isCalendar() && document.activeElement === this.inputElement) {\n this.hide(e);\n }\n if (this.getModuleName() === 'datepicker') {\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n if (this.isCalendar()) {\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.calendarKeyboardModules = new KeyboardEvents(this.calendarElement.children[1].firstElementChild, {\n eventName: 'keydown',\n keyAction: this.calendarKeyActionHandle.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n }\n this.isPopupClicked = false;\n };\n DatePicker.prototype.documentHandler = function (e) {\n if ((!isNullOrUndefined(this.popupObj) && !isNullOrUndefined(this.inputWrapper) && (this.inputWrapper.container.contains(e.target) && e.type !== 'mousedown' ||\n (this.popupObj.element && this.popupObj.element.contains(e.target)))) && e.type !== 'touchstart') {\n e.preventDefault();\n }\n var target = e.target;\n if (!(closest(target, '.e-datepicker.e-popup-wrapper')) && !isNullOrUndefined(this.inputWrapper)\n && !(closest(target, '.' + INPUTCONTAINER) === this.inputWrapper.container)\n && (!target.classList.contains('e-day'))) {\n this.hide(e);\n this.focusOut();\n }\n else if (closest(target, '.e-datepicker.e-popup-wrapper')) {\n // Fix for close the popup when select the previously selected value.\n if (target.classList.contains('e-day')\n && !isNullOrUndefined(e.target.parentElement)\n && e.target.parentElement.classList.contains('e-selected')\n && closest(target, '.e-content')\n && closest(target, '.e-content').classList.contains('e-' + this.depth.toLowerCase())) {\n this.hide(e);\n }\n else if (closest(target, '.e-footer-container')\n && target.classList.contains('e-today')\n && target.classList.contains('e-btn')\n && (+new Date(+this.value) === +_super.prototype.generateTodayVal.call(this, this.value))) {\n this.hide(e);\n }\n }\n };\n DatePicker.prototype.inputKeyActionHandle = function (e) {\n var clickedView = this.currentView();\n switch (e.action) {\n case 'altUpArrow':\n this.isAltKeyPressed = false;\n this.hide(e);\n this.inputElement.focus();\n break;\n case 'altDownArrow':\n this.isAltKeyPressed = true;\n this.strictModeUpdate();\n this.updateInput();\n this.changeTrigger(e);\n if (this.getModuleName() === 'datepicker') {\n this.show(null, e);\n }\n break;\n case 'escape':\n this.hide(e);\n break;\n case 'enter':\n this.strictModeUpdate();\n this.updateInput();\n this.popupUpdate();\n this.changeTrigger(e);\n this.errorClass();\n if (!this.isCalendar() && document.activeElement === this.inputElement) {\n this.hide(e);\n }\n if (this.isCalendar()) {\n e.preventDefault();\n e.stopPropagation();\n }\n break;\n case 'tab':\n case 'shiftTab':\n {\n var start = this.inputElement.selectionStart;\n var end = this.inputElement.selectionEnd;\n if (this.enableMask && !this.popupObj && !this.readonly) {\n var length_1 = this.inputElement.value.length;\n if ((start === 0 && end === length_1) || (end !== length_1 && e.action === 'tab') || (start !== 0 && e.action === 'shiftTab')) {\n e.preventDefault();\n }\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n start = this.inputElement.selectionStart;\n end = this.inputElement.selectionEnd;\n }\n this.strictModeUpdate();\n this.updateInput();\n this.popupUpdate();\n this.changeTrigger(e);\n this.errorClass();\n if (this.enableMask) {\n this.inputElement.selectionStart = start;\n this.inputElement.selectionEnd = end;\n }\n this.hide(e);\n break;\n }\n default:\n this.defaultAction(e);\n // Fix for close the popup when select the previously selected value.\n if (e.action === 'select' && clickedView === this.depth) {\n this.hide(e);\n }\n }\n };\n DatePicker.prototype.defaultAction = function (e) {\n this.previousDate = ((!isNullOrUndefined(this.value) && new Date(+this.value)) || null);\n if (this.isCalendar()) {\n _super.prototype.keyActionHandle.call(this, e);\n if (this.isCalendar()) {\n attributes(this.inputElement, {\n 'aria-activedescendant': '' + this.setActiveDescendant()\n });\n }\n }\n };\n DatePicker.prototype.popupUpdate = function () {\n if ((isNullOrUndefined(this.value)) && (!isNullOrUndefined(this.previousDate)) ||\n (+this.value !== +this.previousDate)) {\n if (this.popupObj) {\n if (this.popupObj.element.querySelectorAll('.' + SELECTED).length > 0) {\n removeClass(this.popupObj.element.querySelectorAll('.' + SELECTED), [SELECTED]);\n }\n }\n if (!isNullOrUndefined(this.value)) {\n if ((+this.value >= +this.min) && (+this.value <= +this.max)) {\n var targetdate = new Date(this.checkValue(this.value));\n _super.prototype.navigateTo.call(this, 'Month', targetdate);\n }\n }\n }\n };\n DatePicker.prototype.strictModeUpdate = function () {\n var format;\n var pattern = /^y/;\n var charPattern = /[^a-zA-Z]/;\n var formatOptions;\n if (this.getModuleName() === 'datetimepicker') {\n format = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\n }\n else if (!pattern.test(this.formatString) || charPattern.test(this.formatString)) {\n format = isNullOrUndefined(this.formatString) ? this.formatString : this.formatString.replace('dd', 'd');\n }\n if (!isNullOrUndefined(format)) {\n var len = format.split('M').length - 1;\n if (len < 3) {\n format = format.replace('MM', 'M');\n }\n }\n else {\n format = this.formatString;\n }\n var dateOptions;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n dateOptions = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd'\n };\n }\n else {\n dateOptions = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n dateOptions = formatOptions;\n }\n var date;\n if (typeof this.inputElement.value === 'string') {\n this.inputElement.value = this.inputElement.value.trim();\n }\n if ((this.getModuleName() === 'datetimepicker')) {\n if (this.checkDateValue(this.globalize.parseDate(this.inputElement.value, dateOptions))) {\n date = this.globalize.parseDate(this.inputElement.value.toLocaleUpperCase(), dateOptions);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n date = this.globalize.parseDate(this.inputElement.value, formatOptions);\n }\n }\n else {\n date = this.globalize.parseDate(this.inputElement.value, dateOptions);\n date = (!isNullOrUndefined(date) && isNaN(+date)) ? null : date;\n if (!isNullOrUndefined(this.formatString) && this.inputElement.value !== '' && this.strictMode) {\n if ((this.isPopupClicked || (!this.isPopupClicked && this.inputElement.value === this.previousElementValue))\n && this.formatString.indexOf('y') === -1) {\n date.setFullYear(this.value.getFullYear());\n }\n }\n }\n // EJ2-35061 - To prevent change event from triggering twice when using strictmode and format property\n if ((this.getModuleName() === 'datepicker') && (this.value && !isNaN(+this.value)) && date) {\n date.setHours(this.value.getHours(), this.value.getMinutes(), this.value.getSeconds(), this.value.getMilliseconds());\n }\n if (this.strictMode && date) {\n this.updateInputValue(this.globalize.formatDate(date, dateOptions));\n if (this.inputElement.value !== this.previousElementValue) {\n this.setProperties({ value: date }, true);\n }\n }\n else if (!this.strictMode) {\n if (this.inputElement.value !== this.previousElementValue) {\n this.setProperties({ value: date }, true);\n }\n }\n if (this.strictMode && !date && this.inputElement.value === (this.enableMask ? this.maskedDateValue : '')) {\n this.setProperties({ value: null }, true);\n }\n if (isNaN(+this.value)) {\n this.setProperties({ value: null }, true);\n }\n if (isNullOrUndefined(this.value)) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n };\n DatePicker.prototype.createCalendar = function () {\n var _this = this;\n this.popupWrapper = this.createElement('div', { className: '' + ROOT + ' ' + POPUPWRAPPER });\n if (!isNullOrUndefined(this.cssClass)) {\n this.popupWrapper.className += ' ' + this.cssClass;\n }\n if (Browser.isDevice) {\n this.modelHeader();\n this.modal = this.createElement('div');\n this.modal.className = '' + ROOT + ' e-date-modal';\n document.body.className += ' ' + OVERFLOW;\n this.modal.style.display = 'block';\n document.body.appendChild(this.modal);\n }\n //this.calendarElement represent the Calendar object from the Calendar class.\n this.calendarElement.querySelector('table tbody').className = '';\n this.popupObj = new Popup(this.popupWrapper, {\n content: this.calendarElement,\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n offsetY: OFFSETVALUE,\n targetType: 'container',\n enableRtl: this.enableRtl,\n zIndex: this.zIndex,\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n open: function () {\n if (Browser.isDevice && _this.fullScreenMode) {\n _this.iconRight = parseInt(window.getComputedStyle(_this.calendarElement.querySelector('.e-header.e-month .e-prev')).marginRight, 10) > 16 ? true : false;\n _this.touchModule = new Touch(_this.calendarElement.querySelector(\".e-content.e-month\"), {\n swipe: _this.CalendarSwipeHandler.bind(_this)\n });\n EventHandler.add(_this.calendarElement.querySelector(\".e-content.e-month\"), \"touchstart\", _this.TouchStartHandler, _this);\n }\n if (_this.getModuleName() !== 'datetimepicker') {\n if (document.activeElement !== _this.inputElement) {\n _this.defaultKeyConfigs = extend(_this.defaultKeyConfigs, _this.keyConfigs);\n _this.calendarElement.children[1].firstElementChild.focus();\n _this.calendarKeyboardModules = new KeyboardEvents(_this.calendarElement.children[1].firstElementChild, {\n eventName: 'keydown',\n keyAction: _this.calendarKeyActionHandle.bind(_this),\n keyConfigs: _this.defaultKeyConfigs\n });\n _this.calendarKeyboardModules = new KeyboardEvents(_this.inputWrapper.container.children[_this.index], {\n eventName: 'keydown',\n keyAction: _this.calendarKeyActionHandle.bind(_this),\n keyConfigs: _this.defaultKeyConfigs\n });\n }\n }\n }, close: function () {\n if (_this.isDateIconClicked) {\n _this.inputWrapper.container.children[_this.index].focus();\n }\n if (_this.value) {\n _this.disabledDates();\n }\n if (_this.popupObj) {\n _this.popupObj.destroy();\n }\n _this.resetCalendar();\n detach(_this.popupWrapper);\n _this.popupObj = _this.popupWrapper = null;\n _this.preventArgs = null;\n _this.calendarKeyboardModules = null;\n _this.setAriaAttributes();\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n this.popupObj.element.className += ' ' + this.cssClass;\n this.setAriaAttributes();\n };\n DatePicker.prototype.CalendarSwipeHandler = function (e) {\n var direction = 0;\n if (this.iconRight) {\n switch (e.swipeDirection) {\n case \"Left\":\n direction = 1;\n break;\n case \"Right\":\n direction = -1;\n break;\n default:\n break;\n }\n }\n else {\n switch (e.swipeDirection) {\n case \"Up\":\n direction = 1;\n break;\n case \"Down\":\n direction = -1;\n break;\n default:\n break;\n }\n }\n if (this.touchStart) {\n if (direction === 1) {\n this.navigateNext(e);\n }\n else if (direction === -1) {\n this.navigatePrevious(e);\n }\n this.touchStart = false;\n }\n };\n DatePicker.prototype.TouchStartHandler = function (e) {\n this.touchStart = true;\n };\n DatePicker.prototype.setAriaDisabled = function () {\n if (!this.enabled) {\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.inputElement.tabIndex = -1;\n }\n else {\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n };\n DatePicker.prototype.modelHeader = function () {\n var dateOptions;\n var modelHeader = this.createElement('div', { className: 'e-model-header' });\n var yearHeading = this.createElement('h1', { className: 'e-model-year' });\n var h2 = this.createElement('div');\n var daySpan = this.createElement('span', { className: 'e-model-day' });\n var monthSpan = this.createElement('span', { className: 'e-model-month' });\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: 'y', skeleton: 'dateTime' };\n }\n else {\n dateOptions = { format: 'y', skeleton: 'dateTime', calendar: 'islamic' };\n }\n yearHeading.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: 'E', skeleton: 'dateTime' };\n }\n else {\n dateOptions = { format: 'E', skeleton: 'dateTime', calendar: 'islamic' };\n }\n daySpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions) + ', ';\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: 'MMM d', skeleton: 'dateTime' };\n }\n else {\n dateOptions = { format: 'MMM d', skeleton: 'dateTime', calendar: 'islamic' };\n }\n monthSpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);\n if (this.fullScreenMode) {\n var modelCloseIcon = this.createElement(\"span\", { className: \"e-popup-close\" });\n EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.modelCloseHandler, this);\n var modelTodayButton = this.calendarElement.querySelector(\"button.e-today\");\n h2.classList.add(\"e-day-wrapper\");\n modelTodayButton.classList.add(\"e-outline\");\n modelHeader.appendChild(modelCloseIcon);\n modelHeader.appendChild(modelTodayButton);\n }\n if (!this.fullScreenMode)\n modelHeader.appendChild(yearHeading);\n h2.appendChild(daySpan);\n h2.appendChild(monthSpan);\n modelHeader.appendChild(h2);\n this.calendarElement.insertBefore(modelHeader, this.calendarElement.firstElementChild);\n };\n DatePicker.prototype.modelCloseHandler = function (e) {\n this.hide();\n };\n DatePicker.prototype.changeTrigger = function (event) {\n if (this.inputElement.value !== this.previousElementValue) {\n if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {\n if (this.isDynamicValueChanged && this.isCalendar()) {\n this.popupUpdate();\n }\n this.changedArgs.value = this.value;\n this.changedArgs.event = event || null;\n this.changedArgs.element = this.element;\n this.changedArgs.isInteracted = !isNullOrUndefined(event);\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', this.changedArgs);\n }\n this.previousElementValue = this.inputElement.value;\n this.previousDate = !isNaN(+new Date(this.checkValue(this.value))) ? new Date(this.checkValue(this.value)) : null;\n this.isInteracted = true;\n }\n }\n };\n DatePicker.prototype.navigatedEvent = function () {\n this.trigger('navigated', this.navigatedArgs);\n };\n DatePicker.prototype.changeEvent = function (event) {\n if (!this.isIconClicked && !this.isBlur) {\n this.selectCalendar(event);\n }\n if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {\n this.changedArgs.event = event ? event : null;\n this.changedArgs.element = this.element;\n this.changedArgs.isInteracted = this.isInteracted;\n if (!this.isDynamicValueChanged) {\n this.trigger('change', this.changedArgs);\n }\n this.previousDate = this.value && new Date(+this.value);\n if (!this.isDynamicValueChanged) {\n this.hide(event);\n }\n this.previousElementValue = this.inputElement.value;\n this.errorClass();\n }\n else if (event) {\n this.hide(event);\n }\n };\n DatePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this) {\n modules.push({ args: [this], member: 'islamic' });\n }\n if (this.enableMask) {\n modules.push({ args: [this], member: 'MaskedDateTime' });\n }\n return modules;\n };\n DatePicker.prototype.selectCalendar = function (e) {\n var date;\n var tempFormat;\n var formatOptions;\n if (this.getModuleName() === 'datetimepicker') {\n tempFormat = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\n }\n else {\n tempFormat = this.formatString;\n }\n if (this.value) {\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: tempFormat, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: tempFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n date = this.globalize.formatDate(this.changedArgs.value, formatOptions);\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n date = this.globalize.formatDate(this.changedArgs.value, formatOptions);\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n }\n if (!isNullOrUndefined(date)) {\n this.updateInputValue(date);\n if (this.enableMask) {\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n }\n }\n };\n DatePicker.prototype.isCalendar = function () {\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + POPUPWRAPPER)) {\n return true;\n }\n return false;\n };\n DatePicker.prototype.setWidth = function (width) {\n if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(this.width);\n }\n else if (typeof width === 'string') {\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (this.width) : (formatUnit(this.width));\n }\n else {\n this.inputWrapper.container.style.width = '100%';\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Shows the Calendar.\n *\n * @returns {void}\n\n */\n DatePicker.prototype.show = function (type, e) {\n var _this = this;\n if ((this.enabled && this.readonly) || !this.enabled || this.popupObj) {\n return;\n }\n else {\n var prevent_1 = true;\n var outOfRange = void 0;\n if (!isNullOrUndefined(this.value) && !(+this.value >= +new Date(this.checkValue(this.min))\n && +this.value <= +new Date(this.checkValue(this.max)))) {\n outOfRange = new Date(this.checkValue(this.value));\n this.setProperties({ 'value': null }, true);\n }\n else {\n outOfRange = this.value || null;\n }\n if (!this.isCalendar()) {\n _super.prototype.render.call(this);\n this.setProperties({ 'value': outOfRange || null }, true);\n this.previousDate = outOfRange;\n this.createCalendar();\n }\n if (Browser.isDevice) {\n this.mobilePopupWrapper = this.createElement('div', { className: 'e-datepick-mob-popup-wrap' });\n document.body.appendChild(this.mobilePopupWrapper);\n }\n this.preventArgs = {\n preventDefault: function () {\n prevent_1 = false;\n },\n popup: this.popupObj,\n event: e || null,\n cancel: false,\n appendTo: Browser.isDevice ? this.mobilePopupWrapper : document.body\n };\n var eventArgs = this.preventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.preventArgs = eventArgs;\n if (prevent_1 && !_this.preventArgs.cancel) {\n addClass(_this.inputWrapper.buttons, ACTIVE);\n _this.preventArgs.appendTo.appendChild(_this.popupWrapper);\n _this.popupObj.refreshPosition(_this.inputElement);\n var openAnimation = {\n name: 'FadeIn',\n duration: Browser.isDevice ? 0 : OPENDURATION\n };\n if (_this.zIndex === 1000) {\n _this.popupObj.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObj.show(new Animation(openAnimation), null);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _super.prototype.setOverlayIndex.call(_this, _this.mobilePopupWrapper, _this.popupObj.element, _this.modal, Browser.isDevice);\n _this.setAriaAttributes();\n }\n else {\n _this.popupObj.destroy();\n _this.popupWrapper = _this.popupObj = null;\n }\n if (!isNullOrUndefined(_this.inputElement) && _this.inputElement.value === '') {\n if (!isNullOrUndefined(_this.tableBodyElement) && _this.tableBodyElement.querySelectorAll('td.e-selected').length > 0) {\n addClass([_this.tableBodyElement.querySelector('td.e-selected')], FOCUSEDDATE);\n removeClass(_this.tableBodyElement.querySelectorAll('td.e-selected'), SELECTED);\n }\n }\n EventHandler.add(document, 'mousedown touchstart', _this.documentHandler, _this);\n });\n }\n };\n /**\n * Hide the Calendar.\n *\n * @returns {void}\n\n */\n DatePicker.prototype.hide = function (event) {\n var _this = this;\n if (!isNullOrUndefined(this.popupWrapper)) {\n var prevent_2 = true;\n this.preventArgs = {\n preventDefault: function () {\n prevent_2 = false;\n },\n popup: this.popupObj,\n event: event || null,\n cancel: false\n };\n removeClass(this.inputWrapper.buttons, ACTIVE);\n removeClass([document.body], OVERFLOW);\n var eventArgs = this.preventArgs;\n if (this.isCalendar()) {\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.closeEventCallback(prevent_2, eventArgs);\n });\n }\n else {\n this.closeEventCallback(prevent_2, eventArgs);\n }\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n DatePicker.prototype.closeEventCallback = function (prevent, eventArgs) {\n this.preventArgs = eventArgs;\n if (this.isCalendar() && (prevent && !this.preventArgs.cancel)) {\n this.popupObj.hide();\n this.isAltKeyPressed = false;\n this.keyboardModule.destroy();\n removeClass(this.inputWrapper.buttons, ACTIVE);\n }\n this.setAriaAttributes();\n if (Browser.isDevice && this.modal) {\n this.modal.style.display = 'none';\n this.modal.outerHTML = '';\n this.modal = null;\n }\n if (Browser.isDevice) {\n if (!isNullOrUndefined(this.mobilePopupWrapper) && (prevent && (isNullOrUndefined(this.preventArgs) || !this.preventArgs.cancel))) {\n this.mobilePopupWrapper.remove();\n this.mobilePopupWrapper = null;\n }\n }\n EventHandler.remove(document, 'mousedown touchstart', this.documentHandler);\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n };\n /* eslint-disable jsdoc/require-param */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DatePicker.prototype.focusIn = function (triggerEvent) {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n };\n /* eslint-enable jsdoc/require-param */\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n DatePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\n this.inputElement.blur();\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the current view of the DatePicker.\n *\n * @returns {string}\n\n */\n DatePicker.prototype.currentView = function () {\n var currentView;\n if (this.calendarElement) {\n // calls the Calendar currentView public method\n currentView = _super.prototype.currentView.call(this);\n }\n return currentView;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Navigates to specified month or year or decade view of the DatePicker.\n *\n * @param {string} view - Specifies the view of the calendar.\n * @param {Date} date - Specifies the focused date in a view.\n * @returns {void}\n\n */\n DatePicker.prototype.navigateTo = function (view, date) {\n if (this.calendarElement) {\n // calls the Calendar navigateTo public method\n _super.prototype.navigateTo.call(this, view, date);\n }\n };\n /**\n * To destroy the widget.\n *\n * @returns {void}\n */\n DatePicker.prototype.destroy = function () {\n this.unBindEvents();\n _super.prototype.destroy.call(this);\n if (!isNullOrUndefined(this.keyboardModules)) {\n this.keyboardModules.destroy();\n }\n if (this.popupObj && this.popupObj.element.classList.contains(POPUP)) {\n _super.prototype.destroy.call(this);\n }\n var ariaAttrs = {\n 'aria-atomic': 'true', 'aria-disabled': 'true',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttrs, this.inputElement);\n if (!isNullOrUndefined(this.inputElementCopy.getAttribute('tabindex'))) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.removeAttribute('tabindex');\n }\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n this.ensureInputAttribute();\n }\n if (this.isCalendar()) {\n if (this.popupWrapper) {\n detach(this.popupWrapper);\n }\n this.popupObj = this.popupWrapper = null;\n this.keyboardModule.destroy();\n }\n if (this.ngTag === null) {\n if (this.inputElement) {\n if (!isNullOrUndefined(this.inputWrapper)) {\n this.inputWrapper.container.insertAdjacentElement('afterend', this.inputElement);\n }\n removeClass([this.inputElement], [INPUTROOT]);\n }\n removeClass([this.element], [ROOT]);\n if (!isNullOrUndefined(this.inputWrapper)) {\n detach(this.inputWrapper.container);\n }\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.resetFormHandler);\n }\n this.inputWrapper = null;\n this.keyboardModules = null;\n };\n DatePicker.prototype.ensureInputAttribute = function () {\n var prop = [];\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\n prop[i] = this.inputElement.attributes[i].name;\n }\n for (var i = 0; i < prop.length; i++) {\n if (isNullOrUndefined(this.inputElementCopy.getAttribute(prop[i]))) {\n if (prop[i].toLowerCase() === 'value') {\n this.inputElement.value = '';\n }\n this.inputElement.removeAttribute(prop[i]);\n }\n else {\n if (prop[i].toLowerCase() === 'value') {\n this.inputElement.value = this.inputElementCopy.getAttribute(prop[i]);\n }\n this.inputElement.setAttribute(prop[i], this.inputElementCopy.getAttribute(prop[i]));\n }\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n DatePicker.prototype.preRender = function () {\n this.inputElementCopy = this.element.cloneNode(true);\n removeClass([this.inputElementCopy], [ROOT, CONTROL, LIBRARY]);\n this.inputElement = this.element;\n this.formElement = closest(this.inputElement, 'form');\n this.index = this.showClearButton ? 2 : 1;\n this.ngTag = null;\n if (this.element.tagName === 'EJS-DATEPICKER' || this.element.tagName === 'EJS-DATETIMEPICKER') {\n this.ngTag = this.element.tagName;\n this.inputElement = this.createElement('input');\n this.element.appendChild(this.inputElement);\n }\n if (this.element.getAttribute('id')) {\n if (this.ngTag !== null) {\n this.inputElement.id = this.element.getAttribute('id') + '_input';\n }\n }\n else {\n if (this.getModuleName() === 'datetimepicker') {\n this.element.id = getUniqueID('ej2-datetimepicker');\n if (this.ngTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n else {\n this.element.id = getUniqueID('ej2-datepicker');\n if (this.ngTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n }\n if (this.ngTag !== null) {\n this.validationAttribute(this.element, this.inputElement);\n }\n this.updateHtmlAttributeToElement();\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\n this.checkHtmlAttributes(false);\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n _super.prototype.preRender.call(this);\n };\n DatePicker.prototype.getDefaultKeyConfig = function () {\n this.defaultKeyConfigs = {\n altUpArrow: 'alt+uparrow',\n altDownArrow: 'alt+downarrow',\n escape: 'escape',\n enter: 'enter',\n controlUp: 'ctrl+38',\n controlDown: 'ctrl+40',\n moveDown: 'downarrow',\n moveUp: 'uparrow',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n select: 'enter',\n home: 'home',\n end: 'end',\n pageUp: 'pageup',\n pageDown: 'pagedown',\n shiftPageUp: 'shift+pageup',\n shiftPageDown: 'shift+pagedown',\n controlHome: 'ctrl+home',\n controlEnd: 'ctrl+end',\n shiftTab: 'shift+tab',\n tab: 'tab'\n };\n return this.defaultKeyConfigs;\n };\n DatePicker.prototype.validationAttribute = function (target, inputElement) {\n var nameAttribute = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n inputElement.setAttribute('name', nameAttribute);\n target.removeAttribute('name');\n var attribute = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attribute.length; i++) {\n if (isNullOrUndefined(target.getAttribute(attribute[i]))) {\n continue;\n }\n var attr = target.getAttribute(attribute[i]);\n inputElement.setAttribute(attribute[i], attr);\n target.removeAttribute(attribute[i]);\n }\n };\n DatePicker.prototype.checkFormat = function () {\n var culture = new Internationalization(this.locale);\n if (this.format) {\n if (typeof this.format === 'string') {\n this.formatString = this.format;\n }\n else if (this.format.skeleton !== '' && !isNullOrUndefined(this.format.skeleton)) {\n var skeletonString = this.format.skeleton;\n if (this.getModuleName() === 'datetimepicker') {\n this.formatString = culture.getDatePattern({ skeleton: skeletonString, type: 'dateTime' });\n }\n else {\n this.formatString = culture.getDatePattern({ skeleton: skeletonString, type: 'date' });\n }\n }\n else {\n if (this.getModuleName() === 'datetimepicker') {\n this.formatString = this.dateTimeFormat;\n }\n else {\n this.formatString = null;\n }\n }\n }\n else {\n this.formatString = null;\n }\n };\n DatePicker.prototype.checkHtmlAttributes = function (dynamic) {\n this.globalize = new Internationalization(this.locale);\n this.checkFormat();\n this.checkView();\n var attributes = dynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['value', 'min', 'max', 'disabled', 'readonly', 'style', 'name', 'placeholder', 'type'];\n var options;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n options = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd'\n };\n }\n else {\n options = {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n };\n }\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n options = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n options = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n }\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['enabled'] === undefined)) || dynamic)) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' ||\n this.inputElement.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !dynamic);\n }\n break;\n case 'readonly':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['readonly'] === undefined)) || dynamic)) {\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !dynamic);\n }\n break;\n case 'placeholder':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['placeholder'] === undefined)) || dynamic)) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !dynamic);\n }\n break;\n case 'style':\n this.inputElement.setAttribute('style', '' + this.inputElement.getAttribute(prop));\n break;\n case 'name':\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute(prop));\n break;\n case 'value':\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['value'] === undefined)) || dynamic)) {\n var value = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, this.globalize.parseDate(value, options), {}), !dynamic);\n }\n break;\n case 'min':\n if ((+this.min === +new Date(1900, 0, 1)) || dynamic) {\n var min = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, this.globalize.parseDate(min), {}), !dynamic);\n }\n break;\n case 'max':\n if ((+this.max === +new Date(2099, 11, 31)) || dynamic) {\n var max = this.inputElement.getAttribute(prop);\n this.setProperties(setValue(prop, this.globalize.parseDate(max), {}), !dynamic);\n }\n break;\n case 'type':\n if (this.inputElement.getAttribute(prop) !== 'text') {\n this.inputElement.setAttribute('type', 'text');\n }\n break;\n }\n }\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} Returns the component name.\n * @private\n */\n DatePicker.prototype.getModuleName = function () {\n return 'datepicker';\n };\n DatePicker.prototype.disabledDates = function (isDynamic, isBlur) {\n if (isDynamic === void 0) { isDynamic = false; }\n if (isBlur === void 0) { isBlur = false; }\n var formatOptions;\n var globalize;\n var valueCopy = this.checkDateValue(this.value) ? new Date(+this.value) : new Date(this.checkValue(this.value));\n var previousValCopy = this.previousDate;\n //calls the Calendar render method to check the disabled dates through renderDayCell event and update the input value accordingly.\n this.minMaxUpdates();\n if (!isDynamic || (isDynamic && !isNullOrUndefined(this.renderDayCell))) {\n _super.prototype.render.call(this);\n }\n this.previousDate = previousValCopy;\n var date = valueCopy && +(valueCopy);\n var dateIdString = '*[id^=\"/id\"]'.replace('/id', '' + date);\n if (!this.strictMode) {\n if (typeof this.value === 'string' || ((typeof this.value === 'object') && (+this.value) !== (+valueCopy))) {\n this.setProperties({ value: valueCopy }, true);\n }\n }\n if (!isNullOrUndefined(this.calendarElement) && !isNullOrUndefined(this.calendarElement.querySelectorAll(dateIdString)[0])) {\n if (this.calendarElement.querySelectorAll(dateIdString)[0].classList.contains('e-disabled')) {\n if (!this.strictMode) {\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n }\n }\n var inputVal;\n if (this.getModuleName() === 'datetimepicker') {\n if (this.calendarMode === 'Gregorian') {\n globalize = this.globalize.formatDate(valueCopy, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd'\n });\n }\n else {\n globalize = this.globalize.formatDate(valueCopy, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n });\n }\n inputVal = globalize;\n }\n else {\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n inputVal = this.globalize.formatDate(valueCopy, formatOptions);\n }\n if (!this.popupObj) {\n this.updateInputValue(inputVal);\n if (this.enableMask) {\n this.updateInputValue(this.maskedDateValue);\n this.notify('createMask', {\n module: 'MaskedDateTime', isBlur: isBlur\n });\n }\n }\n };\n DatePicker.prototype.setAriaAttributes = function () {\n if (this.isCalendar()) {\n Input.addAttributes({ 'aria-expanded': 'true' }, this.inputElement);\n attributes(this.inputElement, { 'aria-owns': this.inputElement.id + '_options' });\n if (this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });\n }\n }\n else {\n Input.addAttributes({ 'aria-expanded': 'false' }, this.inputElement);\n this.inputElement.removeAttribute('aria-owns');\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n DatePicker.prototype.errorClass = function () {\n var dateIdString = '*[id^=\"/id\"]'.replace('/id', '' + (+this.value));\n var isDisabledDate = this.calendarElement &&\n this.calendarElement.querySelectorAll(dateIdString)[0] &&\n this.calendarElement.querySelectorAll(dateIdString)[0].classList.contains('e-disabled');\n if ((!isNullOrUndefined(this.value) && !isNullOrUndefined(this.min) &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n !isNullOrUndefined(this.max) && !(new Date(this.value).setMilliseconds(0) >= new Date(this.min).setMilliseconds(0)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n && new Date(this.value).setMilliseconds(0) <= new Date(this.max).setMilliseconds(0)))\n || (!this.strictMode && this.inputElement.value !== '' && this.inputElement.value !== this.maskedDateValue && isNullOrUndefined(this.value) || isDisabledDate)) {\n addClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'true' });\n }\n else if (!isNullOrUndefined(this.inputWrapper)) {\n removeClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'false' });\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DatePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {DatePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n DatePicker.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 'value':\n this.isDynamicValueChanged = true;\n this.isInteracted = false;\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n this.previousElementValue = this.inputElement.value;\n if (isNullOrUndefined(this.value)) {\n if (this.enableMask) {\n this.updateInputValue(this.maskedDateValue);\n }\n else {\n this.updateInputValue('');\n }\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\n }\n this.updateInput(true);\n if (+this.previousDate !== +this.value) {\n this.changeTrigger(null);\n }\n this.isInteracted = true;\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'format':\n this.checkFormat();\n this.bindInputEvent();\n this.updateInput();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n break;\n case 'allowEdit':\n this.setAllowEdit();\n break;\n case 'placeholder':\n Input.setPlaceholder(this.placeholder, this.inputElement);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.inputElement);\n this.setAriaDisabled();\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkHtmlAttributes(true);\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.inputElement);\n this.updateInput();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n break;\n case 'start':\n case 'depth':\n this.checkView();\n if (this.calendarElement) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n }\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'showClearButton':\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\n this.bindClearEvent();\n this.index = this.showClearButton ? 2 : 1;\n break;\n case 'strictMode':\n this.invalidValueString = null;\n this.updateInput();\n break;\n case 'width':\n this.setWidth(newProp.width);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n this.updateInputValue(this.maskedDateValue);\n this.bindInputEvent();\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.updateInputValue('');\n }\n }\n break;\n default:\n if (this.calendarElement && this.isCalendar()) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n }\n break;\n }\n if (!this.isDynamicValueChanged) {\n this.hide(null);\n }\n this.isDynamicValueChanged = false;\n }\n };\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"format\", void 0);\n __decorate([\n Property(true)\n ], DatePicker.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"fullScreenMode\", void 0);\n __decorate([\n Property({})\n ], DatePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"values\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"isMultiSelection\", void 0);\n __decorate([\n Property(true)\n ], DatePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(true)\n ], DatePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(1000)\n ], DatePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property('Never')\n ], DatePicker.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], DatePicker.prototype, \"serverTimezoneOffset\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], DatePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], DatePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DatePicker.prototype, \"destroyed\", void 0);\n DatePicker = __decorate([\n NotifyPropertyChanges\n ], DatePicker);\n return DatePicker;\n}(Calendar));\nexport { DatePicker };\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 { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Animation, Browser } from '@syncfusion/ej2-base';\nimport { cldrData, L10n, Component, getDefaultDateObject, rippleEffect, Event } from '@syncfusion/ej2-base';\nimport { remove, addClass, detach, removeClass, closest, append, attributes, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, getValue, extend, getUniqueID, ChildProperty } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { ListBase } from '@syncfusion/ej2-lists';\nvar WRAPPERCLASS = 'e-time-wrapper';\nvar POPUP = 'e-popup';\nvar ERROR = 'e-error';\nvar POPUPDIMENSION = '240px';\nvar DAY = new Date().getDate();\nvar MONTH = new Date().getMonth();\nvar YEAR = new Date().getFullYear();\nvar ROOT = 'e-timepicker';\nvar LIBRARY = 'e-lib';\nvar CONTROL = 'e-control';\nvar CONTENT = 'e-content';\nvar SELECTED = 'e-active';\nvar HOVER = 'e-hover';\nvar NAVIGATION = 'e-navigation';\nvar DISABLED = 'e-disabled';\nvar ICONANIMATION = 'e-icon-anim';\nvar TIMEICON = 'e-time-icon';\nvar CLEARICON = 'e-clear-icon';\nvar FOCUS = 'e-input-focus';\nvar LISTCLASS = 'e-list-item';\nvar HALFPOSITION = 2;\nvar ANIMATIONDURATION = 50;\nvar OVERFLOW = 'e-time-overflow';\nvar OFFSETVAL = 4;\nvar EDITABLE = 'e-non-edit';\nvar wrapperAttributes = ['title', 'class', 'style'];\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var TimePickerBase;\n(function (TimePickerBase) {\n // eslint-disable-next-line max-len, jsdoc/require-jsdoc\n function createListItems(createdEl, min, max, globalize, timeFormat, step) {\n var formatOptions;\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: timeFormat, type: 'time' };\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatOptions = { format: timeFormat, type: 'time', calendar: 'islamic' };\n }\n var start;\n var interval = step * 60000;\n var listItems = [];\n var timeCollections = [];\n start = +(min.setMilliseconds(0));\n var end = +(max.setMilliseconds(0));\n while (end >= start) {\n timeCollections.push(start);\n listItems.push(globalize.formatDate(new Date(start), { format: timeFormat, type: 'time' }));\n start += interval;\n }\n var listTag = ListBase.createList(createdEl, listItems, null, true);\n return { collection: timeCollections, list: listTag };\n }\n TimePickerBase.createListItems = createListItems;\n})(TimePickerBase || (TimePickerBase = {}));\nvar TimeMaskPlaceholder = /** @class */ (function (_super) {\n __extends(TimeMaskPlaceholder, _super);\n function TimeMaskPlaceholder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('day')\n ], TimeMaskPlaceholder.prototype, \"day\", void 0);\n __decorate([\n Property('month')\n ], TimeMaskPlaceholder.prototype, \"month\", void 0);\n __decorate([\n Property('year')\n ], TimeMaskPlaceholder.prototype, \"year\", void 0);\n __decorate([\n Property('day of the week')\n ], TimeMaskPlaceholder.prototype, \"dayOfTheWeek\", void 0);\n __decorate([\n Property('hour')\n ], TimeMaskPlaceholder.prototype, \"hour\", void 0);\n __decorate([\n Property('minute')\n ], TimeMaskPlaceholder.prototype, \"minute\", void 0);\n __decorate([\n Property('second')\n ], TimeMaskPlaceholder.prototype, \"second\", void 0);\n return TimeMaskPlaceholder;\n}(ChildProperty));\nexport { TimeMaskPlaceholder };\n/**\n * TimePicker is an intuitive interface component which provides an options to select a time value\n * from popup list or to set a desired time value.\n * ```\n * \n * \n * ```\n */\nvar TimePicker = /** @class */ (function (_super) {\n __extends(TimePicker, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {TimePickerModel} options - Specifies the TimePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function TimePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.liCollections = [];\n _this.timeCollections = [];\n _this.disableItemCollection = [];\n _this.invalidValueString = null;\n _this.isAngular = false;\n _this.preventChange = false;\n _this.maskedDateValue = '';\n _this.moduleName = _this.getModuleName();\n _this.timeOptions = options;\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n TimePicker.prototype.preRender = function () {\n this.keyConfigure = {\n enter: 'enter',\n escape: 'escape',\n end: 'end',\n tab: 'tab',\n home: 'home',\n down: 'downarrow',\n up: 'uparrow',\n left: 'leftarrow',\n right: 'rightarrow',\n open: 'alt+downarrow',\n close: 'alt+uparrow'\n };\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [ROOT, CONTROL, LIBRARY]);\n this.inputElement = this.element;\n this.angularTag = null;\n this.formElement = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-TIMEPICKER') {\n this.angularTag = this.element.tagName;\n this.inputElement = this.createElement('input');\n this.element.appendChild(this.inputElement);\n }\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n this.openPopupEventArgs = {\n appendTo: document.body\n };\n };\n // element creation\n TimePicker.prototype.render = function () {\n this.initialize();\n this.createInputElement();\n this.updateHtmlAttributeToWrapper();\n this.setTimeAllowEdit();\n this.setEnable();\n this.validateInterval();\n this.bindEvents();\n this.validateDisable();\n this.setValue(this.getFormattedValue(this.value));\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.checkErrorState(this.maskedDateValue);\n }\n this.anchor = this.inputElement;\n this.inputElement.setAttribute('value', this.inputElement.value);\n this.inputEleValue = this.getDateObject(this.inputElement.value);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n TimePicker.prototype.setTimeAllowEdit = function () {\n if (this.allowEdit) {\n if (!this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n else {\n attributes(this.inputElement, { 'readonly': '' });\n }\n this.clearIconState();\n };\n TimePicker.prototype.clearIconState = function () {\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\n if (this.inputElement.value === '') {\n removeClass([this.inputWrapper.container], [EDITABLE]);\n }\n else {\n addClass([this.inputWrapper.container], [EDITABLE]);\n }\n }\n else if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], [EDITABLE]);\n }\n };\n TimePicker.prototype.validateDisable = function () {\n this.setMinMax(this.initMin, this.initMax);\n if (!isNullOrUndefined(this.value)) {\n this.popupCreation();\n this.popupObj.destroy();\n this.popupWrapper = this.popupObj = null;\n }\n if ((!isNaN(+this.value) && this.value !== null)) {\n if (!this.valueIsDisable(this.value)) {\n //disable value given in value property so reset the date based on current date\n if (this.strictMode) {\n this.resetState();\n }\n this.initValue = null;\n this.initMax = this.getDateObject(this.initMax);\n this.initMin = this.getDateObject(this.initMin);\n this.timeCollections = this.liCollections = [];\n this.setMinMax(this.initMin, this.initMax);\n }\n }\n };\n TimePicker.prototype.validationAttribute = function (target, input) {\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n input.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 (isNullOrUndefined(target.getAttribute(attributes[i]))) {\n continue;\n }\n var attr = target.getAttribute(attributes[i]);\n input.setAttribute(attributes[i], attr);\n target.removeAttribute(attributes[i]);\n }\n };\n TimePicker.prototype.initialize = function () {\n this.globalize = new Internationalization(this.locale);\n this.defaultCulture = new Internationalization('en');\n this.checkTimeFormat();\n this.checkInvalidValue(this.value);\n // persist the value property.\n this.setProperties({ value: this.checkDateValue(new Date(this.checkInValue(this.value))) }, true);\n this.setProperties({ min: this.checkDateValue(new Date(this.checkInValue(this.min))) }, true);\n this.setProperties({ max: this.checkDateValue(new Date(this.checkInValue(this.max))) }, true);\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(this.scrollTo))) }, true);\n if (this.angularTag !== null) {\n this.validationAttribute(this.element, this.inputElement);\n }\n this.updateHtmlAttributeToElement();\n this.checkAttributes(false); //check the input element attributes\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('timepicker', localeText, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n this.initValue = this.checkDateValue(this.value);\n this.initMin = this.checkDateValue(this.min);\n this.initMax = this.checkDateValue(this.max);\n this.isNavigate = this.isPreventBlur = this.isTextSelected = false;\n this.activeIndex = this.valueWithMinutes = this.prevDate = null;\n if (!isNullOrUndefined(this.element.getAttribute('id'))) {\n if (this.angularTag !== null) {\n this.inputElement.id = this.element.getAttribute('id') + '_input';\n }\n }\n else {\n //for angular case\n this.element.id = getUniqueID('ej2_timepicker');\n if (this.angularTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('name'))) {\n attributes(this.inputElement, { 'name': this.element.id });\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n };\n TimePicker.prototype.checkTimeFormat = function () {\n if (this.format) {\n if (typeof this.format === 'string') {\n this.formatString = this.format;\n }\n else if (!isNullOrUndefined(this.format.skeleton) && this.format.skeleton !== '') {\n var skeletonString = this.format.skeleton;\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: skeletonString });\n }\n else {\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: 'short' });\n }\n }\n else {\n this.formatString = null;\n }\n };\n TimePicker.prototype.checkDateValue = function (value) {\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\n };\n TimePicker.prototype.createInputElement = function () {\n if (this.fullScreenMode && Browser.isDevice) {\n this.cssClass = \"e-popup-expand\";\n }\n var updatedCssClassesValue = this.cssClass;\n var isBindClearAction = this.enableMask ? false : true;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassesValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n bindClearAction: isBindClearAction,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassesValue,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n },\n buttons: [' e-input-group-icon e-time-icon e-icons']\n }, this.createElement);\n this.inputWrapper.container.style.width = this.setWidth(this.width);\n attributes(this.inputElement, {\n 'aria-autocomplete': 'list', 'tabindex': '0',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-disabled': 'false', 'aria-invalid': 'false'\n });\n if (!this.isNullOrEmpty(this.inputStyle)) {\n Input.addAttributes({ 'style': this.inputStyle }, this.inputElement);\n }\n addClass([this.inputWrapper.container], WRAPPERCLASS);\n };\n TimePicker.prototype.getCldrDateTimeFormat = function () {\n var culture = new Internationalization(this.locale);\n var cldrTime;\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\n if (this.isNullOrEmpty(this.formatString)) {\n cldrTime = dateFormat + ' ' + this.cldrFormat('time');\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n TimePicker.prototype.checkInvalidValue = function (value) {\n var isInvalid = false;\n if (typeof value !== 'object' && !isNullOrUndefined(value)) {\n var valueString = value;\n if (typeof valueString === 'string') {\n valueString = valueString.trim();\n }\n var valueExpression = null;\n var valueExp = null;\n if (typeof value === 'number') {\n valueString = value.toString();\n }\n else if (typeof value === 'string') {\n if (!(/^[a-zA-Z0-9- ]*$/).test(value)) {\n valueExpression = this.setCurrentDate(this.getDateObject(value));\n if (isNullOrUndefined(valueExpression)) {\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\n format: this.getCldrDateTimeFormat(), type: 'datetime'\n }));\n if (isNullOrUndefined(valueExpression)) {\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\n }));\n }\n }\n }\n }\n valueExp = this.globalize.parseDate(valueString, {\n format: this.getCldrDateTimeFormat(), type: 'datetime'\n });\n valueExpression = (!isNullOrUndefined(valueExp) && valueExp instanceof Date && !isNaN(+valueExp)) ? valueExp : null;\n if (isNullOrUndefined(valueExpression) && valueString.replace(/\\s/g, '').length) {\n var extISOString = null;\n var basicISOString = null;\n // eslint-disable-next-line\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n // eslint-disable-next-line\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\n || ((/^[a-zA-Z0-9- ]*$/).test(value)) || isNaN(+new Date('' + valueString))) {\n isInvalid = true;\n }\n else {\n valueExpression = new Date('' + valueString);\n }\n }\n if (isInvalid) {\n if (!this.strictMode) {\n this.invalidValueString = valueString;\n }\n this.setProperties({ value: null }, true);\n this.initValue = null;\n }\n else {\n this.setProperties({ value: valueExpression }, true);\n this.initValue = this.value;\n }\n }\n };\n TimePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableMask) {\n modules.push({ args: [this], member: 'MaskedDateTime' });\n }\n return modules;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimePicker.prototype.cldrFormat = function (type) {\n var cldrDateTimeString;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDateTimeString = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDateTimeString = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n return cldrDateTimeString;\n };\n // destroy function\n TimePicker.prototype.destroy = function () {\n this.hide();\n this.unBindEvents();\n var ariaAttribute = {\n 'aria-autocomplete': 'list', 'tabindex': '0',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-disabled': 'true', 'aria-invalid': 'false'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttribute, this.inputElement);\n if (this.angularTag === null) {\n this.inputWrapper.container.parentElement.appendChild(this.inputElement);\n }\n if (!isNullOrUndefined(this.cloneElement.getAttribute('tabindex'))) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.removeAttribute('tabindex');\n }\n this.ensureInputAttribute();\n this.enableElement([this.inputElement]);\n this.inputElement.classList.remove('e-input');\n if (isNullOrUndefined(this.cloneElement.getAttribute('disabled'))) {\n Input.setEnabled(true, this.inputElement, this.floatLabelType);\n }\n }\n if (this.inputWrapper.container) {\n detach(this.inputWrapper.container);\n }\n this.inputWrapper = this.popupWrapper = this.cloneElement = undefined;\n this.liCollections = this.timeCollections = this.disableItemCollection = [];\n if (!isNullOrUndefined(this.rippleFn)) {\n this.rippleFn();\n }\n _super.prototype.destroy.call(this);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n this.rippleFn = null;\n this.openPopupEventArgs = null;\n this.selectedElement = null;\n this.listTag = null;\n this.liCollections = null;\n };\n TimePicker.prototype.ensureInputAttribute = function () {\n var propertyList = [];\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\n propertyList[i] = this.inputElement.attributes[i].name;\n }\n for (var i = 0; i < propertyList.length; i++) {\n if (!isNullOrUndefined(this.cloneElement.getAttribute(propertyList[i]))) {\n this.inputElement.setAttribute(propertyList[i], this.cloneElement.getAttribute(propertyList[i]));\n if (propertyList[i].toLowerCase() === 'value') {\n this.inputElement.value = this.cloneElement.getAttribute(propertyList[i]);\n }\n }\n else {\n this.inputElement.removeAttribute(propertyList[i]);\n if (propertyList[i].toLowerCase() === 'value') {\n this.inputElement.value = '';\n }\n }\n }\n };\n //popup creation\n TimePicker.prototype.popupCreation = function () {\n this.popupWrapper = this.createElement('div', {\n className: ROOT + ' ' + POPUP,\n attrs: { 'id': this.element.id + '_popup', 'style': 'visibility:hidden' }\n });\n if (!isNullOrUndefined(this.cssClass)) {\n this.popupWrapper.className += ' ' + this.cssClass;\n }\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.generateList();\n append([this.listWrapper], this.popupWrapper);\n }\n this.addSelection();\n this.renderPopup();\n detach(this.popupWrapper);\n };\n TimePicker.prototype.getPopupHeight = function () {\n var height = parseInt(POPUPDIMENSION, 10);\n var popupHeight = this.popupWrapper.getBoundingClientRect().height;\n return popupHeight > height ? height : popupHeight;\n };\n TimePicker.prototype.generateList = function () {\n this.createListItems();\n this.wireListEvents();\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\n };\n TimePicker.prototype.renderPopup = function () {\n var _this = this;\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n this.popupObj = new Popup(this.popupWrapper, {\n width: this.setPopupWidth(this.width),\n zIndex: this.zIndex,\n targetType: 'relative',\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n enableRtl: this.enableRtl,\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n offsetY: OFFSETVAL,\n open: function () {\n _this.popupWrapper.style.visibility = 'visible';\n addClass([_this.inputWrapper.buttons[0]], SELECTED);\n }, close: function () {\n removeClass([_this.inputWrapper.buttons[0]], SELECTED);\n _this.unWireListEvents();\n _this.inputElement.removeAttribute('aria-activedescendant');\n remove(_this.popupObj.element);\n _this.popupObj.destroy();\n _this.popupWrapper.innerHTML = '';\n _this.listWrapper = _this.popupWrapper = _this.listTag = undefined;\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n if (!Browser.isDevice) {\n this.popupObj.collision = { X: 'none', Y: 'flip' };\n }\n if (Browser.isDevice && this.fullScreenMode) {\n this.popupObj.element.style.maxHeight = \"100%\";\n this.popupObj.element.style.width = \"100%\";\n }\n else {\n this.popupObj.element.style.maxHeight = POPUPDIMENSION;\n }\n if (Browser.isDevice && this.fullScreenMode) {\n var modelHeader = this.createElement('div', { className: 'e-model-header' });\n var modelTitleSpan = this.createElement(\"span\", { className: \"e-model-title\" });\n modelTitleSpan.textContent = \"Select time\";\n var modelCloseIcon = this.createElement(\"span\", { className: \"e-popup-close\" });\n EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.timePopupCloseHandler, this);\n modelHeader.appendChild(modelCloseIcon);\n modelHeader.appendChild(modelTitleSpan);\n this.popupWrapper.insertBefore(modelHeader, this.popupWrapper.firstElementChild);\n }\n };\n TimePicker.prototype.timePopupCloseHandler = function (e) {\n this.hide();\n };\n //util function\n TimePicker.prototype.getFormattedValue = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n else {\n return this.globalize.formatDate(value, { skeleton: 'medium', type: 'time' });\n }\n };\n TimePicker.prototype.getDateObject = function (text) {\n if (!this.isNullOrEmpty(text)) {\n var dateValue = this.createDateObj(text);\n var value = !this.isNullOrEmpty(this.initValue);\n if (this.checkDateValue(dateValue)) {\n var date = value ? this.initValue.getDate() : DAY;\n var month = value ? this.initValue.getMonth() : MONTH;\n var year = value ? this.initValue.getFullYear() : YEAR;\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds());\n }\n }\n return null;\n };\n TimePicker.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 (wrapperAttributes.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassesValue = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassesValue !== '') {\n addClass([this.inputWrapper.container], updatedClassesValue.split(' '));\n }\n }\n else if (key === 'style') {\n var timeStyle = this.inputWrapper.container.getAttribute(key);\n timeStyle = !isNullOrUndefined(timeStyle) ? (timeStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.inputWrapper.container.setAttribute(key, timeStyle);\n }\n else {\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n TimePicker.prototype.updateHtmlAttributeToElement = 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 (wrapperAttributes.indexOf(key) < 0) {\n this.inputElement.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n TimePicker.prototype.updateCssClass = function (cssClassNew, cssClassOld) {\n if (!isNullOrUndefined(cssClassOld)) {\n cssClassOld = (cssClassOld.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(cssClassNew)) {\n cssClassNew = (cssClassNew.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(cssClassNew, [this.inputWrapper.container], cssClassOld);\n if (this.popupWrapper) {\n Input.setCssClass(cssClassNew, [this.popupWrapper], cssClassOld);\n }\n };\n TimePicker.prototype.removeErrorClass = function () {\n removeClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'false' });\n };\n TimePicker.prototype.checkErrorState = function (val) {\n var value = this.getDateObject(val);\n if ((this.validateState(value) && !this.invalidValueString) ||\n (this.enableMask && this.inputElement.value === this.maskedDateValue)) {\n this.removeErrorClass();\n }\n else {\n addClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'true' });\n }\n };\n TimePicker.prototype.validateInterval = function () {\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.enableElement([this.inputWrapper.buttons[0]]);\n }\n else {\n this.disableTimeIcon();\n }\n };\n TimePicker.prototype.disableTimeIcon = function () {\n this.disableElement([this.inputWrapper.buttons[0]]);\n this.hide();\n };\n TimePicker.prototype.disableElement = function (element) {\n addClass(element, DISABLED);\n };\n TimePicker.prototype.enableElement = function (element) {\n removeClass(element, DISABLED);\n };\n TimePicker.prototype.selectInputText = function () {\n this.inputElement.setSelectionRange(0, (this.inputElement).value.length);\n };\n TimePicker.prototype.setCursorToEnd = function () {\n this.inputElement.setSelectionRange((this.inputElement).value.length, (this.inputElement).value.length);\n };\n TimePicker.prototype.getMeridianText = function () {\n var meridian;\n if (this.locale === 'en' || this.locale === 'en-US') {\n meridian = getValue('dayPeriods.format.wide', getDefaultDateObject());\n }\n else {\n var gregorianFormat = '.dates.calendars.gregorian.dayPeriods.format.abbreviated';\n var mainVal = 'main.';\n meridian = getValue(mainVal + '' + this.locale + gregorianFormat, cldrData);\n }\n return meridian;\n };\n TimePicker.prototype.getCursorSelection = function () {\n var input = (this.inputElement);\n var start = 0;\n var end = 0;\n if (!isNaN(input.selectionStart)) {\n start = input.selectionStart;\n end = input.selectionEnd;\n }\n return { start: Math.abs(start), end: Math.abs(end) };\n };\n TimePicker.prototype.getActiveElement = function () {\n if (!isNullOrUndefined(this.popupWrapper)) {\n return this.popupWrapper.querySelectorAll('.' + SELECTED);\n }\n else {\n return null;\n }\n };\n TimePicker.prototype.isNullOrEmpty = function (value) {\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\n return true;\n }\n else {\n return false;\n }\n };\n TimePicker.prototype.setWidth = function (width) {\n if (typeof width === 'number') {\n width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n width = (width.match(/px|%|em/)) ? width : formatUnit(width);\n }\n else {\n width = '100%';\n }\n return width;\n };\n TimePicker.prototype.setPopupWidth = function (width) {\n width = this.setWidth(width);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n TimePicker.prototype.setScrollPosition = function () {\n var element = this.selectedElement;\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else if (this.popupWrapper && this.checkDateValue(this.scrollTo)) {\n this.setScrollTo();\n }\n };\n TimePicker.prototype.findScrollTop = function (element) {\n var listHeight = this.getPopupHeight();\n var nextEle = element.nextElementSibling;\n var height = nextEle ? nextEle.offsetTop : element.offsetTop;\n var liHeight = element.getBoundingClientRect().height;\n if ((height + element.offsetTop) > listHeight) {\n this.popupWrapper.scrollTop = nextEle ? (height - (listHeight / HALFPOSITION + liHeight / HALFPOSITION)) : height;\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n };\n TimePicker.prototype.setScrollTo = function () {\n var element;\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n var initialTime = this.timeCollections[0];\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\n }\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n };\n TimePicker.prototype.getText = function () {\n return (isNullOrUndefined(this.checkDateValue(this.value))) ? '' : this.getValue(this.value);\n };\n TimePicker.prototype.getValue = function (value) {\n return (isNullOrUndefined(this.checkDateValue(value))) ? null : this.globalize.formatDate(value, {\n format: this.cldrTimeFormat(), type: 'time'\n });\n };\n TimePicker.prototype.cldrDateFormat = function () {\n var cldrDate;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDate = (getValue('dateFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDate = (this.getCultureDateObject(cldrData, '' + this.locale));\n }\n return cldrDate;\n };\n TimePicker.prototype.cldrTimeFormat = function () {\n var cldrTime;\n if (this.isNullOrEmpty(this.formatString)) {\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n TimePicker.prototype.dateToNumeric = function () {\n var cldrTime;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.medium', getDefaultDateObject()));\n }\n else {\n cldrTime = (getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.medium', cldrData));\n }\n return cldrTime;\n };\n TimePicker.prototype.getExactDateTime = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n else {\n return this.globalize.formatDate(value, { format: this.dateToNumeric(), type: 'time' });\n }\n };\n TimePicker.prototype.setValue = function (value) {\n var time = this.checkValue(value);\n if (!this.strictMode && !this.validateState(time)) {\n if (this.checkDateValue(this.valueWithMinutes) === null) {\n this.initValue = this.valueWithMinutes = null;\n }\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n if (this.isNullOrEmpty(time)) {\n this.initValue = null;\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n this.initValue = this.compareFormatChange(time);\n }\n }\n this.updateInput(true, this.initValue);\n };\n TimePicker.prototype.compareFormatChange = function (value) {\n if (isNullOrUndefined(value)) {\n return null;\n }\n return (value !== this.getText()) ? this.getDateObject(value) : this.getDateObject(this.value);\n };\n TimePicker.prototype.updatePlaceHolder = function () {\n Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);\n };\n //event related functions\n TimePicker.prototype.updateInputValue = function (value) {\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n TimePicker.prototype.preventEventBubbling = function (e) {\n e.preventDefault();\n this.interopAdaptor.invokeMethodAsync('OnTimeIconClick');\n };\n TimePicker.prototype.popupHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n }\n e.preventDefault();\n if (this.isPopupOpen()) {\n this.closePopup(0, e);\n }\n else {\n this.inputElement.focus();\n this.show(e);\n }\n };\n TimePicker.prototype.mouseDownHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.readonly) {\n this.inputElement.setSelectionRange(0, 0);\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\n }\n };\n TimePicker.prototype.mouseUpHandler = function (event) {\n if (!this.readonly) {\n event.preventDefault();\n if (this.enableMask) {\n event.preventDefault();\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n return;\n }\n else {\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\n var curPos = this.getCursorSelection();\n if (!(curPos.start === 0 && curPos.end === this.inputElement.value.length)) {\n if (this.inputElement.value.length > 0) {\n this.cursorDetails = this.focusSelection();\n }\n this.inputElement.setSelectionRange(this.cursorDetails.start, this.cursorDetails.end);\n }\n }\n }\n };\n TimePicker.prototype.focusSelection = function () {\n var regex = new RegExp('^[a-zA-Z0-9]+$');\n var split = this.inputElement.value.split('');\n split.push(' ');\n var curPos = this.getCursorSelection();\n var start = 0;\n var end = 0;\n var isSeparator = false;\n if (!this.isTextSelected) {\n for (var i = 0; i < split.length; i++) {\n if (!regex.test(split[i])) {\n end = i;\n isSeparator = true;\n }\n if (isSeparator) {\n if (curPos.start >= start && curPos.end <= end) {\n // eslint-disable-next-line no-self-assign\n end = end;\n this.isTextSelected = true;\n break;\n }\n else {\n start = i + 1;\n isSeparator = false;\n }\n }\n }\n }\n else {\n start = curPos.start;\n end = curPos.end;\n this.isTextSelected = false;\n }\n return { start: start, end: end };\n };\n TimePicker.prototype.inputHandler = function (event) {\n if (!this.readonly && this.enabled) {\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\n event.preventDefault();\n }\n switch (event.action) {\n case 'home':\n case 'end':\n case 'up':\n case 'down':\n if (!this.isPopupOpen()) {\n this.popupCreation();\n this.popupObj.destroy();\n this.popupObj = this.popupWrapper = null;\n }\n if (this.enableMask && !this.readonly && !this.isPopupOpen()) {\n event.preventDefault();\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: event\n });\n }\n if (!this.enableMask || this.isPopupOpen()) {\n this.keyHandler(event);\n }\n break;\n case 'enter':\n if (this.isNavigate) {\n this.selectedElement = this.liCollections[this.activeIndex];\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n this.updateValue(this.valueWithMinutes, event);\n }\n else {\n this.updateValue(this.inputElement.value, event);\n }\n this.hide();\n this.isNavigate = false;\n if (this.isPopupOpen()) {\n event.stopPropagation();\n }\n break;\n case 'open':\n this.show(event);\n break;\n case 'escape':\n this.updateInputValue(this.objToString(this.value));\n if (this.enableMask) {\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n this.createMask();\n }\n this.previousState(this.value);\n this.hide();\n break;\n case 'close':\n this.hide();\n break;\n case 'right':\n case 'left':\n case 'tab':\n case 'shiftTab':\n if (!this.isPopupOpen() && this.enableMask && !this.readonly) {\n if ((this.inputElement.selectionStart === 0 && this.inputElement.selectionEnd === this.inputElement.value.length) ||\n (this.inputElement.selectionEnd !== this.inputElement.value.length && event.action === 'tab') ||\n (this.inputElement.selectionStart !== 0 && event.action === 'shiftTab') || (event.action === 'left' || event.action === 'right')) {\n event.preventDefault();\n }\n this.notify('keyDownHandler', { module: 'MaskedDateTime',\n e: event\n });\n }\n break;\n default:\n this.isNavigate = false;\n break;\n }\n }\n };\n TimePicker.prototype.onMouseClick = function (event) {\n var target = event.target;\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\n this.setSelection(li, event);\n if (li && li.classList.contains(LISTCLASS)) {\n this.hide();\n }\n };\n TimePicker.prototype.closePopup = function (delay, e) {\n var _this = this;\n if (this.isPopupOpen() && this.popupWrapper) {\n var args = {\n popup: this.popupObj,\n event: e || null,\n cancel: false,\n name: 'open'\n };\n removeClass([document.body], OVERFLOW);\n this.trigger('close', args, function (args) {\n if (!args.cancel) {\n var animModel = {\n name: 'FadeOut',\n duration: ANIMATIONDURATION,\n delay: delay ? delay : 0\n };\n _this.popupObj.hide(new Animation(animModel));\n removeClass([_this.inputWrapper.container], [ICONANIMATION]);\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n EventHandler.remove(document, 'mousedown touchstart', _this.documentClickHandler);\n }\n if (Browser.isDevice && _this.modal) {\n _this.modal.style.display = 'none';\n _this.modal.outerHTML = '';\n _this.modal = null;\n }\n if (Browser.isDevice) {\n if (!isNullOrUndefined(_this.mobileTimePopupWrap)) {\n _this.mobileTimePopupWrap.remove();\n _this.mobileTimePopupWrap = null;\n }\n }\n if (Browser.isDevice && _this.allowEdit && !_this.readonly) {\n _this.inputElement.removeAttribute('readonly');\n }\n });\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n TimePicker.prototype.disposeServerPopup = function () {\n if (this.popupWrapper) {\n this.popupWrapper.style.visibility = 'hidden';\n this.popupWrapper.style.top = '-9999px';\n this.popupWrapper.style.left = '-9999px';\n this.popupWrapper.style.width = '0px';\n this.popupWrapper.style.height = '0px';\n }\n };\n TimePicker.prototype.checkValueChange = function (event, isNavigation) {\n if (!this.strictMode && !this.validateState(this.valueWithMinutes)) {\n if (this.checkDateValue(this.valueWithMinutes) === null) {\n this.initValue = this.valueWithMinutes = null;\n }\n this.setProperties({ value: this.compareFormatChange(this.inputElement.value) }, true);\n this.initValue = this.valueWithMinutes = this.compareFormatChange(this.inputElement.value);\n this.prevValue = this.inputElement.value;\n if (+this.prevDate !== +this.value) {\n this.changeEvent(event);\n }\n }\n else {\n if (!isNavigation) {\n if ((this.prevValue !== this.inputElement.value) || isNullOrUndefined(this.checkDateValue(this.value))) {\n this.valueProcess(event, this.compareFormatChange(this.inputElement.value));\n }\n }\n else {\n var value = this.getDateObject(new Date(this.timeCollections[this.activeIndex]));\n if (+this.prevDate !== +value) {\n this.valueProcess(event, value);\n }\n }\n }\n };\n TimePicker.prototype.onMouseOver = function (event) {\n var currentLi = closest(event.target, '.' + LISTCLASS);\n this.setHover(currentLi, HOVER);\n };\n TimePicker.prototype.setHover = function (li, className) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\n this.removeHover(className);\n addClass([li], className);\n if (className === NAVIGATION) {\n li.setAttribute('aria-selected', 'true');\n }\n }\n };\n TimePicker.prototype.setSelection = function (li, event) {\n if (this.isValidLI(li)) {\n this.checkValue(li.getAttribute('data-value'));\n if (this.enableMask) {\n this.createMask();\n }\n this.selectedElement = li;\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n addClass([this.selectedElement], SELECTED);\n this.selectedElement.setAttribute('aria-selected', 'true');\n this.checkValueChange(event, true);\n }\n };\n TimePicker.prototype.onMouseLeave = function () {\n this.removeHover(HOVER);\n };\n TimePicker.prototype.scrollHandler = function () {\n if (this.getModuleName() === 'timepicker' && Browser.isDevice) {\n return;\n }\n else {\n this.hide();\n }\n };\n TimePicker.prototype.setMinMax = function (minVal, maxVal) {\n if (isNullOrUndefined(this.checkDateValue(minVal))) {\n this.initMin = this.getDateObject('12:00:00 AM');\n }\n if (isNullOrUndefined(this.checkDateValue(maxVal))) {\n this.initMax = this.getDateObject('11:59:59 PM');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimePicker.prototype.validateMinMax = function (dateVal, minVal, maxVal) {\n var value = dateVal instanceof Date ? dateVal : this.getDateObject(dateVal);\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n dateVal = this.strictOperation(this.initMin, this.initMax, dateVal, value);\n }\n else if (+(this.createDateObj(this.getFormattedValue(this.initMin))) >\n +(this.createDateObj(this.getFormattedValue(this.initMax)))) {\n this.disableTimeIcon();\n }\n if (this.strictMode) {\n dateVal = this.valueIsDisable(dateVal) ? dateVal : null;\n }\n this.checkErrorState(dateVal);\n return dateVal;\n };\n TimePicker.prototype.valueIsDisable = function (value) {\n if (this.disableItemCollection.length > 0) {\n if (this.disableItemCollection.length === this.timeCollections.length) {\n return false;\n }\n var time = value instanceof Date ? this.objToString(value) : value;\n for (var index = 0; index < this.disableItemCollection.length; index++) {\n if (time === this.disableItemCollection[index]) {\n return false;\n }\n }\n }\n return true;\n };\n TimePicker.prototype.validateState = function (val) {\n if (!this.strictMode) {\n if (this.valueIsDisable(val)) {\n var value = typeof val === 'string' ? this.setCurrentDate(this.getDateObject(val)) :\n this.setCurrentDate(this.getDateObject(val));\n var maxValue = this.setCurrentDate(this.getDateObject(this.initMax));\n var minValue = this.setCurrentDate(this.getDateObject(this.initMin));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n if ((+(value) > +(maxValue)) || (+(value) < +(minValue))) {\n return false;\n }\n }\n else {\n if ((+(maxValue) < +(minValue)) || this.inputElement.value !== '') {\n return false;\n }\n }\n }\n else {\n return false;\n }\n }\n return true;\n };\n TimePicker.prototype.strictOperation = function (minimum, maximum, dateVal, val) {\n var maxValue = this.createDateObj(this.getFormattedValue(maximum));\n var minValue = this.createDateObj(this.getFormattedValue(minimum));\n var value = this.createDateObj(this.getFormattedValue(val));\n if (this.strictMode) {\n if (+minValue > +maxValue) {\n this.disableTimeIcon();\n this.initValue = this.getDateObject(maxValue);\n this.updateInputValue(this.getValue(this.initValue));\n if (this.enableMask) {\n this.createMask();\n }\n return this.inputElement.value;\n }\n else if (+minValue >= +value) {\n return this.getDateObject(minValue);\n }\n else if (+value >= +maxValue || +minValue === +maxValue) {\n return this.getDateObject(maxValue);\n }\n }\n else {\n if (+minValue > +maxValue) {\n this.disableTimeIcon();\n if (!isNaN(+this.createDateObj(dateVal))) {\n return dateVal;\n }\n }\n }\n return dateVal;\n };\n TimePicker.prototype.bindEvents = function () {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.popupHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\n EventHandler.add(this.inputElement, 'input', this.inputEventHandler, this);\n if (this.enableMask) {\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\n }\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyConfigure = extend(this.keyConfigure, this.keyConfigs);\n this.inputEvent = new KeyboardEvents(this.inputWrapper.container, {\n keyAction: this.inputHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n if (this.showClearButton && this.inputElement) {\n EventHandler.add(this.inputElement, 'mousedown', this.mouseDownHandler, this);\n }\n }\n };\n TimePicker.prototype.keydownHandler = function (e) {\n switch (e.code) {\n case 'Delete':\n if (this.enableMask && !this.popupObj && !this.readonly) {\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n }\n break;\n default:\n break;\n }\n };\n TimePicker.prototype.formResetHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.inputElement.disabled) {\n var timeValue = this.inputElement.getAttribute('value');\n var val = this.checkDateValue(this.inputEleValue);\n if (this.element.tagName === 'EJS-TIMEPICKER') {\n val = null;\n timeValue = '';\n this.inputElement.setAttribute('value', '');\n }\n this.setProperties({ value: val }, true);\n this.prevDate = this.value;\n this.valueWithMinutes = this.value;\n this.initValue = this.value;\n if (this.inputElement) {\n this.updateInputValue(timeValue);\n if (this.enableMask) {\n if (!timeValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n this.createMask();\n }\n this.checkErrorState(timeValue);\n this.prevValue = this.inputElement.value;\n }\n }\n };\n TimePicker.prototype.inputChangeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.stopPropagation();\n };\n TimePicker.prototype.inputEventHandler = function () {\n if (this.enableMask) {\n this.notify('inputHandler', {\n module: 'MaskedDateTime'\n });\n }\n };\n TimePicker.prototype.unBindEvents = function () {\n if (this.inputWrapper) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.popupHandler);\n }\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\n EventHandler.remove(this.inputElement, 'input', this.inputEventHandler);\n if (this.inputEvent) {\n this.inputEvent.destroy();\n }\n EventHandler.remove(this.inputElement, 'mousedown touchstart', this.mouseDownHandler);\n if (this.showClearButton && !isNullOrUndefined(this.inputWrapper) && !isNullOrUndefined(this.inputWrapper.clearButton)) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.clearHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n TimePicker.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\n }\n };\n TimePicker.prototype.raiseClearedEvent = function (e) {\n var clearedArgs = {\n event: e\n };\n this.trigger('cleared', clearedArgs);\n };\n TimePicker.prototype.clearHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.preventDefault();\n if (!isNullOrUndefined(this.value)) {\n this.clear(e);\n }\n else {\n this.resetState();\n this.raiseClearedEvent(e);\n }\n if (this.popupWrapper) {\n this.popupWrapper.scrollTop = 0;\n }\n if (this.enableMask) {\n this.notify('clearHandler', {\n module: 'MaskedDateTime'\n });\n }\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 TimePicker.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n this.initValue = null;\n this.resetState();\n this.raiseClearedEvent(event);\n this.changeEvent(event);\n };\n TimePicker.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.zIndex = this.zIndex;\n this.popupObj.dataBind();\n }\n };\n TimePicker.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['step', 'disabled', 'readonly', 'style', 'name', 'value', 'min', 'max', 'placeholder'];\n var value;\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'style':\n this.inputStyle = this.inputElement.getAttribute(prop);\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'name':\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\n break;\n case 'step':\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['min'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.setProperties({ min: value }, !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['max'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.setProperties({ max: value }, !isDynamic);\n }\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['value'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.initValue = value;\n this.updateInput(false, this.initValue);\n this.setProperties({ value: value }, !isDynamic);\n }\n }\n break;\n }\n }\n }\n };\n TimePicker.prototype.setCurrentDate = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n return new Date(YEAR, MONTH, DAY, value.getHours(), value.getMinutes(), value.getSeconds());\n };\n TimePicker.prototype.getTextFormat = function () {\n var time = 0;\n if (this.cldrTimeFormat().split(' ')[0] === 'a' || this.cldrTimeFormat().indexOf('a') === 0) {\n time = 1;\n }\n else if (this.cldrTimeFormat().indexOf('a') < 0) {\n var strArray = this.cldrTimeFormat().split(' ');\n for (var i = 0; i < strArray.length; i++) {\n if (strArray[i].toLowerCase().indexOf('h') >= 0) {\n time = i;\n break;\n }\n }\n }\n return time;\n };\n TimePicker.prototype.updateValue = function (value, event) {\n var val;\n if (this.isNullOrEmpty(value)) {\n this.resetState();\n }\n else {\n val = this.checkValue(value);\n if (this.strictMode) {\n // this case set previous value to the text box when set invalid date\n var inputVal = (val === null && value.trim().length > 0) ?\n this.previousState(this.prevDate) : this.inputElement.value;\n this.updateInputValue(inputVal);\n if (this.enableMask) {\n if (!inputVal) {\n this.updateInputValue(this.maskedDateValue);\n }\n if (isNullOrUndefined(val) && value !== this.maskedDateValue) {\n this.createMask();\n }\n if (isNullOrUndefined(val) && value === this.maskedDateValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n }\n this.checkValueChange(event, typeof value === 'string' ? false : true);\n };\n TimePicker.prototype.previousState = function (date) {\n var value = this.getDateObject(date);\n for (var i = 0; i < this.timeCollections.length; i++) {\n if (+value === this.timeCollections[i]) {\n this.activeIndex = i;\n this.selectedElement = this.liCollections[i];\n this.valueWithMinutes = new Date(this.timeCollections[i]);\n break;\n }\n }\n return this.prevValue;\n };\n TimePicker.prototype.resetState = function () {\n this.removeSelection();\n Input.setValue('', this.inputElement, this.floatLabelType, false);\n this.valueWithMinutes = this.activeIndex = null;\n if (!this.strictMode) {\n this.checkErrorState(null);\n }\n };\n TimePicker.prototype.objToString = function (val) {\n if (isNullOrUndefined(this.checkDateValue(val))) {\n return null;\n }\n else {\n return this.globalize.formatDate(val, { format: this.cldrTimeFormat(), type: 'time' });\n }\n };\n TimePicker.prototype.checkValue = function (value) {\n if (!this.isNullOrEmpty(value)) {\n var date = value instanceof Date ? value : this.getDateObject(value);\n return this.validateValue(date, value);\n }\n this.resetState();\n return this.valueWithMinutes = null;\n };\n TimePicker.prototype.validateValue = function (date, value) {\n var time;\n var val = this.validateMinMax(value, this.min, this.max);\n var newval = this.createDateObj(val);\n if (this.getFormattedValue(newval) !== this.getFormattedValue(this.value)) {\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\n time = this.objToString(this.valueWithMinutes);\n }\n else {\n if (this.strictMode) {\n //for strict mode case, when value not present within a range. Reset the nearest range value.\n date = newval;\n }\n this.valueWithMinutes = this.checkDateValue(date);\n time = this.objToString(this.valueWithMinutes);\n }\n if (!this.strictMode && isNullOrUndefined(time)) {\n var value_1 = val.trim().length > 0 ? val : '';\n this.updateInputValue(value_1);\n if (this.enableMask) {\n if (!value_1) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n else {\n this.updateInputValue(time);\n if (this.enableMask) {\n if (time === '') {\n this.updateInputValue(this.maskedDateValue);\n }\n if (isNullOrUndefined(time) && value !== this.maskedDateValue) {\n this.createMask();\n }\n if (isNullOrUndefined(time) && value === this.maskedDateValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n return time;\n };\n TimePicker.prototype.createMask = function () {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n };\n TimePicker.prototype.findNextElement = function (event) {\n var textVal = (this.inputElement).value;\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\n this.getDateObject(this.valueWithMinutes);\n var timeVal = null;\n var count = this.liCollections.length;\n var collections = this.timeCollections;\n if (!isNullOrUndefined(this.checkDateValue(value)) || !isNullOrUndefined(this.activeIndex)) {\n if (event.action === 'home') {\n var index = this.validLiElement(0);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n }\n else if (event.action === 'end') {\n var index = this.validLiElement(collections.length - 1, true);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n }\n else {\n if (event.action === 'down') {\n for (var i = 0; i < count; i++) {\n if (+value < this.timeCollections[i]) {\n var index = this.validLiElement(i);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n else if (i === count - 1) {\n var index = this.validLiElement(0);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n }\n }\n else {\n for (var i = count - 1; i >= 0; i--) {\n if (+value > this.timeCollections[i]) {\n var index = this.validLiElement(i, true);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n else if (i === 0) {\n var index = this.validLiElement(count - 1);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n }\n }\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.elementValue(isNullOrUndefined(timeVal) ? null : new Date(timeVal));\n }\n else {\n this.selectNextItem(event);\n }\n };\n TimePicker.prototype.selectNextItem = function (event) {\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\n this.activeIndex = index;\n this.selectedElement = this.liCollections[index];\n this.elementValue(new Date(this.timeCollections[index]));\n };\n TimePicker.prototype.elementValue = function (value) {\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.checkValue(value);\n }\n };\n TimePicker.prototype.validLiElement = function (index, backward) {\n var elementIndex = null;\n var items = isNullOrUndefined(this.popupWrapper) ? this.liCollections :\n this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n var isCheck = true;\n if (items.length) {\n if (backward) {\n for (var i = index; i >= 0; i--) {\n if (!items[i].classList.contains(DISABLED)) {\n elementIndex = i;\n break;\n }\n else if (i === 0) {\n if (isCheck) {\n index = i = items.length;\n isCheck = false;\n }\n }\n }\n }\n else {\n for (var i = index; i <= items.length - 1; i++) {\n if (!items[i].classList.contains(DISABLED)) {\n elementIndex = i;\n break;\n }\n else if (i === items.length - 1) {\n if (isCheck) {\n index = i = -1;\n isCheck = false;\n }\n }\n }\n }\n }\n return elementIndex;\n };\n TimePicker.prototype.keyHandler = function (event) {\n if (isNullOrUndefined(this.step) || this.step <= 0 || !isNullOrUndefined(this.inputWrapper)\n && this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\n return;\n }\n var count = this.timeCollections.length;\n if (isNullOrUndefined(this.getActiveElement()) || this.getActiveElement().length === 0) {\n if (this.liCollections.length > 0) {\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\n this.activeIndex = index;\n this.selectedElement = this.liCollections[index];\n this.elementValue(new Date(this.timeCollections[index]));\n }\n else {\n this.findNextElement(event);\n }\n }\n else {\n this.findNextElement(event);\n }\n }\n else {\n var nextItem = void 0;\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\n this.activeIndex = index = this.activeIndex === (count) ? 0 : this.activeIndex;\n this.activeIndex = index = this.activeIndex < 0 ? (count - 1) : this.activeIndex;\n this.activeIndex = index = this.validLiElement(this.activeIndex, (event.keyCode === 40 || event.keyCode === 39) ?\n false : true);\n nextItem = isNullOrUndefined(this.timeCollections[index]) ?\n this.timeCollections[0] : this.timeCollections[index];\n }\n else if (event.action === 'home') {\n var index = this.validLiElement(0);\n this.activeIndex = index;\n nextItem = this.timeCollections[index];\n }\n else if (event.action === 'end') {\n var index = this.validLiElement(count - 1, true);\n this.activeIndex = index;\n nextItem = this.timeCollections[index];\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.elementValue(new Date(nextItem));\n }\n this.isNavigate = true;\n this.setHover(this.selectedElement, NAVIGATION);\n this.setActiveDescendant();\n this.selectInputText();\n if (this.isPopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\n this.setScrollPosition();\n }\n };\n TimePicker.prototype.getCultureTimeObject = function (ld, c) {\n return getValue('main.' + c + '.dates.calendars.gregorian.timeFormats.short', ld);\n };\n TimePicker.prototype.getCultureDateObject = function (ld, c) {\n return getValue('main.' + c + '.dates.calendars.gregorian.dateFormats.short', ld);\n };\n TimePicker.prototype.wireListEvents = function () {\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n };\n TimePicker.prototype.unWireListEvents = function () {\n if (this.listWrapper) {\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\n if (!Browser.isDevice) {\n EventHandler.remove(this.listWrapper, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.listWrapper, 'mouseout', this.onMouseLeave);\n }\n }\n };\n TimePicker.prototype.valueProcess = function (event, value) {\n var result = (isNullOrUndefined(this.checkDateValue(value))) ? null : value;\n if (+this.prevDate !== +result) {\n this.initValue = result;\n this.changeEvent(event);\n }\n };\n TimePicker.prototype.changeEvent = function (e) {\n this.addSelection();\n this.updateInput(true, this.initValue);\n var eventArgs = {\n event: (e || null),\n value: this.value,\n text: (this.inputElement).value,\n isInteracted: !isNullOrUndefined(e),\n element: this.element\n };\n eventArgs.value = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\n this.prevDate = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n this.invalidValueString = null;\n this.checkErrorState(this.value);\n };\n TimePicker.prototype.updateInput = function (isUpdate, date) {\n if (isUpdate) {\n this.prevValue = this.getValue(date);\n }\n this.prevDate = this.valueWithMinutes = date;\n if ((typeof date !== 'number') || (this.value && +new Date(+this.value).setMilliseconds(0)) !== +date) {\n this.setProperties({ value: date }, true);\n if (this.enableMask && this.value) {\n this.createMask();\n }\n }\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\n this.checkErrorState(this.invalidValueString);\n this.updateInputValue(this.invalidValueString);\n }\n this.clearIconState();\n };\n TimePicker.prototype.setActiveDescendant = function () {\n if (!isNullOrUndefined(this.selectedElement) && this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\n }\n else {\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n TimePicker.prototype.removeSelection = function () {\n this.removeHover(HOVER);\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + SELECTED);\n if (items.length) {\n removeClass(items, SELECTED);\n items[0].removeAttribute('aria-selected');\n }\n }\n };\n TimePicker.prototype.removeHover = function (className) {\n var hoveredItem = this.getHoverItem(className);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, className);\n if (className === NAVIGATION) {\n hoveredItem[0].removeAttribute('aria-selected');\n }\n }\n };\n TimePicker.prototype.getHoverItem = function (className) {\n var hoveredItem;\n if (!isNullOrUndefined(this.popupWrapper)) {\n hoveredItem = this.popupWrapper.querySelectorAll('.' + className);\n }\n return hoveredItem;\n };\n TimePicker.prototype.setActiveClass = function () {\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n for (var i = 0; i < items.length; i++) {\n if ((this.timeCollections[i] === +this.getDateObject(this.valueWithMinutes))) {\n items[i].setAttribute('aria-selected', 'true');\n this.selectedElement = items[i];\n this.activeIndex = i;\n break;\n }\n }\n }\n }\n };\n TimePicker.prototype.addSelection = function () {\n this.selectedElement = null;\n this.removeSelection();\n this.setActiveClass();\n if (!isNullOrUndefined(this.selectedElement)) {\n addClass([this.selectedElement], SELECTED);\n this.selectedElement.setAttribute('aria-selected', 'true');\n }\n };\n TimePicker.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\n };\n TimePicker.prototype.createDateObj = function (val) {\n var formatStr = null;\n var today = this.globalize.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\n var value = null;\n if (typeof val === 'string') {\n if (val.toUpperCase().indexOf('AM') > -1 || val.toUpperCase().indexOf('PM') > -1) {\n today = this.defaultCulture.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\n value = isNaN(+new Date(today + ' ' + val)) ? null : new Date(new Date(today + ' ' + val).setMilliseconds(0));\n if (isNullOrUndefined(value)) {\n value = this.timeParse(today, val);\n }\n }\n else {\n value = this.timeParse(today, val);\n }\n }\n else if (val instanceof Date) {\n value = val;\n }\n return value;\n };\n TimePicker.prototype.timeParse = function (today, val) {\n var value;\n value = this.globalize.parseDate(today + ' ' + val, {\n format: this.cldrDateFormat() + ' ' + this.cldrTimeFormat(), type: 'datetime'\n });\n value = isNullOrUndefined(value) ? this.globalize.parseDate(today + ' ' + val, {\n format: this.cldrDateFormat() + ' ' + this.dateToNumeric(), type: 'datetime'\n }) : value;\n value = isNullOrUndefined(value) ? value : new Date(value.setMilliseconds(0));\n return value;\n };\n TimePicker.prototype.createListItems = function () {\n var _this = this;\n this.listWrapper = this.createElement('div', { className: CONTENT, attrs: { 'tabindex': '-1' } });\n var start;\n var interval = this.step * 60000;\n var listItems = [];\n this.timeCollections = [];\n this.disableItemCollection = [];\n start = +(this.getDateObject(this.initMin).setMilliseconds(0));\n var end = +(this.getDateObject(this.initMax).setMilliseconds(0));\n while (end >= start) {\n this.timeCollections.push(start);\n listItems.push(this.globalize.formatDate(new Date(start), { format: this.cldrTimeFormat(), type: 'time' }));\n start += interval;\n }\n var listBaseOptions = {\n itemCreated: function (args) {\n var eventArgs = {\n element: args.item,\n text: args.text, value: _this.getDateObject(args.text), isDisabled: false\n };\n _this.trigger('itemRender', eventArgs, function (eventArgs) {\n if (eventArgs.isDisabled) {\n eventArgs.element.classList.add(DISABLED);\n }\n if (eventArgs.element.classList.contains(DISABLED)) {\n _this.disableItemCollection.push(eventArgs.element.getAttribute('data-value'));\n }\n });\n }\n };\n this.listTag = ListBase.createList(this.createElement, listItems, listBaseOptions, true);\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });\n append([this.listTag], this.listWrapper);\n };\n TimePicker.prototype.documentClickHandler = function (event) {\n var target = event.target;\n if ((!isNullOrUndefined(this.popupObj) && !isNullOrUndefined(this.inputWrapper) && (this.inputWrapper.container.contains(target) && event.type !== 'mousedown' ||\n (this.popupObj.element && this.popupObj.element.contains(target)))) && event.type !== 'touchstart') {\n event.preventDefault();\n }\n if (!(closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) && target !== this.inputElement\n && target !== (this.inputWrapper && this.inputWrapper.buttons[0]) &&\n target !== (this.inputWrapper && this.inputWrapper.clearButton) &&\n target !== (this.inputWrapper && this.inputWrapper.container)) {\n if (this.isPopupOpen()) {\n this.hide();\n this.focusOut();\n }\n }\n else if (target !== this.inputElement) {\n if (!Browser.isDevice) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.inputElement)\n && (target === this.popupWrapper);\n }\n }\n };\n TimePicker.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n TimePicker.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement, this.floatLabelType);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], DISABLED);\n attributes(this.inputElement, { 'aria-disabled': 'false' });\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.hide();\n addClass([this.inputWrapper.container], DISABLED);\n attributes(this.inputElement, { 'aria-disabled': 'true' });\n this.inputElement.tabIndex = -1;\n }\n };\n TimePicker.prototype.getProperty = function (date, val) {\n if (val === 'min') {\n this.initMin = this.checkDateValue(new Date(this.checkInValue(date.min)));\n this.setProperties({ min: this.initMin }, true);\n }\n else {\n this.initMax = this.checkDateValue(new Date(this.checkInValue(date.max)));\n this.setProperties({ max: this.initMax }, true);\n }\n if (this.inputElement.value === '') {\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n this.checkValue(this.inputElement.value);\n }\n this.checkValueChange(null, false);\n };\n TimePicker.prototype.inputBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n // IE popup closing issue when click over the scrollbar\n if (this.isPreventBlur && this.isPopupOpen()) {\n this.inputElement.focus();\n return;\n }\n this.closePopup(0, e);\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\n if (this.inputElement.value === this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue('');\n }\n }\n removeClass([this.inputWrapper.container], [FOCUS]);\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n if (this.getText() !== this.inputElement.value) {\n this.updateValue((this.inputElement).value, e);\n }\n else if (this.inputElement.value.trim().length === 0) {\n this.resetState();\n }\n this.cursorDetails = null;\n this.isNavigate = false;\n if (this.inputElement.value === '') {\n this.invalidValueString = null;\n }\n };\n /**\n * Focuses out the TimePicker textbox element.\n *\n * @returns {void}\n */\n TimePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n this.inputElement.blur();\n removeClass([this.inputWrapper.container], [FOCUS]);\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n };\n TimePicker.prototype.isPopupOpen = function () {\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + ROOT)) {\n return true;\n }\n return false;\n };\n TimePicker.prototype.inputFocusHandler = function () {\n if (!this.enabled) {\n return;\n }\n var focusArguments = {\n model: this\n };\n if (!this.readonly && !Browser.isDevice && !this.enableMask) {\n this.selectInputText();\n }\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\n if (this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.inputElement.selectionStart = 0;\n this.inputElement.selectionEnd = this.inputElement.value.length;\n }\n }\n this.trigger('focus', focusArguments);\n this.clearIconState();\n if (this.openOnFocus) {\n this.show();\n }\n };\n /**\n * Focused the TimePicker textbox element.\n *\n * @returns {void}\n */\n TimePicker.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n }\n };\n /**\n * Hides the TimePicker popup.\n *\n * @returns {void}\n\n */\n TimePicker.prototype.hide = function () {\n this.closePopup(100, null);\n this.clearIconState();\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup to show the list items.\n *\n * @returns {void}\n\n */\n TimePicker.prototype.show = function (event) {\n var _this = this;\n if ((this.enabled && this.readonly) || !this.enabled || this.popupWrapper) {\n return;\n }\n else {\n this.popupCreation();\n if (Browser.isDevice && this.listWrapper) {\n this.modal = this.createElement('div');\n this.modal.className = '' + ROOT + ' e-time-modal';\n document.body.className += ' ' + OVERFLOW;\n document.body.appendChild(this.modal);\n }\n if (Browser.isDevice) {\n this.mobileTimePopupWrap = this.createElement('div', { className: 'e-timepicker-mob-popup-wrap' });\n document.body.appendChild(this.mobileTimePopupWrap);\n }\n this.openPopupEventArgs = {\n popup: this.popupObj || null,\n cancel: false,\n event: event || null,\n name: 'open',\n appendTo: Browser.isDevice ? this.mobileTimePopupWrap : document.body\n };\n var eventArgs = this.openPopupEventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.openPopupEventArgs = eventArgs;\n if (!_this.openPopupEventArgs.cancel && !_this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\n _this.openPopupEventArgs.appendTo.appendChild(_this.popupWrapper);\n _this.popupAlignment(_this.openPopupEventArgs);\n _this.setScrollPosition();\n if (!Browser.isDevice) {\n _this.inputElement.focus();\n }\n var openAnimation = {\n name: 'FadeIn',\n duration: ANIMATIONDURATION\n };\n _this.popupObj.refreshPosition(_this.anchor);\n if (_this.zIndex === 1000) {\n _this.popupObj.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObj.show(new Animation(openAnimation), null);\n }\n _this.setActiveDescendant();\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\n attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });\n addClass([_this.inputWrapper.container], FOCUS);\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\n _this.setOverlayIndex(_this.mobileTimePopupWrap, _this.popupObj.element, _this.modal, Browser.isDevice);\n }\n else {\n _this.popupObj.destroy();\n _this.popupWrapper = _this.listTag = undefined;\n _this.liCollections = _this.timeCollections = _this.disableItemCollection = [];\n _this.popupObj = null;\n }\n });\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n TimePicker.prototype.setOverlayIndex = function (popupWrapper, timePopupElement, modal, isDevice) {\n if (isDevice && !isNullOrUndefined(timePopupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\n var index = parseInt(timePopupElement.style.zIndex, 10) ? parseInt(timePopupElement.style.zIndex, 10) : 1000;\n modal.style.zIndex = (index - 1).toString();\n popupWrapper.style.zIndex = index.toString();\n }\n };\n TimePicker.prototype.formatValues = function (type) {\n var value;\n if (typeof type === 'number') {\n value = formatUnit(type);\n }\n else if (typeof type === 'string') {\n value = (type.match(/px|%|em/)) ? type : isNaN(parseInt(type, 10)) ? type : formatUnit(type);\n }\n return value;\n };\n TimePicker.prototype.popupAlignment = function (args) {\n args.popup.position.X = this.formatValues(args.popup.position.X);\n args.popup.position.Y = this.formatValues(args.popup.position.Y);\n if (!isNaN(parseFloat(args.popup.position.X)) || !isNaN(parseFloat(args.popup.position.Y))) {\n this.popupObj.relateTo = this.anchor = document.body;\n this.popupObj.targetType = 'container';\n }\n if (!isNaN(parseFloat(args.popup.position.X))) {\n this.popupObj.offsetX = parseFloat(args.popup.position.X);\n }\n if (!isNaN(parseFloat(args.popup.position.Y))) {\n this.popupObj.offsetY = parseFloat(args.popup.position.Y);\n }\n if (!Browser.isDevice) {\n switch (args.popup.position.X) {\n case 'left':\n break;\n case 'right':\n args.popup.offsetX = this.containerStyle.width;\n break;\n case 'center':\n args.popup.offsetX = -(this.containerStyle.width / 2);\n break;\n }\n switch (args.popup.position.Y) {\n case 'top':\n break;\n case 'bottom':\n break;\n case 'center':\n args.popup.offsetY = -(this.containerStyle.height / 2);\n break;\n }\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\n this.popupObj.relateTo = this.inputWrapper.container;\n this.anchor = this.inputElement;\n this.popupObj.targetType = 'relative';\n }\n }\n else {\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\n this.popupObj.relateTo = this.anchor = document.body;\n this.popupObj.offsetY = 0;\n this.popupObj.targetType = 'container';\n this.popupObj.collision = { X: 'fit', Y: 'fit' };\n }\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n TimePicker.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * To get component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n TimePicker.prototype.getModuleName = function () {\n return 'timepicker';\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {TimePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {TimePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n TimePicker.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 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement, this.floatLabelType);\n if (this.readonly) {\n this.hide();\n }\n this.setTimeAllowEdit();\n break;\n case 'enabled':\n this.setProperties({ enabled: newProp.enabled }, true);\n this.setEnable();\n break;\n case 'allowEdit':\n this.setTimeAllowEdit();\n break;\n case 'enableRtl':\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\n this.setEnableRtl();\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n this.setZIndex();\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkAttributes(true);\n break;\n case 'min':\n case 'max':\n this.getProperty(newProp, prop);\n break;\n case 'showClearButton':\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\n this.bindClearEvent();\n break;\n case 'locale':\n this.setProperties({ locale: newProp.locale }, true);\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.updatePlaceHolder();\n this.setValue(this.value);\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'width':\n setStyleAttribute(this.inputWrapper.container, { 'width': this.setWidth(newProp.width) });\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'format':\n this.setProperties({ format: newProp.format }, true);\n this.checkTimeFormat();\n this.setValue(this.value);\n if (this.enableMask) {\n this.createMask();\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n break;\n case 'value':\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n if (!this.invalidValueString) {\n if (typeof newProp.value === 'string') {\n this.setProperties({ value: this.checkDateValue(new Date(newProp.value)) }, true);\n newProp.value = this.value;\n }\n else {\n if ((newProp.value && +new Date(+newProp.value).setMilliseconds(0)) !== +this.value) {\n newProp.value = this.checkDateValue(new Date('' + newProp.value));\n }\n }\n this.initValue = newProp.value;\n newProp.value = this.compareFormatChange(this.checkValue(newProp.value));\n }\n else {\n this.updateInputValue(this.invalidValueString);\n this.checkErrorState(this.invalidValueString);\n }\n if (this.enableMask && isNullOrUndefined(newProp.value)) {\n this.updateInputValue(this.maskedDateValue);\n this.checkErrorState(this.maskedDateValue);\n }\n this.checkValueChange(null, false);\n if (this.isPopupOpen()) {\n this.setScrollPosition();\n }\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'strictMode':\n this.invalidValueString = null;\n if (newProp.strictMode) {\n this.checkErrorState(null);\n }\n this.setProperties({ strictMode: newProp.strictMode }, true);\n this.checkValue((this.inputElement).value);\n this.checkValueChange(null, false);\n break;\n case 'scrollTo':\n if (this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo)))) {\n if (this.popupWrapper) {\n this.setScrollTo();\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo))) }, true);\n }\n else {\n this.setProperties({ scrollTo: null }, true);\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n this.updateInputValue(this.maskedDateValue);\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.updateInputValue('');\n }\n }\n break;\n }\n }\n };\n TimePicker.prototype.checkInValue = function (inValue) {\n if (inValue instanceof Date) {\n return (inValue.toUTCString());\n }\n else {\n return ('' + inValue);\n }\n };\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"format\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"fullScreenMode\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"readonly\", void 0);\n __decorate([\n Property({})\n ], TimePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('Never')\n ], TimePicker.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property(1000)\n ], TimePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(30)\n ], TimePicker.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"scrollTo\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"min\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"max\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], TimePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"itemRender\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"focus\", void 0);\n TimePicker = __decorate([\n NotifyPropertyChanges\n ], TimePicker);\n return TimePicker;\n}(Component));\nexport { TimePicker };\n/* eslint-enable @typescript-eslint/no-explicit-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})();\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, Internationalization, Property, NotifyPropertyChanges, Browser } from '@syncfusion/ej2-base';\nimport { Animation, Event, cldrData, getDefaultDateObject, detach } from '@syncfusion/ej2-base';\nimport { createElement, remove, addClass, L10n, removeClass, closest, append, attributes } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, isNullOrUndefined, formatUnit, getValue, rippleEffect } from '@syncfusion/ej2-base';\nimport { extend } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { DatePicker } from '../datepicker/datepicker';\nimport { TimePickerBase } from '../timepicker/timepicker';\n//class constant defination\nvar DATEWRAPPER = 'e-date-wrapper';\nvar DATEPICKERROOT = 'e-datepicker';\nvar DATETIMEWRAPPER = 'e-datetime-wrapper';\nvar DAY = new Date().getDate();\nvar MONTH = new Date().getMonth();\nvar YEAR = new Date().getFullYear();\nvar HOUR = new Date().getHours();\nvar MINUTE = new Date().getMinutes();\nvar SECOND = new Date().getSeconds();\nvar MILLISECOND = new Date().getMilliseconds();\nvar ROOT = 'e-datetimepicker';\nvar DATETIMEPOPUPWRAPPER = 'e-datetimepopup-wrapper';\nvar INPUTWRAPPER = 'e-input-group-icon';\nvar POPUP = 'e-popup';\nvar TIMEICON = 'e-time-icon';\nvar INPUTFOCUS = 'e-input-focus';\nvar POPUPDIMENSION = '250px';\nvar ICONANIMATION = 'e-icon-anim';\nvar DISABLED = 'e-disabled';\nvar ERROR = 'e-error';\nvar CONTENT = 'e-content';\nvar NAVIGATION = 'e-navigation';\nvar ACTIVE = 'e-active';\nvar HOVER = 'e-hover';\nvar ICONS = 'e-icons';\nvar HALFPOSITION = 2;\nvar LISTCLASS = 'e-list-item';\nvar ANIMATIONDURATION = 100;\nvar OVERFLOW = 'e-time-overflow';\n/**\n * Represents the DateTimePicker component that allows user to select\n * or enter a date time value.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DateTimePicker = /** @class */ (function (_super) {\n __extends(DateTimePicker, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DateTimePickerModel} options - Specifies the DateTimePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function DateTimePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.valueWithMinutes = null;\n _this.scrollInvoked = false;\n _this.moduleName = _this.getModuleName();\n _this.dateTimeOptions = options;\n return _this;\n }\n DateTimePicker.prototype.focusHandler = function () {\n if (!this.enabled) {\n return;\n }\n addClass([this.inputWrapper.container], INPUTFOCUS);\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n DateTimePicker.prototype.focusIn = function () {\n _super.prototype.focusIn.call(this);\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n DateTimePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n this.inputElement.blur();\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n };\n DateTimePicker.prototype.blurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n // IE popup closing issue when click over the scrollbar\n if (this.isTimePopupOpen() && this.isPreventBlur) {\n this.inputElement.focus();\n return;\n }\n removeClass([this.inputWrapper.container], INPUTFOCUS);\n var blurArguments = {\n model: this\n };\n if (this.isTimePopupOpen()) {\n this.hide(e);\n }\n this.trigger('blur', blurArguments);\n };\n /**\n * To destroy the widget.\n *\n * @returns {void}\n */\n DateTimePicker.prototype.destroy = function () {\n if (this.popupObject && this.popupObject.element.classList.contains(POPUP)) {\n this.popupObject.destroy();\n detach(this.dateTimeWrapper);\n this.dateTimeWrapper = undefined;\n this.liCollections = this.timeCollections = [];\n if (!isNullOrUndefined(this.rippleFn)) {\n this.rippleFn();\n }\n }\n var ariaAttribute = {\n 'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-invalid': 'false',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttribute, this.inputElement);\n }\n if (this.isCalendar()) {\n if (this.popupWrapper) {\n detach(this.popupWrapper);\n }\n this.popupObject = this.popupWrapper = null;\n this.keyboardHandler.destroy();\n }\n this.unBindInputEvents();\n this.liCollections = null;\n this.rippleFn = null;\n this.selectedElement = null;\n this.listTag = null;\n this.timeIcon = null;\n this.popupObject = null;\n this.preventArgs = null;\n this.keyboardModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering.\n *\n * @returns {void}\n * @private\n */\n DateTimePicker.prototype.render = function () {\n this.timekeyConfigure = {\n enter: 'enter',\n escape: 'escape',\n end: 'end',\n tab: 'tab',\n home: 'home',\n down: 'downarrow',\n up: 'uparrow',\n left: 'leftarrow',\n right: 'rightarrow',\n open: 'alt+downarrow',\n close: 'alt+uparrow'\n };\n this.valueWithMinutes = null;\n this.previousDateTime = null;\n this.isPreventBlur = false;\n this.cloneElement = this.element.cloneNode(true);\n this.dateTimeFormat = this.cldrDateTimeFormat();\n this.initValue = this.value;\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n _super.prototype.updateHtmlAttributeToElement.call(this);\n this.checkAttributes(false);\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('datetimepicker', localeText, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n _super.prototype.render.call(this);\n this.createInputElement();\n _super.prototype.updateHtmlAttributeToWrapper.call(this);\n this.bindInputEvents();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n this.setValue(true);\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkValue(this.scrollTo))) }, true);\n this.previousDateTime = this.value && new Date(+this.value);\n if (this.element.tagName === 'EJS-DATETIMEPICKER') {\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n if (!this.enabled) {\n this.inputElement.tabIndex = -1;\n }\n }\n if (this.floatLabelType === 'Auto') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');\n }\n this.renderComplete();\n };\n DateTimePicker.prototype.setValue = function (isDynamic) {\n if (isDynamic === void 0) { isDynamic = false; }\n this.initValue = this.validateMinMaxRange(this.value);\n if (!this.strictMode && this.isDateObject(this.initValue)) {\n var value = this.validateMinMaxRange(this.initValue);\n Input.setValue(this.getFormattedValue(value), this.inputElement, this.floatLabelType, this.showClearButton);\n this.setProperties({ value: value }, true);\n }\n else {\n if (isNullOrUndefined(this.value)) {\n this.initValue = null;\n this.setProperties({ value: null }, true);\n }\n }\n this.valueWithMinutes = this.value;\n _super.prototype.updateInput.call(this, isDynamic);\n };\n DateTimePicker.prototype.validateMinMaxRange = function (value) {\n var result = value;\n if (this.isDateObject(value)) {\n result = this.validateValue(value);\n }\n else {\n if (+this.min > +this.max) {\n this.disablePopupButton(true);\n }\n }\n this.checkValidState(result);\n return result;\n };\n DateTimePicker.prototype.checkValidState = function (value) {\n this.isValidState = true;\n if (!this.strictMode) {\n if ((+(value) > +(this.max)) || (+(value) < +(this.min))) {\n this.isValidState = false;\n }\n }\n this.checkErrorState();\n };\n DateTimePicker.prototype.checkErrorState = function () {\n if (this.isValidState) {\n removeClass([this.inputWrapper.container], ERROR);\n }\n else {\n addClass([this.inputWrapper.container], ERROR);\n }\n attributes(this.inputElement, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\n };\n DateTimePicker.prototype.validateValue = function (value) {\n var dateVal = value;\n if (this.strictMode) {\n if (+this.min > +this.max) {\n this.disablePopupButton(true);\n dateVal = this.max;\n }\n else if (+value < +this.min) {\n dateVal = this.min;\n }\n else if (+value > +this.max) {\n dateVal = this.max;\n }\n }\n else {\n if (+this.min > +this.max) {\n this.disablePopupButton(true);\n dateVal = value;\n }\n }\n return dateVal;\n };\n DateTimePicker.prototype.disablePopupButton = function (isDisable) {\n if (isDisable) {\n addClass([this.inputWrapper.buttons[0], this.timeIcon], DISABLED);\n this.hide();\n }\n else {\n removeClass([this.inputWrapper.buttons[0], this.timeIcon], DISABLED);\n }\n };\n DateTimePicker.prototype.getFormattedValue = function (value) {\n var dateOptions;\n if (!isNullOrUndefined(value)) {\n if (this.calendarMode === 'Gregorian') {\n dateOptions = { format: this.cldrDateTimeFormat(), type: 'dateTime', skeleton: 'yMd' };\n }\n else {\n dateOptions = { format: this.cldrDateTimeFormat(), type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\n }\n return this.globalize.formatDate(value, dateOptions);\n }\n else {\n return null;\n }\n };\n DateTimePicker.prototype.isDateObject = function (value) {\n return (!isNullOrUndefined(value) && !isNaN(+value)) ? true : false;\n };\n DateTimePicker.prototype.createInputElement = function () {\n removeClass([this.inputElement], DATEPICKERROOT);\n removeClass([this.inputWrapper.container], DATEWRAPPER);\n addClass([this.inputWrapper.container], DATETIMEWRAPPER);\n addClass([this.inputElement], ROOT);\n this.renderTimeIcon();\n };\n DateTimePicker.prototype.renderTimeIcon = function () {\n this.timeIcon = Input.appendSpan(INPUTWRAPPER + ' ' + TIMEICON + ' ' + ICONS, this.inputWrapper.container);\n };\n DateTimePicker.prototype.bindInputEvents = function () {\n EventHandler.add(this.timeIcon, 'mousedown', this.timeHandler, this);\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dateHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.blurHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.focusHandler, this);\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\n this.keyboardHandler = new KeyboardEvents(this.inputElement, {\n eventName: 'keydown',\n keyAction: this.inputKeyAction.bind(this),\n keyConfigs: this.defaultKeyConfigs\n });\n };\n DateTimePicker.prototype.unBindInputEvents = function () {\n EventHandler.remove(this.timeIcon, 'mousedown touchstart', this.timeHandler);\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateHandler);\n if (this.inputElement) {\n EventHandler.remove(this.inputElement, 'blur', this.blurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.focusHandler);\n }\n if (this.keyboardHandler) {\n this.keyboardHandler.destroy();\n }\n };\n DateTimePicker.prototype.cldrTimeFormat = function () {\n var cldrTime;\n if (this.isNullOrEmpty(this.timeFormat)) {\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n }\n else {\n cldrTime = this.timeFormat;\n }\n return cldrTime;\n };\n DateTimePicker.prototype.cldrDateTimeFormat = function () {\n var cldrTime;\n var culture = new Internationalization(this.locale);\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\n if (this.isNullOrEmpty(this.formatString)) {\n cldrTime = dateFormat + ' ' + this.getCldrFormat('time');\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n DateTimePicker.prototype.getCldrFormat = function (type) {\n var cldrDateTime;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDateTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDateTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n return cldrDateTime;\n };\n DateTimePicker.prototype.isNullOrEmpty = function (value) {\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\n return true;\n }\n else {\n return false;\n }\n };\n DateTimePicker.prototype.getCultureTimeObject = function (ld, c) {\n if (this.calendarMode === 'Gregorian') {\n return getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.short', ld);\n }\n else {\n return getValue('main.' + '' + this.locale + '.dates.calendars.islamic.timeFormats.short', ld);\n }\n };\n DateTimePicker.prototype.timeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n this.isIconClicked = true;\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n }\n if (e.currentTarget === this.timeIcon) {\n e.preventDefault();\n }\n if (this.enabled && !this.readonly) {\n if (this.isDatePopupOpen()) {\n _super.prototype.hide.call(this, e);\n }\n if (this.isTimePopupOpen()) {\n this.closePopup(e);\n }\n else {\n this.inputElement.focus();\n this.popupCreation('time', e);\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\n }\n }\n this.isIconClicked = false;\n };\n DateTimePicker.prototype.dateHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (e.currentTarget === this.inputWrapper.buttons[0]) {\n e.preventDefault();\n }\n if (this.enabled && !this.readonly) {\n if (this.isTimePopupOpen()) {\n this.closePopup(e);\n }\n if (!isNullOrUndefined(this.popupWrapper)) {\n this.popupCreation('date', e);\n }\n }\n };\n DateTimePicker.prototype.show = function (type, e) {\n if ((this.enabled && this.readonly) || !this.enabled) {\n return;\n }\n else {\n if (type === 'time' && !this.dateTimeWrapper) {\n if (this.isDatePopupOpen()) {\n this.hide(e);\n }\n this.popupCreation('time', e);\n }\n else if (!this.popupObj) {\n if (this.isTimePopupOpen()) {\n this.hide(e);\n }\n _super.prototype.show.call(this);\n this.popupCreation('date', e);\n }\n }\n };\n DateTimePicker.prototype.toggle = function (e) {\n if (this.isDatePopupOpen()) {\n _super.prototype.hide.call(this, e);\n this.show('time', null);\n }\n else if (this.isTimePopupOpen()) {\n this.hide(e);\n _super.prototype.show.call(this, null, e);\n this.popupCreation('date', null);\n }\n else {\n this.show(null, e);\n }\n };\n DateTimePicker.prototype.listCreation = function () {\n var dateObject;\n if (this.calendarMode === 'Gregorian') {\n dateObject = this.globalize.parseDate(this.inputElement.value, {\n format: this.cldrDateTimeFormat(), type: 'datetime'\n });\n }\n else {\n dateObject = this.globalize.parseDate(this.inputElement.value, {\n format: this.cldrDateTimeFormat(), type: 'datetime', calendar: 'islamic'\n });\n }\n var value = isNullOrUndefined(this.value) ? this.inputElement.value !== '' ?\n dateObject : new Date() : this.value;\n this.valueWithMinutes = value;\n this.listWrapper = createElement('div', { className: CONTENT, attrs: { 'tabindex': '0' } });\n var min = this.startTime(value);\n var max = this.endTime(value);\n var listDetails = TimePickerBase.createListItems(this.createElement, min, max, this.globalize, this.cldrTimeFormat(), this.step);\n this.timeCollections = listDetails.collection;\n this.listTag = listDetails.list;\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });\n append([listDetails.list], this.listWrapper);\n this.wireTimeListEvents();\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\n };\n DateTimePicker.prototype.popupCreation = function (type, e) {\n if (Browser.isDevice) {\n this.element.setAttribute('readonly', 'readonly');\n }\n if (type === 'date') {\n if (!this.readonly && this.popupWrapper) {\n addClass([this.popupWrapper], DATETIMEPOPUPWRAPPER);\n attributes(this.popupWrapper, { 'id': this.element.id + '_datepopup' });\n }\n }\n else {\n if (!this.readonly) {\n this.dateTimeWrapper = createElement('div', {\n className: ROOT + ' ' + POPUP,\n attrs: { 'id': this.element.id + '_timepopup', 'style': 'visibility:hidden ; display:block' }\n });\n if (!isNullOrUndefined(this.cssClass)) {\n this.dateTimeWrapper.className += ' ' + this.cssClass;\n }\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.listCreation();\n append([this.listWrapper], this.dateTimeWrapper);\n }\n document.body.appendChild(this.dateTimeWrapper);\n this.addTimeSelection();\n this.renderPopup();\n this.setTimeScrollPosition();\n this.openPopup(e);\n if (!Browser.isDevice || (Browser.isDevice && !this.fullScreenMode)) {\n this.popupObject.refreshPosition(this.inputElement);\n }\n if (Browser.isDevice && this.fullScreenMode) {\n this.dateTimeWrapper.style.left = '0px';\n }\n }\n }\n };\n DateTimePicker.prototype.openPopup = function (e) {\n var _this = this;\n this.preventArgs = {\n cancel: false,\n popup: this.popupObject,\n event: e || null\n };\n var eventArgs = this.preventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.preventArgs = eventArgs;\n if (!_this.preventArgs.cancel && !_this.readonly) {\n var openAnimation = {\n name: 'FadeIn',\n duration: ANIMATIONDURATION\n };\n if (_this.zIndex === 1000) {\n _this.popupObject.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObject.show(new Animation(openAnimation), null);\n }\n addClass([_this.inputWrapper.container], [ICONANIMATION]);\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\n attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\n }\n });\n };\n DateTimePicker.prototype.documentClickHandler = function (event) {\n var target = event.target;\n if ((!isNullOrUndefined(this.popupObject) && (this.inputWrapper.container.contains(target) && event.type !== 'mousedown' ||\n (this.popupObject.element && this.popupObject.element.contains(target)))) && event.type !== 'touchstart') {\n event.preventDefault();\n }\n if (!(closest(target, '[id=\"' + (this.popupObject && this.popupObject.element.id + '\"]'))) && target !== this.inputElement\n && target !== this.timeIcon && !isNullOrUndefined(this.inputWrapper) && target !== this.inputWrapper.container) {\n if (this.isTimePopupOpen()) {\n this.hide(event);\n this.focusOut();\n }\n }\n else if (target !== this.inputElement) {\n if (!Browser.isDevice) {\n this.isPreventBlur = ((document.activeElement === this.inputElement) && (Browser.isIE || Browser.info.name === 'edge')\n && target === this.popupObject.element);\n }\n }\n };\n DateTimePicker.prototype.isTimePopupOpen = function () {\n return (this.dateTimeWrapper && this.dateTimeWrapper.classList.contains('' + ROOT)) ? true : false;\n };\n DateTimePicker.prototype.isDatePopupOpen = function () {\n return (this.popupWrapper && this.popupWrapper.classList.contains('' + DATETIMEPOPUPWRAPPER)) ? true : false;\n };\n DateTimePicker.prototype.renderPopup = function () {\n var _this = this;\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n if (Browser.isDevice) {\n this.timeModal = createElement('div');\n this.timeModal.className = '' + ROOT + ' e-time-modal';\n document.body.className += ' ' + OVERFLOW;\n this.timeModal.style.display = 'block';\n document.body.appendChild(this.timeModal);\n }\n var offset = 4;\n this.popupObject = new Popup(this.dateTimeWrapper, {\n width: this.setPopupWidth(),\n zIndex: this.zIndex,\n targetType: 'container',\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n enableRtl: this.enableRtl,\n offsetY: offset,\n open: function () {\n _this.dateTimeWrapper.style.visibility = 'visible';\n addClass([_this.timeIcon], ACTIVE);\n if (!Browser.isDevice) {\n _this.timekeyConfigure = extend(_this.timekeyConfigure, _this.keyConfigs);\n _this.inputEvent = new KeyboardEvents(_this.inputWrapper.container, {\n keyAction: _this.timeKeyActionHandle.bind(_this),\n keyConfigs: _this.timekeyConfigure,\n eventName: 'keydown'\n });\n }\n }, close: function () {\n removeClass([_this.timeIcon], ACTIVE);\n _this.unWireTimeListEvents();\n _this.inputElement.removeAttribute('aria-activedescendant');\n remove(_this.popupObject.element);\n _this.popupObject.destroy();\n _this.dateTimeWrapper.innerHTML = '';\n _this.listWrapper = _this.dateTimeWrapper = undefined;\n if (_this.inputEvent) {\n _this.inputEvent.destroy();\n }\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n if (Browser.isDevice && this.fullScreenMode) {\n this.popupObject.element.style.display = \"flex\";\n this.popupObject.element.style.maxHeight = \"100%\";\n this.popupObject.element.style.width = \"100%\";\n }\n else {\n this.popupObject.element.style.maxHeight = POPUPDIMENSION;\n }\n if (Browser.isDevice && this.fullScreenMode) {\n var modelWrapper = createElement('div', { className: 'e-datetime-mob-popup-wrap' });\n var modelHeader = this.createElement('div', { className: 'e-model-header' });\n var modelTitleSpan = this.createElement(\"span\", { className: \"e-model-title\" });\n modelTitleSpan.textContent = \"Select time\";\n var modelCloseIcon = this.createElement(\"span\", { className: \"e-popup-close\" });\n EventHandler.add(modelCloseIcon, 'mousedown touchstart', this.dateTimeCloseHandler, this);\n var timeContent = this.dateTimeWrapper.querySelector(\".e-content\");\n modelHeader.appendChild(modelCloseIcon);\n modelHeader.appendChild(modelTitleSpan);\n modelWrapper.appendChild(modelHeader);\n modelWrapper.appendChild(timeContent);\n this.dateTimeWrapper.insertBefore(modelWrapper, this.dateTimeWrapper.firstElementChild);\n }\n };\n DateTimePicker.prototype.dateTimeCloseHandler = function (e) {\n this.hide();\n };\n DateTimePicker.prototype.setDimension = function (width) {\n if (typeof width === 'number') {\n width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n // eslint-disable-next-line no-self-assign\n width = width;\n }\n else {\n width = '100%';\n }\n return width;\n };\n DateTimePicker.prototype.setPopupWidth = function () {\n var width = this.setDimension(this.width);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n DateTimePicker.prototype.wireTimeListEvents = function () {\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n };\n DateTimePicker.prototype.unWireTimeListEvents = function () {\n if (this.listWrapper) {\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\n EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n }\n };\n DateTimePicker.prototype.onMouseOver = function (event) {\n var currentLi = closest(event.target, '.' + LISTCLASS);\n this.setTimeHover(currentLi, HOVER);\n };\n DateTimePicker.prototype.onMouseLeave = function () {\n this.removeTimeHover(HOVER);\n };\n DateTimePicker.prototype.setTimeHover = function (li, className) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\n this.removeTimeHover(className);\n addClass([li], className);\n }\n };\n DateTimePicker.prototype.getPopupHeight = function () {\n var height = parseInt(POPUPDIMENSION, 10);\n var popupHeight = this.dateTimeWrapper.getBoundingClientRect().height;\n if (Browser.isDevice && this.fullScreenMode) {\n return popupHeight;\n }\n else {\n return popupHeight > height ? height : popupHeight;\n }\n };\n DateTimePicker.prototype.changeEvent = function (e) {\n _super.prototype.changeEvent.call(this, e);\n if ((this.value && this.value.valueOf()) !== (this.previousDateTime && +this.previousDateTime.valueOf())) {\n this.valueWithMinutes = this.value;\n this.setInputValue('date');\n this.previousDateTime = this.value && new Date(+this.value);\n }\n };\n DateTimePicker.prototype.updateValue = function (e) {\n this.setInputValue('time');\n if (+this.previousDateTime !== +this.value) {\n this.changedArgs = {\n value: this.value, event: e || null,\n isInteracted: !isNullOrUndefined(e),\n element: this.element\n };\n this.addTimeSelection();\n this.trigger('change', this.changedArgs);\n this.previousDateTime = this.previousDate = this.value;\n }\n };\n DateTimePicker.prototype.setTimeScrollPosition = function () {\n var popupElement = this.selectedElement;\n if (!isNullOrUndefined(popupElement)) {\n this.findScrollTop(popupElement);\n }\n else if (this.dateTimeWrapper && this.checkDateValue(this.scrollTo)) {\n this.setScrollTo();\n }\n };\n DateTimePicker.prototype.findScrollTop = function (element) {\n var listHeight = this.getPopupHeight();\n var nextElement = element.nextElementSibling;\n var height = nextElement ? nextElement.offsetTop : element.offsetTop;\n var lineHeight = element.getBoundingClientRect().height;\n if ((height + element.offsetTop) > listHeight) {\n if (Browser.isDevice && this.fullScreenMode) {\n var listContent = this.dateTimeWrapper.querySelector('.e-content');\n listContent.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;\n }\n else {\n this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;\n }\n }\n else {\n this.dateTimeWrapper.scrollTop = 0;\n }\n };\n DateTimePicker.prototype.setScrollTo = function () {\n var element;\n var items = this.dateTimeWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length >= 0) {\n this.scrollInvoked = true;\n var initialTime = this.timeCollections[0];\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\n }\n else {\n this.dateTimeWrapper.scrollTop = 0;\n }\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else {\n this.dateTimeWrapper.scrollTop = 0;\n }\n };\n DateTimePicker.prototype.setInputValue = function (type) {\n if (type === 'date') {\n this.inputElement.value = this.previousElementValue = this.getFormattedValue(this.getFullDateTime());\n this.setProperties({ value: this.getFullDateTime() }, true);\n }\n else {\n var tempVal = this.getFormattedValue(new Date(this.timeCollections[this.activeIndex]));\n Input.setValue(tempVal, this.inputElement, this.floatLabelType, this.showClearButton);\n this.previousElementValue = this.inputElement.value;\n this.setProperties({ value: new Date(this.timeCollections[this.activeIndex]) }, true);\n if (this.enableMask) {\n this.createMask();\n }\n }\n this.updateIconState();\n };\n DateTimePicker.prototype.getFullDateTime = function () {\n var value = null;\n if (this.isDateObject(this.valueWithMinutes)) {\n value = this.combineDateTime(this.valueWithMinutes);\n }\n else {\n value = this.previousDate;\n }\n return this.validateMinMaxRange(value);\n };\n DateTimePicker.prototype.createMask = function () {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n };\n DateTimePicker.prototype.combineDateTime = function (value) {\n if (this.isDateObject(value)) {\n var day = this.previousDate.getDate();\n var month = this.previousDate.getMonth();\n var year = this.previousDate.getFullYear();\n var hour = value.getHours();\n var minutes = value.getMinutes();\n var seconds = value.getSeconds();\n return new Date(year, month, day, hour, minutes, seconds);\n }\n else {\n return this.previousDate;\n }\n };\n DateTimePicker.prototype.onMouseClick = function (event) {\n var target = event.target;\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\n if (li && li.classList.contains(LISTCLASS)) {\n this.timeValue = li.getAttribute('data-value');\n this.hide(event);\n }\n this.setSelection(li, event);\n };\n DateTimePicker.prototype.setSelection = function (li, event) {\n if (this.isValidLI(li) && !li.classList.contains(ACTIVE)) {\n this.selectedElement = li;\n var index = Array.prototype.slice.call(this.liCollections).indexOf(li);\n this.activeIndex = index;\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n addClass([this.selectedElement], ACTIVE);\n this.selectedElement.setAttribute('aria-selected', 'true');\n this.updateValue(event);\n }\n };\n DateTimePicker.prototype.setTimeActiveClass = function () {\n var collections = isNullOrUndefined(this.dateTimeWrapper) ? this.listWrapper : this.dateTimeWrapper;\n if (!isNullOrUndefined(collections)) {\n var items = collections.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n for (var i = 0; i < items.length; i++) {\n if (this.timeCollections[i] === +(this.valueWithMinutes)) {\n items[i].setAttribute('aria-selected', 'true');\n this.selectedElement = items[i];\n this.activeIndex = i;\n this.setTimeActiveDescendant();\n break;\n }\n }\n }\n }\n };\n DateTimePicker.prototype.setTimeActiveDescendant = function () {\n if (!isNullOrUndefined(this.selectedElement) && this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\n }\n else {\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n DateTimePicker.prototype.addTimeSelection = function () {\n this.selectedElement = null;\n this.removeTimeSelection();\n this.setTimeActiveClass();\n if (!isNullOrUndefined(this.selectedElement)) {\n addClass([this.selectedElement], ACTIVE);\n this.selectedElement.setAttribute('aria-selected', 'true');\n }\n };\n DateTimePicker.prototype.removeTimeSelection = function () {\n this.removeTimeHover(HOVER);\n if (!isNullOrUndefined(this.dateTimeWrapper)) {\n var items = this.dateTimeWrapper.querySelectorAll('.' + ACTIVE);\n if (items.length) {\n removeClass(items, ACTIVE);\n items[0].removeAttribute('aria-selected');\n }\n }\n };\n DateTimePicker.prototype.removeTimeHover = function (className) {\n var hoveredItem = this.getTimeHoverItem(className);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, className);\n }\n };\n DateTimePicker.prototype.getTimeHoverItem = function (className) {\n var collections = isNullOrUndefined(this.dateTimeWrapper) ? this.listWrapper : this.dateTimeWrapper;\n var hoveredItem;\n if (!isNullOrUndefined(collections)) {\n hoveredItem = collections.querySelectorAll('.' + className);\n }\n return hoveredItem;\n };\n DateTimePicker.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\n };\n DateTimePicker.prototype.calculateStartEnd = function (value, range, method) {\n var day = value.getDate();\n var month = value.getMonth();\n var year = value.getFullYear();\n var hours = value.getHours();\n var minutes = value.getMinutes();\n var seconds = value.getSeconds();\n var milliseconds = value.getMilliseconds();\n if (range) {\n if (method === 'starttime') {\n return new Date(year, month, day, 0, 0, 0);\n }\n else {\n return new Date(year, month, day, 23, 59, 59);\n }\n }\n else {\n return new Date(year, month, day, hours, minutes, seconds, milliseconds);\n }\n };\n DateTimePicker.prototype.startTime = function (date) {\n var tempStartValue;\n var start;\n var tempMin = this.min;\n var value = date === null ? new Date() : date;\n if ((+value.getDate() === +tempMin.getDate() && +value.getMonth() === +tempMin.getMonth() &&\n +value.getFullYear() === +tempMin.getFullYear()) || ((+new Date(value.getFullYear(), value.getMonth(), value.getDate())) <=\n +new Date(tempMin.getFullYear(), tempMin.getMonth(), tempMin.getDate()))) {\n start = false;\n tempStartValue = this.min;\n }\n else if (+value < +this.max && +value > +this.min) {\n start = true;\n tempStartValue = value;\n }\n else if (+value >= +this.max) {\n start = true;\n tempStartValue = this.max;\n }\n return this.calculateStartEnd(tempStartValue, start, 'starttime');\n };\n DateTimePicker.prototype.endTime = function (date) {\n var tempEndValue;\n var end;\n var tempMax = this.max;\n var value = date === null ? new Date() : date;\n if ((+value.getDate() === +tempMax.getDate() && +value.getMonth() === +tempMax.getMonth() &&\n +value.getFullYear() === +tempMax.getFullYear()) || (+new Date(value.getUTCFullYear(), value.getMonth(), value.getDate()) >=\n +new Date(tempMax.getFullYear(), tempMax.getMonth(), tempMax.getDate()))) {\n end = false;\n tempEndValue = this.max;\n }\n else if (+value < +this.max && +value > +this.min) {\n end = true;\n tempEndValue = value;\n }\n else if (+value <= +this.min) {\n end = true;\n tempEndValue = this.min;\n }\n return this.calculateStartEnd(tempEndValue, end, 'endtime');\n };\n DateTimePicker.prototype.hide = function (e) {\n var _this = this;\n if (this.popupObj || this.dateTimeWrapper) {\n this.preventArgs = {\n cancel: false,\n popup: this.popupObj || this.popupObject,\n event: e || null\n };\n var eventArgs = this.preventArgs;\n if (isNullOrUndefined(this.popupObj)) {\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.dateTimeCloseEventCallback(e, eventArgs);\n });\n }\n else {\n this.dateTimeCloseEventCallback(e, eventArgs);\n }\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n }\n };\n DateTimePicker.prototype.dateTimeCloseEventCallback = function (e, eventArgs) {\n this.preventArgs = eventArgs;\n if (!this.preventArgs.cancel) {\n if (this.isDatePopupOpen()) {\n _super.prototype.hide.call(this, e);\n }\n else if (this.isTimePopupOpen()) {\n this.closePopup(e);\n removeClass([document.body], OVERFLOW);\n if (Browser.isDevice && this.timeModal) {\n this.timeModal.style.display = 'none';\n this.timeModal.outerHTML = '';\n this.timeModal = null;\n }\n this.setTimeActiveDescendant();\n }\n }\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n this.setAllowEdit();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DateTimePicker.prototype.closePopup = function (e) {\n if (this.isTimePopupOpen() && this.popupObject) {\n var animModel = {\n name: 'FadeOut',\n duration: ANIMATIONDURATION,\n delay: 0\n };\n this.popupObject.hide(new Animation(animModel));\n this.inputWrapper.container.classList.remove(ICONANIMATION);\n attributes(this.inputElement, { 'aria-expanded': 'false' });\n this.inputElement.removeAttribute('aria-owns');\n EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);\n }\n };\n DateTimePicker.prototype.preRender = function () {\n this.checkFormat();\n this.dateTimeFormat = this.cldrDateTimeFormat();\n _super.prototype.preRender.call(this);\n removeClass([this.inputElementCopy], [ROOT]);\n };\n DateTimePicker.prototype.getProperty = function (date, val) {\n if (val === 'min') {\n this.setProperties({ min: this.validateValue(date.min) }, true);\n }\n else {\n this.setProperties({ max: this.validateValue(date.max) }, true);\n }\n };\n DateTimePicker.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['style', 'name', 'step', 'disabled', 'readonly', 'value', 'min', 'max', 'placeholder', 'type'];\n var value;\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'name':\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\n break;\n case 'step':\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' ||\n this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['min'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\n this.setProperties({ min: value }, !isDynamic);\n }\n }\n break;\n case 'disabled':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === 'true' ||\n this.inputElement.getAttribute(prop) === '' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['value'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\n this.setProperties({ value: value }, !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['max'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\n this.setProperties({ max: value }, !isDynamic);\n }\n }\n break;\n }\n }\n }\n };\n DateTimePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this) {\n modules.push({ args: [this], member: 'islamic' });\n }\n if (this.enableMask) {\n modules.push(this.maskedDateModule());\n }\n return modules;\n };\n DateTimePicker.prototype.maskedDateModule = function () {\n var modules = { args: [this], member: 'MaskedDateTime' };\n return modules;\n };\n DateTimePicker.prototype.getTimeActiveElement = function () {\n if (!isNullOrUndefined(this.dateTimeWrapper)) {\n return this.dateTimeWrapper.querySelectorAll('.' + ACTIVE);\n }\n else {\n return null;\n }\n };\n DateTimePicker.prototype.createDateObj = function (val) {\n return val instanceof Date ? val : null;\n };\n DateTimePicker.prototype.getDateObject = function (text) {\n if (!this.isNullOrEmpty(text)) {\n var dateValue = this.createDateObj(text);\n var value = this.valueWithMinutes;\n var status_1 = !isNullOrUndefined(value);\n if (this.checkDateValue(dateValue)) {\n var date = status_1 ? value.getDate() : DAY;\n var month = status_1 ? value.getMonth() : MONTH;\n var year = status_1 ? value.getFullYear() : YEAR;\n var hour = status_1 ? value.getHours() : HOUR;\n var minute = status_1 ? value.getMinutes() : MINUTE;\n var second = status_1 ? value.getSeconds() : SECOND;\n var millisecond = status_1 ? value.getMilliseconds() : MILLISECOND;\n if (!this.scrollInvoked) {\n return new Date(year, month, date, hour, minute, second, millisecond);\n }\n else {\n this.scrollInvoked = false;\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds(), dateValue.getMilliseconds());\n }\n }\n }\n return null;\n };\n DateTimePicker.prototype.findNextTimeElement = function (event) {\n var textVal = (this.inputElement).value;\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\n this.getDateObject(this.valueWithMinutes);\n var dateTimeVal = null;\n var listCount = this.liCollections.length;\n if (!isNullOrUndefined(this.activeIndex) || !isNullOrUndefined(this.checkDateValue(value))) {\n if (event.action === 'home') {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[0])));\n this.activeIndex = 0;\n }\n else if (event.action === 'end') {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[this.timeCollections.length - 1])));\n this.activeIndex = this.timeCollections.length - 1;\n }\n else {\n if (event.action === 'down') {\n for (var i = 0; i < listCount; i++) {\n if (+value < this.timeCollections[i]) {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[i])));\n this.activeIndex = i;\n break;\n }\n }\n }\n else {\n for (var i = listCount - 1; i >= 0; i--) {\n if (+value > this.timeCollections[i]) {\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[i])));\n this.activeIndex = i;\n break;\n }\n }\n }\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.timeElementValue(isNullOrUndefined(dateTimeVal) ? null : new Date(dateTimeVal));\n }\n };\n DateTimePicker.prototype.setTimeValue = function (date, value) {\n var dateString;\n var time;\n var val = this.validateMinMaxRange(value);\n var newval = this.createDateObj(val);\n if (this.getFormattedValue(newval) !== (!isNullOrUndefined(this.value) ? this.getFormattedValue(this.value) : null)) {\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\n time = new Date(+this.valueWithMinutes);\n }\n else {\n if (this.strictMode) {\n //for strict mode case, when value not present within a range. Reset the nearest range value.\n date = newval;\n }\n this.valueWithMinutes = this.checkDateValue(date);\n time = new Date(+this.valueWithMinutes);\n }\n if (this.calendarMode === 'Gregorian') {\n dateString = this.globalize.formatDate(time, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.cldrDateTimeFormat(),\n type: 'dateTime', skeleton: 'yMd'\n });\n }\n else {\n dateString = this.globalize.formatDate(time, {\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.cldrDateTimeFormat(),\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\n });\n }\n if (!this.strictMode && isNullOrUndefined(time)) {\n Input.setValue(dateString, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(dateString, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n return time;\n };\n DateTimePicker.prototype.timeElementValue = function (value) {\n if (!isNullOrUndefined(this.checkDateValue(value)) && !this.isNullOrEmpty(value)) {\n var date = value instanceof Date ? value : this.getDateObject(value);\n return this.setTimeValue(date, value);\n }\n return null;\n };\n DateTimePicker.prototype.timeKeyHandler = function (event) {\n if (isNullOrUndefined(this.step) || this.step <= 0) {\n return;\n }\n var listCount = this.timeCollections.length;\n if (isNullOrUndefined(this.getTimeActiveElement()) || this.getTimeActiveElement().length === 0) {\n if (this.liCollections.length > 0) {\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\n this.activeIndex = 0;\n this.selectedElement = this.liCollections[0];\n this.timeElementValue(new Date(this.timeCollections[0]));\n }\n else {\n this.findNextTimeElement(event);\n }\n }\n }\n else {\n var nextItemValue = void 0;\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\n this.activeIndex = index = this.activeIndex === (listCount) ? 0 : this.activeIndex;\n this.activeIndex = index = this.activeIndex < 0 ? (listCount - 1) : this.activeIndex;\n nextItemValue = isNullOrUndefined(this.timeCollections[index]) ?\n this.timeCollections[0] : this.timeCollections[index];\n }\n else if (event.action === 'home') {\n this.activeIndex = 0;\n nextItemValue = this.timeCollections[0];\n }\n else if (event.action === 'end') {\n this.activeIndex = listCount - 1;\n nextItemValue = this.timeCollections[listCount - 1];\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.timeElementValue(new Date(nextItemValue));\n }\n this.isNavigate = true;\n this.setTimeHover(this.selectedElement, NAVIGATION);\n this.setTimeActiveDescendant();\n if (this.isTimePopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\n this.setTimeScrollPosition();\n }\n };\n DateTimePicker.prototype.timeKeyActionHandle = function (event) {\n if (this.enabled) {\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\n event.preventDefault();\n }\n switch (event.action) {\n case 'up':\n case 'down':\n case 'home':\n case 'end':\n this.timeKeyHandler(event);\n break;\n case 'enter':\n if (this.isNavigate) {\n this.selectedElement = this.liCollections[this.activeIndex];\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n this.setInputValue('time');\n if (+this.previousDateTime !== +this.value) {\n this.changedArgs.value = this.value;\n this.addTimeSelection();\n this.previousDateTime = this.value;\n }\n }\n else {\n this.updateValue(event);\n }\n this.hide(event);\n addClass([this.inputWrapper.container], INPUTFOCUS);\n this.isNavigate = false;\n event.stopPropagation();\n break;\n case 'escape':\n this.hide(event);\n break;\n default:\n this.isNavigate = false;\n break;\n }\n }\n };\n DateTimePicker.prototype.inputKeyAction = function (event) {\n switch (event.action) {\n case 'altDownArrow':\n this.strictModeUpdate();\n this.updateInput();\n this.toggle(event);\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DateTimePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {DateTimePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n\n */\n DateTimePicker.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 'value':\n this.isDynamicValueChanged = true;\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n newProp.value = this.validateValue(newProp.value);\n if (this.enableMask) {\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(this.getFormattedValue(newProp.value), this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.valueWithMinutes = newProp.value;\n this.setProperties({ value: newProp.value }, true);\n if (this.popupObj) {\n this.popupUpdate();\n }\n this.previousDateTime = new Date(this.inputElement.value);\n this.updateInput();\n this.changeTrigger(null);\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n if (this.enableMask && this.value) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'min':\n case 'max':\n this.getProperty(newProp, prop);\n this.updateInput();\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n break;\n case 'cssClass':\n if (!isNullOrUndefined(oldProp.cssClass)) {\n oldProp.cssClass = (oldProp.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newProp.cssClass)) {\n newProp.cssClass = (newProp.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newProp.cssClass, [this.inputWrapper.container], oldProp.cssClass);\n if (this.dateTimeWrapper) {\n Input.setCssClass(newProp.cssClass, [this.dateTimeWrapper], oldProp.cssClass);\n }\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.l10n.getConstant('placeholder'), this.inputElement);\n this.dateTimeFormat = this.cldrDateTimeFormat();\n _super.prototype.updateInput.call(this);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkAttributes(true);\n break;\n case 'format':\n this.setProperties({ format: newProp.format }, true);\n this.checkFormat();\n this.dateTimeFormat = this.formatString;\n this.setValue();\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n if (!this.value) {\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n }\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.inputElement);\n if (!this.enabled) {\n this.inputElement.tabIndex = -1;\n }\n break;\n case 'strictMode':\n this.invalidValueString = null;\n this.updateInput();\n break;\n case 'width':\n this.setWidth(newProp.width);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');\n }\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-date-time-icon');\n }\n break;\n case 'scrollTo':\n if (this.checkDateValue(new Date(this.checkValue(newProp.scrollTo)))) {\n if (this.dateTimeWrapper) {\n this.setScrollTo();\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkValue(newProp.scrollTo))) }, true);\n }\n else {\n this.setProperties({ scrollTo: null }, true);\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.maskedDateValue = '';\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n }\n break;\n default:\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n break;\n }\n if (!this.isDynamicValueChanged) {\n this.hide(null);\n }\n this.isDynamicValueChanged = false;\n }\n };\n /**\n * To get component name.\n *\n * @returns {string} Returns the component name.\n * @private\n */\n DateTimePicker.prototype.getModuleName = function () {\n return 'datetimepicker';\n };\n DateTimePicker.prototype.restoreValue = function () {\n this.previousDateTime = this.previousDate;\n this.currentDate = this.value ? this.value : new Date();\n this.valueWithMinutes = this.value;\n this.previousDate = this.value;\n this.previousElementValue = this.previousElementValue = (isNullOrUndefined(this.inputValueCopy)) ? '' :\n this.getFormattedValue(this.inputValueCopy);\n };\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"timeFormat\", void 0);\n __decorate([\n Property(30)\n ], DateTimePicker.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"scrollTo\", void 0);\n __decorate([\n Property(1000)\n ], DateTimePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property({})\n ], DateTimePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], DateTimePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"isMultiSelection\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"values\", void 0);\n __decorate([\n Property(true)\n ], DateTimePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"fullScreenMode\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"serverTimezoneOffset\", void 0);\n __decorate([\n Property(new Date(1900, 0, 1))\n ], DateTimePicker.prototype, \"min\", void 0);\n __decorate([\n Property(new Date(2099, 11, 31))\n ], DateTimePicker.prototype, \"max\", void 0);\n __decorate([\n Property(null)\n ], DateTimePicker.prototype, \"firstDayOfWeek\", void 0);\n __decorate([\n Property('Gregorian')\n ], DateTimePicker.prototype, \"calendarMode\", void 0);\n __decorate([\n Property('Month')\n ], DateTimePicker.prototype, \"start\", void 0);\n __decorate([\n Property('Month')\n ], DateTimePicker.prototype, \"depth\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"weekNumber\", void 0);\n __decorate([\n Property(true)\n ], DateTimePicker.prototype, \"showTodayButton\", void 0);\n __decorate([\n Property('Short')\n ], DateTimePicker.prototype, \"dayHeaderFormat\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], DateTimePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], DateTimePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DateTimePicker.prototype, \"destroyed\", void 0);\n DateTimePicker = __decorate([\n NotifyPropertyChanges\n ], DateTimePicker);\n return DateTimePicker;\n}(DatePicker));\nexport { DateTimePicker };\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 *\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n *\n * @param {DataOptions} ds?\n * @param 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 *\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 *\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param ds\n * @param query\n * @param 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 *\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 *\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 *\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 *\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 *\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 *\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n * @param e.validate\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 *\n * @param {Object[]} ds\n * @param e\n * @param {string} } type\n * @param e.field\n * @param e.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 *\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 *\n * @param {Object[]} ds\n * @param e\n * @param {Object} b\n * @param e.comparer\n * @param e.fieldName\n * @param query\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 *\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 *\n * @param {Object[]} ds\n * @param e\n * @param {number} } pageIndex\n * @param e.pageSize\n * @param {Query} query\n * @param e.pageIndex\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 *\n * @param {Object[]} ds\n * @param e\n * @param {number} } end\n * @param e.start\n * @param e.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 *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\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 *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\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 *\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n * @param e.fieldNames\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 *\n * @param {DataManager} dm\n * @param {Object} data\n * @param tableName\n * @param query\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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param 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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param 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 *\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 *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param 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 *\n * @param {Object} req\n * @param request\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 *\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 * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param 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 *\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 *\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 *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param query\n * @param original\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 *\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 *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n * @param query\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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n * @param query\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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n * @param query\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 *\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 *\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 *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param 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 if (predicate.operator !== 'like') {\n val = encodeURIComponent(val);\n }\n if (predicate.operator !== 'wildcard' && predicate.operator !== 'like') {\n val = '\\'' + val + '\\'';\n }\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 if (predicate.operator === 'isempty' || predicate.operator === 'isnull' || predicate.operator === 'isnotempty' ||\n predicate.operator === 'isnotnull') {\n operator = predicate.operator.indexOf('isnot') !== -1 ? DataUtil.odBiOperator['notequal'] : DataUtil.odBiOperator['equal'];\n val = predicate.operator === 'isnull' || predicate.operator === 'isnotnull' ? null : '\\'\\'';\n }\n else {\n operator = DataUtil.odBiOperator[predicate.operator];\n }\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 === 'like') {\n val = val;\n if (val.indexOf('%') !== -1) {\n if (val.charAt(0) === '%' && val.lastIndexOf('%') < 2) {\n val = val.substring(1, val.length);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n }\n else if (val.charAt(val.length - 1) === '%' && val.indexOf('%') > val.length - 3) {\n val = val.substring(0, val.length - 1);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n }\n else if (val.lastIndexOf('%') !== val.indexOf('%') && val.lastIndexOf('%') > val.indexOf('%') + 1) {\n val = val.substring(val.indexOf('%') + 1, val.lastIndexOf('%'));\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n }\n else if (operator === 'wildcard') {\n val = val;\n if (val.indexOf('*') !== -1) {\n var splittedStringValue = val.split('*');\n var splittedValue = void 0;\n var count = 0;\n if (val.indexOf('*') !== 0 && splittedStringValue[0].indexOf('%3f') === -1 &&\n splittedStringValue[0].indexOf('?') === -1) {\n splittedValue = splittedStringValue[0];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (val.lastIndexOf('*') !== val.length - 1 && splittedStringValue[splittedStringValue.length - 1].indexOf('%3f') === -1 &&\n splittedStringValue[splittedStringValue.length - 1].indexOf('?') === -1) {\n splittedValue = splittedStringValue[splittedStringValue.length - 1];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n if (count > 0) {\n returnValue += ' and ';\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (splittedStringValue.length > 2) {\n for (var i = 1; i < splittedStringValue.length - 1; i++) {\n if (splittedStringValue[i].indexOf('%3f') === -1 && splittedStringValue[i].indexOf('?') === -1) {\n splittedValue = splittedStringValue[i];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (count > 0) {\n returnValue += ' and ';\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = splittedValue;\n splittedValue = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n }\n }\n if (count === 0) {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n else {\n operator = 'wildcard';\n }\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n if (operator !== 'wildcard') {\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n }\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 *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param 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 *\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n * @param query\n * @param 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 *\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 *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.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 *\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 *\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 *\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 *\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 *\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 *\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 *\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 *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n * @param 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 *\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 * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param 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 *\n * @param {Object} req\n * @param request\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 *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param 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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param 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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @param query\n * @param original\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 *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\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 *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\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 *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\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 *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @param org\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 *\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 *\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 *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param 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 *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.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 *\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 *\n * @param {string} e\n * @param e.selects\n * @param e.expands\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 *\n * @param {string} e\n * @param distinctFields\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 *\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 *\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 *\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 * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n var metaV4Name = '@context';\n if ((request && request.type === 'GET') && !this.rootUrl && (data[metaName] || data[metaV4Name])) {\n var dataUrl = data[metaName] ? data[metaName].split('/$metadata#') : data[metaV4Name].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 var dataV4Count = '@count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n else if (dataV4Count in data) {\n count = data[dataV4Count];\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 *\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 *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param 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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param 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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param 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 *\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 *\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 * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param 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 *\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 *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param 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 *\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 *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\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 *\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: function () { },\n addRecord: function () { },\n updateRecord: function () { },\n deleteRecord: function () { },\n batchUpdate: 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 *\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 /* eslint-disable @typescript-eslint/no-empty-function */\n // tslint:disable-next-line:no-empty\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n /* eslint-enable @typescript-eslint/no-empty-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 *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param datamanager\n * @param 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 // tslint:disable-next-line:no-string-literal\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 *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param resData\n * @param ds\n * @param query\n * @param xhr\n * @param 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 *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param e.key\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 // tslint:disable-next-line:typedef\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 *\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n *\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @param adaptor\n * @param timeStamp\n * @param 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 = 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 *\n * @param {string} url\n * @param {Query} query?\n * @param 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 *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n * @param query\n * @param hierarchyFilters\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var 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 /* eslint-disable prefer-spread */\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\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 * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param 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 /* eslint-disable prefer-spread */\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\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 *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n * @param 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 *\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 *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param 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 *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param 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 *\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","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { Ajax } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Predicate, 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 *\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @param dataSource\n * @param query\n * @param 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.persistQuery = {};\n this.isInitialLoad = false;\n this.requests = [];\n this.isInitialLoad = true;\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 if (!dataSource.enablePersistence) {\n dataSource.enablePersistence = false;\n }\n if (!dataSource.id) {\n dataSource.id = '';\n }\n if (!dataSource.ignoreOnPersist) {\n dataSource.ignoreOnPersist = [];\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 enablePersistence: dataSource.enablePersistence,\n id: dataSource.id,\n ignoreOnPersist: dataSource.ignoreOnPersist\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 (this.dataSource.enablePersistence && this.dataSource.id) {\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\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 * Get the queries maintained in the persisted state.\n * @param {string} id - The identifier of the persisted query to retrieve.\n * @returns {object} The persisted data object.\n */\n DataManager.prototype.getPersistedData = function (id) {\n var persistedData = localStorage.getItem(id || this.dataSource.id);\n return JSON.parse(persistedData);\n };\n /**\n * Set the queries to be maintained in the persisted state.\n * @param {Event} e - The event parameter that triggers the setPersistData method.\n * @param {string} id - The identifier of the persisted query to set.\n * @param {object} persistData - The data to be persisted.\n * @returns {void} .\n */\n DataManager.prototype.setPersistData = function (e, id, persistData) {\n localStorage.setItem(id || this.dataSource.id, JSON.stringify(persistData || this.persistQuery));\n };\n DataManager.prototype.setPersistQuery = function (query) {\n var _this = this;\n var persistedQuery = this.getPersistedData();\n if (this.isInitialLoad && persistedQuery && Object.keys(persistedQuery).length) {\n this.persistQuery = persistedQuery;\n this.persistQuery.queries = this.persistQuery.queries.filter(function (query) {\n if (_this.dataSource.ignoreOnPersist && _this.dataSource.ignoreOnPersist.length) {\n if (query.fn && _this.dataSource.ignoreOnPersist.some(function (keyword) { return query.fn === keyword; })) {\n return false; // Exclude the matching query\n }\n }\n if (query.fn === 'onWhere') {\n var e = query.e;\n if (e && e.isComplex && e.predicates instanceof Array) {\n var predicates = e.predicates.map(function (predicateObj) {\n var field = predicateObj.field, operator = predicateObj.operator, value = predicateObj.value, ignoreCase = predicateObj.ignoreCase, ignoreAccent = predicateObj.ignoreAccent, matchCase = predicateObj.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n });\n query.e = new Predicate(predicates[0], e.condition, predicates.slice(1));\n }\n }\n return true; // Keep all other queries\n });\n var newQuery = extend(new Query(), this.persistQuery);\n this.isInitialLoad = false;\n return (newQuery);\n }\n else {\n this.persistQuery = query;\n this.isInitialLoad = false;\n return query;\n }\n };\n /**\n * Overrides DataManager's default query with given query.\n *\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 *\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 if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\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 *\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 (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\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 /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n (window.setImmediate || window.setTimeout)(fn, 0);\n /* eslint-enable @typescript-eslint/no-explicit-any */\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 // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\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 *\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 * @param original\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 // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\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 *\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 * @param position\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 *\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 *\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 * @param original\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 // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\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 DataManager.prototype.failureFunc = function (e) {\n this.ajaxDeffered.reject([{ error: e }]);\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 DataManager.prototype.clearPersistence = function () {\n window.removeEventListener('unload', this.setPersistData.bind(this));\n this.dataSource.enablePersistence = false;\n this.persistQuery = {};\n window.localStorage.setItem(this.dataSource.id, '[]');\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","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { 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 *\n * @param {string|string[]} from?\n * @param 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 *\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 *\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 *\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 *\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 *\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 *\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 * @param fields\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 *\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 *\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 * @param ignoreAccent\n * @param matchCase\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 *\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 * @param ignoreAccent\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 *\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 isFromGroup\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 *\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 isFromGroup\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 *\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 *\n * @param {string} fieldName - Defines the column field.\n * @param fn\n * @param format\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 *\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 *\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 *\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 *\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 *\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 *\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 *\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 *\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 *\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 *\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 *\n * @param {string|Predicate} field\n * @param {string} operator\n * @param {string|number|boolean|Predicate|Predicate[]} value\n * @param {boolean=false} ignoreCase\n * @param ignoreAccent\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 *\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 *\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 * @param ignoreCase\n * @param ignoreAccent\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 *\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 *\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 * @param ignoreCase\n * @param ignoreAccent\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 * Adds n-number of new predicates on existing predicate with “and not” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.ornot = 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 not');\n };\n /**\n * Adds new predicate on existing predicate with “and not” condition.\n *\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 * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.ornot = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'ornot', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “and not” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.andnot = 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 not');\n };\n /**\n * Adds new predicate on existing predicate with “and not” condition.\n *\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 * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.andnot = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'andnot', ignoreCase, ignoreAccent);\n };\n /**\n * Converts plain JavaScript object to Predicate object.\n *\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 *\n * @param {Object} record - Defines the datasource record.\n */\n Predicate.prototype.validate = function (record) {\n var predicate = this.predicates ? this.predicates : [];\n var ret;\n var isAnd;\n if (!this.isComplex && this.comparer) {\n if (this.condition && this.condition.indexOf('not') !== -1) {\n this.condition = this.condition.split('not')[0] === '' ? undefined : this.condition.split('not')[0];\n return !this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n else {\n return this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n }\n if (this.condition && this.condition.indexOf('not') !== -1) {\n isAnd = this.condition.indexOf('and') !== -1;\n }\n else {\n isAnd = this.condition === 'and';\n }\n for (var i = 0; i < predicate.length; i++) {\n if (i > 0 && this.condition && this.condition.indexOf('not') !== -1) {\n predicate[i].condition = predicate[i].condition ? predicate[i].condition + 'not' : 'not';\n }\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","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { 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 *\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 *\n * @param {Function|string|string[]|number} value\n * @param {Object} inst?\n * @param 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 *\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 not ends with given string.\n *\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.notEndsWith = 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 *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param start\n */\n DataUtil.startsWith = function (input, start) {\n return input.slice(0, start.length) === start;\n };\n /**\n * Returns true if the input string not starts with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param start\n */\n DataUtil.notStartsWith = function (input, start) {\n return input.slice(0, start.length) !== start;\n };\n /**\n * Returns true if the input string pattern(wildcard) matches with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param pattern\n */\n DataUtil.wildCard = function (input, pattern) {\n var asteriskSplit;\n var optionalSplit;\n // special character allowed search\n if (pattern.indexOf('(') !== -1) {\n pattern = pattern.split('(').join('[(]');\n }\n if (pattern.indexOf(')') !== -1) {\n pattern = pattern.split(')').join('[)]');\n }\n if (pattern.indexOf('*') !== -1) {\n if (pattern.charAt(0) !== '*') {\n pattern = '^' + pattern;\n }\n if (pattern.charAt(pattern.length - 1) !== '*') {\n pattern = pattern + '$';\n }\n asteriskSplit = pattern.split('*');\n for (var i = 0; i < asteriskSplit.length; i++) {\n if (asteriskSplit[i].indexOf('.') === -1) {\n asteriskSplit[i] = asteriskSplit[i] + '.*';\n }\n else {\n asteriskSplit[i] = asteriskSplit[i] + '*';\n }\n }\n pattern = asteriskSplit.join('');\n }\n if (pattern.indexOf('%3f') !== -1 || pattern.indexOf('?') !== -1) {\n optionalSplit = pattern.indexOf('%3f') !== -1 ? pattern.split('%3f') : pattern.split('?');\n pattern = optionalSplit.join('.');\n }\n // eslint-disable-next-line security/detect-non-literal-regexp\n var regexPattern = new RegExp(pattern, 'g');\n return regexPattern.test(input);\n };\n /**\n * Returns true if the input string pattern(like) matches with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param pattern\n */\n DataUtil.like = function (input, pattern) {\n if (pattern.indexOf('%') !== -1) {\n if (pattern.charAt(0) === '%' && pattern.lastIndexOf('%') < 2) {\n pattern = pattern.substring(1, pattern.length);\n return DataUtil.startsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern));\n }\n else if (pattern.charAt(pattern.length - 1) === '%' && pattern.indexOf('%') > pattern.length - 3) {\n pattern = pattern.substring(0, pattern.length - 1);\n return DataUtil.endsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern));\n }\n else if (pattern.lastIndexOf('%') !== pattern.indexOf('%') && pattern.lastIndexOf('%') > pattern.indexOf('%') + 1) {\n pattern = pattern.substring(pattern.indexOf('%') + 1, pattern.lastIndexOf('%'));\n return input.indexOf(pattern) !== -1;\n }\n else {\n return input.indexOf(pattern) !== -1;\n }\n }\n else {\n return false;\n }\n };\n /**\n * To return the sorting function based on the string.\n *\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 *\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 *\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 *\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 *\n * @param {Object[]} jsonArray\n * @param {string} field?\n * @param {Object[]} agg?\n * @param {number} level?\n * @param {Object[]} groupDs?\n * @param field\n * @param aggregates\n * @param level\n * @param groupDs\n * @param format\n * @param isLazyLoad\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 *\n * @param {string} fKey\n * @param {string} from\n * @param {Object[]} source\n * @param {Group} lookup?\n * @param {string} pKey?\n * @param lookup\n * @param 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 *\n * @param {Object} obj\n * @param {string[]} fields?\n * @param {string} prefix?\n * @param fields\n * @param 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 *\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 var lowerCaseNameSpace = nameSpace.charAt(0).toLowerCase() + nameSpace.slice(1);\n var upperCaseNameSpace = nameSpace.charAt(0).toUpperCase() + nameSpace.slice(1);\n if (!isNullOrUndefined(from[nameSpace])) {\n return from[nameSpace];\n }\n else {\n if (!isNullOrUndefined(from[lowerCaseNameSpace])) {\n return from[lowerCaseNameSpace];\n }\n else if (!isNullOrUndefined(from[upperCaseNameSpace])) {\n return from[upperCaseNameSpace];\n }\n else {\n return null;\n }\n }\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 if (value === undefined) {\n var casing = splits[i].charAt(0).toUpperCase() + splits[i].slice(1);\n value = from[casing] || from[casing.charAt(0).toLowerCase() + casing.slice(1)] || null;\n }\n from = value;\n }\n return value;\n };\n /**\n * To set value for the nameSpace in desired object.\n *\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 *\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 *\n * @param {Object} adaptor\n * @param {string} fnName\n * @param {Object} param1?\n * @param {Object} param2?\n * @param param1\n * @param 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 *\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 *\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 *\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 *\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 *\n * @param {Object[]} json\n * @param {string} field\n * @param fieldName\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 *\n * @param {string} datamanager\n * @param dm\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 /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n var result = sampledata.executeLocal(query);\n /* eslint-enable @typescript-eslint/no-explicit-any */\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 // tslint:disable-next-line:no-string-literal\n search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], \n // tslint:disable-next-line:no-string-literal\n 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 // tslint:disable-next-line:typedef\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 *\n * @default null\n */\n DataUtil.serverTimezoneOffset = null;\n /**\n * Species whether are not to be parsed with serverTimezoneOffset value.\n *\n * @hidden\n */\n DataUtil.timeZoneHandling = true;\n /**\n * Throw error with the given string as message.\n *\n * @param {string} er\n * @param error\n */\n DataUtil.throwError = function (error) {\n try {\n throw new Error(error);\n }\n catch (e) {\n // eslint-disable-next-line no-throw-literal\n throw e.message + '\\n' + e.stack;\n }\n };\n DataUtil.aggregates = {\n /**\n * Calculate sum of the given field in the data.\n *\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 *\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 *\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 *\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 *\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 *\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 *\n * @param {Object[]} ds\n * @param {string} field?\n * @param 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 'doesnotendwith': 'not endswith',\n 'doesnotstartwith': 'not startswith',\n 'doesnotcontain': 'not substringof',\n 'wildcard': 'wildcard',\n 'like': 'like'\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 'doesnotendwith': 'not endswith',\n 'doesnotstartwith': 'not startswith',\n 'doesnotcontain': 'not contains',\n 'wildcard': 'wildcard',\n 'like': 'like'\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 *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param {boolean} ignoreAccent?\n * @param ignoreCase\n * @param 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 *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\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 *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param 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 *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param 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 *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param 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 *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param 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 *\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\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 actual input not contains the given string.\n *\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n */\n doesnotcontain: 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 *\n * @param {string|number} actual\n * @returns boolean\n */\n isnotnull: function (actual) {\n return actual !== null && actual !== undefined;\n },\n /**\n * Returns true when the given input value is null.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnull: function (actual) {\n return actual === null || actual === undefined;\n },\n /**\n * Returns true when the actual input starts with the given string\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\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 not starts with the given string\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n doesnotstartwith: 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.notStartsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.notStartsWith(actual, expected);\n },\n /**\n * Returns true when the actual input like with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n like: 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.like(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.like(actual, expected);\n },\n /**\n * Returns true when the given input value is empty.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isempty: function (actual) {\n return actual === undefined || actual === '';\n },\n /**\n * Returns true when the given input value is not empty.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnotempty: function (actual) {\n return actual !== undefined && actual !== '';\n },\n /**\n * Returns true when the actual input pattern(wildcard) matches with the given string.\n *\n * @param {string|Date} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n wildcard: 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 || typeof actual === 'boolean') && expected && typeof actual !== 'object' &&\n DataUtil.wildCard(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return (actual || typeof actual === 'boolean') && expected && DataUtil.wildCard(actual, expected);\n },\n /**\n * Returns true when the actual input ends with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\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 * Returns true when the actual input not ends with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n doesnotendwith: 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.notEndsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.notEndsWith(actual, expected);\n },\n /**\n * It will return the filter operator based on the filter symbol.\n *\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 *\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 *\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 *\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 // eslint-disable-next-line no-useless-escape\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 *\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 *\n * @param {string} field\n * @param {string|Date} value\n * @hidden\n */\n jsonReviver: function (field, value) {\n if (typeof value === 'string') {\n // eslint-disable-next-line security/detect-unsafe-regex\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 // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\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 else if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n var arr = value.split(/[^0-9.]/);\n return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10));\n }\n }\n return value;\n },\n /**\n * Check wheather the given value is JSON or not.\n *\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 *\n * @param {string} value\n */\n isGuid: function (value) {\n // eslint-disable-next-line security/detect-unsafe-regex\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 *\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 *\n * @param {string} key\n * @param {Object} val\n * @param stringify\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 *\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 *\n * @param {string} key\n * @param {any} value\n * @hidden\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n /* tslint:disable-next-line:no-any */\n jsonDateReplacer: function (key, value) {\n /* eslint-enable @typescript-eslint/no-explicit-any */\n if (key === 'value' && value) {\n if (typeof value === 'string') {\n // eslint-disable-next-line security/detect-unsafe-regex\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 // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\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","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 EventHandler.add(window, 'resize', this.windowResize, 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 EventHandler.remove(window, 'resize', this.windowResize);\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 /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showPopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\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","/**\n * IncrementalSearch module file\n */\nvar 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 /* eslint-disable security/detect-object-injection */\n if (type === 'object' && (!data.isHeader && 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 /* eslint-disable security/detect-non-literal-regexp */\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 /* eslint-enable security/detect-non-literal-regexp */\n }\n return itemData;\n}\n/* eslint-enable security/detect-object-injection */\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 _this.isAddNewItemTemplate = 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 (typeof baseTemplate !== 'function' && 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 (typeof template !== 'function' && 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 if (this.getModuleName() === 'listbox' && templateName === 'noRecordsTemplate') {\n if (noDataCompTemp[i].nodeName === '#text') {\n var liElem = this.createElement('li');\n liElem.textContent = noDataCompTemp[i].textContent;\n liElem.classList.add('e-list-nrt');\n liElem.setAttribute('role', 'option');\n ele.appendChild(liElem);\n }\n else {\n noDataCompTemp[i].classList.add('e-list-nr-template');\n ele.appendChild(noDataCompTemp[i]);\n }\n }\n else {\n ele.appendChild(noDataCompTemp[i]);\n }\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') !== '' || componentLocale.getConstant('noRecordsTemplate') !== '') {\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 = void 0;\n if (this.properties.allowCustomValue && this.properties.value && this.properties.value instanceof Array && this.properties.value.length > 0) {\n item = this.typeOfData(this.properties.value);\n }\n else {\n item = this.typeOfData(this.listData);\n }\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 if (this.getModuleName() !== 'listbox') {\n ulElement.setAttribute('tabindex', '0');\n }\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 (typeof this.groupTemplate !== 'function' && 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 (typeof this.itemTemplate !== 'function' && 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 if (element) {\n element.dispatchEvent(evt);\n }\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 if (this.getModuleName() === 'listbox') {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content, attrs: { 'tabindex': '0' } });\n }\n else {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content });\n }\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 = typeof this.itemTemplate !== 'function' &&\n 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 this.isAddNewItemTemplate = true;\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 (this.getModuleName() === 'listbox' && this.isReact) {\n this.renderReactTemplates();\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) &&\n 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 if (htmlAttr === 'aria-label') {\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputElement.setAttribute('aria-label', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n this.inputWrapper.container.setAttribute('aria-label', this.htmlAttributes[\"\" + htmlAttr]);\n }\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 EventHandler.add(window, 'resize', this.windowResize, 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.windowResize = function () {\n if (this.isPopupOpen) {\n this.popupObj.refreshPosition(this.inputWrapper.container);\n }\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 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 = void 0;\n if (this.getModuleName() !== 'autocomplete' || this.getModuleName() === 'autocomplete' && this.isPopupOpen) {\n nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex]\n : this.liCollections[index];\n }\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 EventHandler.remove(window, 'resize', this.windowResize);\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 = li.getAttribute('data-value') !== \"null\" ? this.getFormattedValue(li.getAttribute('data-value')) : null;\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-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 (typeof dropdownTemplate !== 'function' && 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 (typeof this.valueTemplate !== 'function' && 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 append(valueCompTemp, this.valueTempElement);\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 if (this.getModuleName() === 'combobox') {\n this.updateIconState();\n }\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) {\n return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ?\n _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value;\n });\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownList.prototype.checkFieldValue = function (list, fieldValue) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\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.\n 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 _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.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)) {\n return;\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\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 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 if (this.popupObj) {\n this.popupObj.destroy();\n detach(this.popupObj.element);\n }\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 if (this.floatLabelType === 'Auto') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\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 if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputElement.setAttribute('aria-label', this.getModuleName());\n }\n else {\n attributes(this.targetElement(), { 'aria-label': this.getModuleName() });\n }\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 (typeof this.footerTemplate !== 'function' && 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 append(footerCompTemp, this.footer);\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 (typeof this.headerTemplate !== 'function' && 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 append(headerCompTemp, this.header);\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 = {\n ulElement: this_1.ulElement,\n list: this_1.listData, isUpdated: true\n };\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n */\n DropDownList.prototype.showPopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n if (this.isReact && this.getModuleName() === 'combobox' && this.itemTemplate && this.isCustomFilter && this.isAddNewItemTemplate) {\n this.renderList();\n this.isAddNewItemTemplate = false;\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]) ||\n 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 if (this.floatLabelType === 'Auto') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\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 if (this.floatLabelType === 'Auto' && this.inputElement.value === '') {\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n }\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 this.actionData.ulElement = null;\n if (this.inputElement && !isNullOrUndefined(this.inputElement.onchange)) {\n this.inputElement.onchange = null;\n }\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 { 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.replace(/\\s+/g, ' ').trim().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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\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 enter: 'enter'\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 case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\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.replace(/\\s+/g, ' ').trim().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 case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\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};\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.replace(/\\s+/g, ' ').trim().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.replace(/\\s+/g, ' ').trim().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 || this.value === '') {\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 var ctrlBtn = select('.' + CTRLBTN, this.container);\n if (ctrlBtn) {\n EventHandler.add(ctrlBtn, 'keydown', this.ctrlBtnKeyDown, this);\n }\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.ctrlBtnKeyDown = function (e) {\n if (e.keyCode === 13) {\n var applyBtn = select('.' + APPLY, this.container);\n if (applyBtn) {\n var cValue = this.rgbToHex(this.rgb);\n this.triggerChangeEvent(cValue);\n }\n this.splitBtn.element.focus();\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.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 var popup = closest(this.hueSlider.element, '.e-color-picker');\n var numericElemColl = popup.querySelectorAll('.e-numerictextbox');\n for (var i = 0; i < numericElemColl.length; i++) {\n getInstance(numericElemColl[i], NumericTextBox).destroy();\n }\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 var ctrlBtn = select('.' + CTRLBTN, this.container);\n if (ctrlBtn) {\n EventHandler.remove(ctrlBtn, 'keydown', this.ctrlBtnKeyDown);\n }\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.replace(/\\s+/g, ' ').trim().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 if (this.noColor && this.mode === 'Palette' && this.value === '') {\n var preview = this.splitBtn && select('.' + SPLITPREVIEW, this.splitBtn.element);\n preview.style.backgroundColor = '';\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 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) {\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)) {\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 if (args.floatLabelType === 'Auto') {\n setTimeout(function () {\n Input.calculateWidth(args.element, parent);\n }, 80);\n }\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 if (args.floatLabelType === 'Auto' && args.element.value === '') {\n setTimeout(function () {\n Input.calculateWidth(args.element, parent);\n }, 80);\n }\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 (!isNullOrUndefined(button)) {\n if (value && !readonly) {\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n else {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\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 if (!isNullOrUndefined(button)) {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n button = !isNullOrUndefined(element) && element.classList.contains('e-combobox') ? null : button;\n }\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 if (floatLabelType === 'Auto' && value === '') {\n calculateWidth(element, element.parentElement);\n }\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'), 10);\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[parseInt(i.toString())].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[parseInt(index.toString())].addEventListener('mousedown', _onMouseDownRipple, false);\n buttons[parseInt(index.toString())].addEventListener('mouseup', _onMouseUpRipple, false);\n }\n }\n else if (buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[parseInt(index.toString())].removeEventListener('mousedown', _onMouseDownRipple, this);\n buttons[parseInt(index.toString())].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[parseInt(i.toString())]);\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, 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 if (this.isAngular && this.angularTagName === 'EJS-NUMERICTEXTBOX' && this.cloneElement.id.length > 0) {\n attributes(this.hiddenInput, { 'name': this.cloneElement.id });\n }\n else {\n attributes(this.hiddenInput, { 'name': this.inputName });\n }\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 || this.prevValue !== this.inputValue) {\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.inputValue = value;\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 security/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 if (this.spinUp) {\n EventHandler.remove(this.spinUp, 'mouseleave', this.mouseUpClick);\n }\n if (this.spinDown) {\n EventHandler.remove(this.spinDown, 'mouseleave', this.mouseUpClick);\n }\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","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 *\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 *\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.isMaterial3 = this.getTheme(this.sliderContainer) === 'Material3'\n || this.getTheme(this.sliderContainer) === 'Material3-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.isMaterial3) && 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.isMaterial3) && 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 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.isMaterial3) && !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.isMaterial3 || this.isBootstrap4 || this.isTailwind || this.isBootstrap5 || this.isFluent,\n cssClass: classNames.sliderTooltip,\n height: (this.isMaterial || this.isMaterial3) ? 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 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 || this.isMaterial3) {\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 if (this.min > this.max) {\n start = this.makeRoundNumber(start + smallStep, decimalPoints);\n }\n else {\n start = this.makeRoundNumber(start - smallStep, decimalPoints);\n }\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 < this.max ? this.min.toString() : this.max.toString());\n }\n else if ((args.keyCode === 35)) {\n value = parseFloat(this.min < this.max ? this.max.toString() : this.min.toString());\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n this.changeHandleValue(value);\n if ((this.isMaterial || this.isMaterial3) && !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 = this.min > this.max ? this.handlePos1 + 'px' : '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.min > this.max ? this.element.clientHeight - this.handlePos1 + 'px' : this.handlePos1 + 'px' });\n }\n else {\n this.rangeBar.style.bottom = this.min > this.max ? this.handlePos2 + 'px' : this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.min > this.max ? this.handlePos1 - this.handlePos2 + 'px' : 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 = (this.min < this.max ? fromMinPostion : fromMaxpostion) + 'px';\n this.limitBarFirst.style.height = (this.min < this.max ? (fromMaxpostion - fromMinPostion) : (fromMinPostion - fromMaxpostion)) + '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 = (this.min < this.max ? toMinPostion : toMaxpostion) + 'px';\n this.limitBarSecond.style.height = (this.min < this.max ? (toMaxpostion - toMinPostion) : (toMinPostion - toMaxpostion)) + '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 < this.max ? this.min : this.max;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = minValue;\n }\n }\n if (isNullOrUndefined(maxValue)) {\n maxValue = this.min < this.max ? this.max : this.min;\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.min < this.max && this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n if (this.min > this.max && this.handlePos1 < this.handlePos2) {\n this.handlePos2 = this.handlePos1;\n this.handleVal2 = this.handleVal1;\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 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 *\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 = this.min > this.max ? this.handlePos1 + 'px' : '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.min > this.max ? this.element.clientHeight - this.handlePos1 + 'px' : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n this.secondHandle.style.bottom = this.handlePos2 + \"px\";\n this.rangeBar.style.bottom = this.min > this.max ? this.handlePos2 + 'px' : this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.min > this.max ? this.handlePos1 - this.handlePos2 + 'px' : 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 && this.min < this.max) || (this.handlePos1 < this.handlePos2 && this.min > this.max))) {\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 && this.min < this.max) || (this.handlePos2 > this.handlePos1 && this.min > this.max))) {\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.min < (this.max) && (this.handlePos2 - handlepos) < (handlepos - this.handlePos1) || (this.min > this.max) && (this.handlePos1 - handlepos) > (handlepos - this.handlePos2))) {\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 var behindElement;\n if ((evt.type === 'click' || evt.type === 'mousedown') && evt.target === handle) {\n var eventX = evt.clientX, eventY = evt.clientY;\n behindElement = document.elementFromPoint(eventX, eventY);\n }\n if (evt.target === handle && behindElement != handle) {\n if ((this.isMaterial || this.isMaterial3) && !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.isMaterial3) && 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 if (this.min > this.max) {\n this.handlePos2 = this.xyToPosition(pos);\n this.handleVal2 = this.positionToValue(this.handlePos2);\n }\n else {\n this.handlePos1 = this.xyToPosition(pos);\n this.handleVal1 = this.positionToValue(this.handlePos1);\n }\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 if (this.min > this.max) {\n this.handlePos1 = this.xyToPosition(pos);\n this.handleVal1 = this.positionToValue(this.handlePos1);\n }\n else {\n this.handlePos2 = this.xyToPosition(pos);\n this.handleVal2 = this.positionToValue(this.handlePos2);\n }\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.min > this.max ? this.min : this.max)) {\n this.handleValueAdjust(this.handleVal2, (this.min > this.max ? this.min : this.max), 2);\n }\n if (this.handleVal1 === (this.min > this.max ? this.max : this.min)) {\n this.handleValueAdjust(this.handleVal1, (this.min > this.max ? this.max : 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 || this.isMaterial3) {\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 ((this.min < this.max && handlepos > this.handlePos2 || (this.min > this.max && 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 ((this.min < this.max && handlepos < this.handlePos1) || (this.min > this.max && 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.isMaterial3) && !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 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 *\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 *\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 *\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 if (!this.showButtons) {\n this.wireEvents();\n }\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 && !this.isMaterial3 && !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 *\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};\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 this.multiline && !isNullOrUndefined(this.textarea) ? Input.validateInputType(this.textboxWrapper.container, this.textarea) : 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 Input.setClearButton(this.showClearButton, this.respectiveElement, this.textboxWrapper);\n this.bindClearEvent();\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 if (this.type === 'text') {\n this.element.setAttribute('role', 'textbox');\n }\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.multiline && !isNullOrUndefined(this.textarea) ? this.textarea.setAttribute(key, this.htmlAttributes[\"\" + key]) : 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 if (this.previousValue != this.value) {\n this.raiseChangeEvent(args, true);\n }\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) {\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","/* 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 (typeof template !== 'function' && 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 instances = 'ej2_instances';\nvar uid = 0;\nvar isBlazorPlatform = false;\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function disableBlazorMode() {\n isBlazorPlatform = false;\n}\n/**\n * Create Instance from constructor function with desired parameters.\n *\n * @param {Function} classFunction - Class function to which need to create instance\n * @param {any[]} params - Parameters need to passed while creating instance\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function createInstance(classFunction, params) {\n var arrayParam = params;\n arrayParam.unshift(undefined);\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\n}\n/**\n * To run a callback function immediately after the browser has completed other operations.\n *\n * @param {Function} handler - callback function to be triggered.\n * @returns {Function} ?\n * @private\n */\nexport function setImmediate(handler) {\n var unbind;\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n intCrypto.getRandomValues(num);\n var secret = 'ej2' + combineArray(num);\n // eslint-disable-next-line\n var messageHandler = function (event) {\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\n handler();\n unbind();\n }\n };\n window.addEventListener('message', messageHandler, false);\n window.postMessage(secret, '*');\n return unbind = function () {\n window.removeEventListener('message', messageHandler);\n handler = messageHandler = secret = undefined;\n };\n}\n/**\n * To get nameSpace value from the desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getValue(nameSpace, obj) {\n // eslint-disable-next-line\n var value = obj;\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n }\n return value;\n}\n/**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function setValue(nameSpace, value, obj) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n // eslint-disable-next-line\n var start = obj || {};\n // eslint-disable-next-line\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[parseInt(i.toString(), 10)];\n if (i + 1 === length) {\n fromObj[\"\" + key] = value === undefined ? {} : value;\n }\n else if (isNullOrUndefined(fromObj[\"\" + key])) {\n fromObj[\"\" + key] = {};\n }\n fromObj = fromObj[\"\" + key];\n }\n return start;\n}\n/**\n * Delete an item from Object\n *\n * @param {any} obj - Object in which we need to delete an item.\n * @param {string} key - String value to the get the inner object\n * @returns {void} ?\n * @private\n */\n// eslint-disable-next-line\nexport function deleteObject(obj, key) {\n delete obj[\"\" + key];\n}\n/**\n *@private\n */\n// eslint-disable-next-line\nexport var containerObject = typeof window !== 'undefined' ? window : {};\n/**\n * Check weather the given argument is only object.\n *\n * @param {any} obj - Object which is need to check.\n * @returns {boolean} ?\n * @private\n */\n// eslint-disable-next-line\nexport function isObject(obj) {\n var objCon = {};\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\n}\n/**\n * To get enum value by giving the string.\n *\n * @param {any} enumObject - Enum object.\n * @param {string} enumValue - Enum value to be searched\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getEnumValue(enumObject, enumValue) {\n // eslint-disable-next-line\n return enumObject[enumValue];\n}\n/**\n * Merge the source object into destination object.\n *\n * @param {any} source - source object which is going to merge with destination object\n * @param {any} destination - object need to be merged\n * @returns {void} ?\n * @private\n */\nexport function merge(source, destination) {\n if (!isNullOrUndefined(destination)) {\n var temrObj = source;\n var tempProp = destination;\n var keys = Object.keys(destination);\n var deepmerge = 'deepMerge';\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!isNullOrUndefined(temrObj[\"\" + deepmerge]) && (temrObj[\"\" + deepmerge].indexOf(key) !== -1) &&\n (isObject(tempProp[\"\" + key]) || Array.isArray(tempProp[\"\" + key]))) {\n extend(temrObj[\"\" + key], temrObj[\"\" + key], tempProp[\"\" + key], true);\n }\n else {\n temrObj[\"\" + key] = tempProp[\"\" + key];\n }\n }\n }\n}\n/**\n * Extend the two object with newer one.\n *\n * @param {any} copied - Resultant object after merged\n * @param {Object} first - First object need to merge\n * @param {Object} second - Second object need to merge\n * @param {boolean} deep ?\n * @returns {Object} ?\n * @private\n */\nexport function extend(copied, first, second, deep) {\n var result = copied && typeof copied === 'object' ? copied : {};\n var length = arguments.length;\n if (deep) {\n length = length - 1;\n }\n var _loop_1 = function (i) {\n // eslint-disable-next-line\n if (!arguments_1[i]) {\n return \"continue\";\n }\n // eslint-disable-next-line\n var obj1 = arguments_1[i];\n Object.keys(obj1).forEach(function (key) {\n var src = result[\"\" + key];\n var copy = obj1[\"\" + key];\n var clone;\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\n // eslint-disable-next-line\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\n if (isObject(copy)) {\n clone = src ? src : {};\n // eslint-disable-next-line\n if (Array.isArray(clone) && clone.hasOwnProperty('isComplexArray')) {\n extend(clone, {}, copy, deep);\n }\n else {\n result[\"\" + key] = extend(clone, {}, copy, deep);\n }\n }\n else {\n /* istanbul ignore next */\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\n // eslint-disable-next-line\n result[\"\" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));\n }\n }\n else {\n result[\"\" + key] = copy;\n }\n });\n };\n var arguments_1 = arguments;\n for (var i = 1; i < length; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * To check whether the object is null or undefined.\n *\n * @param {Object} value - To check the object is null or undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n/**\n * To check whether the object is undefined.\n *\n * @param {Object} value - To check the object is undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isUndefined(value) {\n return ('undefined' === typeof value);\n}\n/**\n * To return the generated unique name\n *\n * @param {string} definedName - To concatenate the unique id to provided name\n * @returns {string} ?\n * @private\n */\nexport function getUniqueID(definedName) {\n return definedName + '_' + uid++;\n}\n/**\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\n *\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\n * @returns {Function} ?\n * @private\n */\nexport function debounce(eventFunction, delay) {\n // eslint-disable-next-line\n var out;\n return function () {\n var _this = this;\n // eslint-disable-next-line\n var args = arguments;\n var later = function () {\n out = null;\n return eventFunction.apply(_this, args);\n };\n clearTimeout(out);\n out = setTimeout(later, delay);\n };\n}\n/**\n * To convert the object to string for query url\n *\n * @param {Object} data ?\n * @returns {string} ?\n * @private\n */\n// eslint-disable-next-line\nexport function queryParams(data) {\n var array = [];\n var keys = Object.keys(data);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[\"\" + key]));\n }\n return array.join('&');\n}\n/**\n * To check whether the given array contains object.\n *\n * @param {any} value - Specifies the T type array to be checked.\n * @returns {boolean} ?\n * @private\n */\nexport function isObjectArray(value) {\n var parser = Object.prototype.toString;\n if (parser.call(value) === '[object Array]') {\n if (parser.call(value[0]) === '[object Object]') {\n return true;\n }\n }\n return false;\n}\n/**\n * To check whether the child element is descendant to parent element or parent and child are same element.\n *\n * @param {Element} child - Specifies the child element to compare with parent.\n * @param {Element} parent - Specifies the parent element.\n * @returns {boolean} ?\n * @private\n */\nexport function compareElementParent(child, parent) {\n var node = child;\n if (node === parent) {\n return true;\n }\n else if (node === document || !node) {\n return false;\n }\n else {\n return compareElementParent(node.parentNode, parent);\n }\n}\n/**\n * To throw custom error message.\n *\n * @param {string} message - Specifies the error message to be thrown.\n * @returns {void} ?\n * @private\n */\nexport function throwError(message) {\n try {\n throw new Error(message);\n }\n catch (e) {\n // eslint-disable-next-line\n throw e.message + '\\n' + e.stack;\n }\n}\n/**\n * This function is used to print given element\n *\n * @param {Element} element - Specifies the print content element.\n * @param {Window} printWindow - Specifies the print window.\n * @returns {Window} ?\n * @private\n */\nexport function print(element, printWindow) {\n var div = document.createElement('div');\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\n if (blinks.length) {\n for (var l = 0, len = blinks.length; l < len; l++) {\n links.push(blinks[parseInt(l.toString(), 10)]);\n }\n }\n var reference = '';\n if (isNullOrUndefined(printWindow)) {\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\n }\n div.appendChild(element.cloneNode(true));\n for (var i = 0, len = links.length; i < len; i++) {\n reference += links[parseInt(i.toString(), 10)].outerHTML;\n }\n printWindow.document.write(' ' + reference + '' + div.innerHTML +\n '' + '');\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 var regExp = RegExp;\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 var regExp = RegExp;\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 if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[\"\" + i] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\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 var regExp = RegExp;\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 regExp = RegExp;\nvar parseRegex = new regExp('^([^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';\nvar regExp = RegExp;\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 /* eslint-disable */\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 = new regExp(\"(^[ncpae]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.currencyFormatRegex = new regExp(\"(^[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 dOptions.isCustomFormat = true;\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 // eslint-disable-next-line\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 * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\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 var regExp = RegExp;\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 if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\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","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', '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 = '21.1';\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=MjEuMQ==\";\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","/**\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 { 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 var regExp = RegExp;\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.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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 var isDialogEle = this.helperElement.classList.contains('e-dialog');\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 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : 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.classList.contains(\"e-dialog\") && !this.element.classList.contains(\"e-card\") && 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.isSafari() ? 'touchend' : 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.isSafari() ? 'touchend' : 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","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","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","/**\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 { 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 ele.classList.remove(CLS_RTL);\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","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, 'mousewheel DOMMouseScroll', 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, 'mousewheel DOMMouseScroll', 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.keyHandler = function (e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n if (e.target && (e.target.classList.contains('e-contextmenu') || e.target.classList.contains('e-menu-item'))) {\n e.preventDefault();\n }\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 var _this = this;\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 var popups_1 = [];\n var allPopup = selectAll('.' + POPUP);\n allPopup.forEach(function (elem) {\n if (_this.element.id === elem.id.split('-')[2]) {\n popups_1.push(elem);\n }\n });\n popup = [this.getWrapper()].concat([].slice.call(popups_1))[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 if (!_this.isMenu) {\n EventHandler.remove(ul_1, 'keydown', _this.keyHandler);\n if (_this.keyType === 'right') {\n _this.keyType = '';\n }\n }\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 if (!e.target || !e.target.classList.contains('e-edit-template')) {\n sli_1.focus();\n }\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 if (isNullOrUndefined(e)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ev = document.createEvent('MouseEvents');\n ev.initEvent(\"click\", true, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var targetEvent = this.copyObject(ev, {});\n targetEvent.target = targetEvent.srcElement = target;\n targetEvent.currentTarget = target;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.triggerBeforeOpen(li, this.uList, item, targetEvent, top, left, 'none');\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n };\n MenuBase.prototype.copyObject = function (source, destination) {\n for (var prop in source) {\n destination[\"\" + prop] = source[\"\" + prop];\n }\n return destination;\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 if (isNullOrUndefined(args.curData.htmlAttributes)) {\n args.curData.htmlAttributes = {};\n }\n Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' });\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, 'mousewheel DOMMouseScroll', 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, 'mousewheel DOMMouseScroll', 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 if (!this.isMenu) {\n EventHandler.add(ul, 'keydown', this.keyHandler, this);\n }\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 && !isNullOrUndefined(idx)) {\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 var validUl = isUniqueId ? ul.children[index].id : ul.children[index].textContent;\n if (ishide && validUl === items[i]) {\n ul.children[index].classList.add(HIDE);\n }\n else {\n ul.children[index].classList.remove(HIDE);\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 { 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, CLS_RTL]);\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/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","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","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 = this.focusFirstVisibleEle(nodes);\n }\n else {\n ele = this.focusLastVisibleEle(nodes);\n }\n }\n }\n else {\n nodes = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')');\n if (e.action === 'home') {\n ele = this.focusFirstVisibleEle(nodes);\n }\n else {\n ele = this.focusLastVisibleEle(nodes);\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.focusFirstVisibleEle = function (nodes) {\n var element;\n var index = 0;\n while (index < nodes.length) {\n var ele = nodes[parseInt(index.toString(), 10)];\n if (!ele.classList.contains(CLS_HIDDEN) && !ele.classList.contains(CLS_DISABLE)) {\n return ele;\n }\n index++;\n }\n return element;\n };\n Toolbar.prototype.focusLastVisibleEle = function (nodes) {\n var element;\n var index = nodes.length - 1;\n while (index >= 0) {\n var ele = nodes[parseInt(index.toString(), 10)];\n if (!ele.classList.contains(CLS_HIDDEN) && !ele.classList.contains(CLS_DISABLE)) {\n return ele;\n }\n index--;\n }\n return element;\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);\n sepHeight =\n (element.style.height === 'auto' || element.style.height === '') ? null : (sepItem && 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 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 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, eleStyles) {\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 eleSep.style.display = 'unset';\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 setStyle(el, eleStyles);\n if (prevSep.classList.contains(CLS_SEPARATOR)) {\n prevSep.style.display = 'none';\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 var inlineStyles = { minWidth: el.style.minWidth, height: el.style.height, minHeight: el.style.minHeight };\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, inlineStyles);\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 if (!isNOU(ele.firstElementChild)) {\n ele.firstElementChild.setAttribute('aria-disabled', 'false');\n }\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 if (!isNOU(ele.firstElementChild)) {\n ele.firstElementChild.setAttribute('aria-disabled', 'false');\n }\n }\n else {\n ele.classList.add(CLS_DISABLE);\n if (!isNOU(ele.firstElementChild)) {\n ele.firstElementChild.setAttribute('aria-disabled', 'true');\n }\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 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 dom.setAttribute('aria-disabled', 'false');\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.refreshOverflow();\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, isUndefined, Browser, compile, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Property, NotifyPropertyChanges, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { rippleEffect, Animation, remove } from '@syncfusion/ej2-base';\nimport { Draggable, Droppable } from '@syncfusion/ej2-base';\nimport { getElement } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, closest, matches, detach, select, selectAll, isVisible, append } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { isNullOrUndefined as isNOU, Touch, getValue, setValue, extend, merge, attributes } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { createCheckBox, rippleMouseHandler } from '@syncfusion/ej2-buttons';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar ROOT = 'e-treeview';\nvar CONTROL = 'e-control';\nvar COLLAPSIBLE = 'e-icon-collapsible';\nvar EXPANDABLE = 'e-icon-expandable';\nvar LISTITEM = 'e-list-item';\nvar LISTTEXT = 'e-list-text';\nvar LISTWRAP = 'e-text-wrap';\nvar IELISTWRAP = 'e-ie-wrap';\nvar PARENTITEM = 'e-list-parent';\nvar HOVER = 'e-hover';\nvar ACTIVE = 'e-active';\nvar LOAD = 'e-icons-spinner';\nvar PROCESS = 'e-process';\nvar ICON = 'e-icons';\nvar TEXTWRAP = 'e-text-content';\nvar INPUT = 'e-input';\nvar INPUTGROUP = 'e-input-group';\nvar TREEINPUT = 'e-tree-input';\nvar EDITING = 'e-editing';\nvar RTL = 'e-rtl';\nvar INTERACTION = 'e-interaction';\nvar DRAGITEM = 'e-drag-item';\nvar DROPPABLE = 'e-droppable';\nvar DRAGGING = 'e-dragging';\nvar SIBLING = 'e-sibling';\nvar DROPIN = 'e-drop-in';\nvar DROPNEXT = 'e-drop-next';\nvar DROPOUT = 'e-drop-out';\nvar NODROP = 'e-no-drop';\nvar FULLROWWRAP = 'e-fullrow-wrap';\nvar FULLROW = 'e-fullrow';\nvar SELECTED = 'e-selected';\nvar EXPANDED = 'e-expanded';\nvar NODECOLLAPSED = 'e-node-collapsed';\nvar DISABLE = 'e-disable';\nvar DROPCOUNT = 'e-drop-count';\nvar CHECK = 'e-check';\nvar INDETERMINATE = 'e-stop';\nvar CHECKBOXWRAP = 'e-checkbox-wrapper';\nvar CHECKBOXFRAME = 'e-frame';\nvar CHECKBOXRIPPLE = 'e-ripple-container';\nvar RIPPLE = 'e-ripple';\nvar RIPPLEELMENT = 'e-ripple-element';\nvar FOCUS = 'e-node-focus';\nvar IMAGE = 'e-list-img';\nvar BIGGER = 'e-bigger';\nvar SMALL = 'e-small';\nvar CHILD = 'e-has-child';\nvar ITEM_ANIMATION_ACTIVE = 'e-animation-active';\nvar DISABLED = 'e-disabled';\nvar PREVENTSELECT = 'e-prevent';\nvar treeAriaAttr = {\n treeRole: 'group',\n itemRole: 'treeitem',\n listRole: 'group',\n itemText: '',\n wrapperRole: ''\n};\n/**\n * Configures the fields to bind to the properties of node in the TreeView component.\n */\nvar FieldsSettings = /** @class */ (function (_super) {\n __extends(FieldsSettings, _super);\n function FieldsSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('child')\n ], FieldsSettings.prototype, \"child\", void 0);\n __decorate([\n Property([])\n ], FieldsSettings.prototype, \"dataSource\", void 0);\n __decorate([\n Property('expanded')\n ], FieldsSettings.prototype, \"expanded\", void 0);\n __decorate([\n Property('hasChildren')\n ], FieldsSettings.prototype, \"hasChildren\", void 0);\n __decorate([\n Property('htmlAttributes')\n ], FieldsSettings.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldsSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('id')\n ], FieldsSettings.prototype, \"id\", void 0);\n __decorate([\n Property('imageUrl')\n ], FieldsSettings.prototype, \"imageUrl\", void 0);\n __decorate([\n Property('isChecked')\n ], FieldsSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('parentID')\n ], FieldsSettings.prototype, \"parentID\", void 0);\n __decorate([\n Property(null)\n ], FieldsSettings.prototype, \"query\", void 0);\n __decorate([\n Property('selectable')\n ], FieldsSettings.prototype, \"selectable\", void 0);\n __decorate([\n Property('selected')\n ], FieldsSettings.prototype, \"selected\", void 0);\n __decorate([\n Property(null)\n ], FieldsSettings.prototype, \"tableName\", void 0);\n __decorate([\n Property('text')\n ], FieldsSettings.prototype, \"text\", void 0);\n __decorate([\n Property('tooltip')\n ], FieldsSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('navigateUrl')\n ], FieldsSettings.prototype, \"navigateUrl\", void 0);\n return FieldsSettings;\n}(ChildProperty));\nexport { FieldsSettings };\n/**\n * Configures animation settings for the TreeView component.\n */\nvar ActionSettings = /** @class */ (function (_super) {\n __extends(ActionSettings, _super);\n function ActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], ActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], ActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], ActionSettings.prototype, \"easing\", void 0);\n return ActionSettings;\n}(ChildProperty));\nexport { ActionSettings };\n/**\n * Configures the animation settings for expanding and collapsing nodes in TreeView.\n */\nvar NodeAnimationSettings = /** @class */ (function (_super) {\n __extends(NodeAnimationSettings, _super);\n function NodeAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, ActionSettings)\n ], NodeAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, ActionSettings)\n ], NodeAnimationSettings.prototype, \"expand\", void 0);\n return NodeAnimationSettings;\n}(ChildProperty));\nexport { NodeAnimationSettings };\n/**\n * The TreeView component is used to represent hierarchical data in a tree like structure with advanced\n * functions to perform edit, drag and drop, selection with check-box, and more.\n * ```html\n *
    \n * ```\n * ```typescript\n * let treeObj: TreeView = new TreeView();\n * treeObj.appendTo('#tree');\n * ```\n */\nvar TreeView = /** @class */ (function (_super) {\n __extends(TreeView, _super);\n function TreeView(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isRefreshed = false;\n _this.preventExpand = false;\n _this.checkedElement = [];\n _this.disableNode = [];\n // eslint-disable-next-line\n _this.validArr = [];\n _this.validNodes = [];\n _this.expandChildren = [];\n _this.isFieldChange = false;\n _this.changeDataSource = false;\n _this.hasTemplate = false;\n _this.isFirstRender = false;\n // Specifies whether the node is dropped or not\n _this.isNodeDropped = false;\n _this.isInteracted = false;\n _this.isRightClick = false;\n _this.mouseDownStatus = false;\n return _this;\n }\n TreeView_1 = TreeView;\n /**\n * Get component name.\n *\n * @returns {string} - returns module name.\n * @private\n */\n TreeView.prototype.getModuleName = function () {\n return 'treeview';\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n */\n TreeView.prototype.preRender = function () {\n var _this = this;\n this.checkActionNodes = [];\n this.parentNodeCheck = [];\n this.dragStartAction = false;\n this.isAnimate = false;\n this.keyConfigs = {\n escape: 'escape',\n end: 'end',\n enter: 'enter',\n f2: 'f2',\n home: 'home',\n moveDown: 'downarrow',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n ctrlDown: 'ctrl+downarrow',\n ctrlUp: 'ctrl+uparrow',\n ctrlEnter: 'ctrl+enter',\n ctrlHome: 'ctrl+home',\n ctrlEnd: 'ctrl+end',\n ctrlA: 'ctrl+A',\n shiftDown: 'shift+downarrow',\n shiftUp: 'shift+uparrow',\n shiftEnter: 'shift+enter',\n shiftHome: 'shift+home',\n shiftEnd: 'shift+end',\n csDown: 'ctrl+shift+downarrow',\n csUp: 'ctrl+shift+uparrow',\n csEnter: 'ctrl+shift+enter',\n csHome: 'ctrl+shift+home',\n csEnd: 'ctrl+shift+end',\n space: 'space',\n shiftSpace: 'shift+space',\n ctrlSpace: 'ctrl+space'\n };\n this.listBaseOption = {\n expandCollapse: true,\n showIcon: true,\n expandIconClass: EXPANDABLE,\n ariaAttributes: treeAriaAttr,\n expandIconPosition: 'Left',\n itemCreated: function (e) {\n _this.beforeNodeCreate(e);\n },\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n itemNavigable: this.fullRowNavigable\n };\n this.updateListProp(this.fields);\n this.aniObj = new Animation({});\n this.treeList = [];\n this.isLoaded = false;\n this.isInitalExpand = false;\n this.expandChildren = [];\n this.index = 0;\n this.setTouchClass();\n if (isNOU(this.selectedNodes)) {\n this.setProperties({ selectedNodes: [] }, true);\n }\n if (isNOU(this.checkedNodes)) {\n this.setProperties({ checkedNodes: [] }, true);\n }\n if (isNOU(this.expandedNodes)) {\n this.setProperties({ expandedNodes: [] }, true);\n }\n else {\n this.isInitalExpand = true;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - returns the persisted data\n * @hidden\n */\n TreeView.prototype.getPersistData = function () {\n var keyEntity = ['selectedNodes', 'checkedNodes', 'expandedNodes'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n TreeView.prototype.render = function () {\n this.initialRender = true;\n this.initialize();\n this.setDataBinding(false);\n this.setDisabledMode();\n this.setExpandOnType();\n if (!this.disabled) {\n this.setRipple();\n }\n this.wireEditingEvents(this.allowEditing);\n this.setDragAndDrop(this.allowDragAndDrop);\n if (!this.disabled) {\n this.wireEvents();\n }\n this.initialRender = false;\n this.renderComplete();\n };\n TreeView.prototype.initialize = function () {\n this.element.setAttribute('role', 'tree');\n this.element.setAttribute('aria-activedescendant', this.element.id + '_active');\n this.setCssClass(null, this.cssClass);\n this.setEnableRtl();\n this.setFullRow(this.fullRowSelect);\n this.setTextWrap();\n this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);\n };\n TreeView.prototype.setDisabledMode = function () {\n if (this.disabled) {\n this.element.classList.add(DISABLED);\n }\n else {\n this.element.classList.remove(DISABLED);\n }\n };\n TreeView.prototype.setEnableRtl = function () {\n (this.enableRtl ? addClass : removeClass)([this.element], RTL);\n };\n TreeView.prototype.setRipple = function () {\n var tempStr = '.' + FULLROW + ',.' + TEXTWRAP;\n var rippleModel = {\n selector: tempStr,\n ignore: '.' + TEXTWRAP + ' > .' + ICON + ',.' + INPUTGROUP + ',.' + INPUT + ', .' + CHECKBOXWRAP\n };\n this.rippleFn = rippleEffect(this.element, rippleModel);\n var iconModel = {\n selector: '.' + TEXTWRAP + ' > .' + ICON,\n isCenterRipple: true\n };\n this.rippleIconFn = rippleEffect(this.element, iconModel);\n };\n TreeView.prototype.setFullRow = function (isEnabled) {\n (isEnabled ? addClass : removeClass)([this.element], FULLROWWRAP);\n };\n TreeView.prototype.setMultiSelect = function (isEnabled) {\n var firstUl = select('.' + PARENTITEM, this.element);\n if (isEnabled) {\n firstUl.setAttribute('aria-multiselectable', 'true');\n }\n else {\n firstUl.removeAttribute('aria-multiselectable');\n }\n };\n // eslint-disable-next-line\n TreeView.prototype.templateComplier = function (template) {\n if (template) {\n this.hasTemplate = true;\n // eslint-disable-next-line\n var e = void 0;\n this.element.classList.add(INTERACTION);\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\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 this.element.classList.remove(INTERACTION);\n return undefined;\n };\n TreeView.prototype.setDataBinding = function (changeDataSource) {\n var _this = this;\n this.treeList.push('false');\n if (this.fields.dataSource instanceof DataManager) {\n /* eslint-disable */\n this.isOffline = this.fields.dataSource.dataSource.offline;\n if (this.fields.dataSource.ready) {\n this.fields.dataSource.ready.then(function (e) {\n /* eslint-disable */\n _this.isOffline = _this.fields.dataSource.dataSource.offline;\n if (_this.fields.dataSource instanceof DataManager && _this.isOffline) {\n _this.treeList.pop();\n _this.treeData = e.result;\n _this.isNumberTypeId = _this.getType();\n _this.setRootData();\n _this.renderItems(true);\n if (_this.treeList.length === 0 && !_this.isLoaded) {\n _this.finalize();\n }\n }\n }).catch(function (e) {\n _this.trigger('actionFailure', { error: e });\n });\n }\n else {\n this.fields.dataSource.executeQuery(this.getQuery(this.fields)).then(function (e) {\n _this.treeList.pop();\n _this.treeData = e.result;\n _this.isNumberTypeId = _this.getType();\n _this.setRootData();\n if (changeDataSource) {\n _this.changeDataSource = true;\n }\n _this.renderItems(true);\n _this.changeDataSource = false;\n if (_this.treeList.length === 0 && !_this.isLoaded) {\n _this.finalize();\n }\n }).catch(function (e) {\n _this.trigger('actionFailure', { error: e });\n });\n }\n }\n else {\n this.treeList.pop();\n if (isNOU(this.fields.dataSource)) {\n this.rootData = this.treeData = [];\n }\n else {\n this.treeData = JSON.parse(JSON.stringify(this.fields.dataSource));\n this.setRootData();\n }\n this.isNumberTypeId = this.getType();\n this.renderItems(false);\n }\n if (this.treeList.length === 0 && !this.isLoaded) {\n this.finalize();\n }\n };\n TreeView.prototype.getQuery = function (mapper, value) {\n if (value === void 0) { value = null; }\n var columns = [];\n var query;\n if (!mapper.query) {\n query = new Query();\n var prop = this.getActualProperties(mapper);\n for (var _i = 0, _a = Object.keys(prop); _i < _a.length; _i++) {\n var col = _a[_i];\n if (col !== 'dataSource' && col !== 'tableName' && col !== 'child' && !!mapper[col]\n && col !== 'url' && columns.indexOf(mapper[col]) === -1) {\n columns.push(mapper[col]);\n }\n }\n query.select(columns);\n if (prop.hasOwnProperty('tableName')) {\n query.from(mapper.tableName);\n }\n }\n else {\n query = mapper.query.clone();\n }\n ListBase.addSorting(this.sortOrder, mapper.text, query);\n if (!isNOU(value) && !isNOU(mapper.parentID)) {\n query.where(mapper.parentID, 'equal', (this.isNumberTypeId ? parseFloat(value) : value));\n }\n return query;\n };\n TreeView.prototype.getType = function () {\n return this.treeData[0] ? ((typeof getValue(this.fields.id, this.treeData[0]) === 'number') ? true : false) : false;\n };\n TreeView.prototype.setRootData = function () {\n this.dataType = this.getDataType(this.treeData, this.fields);\n if (this.dataType === 1) {\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n var rootItems = this.getChildNodes(this.treeData, undefined, true);\n if (isNOU(rootItems)) {\n this.rootData = [];\n }\n else {\n this.rootData = rootItems;\n }\n }\n else {\n this.rootData = this.treeData;\n }\n };\n TreeView.prototype.renderItems = function (isSorted) {\n /* eslint-disable */\n this.listBaseOption.ariaAttributes.level = 1;\n var sortedData = this.getSortedData(this.rootData);\n this.ulElement = ListBase.createList(this.createElement, isSorted ? this.rootData : sortedData, this.listBaseOption);\n this.element.appendChild(this.ulElement);\n var rootNodes = this.ulElement.querySelectorAll('.e-list-item');\n if (this.loadOnDemand === false) {\n var i = 0;\n while (i < rootNodes.length) {\n this.renderChildNodes(rootNodes[i], true, null, true);\n i++;\n }\n }\n var parentEle = selectAll('.' + PARENTITEM, this.element);\n if ((parentEle.length === 1 && (rootNodes && rootNodes.length !== 0)) || this.loadOnDemand) {\n this.finalizeNode(this.element);\n }\n this.parentNodeCheck = [];\n this.parentCheckData = [];\n this.updateCheckedStateFromDS();\n if (this.autoCheck && this.showCheckBox && !this.isLoaded) {\n this.updateParentCheckState();\n }\n };\n /**\n * Update the checkedNodes from datasource at initial rendering\n */\n TreeView.prototype.updateCheckedStateFromDS = function (id) {\n this.validNodes = [];\n if (this.treeData && this.showCheckBox) {\n if (this.dataType === 1) {\n var mapper = this.fields;\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));\n for (var i = 0; i < resultData.length; i++) {\n var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;\n var resultPId = resultData[i][this.fields.parentID] ? resultData[i][this.fields.parentID].toString() : null;\n if (this.checkedNodes.indexOf(resultId) === -1 && !(this.isLoaded)) {\n this.checkedNodes.push(resultId);\n }\n if (resultData[i][this.fields.hasChildren]) {\n var id_1 = resultData[i][this.fields.id];\n var childData = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper.parentID, 'equal', id_1, false));\n for (var child = 0; child < childData.length; child++) {\n var childId = childData[child][this.fields.id] ? childData[child][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) === -1 && this.autoCheck) {\n this.checkedNodes.push(childId);\n }\n }\n }\n }\n for (var i = 0; i < this.checkedNodes.length; i++) {\n var mapper_1 = this.fields;\n var checkState = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper_1.id, 'equal', this.checkedNodes[i], true));\n if (checkState[0] && this.autoCheck) {\n this.getCheckedNodeDetails(mapper_1, checkState);\n this.checkIndeterminateState(checkState[0]);\n }\n if (checkState.length > 0) {\n var checkedId = checkState[0][this.fields.id] ? checkState[0][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {\n this.validNodes.push(checkedId);\n }\n }\n var checkedData = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper_1.parentID, 'equal', this.checkedNodes[i], true));\n for (var index = 0; index < checkedData.length; index++) {\n var checkedId = checkedData[index][this.fields.id] ? checkedData[index][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(checkedId) === -1 && this.autoCheck) {\n this.checkedNodes.push(checkedId);\n }\n if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {\n this.validNodes.push(checkedId);\n }\n }\n }\n }\n else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&\n this.isOffline)) {\n for (var index = 0; index < this.treeData.length; index++) {\n var fieldId = this.treeData[index][this.fields.id] ? this.treeData[index][this.fields.id].toString() : '';\n if (this.treeData[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(fieldId) === -1) {\n this.checkedNodes.push(fieldId);\n }\n if (this.checkedNodes.indexOf(fieldId) > -1 && this.validNodes.indexOf(fieldId) === -1) {\n this.validNodes.push(fieldId);\n }\n var childItems = getValue(this.fields.child.toString(), this.treeData[index]);\n if (childItems) {\n this.updateChildCheckState(childItems, this.treeData[index]);\n }\n }\n this.validNodes = (this.enablePersistence) ? this.checkedNodes : this.validNodes;\n }\n this.setProperties({ checkedNodes: this.validNodes }, true);\n }\n };\n /**\n * To check whether the list data has sub child and to change the parent check state accordingly\n */\n TreeView.prototype.getCheckedNodeDetails = function (mapper, checkNodes) {\n var id = checkNodes[0][this.fields.parentID] ? checkNodes[0][this.fields.parentID].toString() : null;\n var count = 0;\n var element = this.element.querySelector('[data-uid=\"' + checkNodes[0][this.fields.id] + '\"]');\n var parentEle = this.element.querySelector('[data-uid=\"' + checkNodes[0][this.fields.parentID] + '\"]');\n if (!element && !parentEle) {\n var len = this.parentNodeCheck.length;\n if (this.parentNodeCheck.indexOf(id) === -1) {\n this.parentNodeCheck.push(id);\n }\n var childNodes = this.getChildNodes(this.treeData, id);\n for (var i = 0; i < childNodes.length; i++) {\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n if (count === childNodes.length && this.checkedNodes.indexOf(id) === -1) {\n this.checkedNodes.push(id);\n }\n }\n var preElement = new DataManager(this.treeData).\n executeLocal(new Query().where(mapper.id, 'equal', id, true));\n this.getCheckedNodeDetails(mapper, preElement);\n }\n else if (parentEle) {\n var check = select('.' + CHECK, parentEle);\n if (!check) {\n this.changeState(parentEle, 'indeterminate', null, true, true);\n }\n }\n };\n /**\n * Update the checkedNodes and parent state when all the child Nodes are in checkedstate at initial rendering\n */\n TreeView.prototype.updateParentCheckState = function () {\n var indeterminate = selectAll('.' + INDETERMINATE, this.element);\n var childCheckedElement;\n for (var i = 0; i < indeterminate.length; i++) {\n var node = closest(indeterminate[i], '.' + LISTITEM);\n var nodeId = node.getAttribute('data-uid').toString();\n if (this.dataType === 1) {\n childCheckedElement = new DataManager(this.treeData).\n executeLocal(new Query().where(this.fields.parentID, 'equal', nodeId, true));\n }\n else {\n childCheckedElement = this.getChildNodes(this.treeData, nodeId);\n }\n var count = 0;\n if (childCheckedElement) {\n for (var j = 0; j < childCheckedElement.length; j++) {\n var childId = childCheckedElement[j][this.fields.id].toString();\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n if (count === childCheckedElement.length) {\n var nodeCheck = node.getAttribute('data-uid');\n if (this.checkedNodes.indexOf(nodeCheck) === -1) {\n this.checkedNodes.push(nodeCheck);\n }\n this.changeState(node, 'check', null, true, true);\n }\n else if (count === 0 && this.checkedNodes.length === 0) {\n this.changeState(node, 'uncheck', null, true, true);\n }\n }\n }\n };\n /**\n * Change the parent to indeterminate state whenever the child is in checked state which is not rendered in DOM\n */\n TreeView.prototype.checkIndeterminateState = function (data) {\n var element;\n if (this.dataType === 1) {\n element = this.element.querySelector('[data-uid=\"' + data[this.fields.parentID] + '\"]');\n }\n else {\n element = this.element.querySelector('[data-uid=\"' + data[this.fields.id] + '\"]');\n }\n if (element) {\n var ariaChecked = element.querySelector('.' + CHECKBOXWRAP).getAttribute('aria-checked');\n if (ariaChecked !== 'true') {\n this.changeState(element, 'indeterminate', null, true, true);\n }\n }\n else if (this.dataType === 2) {\n var len = this.parentNodeCheck.length;\n if (this.parentNodeCheck.indexOf(data[this.fields.id].toString()) === -1) {\n this.parentNodeCheck.push(data[this.fields.id].toString());\n }\n }\n };\n /**\n * Update the checkedNodes for child and subchild from datasource (hierarchical datasource) at initial rendering\n */\n TreeView.prototype.updateChildCheckState = function (childItems, treeData) {\n var count = 0;\n var checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';\n for (var index = 0; index < childItems.length; index++) {\n var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';\n if (childItems[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n }\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1 && this.autoCheck) {\n this.checkedNodes.push(checkedChild);\n }\n if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {\n count++;\n }\n if (this.checkedNodes.indexOf(checkedChild) > -1 && this.validNodes.indexOf(checkedChild) === -1) {\n this.validNodes.push(checkedChild);\n }\n var subChildItems = getValue(this.fields.child.toString(), childItems[index]);\n if (subChildItems && subChildItems.length) {\n if (this.parentCheckData.indexOf(treeData) === -1)\n this.parentCheckData.push(treeData);\n this.updateChildCheckState(subChildItems, childItems[index]);\n }\n if (count === childItems.length && this.autoCheck && this.checkedNodes.indexOf(checkedParent) === -1) {\n this.checkedNodes.push(checkedParent);\n }\n }\n if (count !== 0 && this.autoCheck) {\n this.checkIndeterminateState(treeData);\n for (var len = 0; len < this.parentCheckData.length; len++) {\n if ((treeData !== this.parentCheckData[len]) && (this.parentCheckData[len])) {\n this.checkIndeterminateState(this.parentCheckData[len]);\n }\n }\n }\n this.parentCheckData = [];\n };\n TreeView.prototype.beforeNodeCreate = function (e) {\n if (this.showCheckBox) {\n var checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });\n checkboxEle.setAttribute('role', 'checkbox');\n checkboxEle.setAttribute('aria-label', 'checkbox');\n var icon = select('div.' + ICON, e.item);\n var id = e.item.getAttribute('data-uid');\n e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNOU(icon) ? 0 : 1]);\n var checkValue = getValue(e.fields.isChecked, e.curData);\n if (this.checkedNodes.indexOf(id) > -1) {\n select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);\n checkboxEle.setAttribute('aria-checked', 'true');\n this.addCheck(e.item);\n }\n else if (!isNOU(checkValue) && checkValue.toString() === 'true') {\n select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);\n checkboxEle.setAttribute('aria-checked', 'true');\n this.addCheck(e.item);\n }\n else {\n checkboxEle.setAttribute('aria-checked', 'false');\n }\n var frame = select('.' + CHECKBOXFRAME, checkboxEle);\n EventHandler.add(frame, 'mousedown', this.frameMouseHandler, this);\n EventHandler.add(frame, 'mouseup', this.frameMouseHandler, this);\n }\n if (this.fullRowSelect) {\n this.createFullRow(e.item);\n }\n if (this.allowMultiSelection && !e.item.classList.contains(SELECTED)) {\n e.item.setAttribute('aria-selected', 'false');\n }\n var fields = e.fields;\n this.addActionClass(e, fields.selected, SELECTED);\n this.addActionClass(e, fields.expanded, EXPANDED);\n e.item.setAttribute(\"tabindex\", \"-1\");\n EventHandler.add(e.item, 'focus', this.focusIn, this);\n if (!isNOU(this.nodeTemplateFn)) {\n var textEle = e.item.querySelector('.' + LISTTEXT);\n var dataId = e.item.getAttribute('data-uid');\n textEle.innerHTML = '';\n this.renderNodeTemplate(e.curData, textEle, dataId);\n }\n var eventArgs = {\n node: e.item,\n nodeData: e.curData,\n text: e.text,\n };\n if (!this.isRefreshed) {\n this.trigger('drawNode', eventArgs);\n if (e.curData[this.fields.selectable] === false && !this.showCheckBox) {\n e.item.classList.add(PREVENTSELECT);\n e.item.firstElementChild.setAttribute('style', 'cursor: not-allowed');\n }\n }\n };\n TreeView.prototype.frameMouseHandler = function (e) {\n var rippleSpan = select('.' + CHECKBOXRIPPLE, e.target.parentElement);\n rippleMouseHandler(e, rippleSpan);\n };\n TreeView.prototype.addActionClass = function (e, action, cssClass) {\n var data = e.curData;\n var actionValue = getValue(action, data);\n if (!isNOU(actionValue) && actionValue.toString() !== 'false') {\n e.item.classList.add(cssClass);\n }\n };\n TreeView.prototype.getDataType = function (ds, mapper) {\n if (this.fields.dataSource instanceof DataManager) {\n for (var i = 0; i < ds.length; i++) {\n if (this.isOffline) {\n if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i])) && !isNOU(getValue(mapper.parentID, ds[i]))) {\n return 1;\n }\n }\n else if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i]))) {\n return 1;\n }\n }\n return 2;\n }\n for (var i = 0, len = ds.length; i < len; i++) {\n if ((typeof mapper.child === 'string') && !isNOU(getValue(mapper.child, ds[i]))) {\n return 2;\n }\n if (!isNOU(getValue(mapper.parentID, ds[i])) || !isNOU(getValue(mapper.hasChildren, ds[i]))) {\n return 1;\n }\n }\n return 1;\n };\n TreeView.prototype.getGroupedData = function (dataSource, groupBy) {\n var cusQuery = new Query().group(groupBy);\n var ds = ListBase.getDataSource(dataSource, cusQuery);\n var grpItem = [];\n for (var j = 0; j < ds.length; j++) {\n var itemObj = ds[j].items;\n grpItem.push(itemObj);\n }\n return grpItem;\n };\n TreeView.prototype.getSortedData = function (list) {\n if (list && this.sortOrder !== 'None') {\n list = ListBase.getDataSource(list, ListBase.addSorting(this.sortOrder, this.fields.text));\n }\n return list;\n };\n TreeView.prototype.finalizeNode = function (element) {\n var iNodes = selectAll('.' + IMAGE, element);\n for (var k = 0; k < iNodes.length; k++) {\n iNodes[k].setAttribute('alt', IMAGE);\n }\n if (this.isLoaded) {\n var sNodes = selectAll('.' + SELECTED, element);\n for (var i = 0; i < sNodes.length; i++) {\n this.selectNode(sNodes[i], null);\n break;\n }\n removeClass(sNodes, SELECTED);\n }\n var cNodes = selectAll('.' + LISTITEM + ':not(.' + EXPANDED + ')', element);\n for (var j = 0; j < cNodes.length; j++) {\n var icon = select('div.' + ICON, cNodes[j]);\n if (icon && icon.classList.contains(EXPANDABLE)) {\n this.disableExpandAttr(cNodes[j]);\n }\n }\n var eNodes = selectAll('.' + EXPANDED, element);\n if (!this.isInitalExpand) {\n for (var i = 0; i < eNodes.length; i++) {\n this.renderChildNodes(eNodes[i]);\n }\n }\n removeClass(eNodes, EXPANDED);\n this.updateList();\n if (this.isLoaded) {\n this.updateCheckedProp();\n }\n };\n TreeView.prototype.updateCheckedProp = function () {\n if (this.showCheckBox) {\n var nodes = [].concat([], this.checkedNodes);\n this.setProperties({ checkedNodes: nodes }, true);\n }\n };\n TreeView.prototype.ensureIndeterminate = function () {\n if (this.autoCheck) {\n var liElement = selectAll('li', this.element);\n var ulElement = void 0;\n for (var i = 0; i < liElement.length; i++) {\n if (liElement[i].classList.contains(LISTITEM)) {\n ulElement = select('.' + PARENTITEM, liElement[i]);\n if (ulElement) {\n this.ensureParentCheckState(liElement[i]);\n }\n else {\n this.ensureChildCheckState(liElement[i]);\n }\n }\n }\n }\n else {\n var indeterminate = selectAll('.' + INDETERMINATE, this.element);\n for (var i = 0; i < indeterminate.length; i++) {\n indeterminate[i].classList.remove(INDETERMINATE);\n }\n }\n };\n TreeView.prototype.ensureParentCheckState = function (element) {\n if (!isNOU(element)) {\n if (element.classList.contains(ROOT)) {\n return;\n }\n var ulElement = element;\n if (element.classList.contains(LISTITEM)) {\n ulElement = select('.' + PARENTITEM, element);\n }\n var checkedNodes = selectAll('.' + CHECK, ulElement);\n var indeterminateNodes = selectAll('.' + INDETERMINATE, ulElement);\n var nodes = selectAll('.' + LISTITEM, ulElement);\n var checkBoxEle = element.getElementsByClassName(CHECKBOXWRAP)[0];\n if (nodes.length === checkedNodes.length) {\n this.changeState(checkBoxEle, 'check', null, true, true);\n }\n else if (checkedNodes.length > 0 || indeterminateNodes.length > 0) {\n this.changeState(checkBoxEle, 'indeterminate', null, true, true);\n }\n else if (checkedNodes.length === 0) {\n this.changeState(checkBoxEle, 'uncheck', null, true, true);\n }\n var parentUL = closest(element, '.' + PARENTITEM);\n if (!isNOU(parentUL)) {\n var currentParent = closest(parentUL, '.' + LISTITEM);\n this.ensureParentCheckState(currentParent);\n }\n }\n };\n TreeView.prototype.ensureChildCheckState = function (element, e) {\n if (!isNOU(element)) {\n var childElement = select('.' + PARENTITEM, element);\n var checkBoxes = void 0;\n if (!isNOU(childElement)) {\n checkBoxes = selectAll('.' + CHECKBOXWRAP, childElement);\n var isChecked = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);\n var parentCheck = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(INDETERMINATE);\n var childCheck = childElement.querySelectorAll('li');\n var expandState = childElement.parentElement.getAttribute('aria-expanded');\n var checkedState = void 0;\n for (var index = 0; index < checkBoxes.length; index++) {\n var childId = childCheck[index].getAttribute('data-uid');\n if (!isNOU(this.currentLoadData) && !isNOU(getValue(this.fields.isChecked, this.currentLoadData[index]))) {\n checkedState = getValue(this.fields.isChecked, this.currentLoadData[index]) ? 'check' : 'uncheck';\n if (this.ele !== -1) {\n checkedState = isChecked ? 'check' : 'uncheck';\n }\n if ((checkedState === 'uncheck') && (!isUndefined(this.parentNodeCheck) && this.autoCheck\n && this.parentNodeCheck.indexOf(childId) !== -1)) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\n checkedState = 'indeterminate';\n }\n }\n else {\n var isNodeChecked = checkBoxes[index].getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);\n if (isChecked) {\n checkedState = 'check';\n }\n else if (isNodeChecked && !this.isLoaded) {\n checkedState = 'check';\n }\n else if (this.checkedNodes.indexOf(childId) !== -1 && this.isLoaded && (parentCheck || isChecked)) {\n checkedState = 'check';\n }\n else if (childCheck[index].classList.contains(CHILD) && (!isUndefined(this.parentNodeCheck) && this.autoCheck\n && (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {\n checkedState = 'indeterminate';\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\n }\n else if (this.dataType === 1 && (!isUndefined(this.parentNodeCheck) && this.autoCheck &&\n (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {\n checkedState = 'indeterminate';\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\n }\n else {\n checkedState = 'uncheck';\n }\n }\n this.changeState(checkBoxes[index], checkedState, e, true, true);\n }\n }\n if (this.autoCheck && this.isLoaded) {\n this.updateParentCheckState();\n }\n }\n };\n TreeView.prototype.doCheckBoxAction = function (nodes, doCheck) {\n var li = selectAll('.' + LISTITEM, this.element);\n if (!isNOU(nodes)) {\n for (var len = nodes.length; len >= 0; len--) {\n var liEle = void 0;\n if (nodes.length === 1) {\n liEle = this.getElement(nodes[len - 1]);\n }\n else {\n liEle = this.getElement(nodes[len]);\n }\n if (isNOU(liEle)) {\n var node = void 0;\n node = nodes[len - nodes.length] ? nodes[len - nodes.length].toString() : nodes[len] ? nodes[len].toString() : null;\n if (node !== '' && doCheck && node) {\n this.setValidCheckedNode(node);\n this.dynamicCheckState(node, doCheck);\n }\n else if (this.checkedNodes.indexOf(node) !== -1 && node !== '' && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(node), 1);\n var childItems = this.getChildNodes(this.treeData, node);\n if (childItems) {\n for (var i = 0; i < childItems.length; i++) {\n var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(id) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);\n var ele = this.element.querySelector('[data-uid=\"' + id + '\"]');\n if (ele) {\n this.changeState(ele, 'uncheck', null);\n }\n }\n }\n if (this.parentNodeCheck.indexOf(node) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(node), 1);\n }\n }\n if (node) {\n this.dynamicCheckState(node, doCheck);\n }\n this.updateField(this.treeData, this.fields, node, 'isChecked', null);\n }\n continue;\n }\n var checkBox = select('.' + PARENTITEM + ' .' + CHECKBOXWRAP, liEle);\n this.validateCheckNode(checkBox, !doCheck, liEle, null);\n }\n }\n else {\n var checkBoxes = selectAll('.' + CHECKBOXWRAP, this.element);\n if (this.loadOnDemand) {\n for (var index = 0; index < checkBoxes.length; index++) {\n this.updateFieldChecked(checkBoxes[index], doCheck);\n this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck', null, null, null, doCheck);\n }\n }\n else {\n for (var index = 0; index < checkBoxes.length; index++) {\n this.updateFieldChecked(checkBoxes[index], doCheck);\n this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck');\n }\n }\n }\n if (nodes) {\n for (var j = 0; j < nodes.length; j++) {\n var node = nodes[j] ? nodes[j].toString() : '';\n if (!doCheck) {\n this.updateField(this.treeData, this.fields, node, 'isChecked', null);\n }\n }\n }\n if (this.autoCheck) {\n this.updateParentCheckState();\n }\n };\n TreeView.prototype.updateFieldChecked = function (checkbox, doCheck) {\n var currLi = closest(checkbox, '.' + LISTITEM);\n var id = currLi.getAttribute('data-uid');\n var nodeDetails = this.getNodeData(currLi);\n if (nodeDetails.isChecked === 'true' && !doCheck) {\n this.updateField(this.treeData, this.fields, id, 'isChecked', null);\n }\n };\n /**\n * Changes the parent and child check state while changing the checkedNodes via setmodel\n */\n TreeView.prototype.dynamicCheckState = function (node, doCheck) {\n if (this.dataType === 1) {\n var count = 0;\n var resultId = new DataManager(this.treeData).executeLocal(new Query().where(this.fields.id, 'equal', node, true));\n if (resultId[0]) {\n var id = resultId[0][this.fields.id] ? resultId[0][this.fields.id].toString() : null;\n var parent_1 = resultId[0][this.fields.parentID] ? resultId[0][this.fields.parentID].toString() : null;\n var parentElement = this.element.querySelector('[data-uid=\"' + parent_1 + '\"]');\n var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;\n var check = parentElement ? select('.' + CHECK, parentElement) : null;\n var element = this.element.querySelector('[data-uid=\"' + id + '\"]');\n var childNodes = this.getChildNodes(this.treeData, parent_1);\n if (childNodes) {\n for (var i = 0; i < childNodes.length; i++) {\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n }\n if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (id === node) && this.autoCheck) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && element && (id === node) && !doCheck) {\n this.changeState(element, 'uncheck', null);\n }\n else if (this.checkedNodes.indexOf(node) !== -1 && element && (id === node) && doCheck) {\n this.changeState(element, 'check', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck\n && count !== 0) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck\n && count === 0) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else if (!element && !parentElement && (id === node) && this.autoCheck) {\n this.updateIndeterminate(node, doCheck);\n }\n }\n }\n else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&\n this.isOffline)) {\n var id = void 0;\n var parentElement = void 0;\n var check = void 0;\n for (var i = 0; i < this.treeData.length; i++) {\n id = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : '';\n parentElement = this.element.querySelector('[data-uid=\"' + id + '\"]');\n check = parentElement ? select('.' + CHECK, parentElement) : null;\n if (this.checkedNodes.indexOf(id) === -1 && parentElement && check && !doCheck) {\n this.changeState(parentElement, 'uncheck', null);\n }\n var subChild = getValue(this.fields.child.toString(), this.treeData[i]);\n if (subChild) {\n this.updateChildIndeterminate(subChild, id, node, doCheck, id);\n }\n }\n }\n };\n /**\n * updates the parent and child check state while changing the checkedNodes via setmodel for listData\n */\n TreeView.prototype.updateIndeterminate = function (node, doCheck) {\n var indeterminateData = this.getTreeData(node);\n var count = 0;\n var parent;\n if (this.dataType === 1) {\n parent = indeterminateData[0][this.fields.parentID] ? indeterminateData[0][this.fields.parentID].toString() : null;\n }\n var childNodes = this.getChildNodes(this.treeData, parent);\n if (childNodes) {\n for (var i = 0; i < childNodes.length; i++) {\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n }\n var parentElement = this.element.querySelector('[data-uid=\"' + parent + '\"]');\n if (parentElement && doCheck) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count !== 0) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count === 0) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else if (!parentElement) {\n if (!doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent), 1);\n }\n else if (doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) === -1) {\n this.parentNodeCheck.push(parent);\n }\n else if (!doCheck && this.checkedNodes.indexOf(parent) !== -1 && this.parentNodeCheck.indexOf(parent) === -1\n && count !== 0) {\n this.parentNodeCheck.push(parent);\n }\n this.updateIndeterminate(parent, doCheck);\n if (this.checkedNodes.indexOf(parent) !== -1 && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(parent), 1);\n }\n }\n };\n /**\n * updates the parent and child check state while changing the checkedNodes via setmodel for hierarchical data\n */\n TreeView.prototype.updateChildIndeterminate = function (subChild, parent, node, doCheck, child) {\n var count = 0;\n for (var j = 0; j < subChild.length; j++) {\n var subId = subChild[j][this.fields.id] ? subChild[j][this.fields.id].toString() : '';\n if (this.checkedNodes.indexOf(subId) !== -1) {\n count++;\n }\n var parentElement = this.element.querySelector('[data-uid=\"' + parent + '\"]');\n var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;\n var check = parentElement ? select('.' + CHECK, parentElement) : null;\n var element = this.element.querySelector('[data-uid=\"' + subId + '\"]');\n var childElementCheck = element ? select('.' + CHECK, element) : null;\n if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (subId === node) && this.autoCheck) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && parentElement && !element && (subId === node) && !doCheck) {\n if (this.autoCheck) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else {\n if (count !== 0) {\n this.changeState(parentElement, 'indeterminate', null);\n }\n else {\n this.changeState(parentElement, 'uncheck', null);\n }\n }\n }\n else if (this.checkedNodes.indexOf(node) === -1 && element && (subId === node) && !doCheck) {\n this.changeState(element, 'uncheck', null);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && indeterminate && (subId === node) && this.autoCheck && count === 0\n && !doCheck) {\n indeterminate.classList.remove(INDETERMINATE);\n }\n else if (this.checkedNodes.indexOf(node) === -1 && !element && check && (subId === node) && count === 0) {\n this.changeState(parentElement, 'uncheck', null);\n }\n else if (this.checkedNodes.indexOf(subId) === -1 && element && childElementCheck && count === 0) {\n this.changeState(element, 'uncheck', null);\n }\n else if (!element && !parentElement && (subId === node) || (this.parentNodeCheck.indexOf(parent) !== -1) && this.autoCheck) {\n var childElement = this.element.querySelector('[data-uid=\"' + child + '\"]');\n if (doCheck && count !== 0) {\n this.changeState(childElement, 'indeterminate', null);\n }\n else if (doCheck && count === subChild.length && this.checkedNodes.indexOf(parent) === -1) {\n this.checkedNodes.push(parent);\n }\n else if (!doCheck && count === 0 && this.parentNodeCheck.indexOf(parent) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent));\n }\n if (this.parentNodeCheck.indexOf(parent) === -1) {\n this.parentNodeCheck.push(parent);\n }\n }\n var innerChild = getValue(this.fields.child.toString(), subChild[j]);\n if (innerChild) {\n this.updateChildIndeterminate(innerChild, subId, node, doCheck, child);\n }\n }\n };\n TreeView.prototype.changeState = function (wrapper, state, e, isPrevent, isAdd, doCheck) {\n var _this = this;\n var eventArgs;\n var currLi = closest(wrapper, '.' + LISTITEM);\n if (wrapper === currLi) {\n wrapper = select('.' + CHECKBOXWRAP, currLi);\n }\n if (!isPrevent) {\n this.checkActionNodes = [];\n eventArgs = this.getCheckEvent(currLi, state, e);\n this.trigger('nodeChecking', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.nodeCheckAction(wrapper, state, currLi, observedArgs, e, isPrevent, isAdd, doCheck);\n }\n });\n }\n else {\n this.nodeCheckAction(wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck);\n }\n };\n TreeView.prototype.nodeCheckAction = function (wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck) {\n var ariaState;\n var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];\n if (state === 'check' && !frameSpan.classList.contains(CHECK)) {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n this.addCheck(currLi);\n ariaState = 'true';\n }\n else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK) || frameSpan.classList.contains(INDETERMINATE))) {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n this.removeCheck(currLi);\n ariaState = 'false';\n }\n else if (state === 'indeterminate' && this.autoCheck) {\n frameSpan.classList.remove(CHECK);\n frameSpan.classList.add(INDETERMINATE);\n this.removeCheck(currLi);\n ariaState = 'mixed';\n }\n ariaState = state === 'check' ? 'true' : state === 'uncheck' ? 'false' : ariaState;\n if (!isNOU(ariaState)) {\n wrapper.setAttribute('aria-checked', ariaState);\n }\n if (isAdd) {\n var data = [].concat([], this.checkActionNodes);\n eventArgs = this.getCheckEvent(currLi, state, e);\n if (isUndefined(isPrevent)) {\n eventArgs.data = data;\n }\n }\n if (doCheck !== undefined) {\n this.ensureStateChange(currLi, doCheck);\n }\n if (!isPrevent) {\n if (!isNOU(ariaState)) {\n wrapper.setAttribute('aria-checked', ariaState);\n eventArgs.data[0].checked = ariaState;\n this.trigger('nodeChecked', eventArgs);\n this.checkActionNodes = [];\n }\n }\n };\n TreeView.prototype.addCheck = function (liEle) {\n var id = liEle.getAttribute('data-uid');\n if (!isNOU(id) && this.checkedNodes.indexOf(id) === -1) {\n this.checkedNodes.push(id);\n }\n };\n TreeView.prototype.removeCheck = function (liEle) {\n var index = this.checkedNodes.indexOf(liEle.getAttribute('data-uid'));\n if (index > -1) {\n this.checkedNodes.splice(index, 1);\n }\n };\n TreeView.prototype.getCheckEvent = function (currLi, action, e) {\n this.checkActionNodes.push(this.getNodeData(currLi));\n var nodeData = this.checkActionNodes;\n return { action: action, cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, data: nodeData };\n };\n TreeView.prototype.finalize = function () {\n var firstUl = select('.' + PARENTITEM, this.element);\n if (!isNullOrUndefined(firstUl)) {\n firstUl.setAttribute('role', treeAriaAttr.treeRole);\n this.setMultiSelect(this.allowMultiSelection);\n var firstNode = select('.' + LISTITEM, this.element);\n if (firstNode) {\n firstNode.setAttribute('tabindex', '0');\n this.updateIdAttr(null, firstNode);\n }\n if (this.allowTextWrap) {\n this.updateWrap();\n }\n this.renderReactTemplates();\n this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false;\n this.doExpandAction();\n }\n };\n TreeView.prototype.setTextWrap = function () {\n (this.allowTextWrap ? addClass : removeClass)([this.element], LISTWRAP);\n if (Browser.isIE) {\n (this.allowTextWrap ? addClass : removeClass)([this.element], IELISTWRAP);\n }\n };\n TreeView.prototype.updateWrap = function (ulEle) {\n if (!this.fullRowSelect) {\n return;\n }\n var liEle = ulEle ? selectAll('.' + LISTITEM, ulEle) : this.liList;\n var length = liEle.length;\n for (var i = 0; i < length; i++) {\n this.calculateWrap(liEle[i]);\n }\n };\n TreeView.prototype.calculateWrap = function (liEle) {\n var element = select('.' + FULLROW, liEle);\n if (element && element.nextElementSibling) {\n element.style.height = this.allowTextWrap ? element.nextElementSibling.offsetHeight + 'px' : '';\n }\n };\n TreeView.prototype.doExpandAction = function () {\n var eUids = this.expandedNodes;\n if (this.isInitalExpand && eUids.length > 0) {\n this.setProperties({ expandedNodes: [] }, true);\n /* eslint-disable */\n if (this.fields.dataSource instanceof DataManager) {\n this.expandGivenNodes(eUids);\n }\n else {\n for (var i = 0; i < eUids.length; i++) {\n var eNode = select('[data-uid=\"' + eUids[i] + '\"]', this.element);\n if (!isNOU(eNode)) {\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, eNode));\n if (!isNOU(icon)) {\n this.expandAction(eNode, icon, null);\n }\n }\n else {\n if (eUids[i] && this.expandChildren.indexOf(eUids[i]) === -1) {\n this.expandChildren.push(eUids[i].toString());\n }\n continue;\n }\n }\n this.afterFinalized();\n }\n }\n else {\n this.afterFinalized();\n }\n };\n TreeView.prototype.expandGivenNodes = function (arr) {\n var proxy = this;\n this.expandCallback(arr[this.index], function () {\n proxy.index++;\n if (proxy.index < arr.length) {\n proxy.expandGivenNodes(arr);\n }\n else {\n proxy.afterFinalized();\n }\n });\n };\n TreeView.prototype.expandCallback = function (eUid, callback) {\n var eNode = select('[data-uid=\"' + eUid + '\"]', this.element);\n if (!isNOU(eNode)) {\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, eNode));\n if (!isNOU(icon)) {\n this.expandAction(eNode, icon, null, false, callback);\n }\n else {\n callback();\n }\n }\n else {\n callback();\n }\n };\n TreeView.prototype.afterFinalized = function () {\n this.doSelectionAction();\n this.updateCheckedProp();\n this.isAnimate = true;\n this.isInitalExpand = false;\n if ((!this.isLoaded || this.isFieldChange) && !this.isNodeDropped) {\n var eventArgs = { data: this.treeData };\n this.trigger('dataBound', eventArgs);\n }\n this.isLoaded = true;\n this.isNodeDropped = false;\n };\n TreeView.prototype.doSelectionAction = function () {\n var sNodes = selectAll('.' + SELECTED, this.element);\n var sUids = this.selectedNodes;\n if (sUids.length > 0) {\n this.setProperties({ selectedNodes: [] }, true);\n for (var i = 0; i < sUids.length; i++) {\n var sNode = select('[data-uid=\"' + sUids[i] + '\"]', this.element);\n if (sNode && !(sNode.classList.contains('e-active'))) {\n this.selectNode(sNode, null, true);\n }\n else {\n this.selectedNodes.push(sUids[i]);\n }\n if (!this.allowMultiSelection) {\n break;\n }\n }\n }\n else {\n this.selectGivenNodes(sNodes);\n }\n removeClass(sNodes, SELECTED);\n };\n TreeView.prototype.selectGivenNodes = function (sNodes) {\n for (var i = 0; i < sNodes.length; i++) {\n if (!sNodes[i].classList.contains('e-disable')) {\n this.selectNode(sNodes[i], null, true);\n }\n if (!this.allowMultiSelection) {\n break;\n }\n }\n };\n TreeView.prototype.clickHandler = function (event) {\n var target = Browser.isDevice && !Browser.isIos ? document.elementFromPoint(event.originalEvent.changedTouches[0].clientX, event.originalEvent.changedTouches[0].clientY) : event.originalEvent.target;\n EventHandler.remove(this.element, 'contextmenu', this.preventContextMenu);\n if (!target || this.dragStartAction) {\n return;\n }\n else {\n var classList = target.classList;\n var li = closest(target, '.' + LISTITEM);\n if (!li || (li.classList.contains(PREVENTSELECT) && !(classList.contains(EXPANDABLE) || classList.contains(COLLAPSIBLE)))) {\n return;\n }\n else if (event.originalEvent.which !== 3) {\n var rippleElement = select('.' + RIPPLEELMENT, li);\n var rippleIcons = select('.' + ICON, li);\n this.removeHover();\n this.setFocusElement(li);\n if (this.showCheckBox && !li.classList.contains('e-disable')) {\n var checkWrapper = closest(target, '.' + CHECKBOXWRAP);\n if (!isNOU(checkWrapper)) {\n var checkElement = select('.' + CHECKBOXFRAME, checkWrapper);\n this.validateCheckNode(checkWrapper, checkElement.classList.contains(CHECK), li, event.originalEvent);\n this.triggerClickEvent(event.originalEvent, li);\n return;\n }\n }\n if (classList.contains(EXPANDABLE)) {\n this.expandAction(li, target, event);\n }\n else if (classList.contains(COLLAPSIBLE)) {\n this.collapseNode(li, target, event);\n }\n else if (rippleElement && rippleIcons) {\n if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(EXPANDABLE)) {\n this.expandAction(li, rippleIcons, event);\n }\n else if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(COLLAPSIBLE)) {\n this.collapseNode(li, rippleIcons, event);\n }\n else if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {\n this.toggleSelect(li, event.originalEvent, false);\n }\n }\n else {\n if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {\n this.toggleSelect(li, event.originalEvent, false);\n }\n }\n }\n if (event.originalEvent.which === 3) {\n this.isRightClick = true;\n }\n this.triggerClickEvent(event.originalEvent, li);\n }\n };\n TreeView.prototype.nodeCheckedEvent = function (wrapper, isCheck, e) {\n var currLi = closest(wrapper, '.' + LISTITEM);\n var eventArgs = this.getCheckEvent(wrapper, isCheck ? 'uncheck' : 'check', e);\n eventArgs.data = eventArgs.data.splice(0, eventArgs.data.length - 1);\n this.trigger('nodeChecked', eventArgs);\n };\n TreeView.prototype.triggerClickEvent = function (e, li) {\n var eventArgs = {\n event: e,\n node: li,\n };\n this.trigger('nodeClicked', eventArgs);\n };\n TreeView.prototype.expandNode = function (currLi, icon, loaded) {\n var _this = this;\n this.renderReactTemplates();\n if (icon.classList.contains(LOAD)) {\n this.hideSpinner(icon);\n }\n if (!this.initialRender) {\n icon.classList.add('interaction');\n }\n if (loaded !== true || (loaded === true && currLi.classList.contains('e-expanded'))) {\n if (this.preventExpand !== true) {\n removeClass([icon], EXPANDABLE);\n addClass([icon], COLLAPSIBLE);\n var start_1 = 0;\n var end_1 = 0;\n var proxy_1 = this;\n var ul_1 = select('.' + PARENTITEM, currLi);\n var liEle_1 = currLi;\n this.setHeight(liEle_1, ul_1);\n var activeElement_1 = select('.' + LISTITEM + '.' + ACTIVE, currLi);\n if (this.isAnimate && !this.isRefreshed) {\n this.aniObj.animate(ul_1, {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing,\n begin: function (args) {\n liEle_1.style.overflow = 'hidden';\n if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {\n activeElement_1.classList.add(ITEM_ANIMATION_ACTIVE);\n }\n start_1 = liEle_1.offsetHeight;\n end_1 = select('.' + TEXTWRAP, currLi).offsetHeight;\n },\n progress: function (args) {\n args.element.style.display = 'block';\n proxy_1.animateHeight(args, start_1, end_1);\n },\n end: function (args) {\n args.element.style.display = 'block';\n if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {\n activeElement_1.classList.remove(ITEM_ANIMATION_ACTIVE);\n }\n _this.expandedNode(liEle_1, ul_1, icon);\n }\n });\n }\n else {\n this.expandedNode(liEle_1, ul_1, icon);\n }\n }\n }\n else {\n var ul = select('.' + PARENTITEM, currLi);\n ul.style.display = 'none';\n if (this.fields.dataSource instanceof DataManager === true) {\n this.preventExpand = false;\n }\n }\n if (this.initialRender) {\n icon.classList.add('interaction');\n }\n };\n TreeView.prototype.expandedNode = function (currLi, ul, icon) {\n ul.style.display = 'block';\n currLi.style.display = 'block';\n currLi.style.overflow = '';\n currLi.style.height = '';\n removeClass([icon], PROCESS);\n this.addExpand(currLi);\n if (this.allowTextWrap && this.isLoaded && this.isFirstRender) {\n this.updateWrap(currLi);\n this.isFirstRender = false;\n }\n if (this.isLoaded && this.expandArgs && !this.isRefreshed) {\n this.expandArgs = this.getExpandEvent(currLi, null);\n this.expandArgs.isInteracted = this.isInteracted;\n this.trigger('nodeExpanded', this.expandArgs);\n }\n };\n TreeView.prototype.addExpand = function (liEle) {\n liEle.setAttribute('aria-expanded', 'true');\n removeClass([liEle], NODECOLLAPSED);\n var id = liEle.getAttribute('data-uid');\n if (!isNOU(id) && this.expandedNodes.indexOf(id) === -1) {\n this.expandedNodes.push(id);\n }\n };\n TreeView.prototype.collapseNode = function (currLi, icon, e) {\n var _this = this;\n if (icon.classList.contains(PROCESS)) {\n return;\n }\n else {\n addClass([icon], PROCESS);\n }\n var colArgs;\n if (this.isLoaded) {\n colArgs = this.getExpandEvent(currLi, e);\n this.isInteracted = colArgs.isInteracted;\n this.trigger('nodeCollapsing', colArgs, function (observedArgs) {\n if (observedArgs.cancel) {\n removeClass([icon], PROCESS);\n }\n else {\n _this.nodeCollapseAction(currLi, icon, observedArgs);\n }\n });\n }\n else {\n this.nodeCollapseAction(currLi, icon, colArgs);\n }\n };\n TreeView.prototype.nodeCollapseAction = function (currLi, icon, colArgs) {\n var _this = this;\n removeClass([icon], COLLAPSIBLE);\n addClass([icon], EXPANDABLE);\n var start = 0;\n var end = 0;\n var proxy = this;\n var ul = select('.' + PARENTITEM, currLi);\n var liEle = currLi;\n var activeElement = select('.' + LISTITEM + '.' + ACTIVE, currLi);\n if (this.isAnimate) {\n this.aniObj.animate(ul, {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing,\n begin: function (args) {\n liEle.style.overflow = 'hidden';\n if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {\n activeElement.classList.add(ITEM_ANIMATION_ACTIVE);\n }\n start = select('.' + TEXTWRAP, currLi).offsetHeight;\n end = liEle.offsetHeight;\n },\n progress: function (args) {\n proxy.animateHeight(args, start, end);\n },\n end: function (args) {\n args.element.style.display = 'none';\n if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {\n activeElement.classList.remove(ITEM_ANIMATION_ACTIVE);\n }\n _this.collapsedNode(liEle, ul, icon, colArgs);\n }\n });\n }\n else {\n this.collapsedNode(liEle, ul, icon, colArgs);\n }\n };\n TreeView.prototype.collapsedNode = function (liEle, ul, icon, colArgs) {\n ul.style.display = 'none';\n liEle.style.overflow = '';\n liEle.style.height = '';\n removeClass([icon], PROCESS);\n this.removeExpand(liEle);\n if (this.isLoaded) {\n colArgs = this.getExpandEvent(liEle, null);\n colArgs.isInteracted = this.isInteracted;\n this.trigger('nodeCollapsed', colArgs);\n }\n };\n TreeView.prototype.removeExpand = function (liEle, toRemove) {\n if (toRemove) {\n liEle.removeAttribute('aria-expanded');\n }\n else {\n this.disableExpandAttr(liEle);\n }\n var index = this.expandedNodes.indexOf(liEle.getAttribute('data-uid'));\n if (index > -1) {\n this.expandedNodes.splice(index, 1);\n }\n };\n TreeView.prototype.disableExpandAttr = function (liEle) {\n liEle.setAttribute('aria-expanded', 'false');\n addClass([liEle], NODECOLLAPSED);\n };\n TreeView.prototype.setHeight = function (currLi, ul) {\n ul.style.display = 'block';\n ul.style.visibility = 'hidden';\n currLi.style.height = currLi.offsetHeight + 'px';\n ul.style.display = 'none';\n ul.style.visibility = '';\n };\n TreeView.prototype.animateHeight = function (args, start, end) {\n var remaining = (args.duration - args.timeStamp) / args.duration;\n var currentHeight = (end - start) * remaining + start;\n args.element.parentElement.style.height = currentHeight + 'px';\n };\n TreeView.prototype.renderChildNodes = function (parentLi, expandChild, callback, loaded) {\n var _this = this;\n var eicon = select('div.' + ICON, parentLi);\n if (isNOU(eicon)) {\n return;\n }\n this.showSpinner(eicon);\n var childItems;\n /* eslint-disable */\n if (this.fields.dataSource instanceof DataManager) {\n var level = this.parents(parentLi, '.' + PARENTITEM).length;\n var mapper_2 = this.getChildFields(this.fields, level, 1);\n if (isNOU(mapper_2) || isNOU(mapper_2.dataSource)) {\n detach(eicon);\n this.removeExpand(parentLi, true);\n return;\n }\n this.treeList.push('false');\n if (this.fields.dataSource instanceof DataManager && this.isOffline) {\n this.treeList.pop();\n childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));\n this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);\n }\n else {\n mapper_2.dataSource.executeQuery(this.getQuery(mapper_2, parentLi.getAttribute('data-uid'))).then(function (e) {\n _this.treeList.pop();\n childItems = e.result;\n if (_this.dataType === 1) {\n _this.dataType = 2;\n }\n _this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);\n }).catch(function (e) {\n _this.trigger('actionFailure', { error: e });\n });\n }\n }\n else {\n childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));\n this.currentLoadData = this.getSortedData(childItems);\n if (isNOU(childItems) || childItems.length === 0) {\n detach(eicon);\n this.removeExpand(parentLi, true);\n return;\n }\n else {\n this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;\n parentLi.appendChild(ListBase.createList(this.createElement, this.currentLoadData, this.listBaseOption));\n this.expandNode(parentLi, eicon, loaded);\n this.setSelectionForChildNodes(childItems);\n this.ensureCheckNode(parentLi);\n this.finalizeNode(parentLi);\n this.disableTreeNodes(childItems);\n this.renderSubChild(parentLi, expandChild, loaded);\n }\n }\n };\n TreeView.prototype.loadChild = function (childItems, mapper, eicon, parentLi, expandChild, callback, loaded) {\n this.currentLoadData = childItems;\n if (isNOU(childItems) || childItems.length === 0) {\n detach(eicon);\n this.removeExpand(parentLi, true);\n }\n else {\n this.updateListProp(mapper);\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\n var id = parentLi.getAttribute('data-uid');\n var nodeData = this.getNodeObject(id);\n setValue('child', childItems, nodeData);\n }\n this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;\n parentLi.appendChild(ListBase.createList(this.createElement, childItems, this.listBaseOption));\n this.expandNode(parentLi, eicon, loaded);\n this.setSelectionForChildNodes(childItems);\n this.ensureCheckNode(parentLi);\n this.finalizeNode(parentLi);\n this.disableTreeNodes(childItems);\n this.renderSubChild(parentLi, expandChild, loaded);\n }\n if (callback) {\n callback();\n }\n if (this.treeList.length === 0 && !this.isLoaded) {\n this.finalize();\n }\n };\n TreeView.prototype.disableTreeNodes = function (childItems) {\n var i = 0;\n while (i < childItems.length) {\n var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\n if (this.disableNode !== undefined && this.disableNode.indexOf(id) !== -1) {\n this.doDisableAction([id]);\n }\n i++;\n }\n };\n /**\n * Sets the child Item in selectedState while rendering the child node\n */\n TreeView.prototype.setSelectionForChildNodes = function (nodes) {\n var i;\n for (i = 0; i < nodes.length; i++) {\n var id = nodes[i][this.fields.id] ? nodes[i][this.fields.id].toString() : null;\n if (this.selectedNodes !== undefined && this.selectedNodes.indexOf(id) !== -1) {\n this.doSelectionAction();\n }\n }\n };\n TreeView.prototype.ensureCheckNode = function (element) {\n if (this.showCheckBox) {\n this.ele = (this.checkedElement) ? this.checkedElement.indexOf(element.getAttribute('data-uid')) : null;\n if (this.autoCheck) {\n this.ensureChildCheckState(element);\n this.ensureParentCheckState(element);\n }\n }\n this.currentLoadData = null;\n };\n TreeView.prototype.getFields = function (mapper, nodeLevel, dataLevel) {\n if (nodeLevel === dataLevel) {\n return mapper;\n }\n else {\n return this.getFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1);\n }\n };\n TreeView.prototype.getChildFields = function (mapper, nodeLevel, dataLevel) {\n var childData;\n if (nodeLevel === dataLevel) {\n return this.getChildMapper(mapper);\n }\n else {\n return this.getChildFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1);\n }\n };\n TreeView.prototype.getChildMapper = function (mapper) {\n return (typeof mapper.child === 'string' || isNOU(mapper.child)) ? mapper : mapper.child;\n };\n TreeView.prototype.getChildNodes = function (obj, parentId, isRoot) {\n var _this = this;\n if (isRoot === void 0) { isRoot = false; }\n var childNodes;\n if (isNOU(obj)) {\n return childNodes;\n }\n else if (this.dataType === 1) {\n return this.getChildGroup(this.groupedData, parentId, isRoot);\n }\n else {\n if (typeof this.fields.child === 'string') {\n var index = obj.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; });\n if (index !== -1) {\n return getValue(this.fields.child, obj[index]);\n }\n if (index === -1) {\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var tempArray = getValue(this.fields.child, obj[i]);\n var childIndex = !isNOU(tempArray) ? tempArray.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; }) : -1;\n if (childIndex !== -1) {\n return getValue(this.fields.child, tempArray[childIndex]);\n }\n else if (!isNOU(tempArray)) {\n childNodes = this.getChildNodes(tempArray, parentId);\n if (childNodes !== undefined) {\n break;\n }\n }\n }\n }\n }\n }\n return childNodes;\n };\n TreeView.prototype.getChildGroup = function (data, parentId, isRoot) {\n var childNodes;\n if (isNOU(data)) {\n return childNodes;\n }\n for (var i = 0, objlen = data.length; i < objlen; i++) {\n if (!isNOU(data[i][0]) && !isNOU(getValue(this.fields.parentID, data[i][0]))) {\n if (getValue(this.fields.parentID, data[i][0]).toString() === parentId) {\n return data[i];\n }\n }\n else if (isRoot) {\n return data[i];\n }\n else {\n return [];\n }\n }\n return childNodes;\n };\n TreeView.prototype.renderSubChild = function (element, expandChild, loaded) {\n if (expandChild) {\n var cIcons = selectAll('.' + EXPANDABLE, element);\n for (var i = 0, len = cIcons.length; i < len; i++) {\n var icon = cIcons[i];\n if (element.querySelector('.e-icons') !== cIcons[i]) {\n var curLi = closest(icon, '.' + LISTITEM);\n this.expandArgs = this.getExpandEvent(curLi, null);\n if (loaded !== true) {\n this.trigger('nodeExpanding', this.expandArgs);\n }\n this.renderChildNodes(curLi, expandChild, null, loaded);\n }\n }\n }\n };\n TreeView.prototype.toggleSelect = function (li, e, multiSelect) {\n if (!li.classList.contains('e-disable')) {\n if (this.allowMultiSelection && ((e && e.ctrlKey) || multiSelect) && this.isActive(li)) {\n this.unselectNode(li, e);\n }\n else {\n this.selectNode(li, e, multiSelect);\n }\n }\n };\n TreeView.prototype.isActive = function (li) {\n return li.classList.contains(ACTIVE) ? true : false;\n };\n TreeView.prototype.selectNode = function (li, e, multiSelect) {\n var _this = this;\n if (isNOU(li) || (!this.allowMultiSelection && this.isActive(li) && !isNOU(e))) {\n this.setFocusElement(li);\n return;\n }\n var eventArgs;\n if (this.isLoaded) {\n eventArgs = this.getSelectEvent(li, 'select', e);\n this.trigger('nodeSelecting', eventArgs, function (observedArgs) {\n if ((!observedArgs.cancel) && !observedArgs.node.classList.contains(PREVENTSELECT)) {\n _this.nodeSelectAction(li, e, observedArgs, multiSelect);\n }\n });\n }\n else {\n this.nodeSelectAction(li, e, eventArgs, multiSelect);\n }\n };\n TreeView.prototype.nodeSelectAction = function (li, e, eventArgs, multiSelect) {\n if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !e.ctrlKey)))) {\n this.removeSelectAll();\n }\n if (this.allowMultiSelection && e && e.shiftKey) {\n if (!this.startNode) {\n this.startNode = li;\n }\n var startIndex = this.liList.indexOf(this.startNode);\n var endIndex = this.liList.indexOf(li);\n if (startIndex > endIndex) {\n var temp = startIndex;\n startIndex = endIndex;\n endIndex = temp;\n }\n for (var i = startIndex; i <= endIndex; i++) {\n var currNode = this.liList[i];\n if (isVisible(currNode) && !currNode.classList.contains('e-disable')) {\n this.addSelect(currNode);\n }\n }\n }\n else {\n this.startNode = li;\n this.addSelect(li);\n }\n if (this.isLoaded) {\n eventArgs.nodeData = this.getNodeData(li);\n this.trigger('nodeSelected', eventArgs);\n this.isRightClick = false;\n }\n this.isRightClick = false;\n };\n TreeView.prototype.unselectNode = function (li, e) {\n var _this = this;\n var eventArgs;\n if (this.isLoaded) {\n eventArgs = this.getSelectEvent(li, 'un-select', e);\n this.trigger('nodeSelecting', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.nodeUnselectAction(li, observedArgs);\n }\n });\n }\n else {\n this.nodeUnselectAction(li, eventArgs);\n }\n };\n TreeView.prototype.nodeUnselectAction = function (li, eventArgs) {\n this.removeSelect(li);\n this.setFocusElement(li);\n if (this.isLoaded) {\n eventArgs.nodeData = this.getNodeData(li);\n this.trigger('nodeSelected', eventArgs);\n }\n };\n TreeView.prototype.setFocusElement = function (li) {\n if (!isNOU(li)) {\n var focusedNode = this.getFocusedNode();\n if (focusedNode) {\n removeClass([focusedNode], FOCUS);\n focusedNode.setAttribute(\"tabindex\", \"-1\");\n }\n addClass([li], FOCUS);\n li.setAttribute('tabindex', '0');\n EventHandler.add(li, 'blur', this.focusOut, this);\n this.updateIdAttr(focusedNode, li);\n }\n };\n TreeView.prototype.addSelect = function (liEle) {\n liEle.setAttribute('aria-selected', 'true');\n addClass([liEle], ACTIVE);\n var id = liEle.getAttribute('data-uid');\n if (!isNOU(id) && this.selectedNodes.indexOf(id) === -1) {\n this.selectedNodes.push(id);\n }\n };\n TreeView.prototype.removeSelect = function (liEle) {\n if (this.allowMultiSelection) {\n liEle.setAttribute('aria-selected', 'false');\n }\n else {\n liEle.removeAttribute('aria-selected');\n }\n removeClass([liEle], ACTIVE);\n var index = this.selectedNodes.indexOf(liEle.getAttribute('data-uid'));\n if (index > -1) {\n this.selectedNodes.splice(index, 1);\n }\n };\n TreeView.prototype.removeSelectAll = function () {\n var selectedLI = this.element.querySelectorAll('.' + ACTIVE);\n for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) {\n var ele = selectedLI_1[_i];\n if (this.allowMultiSelection) {\n ele.setAttribute('aria-selected', 'false');\n }\n else {\n ele.removeAttribute('aria-selected');\n }\n }\n removeClass(selectedLI, ACTIVE);\n this.setProperties({ selectedNodes: [] }, true);\n };\n TreeView.prototype.getSelectEvent = function (currLi, action, e) {\n var nodeData = this.getNodeData(currLi);\n return { action: action, cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData };\n };\n TreeView.prototype.setExpandOnType = function () {\n this.expandOnType = (this.expandOn === 'Auto') ? (Browser.isDevice ? 'Click' : 'DblClick') : this.expandOn;\n };\n TreeView.prototype.expandHandler = function (e) {\n var target = e.originalEvent.target;\n if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) ||\n target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) ||\n target.classList.contains(ICON) || this.showCheckBox && closest(target, '.' + CHECKBOXWRAP)) {\n return;\n }\n else {\n this.expandCollapseAction(closest(target, '.' + LISTITEM), e);\n }\n };\n TreeView.prototype.expandCollapseAction = function (currLi, e) {\n var icon = select('div.' + ICON, currLi);\n if (!icon || icon.classList.contains(PROCESS)) {\n return;\n }\n else {\n var classList = icon.classList;\n if (classList.contains(EXPANDABLE)) {\n this.expandAction(currLi, icon, e);\n }\n else if (classList.contains(COLLAPSIBLE)) {\n this.collapseNode(currLi, icon, e);\n }\n }\n };\n TreeView.prototype.expandAction = function (currLi, icon, e, expandChild, callback) {\n var _this = this;\n if (icon.classList.contains(PROCESS)) {\n return;\n }\n else {\n addClass([icon], PROCESS);\n }\n if (this.isLoaded && !this.isRefreshed) {\n this.expandArgs = this.getExpandEvent(currLi, e);\n this.isInteracted = this.expandArgs.isInteracted;\n this.trigger('nodeExpanding', this.expandArgs, function (observedArgs) {\n if (observedArgs.cancel) {\n removeClass([icon], PROCESS);\n }\n else {\n _this.nodeExpandAction(currLi, icon, expandChild, callback);\n }\n });\n }\n else {\n this.nodeExpandAction(currLi, icon, expandChild, callback);\n }\n };\n TreeView.prototype.nodeExpandAction = function (currLi, icon, expandChild, callback) {\n var ul = select('.' + PARENTITEM, currLi);\n if (ul && ul.nodeName === 'UL') {\n this.expandNode(currLi, icon);\n }\n else {\n this.isFirstRender = true;\n this.renderChildNodes(currLi, expandChild, callback);\n var liEles = selectAll('.' + LISTITEM, currLi);\n for (var i = 0; i < liEles.length; i++) {\n var id = this.getId(liEles[i]);\n if (this.expandChildren.indexOf(id) !== -1 && this.expandChildren !== undefined) {\n var icon_1 = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEles[i]));\n if (!isNOU(icon_1)) {\n this.expandAction(liEles[i], icon_1, null);\n }\n this.expandChildren.splice(this.expandChildren.indexOf(id), 1);\n }\n }\n }\n };\n TreeView.prototype.keyActionHandler = function (e) {\n var _this = this;\n var target = e.target;\n var focusedNode = this.getFocusedNode();\n if (target && target.classList.contains(INPUT)) {\n var inpEle = target;\n if (e.action === 'enter') {\n inpEle.blur();\n }\n else if (e.action === 'escape') {\n inpEle.value = this.oldText;\n inpEle.blur();\n }\n return;\n }\n e.preventDefault();\n var eventArgs = {\n cancel: false,\n event: e,\n node: focusedNode,\n };\n this.trigger('keyPress', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n switch (e.action) {\n case 'space':\n if (_this.showCheckBox) {\n _this.checkNode(e);\n }\n else {\n _this.toggleSelect(focusedNode, e);\n }\n break;\n case 'moveRight':\n _this.openNode(_this.enableRtl ? false : true, e);\n break;\n case 'moveLeft':\n _this.openNode(_this.enableRtl ? true : false, e);\n break;\n case 'shiftDown':\n _this.shiftKeySelect(true, e);\n break;\n case 'moveDown':\n case 'ctrlDown':\n case 'csDown':\n _this.navigateNode(true);\n break;\n case 'shiftUp':\n _this.shiftKeySelect(false, e);\n break;\n case 'moveUp':\n case 'ctrlUp':\n case 'csUp':\n _this.navigateNode(false);\n break;\n case 'home':\n case 'shiftHome':\n case 'ctrlHome':\n case 'csHome':\n _this.navigateRootNode(true);\n break;\n case 'end':\n case 'shiftEnd':\n case 'ctrlEnd':\n case 'csEnd':\n _this.navigateRootNode(false);\n break;\n case 'enter':\n case 'ctrlEnter':\n case 'shiftEnter':\n case 'csEnter':\n case 'shiftSpace':\n case 'ctrlSpace':\n _this.toggleSelect(focusedNode, e);\n break;\n case 'f2':\n if (_this.allowEditing && !focusedNode.classList.contains('e-disable')) {\n _this.createTextbox(focusedNode, e);\n }\n break;\n case 'ctrlA':\n if (_this.allowMultiSelection) {\n var sNodes = selectAll('.' + LISTITEM + ':not(.' + ACTIVE + ')', _this.element);\n _this.selectGivenNodes(sNodes);\n }\n break;\n }\n }\n });\n };\n TreeView.prototype.navigateToFocus = function (isUp) {\n var focusNode = this.getFocusedNode().querySelector('.' + TEXTWRAP);\n var pos = focusNode.getBoundingClientRect();\n var parent = this.getScrollParent(this.element);\n if (!isNOU(parent)) {\n var parentPos = parent.getBoundingClientRect();\n if (pos.bottom > parentPos.bottom) {\n parent.scrollTop += pos.bottom - parentPos.bottom;\n }\n else if (pos.top < parentPos.top) {\n parent.scrollTop -= parentPos.top - pos.top;\n }\n }\n var isVisible = this.isVisibleInViewport(focusNode);\n if (!isVisible) {\n focusNode.scrollIntoView(isUp);\n }\n };\n TreeView.prototype.isVisibleInViewport = function (txtWrap) {\n var pos = txtWrap.getBoundingClientRect();\n return (pos.top >= 0 && pos.left >= 0 && pos.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n pos.right <= (window.innerWidth || document.documentElement.clientWidth));\n };\n TreeView.prototype.getScrollParent = function (node) {\n if (isNOU(node)) {\n return null;\n }\n return (node.scrollHeight > node.clientHeight) ? node : this.getScrollParent(node.parentElement);\n };\n TreeView.prototype.shiftKeySelect = function (isTowards, e) {\n if (this.allowMultiSelection) {\n var focusedNode = this.getFocusedNode();\n var nextNode = isTowards ? this.getNextNode(focusedNode) : this.getPrevNode(focusedNode);\n this.removeHover();\n this.setFocusElement(nextNode);\n this.toggleSelect(nextNode, e, false);\n this.navigateToFocus(!isTowards);\n }\n else {\n this.navigateNode(isTowards);\n }\n };\n TreeView.prototype.checkNode = function (e) {\n var focusedNode = this.getFocusedNode();\n var checkWrap = select('.' + CHECKBOXWRAP, focusedNode);\n var isChecked = select(' .' + CHECKBOXFRAME, checkWrap).classList.contains(CHECK);\n if (!focusedNode.classList.contains('e-disable')) {\n if (focusedNode.getElementsByClassName(\"e-checkbox-disabled\").length == 0) {\n this.validateCheckNode(checkWrap, isChecked, focusedNode, e);\n }\n }\n };\n TreeView.prototype.validateCheckNode = function (checkWrap, isCheck, li, e) {\n var _this = this;\n var currLi = closest(checkWrap, '.' + LISTITEM);\n this.checkActionNodes = [];\n var ariaState = !isCheck ? 'true' : 'false';\n if (!isNOU(ariaState)) {\n checkWrap.setAttribute('aria-checked', ariaState);\n }\n var eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e);\n this.trigger('nodeChecking', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.nodeCheckingAction(checkWrap, isCheck, li, observedArgs, e);\n }\n });\n };\n TreeView.prototype.nodeCheckingAction = function (checkWrap, isCheck, li, eventArgs, e) {\n if (this.checkedElement.indexOf(li.getAttribute('data-uid')) === -1) {\n this.checkedElement.push(li.getAttribute('data-uid'));\n if (this.autoCheck) {\n var child = this.getChildNodes(this.treeData, li.getAttribute('data-uid'));\n (child !== null) ? this.allCheckNode(child, this.checkedElement, null, null, false) : child = null;\n }\n }\n this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true);\n if (this.autoCheck) {\n this.ensureChildCheckState(li);\n this.ensureParentCheckState(closest(closest(li, '.' + PARENTITEM), '.' + LISTITEM));\n var doCheck = void 0;\n if (eventArgs.action === 'check') {\n doCheck = true;\n }\n else if (eventArgs.action === 'uncheck') {\n doCheck = false;\n }\n this.ensureStateChange(li, doCheck);\n }\n this.nodeCheckedEvent(checkWrap, isCheck, e);\n };\n /**\n * Update checkedNodes when UI interaction happens before the child node renders in DOM\n */\n TreeView.prototype.ensureStateChange = function (li, doCheck) {\n var childElement = select('.' + PARENTITEM, li);\n var parentIndex = li.getAttribute('data-uid');\n var mapper = this.fields;\n if (this.dataType === 1 && this.autoCheck) {\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.parentID, 'equal', parentIndex, true));\n for (var i = 0; i < resultData.length; i++) {\n var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;\n var isCheck = resultData[i][this.fields.isChecked] ? resultData[i][this.fields.isChecked].toString() : null;\n if (this.checkedNodes.indexOf(parentIndex) !== -1 && this.checkedNodes.indexOf(resultId) === -1) {\n this.checkedNodes.push(resultId);\n var childItems = this.getChildNodes(this.treeData, resultId);\n this.getChildItems(childItems, doCheck);\n if (this.parentNodeCheck.indexOf(resultId) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);\n }\n }\n else if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null &&\n this.checkedNodes.indexOf(resultId) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(resultId), 1);\n if (isCheck === 'true') {\n this.updateField(this.treeData, this.fields, resultId, 'isChecked', null);\n }\n if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null ||\n this.parentNodeCheck.indexOf(resultId) !== -1) {\n var childNodes = this.getChildNodes(this.treeData, resultId);\n this.getChildItems(childNodes, doCheck);\n if (this.parentNodeCheck.indexOf(resultId) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);\n }\n }\n }\n else {\n var childItems = this.getChildNodes(this.treeData, resultId);\n this.getChildItems(childItems, doCheck);\n }\n }\n }\n else if (this.dataType === 1 && !this.autoCheck) {\n if (!doCheck) {\n var checkedData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));\n for (var i = 0; i < checkedData.length; i++) {\n var id = checkedData[i][this.fields.id] ? checkedData[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(id) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);\n }\n this.updateField(this.treeData, this.fields, id, 'isChecked', null);\n }\n this.checkedNodes = [];\n }\n else {\n for (var i = 0; i < this.treeData.length; i++) {\n var checkedId = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : null;\n if (this.checkedNodes.indexOf(checkedId) === -1) {\n this.checkedNodes.push(checkedId);\n }\n }\n }\n }\n else {\n var childItems = this.getChildNodes(this.treeData, parentIndex);\n if (childItems) {\n this.childStateChange(childItems, parentIndex, childElement, doCheck);\n }\n }\n };\n TreeView.prototype.getChildItems = function (childItems, doCheck) {\n for (var i = 0; i < childItems.length; i++) {\n var childId = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\n var childIsCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() :\n null;\n if (this.checkedNodes.indexOf(childId) !== -1 && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(childId), 1);\n }\n if (this.checkedNodes.indexOf(childId) === -1 && doCheck) {\n this.checkedNodes.push(childId);\n }\n if (childIsCheck === 'true' && !doCheck) {\n this.updateField(this.treeData, this.fields, childId, 'isChecked', null);\n }\n var subChildItems = this.getChildNodes(this.treeData, childId);\n if (subChildItems.length > 0) {\n this.getChildItems(subChildItems, doCheck);\n }\n }\n };\n /**\n * Update checkedNodes when UI interaction happens before the child node renders in DOM for hierarchical DS\n */\n TreeView.prototype.childStateChange = function (childItems, parent, childElement, doCheck) {\n for (var i = 0; i < childItems.length; i++) {\n var checkedChild = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : '';\n var isCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() : null;\n if (this.autoCheck) {\n if (this.checkedNodes.indexOf(parent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n if (this.parentNodeCheck.indexOf(checkedChild) !== -1) {\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(checkedChild), 1);\n }\n }\n else if (this.checkedNodes.indexOf(parent) === -1 && this.checkedNodes.indexOf(checkedChild) !== -1 && !doCheck) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);\n if (isCheck === 'true') {\n this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);\n }\n }\n }\n else if (!this.autoCheck) {\n if (!doCheck) {\n if (this.checkedNodes.indexOf(checkedChild) !== -1) {\n this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);\n }\n this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);\n this.checkedNodes = [];\n }\n else {\n if (this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n }\n }\n }\n var subChild = this.getChildNodes([childItems[i]], checkedChild);\n if (subChild) {\n this.childStateChange(subChild, parent, childElement, doCheck);\n }\n }\n };\n //This method can be used to get all child nodes of a parent by passing the children of a parent along with 'validateCheck' set to false\n TreeView.prototype.allCheckNode = function (child, newCheck, checked, childCheck, validateCheck) {\n if (child) {\n for (var length_1 = 0; length_1 < child.length; length_1++) {\n var childId = getValue(this.fields.id, child[length_1]);\n var check = this.element.querySelector('[data-uid=\"' + childId + '\"]');\n //Validates isChecked case while no UI interaction has been performed on the node or it's parent\n if (validateCheck !== false && this.checkedElement.indexOf(childId.toString()) === -1) {\n if (((check === null && !isNOU(child[length_1][this.fields.isChecked]) && newCheck.indexOf(childId.toString()) === -1)\n || childCheck === 0 || checked === 2)) {\n (child[length_1][this.fields.isChecked] !== false || checked === 2) ? newCheck.push(childId.toString())\n : childCheck = null;\n childCheck = (child[length_1][this.fields.isChecked] !== false || checked === 2) ? 0 : null;\n }\n }\n //Pushes child checked node done thro' UI interaction\n if (newCheck.indexOf(childId.toString()) === -1 && isNOU(checked)) {\n newCheck.push(childId.toString());\n }\n var hierChildId = getValue(this.fields.child.toString(), child[length_1]);\n //Gets if any next level children are available for child nodes\n if (getValue(this.fields.hasChildren, child[length_1]) === true || hierChildId) {\n var id = getValue(this.fields.id, child[length_1]);\n var childId_1 = void 0;\n if (this.dataType === 1) {\n childId_1 = this.getChildNodes(this.treeData, id.toString());\n }\n else {\n childId_1 = hierChildId;\n }\n if (childId_1) {\n (isNOU(validateCheck)) ? this.allCheckNode(childId_1, newCheck, checked, childCheck) :\n this.allCheckNode(childId_1, newCheck, checked, childCheck, validateCheck);\n childCheck = null;\n }\n }\n childCheck = null;\n }\n }\n };\n TreeView.prototype.openNode = function (toBeOpened, e) {\n var focusedNode = this.getFocusedNode();\n var icon = select('div.' + ICON, focusedNode);\n if (toBeOpened) {\n if (!icon) {\n return;\n }\n else if (icon.classList.contains(EXPANDABLE)) {\n this.expandAction(focusedNode, icon, e);\n }\n else {\n this.focusNextNode(focusedNode, true);\n }\n }\n else {\n if (icon && icon.classList.contains(COLLAPSIBLE)) {\n this.collapseNode(focusedNode, icon, e);\n }\n else {\n var parentLi = closest(closest(focusedNode, '.' + PARENTITEM), '.' + LISTITEM);\n if (!parentLi) {\n return;\n }\n else {\n if (!parentLi.classList.contains('e-disable')) {\n this.setFocus(focusedNode, parentLi);\n this.navigateToFocus(true);\n }\n }\n }\n }\n };\n TreeView.prototype.navigateNode = function (isTowards) {\n var focusedNode = this.getFocusedNode();\n this.focusNextNode(focusedNode, isTowards);\n };\n TreeView.prototype.navigateRootNode = function (isBackwards) {\n var focusedNode = this.getFocusedNode();\n var rootNode = isBackwards ? this.getRootNode() : this.getEndNode();\n if (!rootNode.classList.contains('e-disable')) {\n this.setFocus(focusedNode, rootNode);\n this.navigateToFocus(isBackwards);\n }\n };\n TreeView.prototype.getFocusedNode = function () {\n var selectedItem;\n var fNode = select('.' + LISTITEM + '[tabindex=\"0\"]', this.element);\n if (isNOU(fNode)) {\n selectedItem = select('.' + LISTITEM, this.element);\n }\n return isNOU(fNode) ? (isNOU(selectedItem) ? this.element.firstElementChild : selectedItem) : fNode;\n };\n TreeView.prototype.focusNextNode = function (li, isTowards) {\n var nextNode = isTowards ? this.getNextNode(li) : this.getPrevNode(li);\n this.setFocus(li, nextNode);\n this.navigateToFocus(!isTowards);\n if (nextNode.classList.contains('e-disable')) {\n var lastChild = nextNode.lastChild;\n if (nextNode.previousSibling == null && nextNode.classList.contains('e-level-1')) {\n this.focusNextNode(nextNode, true);\n }\n else if (nextNode.nextSibling == null && nextNode.classList.contains('e-node-collapsed')) {\n this.focusNextNode(nextNode, false);\n }\n else if (nextNode.nextSibling == null && lastChild.classList.contains(TEXTWRAP)) {\n this.focusNextNode(nextNode, false);\n }\n else {\n this.focusNextNode(nextNode, isTowards);\n }\n }\n };\n TreeView.prototype.getNextNode = function (li) {\n var index = this.liList.indexOf(li);\n var nextNode;\n do {\n index++;\n nextNode = this.liList[index];\n if (isNOU(nextNode)) {\n return li;\n }\n } while (!isVisible(nextNode));\n return nextNode;\n };\n TreeView.prototype.getPrevNode = function (li) {\n var index = this.liList.indexOf(li);\n var prevNode;\n do {\n index--;\n prevNode = this.liList[index];\n if (isNOU(prevNode)) {\n return li;\n }\n } while (!isVisible(prevNode));\n return prevNode;\n };\n TreeView.prototype.getRootNode = function () {\n var index = 0;\n var rootNode;\n do {\n rootNode = this.liList[index];\n index++;\n } while (!isVisible(rootNode));\n return rootNode;\n };\n TreeView.prototype.getEndNode = function () {\n var index = this.liList.length - 1;\n var endNode;\n do {\n endNode = this.liList[index];\n index--;\n } while (!isVisible(endNode));\n return endNode;\n };\n TreeView.prototype.setFocus = function (preNode, nextNode) {\n removeClass([preNode], FOCUS);\n preNode.setAttribute(\"tabindex\", \"-1\");\n if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) {\n addClass([nextNode], FOCUS);\n nextNode.setAttribute('tabindex', '0');\n nextNode.focus();\n EventHandler.add(nextNode, 'blur', this.focusOut, this);\n this.updateIdAttr(preNode, nextNode);\n }\n };\n TreeView.prototype.updateIdAttr = function (preNode, nextNode) {\n this.element.removeAttribute('aria-activedescendant');\n if (preNode) {\n preNode.removeAttribute('id');\n }\n nextNode.setAttribute('id', this.element.id + '_active');\n this.element.setAttribute('aria-activedescendant', this.element.id + '_active');\n };\n TreeView.prototype.focusIn = function () {\n if (!this.mouseDownStatus) {\n var focusedElement = this.getFocusedNode();\n focusedElement.setAttribute(\"tabindex\", \"0\");\n addClass([focusedElement], FOCUS);\n EventHandler.add(focusedElement, 'blur', this.focusOut, this);\n }\n this.mouseDownStatus = false;\n };\n TreeView.prototype.focusOut = function (event) {\n var focusedElement = this.getFocusedNode();\n if (event.target == focusedElement) {\n removeClass([focusedElement], FOCUS);\n EventHandler.remove(focusedElement, 'blur', this.focusOut);\n }\n };\n TreeView.prototype.onMouseOver = function (e) {\n var target = e.target;\n var classList = target.classList;\n var currentLi = closest(target, '.' + LISTITEM);\n if (!currentLi || classList.contains(PARENTITEM) || classList.contains(LISTITEM)) {\n this.removeHover();\n return;\n }\n else {\n if (currentLi && !currentLi.classList.contains('e-disable')) {\n this.setHover(currentLi);\n }\n }\n };\n TreeView.prototype.setHover = function (li) {\n if (!li.classList.contains(HOVER) && !li.classList.contains(PREVENTSELECT)) {\n this.removeHover();\n addClass([li], HOVER);\n }\n };\n ;\n TreeView.prototype.onMouseLeave = function (e) {\n this.removeHover();\n };\n TreeView.prototype.removeHover = function () {\n var hoveredNode = selectAll('.' + HOVER, this.element);\n if (hoveredNode && hoveredNode.length) {\n removeClass(hoveredNode, HOVER);\n }\n };\n ;\n TreeView.prototype.getNodeData = function (currLi, fromDS) {\n if (!isNOU(currLi) && currLi.classList.contains(LISTITEM) &&\n !isNOU(closest(currLi, '.' + CONTROL)) && closest(currLi, '.' + CONTROL).classList.contains(ROOT)) {\n var id = currLi.getAttribute('data-uid');\n var text = this.getText(currLi, fromDS);\n var pNode = closest(currLi.parentNode, '.' + LISTITEM);\n var pid = pNode ? pNode.getAttribute('data-uid') : null;\n var selected = currLi.classList.contains(ACTIVE);\n var selectable = currLi.classList.contains(PREVENTSELECT) ? false : true;\n var expanded = (currLi.getAttribute('aria-expanded') === 'true') ? true : false;\n var hasChildren = currLi.getAttribute('aria-expanded') !== null ? true : (select('.' + EXPANDABLE, currLi) || select('.' + COLLAPSIBLE, currLi)) != null ? true : false;\n var checked = null;\n var checkboxElement = select('.' + CHECKBOXWRAP, currLi);\n if (this.showCheckBox && checkboxElement) {\n checked = checkboxElement.getAttribute('aria-checked');\n }\n return {\n id: id, text: text, parentID: pid, selected: selected, selectable: selectable, expanded: expanded,\n isChecked: checked, hasChildren: hasChildren\n };\n }\n return { id: '', text: '', parentID: '', selected: false, expanded: false, isChecked: '', hasChildren: false };\n };\n TreeView.prototype.getText = function (currLi, fromDS) {\n if (fromDS) {\n var nodeData = this.getNodeObject(currLi.getAttribute('data-uid'));\n var level = parseFloat(currLi.getAttribute('aria-level'));\n var nodeFields = this.getFields(this.fields, level, 1);\n return getValue(nodeFields.text, nodeData);\n }\n return select('.' + LISTTEXT, currLi).textContent;\n };\n TreeView.prototype.getExpandEvent = function (currLi, e) {\n var nodeData = this.getNodeData(currLi);\n return { cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData, event: e };\n };\n TreeView.prototype.renderNodeTemplate = function (data, textEle, dataId) {\n var tempArr = this.nodeTemplateFn(data, this, 'nodeTemplate' + dataId, this.element.id + 'nodeTemplate', this.isStringTemplate, undefined, textEle, this.root);\n if (tempArr) {\n tempArr = Array.prototype.slice.call(tempArr);\n append(tempArr, textEle);\n }\n };\n TreeView.prototype.destroyTemplate = function (liEle) {\n this.clearTemplate(['nodeTemplate' + liEle.getAttribute('data-uid')]);\n };\n TreeView.prototype.reRenderNodes = function () {\n this.updateListProp(this.fields);\n if (Browser.isIE) {\n this.ulElement = this.element.querySelector('.e-list-parent.e-ul');\n this.ulElement.parentElement.removeChild(this.ulElement);\n }\n else {\n this.element.innerHTML = '';\n }\n if (!isNOU(this.nodeTemplateFn)) {\n this.clearTemplate();\n }\n this.setTouchClass();\n this.setProperties({ selectedNodes: [], checkedNodes: [], expandedNodes: [] }, true);\n this.checkedElement = [];\n this.isLoaded = false;\n this.setDataBinding(true);\n };\n TreeView.prototype.setCssClass = function (oldClass, newClass) {\n if (!isNOU(oldClass) && oldClass !== '') {\n removeClass([this.element], oldClass.split(' '));\n }\n if (!isNOU(newClass) && newClass !== '') {\n addClass([this.element], newClass.split(' '));\n }\n };\n TreeView.prototype.editingHandler = function (e) {\n var target = e.target;\n if (!target || target.classList.contains(ROOT) || target.classList.contains(PARENTITEM) ||\n target.classList.contains(LISTITEM) || target.classList.contains(ICON) ||\n target.classList.contains(INPUT) || target.classList.contains(INPUTGROUP)) {\n return;\n }\n else {\n var liEle = closest(target, '.' + LISTITEM);\n this.createTextbox(liEle, e);\n }\n };\n TreeView.prototype.createTextbox = function (liEle, e) {\n var _this = this;\n var oldInpEle = select('.' + TREEINPUT, this.element);\n if (oldInpEle) {\n oldInpEle.blur();\n }\n var textEle = select('.' + LISTTEXT, liEle);\n this.updateOldText(liEle);\n var innerEle = this.createElement('input', { className: TREEINPUT, attrs: { value: this.oldText } });\n var eventArgs = this.getEditEvent(liEle, null, innerEle.outerHTML);\n this.trigger('nodeEditing', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var inpWidth = textEle.offsetWidth + 5;\n var style_1 = 'width:' + inpWidth + 'px';\n addClass([liEle], EDITING);\n if (!isNOU(_this.nodeTemplateFn)) {\n _this.destroyTemplate(liEle);\n }\n if (_this.isReact) {\n setTimeout(function () {\n _this.renderTextBox(eventArgs, textEle, style_1);\n }, 5);\n }\n else {\n _this.renderTextBox(eventArgs, textEle, style_1);\n }\n }\n });\n };\n TreeView.prototype.renderTextBox = function (eventArgs, textEle, style) {\n textEle.innerHTML = eventArgs.innerHtml;\n var inpEle = select('.' + TREEINPUT, textEle);\n this.inputObj = Input.createInput({\n element: inpEle,\n properties: {\n enableRtl: this.enableRtl,\n }\n }, this.createElement);\n this.inputObj.container.setAttribute('style', style);\n inpEle.focus();\n var inputEle = inpEle;\n inputEle.setSelectionRange(0, inputEle.value.length);\n this.wireInputEvents(inpEle);\n };\n TreeView.prototype.updateOldText = function (liEle) {\n var id = liEle.getAttribute('data-uid');\n this.editData = this.getNodeObject(id);\n var level = parseFloat(liEle.getAttribute('aria-level'));\n this.editFields = this.getFields(this.fields, level, 1);\n this.oldText = getValue(this.editFields.text, this.editData);\n };\n TreeView.prototype.inputFocusOut = function (e) {\n if (!select('.' + TREEINPUT, this.element)) {\n return;\n }\n var target = e.target;\n var newText = target.value;\n var txtEle = closest(target, '.' + LISTTEXT);\n var liEle = closest(target, '.' + LISTITEM);\n detach(this.inputObj.container);\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\n this.crudOperation('update', null, liEle, newText, null, null, true);\n }\n else {\n this.appendNewText(liEle, txtEle, newText, true);\n }\n };\n TreeView.prototype.appendNewText = function (liEle, txtEle, newText, isInput) {\n var _this = this;\n var eventArgs = this.getEditEvent(liEle, newText, null);\n this.trigger('nodeEdited', eventArgs, function (observedArgs) {\n newText = observedArgs.cancel ? observedArgs.oldText : observedArgs.newText;\n _this.updateText(liEle, txtEle, newText, isInput);\n if (observedArgs.oldText !== newText) {\n _this.triggerEvent('nodeEdited', [_this.getNode(liEle)]);\n }\n });\n };\n TreeView.prototype.updateText = function (liEle, txtEle, newText, isInput) {\n var newData = setValue(this.editFields.text, newText, this.editData);\n if (!isNOU(this.nodeTemplateFn)) {\n txtEle.innerText = '';\n var dataId = liEle.getAttribute('data-uid');\n this.renderNodeTemplate(newData, txtEle, dataId);\n this.renderReactTemplates();\n }\n else {\n this.enableHtmlSanitizer ? txtEle.innerText = newText : txtEle.innerHTML = newText;\n }\n if (isInput) {\n removeClass([liEle], EDITING);\n liEle.focus();\n EventHandler.add(liEle, 'blur', this.focusOut, this);\n addClass([liEle], FOCUS);\n }\n if (this.allowTextWrap) {\n this.calculateWrap(liEle);\n }\n };\n TreeView.prototype.getElement = function (ele) {\n if (isNOU(ele)) {\n return null;\n }\n else if (typeof ele === 'string') {\n return this.element.querySelector('[data-uid=\"' + ele + '\"]');\n }\n else if (typeof ele === 'object') {\n return getElement(ele);\n }\n else {\n return null;\n }\n };\n TreeView.prototype.getId = function (ele) {\n if (isNOU(ele)) {\n return null;\n }\n else if (typeof ele === 'string') {\n return ele;\n }\n else if (typeof ele === 'object') {\n return (getElement(ele)).getAttribute('data-uid');\n }\n else {\n return null;\n }\n };\n TreeView.prototype.getEditEvent = function (liEle, newText, inpEle) {\n var data = this.getNodeData(liEle);\n return { cancel: false, newText: newText, node: liEle, nodeData: data, oldText: this.oldText, innerHtml: inpEle };\n };\n TreeView.prototype.getNodeObject = function (id) {\n var childNodes;\n if (isNOU(id)) {\n return childNodes;\n }\n else if (this.dataType === 1) {\n for (var i = 0, objlen = this.treeData.length; i < objlen; i++) {\n var dataId = getValue(this.fields.id, this.treeData[i]);\n if (!isNOU(this.treeData[i]) && !isNOU(dataId) && dataId.toString() === id) {\n return this.treeData[i];\n }\n }\n }\n else {\n return this.getChildNodeObject(this.treeData, this.fields, id);\n }\n return childNodes;\n };\n TreeView.prototype.getChildNodeObject = function (obj, mapper, id) {\n var newList;\n if (isNOU(obj)) {\n return newList;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var dataId = getValue(mapper.id, obj[i]);\n if (obj[i] && dataId && dataId.toString() === id) {\n return obj[i];\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var childData = getValue(mapper.child, obj[i]);\n newList = this.getChildNodeObject(childData, this.getChildMapper(mapper), id);\n if (newList !== undefined) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n var child = 'child';\n newList = this.getChildNodeObject(getValue(child, obj[i]), this.getChildMapper(mapper), id);\n if (newList !== undefined) {\n break;\n }\n }\n }\n return newList;\n };\n TreeView.prototype.setDragAndDrop = function (toBind) {\n if (toBind && !this.disabled) {\n this.initializeDrag();\n }\n else {\n this.destroyDrag();\n }\n };\n TreeView.prototype.initializeDrag = function () {\n var _this = this;\n var virtualEle;\n var proxy = this;\n this.dragObj = new Draggable(this.element, {\n enableTailMode: true, enableAutoScroll: true,\n dragArea: this.dragArea,\n dragTarget: '.' + TEXTWRAP,\n enableTapHold: true,\n tapHoldThreshold: 100,\n helper: function (e) {\n _this.dragTarget = e.sender.target;\n var dragRoot = closest(_this.dragTarget, '.' + ROOT);\n var dragWrap = closest(_this.dragTarget, '.' + TEXTWRAP);\n _this.dragLi = closest(_this.dragTarget, '.' + LISTITEM);\n if (_this.fullRowSelect && !dragWrap && _this.dragTarget.classList.contains(FULLROW)) {\n dragWrap = _this.dragTarget.nextElementSibling;\n }\n if (!_this.dragTarget || !e.element.isSameNode(dragRoot) || !dragWrap ||\n _this.dragTarget.classList.contains(ROOT) || _this.dragTarget.classList.contains(PARENTITEM) ||\n _this.dragTarget.classList.contains(LISTITEM) || _this.dragLi.classList.contains('e-disable')) {\n return false;\n }\n var cloneEle = (dragWrap.cloneNode(true));\n if (isNOU(select('div.' + ICON, cloneEle))) {\n var icon = proxy.createElement('div', { className: ICON + ' ' + EXPANDABLE });\n cloneEle.insertBefore(icon, cloneEle.children[0]);\n }\n var cssClass = DRAGITEM + ' ' + ROOT + ' ' + _this.cssClass + ' ' + (_this.enableRtl ? RTL : '');\n virtualEle = proxy.createElement('div', { className: cssClass });\n virtualEle.appendChild(cloneEle);\n var nLen = _this.selectedNodes.length;\n if (nLen > 1 && _this.allowMultiSelection && _this.dragLi.classList.contains(ACTIVE)) {\n var cNode = proxy.createElement('span', { className: DROPCOUNT, innerHTML: '' + nLen });\n virtualEle.appendChild(cNode);\n }\n document.body.appendChild(virtualEle);\n document.body.style.cursor = '';\n _this.dragData = _this.getNodeData(_this.dragLi);\n return virtualEle;\n },\n dragStart: function (e) {\n addClass([_this.element], DRAGGING);\n var listItem = closest(e.target, '.e-list-item');\n var level;\n if (listItem) {\n level = parseInt(listItem.getAttribute('aria-level'), 10);\n }\n var eventArgs = _this.getDragEvent(e.event, _this, null, e.target, null, virtualEle, level);\n if (eventArgs.draggedNode.classList.contains(EDITING)) {\n _this.dragObj.intDestroy(e.event);\n _this.dragCancelAction(virtualEle);\n }\n else {\n _this.trigger('nodeDragStart', eventArgs, function (observedArgs) {\n if (observedArgs.cancel) {\n _this.dragObj.intDestroy(e.event);\n _this.dragCancelAction(virtualEle);\n }\n else {\n _this.dragStartAction = true;\n }\n });\n }\n },\n drag: function (e) {\n _this.dragObj.setProperties({ cursorAt: { top: (!isNOU(e.event.targetTouches) || Browser.isDevice) ? 60 : -20 } });\n _this.dragAction(e, virtualEle);\n },\n dragStop: function (e) {\n removeClass([_this.element], DRAGGING);\n _this.removeVirtualEle();\n var dropTarget = e.target;\n var preventTargetExpand = false;\n var dropRoot = (closest(dropTarget, '.' + DROPPABLE));\n var isHelperElement = true;\n if (!dropTarget || !dropRoot) {\n detach(e.helper);\n document.body.style.cursor = '';\n isHelperElement = false;\n }\n var listItem = closest(dropTarget, '.e-list-item');\n var level;\n if (listItem) {\n level = parseInt(listItem.getAttribute('aria-level'), 10);\n }\n var eventArgs = _this.getDragEvent(e.event, _this, dropTarget, dropTarget, null, e.helper, level);\n eventArgs.preventTargetExpand = preventTargetExpand;\n _this.trigger('nodeDragStop', eventArgs, function (observedArgs) {\n _this.dragParent = observedArgs.draggedParentNode;\n _this.preventExpand = observedArgs.preventTargetExpand;\n if (observedArgs.cancel) {\n if (e.helper.parentNode) {\n detach(e.helper);\n }\n document.body.style.cursor = '';\n isHelperElement = false;\n }\n _this.dragStartAction = false;\n });\n }\n });\n this.dropObj = new Droppable(this.element, {\n out: function (e) {\n if (!isNOU(e) && !e.target.classList.contains(SIBLING) && (_this.dropObj.dragData.default && _this.dropObj.dragData.default.helper.classList.contains(ROOT))) {\n document.body.style.cursor = 'not-allowed';\n }\n },\n over: function (e) {\n document.body.style.cursor = '';\n },\n drop: function (e) {\n _this.dropAction(e);\n }\n });\n };\n TreeView.prototype.dragCancelAction = function (virtualEle) {\n detach(virtualEle);\n removeClass([this.element], DRAGGING);\n this.dragStartAction = false;\n };\n TreeView.prototype.dragAction = function (e, virtualEle) {\n var dropRoot = closest(e.target, '.' + DROPPABLE);\n var dropWrap = closest(e.target, '.' + TEXTWRAP);\n var icon = select('div.' + ICON, virtualEle);\n removeClass([icon], [DROPIN, DROPNEXT, DROPOUT, NODROP]);\n this.removeVirtualEle();\n document.body.style.cursor = '';\n var classList = e.target.classList;\n if (this.fullRowSelect && !dropWrap && !isNOU(classList) && classList.contains(FULLROW)) {\n dropWrap = e.target.nextElementSibling;\n }\n if (dropRoot) {\n var dropLi = closest(e.target, '.' + LISTITEM);\n var checkWrapper = closest(e.target, '.' + CHECKBOXWRAP);\n var collapse = closest(e.target, '.' + COLLAPSIBLE);\n var expand = closest(e.target, '.' + EXPANDABLE);\n if (!dropRoot.classList.contains(ROOT) || (dropWrap &&\n (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi)))) {\n if (this.hasTemplate && dropLi) {\n var templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);\n if ((e && (!expand && !collapse) && e.event.offsetY < 7 && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {\n var index = this.fullRowSelect ? (1) : (0);\n this.appendIndicator(dropLi, icon, index);\n }\n else if ((e && (!expand && !collapse) && !checkWrapper && templateTarget && e.event.offsetY > templateTarget.offsetHeight - 10) || ((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19))) {\n var index = this.fullRowSelect ? (2) : (1);\n this.appendIndicator(dropLi, icon, index);\n }\n else {\n addClass([icon], DROPIN);\n }\n }\n else {\n if ((dropLi && e && (!expand && !collapse) && (e.event.offsetY < 7) && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {\n var index = this.fullRowSelect ? (1) : (0);\n this.appendIndicator(dropLi, icon, index);\n }\n else if ((dropLi && e && (!expand && !collapse) && (e.target.offsetHeight > 0 && e.event.offsetY > (e.target.offsetHeight - 10)) && !checkWrapper) || (((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19)))) {\n var index = this.fullRowSelect ? (2) : (1);\n this.appendIndicator(dropLi, icon, index);\n }\n else {\n addClass([icon], DROPIN);\n }\n }\n }\n else if (e.target.nodeName === 'LI' && (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi))) {\n addClass([icon], DROPNEXT);\n this.renderVirtualEle(e);\n }\n else if (e.target.classList.contains(SIBLING)) {\n addClass([icon], DROPNEXT);\n }\n else {\n addClass([icon], DROPOUT);\n }\n }\n else {\n addClass([icon], NODROP);\n document.body.style.cursor = 'not-allowed';\n }\n var listItem = closest(e.target, '.e-list-item');\n var level;\n if (listItem) {\n level = parseInt(listItem.getAttribute('aria-level'), 10);\n }\n var eventArgs = this.getDragEvent(e.event, this, e.target, e.target, null, virtualEle, level);\n if (eventArgs.dropIndicator) {\n removeClass([icon], eventArgs.dropIndicator);\n }\n this.trigger('nodeDragging', eventArgs);\n if (eventArgs.dropIndicator) {\n addClass([icon], eventArgs.dropIndicator);\n }\n };\n TreeView.prototype.appendIndicator = function (dropLi, icon, index) {\n addClass([icon], DROPNEXT);\n var virEle = this.createElement('div', { className: SIBLING });\n dropLi.insertBefore(virEle, dropLi.children[index]);\n };\n /* eslint-disable */\n TreeView.prototype.dropAction = function (e) {\n var offsetY = e.event.offsetY;\n var dropTarget = e.target;\n var dragObj;\n var level;\n var drop = false;\n var dragInstance;\n var nodeData = [];\n var liArray = [];\n dragInstance = e.dragData.draggable;\n for (var i_1 = 0; i_1 < dragInstance.ej2_instances.length; i_1++) {\n if (dragInstance.ej2_instances[i_1] instanceof TreeView_1) {\n dragObj = dragInstance.ej2_instances[i_1];\n break;\n }\n }\n if (dragObj && dragObj.dragTarget) {\n var dragTarget = dragObj.dragTarget;\n var dragLi = (closest(dragTarget, '.' + LISTITEM));\n var dropLi = (closest(dropTarget, '.' + LISTITEM));\n liArray.push(dragLi);\n if (dropLi == null && dropTarget.classList.contains(ROOT)) {\n dropLi = dropTarget.firstElementChild;\n }\n detach(e.droppedElement);\n document.body.style.cursor = '';\n if (!dropLi || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {\n if (this.fields.dataSource instanceof DataManager === false) {\n this.preventExpand = false;\n }\n return;\n }\n if (dragObj.allowMultiSelection && dragLi.classList.contains(ACTIVE)) {\n var sNodes = selectAll('.' + ACTIVE, dragObj.element);\n liArray = sNodes;\n if (e.target.offsetHeight <= 33 && offsetY > e.target.offsetHeight - 10 && offsetY > 6) {\n for (var i_2 = sNodes.length - 1; i_2 >= 0; i_2--) {\n if (dropLi.isSameNode(sNodes[i_2]) || this.isDescendant(sNodes[i_2], dropLi)) {\n continue;\n }\n this.appendNode(dropTarget, sNodes[i_2], dropLi, e, dragObj, offsetY);\n }\n }\n else {\n for (var i_3 = 0; i_3 < sNodes.length; i_3++) {\n if (dropLi.isSameNode(sNodes[i_3]) || this.isDescendant(sNodes[i_3], dropLi)) {\n continue;\n }\n this.appendNode(dropTarget, sNodes[i_3], dropLi, e, dragObj, offsetY);\n }\n }\n }\n else {\n this.appendNode(dropTarget, dragLi, dropLi, e, dragObj, offsetY);\n }\n level = parseInt(dragLi.getAttribute('aria-level'), 10);\n drop = true;\n }\n if (this.fields.dataSource instanceof DataManager === false) {\n this.preventExpand = false;\n }\n for (var i = 0; i < liArray.length; i++) {\n nodeData.push(this.getNode(liArray[i]));\n }\n this.trigger('nodeDropped', this.getDragEvent(e.event, dragObj, dropTarget, e.target, e.dragData.draggedElement, null, level, drop));\n if (dragObj.element.id !== this.element.id) {\n dragObj.triggerEvent('nodeDropped', nodeData);\n this.isNodeDropped = true;\n this.fields.dataSource = this.treeData;\n }\n this.triggerEvent('nodeDropped', nodeData);\n };\n TreeView.prototype.appendNode = function (dropTarget, dragLi, dropLi, e, dragObj, offsetY) {\n var checkWrapper = closest(dropTarget, '.' + CHECKBOXWRAP);\n var collapse = closest(e.target, '.' + COLLAPSIBLE);\n var expand = closest(e.target, '.' + EXPANDABLE);\n if (!dragLi.classList.contains('e-disable') && !checkWrapper && ((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3) || (expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19) || (!expand && !collapse))) {\n if (dropTarget.nodeName === 'LI') {\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\n }\n else if (dropTarget.firstElementChild && dropTarget.classList.contains(ROOT)) {\n if (dropTarget.firstElementChild.nodeName === 'UL') {\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\n }\n }\n else if ((dropTarget.classList.contains('e-icon-collapsible')) || (dropTarget.classList.contains('e-icon-expandable'))) {\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\n }\n else {\n this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY);\n }\n }\n else {\n this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY, true);\n }\n };\n TreeView.prototype.dropAsSiblingNode = function (dragLi, dropLi, e, dragObj) {\n var dropUl = closest(dropLi, '.' + PARENTITEM);\n var dragParentUl = closest(dragLi, '.' + PARENTITEM);\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\n var pre;\n if (e.target.offsetHeight > 0 && e.event.offsetY > e.target.offsetHeight - 2) {\n pre = false;\n }\n else if (e.event.offsetY < 2) {\n pre = true;\n }\n else if (e.target.classList.contains('e-icon-expandable') || (e.target.classList.contains('e-icon-collapsible'))) {\n if ((e.event.offsetY < 5) || (e.event.offsetX < 3)) {\n pre = true;\n }\n else if ((e.event.offsetY > 15) || (e.event.offsetX > 17)) {\n pre = false;\n }\n }\n if ((e.target.classList.contains('e-icon-expandable')) || (e.target.classList.contains('e-icon-collapsible'))) {\n var target = e.target.closest('li');\n dropUl.insertBefore(dragLi, pre ? target : target.nextElementSibling);\n }\n else {\n dropUl.insertBefore(dragLi, pre ? e.target : e.target.nextElementSibling);\n }\n this.moveData(dragLi, dropLi, dropUl, pre, dragObj);\n this.updateElement(dragParentUl, dragParentLi);\n this.updateAriaLevel(dragLi);\n if (dragObj.element.id === this.element.id) {\n this.updateList();\n }\n else {\n dragObj.updateInstance();\n this.updateInstance();\n }\n };\n TreeView.prototype.dropAsChildNode = function (dragLi, dropLi, dragObj, index, e, pos, isCheck) {\n var dragParentUl = closest(dragLi, '.' + PARENTITEM);\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\n var dropParentUl = closest(dropLi, '.' + PARENTITEM);\n var templateTarget;\n if (e && e.target) {\n templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);\n }\n if (e && (pos < 7) && !isCheck) {\n dropParentUl.insertBefore(dragLi, dropLi);\n this.moveData(dragLi, dropLi, dropParentUl, true, dragObj);\n }\n else if (e && (e.target.offsetHeight > 0 && pos > (e.target.offsetHeight - 10)) && !isCheck && !this.hasTemplate) {\n dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);\n this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);\n }\n else if (this.hasTemplate && templateTarget && pos > templateTarget.offsetHeight - 10 && !isCheck) {\n dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);\n this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);\n }\n else {\n var dropUl = this.expandParent(dropLi);\n var childLi = dropUl.childNodes[index];\n dropUl.insertBefore(dragLi, childLi);\n this.moveData(dragLi, childLi, dropUl, true, dragObj);\n }\n this.updateElement(dragParentUl, dragParentLi);\n this.updateAriaLevel(dragLi);\n if (dragObj.element.id === this.element.id) {\n this.updateList();\n }\n else {\n dragObj.updateInstance();\n this.updateInstance();\n }\n };\n TreeView.prototype.moveData = function (dragLi, dropLi, dropUl, pre, dragObj) {\n var dropParentLi = closest(dropUl, '.' + LISTITEM);\n var id = this.getId(dragLi);\n var removedData = dragObj.updateChildField(dragObj.treeData, dragObj.fields, id, null, null, true);\n var refId = this.getId(dropLi);\n var index = this.getDataPos(this.treeData, this.fields, refId);\n var parentId = this.getId(dropParentLi);\n if (this.dataType === 1) {\n this.updateField(this.treeData, this.fields, parentId, 'hasChildren', true);\n var pos = isNOU(index) ? this.treeData.length : (pre ? index : index + 1);\n if (isNOU(parentId) && !this.hasPid) {\n delete removedData[0][this.fields.parentID];\n }\n else {\n var currPid = this.isNumberTypeId ? parseFloat(parentId) : parentId;\n setValue(this.fields.parentID, currPid, removedData[0]);\n }\n this.treeData.splice(pos, 0, removedData[0]);\n if (dragObj.element.id !== this.element.id) {\n var childData = dragObj.removeChildNodes(id);\n pos++;\n for (var i = 0, len = childData.length; i < len; i++) {\n this.treeData.splice(pos, 0, childData[i]);\n pos++;\n }\n dragObj.groupedData = dragObj.getGroupedData(dragObj.treeData, dragObj.fields.parentID);\n }\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n else {\n this.addChildData(this.treeData, this.fields, parentId, removedData, pre ? index : index + 1);\n }\n };\n TreeView.prototype.expandParent = function (dropLi) {\n var dropIcon = select('div.' + ICON, dropLi);\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && this.preventExpand !== true) {\n this.expandAction(dropLi, dropIcon, null);\n }\n var dropUl = select('.' + PARENTITEM, dropLi);\n if (this.preventExpand === true && !dropUl && dropIcon) {\n this.renderChildNodes(dropLi);\n }\n dropUl = select('.' + PARENTITEM, dropLi);\n if (!isNOU(dropUl) && this.preventExpand === true) {\n dropUl.style.display = 'none';\n }\n if (!isNOU(dropUl) && this.preventExpand === false) {\n dropUl.style.display = 'block';\n }\n if (isNOU(dropUl) && this.preventExpand === true) {\n if (isNOU(dropIcon)) {\n ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);\n }\n var icon = select('div.' + ICON, dropLi);\n if (icon) {\n icon.classList.add('e-icon-expandable');\n }\n dropUl = ListBase.generateUL(this.createElement, [], null, this.listBaseOption);\n dropLi.appendChild(dropUl);\n if (icon) {\n removeClass([icon], COLLAPSIBLE);\n }\n else {\n ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);\n }\n dropLi.setAttribute('aria-expanded', 'false');\n dropUl.style.display = 'none';\n }\n if (isNOU(dropUl)) {\n var args = this.expandArgs;\n if (isNOU(args) || args.name != 'nodeExpanding') {\n this.trigger('nodeExpanding', this.getExpandEvent(dropLi, null));\n }\n if (isNOU(dropIcon)) {\n ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);\n }\n var icon = select('div.' + ICON, dropLi);\n if (icon) {\n removeClass([icon], EXPANDABLE);\n }\n else {\n ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);\n icon = select('div.' + ICON, dropLi);\n removeClass([icon], EXPANDABLE);\n }\n dropUl = ListBase.generateUL(this.createElement, [], null, this.listBaseOption);\n dropLi.appendChild(dropUl);\n this.addExpand(dropLi);\n this.trigger('nodeExpanded', this.getExpandEvent(dropLi, null));\n }\n return dropUl;\n };\n TreeView.prototype.updateElement = function (dragParentUl, dragParentLi) {\n if (dragParentLi && dragParentUl.childElementCount === 0) {\n var dragIcon = select('div.' + ICON, dragParentLi);\n detach(dragParentUl);\n detach(dragIcon);\n var parentId = this.getId(dragParentLi);\n this.updateField(this.treeData, this.fields, parentId, 'hasChildren', false);\n this.removeExpand(dragParentLi, true);\n }\n };\n TreeView.prototype.updateAriaLevel = function (dragLi) {\n var level = this.parents(dragLi, '.' + PARENTITEM).length;\n dragLi.setAttribute('aria-level', '' + level);\n this.updateChildAriaLevel(select('.' + PARENTITEM, dragLi), level + 1);\n };\n TreeView.prototype.updateChildAriaLevel = function (element, level) {\n if (!isNOU(element)) {\n var cNodes = element.childNodes;\n for (var i = 0, len = cNodes.length; i < len; i++) {\n var liEle = cNodes[i];\n liEle.setAttribute('aria-level', '' + level);\n this.updateChildAriaLevel(select('.' + PARENTITEM, liEle), level + 1);\n }\n }\n };\n TreeView.prototype.renderVirtualEle = function (e) {\n var pre;\n if (e.event.offsetY > e.target.offsetHeight - 2) {\n pre = false;\n }\n else if (e.event.offsetY < 2) {\n pre = true;\n }\n var virEle = this.createElement('div', { className: SIBLING });\n var index = this.fullRowSelect ? (pre ? 1 : 2) : (pre ? 0 : 1);\n e.target.insertBefore(virEle, e.target.children[index]);\n };\n TreeView.prototype.removeVirtualEle = function () {\n var sibEle = select('.' + SIBLING);\n if (sibEle) {\n detach(sibEle);\n }\n };\n TreeView.prototype.destroyDrag = function () {\n if (this.dragObj && this.dropObj) {\n this.dragObj.destroy();\n this.dropObj.destroy();\n }\n };\n TreeView.prototype.getDragEvent = function (event, obj, dropTarget, target, dragNode, cloneEle, level, drop) {\n var dropLi = dropTarget ? closest(dropTarget, '.' + LISTITEM) : null;\n var dropData = dropLi ? this.getNodeData(dropLi) : null;\n var draggedNode = obj ? obj.dragLi : dragNode;\n var draggedNodeData = obj ? obj.dragData : null;\n var newParent = dropTarget ? this.parents(dropTarget, '.' + LISTITEM) : null;\n var dragLiParent = obj.dragLi.parentElement;\n var dragParent = obj.dragLi ? closest(dragLiParent, '.' + LISTITEM) : null;\n var targetParent = null;\n var indexValue = null;\n var iconCss = [DROPNEXT, DROPIN, DROPOUT, NODROP];\n var iconClass = null;\n var node = (drop === true) ? draggedNode : dropLi;\n var index = node ? closest(node, '.e-list-parent') : null;\n var i = 0;\n var position = null;\n dragParent = (obj.dragLi && dragParent === null) ? closest(dragLiParent, '.' + ROOT) : dragParent;\n dragParent = (drop === true) ? this.dragParent : dragParent;\n if (cloneEle) {\n while (i < 4) {\n if (select('.' + ICON, cloneEle).classList.contains(iconCss[i])) {\n iconClass = iconCss[i];\n break;\n }\n i++;\n }\n }\n if (index) {\n var dropTar = 0;\n for (i = 0; i < index.childElementCount; i++) {\n dropTar = (drop !== true && index.children[i] === draggedNode && dropLi !== draggedNode) ? ++dropTar : dropTar;\n if ((drop !== true && index.children[i].classList.contains('e-hover'))) {\n indexValue = (event.offsetY >= 23) ? i + 1 : i;\n break;\n }\n else if (index.children[i] === node) {\n indexValue = (event.offsetY >= 23) ? i : i;\n break;\n }\n }\n indexValue = (dropTar !== 0) ? --indexValue : indexValue;\n position = (iconClass == \"e-drop-in\") ? \"Inside\" : ((event.offsetY < 7) ? \"Before\" : \"After\");\n }\n if (dropTarget) {\n if (newParent.length === 0) {\n targetParent = null;\n }\n else if (dropTarget.classList.contains(LISTITEM)) {\n targetParent = newParent[0];\n }\n else {\n targetParent = newParent[1];\n }\n }\n if (dropLi === draggedNode) {\n targetParent = dropLi;\n }\n if (dropTarget && target.offsetHeight <= 33 && event.offsetY < target.offsetHeight - 10 && event.offsetY > 6) {\n targetParent = dropLi;\n if (drop !== true) {\n level = ++level;\n var parent_2 = targetParent ? select('.e-list-parent', targetParent) : null;\n indexValue = (parent_2) ? parent_2.children.length : 0;\n if (!(this.fields.dataSource instanceof DataManager) && parent_2 === null && targetParent) {\n var parent_3 = targetParent.hasAttribute('data-uid') ?\n this.getChildNodes(this.fields.dataSource, targetParent.getAttribute('data-uid').toString()) : null;\n indexValue = (parent_3) ? parent_3.length : 0;\n }\n }\n }\n return {\n cancel: false,\n clonedNode: cloneEle,\n event: event,\n draggedNode: draggedNode,\n draggedNodeData: draggedNodeData,\n droppedNode: dropLi,\n droppedNodeData: dropData,\n dropIndex: indexValue,\n dropLevel: level,\n draggedParentNode: dragParent,\n dropTarget: targetParent,\n dropIndicator: iconClass,\n target: target,\n position: position,\n };\n };\n TreeView.prototype.addFullRow = function (toAdd) {\n var len = this.liList.length;\n if (toAdd) {\n for (var i = 0; i < len; i++) {\n this.createFullRow(this.liList[i]);\n }\n }\n else {\n for (var i = 0; i < len; i++) {\n var rowDiv = select('.' + FULLROW, this.liList[i]);\n detach(rowDiv);\n }\n }\n };\n TreeView.prototype.createFullRow = function (item) {\n var rowDiv = this.createElement('div', { className: FULLROW });\n item.insertBefore(rowDiv, item.childNodes[0]);\n };\n TreeView.prototype.addMultiSelect = function (toAdd) {\n if (toAdd) {\n var liEles = selectAll('.' + LISTITEM + ':not([aria-selected=\"true\"])', this.element);\n for (var _i = 0, liEles_1 = liEles; _i < liEles_1.length; _i++) {\n var ele = liEles_1[_i];\n ele.setAttribute('aria-selected', 'false');\n }\n }\n else {\n var liEles = selectAll('.' + LISTITEM + '[aria-selected=\"false\"]', this.element);\n for (var _a = 0, liEles_2 = liEles; _a < liEles_2.length; _a++) {\n var ele = liEles_2[_a];\n ele.removeAttribute('aria-selected');\n }\n }\n };\n TreeView.prototype.collapseByLevel = function (element, level, excludeHiddenNodes) {\n if (level > 0 && !isNOU(element)) {\n var cNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes);\n for (var i = 0, len = cNodes.length; i < len; i++) {\n var liEle = cNodes[i];\n var icon = select('.' + COLLAPSIBLE, select('.' + TEXTWRAP, liEle));\n if (!isNOU(icon)) {\n this.collapseNode(liEle, icon, null);\n }\n this.collapseByLevel(select('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes);\n }\n }\n };\n TreeView.prototype.collapseAllNodes = function (excludeHiddenNodes) {\n var cIcons = this.getVisibleNodes(excludeHiddenNodes, selectAll('.' + COLLAPSIBLE, this.element));\n for (var i = 0, len = cIcons.length; i < len; i++) {\n var icon = cIcons[i];\n var liEle = closest(icon, '.' + LISTITEM);\n this.collapseNode(liEle, icon, null);\n }\n };\n TreeView.prototype.expandByLevel = function (element, level, excludeHiddenNodes) {\n if (level > 0 && !isNOU(element)) {\n var eNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes);\n for (var i = 0, len = eNodes.length; i < len; i++) {\n var liEle = eNodes[i];\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEle));\n if (!isNOU(icon)) {\n this.expandAction(liEle, icon, null);\n }\n this.expandByLevel(select('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes);\n }\n }\n };\n TreeView.prototype.expandAllNodes = function (excludeHiddenNodes) {\n var eIcons = this.getVisibleNodes(excludeHiddenNodes, selectAll('.' + EXPANDABLE, this.element));\n for (var i = 0, len = eIcons.length; i < len; i++) {\n var icon = eIcons[i];\n var liEle = closest(icon, '.' + LISTITEM);\n this.expandAction(liEle, icon, null, true);\n }\n };\n TreeView.prototype.getVisibleNodes = function (excludeHiddenNodes, nodes) {\n var vNodes = Array.prototype.slice.call(nodes);\n if (excludeHiddenNodes) {\n for (var i = 0; i < vNodes.length; i++) {\n if (!isVisible(vNodes[i])) {\n vNodes.splice(i, 1);\n i--;\n }\n }\n }\n return vNodes;\n };\n TreeView.prototype.removeNode = function (node) {\n var dragParentUl = closest(node, '.' + PARENTITEM);\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\n if (!isNOU(this.nodeTemplateFn)) {\n this.destroyTemplate(node);\n }\n detach(node);\n this.updateElement(dragParentUl, dragParentLi);\n this.removeData(node);\n };\n TreeView.prototype.updateInstance = function () {\n this.updateList();\n this.updateSelectedNodes();\n this.updateExpandedNodes();\n };\n TreeView.prototype.updateList = function () {\n this.liList = Array.prototype.slice.call(selectAll('.' + LISTITEM, this.element));\n };\n TreeView.prototype.updateSelectedNodes = function () {\n this.setProperties({ selectedNodes: [] }, true);\n var sNodes = selectAll('.' + ACTIVE, this.element);\n this.selectGivenNodes(sNodes);\n };\n TreeView.prototype.updateExpandedNodes = function () {\n this.setProperties({ expandedNodes: [] }, true);\n var eNodes = selectAll('[aria-expanded=\"true\"]', this.element);\n for (var i = 0, len = eNodes.length; i < len; i++) {\n this.addExpand(eNodes[i]);\n }\n };\n TreeView.prototype.removeData = function (node) {\n if (this.dataType === 1) {\n var dm = new DataManager(this.treeData);\n var id = this.getId(node);\n var data = {};\n var newId = this.isNumberTypeId ? parseFloat(id) : id;\n data[this.fields.id] = newId;\n dm.remove(this.fields.id, data);\n this.removeChildNodes(id);\n }\n else {\n var id = this.getId(node);\n this.updateChildField(this.treeData, this.fields, id, null, null, true);\n }\n };\n TreeView.prototype.removeChildNodes = function (parentId) {\n var cNodes = this.getChildGroup(this.groupedData, parentId, false);\n var childData = [];\n if (cNodes) {\n for (var i = 0, len = cNodes.length; i < len; i++) {\n var dm = new DataManager(this.treeData);\n var id = getValue(this.fields.id, cNodes[i]).toString();\n var data = {};\n var currId = this.isNumberTypeId ? parseFloat(id) : id;\n data[this.fields.id] = currId;\n var nodeData = dm.remove(this.fields.id, data);\n childData.push(nodeData[0]);\n this.removeChildNodes(id);\n }\n }\n return childData;\n };\n TreeView.prototype.doGivenAction = function (nodes, selector, toExpand) {\n for (var i = 0, len = nodes.length; i < len; i++) {\n var liEle = this.getElement(nodes[i]);\n if (isNOU(liEle)) {\n continue;\n }\n var icon = select('.' + selector, select('.' + TEXTWRAP, liEle));\n if (!isNOU(icon)) {\n toExpand ? this.expandAction(liEle, icon, null) : this.collapseNode(liEle, icon, null);\n }\n }\n };\n TreeView.prototype.addGivenNodes = function (nodes, dropLi, index, isRemote, dropEle) {\n if (nodes.length === 0) {\n return;\n }\n var sNodes = this.getSortedData(nodes);\n var level = dropLi ? parseFloat(dropLi.getAttribute('aria-level')) + 1 : 1;\n if (isRemote) {\n this.updateMapper(level);\n }\n var li = ListBase.createListItemFromJson(this.createElement, sNodes, this.listBaseOption, level);\n var id = this.getId(dropLi);\n var refNode;\n var dropIcon1;\n if (!isNullOrUndefined(dropLi)) {\n dropIcon1 = select('div.' + ICON, dropLi);\n }\n if (this.dataType === 1 && dropIcon1 && dropIcon1.classList.contains(EXPANDABLE) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {\n this.preventExpand = true;\n }\n if (this.dataType !== 1) {\n this.addChildData(this.treeData, this.fields, id, nodes, index);\n this.isFirstRender = false;\n }\n var dropUl;\n if (!dropEle) {\n dropUl = dropLi ? this.expandParent(dropLi) : select('.' + PARENTITEM, this.element);\n }\n else {\n dropUl = dropEle;\n }\n refNode = dropUl.childNodes[index];\n if (!this.isFirstRender || this.dataType === 1) {\n var args = this.expandArgs;\n if (refNode || this.sortOrder === 'None') {\n for (var i = 0; i < li.length; i++) {\n dropUl.insertBefore(li[i], refNode);\n }\n if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {\n this.preventExpand = false;\n var dropIcon = select('div.' + ICON, dropLi);\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (isNOU(args) || args.name != 'nodeExpanding')) {\n this.expandAction(dropLi, dropIcon, null);\n }\n }\n }\n if (!refNode && ((this.sortOrder === 'Ascending') || (this.sortOrder === 'Descending'))) {\n if (dropUl.childNodes.length === 0) {\n for (var i = 0; i < li.length; i++) {\n dropUl.insertBefore(li[i], refNode);\n }\n if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {\n this.preventExpand = false;\n var dropIcon = select('div.' + ICON, dropLi);\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (isNOU(args) || args.name != 'nodeExpanding')) {\n this.expandAction(dropLi, dropIcon, null);\n }\n }\n }\n else {\n var cNodes = dropUl.childNodes;\n for (var i = 0; i < li.length; i++) {\n for (var j = 0; j < cNodes.length; j++) {\n var returnValue = (this.sortOrder === 'Ascending') ? cNodes[j].textContent.toUpperCase() > li[i].innerText.toUpperCase() : cNodes[j].textContent.toUpperCase() < li[i].innerText.toUpperCase();\n if (returnValue) {\n dropUl.insertBefore(li[i], cNodes[j]);\n break;\n }\n dropUl.insertBefore(li[i], cNodes[cNodes.length]);\n }\n }\n }\n }\n }\n if (this.dataType === 1) {\n this.updateField(this.treeData, this.fields, id, 'hasChildren', true);\n var refId = this.getId(refNode);\n var pos = isNOU(refId) ? this.treeData.length : this.getDataPos(this.treeData, this.fields, refId);\n for (var j = 0; j < nodes.length; j++) {\n if (!isNOU(id)) {\n var currId = this.isNumberTypeId ? parseFloat(id) : id;\n setValue(this.fields.parentID, currId, nodes[j]);\n }\n this.treeData.splice(pos, 0, nodes[j]);\n pos++;\n }\n }\n this.finalizeNode(dropUl);\n };\n TreeView.prototype.updateMapper = function (level) {\n var mapper = (level === 1) ? this.fields : this.getChildFields(this.fields, level - 1, 1);\n this.updateListProp(mapper);\n };\n TreeView.prototype.updateListProp = function (mapper) {\n var prop = this.getActualProperties(mapper);\n this.listBaseOption.fields = prop;\n this.listBaseOption.fields.url = prop.hasOwnProperty('navigateUrl') ? prop.navigateUrl : 'navigateUrl';\n };\n TreeView.prototype.getDataPos = function (obj, mapper, id) {\n var pos = null;\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, obj[i]);\n if (obj[i] && nodeId && nodeId.toString() === id) {\n return i;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var data = getValue(mapper.child, obj[i]);\n pos = this.getDataPos(data, this.getChildMapper(mapper), id);\n if (pos !== null) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n var items = getValue('child', obj[i]);\n pos = this.getDataPos(items, this.getChildMapper(mapper), id);\n if (pos !== null) {\n break;\n }\n }\n }\n return pos;\n };\n TreeView.prototype.addChildData = function (obj, mapper, id, data, index) {\n var updated;\n if (isNOU(id)) {\n index = isNOU(index) ? obj.length : index;\n for (var k = 0, len = data.length; k < len; k++) {\n obj.splice(index, 0, data[k]);\n index++;\n }\n return updated;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, obj[i]);\n if (obj[i] && nodeId && nodeId.toString() === id) {\n if ((typeof mapper.child === 'string' && (obj[i].hasOwnProperty(mapper.child) && obj[i][mapper.child] !== null)) ||\n ((this.fields.dataSource instanceof DataManager) && obj[i].hasOwnProperty('child'))) {\n var key = (typeof mapper.child === 'string') ? mapper.child : 'child';\n var childData = getValue(key, obj[i]);\n if (isNOU(childData)) {\n childData = [];\n }\n index = isNOU(index) ? childData.length : index;\n for (var k = 0, len = data.length; k < len; k++) {\n childData.splice(index, 0, data[k]);\n index++;\n }\n }\n else {\n var key = (typeof mapper.child === 'string') ? mapper.child : 'child';\n obj[i][key] = data;\n }\n return true;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var childObj = getValue(mapper.child, obj[i]);\n updated = this.addChildData(childObj, this.getChildMapper(mapper), id, data, index);\n if (updated !== undefined) {\n break;\n }\n }\n else if ((this.fields.dataSource instanceof DataManager) && !isNOU(getValue('child', obj[i]))) {\n var childData = getValue('child', obj[i]);\n updated = this.addChildData(childData, this.getChildMapper(mapper), id, data, index);\n if (updated !== undefined) {\n break;\n }\n }\n }\n return updated;\n };\n TreeView.prototype.doDisableAction = function (nodes) {\n var validNodes = this.nodeType(nodes);\n var validID = this.checkValidId(validNodes);\n this.validArr = [];\n for (var i = 0, len = validID.length; i < len; i++) {\n var id = validID[i][this.fields.id].toString();\n if (id && this.disableNode.indexOf(id) === -1) {\n this.disableNode.push(id);\n }\n var liEle = this.getElement(id);\n if (liEle) {\n liEle.setAttribute('aria-disabled', 'true');\n addClass([liEle], DISABLE);\n }\n }\n };\n TreeView.prototype.doEnableAction = function (nodes) {\n var strNodes = this.nodeType(nodes);\n for (var i = 0, len = strNodes.length; i < len; i++) {\n var liEle = this.getElement(strNodes[i]);\n var id = strNodes[i];\n if (id && this.disableNode.indexOf(id) !== -1) {\n this.disableNode.splice(this.disableNode.indexOf(id), 1);\n }\n if (liEle) {\n liEle.removeAttribute('aria-disabled');\n removeClass([liEle], DISABLE);\n }\n }\n };\n TreeView.prototype.nodeType = function (nodes) {\n var validID = [];\n for (var i = 0, len = nodes.length; i < len; i++) {\n var id = void 0;\n if (typeof nodes[i] == \"string\") {\n id = (nodes[i]) ? nodes[i].toString() : null;\n }\n else if (typeof nodes[i] === \"object\") {\n id = nodes[i] ? nodes[i].getAttribute(\"data-uid\").toString() : null;\n }\n if (validID.indexOf(id) == -1) {\n validID.push(id);\n }\n }\n return validID;\n };\n TreeView.prototype.checkValidId = function (node) {\n var _this = this;\n if (this.dataType === 1) {\n this.validArr = this.treeData.filter(function (data) {\n return node.indexOf(data[_this.fields.id] ? data[_this.fields.id].toString() : null) !== -1;\n });\n }\n else if (this.dataType === 2) {\n for (var k = 0; k < this.treeData.length; k++) {\n var id = this.treeData[k][this.fields.id] ? this.treeData[k][this.fields.id].toString() : null;\n if (node.indexOf(id) !== -1) {\n this.validArr.push(this.treeData[k]);\n }\n var childItems = getValue(this.fields.child.toString(), this.treeData[k]);\n if (childItems) {\n this.filterNestedChild(childItems, node);\n }\n }\n }\n return this.validArr;\n };\n TreeView.prototype.filterNestedChild = function (treeData, nodes) {\n for (var k = 0; k < treeData.length; k++) {\n var id = treeData[k][this.fields.id] ? treeData[k][this.fields.id].toString() : null;\n if (nodes.indexOf(id) !== -1) {\n this.validArr.push(treeData[k]);\n }\n var childItems = getValue(this.fields.child.toString(), treeData[k]);\n if (childItems) {\n this.filterNestedChild(childItems, nodes);\n }\n }\n };\n TreeView.prototype.setTouchClass = function () {\n var ele = closest(this.element, '.' + BIGGER);\n this.touchClass = isNOU(ele) ? '' : SMALL;\n };\n TreeView.prototype.updatePersistProp = function () {\n this.removeField(this.treeData, this.fields, ['selected', 'expanded']);\n var sleNodes = this.selectedNodes;\n for (var l = 0, slelen = sleNodes.length; l < slelen; l++) {\n this.updateField(this.treeData, this.fields, sleNodes[l], 'selected', true);\n }\n var enodes = this.expandedNodes;\n for (var k = 0, nodelen = enodes.length; k < nodelen; k++) {\n this.updateField(this.treeData, this.fields, enodes[k], 'expanded', true);\n }\n if (this.showCheckBox) {\n this.removeField(this.treeData, this.fields, ['isChecked']);\n var cnodes = this.checkedNodes;\n for (var m = 0, nodelen = cnodes.length; m < nodelen; m++) {\n this.updateField(this.treeData, this.fields, cnodes[m], 'isChecked', true);\n }\n }\n };\n TreeView.prototype.removeField = function (obj, mapper, names) {\n if (isNOU(obj) || isNOU(mapper)) {\n return;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n for (var j = 0; j < names.length; j++) {\n var field = this.getMapperProp(mapper, names[j]);\n if (!isNOU(obj[i][field])) {\n delete obj[i][field];\n }\n }\n if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n this.removeField(getValue(mapper.child, obj[i]), this.getChildMapper(mapper), names);\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n this.removeField(getValue('child', obj[i]), this.getChildMapper(mapper), names);\n }\n }\n };\n TreeView.prototype.getMapperProp = function (mapper, fieldName) {\n switch (fieldName) {\n case 'selected':\n return !isNOU(mapper.selected) ? mapper.selected : 'selected';\n case 'expanded':\n return !isNOU(mapper.expanded) ? mapper.expanded : 'expanded';\n case 'isChecked':\n return !isNOU(mapper.isChecked) ? mapper.isChecked : 'isChecked';\n case 'hasChildren':\n return !isNOU(mapper.hasChildren) ? mapper.hasChildren : 'hasChildren';\n default:\n return fieldName;\n }\n };\n TreeView.prototype.updateField = function (obj, mapper, id, key, value) {\n var childNodes;\n if (isNOU(id)) {\n return;\n }\n else if (this.dataType === 1) {\n var newId = this.isNumberTypeId ? parseFloat(id) : id;\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', newId, false));\n setValue(this.getMapperProp(mapper, key), value, resultData[0]);\n }\n else {\n this.updateChildField(obj, mapper, id, key, value);\n }\n };\n TreeView.prototype.updateChildField = function (obj, mapper, id, key, value, remove) {\n var removedData;\n if (isNOU(obj)) {\n return removedData;\n }\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, obj[i]);\n if (obj[i] && nodeId && nodeId.toString() === id) {\n if (remove) {\n removedData = obj.splice(i, 1);\n }\n else {\n setValue(this.getMapperProp(mapper, key), value, obj[i]);\n removedData = [];\n }\n return removedData;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\n var childData = getValue(mapper.child, obj[i]);\n removedData = this.updateChildField(childData, this.getChildMapper(mapper), id, key, value, remove);\n if (removedData !== undefined) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\n var childItems = getValue('child', obj[i]);\n removedData = this.updateChildField(childItems, this.getChildMapper(mapper), id, key, value, remove);\n if (removedData !== undefined) {\n break;\n }\n }\n }\n return removedData;\n };\n TreeView.prototype.triggerEvent = function (action, node) {\n this.renderReactTemplates();\n if (action === 'addNodes') {\n var nodeData = [];\n for (var i = 0; i < node.length; i++) {\n nodeData.push(this.getNode(this.getElement(isNOU(node[i][this.fields.id]) ? getValue(this.fields.id, node[i]).toString() : null)));\n }\n node = nodeData;\n }\n var eventArgs = { data: this.treeData, action: action, nodeData: node };\n this.trigger('dataSourceChanged', eventArgs);\n };\n TreeView.prototype.wireInputEvents = function (inpEle) {\n EventHandler.add(inpEle, 'blur', this.inputFocusOut, this);\n };\n TreeView.prototype.wireEditingEvents = function (toBind) {\n var _this = this;\n if (toBind && !this.disabled) {\n var proxy_2 = this;\n this.touchEditObj = new Touch(this.element, {\n tap: function (e) {\n if (_this.isDoubleTapped(e) && e.tapCount === 2) {\n e.originalEvent.preventDefault();\n proxy_2.editingHandler(e.originalEvent);\n }\n }\n });\n }\n else {\n if (this.touchEditObj) {\n this.touchEditObj.destroy();\n }\n }\n };\n TreeView.prototype.wireClickEvent = function (toBind) {\n if (toBind) {\n var proxy_3 = this;\n this.touchClickObj = new Touch(this.element, {\n tap: function (e) {\n proxy_3.clickHandler(e);\n }\n });\n }\n else {\n if (this.touchClickObj) {\n this.touchClickObj.destroy();\n }\n }\n };\n TreeView.prototype.wireExpandOnEvent = function (toBind) {\n var _this = this;\n if (toBind) {\n var proxy_4 = this;\n this.touchExpandObj = new Touch(this.element, {\n tap: function (e) {\n if ((_this.expandOnType === 'Click' || (_this.expandOnType === 'DblClick' && _this.isDoubleTapped(e) && e.tapCount === 2))\n && e.originalEvent.which !== 3) {\n proxy_4.expandHandler(e);\n }\n }\n });\n }\n else {\n if (this.touchExpandObj) {\n this.touchExpandObj.destroy();\n }\n }\n };\n TreeView.prototype.mouseDownHandler = function (e) {\n this.mouseDownStatus = true;\n if (e.shiftKey || e.ctrlKey) {\n e.preventDefault();\n }\n if (e.ctrlKey && this.allowMultiSelection) {\n EventHandler.add(this.element, 'contextmenu', this.preventContextMenu, this);\n }\n };\n ;\n TreeView.prototype.preventContextMenu = function (e) {\n e.preventDefault();\n };\n TreeView.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\n this.wireClickEvent(true);\n if (this.expandOnType !== 'None') {\n this.wireExpandOnEvent(true);\n }\n EventHandler.add(this.element, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.element, 'mouseout', this.onMouseLeave, this);\n this.keyboardModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown',\n });\n };\n TreeView.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\n this.wireClickEvent(false);\n this.wireExpandOnEvent(false);\n EventHandler.remove(this.element, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.element, 'mouseout', this.onMouseLeave);\n if (!this.disabled) {\n this.keyboardModule.destroy();\n }\n };\n TreeView.prototype.parents = function (element, selector) {\n var matched = [];\n var el = element.parentNode;\n while (!isNOU(el)) {\n if (matches(el, selector)) {\n matched.push(el);\n }\n el = el.parentNode;\n }\n return matched;\n };\n TreeView.prototype.isDoubleTapped = function (e) {\n var target = e.originalEvent.target;\n var secondTap;\n if (target && e.tapCount) {\n if (e.tapCount === 1) {\n this.firstTap = closest(target, '.' + LISTITEM);\n }\n else if (e.tapCount === 2) {\n secondTap = closest(target, '.' + LISTITEM);\n }\n }\n return (this.firstTap === secondTap);\n };\n TreeView.prototype.isDescendant = function (parent, child) {\n var node = child.parentNode;\n while (!isNOU(node)) {\n if (node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n };\n TreeView.prototype.showSpinner = function (element) {\n addClass([element], LOAD);\n createSpinner({\n target: element,\n width: Browser.isDevice ? 16 : 14\n }, this.createElement);\n showSpinner(element);\n };\n TreeView.prototype.hideSpinner = function (element) {\n hideSpinner(element);\n element.innerHTML = '';\n removeClass([element], LOAD);\n };\n TreeView.prototype.setCheckedNodes = function (nodes) {\n nodes = JSON.parse(JSON.stringify(nodes));\n this.uncheckAll(this.checkedNodes);\n this.setIndeterminate(nodes);\n if (nodes.length > 0) {\n this.checkAll(nodes);\n }\n };\n /**\n * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel\n */\n TreeView.prototype.setValidCheckedNode = function (node) {\n if (this.dataType === 1) {\n var mapper = this.fields;\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', node, true));\n if (resultData[0]) {\n this.setChildCheckState(resultData, node, resultData[0]);\n if (this.autoCheck) {\n var parent_4 = resultData[0][this.fields.parentID] ? resultData[0][this.fields.parentID].toString() : null;\n var childNodes = this.getChildNodes(this.treeData, parent_4);\n var count = 0;\n for (var len = 0; len < childNodes.length; len++) {\n var childId = childNodes[len][this.fields.id].toString();\n if (this.checkedNodes.indexOf(childId) !== -1) {\n count++;\n }\n }\n if (count === childNodes.length && this.checkedNodes.indexOf(parent_4) === -1 && parent_4) {\n this.checkedNodes.push(parent_4);\n }\n }\n }\n }\n else if (this.dataType === 2) {\n for (var a = 0; a < this.treeData.length; a++) {\n var index = this.treeData[a][this.fields.id] ? this.treeData[a][this.fields.id].toString() : '';\n if (index === node && this.checkedNodes.indexOf(node) === -1) {\n this.checkedNodes.push(node);\n break;\n }\n var childItems = getValue(this.fields.child.toString(), this.treeData[a]);\n if (childItems) {\n this.setChildCheckState(childItems, node, this.treeData[a]);\n }\n }\n }\n };\n /**\n * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)\n */\n TreeView.prototype.setChildCheckState = function (childItems, node, treeData) {\n var checkedParent;\n var count = 0;\n if (this.dataType === 1) {\n if (treeData) {\n checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : null;\n }\n for (var index = 0; index < childItems.length; index++) {\n var checkNode = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : null;\n if (treeData && checkedParent && this.autoCheck) {\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkNode) === -1) {\n this.checkedNodes.push(checkNode);\n }\n }\n if (checkNode === node && this.checkedNodes.indexOf(node) === -1) {\n this.checkedNodes.push(node);\n }\n var subChildItems = this.getChildNodes(this.treeData, checkNode);\n if (subChildItems) {\n this.setChildCheckState(subChildItems, node, treeData);\n }\n }\n }\n else {\n if (treeData) {\n checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';\n }\n for (var index = 0; index < childItems.length; index++) {\n var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';\n if (treeData && checkedParent && this.autoCheck) {\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {\n this.checkedNodes.push(checkedChild);\n }\n }\n if (checkedChild === node && this.checkedNodes.indexOf(node) === -1) {\n this.checkedNodes.push(node);\n }\n var subChildItems = getValue(this.fields.child.toString(), childItems[index]);\n if (subChildItems) {\n this.setChildCheckState(subChildItems, node, childItems[index]);\n }\n if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {\n count++;\n }\n if (count === childItems.length && this.checkedNodes.indexOf(checkedParent) === -1 && this.autoCheck) {\n this.checkedNodes.push(checkedParent);\n }\n }\n }\n };\n TreeView.prototype.setIndeterminate = function (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n this.setValidCheckedNode(nodes[i]);\n }\n };\n TreeView.prototype.updatePosition = function (id, newData, isRefreshChild, childValue) {\n if (this.dataType === 1) {\n var pos = this.getDataPos(this.treeData, this.fields, id);\n this.treeData.splice(pos, 1, newData);\n if (isRefreshChild) {\n this.removeChildNodes(id);\n for (var j = 0; j < childValue.length; j++) {\n this.treeData.splice(pos, 0, childValue[j]);\n pos++;\n }\n }\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n else {\n this.updateChildPosition(this.treeData, this.fields, id, [newData], undefined);\n }\n };\n TreeView.prototype.updateChildPosition = function (treeData, mapper, currID, newData, index) {\n var found;\n for (var i = 0, objlen = treeData.length; i < objlen; i++) {\n var nodeId = getValue(mapper.id, treeData[i]);\n if (treeData[i] && nodeId && nodeId.toString() === currID) {\n treeData[i] = newData[0];\n return true;\n }\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, treeData[i]))) {\n var childObj = getValue(mapper.child, treeData[i]);\n found = this.updateChildPosition(childObj, this.getChildMapper(mapper), currID, newData, index);\n if (found !== undefined) {\n break;\n }\n }\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', treeData[i]))) {\n var childData = getValue('child', treeData[i]);\n found = this.updateChildPosition(childData, this.getChildMapper(mapper), currID, newData, index);\n if (found !== undefined) {\n break;\n }\n }\n }\n return found;\n };\n TreeView.prototype.dynamicState = function () {\n this.setDragAndDrop(this.allowDragAndDrop);\n this.wireEditingEvents(this.allowEditing);\n if (!this.disabled) {\n this.wireEvents();\n this.setRipple();\n }\n else {\n this.unWireEvents();\n this.rippleFn();\n this.rippleIconFn();\n }\n };\n TreeView.prototype.crudOperation = function (operation, nodes, target, newText, newNode, index, prevent) {\n var _this = this;\n var data = this.fields.dataSource;\n var matchedArr = [];\n var query = this.getQuery(this.fields);\n var key = this.fields.id;\n var crud;\n var changes = {\n addedRecords: [],\n deletedRecords: [],\n changedRecords: []\n };\n var nodesID = [];\n if (nodes) {\n nodesID = this.nodeType(nodes);\n }\n else if (target) {\n if (typeof target == \"string\") {\n nodesID[0] = target.toString();\n }\n else if (typeof target === \"object\") {\n nodesID[0] = target.getAttribute(\"data-uid\").toString();\n }\n }\n for (var i = 0, len = nodesID.length; i < len; i++) {\n var liEle = this.getElement(nodesID[i]);\n if (isNullOrUndefined(liEle)) {\n continue;\n }\n var removedData = this.getNodeObject(nodesID[i]);\n matchedArr.push(removedData);\n }\n switch (operation) {\n case 'delete':\n if (nodes.length == 1) {\n crud = data.remove(key, matchedArr[0], query.fromTable, query);\n }\n else {\n changes.deletedRecords = matchedArr;\n crud = data.saveChanges(changes, key, query.fromTable, query);\n }\n crud.then(function (e) { return _this.deleteSuccess(nodesID); })\n .catch(function (e) { return _this.dmFailure(e); });\n break;\n case 'update':\n matchedArr[0][this.fields.text] = newText;\n crud = data.update(key, matchedArr[0], query.fromTable, query);\n crud.then(function (e) { return _this.editSucess(target, newText, prevent); })\n .catch(function (e) { return _this.dmFailure(e, target, prevent); });\n break;\n case 'insert':\n if (newNode.length == 1) {\n crud = data.insert(newNode[0], query.fromTable, query);\n }\n else {\n var arr = [];\n for (var i = 0, len = newNode.length; i < len; i++) {\n arr.push(newNode[i]);\n }\n changes.addedRecords = arr;\n crud = data.saveChanges(changes, key, query.fromTable, query);\n }\n crud.then(function (e) {\n var dropLi = _this.getElement(target);\n _this.addSuccess(newNode, dropLi, index);\n _this.preventExpand = false;\n }).catch(function (e) { return _this.dmFailure(e); });\n break;\n }\n };\n TreeView.prototype.deleteSuccess = function (nodes) {\n var nodeData = [];\n for (var i = 0, len = nodes.length; i < len; i++) {\n var liEle = this.getElement(nodes[i]);\n nodeData.push(this.getNode(liEle));\n if (isNOU(liEle)) {\n continue;\n }\n this.removeNode(liEle);\n }\n this.updateInstance();\n if (this.dataType === 1) {\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n this.triggerEvent('removeNode', nodeData);\n };\n TreeView.prototype.editSucess = function (target, newText, prevent) {\n var liEle = this.getElement(target);\n var txtEle = select('.' + LISTTEXT, liEle);\n this.appendNewText(liEle, txtEle, newText, prevent);\n };\n TreeView.prototype.addSuccess = function (nodes, dropLi, index) {\n var dropUl;\n var icon = dropLi ? dropLi.querySelector('.' + ICON) : null;\n var proxy = this;\n if (dropLi && icon && icon.classList.contains(EXPANDABLE) &&\n dropLi.querySelector('.' + PARENTITEM) === null) {\n proxy.renderChildNodes(dropLi, null, function () {\n dropUl = dropLi.querySelector('.' + PARENTITEM);\n proxy.addGivenNodes(nodes, dropLi, index, true, dropUl);\n proxy.triggerEvent('addNodes', nodes);\n });\n }\n else {\n this.addGivenNodes(nodes, dropLi, index, true);\n this.triggerEvent('addNodes', nodes);\n }\n };\n TreeView.prototype.dmFailure = function (e, target, prevent) {\n if (target) {\n this.updatePreviousText(target, prevent);\n }\n this.trigger('actionFailure', { error: e });\n };\n TreeView.prototype.updatePreviousText = function (target, prevent) {\n var liEle = this.getElement(target);\n var txtEle = select('.' + LISTTEXT, liEle);\n this.updateText(liEle, txtEle, this.oldText, prevent);\n };\n TreeView.prototype.getHierarchicalParentId = function (node, data, parentsID) {\n var _this = this;\n var index = data.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; });\n if (index == -1) {\n for (var i = 0; i < data.length; i++) {\n var childItems = getValue(this.fields.child.toString(), data[i]);\n if (!isNOU(childItems)) {\n index = childItems.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; });\n if (index == -1) {\n this.getHierarchicalParentId(node, childItems, parentsID);\n }\n else {\n parentsID.push(data[i][this.fields.id].toString());\n this.getHierarchicalParentId(data[i][this.fields.id].toString(), this.treeData, parentsID);\n break;\n }\n }\n }\n }\n return parentsID;\n };\n /**\n * Called internally if any of the property value changed.\n * @param {TreeView} newProp\n * @param {TreeView} oldProp\n * @returns void\n * @private\n */\n TreeView.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 'allowDragAndDrop':\n this.setDragAndDrop(this.allowDragAndDrop);\n break;\n case 'dragArea':\n if (this.allowDragAndDrop) {\n this.dragObj.dragArea = this.dragArea;\n }\n break;\n case 'allowEditing':\n this.wireEditingEvents(this.allowEditing);\n break;\n case 'allowMultiSelection':\n if (this.selectedNodes.length > 1) {\n var sNode = this.getElement(this.selectedNodes[0]);\n this.isLoaded = false;\n this.removeSelectAll();\n this.selectNode(sNode, null);\n this.isLoaded = true;\n }\n this.setMultiSelect(this.allowMultiSelection);\n this.addMultiSelect(this.allowMultiSelection);\n break;\n case 'allowTextWrap':\n this.setTextWrap();\n this.updateWrap();\n break;\n case 'checkedNodes':\n if (this.showCheckBox) {\n this.checkedNodes = oldProp.checkedNodes;\n this.setCheckedNodes(newProp.checkedNodes);\n }\n break;\n case 'autoCheck':\n if (this.showCheckBox) {\n this.autoCheck = newProp.autoCheck;\n this.ensureIndeterminate();\n }\n break;\n case 'cssClass':\n this.setCssClass(oldProp.cssClass, newProp.cssClass);\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'expandedNodes':\n this.isAnimate = false;\n this.setProperties({ expandedNodes: [] }, true);\n this.collapseAll();\n this.isInitalExpand = true;\n this.setProperties({ expandedNodes: isNOU(newProp.expandedNodes) ? [] : newProp.expandedNodes }, true);\n this.doExpandAction();\n this.isInitalExpand = false;\n this.isAnimate = true;\n break;\n case 'expandOn':\n this.wireExpandOnEvent(false);\n this.setExpandOnType();\n if (this.expandOnType !== 'None' && !this.disabled) {\n this.wireExpandOnEvent(true);\n }\n break;\n case 'disabled':\n this.setDisabledMode();\n this.dynamicState();\n break;\n case 'fields':\n this.isAnimate = false;\n this.isFieldChange = true;\n this.initialRender = true;\n this.reRenderNodes();\n this.initialRender = false;\n this.isAnimate = true;\n this.isFieldChange = false;\n break;\n case 'fullRowSelect':\n this.setFullRow(this.fullRowSelect);\n this.addFullRow(this.fullRowSelect);\n if (this.allowTextWrap) {\n this.setTextWrap();\n this.updateWrap();\n }\n break;\n case 'loadOnDemand':\n if (this.loadOnDemand === false && !this.onLoaded) {\n var nodes = this.element.querySelectorAll('li');\n var i = 0;\n while (i < nodes.length) {\n if (nodes[i].getAttribute('aria-expanded') !== 'true') {\n this.renderChildNodes(nodes[i], true, null, true);\n }\n i++;\n }\n this.onLoaded = true;\n }\n break;\n case 'nodeTemplate':\n this.hasTemplate = false;\n this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);\n this.reRenderNodes();\n break;\n case 'selectedNodes':\n this.removeSelectAll();\n this.setProperties({ selectedNodes: newProp.selectedNodes }, true);\n this.doSelectionAction();\n break;\n case 'showCheckBox':\n this.reRenderNodes();\n break;\n case 'sortOrder':\n this.reRenderNodes();\n break;\n case 'fullRowNavigable':\n this.setProperties({ fullRowNavigable: newProp.fullRowNavigable }, true);\n this.listBaseOption.itemNavigable = newProp.fullRowNavigable;\n this.reRenderNodes();\n break;\n }\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\n */\n TreeView.prototype.destroy = function () {\n this.clearTemplate();\n this.element.removeAttribute('aria-activedescendant');\n this.unWireEvents();\n this.wireEditingEvents(false);\n if (!this.disabled) {\n this.rippleFn();\n this.rippleIconFn();\n }\n this.setCssClass(this.cssClass, null);\n this.setDragAndDrop(false);\n this.setFullRow(false);\n if (this.ulElement && this.ulElement.parentElement) {\n this.ulElement.parentElement.removeChild(this.ulElement);\n }\n _super.prototype.destroy.call(this);\n };\n /**\n * Adds the collection of TreeView nodes based on target and index position. If target node is not specified,\n * then the nodes are added as children of the given parentID or in the root level of TreeView.\n * @param { { [key: string]: Object }[] } nodes - Specifies the array of JSON data that has to be added.\n * @param { string | Element } target - Specifies ID of TreeView node/TreeView node as target element.\n * @param { number } index - Specifies the index to place the newly added nodes in the target element.\n * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding.\n */\n TreeView.prototype.addNodes = function (nodes, target, index, preventTargetExpand) {\n if (isNOU(nodes)) {\n return;\n }\n nodes = JSON.parse(JSON.stringify(nodes));\n var dropLi = this.getElement(target);\n this.preventExpand = preventTargetExpand;\n if (this.fields.dataSource instanceof DataManager) {\n if (!this.isOffline) {\n this.crudOperation('insert', null, target, null, nodes, index, this.preventExpand);\n }\n else {\n this.addSuccess(nodes, dropLi, index);\n }\n }\n else if (this.dataType === 2) {\n this.addGivenNodes(nodes, dropLi, index);\n }\n else {\n if (dropLi) {\n this.addGivenNodes(nodes, dropLi, index);\n }\n else {\n nodes = this.getSortedData(nodes);\n for (var i = 0; i < nodes.length; i++) {\n var pid = getValue(this.fields.parentID, nodes[i]);\n dropLi = pid ? this.getElement(pid.toString()) : pid;\n this.addGivenNodes([nodes[i]], dropLi, index);\n }\n }\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\n }\n this.updateCheckedStateFromDS();\n if (this.showCheckBox && dropLi) {\n this.ensureParentCheckState(dropLi);\n }\n if ((this.fields.dataSource instanceof DataManager === false)) {\n this.preventExpand = false;\n this.triggerEvent('addNodes', nodes);\n }\n };\n /**\n * Editing can also be enabled by using the `beginEdit` property, instead of clicking on the\n * TreeView node. On passing the node ID or element through this property, the edit textBox\n * will be created for the particular node thus allowing us to edit it.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\n */\n TreeView.prototype.beginEdit = function (node) {\n var ele = this.getElement(node);\n if (isNOU(ele) || this.disabled) {\n return;\n }\n this.createTextbox(ele, null);\n };\n /**\n * Checks all the unchecked nodes. You can also check specific nodes by passing array of unchecked nodes\n * as argument to this method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n */\n TreeView.prototype.checkAll = function (nodes) {\n if (this.showCheckBox) {\n this.doCheckBoxAction(nodes, true);\n }\n };\n /**\n * Collapses all the expanded TreeView nodes. You can collapse specific nodes by passing array of nodes as argument to this method.\n * You can also collapse all the nodes excluding the hidden nodes by setting **excludeHiddenNodes** to true. If you want to collapse\n * a specific level of nodes, set **level** as argument to collapseAll method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/ array of TreeView node.\n * @param {number} level - TreeView nodes will collapse up to the given level.\n * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes of TreeView when collapsing all nodes.\n */\n TreeView.prototype.collapseAll = function (nodes, level, excludeHiddenNodes) {\n if (!isNOU(nodes)) {\n this.doGivenAction(nodes, COLLAPSIBLE, false);\n }\n else {\n if (level > 0) {\n this.collapseByLevel(select('.' + PARENTITEM, this.element), level, excludeHiddenNodes);\n }\n else {\n this.collapseAllNodes(excludeHiddenNodes);\n }\n }\n };\n /**\n * Disables the collection of nodes by passing the ID of nodes or node elements in the array.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\n */\n TreeView.prototype.disableNodes = function (nodes) {\n if (!isNOU(nodes)) {\n this.doDisableAction(nodes);\n }\n };\n /**\n * Enables the collection of disabled nodes by passing the ID of nodes or node elements in the array.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\n */\n TreeView.prototype.enableNodes = function (nodes) {\n if (!isNOU(nodes)) {\n this.doEnableAction(nodes);\n }\n };\n /**\n * Ensures visibility of the TreeView node by using node ID or node element.\n * When many TreeView nodes are present and we need to find a particular node, `ensureVisible` property\n * helps bring the node to visibility by expanding the TreeView and scrolling to the specific node.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView nodes.\n */\n TreeView.prototype.ensureVisible = function (node) {\n var parentsId = [];\n if (this.dataType == 1) {\n var nodeData = this.getTreeData(node);\n while (nodeData.length != 0 && !isNOU(nodeData[0][this.fields.parentID])) {\n parentsId.push(nodeData[0][this.fields.parentID].toString());\n nodeData = this.getTreeData(nodeData[0][this.fields.parentID].toString());\n }\n }\n else if (this.dataType == 2) {\n parentsId = this.getHierarchicalParentId(node, this.treeData, parentsId).reverse();\n }\n this.expandAll(parentsId);\n var liEle = this.getElement(node);\n if (!isNOU(liEle)) {\n if (typeof node == 'object') {\n var parents = this.parents(liEle, '.' + LISTITEM);\n this.expandAll(parents);\n }\n setTimeout(function () { liEle.scrollIntoView({ behavior: \"smooth\" }); }, 450);\n }\n };\n /**\n * Expands all the collapsed TreeView nodes. You can expand the specific nodes by passing the array of collapsed nodes\n * as argument to this method. You can also expand all the collapsed nodes by excluding the hidden nodes by setting\n * **excludeHiddenNodes** to true to this method. To expand a specific level of nodes, set **level** as argument to expandAll method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\n * @param {number} level - TreeView nodes will expand up to the given level.\n * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes when expanding all nodes.\n */\n TreeView.prototype.expandAll = function (nodes, level, excludeHiddenNodes) {\n if (!isNOU(nodes)) {\n this.doGivenAction(nodes, EXPANDABLE, true);\n }\n else {\n if (level > 0) {\n this.expandByLevel(select('.' + PARENTITEM, this.element), level, excludeHiddenNodes);\n }\n else {\n this.expandAllNodes(excludeHiddenNodes);\n }\n }\n };\n /**\n * Gets all the checked nodes including child, whether it is loaded or not.\n */\n TreeView.prototype.getAllCheckedNodes = function () {\n var checkNodes = this.checkedNodes;\n return checkNodes;\n };\n /**\n * Gets all the disabled nodes including child, whether it is loaded or not.\n */\n TreeView.prototype.getDisabledNodes = function () {\n var disabledNodes = this.disableNode;\n return disabledNodes;\n };\n /**\n * Gets the node's data such as id, text, parentID, selected, isChecked, and expanded by passing the node element or it's ID.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\n */\n TreeView.prototype.getNode = function (node) {\n var ele = this.getElement(node);\n return this.getNodeData(ele, true);\n };\n /**\n * To get the updated data source of TreeView after performing some operation like drag and drop, node editing,\n * node selecting/unSelecting, node expanding/collapsing, node checking/unChecking, adding and removing node.\n * * If you pass the ID of TreeView node as arguments for this method then it will return the updated data source\n * of the corresponding node otherwise it will return the entire updated data source of TreeView.\n * * The updated data source also contains custom attributes if you specified in data source.\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\n * @isGenericType true\n */\n TreeView.prototype.getTreeData = function (node) {\n var id = this.getId(node);\n this.updatePersistProp();\n if (isNOU(id)) {\n return this.treeData;\n }\n else {\n var data = this.getNodeObject(id);\n return isNOU(data) ? [] : [data];\n }\n };\n /**\n * Moves the collection of nodes within the same TreeView based on target or its index position.\n * @param {string[] | Element[]} sourceNodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element.\n * @param {number} index - Specifies the index to place the moved nodes in the target element.\n * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding.\n */\n TreeView.prototype.moveNodes = function (sourceNodes, target, index, preventTargetExpand) {\n var dropLi = this.getElement(target);\n var nodeData = [];\n if (isNOU(dropLi)) {\n return;\n }\n for (var i = 0; i < sourceNodes.length; i++) {\n var dragLi = this.getElement(sourceNodes[i]);\n nodeData.push(this.getNode(dragLi));\n if (isNOU(dragLi) || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {\n continue;\n }\n this.preventExpand = preventTargetExpand;\n this.dropAsChildNode(dragLi, dropLi, this, index);\n }\n if (this.fields.dataSource instanceof DataManager === false) {\n this.preventExpand = false;\n }\n this.triggerEvent('moveNodes', nodeData);\n };\n /**\n * Refreshes a particular node of the TreeView.\n * @param {string | Element} target - Specifies the ID of TreeView node or TreeView node as target element.\n * @param {{ [key: string]: Object }[]} newData - Specifies the new data of TreeView node.\n */\n TreeView.prototype.refreshNode = function (target, newData) {\n if (isNOU(target) || isNOU(newData)) {\n return;\n }\n var id;\n var isRefreshChild = false;\n if (this.dataType == 1 && newData.length > 1) {\n isRefreshChild = true;\n }\n else if (this.dataType == 2 && newData.length === 1) {\n var updatedChildValue = getValue(this.fields.child.toString(), newData[0]);\n if (!isNOU(updatedChildValue)) {\n isRefreshChild = true;\n }\n }\n var liEle = this.getElement(target);\n id = liEle ? liEle.getAttribute('data-uid') : ((target) ? target.toString() : null);\n this.refreshData = this.getNodeObject(id);\n newData = JSON.parse(JSON.stringify(newData));\n /* eslint-disable */\n var newNodeData;\n var parentData;\n if (this.dataType == 1 && isRefreshChild) {\n for (var k = 0; k < newData.length; k++) {\n if (isNOU(newData[k][this.fields.parentID])) {\n parentData = newData[k];\n newData.splice(k, 1);\n break;\n }\n }\n newNodeData = extend({}, this.refreshData, parentData);\n }\n else {\n newNodeData = extend({}, this.refreshData, newData[0]);\n }\n if (isNOU(liEle)) {\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\n return;\n }\n this.isRefreshed = true;\n var level = parseFloat(liEle.getAttribute('aria-level'));\n var newliEle = ListBase.createListItemFromJson(this.createElement, [newNodeData], this.listBaseOption, level);\n var ul = select('.' + PARENTITEM, liEle);\n var childItems = getValue(this.fields.child.toString(), newNodeData);\n if ((isRefreshChild && ul) || (isRefreshChild && !isNOU(childItems))) {\n var parentEle = liEle.parentElement;\n var index = Array.prototype.indexOf.call(parentEle.childNodes, liEle);\n remove(liEle);\n parentEle.insertBefore(newliEle[0], parentEle.childNodes[index]);\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\n if (isRefreshChild && ul) {\n this.expandAll([id]);\n }\n }\n else {\n var txtEle = select('.' + TEXTWRAP, liEle);\n var newTextEle = select('.' + TEXTWRAP, newliEle[0]);\n var icon = select('div.' + ICON, txtEle);\n var newIcon = select('div.' + ICON, newTextEle);\n if (icon && newIcon) {\n if (newIcon.classList.contains(EXPANDABLE) && icon.classList.contains(COLLAPSIBLE)) {\n removeClass([newIcon], EXPANDABLE);\n addClass([newIcon], COLLAPSIBLE);\n }\n else if (newIcon.classList.contains(COLLAPSIBLE) && icon.classList.contains(EXPANDABLE)) {\n removeClass([newIcon], COLLAPSIBLE);\n addClass([newIcon], EXPANDABLE);\n }\n else if (icon.classList.contains('interaction')) {\n addClass([newIcon], 'interaction');\n }\n }\n remove(txtEle);\n var fullEle = select('.' + FULLROW, liEle);\n fullEle.parentNode.insertBefore(newTextEle, fullEle.nextSibling);\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\n }\n liEle = this.getElement(target);\n if (newNodeData[this.fields.tooltip]) {\n liEle.setAttribute(\"title\", newNodeData[this.fields.tooltip]);\n }\n if (newNodeData.hasOwnProperty(this.fields.htmlAttributes) && newNodeData[this.fields.htmlAttributes]) {\n var attr = {};\n merge(attr, newNodeData[this.fields.htmlAttributes]);\n if (attr.class) {\n addClass([liEle], attr.class.split(' '));\n delete attr.class;\n }\n else {\n attributes(liEle, attr);\n }\n }\n if (this.selectedNodes.indexOf(id) !== -1) {\n liEle.setAttribute('aria-selected', 'true');\n addClass([liEle], ACTIVE);\n }\n this.isRefreshed = false;\n this.triggerEvent('refreshNode', [this.getNode(liEle)]);\n };\n /**\n * Removes the collection of TreeView nodes by passing the array of node details as argument to this method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n */\n TreeView.prototype.removeNodes = function (nodes) {\n if (!isNOU(nodes)) {\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\n this.crudOperation('delete', nodes);\n }\n else {\n this.deleteSuccess(nodes);\n }\n }\n };\n /**\n * Replaces the text of the TreeView node with the given text.\n * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element.\n * @param {string} newText - Specifies the new text of TreeView node.\n */\n TreeView.prototype.updateNode = function (target, newText) {\n var _this = this;\n if (isNOU(target) || isNOU(newText) || !this.allowEditing) {\n return;\n }\n var liEle = this.getElement(target);\n if (isNOU(liEle)) {\n return;\n }\n var txtEle = select('.' + LISTTEXT, liEle);\n this.updateOldText(liEle);\n var eventArgs = this.getEditEvent(liEle, null, null);\n this.trigger('nodeEditing', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n if (_this.fields.dataSource instanceof DataManager && !_this.isOffline) {\n _this.crudOperation('update', null, target, newText, null, null, false);\n }\n else {\n _this.appendNewText(liEle, txtEle, newText, false);\n }\n }\n });\n };\n /**\n * Unchecks all the checked nodes. You can also uncheck the specific nodes by passing array of checked nodes\n * as argument to this method.\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\n */\n TreeView.prototype.uncheckAll = function (nodes) {\n if (this.showCheckBox) {\n this.doCheckBoxAction(nodes, false);\n }\n };\n var TreeView_1;\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowEditing\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowMultiSelection\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"allowTextWrap\", void 0);\n __decorate([\n Complex({}, NodeAnimationSettings)\n ], TreeView.prototype, \"animation\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"checkedNodes\", void 0);\n __decorate([\n Property('')\n ], TreeView.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"disabled\", void 0);\n __decorate([\n Property(null)\n ], TreeView.prototype, \"dragArea\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"expandedNodes\", void 0);\n __decorate([\n Property('Auto')\n ], TreeView.prototype, \"expandOn\", void 0);\n __decorate([\n Complex({}, FieldsSettings)\n ], TreeView.prototype, \"fields\", void 0);\n __decorate([\n Property(true)\n ], TreeView.prototype, \"fullRowSelect\", void 0);\n __decorate([\n Property(true)\n ], TreeView.prototype, \"loadOnDemand\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"locale\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"nodeTemplate\", void 0);\n __decorate([\n Property()\n ], TreeView.prototype, \"selectedNodes\", void 0);\n __decorate([\n Property('None')\n ], TreeView.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"showCheckBox\", void 0);\n __decorate([\n Property(true)\n ], TreeView.prototype, \"autoCheck\", void 0);\n __decorate([\n Property(false)\n ], TreeView.prototype, \"fullRowNavigable\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"dataSourceChanged\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"drawNode\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"keyPress\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeChecked\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeChecking\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeClicked\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeCollapsed\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeCollapsing\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDragging\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDragStart\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDragStop\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeDropped\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeEdited\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeEditing\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeExpanded\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeExpanding\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeSelected\", void 0);\n __decorate([\n Event()\n ], TreeView.prototype, \"nodeSelecting\", void 0);\n TreeView = TreeView_1 = __decorate([\n NotifyPropertyChanges\n ], TreeView);\n return TreeView;\n}(Component));\nexport { TreeView };\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","/**\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 * 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.updatePersistData = function () {\n if (this.enablePersistence) {\n this.setProperties({ width: parseFloat(this.element.style.width), height: parseFloat(this.element.style.height),\n position: { X: parseFloat(this.dragObj.element.style.left), Y: parseFloat(this.dragObj.element.style.top) } }, true);\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 this.updatePersistData();\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 _this.updatePersistData();\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 + '_title' });\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 this.updatePersistData();\n break;\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n this.updatePersistData();\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) && !isNullOrUndefined(oldProp.position.X) ? oldProp.position.X : this.position.X;\n var positionY = !isNullOrUndefined(oldProp.position) && !isNullOrUndefined(oldProp.position.Y) ? oldProp.position.Y : this.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 this.updatePersistData();\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(['width', 'height', 'position']);\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, \"enablePersistence\", 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 : null;\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 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","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 this.content = null;\n this.relateTo = null;\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","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_MAT3_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_MATERIAL3SPIN = 'e-spin-material3';\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 createMaterial3Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material3', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_MATERIAL3SPIN);\n mat_calculate_attributes(radius, container, 'Material3', CLS_MATERIAL3SPIN);\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 'Material3':\n createMaterial3Spinner(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 'Material3':\n defaultSize = DEFT_MAT3_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')) || !isNullOrUndefined(container.querySelector('svg.e-spin-material3'))) {\n var svg = void 0;\n if (!isNullOrUndefined(container.querySelector('svg.e-spin-material')) && !isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle'))) {\n svg = container.querySelector('svg.e-spin-material');\n }\n else if (!isNullOrUndefined(container.querySelector('svg.e-spin-material3')) && !isNullOrUndefined(container.querySelector('svg.e-spin-material3').querySelector('path.e-path-circle'))) {\n svg = container.querySelector('svg.e-spin-material3');\n }\n if (!isNullOrUndefined(svg)) {\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 *\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' || type === 'Material3') {\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 if (container.classList.contains(CLS_SPINWRAP)) {\n spinnerWrap = container;\n }\n else {\n var spinWrapCollection = void 0;\n spinWrapCollection = container.querySelectorAll('.' + CLS_SPINWRAP);\n spinnerWrap = Array.from(spinWrapCollection).find(function (wrap) { return wrap.parentElement === container; }) || null;\n }\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 case 'Material3':\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 if (!isNullOrUndefined(spinTemplate)) {\n replaceContent(container, spinTemplate, spinCSSClass);\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 if (!isNullOrUndefined(svgElement)) {\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","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 };\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 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 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.addDataTooltipId = function (target, id) {\n attributes(target, { 'data-tooltip-id': id });\n };\n Tooltip.prototype.removeDataTooltipId = function (target) {\n target.removeAttribute('data-tooltip-id');\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 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 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 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 if (Object.keys(this.htmlAttributes).length !== 0) {\n for (var attr in this.htmlAttributes) {\n if (attr === \"class\") {\n this.tooltipEle.classList.add(this.htmlAttributes[\"\" + attr]);\n }\n else {\n this.tooltipEle.setAttribute(attr, this.htmlAttributes[\"\" + attr]);\n }\n }\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.addDataTooltipId(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.addDataTooltipId(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 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 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 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 if (this.tooltipEventArgs.cancel) {\n newpos = this.position;\n }\n else {\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 }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var position = this.isBodyContainer ?\n fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: true }, eleOffset) : eleOffset;\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) - (position.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 = position.left;\n eleOffset.top = position.top;\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 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 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.removeDataTooltipId(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 (!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 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 }\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.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 if (this.element.nodeName !== \"BODY\") {\n EventHandler.add(this.element, 'focusin', this.targetHover, this);\n }\n else {\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 EventHandler.add(target, 'focus', this.targetHover, this);\n }\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 === 'focusin') {\n EventHandler.add(target, 'focusout', 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 }\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 }\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 if (this.element.nodeName === 'BODY') {\n EventHandler.remove(this.element, 'focusin', this.targetHover);\n }\n else {\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 EventHandler.remove(target, 'focus', this.targetHover);\n }\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 EventHandler.remove(target, 'focusout', 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 var currentTarget = selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', this.element);\n for (var _i = 0, currentTarget_1 = currentTarget; _i < currentTarget_1.length; _i++) {\n var target = currentTarget_1[_i];\n this.restoreElement(target);\n }\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 Property('')\n ], Tooltip.prototype, \"htmlAttributes\", 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","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 if (prev !== this.props) {\n this.isshouldComponentUpdateCalled = true;\n this.refreshProperties(this.props, this.props);\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 // The statelessTemplates props value is taken from sample level property or default component property.\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] :\n (!isNullOrUndefined(this['statelessTemplateProps']) ? this['statelessTemplateProps'] : []);\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' && !this.properties.hasOwnProperty(propkey)) {\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 if (value1.constructor &&\n value1.constructor.name === value2.constructor.name &&\n (value1.constructor.name === 'Query' ||\n value1.constructor.name === 'DataManager')) {\n if (JSON.stringify(value1) === JSON.stringify(value2)) {\n return true;\n }\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 var templateProps = !isNullOrUndefined(this['templateProps']) ? this['templateProps'] : [];\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) || !((templateProps.length > 0 && templateProps.indexOf(\"\" + key) === -1 && typeof (newValue) === 'function') ? this.compareValues(oldValue.toString(), newValue.toString()) : 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 (this.getModuleName() === 'grid' && propName === 'columns' && isNullOrUndefined(curObj['field'])) {\n curObj['field'] = undefined;\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[index] && _this.portals[index].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","// 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","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' || (templateElement.prototype && templateElement.prototype.CSPTemplate && typeof templateElement === 'function')) {\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})();\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 if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\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.replace(/\\s+/g, ' ').trim().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 && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\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 if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\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.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.activeElem[0].focus();\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.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 if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + \"px\";\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 }\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.replace(/\\s+/g, ' ').trim().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","(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n})((function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n }\n\n var Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n Object.defineProperty(this, 'listeners', {\n value: {},\n writable: true,\n configurable: true\n });\n }\n\n _createClass(Emitter, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback, options) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push({\n callback: callback,\n options: options\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (!(type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[type];\n\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i].callback === callback) {\n stack.splice(i, 1);\n return;\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (!(event.type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[event.type];\n var stackToCall = stack.slice();\n\n for (var i = 0, l = stackToCall.length; i < l; i++) {\n var listener = stackToCall[i];\n\n try {\n listener.callback.call(this, event);\n } catch (e) {\n Promise.resolve().then(function () {\n throw e;\n });\n }\n\n if (listener.options && listener.options.once) {\n this.removeEventListener(event.type, listener.callback);\n }\n }\n\n return !event.defaultPrevented;\n }\n }]);\n\n return Emitter;\n }();\n\n var AbortSignal = /*#__PURE__*/function (_Emitter) {\n _inherits(AbortSignal, _Emitter);\n\n var _super = _createSuper(AbortSignal);\n\n function AbortSignal() {\n var _this;\n\n _classCallCheck(this, AbortSignal);\n\n _this = _super.call(this); // Some versions of babel does not transpile super() correctly for IE <= 10, if the parent\n // constructor has failed to run, then \"this.listeners\" will still be undefined and then we call\n // the parent constructor directly instead as a workaround. For general details, see babel bug:\n // https://github.com/babel/babel/issues/3041\n // This hack was added as a fix for the issue described here:\n // https://github.com/Financial-Times/polyfill-library/pull/59#issuecomment-477558042\n\n if (!_this.listeners) {\n Emitter.call(_assertThisInitialized(_this));\n } // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'aborted', {\n value: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'onabort', {\n value: null,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'reason', {\n value: undefined,\n writable: true,\n configurable: true\n });\n return _this;\n }\n\n _createClass(AbortSignal, [{\n key: \"toString\",\n value: function toString() {\n return '[object AbortSignal]';\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (event.type === 'abort') {\n this.aborted = true;\n\n if (typeof this.onabort === 'function') {\n this.onabort.call(this, event);\n }\n }\n\n _get(_getPrototypeOf(AbortSignal.prototype), \"dispatchEvent\", this).call(this, event);\n }\n }]);\n\n return AbortSignal;\n }(Emitter);\n var AbortController = /*#__PURE__*/function () {\n function AbortController() {\n _classCallCheck(this, AbortController);\n\n // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n Object.defineProperty(this, 'signal', {\n value: new AbortSignal(),\n writable: true,\n configurable: true\n });\n }\n\n _createClass(AbortController, [{\n key: \"abort\",\n value: function abort(reason) {\n var event;\n\n try {\n event = new Event('abort');\n } catch (e) {\n if (typeof document !== 'undefined') {\n if (!document.createEvent) {\n // For Internet Explorer 8:\n event = document.createEventObject();\n event.type = 'abort';\n } else {\n // For Internet Explorer 11:\n event = document.createEvent('Event');\n event.initEvent('abort', false, false);\n }\n } else {\n // Fallback where document isn't available:\n event = {\n type: 'abort',\n bubbles: false,\n cancelable: false\n };\n }\n }\n\n var signalReason = reason;\n\n if (signalReason === undefined) {\n if (typeof document === 'undefined') {\n signalReason = new Error('This operation was aborted');\n signalReason.name = 'AbortError';\n } else {\n try {\n signalReason = new DOMException('signal is aborted without reason');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n signalReason = new Error('This operation was aborted');\n signalReason.name = 'AbortError';\n }\n }\n }\n\n this.signal.reason = signalReason;\n this.signal.dispatchEvent(event);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return '[object AbortController]';\n }\n }]);\n\n return AbortController;\n }();\n\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n // These are necessary to make sure that we get correct output for:\n // Object.prototype.toString.call(new AbortController())\n AbortController.prototype[Symbol.toStringTag] = 'AbortController';\n AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n }\n\n function polyfillNeeded(self) {\n if (self.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n console.log('__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill');\n return true;\n } // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // so the below feature detection needs the !self.AbortController part.\n // The Request.prototype check is also needed because Safari versions 11.1.2\n // up to and including 12.1.x has a window.AbortController present but still\n // does NOT correctly implement abortable fetch:\n // https://bugs.webkit.org/show_bug.cgi?id=174980#c2\n\n\n return typeof self.Request === 'function' && !self.Request.prototype.hasOwnProperty('signal') || !self.AbortController;\n }\n\n /**\n * Note: the \"fetch.Request\" default value is available for fetch imported from\n * the \"node-fetch\" package and not in browsers. This is OK since browsers\n * will be importing umd-polyfill.js from that path \"self\" is passed the\n * decorator so the default value will not be used (because browsers that define\n * fetch also has Request). One quirky setup where self.fetch exists but\n * self.Request does not is when the \"unfetch\" minimal fetch polyfill is used\n * on top of IE11; for this case the browser will try to use the fetch.Request\n * default value which in turn will be undefined but then then \"if (Request)\"\n * will ensure that you get a patched fetch but still no Request (as expected).\n * @param {fetch, Request = fetch.Request}\n * @returns {fetch: abortableFetch, Request: AbortableRequest}\n */\n\n function abortableFetchDecorator(patchTargets) {\n if ('function' === typeof patchTargets) {\n patchTargets = {\n fetch: patchTargets\n };\n }\n\n var _patchTargets = patchTargets,\n fetch = _patchTargets.fetch,\n _patchTargets$Request = _patchTargets.Request,\n NativeRequest = _patchTargets$Request === void 0 ? fetch.Request : _patchTargets$Request,\n NativeAbortController = _patchTargets.AbortController,\n _patchTargets$__FORCE = _patchTargets.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL = _patchTargets$__FORCE === void 0 ? false : _patchTargets$__FORCE;\n\n if (!polyfillNeeded({\n fetch: fetch,\n Request: NativeRequest,\n AbortController: NativeAbortController,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL: __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL\n })) {\n return {\n fetch: fetch,\n Request: Request\n };\n }\n\n var Request = NativeRequest; // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // hence we only patch it if it's available. Also we don't patch it if signal\n // is already available on the Request prototype because in this case support\n // is present and the patching below can cause a crash since it assigns to\n // request.signal which is technically a read-only property. This latter error\n // happens when you run the main5.js node-fetch example in the repo\n // \"abortcontroller-polyfill-examples\". The exact error is:\n // request.signal = init.signal;\n // ^\n // TypeError: Cannot set property signal of # which has only a getter\n\n if (Request && !Request.prototype.hasOwnProperty('signal') || __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n Request = function Request(input, init) {\n var signal;\n\n if (init && init.signal) {\n signal = init.signal; // Never pass init.signal to the native Request implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to construct 'Request': member signal is not of type AbortSignal.\n\n delete init.signal;\n }\n\n var request = new NativeRequest(input, init);\n\n if (signal) {\n Object.defineProperty(request, 'signal', {\n writable: false,\n enumerable: false,\n configurable: true,\n value: signal\n });\n }\n\n return request;\n };\n\n Request.prototype = NativeRequest.prototype;\n }\n\n var realFetch = fetch;\n\n var abortableFetch = function abortableFetch(input, init) {\n var signal = Request && Request.prototype.isPrototypeOf(input) ? input.signal : init ? init.signal : undefined;\n\n if (signal) {\n var abortError;\n\n try {\n abortError = new DOMException('Aborted', 'AbortError');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n abortError = new Error('Aborted');\n abortError.name = 'AbortError';\n } // Return early if already aborted, thus avoiding making an HTTP request\n\n\n if (signal.aborted) {\n return Promise.reject(abortError);\n } // Turn an event into a promise, reject it once `abort` is dispatched\n\n\n var cancellation = new Promise(function (_, reject) {\n signal.addEventListener('abort', function () {\n return reject(abortError);\n }, {\n once: true\n });\n });\n\n if (init && init.signal) {\n // Never pass .signal to the native implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to execute 'fetch' on 'Window': member signal is not of type AbortSignal.\n delete init.signal;\n } // Return the fastest promise (don't need to wait for request to finish)\n\n\n return Promise.race([cancellation, realFetch(input, init)]);\n }\n\n return realFetch(input, init);\n };\n\n return {\n fetch: abortableFetch,\n Request: Request\n };\n }\n\n (function (self) {\n\n if (!polyfillNeeded(self)) {\n return;\n }\n\n if (!self.fetch) {\n console.warn('fetch() is not available, cannot install abortcontroller-polyfill');\n return;\n }\n\n var _abortableFetch = abortableFetchDecorator(self),\n fetch = _abortableFetch.fetch,\n Request = _abortableFetch.Request;\n\n self.fetch = fetch;\n self.Request = Request;\n Object.defineProperty(self, 'AbortController', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortController\n });\n Object.defineProperty(self, 'AbortSignal', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortSignal\n });\n })(typeof self !== 'undefined' ? self : global);\n\n}));\n","/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","export const GET_SINGLE_COMPANY = 'GET_SINGLE_COMPANY';\r\nexport const CLEAR_COMPANY = 'CLEAR_COMPANY';\r\nexport const SUCCESSFULL_ACTION_DELETE_COMPANY = 'SUCCESSFULL_ACTION_DELETE_COMPANY';\r\nexport const FAILED_ACTION_DELETE_COMPANY = 'FAILED_ACTION_DELETE_COMPANY';\r\nexport const SUCCESSFULL_ACTION_CREATE_COMPANY = 'SUCCESSFULL_ACTION_CREATE_COMPANY';\r\nexport const FAILED_ACTION_CREATE_COMPANY = 'FAILED_ACTION_CREATE_COMPANY';\r\n","export const ADD_ALERT = 'ADD_ALERT';\r\nexport const UPDATE_ALERT = 'UPDATE_ALERT';\r\nexport const REMOVE_ALERT = 'REMOVE_ALERT';\r\n","import { ETrackingType, ITracker } from '../../entities/IAnalytics';\r\n\r\nexport const ADD_TRACKING = 'ADD_TRACKING';\r\n\r\nexport interface IAnalyticsTypes {\r\n [ADD_TRACKING]: {\r\n trackingType: ETrackingType;\r\n tracker: ITracker;\r\n }\r\n}\r\n","import { ValidationResponse } from '../../entities/IValidation';\r\n\r\nexport const SET_APPROVAL_OVERVIEW_INFORMATIONS = 'SET_APPROVAL_OVERVIEW_INFORMATIONS';\r\nexport const CLEAR_APPROVAL_OVERVIEW_INFORMATIONS = 'CLEAR_APPROVAL_OVERVIEW_INFORMATIONS';\r\n\r\nexport interface IApprovalTypes {\r\n SET_APPROVAL_OVERVIEW_INFORMATIONS: {\r\n singleValidation: ValidationResponse\r\n }\r\n}","export const SET_COLOR_USER = 'SET_COLOR_USER';\r\n\r\nexport interface IAvatarTypes {\r\n SET_COLOR_USER: {\r\n id: string;\r\n }\r\n}","import { ISingleCluster, IClusterTemplate } from '../../entities/IClusters';\r\nimport { ClusterPermissions } from '../../entities/IPermissions';\r\n\r\nexport const GET_CLUSTERS_LIST = 'GET_CLUSTERS_LIST';\r\nexport const SET_CURRENT_CLUSTER = 'SET_CURRENT_CLUSTER';\r\nexport const GET_CURRENT_CLUSTER = 'GET_CURRENT_CLUSTER';\r\nexport const GET_INITIAL_CLUSTER_DATA = 'GET_INITIAL_CLUSTER_DATA';\r\nexport const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\r\nexport const SET_CURRENT_TEAM = 'SET_CURRENT_TEAM';\r\nexport const GET_ALL_MY_TEAMS = 'GET_ALL_MY_TEAMS';\r\nexport const GET_ALL_CHANNELS = 'GET_ALL_CHANNELS';\r\nexport const GET_CHANNEL_MESSAGES = 'GET_CHANNEL_MESSAGES';\r\nexport const GET_SINGLE_CHANNEL_MESSAGE = 'GET_SINGLE_CHANNEL_MESSAGE';\r\nexport const RECEIVE_MESSAGE = 'RECEIVE_MESSAGE';\r\nexport const RECEIVE_THREAD_MESSAGE = 'RECEIVE_THREAD_MESSAGE';\r\nexport const UPDATE_MESSAGE = 'UPDATE_MESSAGE';\r\nexport const CLEAR_CHANNEL_MESSAGES = 'CLEAR_CHANNEL_MESSAGES';\r\nexport const GET_CLUSTERS_SEARCH_RESULT = 'GET_CLUSTERS_SEARCH_RESULT';\r\nexport const GET_CLUSTER_DOCUMENTS = 'GET_CLUSTER_DOCUMENTS';\r\nexport const CLEAR_CLUSTER_DOCUMENTS = 'CLEAR_CLUSTER_DOCUMENTS';\r\nexport const GET_ALL_TAGS = 'GET_ALL_TAGS';\r\nexport const GET_CLUSTER_PHOTOS = 'GET_CLUSTER_PHOTOS';\r\nexport const CLUSTERS_SEARCH_LOADING = 'CLUSTERS_SEARCH_LOADING';\r\nexport const GET_AREQUEST_ACCESS_USER = 'GET_AREQUEST_ACCESS_USER';\r\nexport const SET_CURRENT_CHANNEL_NAME = 'SET_CURRENT_CHANNEL_NAME';\r\nexport const SET_CURRENT_TEAM_CHANNEL_ID = 'SET_CURRENT_TEAM_CHANNEL_ID';\r\nexport const SET_MESSAGE_PAGE = 'SET_MESSAGE_PAGE';\r\nexport const CLEAR_MESSAGE_PAGE = 'CLEAR_MESSAGE_PAGE';\r\nexport const CLEAR_CLUSTERS_LIST = 'CLEAR_CLUSTERS_LIST';\r\nexport const CHANGE_CLUSTER_PROPERTIES_VIEW = 'CHANGE_CLUSTER_PROPERTIES_VIEW';\r\nexport const CHANGE_CLUSTER_MEMBERS_VIEW = 'CHANGE_CLUSTER_MEMBERS_VIEW';\r\nexport const CHANGE_CLUSTER_DOCUMENTS_VIEW = 'CHANGE_CLUSTER_DOCUMENTS_VIEW';\r\nexport const REMOVE_CLUSTER_CHANNEL_THREAD = 'REMOVE_CLUSTER_CHANNEL_THREAD';\r\nexport const CLEAR_CLUSTER_DATA = 'CLEAR_CLUSTER_DATA';\r\nexport const UPDATE_CLUSTER_PERMISSIONS = 'UPDATE_CLUSTER_PERMISSIONS';\r\nexport const GET_CURRENT_CLUSTER_TEMPLATES = 'GET_CURRENT_CLUSTER_TEMPLATES';\r\nexport const REFRESH_APPROVAL_INFO = 'REFRESH_APPROVAL_INFO';\r\n\r\nexport interface IClusterTypes {\r\n GET_INITIAL_CLUSTER_DATA: {\r\n clusterData: ISingleCluster;\r\n permissions: ClusterPermissions[];\r\n };\r\n REFRESH_APPROVAL_INFO: {\r\n clusterData: ISingleCluster;\r\n };\r\n GET_CURRENT_CLUSTER: {\r\n currentClusterData: ISingleCluster;\r\n };\r\n UPDATE_CLUSTER_PERMISSIONS: {\r\n permissions: ClusterPermissions[];\r\n };\r\n GET_CURRENT_CLUSTER_TEMPLATES: {\r\n clusterTemplates: IClusterTemplate[];\r\n };\r\n}\r\n","export const GET_COMPANY_COMPLETED = 'GET_COMPANY_COMPLETED';\r\nexport const GET_COMPANY_REQUESTED = 'GET_COMPANY_REQUESTED';\r\nexport const GET_PUBLIC_COMPANIES_REQUESTED = 'GET_PUBLIC_COMPANIES_REQUESTED';\r\nexport const GET_PUBLIC_COMPANIES_COMPLETED = 'GET_PUBLIC_COMPANIES_COMPLETED';\r\nexport const GET_PRIVATE_COMPANIES_REQUESTED = 'GET_PRIVATE_COMPANIES_REQUESTED';\r\nexport const GET_PRIVATE_COMPANIES_COMPLETED = 'GET_PRIVATE_COMPANIES_COMPLETED';\r\nexport const CLEAR_LOADED_COMPANY = 'CLEAR_LOADED_COMPANY';\r\nexport const GET_COMPANY_EXPERTISES_REQUESTED = 'GET_COMPANY_EXPERTISES_REQUESTED';\r\nexport const GET_COMPANY_EXPERTISES_COMPLETED = 'GET_COMPANY_EXPERTISES_COMPLETED';\r\nexport const GET_COMPANY_ARTICLES_REQUESTED = 'GET_COMPANY_ARTICLES_REQUESTED';\r\nexport const GET_COMPANY_ARTICLES_COMPLETED = 'GET_COMPANY_ARTICLES_COMPLETED';\r\nexport const FAILED_ACTION_CREATE_COMPANY = 'FAILED_ACTION_CREATE_COMPANY';\r\nexport const SUCCESSFULL_ACTION_CREATE_COMPANY = 'SUCCESSFULL_ACTION_CREATE_COMPANY';\r\nexport const FAILED_ACTION_EDIT_COMPANY = 'FAILED_ACTION_EDIT_COMPANY';\r\nexport const SUCCESSFULL_ACTION_EDIT_COMPANY = 'SUCCESSFULL_ACTION_EDIT_COMPANY';\r\nexport const FAILED_ACTION_DELETE_COMPANY = 'FAILED_ACTION_DELETE_COMPANY';\r\nexport const SUCCESSFULL_ACTION_DELETE_COMPANY = 'SUCCESSFULL_ACTION_DELETE_COMPANY';\r\nexport const GET_FILTERED_COMPANIES_COMPLETED = 'GET_FILTERED_COMPANIES_COMPLETED';\r\nexport const GET_ALL_COMPANIES_COMPLETED = 'GET_ALL_COMPANIES_COMPLETED';\r\nexport const GET_ALL_COMPANIES_REQUESTED = 'GET_ALL_COMPANIES_REQUESTED';\r\nexport const GET_TRUSTED_COMPANIES_COMPLETED = 'GET_TRUSTED_COMPANIES_COMPLETED';\r\nexport const GET_ORGANIZATION_REQUESTED = 'GET_ORGANIZATION_REQUESTED';\r\nexport const GET_ORGANIZATION_COMPLETED = 'GET_ORGANIZATION_COMPLETED';\r\nexport const GET_PUBLIC_ORGANIZATION_REQUESTED = 'GET_PUBLIC_ORGANIZATION_REQUESTED';\r\nexport const GET_PUBLIC_ORGANIZATION_COMPLETED = 'GET_PUBLIC_ORGANIZATION_COMPLETED';\r\nexport const CLEAR_LOADED_ORGANIZATION = 'CLEAR_LOADED_ORGANIZATION';\r\nexport const GET_ORGANIZATION_EXPERTISES_REQUESTED = 'GET_ORGANIZATION_EXPERTISES_REQUESTED';\r\nexport const GET_ORGANIZATION_EXPERTISES_COMPLETED = 'GET_ORGANIZATION_EXPERTISES_COMPLETED';","export const GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG';","export const SET_TOKEN_RELOAD_LOADER = 'SET_TOKEN_RELOAD_LOADER';\r\nexport const SET_LOGGED_IN_USER = 'SET_LOGGED_IN_USER';\r\nexport const SET_PASSWORD_RESET_MODE = 'SET_PASSWORD_RESET_MODE';\r\nexport const CLEAR_USER_CONTEXT = 'CLEAR_USER_CONTEXT';\r\nexport const LOAD_EXTERNAL_GPLACES = 'LOAD_EXTERNAL_GPLACES';\r\nexport const REQUEST_TOKEN_RENEWAL = 'REQUEST_TOKEN_RENEWAL';\r\nexport const LOAD_ORGANIZATION_CONTEXTS = 'LOAD_ORGANIZATION_CONTEXTS';\r\nexport const ADD_TAGS_TO_CONTEXT_ORGANIZATION = 'ADD_TAGS_TO_CONTEXT_ORGANIZATION';\r\nexport const SET_ACCESS_TOKEN = 'SET_ACCESS_TOKEN';\r\nexport const SET_EXPORT_VIEW = 'SET_EXPORT_VIEW';","export const ACCEPT_COOKIES = 'ACCEPT_COOKIES';\r\nexport const DECLINE_COOKIES = 'DECLINE_COOKIES';\r\nexport const BLOCK_COOKIES = 'BLOCK_COOKIES';\r\nexport const UNBLOCK_COOKIES = 'UNBLOCK_COOKIES';","export const GET_FILTERED_EXPERTISES_COMPLETED = 'GET_FILTERED_EXPERTISES_COMPLETED';\r\nexport const GET_FILTERED_EXPERTISES_REQUESTED = 'GET_FILTERED_EXPERTISES_REQUESTED';","import { IItemResults } from '../../entities/IFilters';\r\n\r\nexport const GET_EXPLORE_ELEMENTS = 'GET_EXPLORE_ELEMENTS';\r\nexport const GET_AND_MERGE_EXPLORE_ELEMENTS = 'GET_AND_MERGE_EXPLORE_ELEMENTS';\r\nexport const CLEAR_EXPLORE_ELEMENTS = 'CLEAR_EXPLORE_ELEMENTS';\r\n\r\nexport interface IExploreTypes {\r\n [GET_EXPLORE_ELEMENTS]: {\r\n items: Map;\r\n facets: {[key: string]: any};\r\n count: number;\r\n itemsOnPageCount: number;\r\n page: number;\r\n size: number;\r\n }\r\n [GET_AND_MERGE_EXPLORE_ELEMENTS]: {\r\n items: Map;\r\n facets: {[key: string]: any};\r\n count: number;\r\n itemsOnPageCount: number;\r\n page: number;\r\n size: number;\r\n }\r\n}\r\n","import { IReferencial } from '../../entities/IGlobal';\r\n\r\nexport const SET_REFERENTIAL = 'SET_REFERENTIAL';\r\nexport const SET_CURRENCY_RATIO = 'SET_CURRENCY_RATIO';\r\n\r\nexport interface IGlobalTypes {\r\n SET_REFERENTIAL: {\r\n referentialsList: {\r\n [key: string]: {\r\n [key: string]: IReferencial[];\r\n }\r\n }\r\n }\r\n SET_CURRENCY_RATIO: {\r\n currencyRatio: {\r\n [key: string]: {\r\n [key: string]: number\r\n }\r\n }\r\n }\r\n}","import { ELcid, ISingleLcidTranslations, ISingleTranslate } from '../../entities/ILanguage';\r\n\r\nexport const SET_USER_LANGUAGE = 'SET_USER_LANGUAGE';\r\nexport const SET_MANAGE_LANGUAGES = 'SET_MANAGE_LANGUAGES';\r\nexport const LOAD_NEW_LANG = 'LOAD_NEW_LANG';\r\nexport const FINISH_LOAD_NEW_LANG = 'FINISH_LOAD_NEW_LANG';\r\nexport const SET_CLUSTER_TRANSLATION_MESSAGES = 'SET_CLUSTER_TRANSLATION_MESSAGES';\r\nexport const SET_TRANSLATIONS = 'SET_TRANSLATIONS';\r\nexport const SET_WORKSPACE_TRANSLATIONS = 'SET_WORKSPACE_TRANSLATIONS';\r\nexport const MERGE_TRANSLATIONS = 'MERGE_TRANSLATIONS';\r\n\r\nexport interface ILanguageTypes {\r\n SET_TRANSLATIONS: {\r\n lcid: ELcid;\r\n translations: ISingleLcidTranslations;\r\n };\r\n SET_WORKSPACE_TRANSLATIONS: {\r\n translations: ISingleTranslate[];\r\n orgId: string;\r\n }\r\n MERGE_TRANSLATIONS: {\r\n lcid: ELcid;\r\n translations: ISingleTranslate[];\r\n }\r\n}\r\n","export const GET_LEGAL_ENTITIES = 'GET_LEGAL_ENTITIES';\r\nexport const CLEAR_RESULTS = 'CLEAR_RESULTS';","import { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { EMenuItem } from '../../entities/IMenu';\r\n\r\nexport const UPDATE_MENU_TITLE = 'UPDATE_MENU_TITLE';\r\n\r\nexport interface IMenuTypes {\r\n UPDATE_MENU_TITLE: {\r\n menuItem: EMenuItem;\r\n withHeader?: boolean;\r\n icon?: IconDefinition;\r\n };\r\n}\r\n","export const NEW_MESSAGE_VIEW = 'NEW_MESSAGE_VIEW';\r\nexport const CLEAR_MESSAGING_STATE = 'CLEAR_MESSAGING_STATE';\r\nexport const SHOW_DOTS_MENU = 'SHOW_DOTS_MENU';\r\nexport const SHOW_SEARCH_MENU = 'SHOW_SEARCH_MENU';\r\nexport const SHOW_SETTINGS_MENU = 'SHOW_SETTINGS_MENU';\r\nexport const SET_MESSAGING_CONTACTS_REQUESTED = 'SET_MESSAGING_CONTACTS_REQUESTED';\r\nexport const SET_MESSAGING_CONTACTS_COMPLETED = 'SET_MESSAGING_CONTACTS_COMPLETED';\r\nexport const SET_CURRENT_CONVERSATION = 'SET_CURRENT_CONVERSATION';\r\nexport const SEARCH_CONVERSATIONS = 'SEARCH_CONVERSATIONS';\r\nexport const CLEAR_CONVERSATIONS = 'CLEAR_CONVERSATIONS';\r\nexport const PENDING_SEARCH_CONVERSATIONS = 'PENDING_SEARCH_CONVERSATIONS';\r\nexport const CREATE_MESSAGE = 'CREATE_MESSAGE';\r\nexport const ADD_TEMP_GROUP = 'ADD_TEMP_GROUP';\r\nexport const ACTIVE_CONVERSATION_ID = 'ACTIVE_CONVERSATION_ID';\r\nexport const CURRENT_MESSAGES_REQUESTED = 'CURRENT_MESSAGES_REQUESTED';\r\nexport const CURRENT_MESSAGES_COMPLETED = 'CURRENT_MESSAGES_COMPLETED';\r\nexport const CLEAR_CURRENT_MESSAGES = 'CLEAR_CURRENT_MESSAGES';\r\nexport const UPDATE_CONVERSATION = 'UPDATE_CONVERSATION';\r\nexport const SET_NEW_MESSAGE = 'SET_NEW_MESSAGE';\r\nexport const SET_NEW_CONVERSATION = 'SET_NEW_CONVERSATION';\r\nexport const MESSAGE_NOT_SEND = 'MESSAGE_NOT_SEND';\r\nexport const REMOVE_CONVERSATION = 'REMOVE_CONVERSATION';\r\nexport const MARK_CONVERSATION_AS_READ = 'MARK_CONVERSATION_AS_READ';\r\nexport const UPDATE_SINGLE_MESSAGE = 'UPDATE_SINGLE_MESSAGE';\r\nexport const NEW_EVENTS_HAVE_OCCURED = 'NEW_EVENTS_HAVE_OCCURED';\r\nexport const ACTIVTY_CREATION_COMPLETED = 'ACTIVTY_CREATION_COMPLETED';\r\nexport const COMPLETE_UPLOAD_ATTACHMENT = 'COMPLETE_UPLOAD_ATTACHMENT';\r\nexport const REMOVE_MESSAGE = 'REMOVE_MESSAGE';\r\nexport const REMOVE_TEMP_CONVERSATION = 'REMOVE_TEMP_CONVERSATION';\r\nexport const ADD_RECEIVE_ATTACHMENT = 'ADD_RECEIVE_ATTACHMENT';\r\nexport const GET_UNREAD_CONVERSATIONS = 'GET_UNREAD_CONVERSATIONS';\r\nexport const ADD_UNREAD_CONVERSATION = 'ADD_UNREAD_CONVERSATION';\r\nexport const USER_REMOVED_FROM_CONVERSATION = 'USER_REMOVED_FROM_CONVERSATION';\r\nexport const SET_CONVERSATION_MENU = 'SET_CONVERSATION_MENU';\r\nexport const SET_CONVERSATION_MENU_EXPANDED = 'SET_CONVERSATION_MENU_EXPANDED';\r\nexport const ADD_ACTIVE_CONVERSATION = 'ADD_ACTIVE_CONVERSATION';\r\nexport const ADD_ACTIVE_CONVERSATION_MESSAGES = 'ADD_ACTIVE_CONVERSATION_MESSAGES';\r\nexport const REMOVE_ACTIVE_CONVERSATION = 'REMOVE_ACTIVE_CONVERSATION';\r\nexport const SET_ACTIVE_CONVERSATION_VISIBILITY = 'SET_ACTIVE_CONVERSATION_VISIBILITY';","export const GET_NOTIFICATIONS_COUNT = 'GET_NOTIFICATIONS_COUNT';\r\nexport const GET_NOTIFICATIONS_ACTIVE_DATA = 'GET_NOTIFICATIONS_ACTIVE_DATA';\r\nexport const GET_NOTIFICATIONS_NONACTIVE_DATA = 'GET_NOTIFICATIONS_NONACTIVE_DATA';\r\nexport const UPDATE_RECIVER_RMS_STATUS = 'UPDATE_RECIVER_RMS_STATUS';\r\nexport const NEW_NOTIFICATION_COUNT_LOADED = 'NEW_NOTIFICATION_COUNT_LOADED';\r\nexport const NEW_NOTIFICATION_MARKED_ASS_SEEN = 'NEW_NOTIFICATION_MARKED_ASS_SEEN';\r\nexport const LOAD_MORE_ACTIVE_NOTIFICATIONS = 'LOAD_MORE_ACTIVE_NOTIFICATIONS';\r\nexport const LOAD_MORE_NONACTIVE_NOTIFICATIONS = 'LOAD_MORE_NONACTIVE_NOTIFICATIONS';\r\nexport const SIGNALR_NOTIFICATION_RECIVED = 'SIGNALR_NOTIFICATION_RECIVED';\r\nexport const SET_NOTIFICATION_VISIBILITY_FLAG = 'SET_NOTIFICATION_VISIBILITY_FLAG';\r\nexport const NAV_MENU_NOTIFICATION_UPDATED = 'NAV_MENU_NOTIFICATION_UPDATED';\r\n","export const ONBOARDING_GET_PROFILE_SCORE = 'ONBOARDING_GET_PROFILE_SCORE';\r\nexport const ONBOARDING_GET_BLOG_SCORE = 'ONBOARDING_GET_BLOG_SCORE';\r\nexport const ONBOARDING_GET_INVITE_SCORE = 'ONBOARDING_GET_INVITE_SCORE';","import { OrganizationPermissions } from '../../entities/IPermissions';\r\n\r\nexport const SET_ORGANIZATIONS_NAME = 'SET_ORGANIZATIONS_NAME';\r\nexport const GET_LAST_ORGS_MEMBERS = 'GET_LAST_ORGS_MEMBERS';\r\nexport const CLEAR_ORGS_LAST_MEMBERS = 'CLEAR_ORGS_LAST_MEMBERS';\r\nexport const GET_ORGS_SEARCH = 'GET_ORGS_SEARCH';\r\nexport const CLEAR_SEARCH_RESULT = 'CLEAR_SEARCH_RESULT';\r\nexport const GET_USEFUL_LINKS = 'GET_USEFUL_LINKS';\r\nexport const SET_ORGANIZATION_PERMISSIONS = 'SET_ORGANIZATION_PERMISSIONS';\r\nexport const UPDATE_ORGANIZATION_PERMISSIONS = 'UPDATE_ORGANIZATION_PERMISSIONS';\r\n\r\nexport interface IOrganizationsTypes {\r\n SET_ORGANIZATION_PERMISSIONS: {\r\n list: {\r\n id: string;\r\n permissions: OrganizationPermissions[];\r\n }[];\r\n };\r\n UPDATE_ORGANIZATION_PERMISSIONS: {\r\n organizationId: string;\r\n permissions: OrganizationPermissions[];\r\n }\r\n}\r\n","import { IPanelSearchItem } from '../../entities/IPanel';\r\nimport { EPanelPermissions } from '../../entities/IPermissions';\r\n\r\nexport const GET_SEARCH_LAWYERS = 'GET_SEARCH_LAWYERS';\r\nexport const CLEAR_PANELS_LAWYERS = 'CLEAR_PANELS_LAWYERS';\r\n\r\nexport interface IPanelTypes {\r\n GET_SEARCH_LAWYERS: {\r\n searchResultLawyer: IPanelSearchItem[];\r\n permissions: EPanelPermissions[];\r\n }\r\n}","export const UPDATE_PDF_OVERLAY = 'UPDATE_PDF_OVERLAY';\r\nexport const SHOW_PDF_OVERLAY = 'SHOW_PDF_OVERLAY';\r\nexport const HIDE_PDF_OVERLAY = 'HIDE_PDF_OVERLAY';\r\nexport const CLEAR_PDF_OVERLAY = 'CLEAR_PDF_OVERLAY';\r\n","import { IFullUserProfile } from '../../entities/IProfile';\r\n\r\nexport const GET_PROFILE_REQUESTED = 'GET_PROFILE_REQUESTED';\r\nexport const GET_PROFILE_COMPLETED = 'GET_PROFILE_COMPLETED';\r\nexport const GET_CURRENT_USER_PROFILE_REQUESTED = 'GET_CURRENT_USER_PROFILE_REQUESTED';\r\nexport const GET_CURRENT_USER_PROFILE_COMPLETED = 'GET_CURRENT_USER_PROFILE_COMPLETED';\r\nexport const GET_USER_SUPER_ADMIN_PERMISSIONS = 'GET_USER_SUPER_ADMIN_PERMISSIONS';\r\nexport const SHOW_PREMIUM_MODAL = 'SHOW_PREMIUM_MODAL';\r\nexport const HIDE_PREMIUM_MODAL = 'HIDE_PREMIUM_MODAL';\r\nexport const GET_MAILBOX_URLS = 'GET_MAILBOX_URLS';\r\nexport const GET_UNREAD_EMAILS = 'GET_UNREAD_EMAILS';\r\nexport interface IProfileTypes {\r\n GET_CURRENT_USER_PROFILE_COMPLETED: {\r\n currentUserProfile: IFullUserProfile;\r\n };\r\n}","export const PROPOSAL_STATE_UPDATE = 'PROPOSAL_STATE_UPDATE';\r\nexport const SAVING_PROPOSAL_REQUESTED = 'SAVING_PROPOSAL_REQUESTED';\r\nexport const SAVING_PROPOSAL_COMPLETED = 'SAVING_PROPOSAL_COMPLETED';\r\nexport const LOAD_PROPOSAL_REQUESTED = 'LOAD_PROPOSAL_REQUESTED';\r\nexport const LOAD_PROPOSAL_COMPLETED = 'LOAD_PROPOSAL_COMPLETED';\r\nexport const PROPOSAL_SUBMISSION_REQUESTED = 'PROPOSAL_SUBMISSION_REQUESTED';\r\nexport const PROPOSAL_SUBMISSION_COMPLETED = 'PROPOSAL_SUBMISSION_COMPLETED';\r\nexport const RESET_PROPOSAL_STATE = 'RESET_PROPOSAL_STATE';\r\nexport const RFP_SUMMARY_LOADING_REQUESTED = 'RFP_SUMMARY_LOADING_REQUESTED';\r\nexport const RFP_SUMMARY_LOADING_COMPLETED = 'RFP_SUMMARY_LOADING_COMPLETED';\r\nexport const PROPOSAL_UPLOAD_FILE_REQUESTED = 'PROPOSAL_UPLOAD_FILE_REQUESTED';\r\nexport const PROPOSAL_UPLOAD_FILE_PROGRESS_CHANGE = 'PROPOSAL_UPLOAD_FILE_PROGRESS_CHANGE';\r\nexport const PROPOSAL_UPLOAD_FILE_COMPLETED = 'PROPOSAL_UPLOAD_FILE_COMPLETED';\r\nexport const PROPOSAL_DOWNLOAD_FILE_REQUESTED = 'PROPOSAL_DOWNLOAD_FILE_REQUESTED';\r\nexport const PROPOSAL_DOWNLOAD_FILE_COMPLETED = 'PROPOSAL_DOWNLOAD_FILE_COMPLETED';","export const RECOMMENDED_COMPANIES_LOADED = 'RECOMMENDED_COMPANIES_LOADED';\r\nexport const RECOMMENDED_LAWYERS_LOADED = 'RECOMMENDED_LAWYERS_LOADED';\r\nexport const RECOMMENDED_LAWYERS_FROM_NETWORK_LOADED = 'RECOMMENDED_LAWYERS_FROM_NETWORK_LOADED';\r\nexport const RECOMMENDED_COMPANIES_REQUESTED = 'RECOMMENDED_COMPANIES_REQUESTED';\r\nexport const RECOMMENDED_LAWYERS_REQUESTED = 'RECOMMENDED_LAWYERS_REQUESTED';\r\nexport const RECOMMENDED_LAWYERS_FROM_NETWORK_REQUESTED = 'RECOMMENDED_LAWYERS_FROM_NETWORK_REQUESTED';\r\nexport const CANCEL_RECOMMENDED_SEARCH = 'CANCEL_RECOMMENDED_SEARCH';","export const RFP_STATE_UPDATE = 'RFP_STATE_UPDATE';\r\nexport const RFP_SAVE_REQUESTED = 'RFP_SAVE_REQUESTED';\r\nexport const RFP_SAVE_COMPLETED = 'RFP_SAVE_COMPLETED';\r\nexport const RFP_SAVE_FAILED = 'RFP_SAVE_FAILED';\r\nexport const RFP_LOAD_REQUESTED = 'RFP_LOAD_REQUESTED';\r\nexport const RFP_LOAD_COMPLETED = 'RFP_LOAD_COMPLETED';\r\nexport const RFP_LOAD_ISSUED_LIST = 'RFP_LOAD_ISSUED_LIST';\r\nexport const RFP_LOAD_RECIVED_LIST = 'RFP_LOAD_RECIVED_LIST';\r\nexport const RFP_SUBMIT_REQUESTED = 'RFP_SUBMIT_REQUESTED';\r\nexport const RFP_SUBMIT_COMPLETED = 'RFP_SUBMIT_COMPLETED';\r\nexport const RFP_RESET_STATE = 'RFP_RESET_STATE';\r\nexport const RFP_ISSUED_LIST_REQUESTED = 'RFP_ISSUED_LIST_REQUESTED';\r\nexport const RFP_RECIVED_LIST_REQUESTED = 'RFP_RECIVED_LIST_REQUESTED';\r\nexport const RFP_UPLOAD_FILE_REQUESTED = 'RFP_UPLOAD_FILE_REQUESTED';\r\nexport const RFP_UPLOAD_FILE_PROGRESS_CHANGE = 'RFP_UPLOAD_FILE_PROGRESS_CHANGE';\r\nexport const RFP_UPLOAD_FILE_COMPLETED = 'RFP_UPLOAD_FILE_COMPLETED';\r\nexport const RFP_DOWNLOAD_FILE_REQUESTED = 'RFP_DOWNLOAD_FILE_REQUESTED';\r\nexport const RFP_DOWNLOAD_FILE_COMPLETED = 'RFP_DOWNLOAD_FILE_COMPLETED';\r\nexport const RFP_CANCEL_GET_EXPERTS = 'RFP_CANCEL_GET_EXPERTS';","export const GET_RMS_INVITATIONS = 'GET_RMS_INVITATIONS';\r\nexport const GET_PENDING_INVITATIONS = 'GET_PENDING_INVITATIONS';\r\nexport const RESPOND_TO_RMS_INVITATION = 'RESPOND_TO_RMS_INVITATION';\r\nexport const HIDE_RMS_INVITATION = 'HIDE_RMS_INVITATION';\r\nexport const LOADING_INVITATIONS = 'LOADING_INVITATIONS';\r\nexport const HIDE_SENT_INVITATION = 'HIDE_SENT_INVITATION';","export const GET_SEARCH_RESULT = 'GET_SEARCH_RESULT';\r\nexport const CLEAR_SEARCH_RESULT = 'CLEAR_SEARCH_RESULT';","export const SOGE_SET_DOC_LANG = 'SOGE_SET_DOC_LANG';\r\nexport const SOGE_SET_NORMATIVE_DOC_ID = 'SOGE_SET_NORMATIVE_DOC_ID';\r\nexport const SOGE_SET_STYLES = 'SOGE_SET_STYLES';\r\nexport const SOGE_SET_LOADING_NEW_DATA = 'SOGE_SET_LOADING_NEW_DATA';\r\nexport const SOGE_SET_STYLES_CONTAINER = 'SOGE_SET_STYLES_CONTAINER';\r\nexport const SOGE_SET_CURRENT_UNIQUE_VERSION_ID = 'SOGE_SET_CURRENT_UNIQUE_VERSION_ID';\r\nexport const SOGE_SET_TABLE_OF_CONTENTS = 'SOGE_SET_TABLE_OF_CONTENTS';\r\nexport const SOGE_GET_VERSION_DETAILS = 'SOGE_GET_VERSION_DETAILS';\r\nexport const SOGE_SET_NORMATIVE_DOC_NAME = 'SOGE_SET_NORMATIVE_DOC_NAME';\r\nexport const SOGE_SET_REFERENTIALS = 'SOGE_SET_REFERENTIALS';\r\nexport const SET_CURRENT_REAL_VERSION_ID = 'SET_CURRENT_REAL_VERSION_ID';\r\nexport const SOGE_SET_ALL_VERSIONS = 'SOGE_SET_ALL_VERSIONS';\r\nexport const GET_NORM_CONFIG = 'GET_NORM_CONFIG';\r\nexport const NORMS_CONFIG_REQUESTED = 'NORMS_CONFIG_REQUESTED';\r\n","import { ISingleStakeDefinitionList } from '../../entities/IClusterStake';\r\n\r\nexport const GET_STAKES_DEFINISION_LIST = 'GET_STAKES_DEFINISION_LIST';\r\nexport const GET_SINGLE_STAKE_DEFINITION = 'GET_SINGLE_STAKE_DEFINITION';\r\n\r\nexport interface IStakeTypes {\r\n GET_STAKES_DEFINISION_LIST: {\r\n stakesDefinitionList: ISingleStakeDefinitionList[];\r\n }\r\n}","import { IClusterTemplateFacet, ISingleWorkElem } from '../../entities/IWork';\r\n\r\nexport const GET_WORKS_ELEMENTS = 'GET_WORKS_ELEMENTS';\r\n\r\nexport interface IWorkTypes {\r\n [GET_WORKS_ELEMENTS]: {\r\n workResult: ISingleWorkElem[];\r\n templates: IClusterTemplateFacet[];\r\n itemsCount: number;\r\n }\r\n}\r\n","import { Dispatch } from 'redux';\r\n\r\nimport { IActivitySearch } from '../entities/Activity/global';\r\nimport { IActivityFilters } from '../modules/Activity';\r\nimport { IState } from '../reducers';\r\nimport { Http } from '../tools/http';\r\nimport { action } from '../tools/reduxTools';\r\n\r\nexport const getActivityChannelMessages = (resourceChildId: string, teamId: string, channelResourceId?: string, facets?: IActivityFilters) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { clusters } = getState();\r\n return http.messagingApiPost(`/resources/${resourceChildId}/teams/${teamId}/channels/${channelResourceId || clusters.currentChannelId}/messages/search`, facets || {});\r\n});\r\n\r\nexport const getActivityForProfile = (profileUserId: string, facets?: IActivityFilters) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.messagingApiPost(`/profile/${profileUserId}/activity`, facets ? {...facets, size: 50} : {page: 0, size: 50});\r\n});","import { Dispatch } from 'redux';\r\nimport * as queryString from 'query-string-for-all';\r\nimport { get } from 'lodash';\r\n\r\nimport { Http } from '../tools/http';\r\nimport { action } from '../tools/reduxTools';\r\nimport { IState } from '../reducers';\r\nimport {\r\n ISingleCompany, IReferentialIdentitie, IReferentialContexts, EReferentialTypes, IListOfReferetnialTypes, INormReferentialItemsResult,\r\n IFullReferentialElement, INormReferentialItem, ISingleGroup, IManageUsefulLinkItem, ICreateUsefulLink, IGroupsAndPeople,\r\n ISearchMyLinks, IListOfReferetnialTypesPayload, IPeopleSearch, IGetPeople, IGetPeopleAndGroupsPersona\r\n} from '../entities/IAdmin';\r\nimport * as actionTypes from './actionTypes/adminTypes';\r\nimport { ECompanyGroupKey } from '../entities/ICompany';\r\nimport { IReferentialTranslation } from '../entities/ILabelTranslation';\r\nimport { ISearchResponse } from '../entities/IGlobal';\r\nimport { ISIngleLegalEntity } from '../entities/ILegalEntities';\r\n\r\nexport const getAllBars = (): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/admin/bars`);\r\n}) as any;\r\n\r\nexport const setNewBar = (Label: string): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Name: [\r\n {\r\n Lcid: 1033,\r\n Label\r\n }\r\n ]\r\n };\r\n return http.apiPost(`/admin/bars`, body);\r\n}) as any;\r\n\r\nexport const updateBar = (Label: string, id: string): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Name: [\r\n {\r\n Lcid: 1033,\r\n Label\r\n }\r\n ]\r\n };\r\n return http.apiPut(`/admin/bars/${id}`, body);\r\n}) as any;\r\n\r\nexport const editCompany = (body: ISingleCompany, id: string, context: string): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPut(`/admin/${context === 'organization' ? 'associations' : 'companies'}/${id}`, body);\r\n}) as any;\r\n\r\nexport const getSingleCompany = (id: string, context: 'company' | 'organization'): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/admin/${context === 'organization' ? 'associations' : 'companies'}/${id}`).then((company: ISingleCompany) => {\r\n dispatch({\r\n type: actionTypes.GET_SINGLE_COMPANY,\r\n company\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const createCompany = (company: ISingleCompany, context: string) => ((dispatch, getState, http: Http) => {\r\n return http.apiPost(`/admin/${context === 'organization' ? 'associations' : 'companies'}`, company)\r\n .then(response => {\r\n dispatch({\r\n type: actionTypes.SUCCESSFULL_ACTION_CREATE_COMPANY,\r\n company: response\r\n });\r\n })\r\n .catch(error => {\r\n dispatch({\r\n type: actionTypes.FAILED_ACTION_CREATE_COMPANY,\r\n error: get(JSON.parse(error), 'response.data.Message')\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const clearCompany = () => ({\r\n type: actionTypes.CLEAR_COMPANY\r\n});\r\n\r\nexport const getFilteredCompanies = (filter: string = undefined, amount: number = 10, groupKey?: ECompanyGroupKey, onlyNoneReferenced?: boolean): Promise => ((dispatch, getState, http: Http) => {\r\n const request = `/legal-entities/filtered?${filter ? `name=${encodeURIComponent(filter)}&` : ''}top=${amount}${groupKey ? `&groupKey=${groupKey}` : ''}&lcid=1033${onlyNoneReferenced ? `&onlyNoneReferenced=${onlyNoneReferenced}` : ''}`;\r\n return http.profilesApiGet(request);\r\n}) as any;\r\n\r\nexport const getCompaniesByFilters = (name: string, filter: string): Promise<{id: string, name: string, picture: string}[]> => ((dispatch, getState, http: Http) => {\r\n return http.apiGet(`/v2/companies/filtered?input=${name}&entityTypeKey=${filter}&top=9999`);\r\n}) as any;\r\n\r\nexport const getAllOrganizations = (): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/admin/associations`);\r\n}) as any;\r\n\r\nexport const getAllSchools = (): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/admin/schools`);\r\n}) as any;\r\n\r\nexport const setNewSchool = (Name: string): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Name\r\n };\r\n return http.apiPost(`/admin/schools`, body);\r\n}) as any;\r\n\r\nexport const updateSchool = (Name: string, id: string): Promise<{}> => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Name\r\n };\r\n return http.apiPut(`/admin/schools/${id}`, body);\r\n}) as any;\r\n\r\nexport const getListofStakes = (referentialId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/referential-identities/${referentialId}/referentials?size=999999`);\r\n});\r\n\r\ninterface IListElement {\r\n Name: string;\r\n id: string;\r\n}\r\n\r\nexport const getReferentialListByType = (type: EReferentialTypes, payload: IListOfReferetnialTypesPayload) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const queryParams = queryString.stringify(payload, { skipEmptyString: true });\r\n return http.apiGet(`/client-referentials/types/${type}?lcid=${userLanguage}${queryParams && `&${queryParams}`}`);\r\n});\r\n\r\nexport const setReferentialByType = (name: string, type: EReferentialTypes) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Name: name,\r\n Type: type\r\n };\r\n\r\n return http.apiPost('/client-referentials', body);\r\n});\r\n\r\nexport const updateReferentialByType = (id: string, name: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const body = {\r\n Lcid: userLanguage,\r\n Name: name\r\n };\r\n return http.apiPut(`/client-referentials/${id}`, body);\r\n});\r\n\r\nexport const updateReferentialIdentity = (referentialIdentityId: string, Name: string, isVisible?: boolean) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n isVisible: true,\r\n Name\r\n };\r\n return http.profilesApiPut(`/referentials/identities/${referentialIdentityId}`, body);\r\n});\r\n\r\nexport const getReferentialIdentities = (context: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiGet(`/referentials/contexts/${context}/identities?size=9999`).then(res => res.items);\r\n});\r\n\r\nexport const getReferentialsData = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiGet(`/referentials`);\r\n});\r\n\r\nexport const getSingleReferential = (context: string, type: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/referentials/contexts/${context}/types/${type}/elements/full?size=9999&lcid=${userLanguage}`).then(res => res.items);\r\n});\r\n\r\nexport const getSingleReferentialById = (identityId: string, query?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const queryParams = queryString.stringify({\r\n query,\r\n lcid: userLanguage\r\n });\r\n return http.profilesApiGet(`/referentials/identities/${identityId}/elements/full?${queryParams}`).then(res => res.items);\r\n});\r\n\r\nexport const getFullReferentialElementsByIdentityId = (identityId: string, query = '', size = 9999, page = 0) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({\r\n ...(query && { query } || {}),\r\n size,\r\n page\r\n });\r\n return http.profilesApiGet(`/referentials/identities/${identityId}/elements/full?${queryParams}`);\r\n});\r\n\r\nexport const updateRef = (id: string, body: IReferentialTranslation[]) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiPut(`/referentials/elements/${id}`, body);\r\n});\r\n\r\nexport const updateStakeParent = (id: string, body: string[]) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiPut(`/referentials/elements/${id}/add-children`, body);\r\n});\r\n\r\nexport const removeStakeParent = (id: string, body: string[]) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiPut(`/referentials/elements/${id}/remove-children`, body);\r\n});\r\n\r\nexport const updateStakeRef = (referentialIdentityId: string, id: string, body: INormReferentialItem) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPut(`/referential-identities/${referentialIdentityId}/referentials/${id}`, body);\r\n});\r\n\r\nexport const createRef = (identityId: string, body: IReferentialTranslation[], key?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiPost(`/referentials/identities/${identityId}/elements`, {\r\n key,\r\n name: body\r\n });\r\n});\r\nexport const createStakeRef = (referentialId: string, body: INormReferentialItem) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPost(`/referential-identities/${referentialId}/referentials`, body);\r\n});\r\n\r\nexport const getPeople = (query: string = '') => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n\r\n const { userLanguage } = getState().language;\r\n\r\n return http.profilesApiPost(`/users/search?lcid=${userLanguage}`, { search: query, hideCurrentUser: false }).then((results) => {\r\n return ((results && results.items) || []).map((profile: IGetPeople) => {\r\n const persona = {\r\n text: `${profile.firstName} ${profile.lastName}`,\r\n imageInitials: `${profile.firstName.slice(0, 1)}${profile.lastName.slice(0, 1)}`,\r\n imageUrl: profile.picture,\r\n secondaryText: [profile.jobTitle, profile.cabinet].filter(val => val).join(' - '),\r\n id: profile.id,\r\n originalResult: profile\r\n };\r\n return persona;\r\n });\r\n });\r\n});\r\n\r\nexport const getPeopleAndGroups = (query: string = '') => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPost(`/groups/search-items?query=${query}&size=10`, {}).then((results) => {\r\n return ((results && results.items) || []).map((profile: { id: string; name: string; picture: string; type: 'Group' | 'Personal', emailWithoutAtSign: string }) => {\r\n const persona: IGetPeopleAndGroupsPersona = {\r\n text: profile.name,\r\n imageInitials: '',\r\n imageUrl: profile.picture,\r\n secondaryText: '',\r\n id: profile.id,\r\n originalResult: profile\r\n };\r\n\r\n return persona;\r\n });\r\n });\r\n});\r\n\r\nexport const createNewGroup = (body: ISingleGroup) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPost(`/groups`, body);\r\n});\r\nexport const updateGroup = (body: ISingleGroup, groupId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPut(`/groups/${groupId}`, body);\r\n});\r\nexport const getAllGroups = (page: number, query: string = '') => action>>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiGet(`/groups/search?size=20&query=${query}&page=${page}`);\r\n});\r\nexport const getSingleGroup = (groupId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiGet(`/groups/${groupId}`);\r\n});\r\nexport const removeGroup = (groupId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiDelete(`/groups/${groupId}`);\r\n});\r\nexport const getPlatformData = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/platform-resource`);\r\n});\r\nexport const getUsefulLinks = (page?: number, size?: number) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({\r\n page,\r\n size\r\n });\r\n return http.cmsApiGet(`/useful-links/my?${queryParams}`);\r\n});\r\nexport const getManageableUsefulLinks = () => action>((dispatch, getState, http) => {\r\n return http.cmsApiGet(`/useful-links/all`); // TODO: add pagination when API is ready\r\n});\r\nexport const setUsefulLinkOrder = (id: string, order: number) => action>((dispatch, getState, http) => {\r\n return http.cmsApiPut(`/useful-links/${id}/change-order?order=${order}`);\r\n});\r\nexport const createUsefulLink = (data: ICreateUsefulLink) => action>((dispatch, getState, http) => {\r\n return http.cmsApiPost(`/useful-links`, data);\r\n});\r\nexport const deleteUsefulLink = (id: string) => action>((dispatch, getState, http) => {\r\n return http.cmsApiDelete(`/useful-links/${id}`);\r\n});\r\nexport const setUsefulLinkPicture = (id: string, file: File) => action>((dispatch, getState, http) => {\r\n const form = new FormData();\r\n form.append('file', file);\r\n return http.cmsApiPost(`/useful-links/${id}/upload-picture`, form);\r\n});\r\nexport const getGroupsAndPeople = (query: string, organizationId: string, size?: number) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiPost(`/groups/search-items?size=${size ? size : '10'}&query=${query}`, { organizationId });\r\n});\r\nexport const updateUsefulLink = (id: string, data: ICreateUsefulLink) => action>((dispatch, getState, http) => {\r\n return http.cmsApiPut(`/useful-links/${id}`, data);\r\n});\r\n\r\nexport const getCTAPermissions = () => action>((dispatch, getState, http) => {\r\n return http.permissionsApiGet(`/resources/types/organization/call-to-action/allowed-actions`);\r\n});\r\n","import { ReactNode } from 'react';\r\n\r\nimport { action } from '../tools/reduxTools';\r\nimport { ADD_ALERT, UPDATE_ALERT, REMOVE_ALERT } from './actionTypes/alertTypes';\r\nimport { IAlert, EAlertType } from '../entities/IAlert';\r\nimport { delay } from '../tools/generalTools';\r\nimport { uuidv4 } from '../tools/authTools';\r\n\r\nexport const addAlert = (content: ReactNode, type: EAlertType) => action(async (dispatch) => {\r\n const alertId = uuidv4();\r\n const alert: IAlert = {\r\n id: alertId,\r\n content,\r\n type\r\n };\r\n\r\n dispatch({ type: ADD_ALERT, alert });\r\n await delay(10);\r\n dispatch({ type: UPDATE_ALERT, alert: { visible: true }, alertId });\r\n});\r\n\r\nexport const hideAndRemoveAlert = (alertId: string | number) => action(async(dispatch) => {\r\n dispatch({ type: UPDATE_ALERT, alert: { visible: false }, alertId });\r\n await delay(600);\r\n dispatch({ type: REMOVE_ALERT, alertId });\r\n});\r\n","import { Dispatch } from 'redux';\r\nimport { saveAs } from 'file-saver';\r\nimport _ from 'lodash';\r\n\r\nimport { EOrderByType, EDirectionType, IAnswer, IAnswerDto, IAnswerDtoClausier, ICreateQueryClausier, ICreateQuestion, IDataTableData, IGetFaqForQnA, IGetMainQuestion, IQueryDtoClausier, IQuestionDto, ISearchFaqToQnA, ISingleQueryClausier, ISingleQuestion, EQuestionCategory, ICreateRightResponse, ICreateRight, IRightsMiniDatatableEntry, ETemplateType, IRelatedItem, IUpdateRight, ISearchFaq, ERelatedItemType } from '../entities/AssetManagement/actions';\r\nimport { ITemplateDataGridSettings } from '../entities/IClusters';\r\nimport { ELcid } from '../entities/ILanguage';\r\nimport { action } from '../tools/reduxTools';\r\nimport { IState } from '../reducers';\r\nimport { IContextReducer } from '../reducers/contextReducer';\r\nimport { IConfigReducer } from '../reducers/configReducer';\r\nimport { Http } from '../tools/http';\r\nimport { ETypes, ICondition, EAssetManagementBaseType, ExportType } from '../entities/AssetManagement/global';\r\nimport { INegotiationData, INegotiationPreparedRequest, EQuestionType, IQuestionGeneric, EAnswerType, IAnswerGeneric, templateTypeFromQuestionType, templateTypeFromAnswerType, NegotiationAnswer } from '../entities/AssetManagement/negotiations';\r\nimport { getTextFromDraft } from '../tools/draftJS';\r\nimport { EAcceptanceStatus, IUserBrief } from '../entities/IGlobal';\r\n\r\nconst resolveNegotiationClusterQuestionPath = (clusterId: string, questionId?: string) => {\r\n return `/clusters/${clusterId}/questions/main${questionId ? '/' : ''}${questionId || ''}`;\r\n};\r\n\r\nconst resolveNegotiationClusterCreateSubQuestionPath = (clusterId: string, mainQuestionId?: string) => {\r\n return `/clusters/${clusterId}/questions/main/${mainQuestionId || ''}/sub`;\r\n};\r\n\r\nconst resolveNegotiationClusterSubQuestionPath = (clusterId: string, questionId?: string) => {\r\n return `/clusters/${clusterId}/questions/sub${questionId ? '/' : ''}${questionId || ''}`;\r\n};\r\n\r\nconst resolveNegotiationOrgQuestionPath = (organizationId: string, questionId?: string, isClauses?: boolean) => {\r\n if (isClauses) {\r\n return `/organizations/${organizationId}/clauses${questionId ? '/' : ''}${questionId || ''}`;\r\n } else {\r\n return `/organizations/${organizationId}/faq/main${questionId ? '/' : ''}${questionId || ''}`;\r\n }\r\n};\r\n\r\nconst resolveNegotiationQuestionApiCall = (http: Http, preparedRequest: INegotiationPreparedRequest, body?: ICreateQuestion, remove?: boolean, isClauses?: boolean): Promise => {\r\n const { clusterId, data: question, mainQuestionId, sub } = preparedRequest;\r\n\r\n if (preparedRequest.clusterId) {\r\n let apiPath: string;\r\n\r\n if (sub) {\r\n // cluster path sub\r\n if (question.id) {\r\n apiPath = resolveNegotiationClusterSubQuestionPath(clusterId, question.id);\r\n } else {\r\n apiPath = resolveNegotiationClusterCreateSubQuestionPath(clusterId, mainQuestionId);\r\n }\r\n } else {\r\n // cluster path main\r\n apiPath = resolveNegotiationClusterQuestionPath(clusterId, question.id);\r\n }\r\n\r\n if (!preparedRequest.data.id) {\r\n return http.clustersApiPost(apiPath, body);\r\n } else if (remove) {\r\n return http.clustersApiDelete(apiPath);\r\n } else {\r\n return http.clustersApiPut(apiPath, body);\r\n }\r\n } else {\r\n // org path\r\n const apiPath = resolveNegotiationOrgQuestionPath(preparedRequest.organizationId, question.id, isClauses);\r\n\r\n if (!question.id) {\r\n return http.clustersApiPost(apiPath, body);\r\n } else if (remove) {\r\n return http.clustersApiDelete(apiPath);\r\n } else {\r\n return http.clustersApiPut(apiPath, body);\r\n }\r\n }\r\n};\r\n\r\nconst resolveNegotiationClusterAnswerPath = (clusterId: string, questionId: string, answerId?: string) => {\r\n return `/clusters/${clusterId}/questions/${questionId}/answers${answerId ? '/' : ''}${answerId || ''}`;\r\n};\r\n\r\nconst resolveNegotiationOrgAnswerPath = (organizationId: string, questionId: string, answerId?: string) => {\r\n return `/organizations/${organizationId}/faq/questions/${questionId}/answers${answerId ? '/' : ''}${answerId || ''}`;\r\n};\r\n\r\nconst resolveNegotiationAnswerApiCall = (http: Http, preparedRequest: INegotiationPreparedRequest, body?: IAnswer, remove?: boolean): Promise => {\r\n const { organizationId, clusterId, questionId, data: answer } = preparedRequest;\r\n\r\n if (clusterId) {\r\n // cluster path\r\n const apiPath = resolveNegotiationClusterAnswerPath(clusterId, questionId, answer.id);\r\n\r\n if (!answer.id && body) {\r\n return http.clustersApiPost(apiPath, body);\r\n } else if (remove) {\r\n return http.clustersApiDelete(apiPath);\r\n } else if (body) {\r\n return http.clustersApiPut(apiPath, body);\r\n }\r\n } else {\r\n // org path\r\n const apiPath = resolveNegotiationOrgAnswerPath(organizationId, questionId, answer.id);\r\n\r\n if (!answer.id) {\r\n return http.clustersApiPost(apiPath, body);\r\n } else if (remove) {\r\n return http.clustersApiDelete(apiPath);\r\n } else {\r\n return http.clustersApiPut(apiPath, body);\r\n }\r\n }\r\n};\r\n\r\nconst getRelatedItemsFromQuestion = (question: IQuestionGeneric, modifyingArticlesSelection?: boolean) => {\r\n const metadataArticles = [...(question.metadata?.articles || [])];\r\n const existingRelatedItems = [...(question.relatedItems || [])];\r\n const preservedRelatedItems = modifyingArticlesSelection ? existingRelatedItems.filter((item) => item.relatedItemType !== ERelatedItemType.Article) : existingRelatedItems;\r\n const relatedItems = question.attachments ?\r\n [ ...metadataArticles, ...question.attachments, ...preservedRelatedItems]\r\n : [...metadataArticles, ...preservedRelatedItems];\r\n\r\n return _.uniqBy(relatedItems, 'relatedItemIdOrCommonId');\r\n};\r\n\r\nexport const questionDtoFromQuestionGeneric = (question: IQuestionGeneric, category?: EQuestionCategory, modifyingArticlesSelection?: boolean): ICreateQuestion => ({\r\n textRaw: getTextFromDraft(question.text),\r\n textFormatted: question.text,\r\n teamChannelId: question.teamChannelId,\r\n mainQuestionId: question.mainQuestionId,\r\n threadId: question.threadId,\r\n investorId: question.investorId,\r\n questionType: ETypes.New,\r\n questionCategory: category || EQuestionCategory.QuestionsAndAnswers,\r\n templateType: templateTypeFromQuestionType(question.type),\r\n parents: [],\r\n tagsIds: question.metadata?.themes?.map(elem => elem.id) || [],\r\n relatedItems: getRelatedItemsFromQuestion(question, modifyingArticlesSelection),\r\n investmentVehiclesIds: question.metadata?.vehicles?.map(elem => elem.id) || [],\r\n // @TODO the next line will modified be added later\r\n // mfnType: panelContext.mainData?.mainQuestionDto?.mfnType,\r\n // tslint:disable-next-line:no-null-keyword\r\n questionAcceptanceStatus: null\r\n});\r\n\r\nexport const answerDtoFromAnswerGeneric = (answer: IAnswerGeneric): IAnswer => ({\r\n mainQuestionId: answer.mainQuestionId,\r\n textFormatted: answer.text,\r\n textRaw: getTextFromDraft(answer.text),\r\n templateType: templateTypeFromAnswerType(answer.type),\r\n qualification: answer.qualification,\r\n answerAcceptanceStatus: answer.acceptanceStatus,\r\n relatedItems: answer.relatedItems,\r\n conditionsIds: answer.conditionsIds\r\n});\r\n\r\nexport const negotiationCommitServerRequest = (preparedRequest: any, remove?: boolean, questionCategory?: EQuestionCategory, isClauses?: boolean, modifyingArticlesSelection?: boolean) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n if (preparedRequest.isAnswer) {\r\n switch (preparedRequest.data.type) {\r\n case EAnswerType.GENERIC:\r\n case EAnswerType.LPA:\r\n case EAnswerType.SL:\r\n default:\r\n const answerDto = answerDtoFromAnswerGeneric(preparedRequest.data as IAnswerGeneric);\r\n return resolveNegotiationAnswerApiCall(http, preparedRequest, answerDto, remove);\r\n }\r\n } else if (preparedRequest.isQuestion) {\r\n switch (preparedRequest.data.type) {\r\n case EQuestionType.GENERIC:\r\n case EQuestionType.LPA:\r\n case EQuestionType.SL:\r\n default:\r\n let questionDto = undefined;\r\n if (isClauses) {\r\n questionDto = {rightAnswer: preparedRequest.data.rightAnswer, rightMainQuestion: preparedRequest.data.rightMainQuestion};\r\n } else {\r\n questionDto = questionDtoFromQuestionGeneric(preparedRequest.data as IQuestionGeneric, questionCategory, modifyingArticlesSelection);\r\n }\r\n return resolveNegotiationQuestionApiCall(http, preparedRequest, questionDto, remove, isClauses);\r\n }\r\n }\r\n});\r\n\r\nexport const negotiationPrepareServerRequests = (negotiationData: INegotiationData, organizationId?: string, clusterId?: string, questionCategory?: EQuestionCategory): INegotiationPreparedRequest[] => {\r\n const preparedRequests: INegotiationPreparedRequest[] = [];\r\n\r\n negotiationData.questionAnswers.forEach((questionAnswer) => {\r\n preparedRequests.push({\r\n organizationId,\r\n clusterId,\r\n data: questionAnswer.question,\r\n sub: questionAnswer.index > 0,\r\n mainQuestionId: questionAnswer.question.mainQuestionId,\r\n isQuestion: true\r\n });\r\n\r\n if (questionAnswer.answer) {\r\n preparedRequests.push({\r\n organizationId,\r\n clusterId,\r\n data: questionAnswer.answer,\r\n sub: questionAnswer.index > 0,\r\n isAnswer: true,\r\n mainQuestionId: questionAnswer.answer.mainQuestionId,\r\n questionId: questionAnswer.question.id\r\n });\r\n }\r\n });\r\n\r\n return preparedRequests;\r\n};\r\n\r\nexport interface IRightAnswer {\r\n mainQuestionId?: string;\r\n answerAcceptanceStatus?: EAcceptanceStatus;\r\n conditionsIds?: string[];\r\n templateType?: ETemplateType;\r\n textFormatted: string;\r\n textRaw: string;\r\n}\r\n\r\nexport interface IRightQuestion {\r\n questionAcceptanceStatus?: string;\r\n relatedItems?: IRelatedItem[];\r\n templateType?: ETemplateType;\r\n textFormatted: string;\r\n textRaw: string;\r\n}\r\n\r\nexport interface ICreateRightVersion {\r\n rightAnswer: IRightAnswer;\r\n rightQuestion: IRightQuestion;\r\n}\r\n\r\nexport interface ICreateRightVersionResponse {\r\n rightId: string;\r\n rightAnswer: IAnswerDto;\r\n rightQuestion: IQuestionDto;\r\n}\r\n\r\ninterface AMDatagrid {\r\n businessId: number;\r\n category: {\r\n enumElement: string;\r\n translationKey: string;\r\n value: string;\r\n };\r\n status: {\r\n enumElement: string;\r\n translationKey: string;\r\n value: string;\r\n };\r\n comment: number;\r\n thread: number;\r\n conditions: [];\r\n hasAlternatives: boolean;\r\n id: string;\r\n lastAnswer: string;\r\n lastEditedBy: IUserBrief[];\r\n lastUpdatedOrCreationDate: string;\r\n query: string;\r\n relatedArticles: [];\r\n relatedFaq: [];\r\n relatedProvisions: [];\r\n relatedThemes: [];\r\n relatedThreads: [];\r\n}\r\n\r\nexport const createClusterProvisionVersion = (clusterId: string, mainQuestionId: string, body: ICreateRightVersion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/rights/${mainQuestionId}/versions`, body);\r\n});\r\n\r\nexport const updateClusterProvisionVersion = (clusterId: string, mainQuestionId: string, questionId: string, body: ICreateRightVersion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/rights/${mainQuestionId}/versions/${questionId}`, body);\r\n});\r\n\r\nexport const createOrgClauses = (organizationId: string, body: ICreateRightVersion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clauses`, body);\r\n});\r\n\r\nexport const updateOrgClauses = (organizationId: string, mainQuestionId: string, body: IUpdateRight) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/organizations/${organizationId}/clauses/${mainQuestionId}`, body);\r\n});\r\n\r\nexport const createOrgProvisionVersion = (orgId: string, mainQuestionId: string, body: ICreateRightVersion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/rights/${mainQuestionId}/versions`, body);\r\n});\r\n\r\nexport const updateOrgProvisionVersion = (orgId: string, mainQuestionId: string, questionId: string, body: ICreateRightVersion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/organizations/${orgId}/rights/${mainQuestionId}/versions/${questionId}`, body);\r\n});\r\n\r\nexport const createRight = (clusterId: string, body: ICreateRight) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/rights`, body);\r\n});\r\n\r\nexport const updateRight = (clusterId: string, rightId: string, body: IUpdateRight) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/rights/${rightId}`, body);\r\n});\r\n\r\nexport const getMiniDatatable = (clusterId: string, mainQuestionId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/clusters/${clusterId}/questions/main/${mainQuestionId}/related/rights/mini-datatable`);\r\n});\r\n\r\nexport const searchInFaq = (orgId: string, body: ISearchFaq) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/faq/search`, body);\r\n});\r\n\r\nexport const searchInClauses = (orgId: string, body: ISearchFaq) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/Clauses/search`, body);\r\n});\r\n\r\nexport const useFromFaq = (clusterId: string, questionId: string, faqElementId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/questions/${questionId}/answers/from-faq/${faqElementId}`);\r\n});\r\n\r\nexport const createClusterQuestion = (clusterId: string, body: ICreateQuestion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/questions/main`, body);\r\n});\r\n\r\nexport const createSideLetterMain = (clusterId: string, body: ICreateQuestion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return createClusterQuestion(clusterId, body);\r\n});\r\n\r\nexport const createMainFAQ = (orgId: string, body: ICreateQuestion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/faq/main`, body);\r\n});\r\n\r\nexport const updateClusterQuestion = (clusterId: string, questionId: string, body: ICreateQuestion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/questions/main/${questionId}`, body);\r\n});\r\n\r\nexport const deleteClusterQuestion = (clusterId: string, questionId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/questions/main/${questionId}`);\r\n});\r\n\r\nexport const addQuestionAnswerToFaq = (clusterId: string, mainQuestionId: string, answerId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/questions/main/${mainQuestionId}/answers/${answerId}/add-to-faq`);\r\n});\r\n\r\nexport const addQuestionToFaq = (clusterId: string, questionId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/questions/main/${questionId}/add-to-faq`);\r\n});\r\n\r\nexport const updateFAQ = (orgId: string, questionId: string, body: ICreateQuestion) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/organizations/${orgId}/faq/main/${questionId}`, body);\r\n});\r\n\r\nexport const createClusterSubQuestion = (clusterId: string, mainQuestionId: string, body: { textFormatted: string, textRaw: string, teamChannelId: string }) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/questions/main/${mainQuestionId}/sub`, body);\r\n});\r\n\r\nexport const getMainRight = (clusterId: string, rightId: string) => action>>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/clusters/${clusterId}/questions/main/${rightId}`);\r\n});\r\n\r\nexport const getMainQuestion = (clusterId: string, mainQuestionId: string) => action>>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/clusters/${clusterId}/Questions/main/${mainQuestionId}`);\r\n});\r\n\r\nexport const getMainFaq = (orgId: string, mainQuestionId: string) => action>>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/organizations/${orgId}/faq/main/${mainQuestionId}`);\r\n});\r\n\r\nexport const getMainClausier = (orgId: string, mainQuestionId: string) => action>>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/organizations/${orgId}/faq/main/${mainQuestionId}`);\r\n});\r\n\r\nexport const updateMainClausier = (orgId: string, clauseId: string, body: ICreateQueryClausier) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/organizations/${orgId}/clauses/main/${clauseId}`, body);\r\n});\r\n\r\nexport const createClausierRight = (orgId: string, mainQuestionId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/faq/questions/${mainQuestionId}/answers`, body);\r\n});\r\n\r\nexport const addRightToClauses = (clusterId: string, queryId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/queries/main/${queryId}/add-to-clauses`);\r\n});\r\n\r\nexport const addSubRightToClauses = (clusterId: string, queryId: string, subQueryId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/clauses/queries/main/${queryId}/add-to-clauses/sub/${subQueryId}`);\r\n});\r\n\r\nexport const updateClausierRight = (orgId: string, queryId: string, rightId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/organizations/${orgId}/clauses/queries/${queryId}/rights/${rightId}`, body);\r\n});\r\n\r\nexport const deleteClausierRight = (orgId: string, mainQuestionId: string, clausierId: string) => action>(async (dispatch: Dispatch, getStates: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/organizations/${orgId}/questions/main/${mainQuestionId}/answers/${clausierId}`);\r\n});\r\n\r\nconst defaultExploreSettings = { columnsSettings: [\r\n {\r\n translationKey: 'customDatagrid.cluster.templateType',\r\n field: 'cluster-template-type',\r\n headerText: 'Type',\r\n isVisible: true,\r\n type: 'clusterTemplate',\r\n width: 72\r\n },\r\n {\r\n translationKey: 'customDatagrid.cluster.clusterOverview',\r\n field: 'cluster-overview',\r\n headerText: 'Overview',\r\n isVisible: true,\r\n type: 'clusterOverview'\r\n },\r\n {\r\n subType: 'messages',\r\n translationKey: 'customDatagrid.cluster.numberOfMessages',\r\n field: 'number-of-messages',\r\n headerText: 'Activity',\r\n isVisible: true,\r\n type: 'hyperlink',\r\n width: 104\r\n },\r\n {\r\n subType: 'documents',\r\n translationKey: 'customDatagrid.cluster.numberOfDocuments',\r\n field: 'number-of-documents',\r\n headerText: 'Document',\r\n isVisible: true,\r\n type: 'hyperlink',\r\n width: 104\r\n },\r\n {\r\n translationKey: 'customDatagrid.cluster.clusterPeople',\r\n field: 'cluster-people',\r\n headerText: 'People',\r\n isVisible: true,\r\n type: 'people',\r\n width: 104\r\n },\r\n {\r\n subType: 'relativeDate',\r\n translationKey: 'customDatagrid.cluster.lastEditedBy',\r\n field: 'last-edited-by',\r\n headerText: 'Last edited by',\r\n isVisible: true,\r\n type: 'lastEditedBy',\r\n width: 200\r\n }\r\n]};\r\n\r\nexport const getSettingsClusterDatagrid = (organizationId: string, key: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n if (key === 'clusters-explore' && !organizationId)\r\n return defaultExploreSettings;\r\n return http.clustersApiGet(`/organizations/${organizationId}/custom-datagrid-by-key/${key}/settings?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getSettingsFaQDatagrid = (organizationId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organizationId}/custom-datagrid-by-key/custom-frequently-asked-questions-organization/settings?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getSettingsClausierDatagrid = (organizationId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organizationId}/custom-datagrid-by-key/custom-clausier-organization/settings?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getSettingsAllRightsDatagrid = (organizationId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organizationId}/custom-datagrid-by-key/custom-rights-organization/settings?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const uploadAssetManagementFiles = (organizationId: string, clusterId: string, assetMangementBaseType: EAssetManagementBaseType, assetManagementItemId: string, files: File[]) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const formData = new FormData();\r\n\r\n for (let file of files) {\r\n formData.append('files', file);\r\n }\r\n\r\n if (clusterId) {\r\n return http.clustersApiUpload(`/organizations/${organizationId}/clusters/${clusterId}/${assetMangementBaseType}/${assetManagementItemId}/attachments`, formData, () => { /** */ });\r\n }\r\n\r\n return http.clustersApiUpload(`/organizations/${organizationId}/${assetMangementBaseType}/${assetManagementItemId}/attachments`, formData, () => { /** */ });\r\n});\r\n\r\nexport const deleteAssetManagementFile = (organizationId: string, clusterId: string, assetManagementBaseType: EAssetManagementBaseType, assetManagementItemId: string, fileId: string, body: { name: string, path: string }) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n if (clusterId) {\r\n return http.clustersApiDelete(`/organizations/${organizationId}/clusters/${clusterId}/${assetManagementBaseType}/${assetManagementItemId}/attachments/${fileId}`, body);\r\n }\r\n\r\n return http.clustersApiDelete(`/organizations/${organizationId}/${assetManagementBaseType}/${assetManagementItemId}/attachments/${fileId}`, body);\r\n});\r\n\r\ntype FetcherFn = (orgId: string, filters: object) => Promise;\r\n\r\nconst cachedByOrgsFilters = (fetcherFn: FetcherFn): FetcherFn => {\r\n let cache = {};\r\n\r\n return (orgId: string, filters: object) => {\r\n if (cache[orgId]?.has(filters)) {\r\n return cache[orgId].get(filters);\r\n }\r\n const result = fetcherFn(orgId, filters);\r\n cache = { [orgId]: new Map([[ filters, result ]]) };\r\n return result;\r\n };\r\n};\r\n\r\nexport const getDataRightDatagrid = cachedByOrgsFilters((organizationId: string, filters) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/Rights/consolidated/datagrid`, filters);\r\n}));\r\n\r\nexport const getSideLetterDatagrid = cachedByOrgsFilters((clusterId: string, filters: any) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n // tslint:disable-next-line: no-null-keyword\r\n return http.clustersApiPost(`/clusters/${clusterId}/rights/datagrid`, { ...filters, hasFollowUpQuestions: filters.hasFollowUpQuestions?.[0] ? filters.hasFollowUpQuestions?.[0] === 'true' : null });\r\n}));\r\n\r\nexport const getDataOrgrDatagrid = cachedByOrgsFilters((orgId: string, filters) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/Questions/datagrid`, filters);\r\n}));\r\n\r\nexport const getDataClusterDatagrid = cachedByOrgsFilters((clusterId: string, filters) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/Questions/datagrid`, filters);\r\n}));\r\n\r\nexport const getDataFaqDatagrid = cachedByOrgsFilters((orgId: string, filters) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/faq/datagrid`, filters);\r\n}));\r\n\r\nexport const getDataClausierDatagrid = cachedByOrgsFilters((orgId: string, filters) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/clauses/datagrid`, filters);\r\n}));\r\n\r\nexport const getDataAllRightsDatagrid = cachedByOrgsFilters((orgId: string, filters) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/rights/datagrid`, filters);\r\n}));\r\n\r\nexport const setAnswerToQuestion = (clusterId: string, questionId: string, body: IAnswer, type: 'questions' | 'rights') => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/${type}/${questionId}/answers`, body);\r\n});\r\n\r\nexport const setVersionToSubQuery = (clusterId: string, questionId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/queries/${questionId}/rights`, body);\r\n});\r\n\r\nexport const setRightToQuery = (clusterId: string, questionId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/queries/${questionId}/rights`, body);\r\n});\r\n\r\nexport const setFaqAnswerToQuestion = (orgId: string, questionId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/faq/questions/${questionId}/answers`, body);\r\n});\r\n\r\nexport const updateAnswerToQuestion = (clusterId: string, questionId: string, answerId: string, body: IAnswer, type: 'questions' | 'queries') => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/${type}/${questionId}/answers/${answerId}`, body);\r\n});\r\n\r\nexport const updateVersionToSubQuery = (clusterId: string, questionId: string, answerId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/queries/${questionId}/rights/${answerId}`, body);\r\n});\r\n\r\nexport const updateRightToQuery = (clusterId: string, questionId: string, answerId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/queries/${questionId}/rights/${answerId}`, body);\r\n});\r\n\r\nexport const deleteSubQuestionThread = (clusterId: string, questionId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/questions/sub/${questionId}`);\r\n});\r\n\r\nexport const deleteSubAnswerThread = (clusterId: string, questionId: string, answerId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/questions/${questionId}/answers/${answerId}`);\r\n});\r\n\r\nexport const deleteThread = (clusterId: string, questionId: string, answerId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/queries/${questionId}/rights/${answerId}`);\r\n});\r\n\r\nexport const deleteSubQuery = (clusterId: string, rightId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/queries/sub/${rightId}`);\r\n});\r\n\r\nexport const updateSubQuestion = (clusterId: string, questionId: string, body: { textFormatted: string, textRaw: string }) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/questions/sub/${questionId}`, body);\r\n});\r\n\r\nexport const updateAnswerToFaq = (orgId: string, questionId: string, answerId: string, body: IAnswer) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/organizations/${orgId}/clauses/questions/${questionId}/answers/${answerId}`, body);\r\n});\r\n\r\nexport const getFaqForQuestion = (orgId: string, body: ISearchFaqToQnA) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/Faq/search`, body);\r\n});\r\n\r\nexport const getQueriesForQuestion = (orgId: string, body: ISearchFaqToQnA) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${orgId}/clauses/search`, body);\r\n});\r\n\r\nexport const pickFaqInQnA = (clusterId: string, questionId: string, faqElementId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/questions/${questionId}/answers/from-faq/${faqElementId}`);\r\n});\r\n\r\nexport const pickClausesInRight = (clusterId: string, questionId: string, faqElementId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/queries/${questionId}/rights/from-clausier/${faqElementId}`);\r\n});\r\n\r\nexport const getConditions = () => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/conditions/search`, { conditionTypeFilter: [0] });\r\n});\r\n\r\nexport const createCondition = (condition: ICondition) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/conditions`, condition);\r\n});\r\n\r\nconst getCommonHeaders = (context: IContextReducer, config: IConfigReducer) => ({\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n});\r\n\r\nconst parseFileNameAndBlobFromRes = async (res: Response): Promise<[string | undefined, Blob]> => {\r\n const blob = await res.blob();\r\n const fileNameToSplit = res.headers.get('content-disposition')?.split('filename=')[1]?.split(';')?.[0];\r\n\r\n if (fileNameToSplit?.[0] === '\"') {\r\n return [fileNameToSplit.split('\"')[1], blob];\r\n }\r\n\r\n return [undefined, blob];\r\n};\r\n\r\nexport const exportToExcel = (clusterId: string, filters, exportType: ExportType, exportContext: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { context, config } = getState();\r\n return fetch(`${config.clustersApiUrl}/clusters/${clusterId}/${exportContext}/export/xslt`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...filters, exportType, direction: EDirectionType.Ascending, orderBy: EOrderByType.CreatedDate }),\r\n headers: getCommonHeaders(context, config)\r\n }).then(parseFileNameAndBlobFromRes).then(([fileName, blob]) => {\r\n blob && saveAs(blob, fileName || 'Export.xlsx');\r\n });\r\n});\r\n\r\nexport const exportOrgToExcel = (orgId: string, filters, exportType: ExportType, exportContext: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { context, config } = getState();\r\n return fetch(`${config.clustersApiUrl}/organizations/${orgId}/${exportContext}/export/xslt`, {\r\n method: 'POST',\r\n body: JSON.stringify({ ...filters, direction: EDirectionType.Ascending, orderBy: EOrderByType.CreatedDate, exportType, organizationId: orgId, questionCategoryFilter: exportContext, onlyQuestionsWithAnswers: undefined }),\r\n headers: getCommonHeaders(context, config)\r\n }).then(parseFileNameAndBlobFromRes).then(([fileName, blob]) => {\r\n blob && saveAs(blob, fileName || 'Export.xlsx');\r\n });\r\n});\r\n\r\nexport const exportSideLetterToWord = (clusterId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { context, config } = getState();\r\n return fetch(`${config.clustersApiUrl}/clusters/${clusterId}/side-letter/generate`, {\r\n method: 'POST',\r\n headers: getCommonHeaders(context, config)\r\n });\r\n});\r\n","import { action } from '../tools/reduxTools';\r\nimport { SET_COLOR_USER } from './actionTypes/avatarTypes';\r\n\r\nexport const setUserColor = (id: string) => action(async(dispatch) => {\r\n await dispatch({ type: SET_COLOR_USER, data: {id}});\r\n});","import { IBillingSubscription } from '../entities/Billing/Billing';\r\nimport { IState } from '../reducers';\r\nimport { Http } from '../tools/http';\r\nimport { action } from '../tools/reduxTools';\r\n\r\nexport const getBillingSubscriptions = () => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n return http.commonApiGet(`/subscriptions`);\r\n});","export interface ICOIPost {\r\n formData: {\r\n declarationType: string,\r\n coiInformation: {\r\n creator: {\r\n id: string\r\n },\r\n jobTitle: string,\r\n legalEntity: {\r\n id: string\r\n },\r\n manager: {\r\n id: string\r\n }\r\n },\r\n coiDeclaration: {\r\n type: string,\r\n description: string,\r\n linkType: {\r\n id: string,\r\n name: string,\r\n key: string\r\n },\r\n thirdParty: {\r\n id: string\r\n },\r\n startingDate: string,\r\n endingDate: string,\r\n context: string\r\n }\r\n coiCertification: {\r\n certificateClauses: string,\r\n certificationDate: Date,\r\n certificationSignee: {\r\n id: string\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport enum ECoiType {\r\n CoiNoLink = 40,\r\n CoiElectedPosition = 30,\r\n CoiFamilyInterest = 30,\r\n CoiFinance = 30,\r\n CoiAssociationMandate = 30,\r\n CoiOtherLink = 30\r\n}","import { Dispatch } from 'redux';\r\nimport { IPersonaProps } from '@fluentui/react';\r\nimport queryString from 'query-string-for-all';\r\nimport { DataManager, CustomDataAdaptor } from '@syncfusion/ej2-data';\r\nimport { extend } from '@syncfusion/ej2-base';\r\n\r\nimport * as actionTypes from './actionTypes/clustersTypes';\r\nimport * as organizationActionTypes from './actionTypes/organizationsTypes';\r\nimport { Http } from '../tools/http';\r\nimport { action, downloadFile, IDispatch } from '../tools/reduxTools';\r\nimport { delay } from '../tools/generalTools';\r\nimport { IState } from '../reducers';\r\nimport {\r\n ISingleCluster, IChannelMessages, ISingleChannelMessage, IRequestAccessUser,\r\n IClusterSingleMessage, IDocumentList, IClusterTags, EClusterAccessError, ECustomDatagidsKeys,\r\n IClustersListCluster, IEconomicStakes, IGetInvolvedPartiesResponse, IInvolvedPartyRequest, EClusterPrivacy, EClusterNature, ICLusterListPayload,\r\n IDataGridSettings, IClusterWorkplaceDetails, ISingleClusterChannelMessage, IClustersListPage, IClustersListSearch, SendMessageBody, ICreateLinks,\r\n IClusterTemplate, ITemplateDataGridSettings, ITimelineItemForm, ISingleClusterCore, ISingleClusterGift, IDatagridView, ISingleInvolvedPartie, ICreateCorporateCluster, ISingleLink, IClusterResources, ITeamWithChannels, IActivityFiles\r\n} from '../entities/IClusters';\r\nimport { IOrganizationMember } from '../entities/IOrganization';\r\nimport { IDirectoryContent, IGIAttachmentUploadResponse } from '../entities/IClustersFilesystem';\r\nimport { ClusterPermissions, OrganizationPermissions, ERoleType } from '../entities/IPermissions';\r\nimport { IRoleManagerUser, IRoleManagerEmailInvitation } from '../entities/IRoleManager';\r\nimport { ELcid } from '../entities/ILanguage';\r\nimport { ISIngleLegalEntity, IPersonsInCharge } from '../entities/ILegalEntities';\r\nimport { ISearchWork } from '../entities/IWork';\r\nimport { IClusterDynamicStakes, IClusterSingleDynamicStake } from '../entities/IClusterStake';\r\nimport { EClusterStatus, EProfileType, ISearchResponse } from '../entities/IGlobal';\r\nimport { IFormData } from '../entities/IDeclaration';\r\nimport { uuidv4 } from '../tools/authTools';\r\nimport { ICOIPost, ECoiType } from '../entities/ActionPost/ICOIPost';\r\nimport { ISponsoringPost } from '../entities/ActionPost/ISponsoringPost';\r\nimport { IDates } from '../entities/IDates';\r\nimport { ISponsoringData } from '../entities/ActionData/ISponsoringData';\r\nimport { getMessageTranslations } from './languageActions';\r\nimport { ClusterPostData, IWizardValues } from '../entities/ILegalSupport';\r\nimport { getAllClusterReferentials } from './globalActions';\r\nimport { IGlobalTypes, SET_CURRENCY_RATIO } from './actionTypes/globalTypes';\r\nimport { IActivitySearchItem } from '../entities/Activity/global';\r\nimport { ITradeAssociationPost } from '../entities/ActionPost/ITradeAssociationPost';\r\n\r\nexport const getClusterList = (organizationId: string, data: ICLusterListPayload, page?: number): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/list?page=${page || 0}&size=10`, data).then((response: IClustersListPage & { permissions: OrganizationPermissions[] }) => {\r\n dispatch({\r\n type: actionTypes.GET_CLUSTERS_LIST,\r\n clustersList: response.items as IClustersListCluster[]\r\n });\r\n dispatch>({\r\n type: organizationActionTypes.UPDATE_ORGANIZATION_PERMISSIONS,\r\n permissions: response.permissions,\r\n organizationId\r\n });\r\n return response as IClustersListPage;\r\n });\r\n}) as any;\r\n\r\nexport const postGiftInvitationForm = (organizationId: string, data: IFormData) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const body: IFormData['formData'] = {\r\n declaration: data.formData.declaration,\r\n thirdParties: data.formData.thirdParties,\r\n information: data.formData.information,\r\n message: data.formData.message,\r\n declarationType: data.formData.declarationType\r\n };\r\n\r\n return http.clustersApiPost(\r\n `/organizations/${organizationId}/clusters/create-gift-invitation`,\r\n body\r\n );\r\n});\r\nexport const createLegalSupportCluster = (organizationId: string, data: IWizardValues) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const body: ClusterPostData = {\r\n requestAttachment: data.formData.attachment,\r\n templateKey: 'legal-support',\r\n legalSupportSubject: data.formData.subject,\r\n request: data.formData.question,\r\n answerDate: data.formData.answerDate,\r\n requestInformation: {\r\n creator: {\r\n firstName: data.formData.user.data.firstName,\r\n lastName: data.formData.user.data.lastName,\r\n jobTitle: data.formData.user.data.jobTitle,\r\n picture: data.formData.user.data.picture,\r\n // tslint:disable-next-line:no-null-keyword\r\n cabinet: data.formData.user.data.cabinet?.name || null,\r\n id: data.formData.user.data.id,\r\n emailContact: data.formData.user.data.emailContact,\r\n type: 'Personal'\r\n },\r\n jobTitle: data.formData.jobTitle,\r\n legalEntity: data.formData.legalEntity.data,\r\n manager: data.formData.manager.data\r\n }\r\n };\r\n\r\n return http.clustersApiPost(\r\n `/organizations/${organizationId}/clusters/create-legal-support`,\r\n body\r\n );\r\n});\r\nexport const createSponsoringCluster = (organizationId: string, data: ISponsoringData) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const { language } = getState();\r\n const values = data.formData;\r\n const body: ISponsoringPost['formData'] = {\r\n templateKey: values.templateKey,\r\n declarationName: values.declarationName.trim(),\r\n description: values.description,\r\n // tslint:disable-next-line:no-null-keyword\r\n declarationType: null,\r\n information: {\r\n creator: {\r\n id: values.information.creator.id\r\n },\r\n jobTitle: values.information.jobTitle,\r\n legalEntity: {\r\n id: values.information.legalEntity.id\r\n },\r\n manager: {\r\n id: values.information.manager.id\r\n }\r\n }\r\n };\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/create-sponsoring?lcid=${language.userLanguage || ELcid.En}`, body);\r\n});\r\n\r\nexport const postCOIWizard = (organizationId: string, data: ICOIPost) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const { language } = getState();\r\n const values = data.formData;\r\n const body: ICOIPost['formData'] = {\r\n declarationType: ECoiType[values.coiDeclaration.type],\r\n coiInformation: {\r\n creator: {\r\n id: values.coiInformation.creator.id\r\n },\r\n jobTitle: values.coiInformation.jobTitle,\r\n legalEntity: {\r\n id: values.coiInformation.legalEntity.id\r\n },\r\n manager: {\r\n id: values.coiInformation.manager.id\r\n }\r\n },\r\n coiDeclaration: {\r\n type: values.coiDeclaration.type,\r\n description: values.coiDeclaration.description,\r\n linkType: {\r\n id: values.coiDeclaration.linkType?.id,\r\n name: values.coiDeclaration.linkType?.name,\r\n key: values.coiDeclaration.linkType?.key\r\n },\r\n thirdParty: {\r\n id: values.coiDeclaration.thirdParty?.id\r\n },\r\n startingDate: values.coiDeclaration.startingDate,\r\n endingDate: values.coiDeclaration?.endingDate,\r\n context: values.coiDeclaration?.context\r\n },\r\n coiCertification: {\r\n certificateClauses: values.coiCertification?.certificateClauses,\r\n certificationDate: values.coiCertification?.certificationDate,\r\n certificationSignee: {\r\n id: values.coiCertification?.certificationSignee?.id\r\n }\r\n }\r\n };\r\n\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/create-conflict-of-interest?lcid=${language.userLanguage || ELcid.En}`, body);\r\n});\r\n\r\nexport const postTradeAssociationWizard = (organizationId: string, data: ITradeAssociationPost) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const { language } = getState();\r\n const values = data.formData;\r\n const body: ITradeAssociationPost['formData'] = {\r\n tradeAssociationInformation: {\r\n creator: {\r\n id: values.tradeAssociationInformation.creator.id\r\n },\r\n jobTitle: values.tradeAssociationInformation.jobTitle,\r\n legalEntity: {\r\n id: values.tradeAssociationInformation.legalEntity.id\r\n },\r\n manager: {\r\n id: values.tradeAssociationInformation.manager.id\r\n }\r\n },\r\n tradeAssociationDeclaration: {\r\n description: values.tradeAssociationDeclaration.description,\r\n linkType: {\r\n id: values.tradeAssociationDeclaration.linkType?.id,\r\n name: values.tradeAssociationDeclaration.linkType?.name,\r\n key: values.tradeAssociationDeclaration.linkType?.key\r\n },\r\n thirdParty: {\r\n id: values.tradeAssociationDeclaration.thirdParty?.id\r\n },\r\n startingDate: values.tradeAssociationDeclaration.startingDate,\r\n endingDate: values.tradeAssociationDeclaration?.endingDate,\r\n context: values.tradeAssociationDeclaration?.context\r\n },\r\n tradeAssociationCertification: {\r\n certificateClauses: values.tradeAssociationCertification?.certificateClauses,\r\n certificationDate: values.tradeAssociationCertification?.certificationDate,\r\n certificationSignee: {\r\n id: values.tradeAssociationCertification?.certificationSignee?.id\r\n }\r\n }\r\n };\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/create-trade-associations?lcid=${language.userLanguage || ELcid.En}`, body);\r\n});\r\n\r\nexport const addNewInvolvedParty = (involvedPartiesGroupId: string, body: IInvolvedPartyRequest) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { clusters } = getState();\r\n return http.clustersApiPost(`/clusters/${clusters.currentClusterId}/involved-parties-groups/${involvedPartiesGroupId}`, body);\r\n});\r\n\r\nexport const updateInvolvedParty = (involvedPartiesGroupId: string, body: IInvolvedPartyRequest, involvedPartyId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { clusters } = getState();\r\n return http.clustersApiPut(`/clusters/${clusters.currentClusterId}/involved-parties-groups/${involvedPartiesGroupId}/${involvedPartyId}`, body);\r\n});\r\n\r\nexport const getClustersSearchResult = (organizationId: string, isMineClusters: boolean, page: number = 0, size: number = 100, showOnlyNotHubs: boolean = false, query?: string, filters?: { [key: string]: string[] }, excludedClusterIds?: string[]): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n\r\n const body = {\r\n query: query || '',\r\n ...filters,\r\n isMineClusters,\r\n excludedClusterIds\r\n };\r\n\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/search?page=${page}&size=${size}&showOnlyNotHubs=${showOnlyNotHubs}&lcid=${language.userLanguage || ELcid.En}`, body).then((response: IClustersListSearch) => {\r\n dispatch({\r\n type: actionTypes.GET_CLUSTERS_SEARCH_RESULT,\r\n clustersSearchResult: {\r\n items: response.items,\r\n facets: response.facets\r\n }\r\n });\r\n return response;\r\n });\r\n}) as any;\r\n\r\nexport const downloadFileAsBlob = (documentId: string, isThumbnail: boolean, clusterId?: string): Promise<{}> => ((dispatch: Dispatch, getState, http: Http) => {\r\n const { context, config, clusters } = getState();\r\n return fetch(`${config.clustersApiUrl}/clusters/${clusterId || clusters.currentClusterId}/documents/${documentId}/download?isThumbnail=${isThumbnail}`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => res.blob());\r\n}) as any;\r\n\r\nexport const downloadDocuments = (clusterId: string, name: string, path?: string): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n const { clusters } = getState();\r\n const body = {\r\n name,\r\n path: path || 'Conversation files',\r\n includeFiles: true,\r\n recursive: true\r\n };\r\n return http.clustersApiPost(`/clusters/${clusterId || clusters.currentClusterId}/documents/metadata`, body);\r\n}) as any;\r\n\r\nexport const getClusterMembers = (clusterId?: string, query: string = '', size: number = 9999): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n const params = [\r\n ...[query ? [`query=${query}`] : []],\r\n `size=${size}`,\r\n `PrincipalType=Personal`\r\n ].filter(param => !!param).join('&');\r\n return http.permissionsApiGet(`/resources/${clusterId || getState().clusters.currentClusterId}/principals?resourceTypes=Cluster&${params}`).then((response) => {\r\n return (response && (response.items || response.principals)) || [];\r\n });\r\n}) as any;\r\n\r\nexport const getClusterMembersDataManager = (clusterId?: string, clusterName?: string): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n const { context, config } = getState();\r\n let result = new DataManager({\r\n adaptor: new CustomDataAdaptor({\r\n getData: function (option: any) {\r\n const query = JSON.parse(option.data)?.where?.[0]?.value || '';\r\n let request: any;\r\n fetch(`${config.permissionsApiUrl}/resources/${clusterId || getState().clusters.currentClusterId}/principals?resourceTypes=Cluster&PrincipalType=Personal&query=${query}`, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n }\r\n }).then((response) => {\r\n request = extend({}, option, { httpRequest: {...response, getResponseHeader: () => 'application/json; charset=utf-8'} });\r\n if (response.status >= 200 && response.status <= 299) {\r\n return response.json();\r\n }\r\n }).then((data) => {\r\n const principalsMappedData = data.principals.map(member => ({\r\n id: member.childId || member.id,\r\n display: member?.childName || `${member?.firstName} ${member?.lastName}`,\r\n picture: member.picture,\r\n type: member?.principalType?.toLowerCase()\r\n }));\r\n if (clusterName?.includes(query.toLowerCase()) && clusterName) {\r\n principalsMappedData.unshift({id: clusterId, display: clusterName, picture: undefined, type: EProfileType.Cluster});\r\n }\r\n option.onSuccess(principalsMappedData, request);\r\n }).catch((error) => {\r\n option.onFailure(request);\r\n });\r\n }\r\n })\r\n });\r\n return result;\r\n}) as any;\r\n\r\nexport const requestAccess = (resourceId: string, resourceType: ERoleType) => action>((dispatch, getState: () => IState, http: Http) => {\r\n const { profile } = getState();\r\n const body = {\r\n firstName: profile.currentUserProfile.firstName,\r\n lastName: profile.currentUserProfile.lastName,\r\n picture: profile.currentUserProfile.picture,\r\n id: profile.currentUserProfile.id\r\n };\r\n return http.permissionsApiPost(`/resources/${resourceId || getState().clusters.currentClusterId}/access-requests?resourceType=${resourceType}`, body).then((response) => {\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData: EClusterAccessError.NOT_MEMBER_REQ_ALREADY_SENT\r\n });\r\n });\r\n});\r\n\r\nexport const createChannel = (name: string, type: string, selectedUsers: IPersonaProps[], clusterId: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n name,\r\n type,\r\n members: selectedUsers.map((user: any) => {\r\n return {\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n picture: user.picture,\r\n role: user.role,\r\n id: user.id,\r\n cabinet: user.cabinet,\r\n jobTitle: user.jobTitle,\r\n department: user.department\r\n };\r\n }),\r\n clusterId\r\n };\r\n return http.clustersApiPost(`/clusters/${getState().clusters.currentClusterId}/channels`, body);\r\n}) as any;\r\n\r\nexport const updateChannel = (clusterChannelId: string, name: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n name\r\n };\r\n return http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/channels/${clusterChannelId}`, body);\r\n}) as any;\r\n\r\nexport const archiveChannel = (clusterChannelId: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/channels/${clusterChannelId}/archive`);\r\n}) as any;\r\n\r\nexport const addMemberToCluster = (accessRequestId: string, clusterId?: string) => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPost(`/resources/${clusterId || getState().clusters.currentClusterId}/access-requests/${accessRequestId}/accept`);\r\n});\r\n\r\nexport const getRequestAccessUser = (clusterId?: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiGet(`/resources/${clusterId || getState().clusters.currentClusterId}/access-requests?resourceType=Cluster`).then((requestAccessUser: { items: IRequestAccessUser[] }) => {\r\n dispatch({\r\n type: actionTypes.GET_AREQUEST_ACCESS_USER,\r\n requestAccessUser: requestAccessUser.items\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const rejectRequestUser = (accessRequestId: string, resourceId?: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPost(`/resources/${resourceId || getState().clusters.currentClusterId}/access-request/${accessRequestId}/reject`).then(() => {\r\n dispatch(getRequestAccessUser());\r\n });\r\n}) as any;\r\n\r\nexport const removeMemberFromCluster = (clusterId: string, memberId: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiDelete(`/resources/${clusterId}/principals/${memberId}?resourceType=Cluster`).catch((err) => {\r\n return err;\r\n });\r\n}) as any;\r\n\r\nexport const getDatagridSetting = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organizationId}/datagrid/settings?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getTemplateDatagridSetting = (organizationId: string, templateId: string, isCustom?: boolean, customKey?: ECustomDatagidsKeys) => action, IState>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n const query = queryString.stringify({ lcid: language.userLanguage || ELcid.En });\r\n let url = '';\r\n if (isCustom) {\r\n url = `/organizations/${organizationId}/custom-datagrid/${templateId}/settings`;\r\n } else if (customKey) {\r\n url = `/organizations/${organizationId}/custom-datagrid-by-key/${customKey}/settings`;\r\n } else {\r\n url = `/organizations/${organizationId}/datagrid/${templateId}/settings`;\r\n }\r\n return http.clustersApiGet(`${url}?${query}`).then(response => ({ data: response, customKey: customKey }));\r\n});\r\n\r\nexport const setTemplateDatagridSetting = (organizationId: string, templateId: string, settings: ITemplateDataGridSettings, isCustom?: boolean, customKey?: ECustomDatagidsKeys) => action, IState>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n if (isCustom) {\r\n return http.clustersApiPost(`/organizations/${organizationId}/custom-datagrid/${templateId}/settings?lcid=${language.userLanguage || ELcid.En}`, settings);\r\n } else if (customKey) {\r\n return http.clustersApiPost(`/organizations/${organizationId}/custom-datagrid-by-key/${customKey}/settings?lcid=${language.userLanguage || ELcid.En}`, settings);\r\n } else {\r\n return http.clustersApiPost(`/organizations/${organizationId}/datagrid/${templateId}/settings?lcid=${language.userLanguage || ELcid.En}`, settings);\r\n }\r\n});\r\n\r\nexport const setDatagridSetting = (organizationId: string, body: IDataGridSettings) => action>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiPost(`/organizations/${organizationId}/datagrid/settings?lcid=${language.userLanguage || ELcid.En}`, body);\r\n});\r\n\r\nexport const removeDocumentsFromCluster = (documentId: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/clusters/${getState().clusters.currentClusterId}/documents/${documentId}`);\r\n}) as any;\r\n\r\nexport const getAllTags = (organizationId: string) => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/clusters/organizations/${organizationId}/tags`).then((clusterTags: IClusterTags) => {\r\n dispatch({\r\n type: actionTypes.GET_ALL_TAGS,\r\n clusterTags\r\n });\r\n\r\n return clusterTags;\r\n });\r\n});\r\n\r\nexport const getChannelNotifications = () => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.notificationApiGet(`/clusters/${getState().clusters.currentClusterId}/channels/${getState().clusters.currentChannelId}/notifications-settings`).then((res: string) => {\r\n return res;\r\n });\r\n}) as any;\r\n\r\nexport const setChannelNotifications = (messagesOptions: string) => ((dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n messagesOptions\r\n };\r\n return http.notificationApiPost(`/clusters/${getState().clusters.currentClusterId}/channels/${getState().clusters.currentChannelId}/notifications-settings`, body);\r\n}) as any;\r\n\r\nexport const getSingleCluster = (clusterId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { clusters, language } = getState();\r\n if (clusterId || clusters.currentClusterId) {\r\n return http.clustersApiGet(`/Clusters/${clusterId || clusters.currentClusterId}?lcid=${language.userLanguage || ELcid.Fr}`).then((cluster: ISingleClusterCore) => {\r\n dispatch>({\r\n type: actionTypes.GET_INITIAL_CLUSTER_DATA,\r\n clusterData: cluster,\r\n permissions: cluster.permissions\r\n });\r\n dispatch(getAllClusterReferentials(cluster.clusterTemplateId));\r\n return cluster;\r\n }).catch((err: any) => {\r\n if (err.status === 404) {\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData: err.data\r\n });\r\n }\r\n });\r\n }\r\n});\r\n\r\nexport const getClusterDataForRefreshApproval = (clusterId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { clusters, language } = getState();\r\n return http.clustersApiGet(`/Clusters/${clusterId || clusters.currentClusterId}?lcid=${language.userLanguage || ELcid.Fr}`).then((cluster: ISingleClusterCore) => {\r\n dispatch>({\r\n type: actionTypes.REFRESH_APPROVAL_INFO,\r\n clusterData: cluster\r\n });\r\n return cluster;\r\n });\r\n});\r\n\r\nexport const deleteSingleCluster = (clusterId?: string) => action>(async (dispatch, getState, http) => {\r\n const { clusters } = getState();\r\n return http.clustersApiDelete(`/Clusters/${clusterId || clusters.currentClusterId}`);\r\n});\r\n\r\nexport const updateClusterPermissions = (permissions: ClusterPermissions[]): IDispatch => ({\r\n type: actionTypes.UPDATE_CLUSTER_PERMISSIONS,\r\n permissions\r\n});\r\n\r\nexport const setCurrentTeam = (currentTeamId: string) => ({\r\n type: actionTypes.SET_CURRENT_TEAM,\r\n currentTeamId\r\n});\r\n\r\nexport const setCurrentTeamChannelId = (currentTeamChannelId: string) => ({\r\n type: actionTypes.SET_CURRENT_TEAM_CHANNEL_ID,\r\n currentTeamChannelId\r\n});\r\n\r\nexport const getChannelMessages = (page: number, size: number, resourceChildId: string, teamId: string, channelResourceId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language, clusters } = getState();\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams/${teamId}/channels/${channelResourceId || clusters.currentChannelId}/messages?size=${size}&page=${page}&lcid=${language.userLanguage || ELcid.En}`)\r\n .then((currentChannelMessages: IChannelMessages) => {\r\n dispatch({\r\n type: actionTypes.GET_CHANNEL_MESSAGES,\r\n currentChannelMessages\r\n });\r\n dispatch({\r\n type: actionTypes.GET_SINGLE_CHANNEL_MESSAGE,\r\n channelMessageError: undefined\r\n });\r\n dispatch(setCurrentTeam(currentChannelMessages.teamId));\r\n dispatch(setCurrentTeamChannelId(currentChannelMessages.teamChannelId));\r\n return currentChannelMessages;\r\n });\r\n});\r\n\r\nexport const getSingleChannelMessage = (threadId: string, resourceChildId: string, teamId: string, teamChannelId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/messages/${threadId}?lcid=${language.userLanguage}`)\r\n .then((currentChannelMessage: ISingleChannelMessage) => {\r\n dispatch({\r\n type: actionTypes.GET_SINGLE_CHANNEL_MESSAGE,\r\n currentChannelMessage\r\n });\r\n return currentChannelMessage;\r\n }).catch((err: any) => {\r\n if (err?.data?.ErrorCode === 1100) {\r\n dispatch({\r\n type: actionTypes.GET_SINGLE_CHANNEL_MESSAGE,\r\n channelMessageError: EClusterAccessError.NOT_EXIST_ANYMORE\r\n });\r\n }\r\n });\r\n});\r\n\r\nexport const getTeamsWithChannels = (resourceChildId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams-with-channels`).then((res: ITeamWithChannels) => {\r\n return res;\r\n });\r\n});\r\n\r\nexport const getMessageViewByThreadId = (resourceChildId: string, teamId: string, teamChannelId: string, channelMessageId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/messages/channelMessageViews/${channelMessageId}`).then((res: ITeamWithChannels) => {\r\n return res;\r\n });\r\n});\r\n\r\nexport const getClusterDocuments = (currentChannelId?: string, currentClusterId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/clusters/${currentClusterId || getState().clusters.currentClusterId}/channels/${currentChannelId || getState().clusters.currentChannelId}/documents?page=0&size=100`).then((documentList: IDocumentList) => {\r\n dispatch({\r\n type: actionTypes.GET_CLUSTER_DOCUMENTS,\r\n documentList: documentList.items\r\n });\r\n });\r\n});\r\n\r\nexport const updateMessage = (body: SendMessageBody, resourceChildId: string, teamId: string, channelMessageId: string, channelId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.messagingApiPut(`/resources/${resourceChildId}/teams/${teamId}/channels/${channelId || getState().clusters.currentChannelId}/messages/${channelMessageId}`, body);\r\n});\r\n\r\nexport const clearClusterDocuments = () => ({\r\n type: actionTypes.CLEAR_CLUSTER_DOCUMENTS\r\n});\r\n\r\nexport const sendFiles = (files: FormData): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${getState().clusters.currentClusterId}/documents/upload-activity`, files);\r\n}) as any;\r\n\r\nexport const sendMessage = (body: SendMessageBody, resourceChildId: string, teamId: string, channelId?: string): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.messagingApiPost(`/resources/${resourceChildId}/teams/${teamId}/channels/${channelId || getState().clusters.currentChannelId}/messages`, body);\r\n}) as any;\r\n\r\nexport const setCurrentChannelId = (currentChannelId: string) => ({\r\n type: actionTypes.SET_CURRENT_CHANNEL,\r\n currentChannelId\r\n});\r\n\r\nexport const changeClusterPropertiesView = () => ({\r\n type: actionTypes.CHANGE_CLUSTER_PROPERTIES_VIEW\r\n});\r\n\r\nexport const changeClusterDocumentsView = () => ({\r\n type: actionTypes.CHANGE_CLUSTER_DOCUMENTS_VIEW\r\n});\r\n\r\nexport const changeClusterMembersView = () => ({\r\n type: actionTypes.CHANGE_CLUSTER_MEMBERS_VIEW\r\n});\r\n\r\nexport const setCurrentChannelName = (currentChannelName: string) => ({\r\n type: actionTypes.SET_CURRENT_CHANNEL_NAME,\r\n currentChannelName\r\n});\r\n\r\nexport const clearChannelMessages = () => ({\r\n type: actionTypes.CLEAR_CHANNEL_MESSAGES\r\n});\r\n\r\nexport const setCurrentCluster = (currentClusterId: string) => (dispatch, getState, http: Http) => {\r\n dispatch({\r\n type: actionTypes.SET_CURRENT_CLUSTER,\r\n currentClusterId\r\n });\r\n};\r\n\r\nexport const leaveClusters = (): Promise => ((dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/Clusters/${getState().clusters.currentClusterId}/leave`);\r\n}) as any;\r\n\r\nexport const getDatagridSettings = (clusterId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/clusters/${clusterId}/activities-datagrid/settings`);\r\n});\r\n\r\nexport const setDatagridSettings = (clusterId: string, body: IDataGridSettings) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/activities-datagrid/settings`, body);\r\n});\r\n\r\nexport const receiveClusterMessage = (message: ISingleChannelMessage) => ({\r\n type: actionTypes.RECEIVE_MESSAGE,\r\n message\r\n});\r\n\r\nexport const updateSingleMessage = (message: ISingleChannelMessage) => ({\r\n type: actionTypes.UPDATE_MESSAGE,\r\n message\r\n});\r\n\r\nexport const receiveThreadMessage = (message: IClusterSingleMessage) => ({\r\n type: actionTypes.RECEIVE_THREAD_MESSAGE,\r\n message\r\n});\r\n\r\nexport const setMessagePage = () => ({\r\n type: actionTypes.SET_MESSAGE_PAGE\r\n});\r\n\r\nexport const clearMessagePage = () => ({\r\n type: actionTypes.CLEAR_MESSAGE_PAGE\r\n});\r\n\r\nexport const clearSearchResult = () => ({\r\n type: actionTypes.CLUSTERS_SEARCH_LOADING\r\n});\r\n\r\nexport const getAvailableClusterPhotos = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet('/data/logos').then(clusterPhotos => {\r\n dispatch({\r\n type: actionTypes.GET_CLUSTER_PHOTOS,\r\n clusterPhotos\r\n });\r\n return clusterPhotos;\r\n });\r\n});\r\n\r\nexport interface ICreateNewClusterPayload {\r\n organizationId: string;\r\n organizationUrlName: string;\r\n organizationName: string;\r\n name?: string;\r\n description?: string;\r\n privacy?: EClusterPrivacy;\r\n nature?: EClusterNature;\r\n workplaceDetails?: IClusterWorkplaceDetails;\r\n clusterTemplateId?: string;\r\n dynamicStakes?: IClusterDynamicStakes[];\r\n}\r\n\r\nexport const createNewCluster = (clusterData: ICreateNewClusterPayload) => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n const { firstName, lastName, id, picture, jobTitle, department, cabinet } = getState().profile.currentUserProfile;\r\n const { organizationId, organizationUrlName, name, description, privacy, nature, workplaceDetails, clusterTemplateId, dynamicStakes, organizationName } = clusterData;\r\n const { language } = getState();\r\n const clusterPhotos = await dispatch(getAvailableClusterPhotos());\r\n\r\n const response: ISingleCluster = await http.clustersApiPost(`/organizations/${organizationId}/clusters?lcid=${language.userLanguage}`, {\r\n presentation: {\r\n name: name?.trim(),\r\n privacy,\r\n status: EClusterStatus.Active,\r\n nature: nature || EClusterNature.Project,\r\n description,\r\n photo: (clusterPhotos || [])[0],\r\n peopleInCharge: [],\r\n startDate: new Date()\r\n },\r\n owners: [{\r\n role: 'Owner',\r\n firstName,\r\n lastName,\r\n jobTitle,\r\n department,\r\n picture,\r\n cabinet: cabinet?.name,\r\n id\r\n }],\r\n organizationId,\r\n organizationName: organizationName,\r\n organizationUrlName: organizationUrlName,\r\n workplaceDetails,\r\n clusterTemplateId,\r\n dynamicStakes,\r\n // tslint:disable-next-line:no-null-keyword\r\n referencedItem: null\r\n });\r\n\r\n return response;\r\n});\r\n\r\ninterface ICreateNewClusterLegalEntity {\r\n name: string;\r\n organizationId: string;\r\n organizationUrlName: string;\r\n description?: string;\r\n privacy: EClusterPrivacy;\r\n clusterTemplateId: string;\r\n peopleInCharge: IPersonsInCharge[];\r\n legalEntity: ISIngleLegalEntity;\r\n}\r\n\r\nexport const createNewClusterLegalEntity = (newClusterData: ICreateNewClusterLegalEntity) => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n const { firstName, lastName, id, picture, jobTitle, department, cabinet } = getState().profile.currentUserProfile;\r\n const { name, organizationId, organizationUrlName, description, privacy, clusterTemplateId, peopleInCharge, legalEntity } = newClusterData;\r\n\r\n const clusterPhotos = await dispatch(getAvailableClusterPhotos());\r\n\r\n const response: ISingleCluster = await http.clustersApiPost(`/organizations/${organizationId}/clusters`, {\r\n presentation: {\r\n name: name.trim(),\r\n privacy,\r\n status: EClusterStatus.Active,\r\n nature: EClusterNature.Project,\r\n description,\r\n photo: (clusterPhotos || [])[0],\r\n peopleInCharge,\r\n startDate: new Date()\r\n },\r\n owners: [{\r\n role: 'Owner',\r\n firstName,\r\n lastName,\r\n jobTitle,\r\n department,\r\n picture,\r\n cabinet: cabinet?.name,\r\n id\r\n }],\r\n organizationId,\r\n organizationName: organizationUrlName,\r\n organizationUrlName,\r\n clusterTemplateId,\r\n referencedItem: {\r\n type: 'LegalEntity',\r\n referencedItem: {\r\n name: legalEntity.name,\r\n id: legalEntity.id\r\n }\r\n }\r\n });\r\n\r\n return response;\r\n});\r\n\r\nexport const updateClusterDetails = (clusterId: string, body: ISingleCluster) => action, IState>(async (dispatch: Dispatch, getState, http) => {\r\n const { language } = getState();\r\n const currentClusterData = http.clustersApiPut(`/organizations/${body.organizationId}/clusters/${clusterId}?lcid=${language.userLanguage}`, body).then((cluster: ISingleClusterCore) => {\r\n dispatch>({\r\n type: actionTypes.GET_INITIAL_CLUSTER_DATA,\r\n clusterData: cluster,\r\n permissions: cluster.permissions\r\n });\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const getClusterByChannel = (channelId: string) => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n const currentClusterData = await http.clustersApiGet(`/Clusters/by-workplace-channel/${channelId}`) as ISingleCluster;\r\n\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const deleteChannelMessage = (messageId: string, resourceChildId: string, teamId: string, teamChannelId: string) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.messagingApiDelete(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/messages/${messageId}`);\r\n}) as any;\r\n\r\nexport const createNegotiationsCluster = (organizationId: string, body: any) => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/create-negotiation`, body);\r\n});\r\n\r\nexport const deleteChannelThread = (threadId: string, resourceChildId: string, teamId: string, teamChannelId: string) => action>(async (dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n await http.messagingApiDelete(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/threads/${threadId}`);\r\n});\r\n\r\nexport const deleteChannelThreadFromState = (threadId: string) => ({\r\n type: actionTypes.REMOVE_CLUSTER_CHANNEL_THREAD,\r\n threadId\r\n});\r\n\r\nexport const inviteToClusterByEmail = (message: string, email: IRoleManagerEmailInvitation, clusterId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPost(`/resources/${clusterId || getState().clusters.currentClusterId}/principals/invite?resourceType=Cluster`, { ...email, message });\r\n});\r\n\r\nexport const archiveCluster = (clusterId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/change-status?status=Archived`);\r\n});\r\n\r\nexport const joinCluster = (resourceId: string, member: IRoleManagerUser, resourceType: ERoleType) => action>(async (dispatch, getState, http) => {\r\n await http.permissionsApiPost(`/resources/${resourceId}/join?resourceType=${resourceType}`, member);\r\n await delay(2000); // dirty hack until proper API created :(\r\n await dispatch(getSingleCluster());\r\n await dispatch(getMessageTranslations());\r\n});\r\n\r\ninterface ILegalStakeInfo {\r\n exclusivity: boolean;\r\n confidentiality: boolean;\r\n changeOfControlClause: boolean;\r\n}\r\n\r\ninterface ILegalStake {\r\n title: string;\r\n description: string;\r\n id?: string;\r\n}\r\n\r\nexport const updateLegalStake = (legalStake: ILegalStake, legalStakeId: string) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/legalstakes/${legalStakeId}`, legalStake);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const updateLegalStakeInfo = (legalStakeInfo: ILegalStakeInfo) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/legalstakes`, legalStakeInfo);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const deleteLegalStake = (legalStakeId: string) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiDelete(`/clusters/${getState().clusters.currentClusterId}/legalstakes/${legalStakeId}`);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const setLegalStake = (legalStake: ILegalStake) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiPost(`/clusters/${getState().clusters.currentClusterId}/legalstakes`, legalStake);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const clearClusterData = () => ({\r\n type: actionTypes.CLEAR_CLUSTER_DATA\r\n});\r\n\r\nexport const setEconomicStake = (economicStake: IEconomicStakes) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiPost(`/clusters/${getState().clusters.currentClusterId}/economicstakes`, economicStake);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const updateEconomicStake = (economicStake: IEconomicStakes, economicStakeId: string) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/economicstakes/${economicStakeId}`, economicStake);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const deleteEconomicStake = (economicStakeId: string) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiDelete(`/clusters/${getState().clusters.currentClusterId}/economicstakes/${economicStakeId}`);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const createTimelineItem = (timelineItem: ITimelineItemForm) => action>(async (dispatch, getState, http) => {\r\n const { startDate, endDate, ...timelineItemData } = timelineItem;\r\n const currentClusterData: ISingleCluster = await http.clustersApiPost(`/clusters/${getState().clusters.currentClusterId}/timeline`, timelineItemData);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const updateTimelineItem = (timelineItem: ITimelineItemForm, id: string) => action>(async (dispatch, getState, http) => {\r\n const { startDate, endDate, ...timelineItemData } = timelineItem;\r\n const currentClusterData: ISingleCluster = await http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/timeline/${id}`, timelineItemData);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const deleteTimeline = (timelineId: string) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiDelete(`/clusters/${getState().clusters.currentClusterId}/timeline/${timelineId}`);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const exportEvent = (timelineItemId: string, eventName: string) => action, IState>((dispatch, getState) => {\r\n const { context, config, clusters } = getState();\r\n\r\n return downloadFile(`${config.clustersApiUrl}/clusters/${clusters.currentClusterId}/timeline/${timelineItemId}/export-event`, `${eventName}.ics`, context.token, config.subKey);\r\n});\r\n\r\nexport const markOrUnmarkTimeline = (timelineId: string, isReferenceDate: boolean) => action>(async (dispatch, getState, http) => {\r\n const currentClusterData: ISingleCluster = await http.clustersApiPut(`/clusters/${getState().clusters.currentClusterId}/timeline/${timelineId}/as-reference-date?asReferenceDate=${isReferenceDate}`);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n});\r\n\r\nexport const getInvolvedParties = (query: string = '') => action>(async (dispatch, getState, http) => {\r\n const involvedParties: IGetInvolvedPartiesResponse = await http.apiGet(`/involved-parties/search${query ? `?query=${query}` : ''}`);\r\n return involvedParties;\r\n});\r\n\r\nexport const searchLegalEntities = (organizationId: string, query: string = '', size?: number) => action>>(async (dispatch, getState, http) => {\r\n return http.clustersApiGet(`/organizations/${organizationId}/clusters-search/clusters-legal-entities?searchQuery=${query}${size && `&size=${size}`}`);\r\n});\r\n\r\nexport const getUnreadClustersMessages = (clustersIds: string[]) => action>(async (dispatch, getState, http) => {\r\n const unreadClustersMessages: ISingleClusterChannelMessage[] = await http.messagingApiPost('/clusters-messages/unread', clustersIds);\r\n return unreadClustersMessages as ISingleClusterChannelMessage[];\r\n});\r\n\r\nexport const getClusterTemplates = (organizationId: string, onlyActive: boolean = true) => action>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER_TEMPLATES\r\n });\r\n const clusterTemplates: IClusterTemplate[] = await http.clustersApiGet(`/organizations/${organizationId}/cluster-templates?onlyActiveTemplates=${onlyActive}&lcid=${language.userLanguage || ELcid.En}`);\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER_TEMPLATES,\r\n clusterTemplates\r\n });\r\n return clusterTemplates;\r\n});\r\n\r\nexport const getClusterTemplateById = (organizationId: string, templateId: string, isCustom?: boolean, customKey?: ECustomDatagidsKeys, orgsTarget?: boolean) => action>(async (dispatch, getState, http) => {\r\n let url = '';\r\n const { language } = getState();\r\n if (isCustom && templateId) {\r\n url = `/organizations/${organizationId}/custom-datagrid/${templateId}?lcid=${language.userLanguage}`;\r\n } else if (customKey) {\r\n url = `/organizations/${organizationId}/custom-datagrid-by-key/${customKey}?lcid=${language.userLanguage}`;\r\n } else {\r\n url = `/organizations/${organizationId}/cluster-template/${templateId}?lcid=${language.userLanguage}`;\r\n }\r\n\r\n return orgsTarget ? http.organizationsApiGet(url).then(response => ({ data: response, customKey: customKey })) : http.clustersApiGet(url).then(response => ({ data: response, customKey: customKey }));\r\n});\r\n\r\nexport const editClusterTemplate = (organizationId: string, templateId: string, body: IClusterTemplate) => action>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiPut(`/organizations/${organizationId}/cluster-templates/${templateId}?&lcid=${language.userLanguage || ELcid.En}`, body);\r\n});\r\n\r\nexport const getClusterTemplatesWithStakes = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organizationId}/cluster-templates/full?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getAssociatedClusters = (clusterId: string, page: number, query: string = '', followed: string = 'All') => action>(async (dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiPost(`/Clusters/${clusterId}/associated-clusters?page=${page}&lcid=${language.userLanguage || ELcid.En}`, {\r\n query,\r\n followed\r\n });\r\n});\r\n\r\nexport const getDatagridViews = (organizationId: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiGet(`/organizations/${organizationId}/datagrid-views`);\r\n});\r\n\r\nexport const getAllActivityFiles = (clusterId: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/conversation-files`);\r\n});\r\n\r\nexport const uploadAttachment = (body: FormData) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/sessions/${uuidv4()}/attachments`, body);\r\n});\r\n\r\nexport const getClustersAsPartyType = (query: string, organizationId: string) => action>>((dispatch, getState, http) => {\r\n const { language } = getState();\r\n\r\n return http.clustersApiGet(`/clusters/as-party-type/${organizationId}?${query ? `query=${query}&` : ``}page=0&size=20&lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const duplicateCluster = (clusterId: string, name: string, privacy: string) => action>((dispatch, getState, http) => {\r\n const body = {\r\n name,\r\n privacy\r\n };\r\n\r\n return http.clustersApiPost(`/clusters/${clusterId}/duplicate`, body);\r\n});\r\n\r\nexport const getRelatedCluster = (query: string, organizationId: string, clusterId: string) => action>>((dispatch, getState, http) => {\r\n const { language } = getState();\r\n\r\n return http.clustersApiPost(`/clusters-search/search?organizationId=${organizationId}&page=0&orderBy=40&size=20&lcid=${language.userLanguage || ELcid.En}`, {\r\n query: query,\r\n clusterTemplates: [],\r\n followed: 'Mine',\r\n clusterIdToBeHidden: clusterId\r\n });\r\n});\r\n\r\nexport const checkResourceValidation = (contextId: string, type: string, resources: IClusterResources[]) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n type,\r\n resources\r\n };\r\n return http.validationsApiPost(`/resources/${contextId}/validations/status/active`, body);\r\n});\r\n\r\nexport const createCorporateCluster = (organizationId: string, body: ICreateCorporateCluster) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/create-cle`, body);\r\n});\r\n\r\nexport const getCurrencyRatio = (first: string, second: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { currencyRatio } = getState().global;\r\n let obj = currencyRatio || {};\r\n let isExistFirst = !!obj?.[first];\r\n let isExistSecond = !!obj?.[first]?.[second];\r\n if (!isExistFirst || !isExistSecond) {\r\n return http.clustersApiGet(`/currency-rates/${first}/to/${second}`).then((response: number) => {\r\n if (isExistFirst) {\r\n if (!isExistSecond) {\r\n obj = { ...obj, [first]: { ...obj[first], [second]: response } };\r\n }\r\n } else {\r\n obj = { ...obj, [first]: { [second]: response } };\r\n }\r\n dispatch>({\r\n type: SET_CURRENCY_RATIO,\r\n currencyRatio: obj\r\n });\r\n return response;\r\n });\r\n }\r\n return new Promise((resolve) => {\r\n if (currencyRatio?.[first]?.[second]) {\r\n resolve(currencyRatio?.[first]?.[second]);\r\n } else {\r\n resolve(0);\r\n }\r\n });\r\n});\r\n\r\nexport const getAllLinks = (organizationId: string, clusterId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/organizations/${organizationId}/clusters/${clusterId}/links?size=99999`).then(res => res.items);\r\n});\r\n\r\nexport const createLink = (organizationId: string, clusterId: string, body: ICreateLinks) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/${clusterId}/links`, body);\r\n});\r\n\r\nexport const updateLink = (organizationId: string, clusterId: string, linkId: string, body: ICreateLinks) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/${clusterId}/links/${linkId}`, body);\r\n});\r\n\r\nexport const uploadLinkLogo = (organizationId: string, clusterId: string, body: FormData, callback: (e: ProgressEvent) => void) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiUpload(`/organizations/${organizationId}/clusters/${clusterId}/links/upload-picture`, body, callback);\r\n});\r\n\r\nexport const markAsComplete = (clusterId: string, context: 'queries' | 'questions') => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/${context}/complete`, {});\r\n});\r\n\r\nexport const deleteLink = (organizationId: string, clusterId: string, linkId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiDelete(`/organizations/${organizationId}/clusters/${clusterId}/links/${linkId}`);\r\n});\r\n\r\nexport const reorderLinks = (organizationId: string, clusterId: string, body: { linkId: string, order: number }) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiPost(`/organizations/${organizationId}/clusters/${clusterId}/links/reorder`, body);\r\n});\r\n\r\nexport const getLegalEntitiesDates = (legalEntityId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.clustersApiGet(`/legal-entities/${legalEntityId}/dates`);\r\n});\r\n\r\nexport const updateSingleStakeById = (clustedId: string, stakeId: string, body: IClusterSingleDynamicStake) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n return http.clustersApiPut(`/clusters/${clustedId}/stakes/${stakeId}?lcid=${language.userLanguage || ELcid.Fr}`, body).then((currentClusterData: ISingleCluster) => {\r\n dispatch>({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData\r\n });\r\n return currentClusterData;\r\n }).catch((err: any) => {\r\n if (err.status === 404) {\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_CLUSTER,\r\n currentClusterData: err.data\r\n });\r\n }\r\n });\r\n});\r\n","\r\nimport { Dispatch } from 'redux';\r\n\r\nimport { IBodyForCopyMoveActions, IDirectoryContent, IUploadFile, EFilesystemItemType } from '../entities/IClustersFilesystem';\r\nimport { updateClusterPermissions } from '../actions/clustersActions';\r\nimport { ClusterPermissions } from '../entities/IPermissions';\r\nimport { IState } from '../reducers';\r\nimport { action } from '../tools/reduxTools';\r\nimport { joinPath } from '../tools/clusterFilesystemTools';\r\nimport { ECreateNewDocType } from '../components/Organization/ClustersV2/ClusterDocuments/TopMenu/StandardMenu';\r\n\r\nexport const getDirectoryTree = (clusterId: string, notUpdatePermission?: boolean) => action>((dispatch: Dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/directory-content`, {\r\n name: '',\r\n path: '',\r\n includeFiles: false,\r\n recursive: true\r\n }).then((response: IDirectoryContent & { permissions: ClusterPermissions[] }) => {\r\n if (!notUpdatePermission) {\r\n dispatch(updateClusterPermissions(response.permissions));\r\n }\r\n return response;\r\n });\r\n});\r\n\r\nexport const getDirectoryContent = (clusterId: string, currentPath: string[], notUpdatePermission?: boolean) => action>((dispatch: Dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/directory-content`, {\r\n name: currentPath[currentPath.length - 1] || '',\r\n path: joinPath(currentPath.slice(0, currentPath.length - 1)),\r\n includeFiles: true,\r\n recursive: false\r\n }).then((response: IDirectoryContent & { permissions: ClusterPermissions[] }) => {\r\n if (!notUpdatePermission) {\r\n dispatch(updateClusterPermissions(response.permissions));\r\n }\r\n return response;\r\n });\r\n});\r\n\r\nexport const createDirectoryInPath = (clusterId: string, name: string, currentPath: string[]) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/create-directory`, {\r\n name,\r\n path: joinPath(currentPath)\r\n });\r\n});\r\n\r\nexport const uploadFileInPath = (clusterId: string, file: File, currentPath: string[]) => action>((dispatch, getState, http) => {\r\n const form = new FormData();\r\n form.append('file', file);\r\n form.append('path', joinPath(currentPath));\r\n form.append('name', file.name);\r\n\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/upload`, form);\r\n});\r\n\r\nexport const uploadMultipleFilesInPath = (clusterId: string, files: File[], currentPath: string[]) => action>((dispatch, getState, http) => {\r\n const form = new FormData();\r\n form.append('path', joinPath(currentPath));\r\n files.forEach(file => {\r\n form.append('files', file);\r\n });\r\n\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/upload-multiple`, form);\r\n});\r\n\r\nexport const uploadFolderInPath = (clusterId: string, files: IUploadFile[], currentPath: string[]) => action>((dispatch, getState, http) => {\r\n const form = new FormData();\r\n form.append('path', joinPath(currentPath));\r\n files.forEach(file => {\r\n form.append('files', file.file);\r\n });\r\n\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/upload-folder`, form);\r\n});\r\n\r\nexport const deleteFileTemporarily = (clusterId: string, currentPath: string[], name: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/documents/move-item/to-trashbin`, {\r\n name,\r\n path: joinPath(currentPath)\r\n });\r\n});\r\n\r\nexport const deleteMultipleFilesTemporarily = (clusterId: string, currentPath: string[], items: string[]) => action>((dispatch, getState, http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/documents/move-multiple/to-trashbin`, {\r\n items,\r\n path: joinPath(currentPath)\r\n });\r\n});\r\n\r\nexport const deleteFilePermanently = (clusterId: string, currentPath: string[], name: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/documents/delete-item`, {\r\n name,\r\n path: joinPath(currentPath)\r\n });\r\n});\r\n\r\nexport const deleteMultipleFilesPermanently = (clusterId: string, currentPath: string[], items: string[]) => action>((dispatch, getState, http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/documents/delete-multiple`, {\r\n items,\r\n path: joinPath(currentPath)\r\n });\r\n});\r\n\r\nexport const changeItemName = (clusterId: string, currentPath: string[], name: string, newName: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/rename-item`, {\r\n name,\r\n newName,\r\n path: joinPath(currentPath)\r\n });\r\n});\r\n\r\nexport const getFileMetadata = (clusterId: string, currentPath: string[] | null, name: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/metadata`, {\r\n name,\r\n // tslint:disable-next-line:no-null-keyword\r\n path: currentPath ? (joinPath(currentPath) || 'Conversation files') : null,\r\n includeFiles: true\r\n });\r\n});\r\n\r\nexport const getMultipleMetadata = (clusterId: string, currentPath: string[], items: string[]) => action>(async (dispatch, getState: () => IState, http) => {\r\n const { context, config } = getState();\r\n try {\r\n const response = await fetch(`${config.clustersApiUrl}/clusters/${clusterId}/documents/metadata-multiple`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n items,\r\n path: joinPath(currentPath),\r\n includeFiles: true,\r\n recursive: true\r\n })\r\n });\r\n if (response.ok) {\r\n return response.blob();\r\n } else {\r\n return response.json();\r\n }\r\n } catch (e) {\r\n return e;\r\n }\r\n});\r\n\r\nexport const moveItemsToLocation = (clusterId: string, path: string[], newPath: string[], items: string[]) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/move-multiple`, {\r\n path: joinPath(path),\r\n newPath: joinPath(newPath),\r\n items\r\n });\r\n});\r\n\r\nexport const restoreFromTrashbin = (clusterId: string, path: string[], items: string[]) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/restore`, {\r\n path: joinPath(path),\r\n items\r\n });\r\n});\r\n\r\nexport const changeFileDescription = (clusterId: string, body: {path: string, name: string, description: string} ) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/description-item`, body);\r\n});\r\n\r\nexport const moveFileBeetwenClusters = (clusterId: string, body: { sourceClusterId: string, items: { item: string, finalItemName: string, type: EFilesystemItemType }[], path: string, sourcePath: string} ) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/upload-from-cluster`, body);\r\n});\r\n\r\nexport const getWopiInfo = (fileId: string, edit?: boolean) => action>((dispatch, getState, http) => {\r\n return http.clustersApiGet(`/clusters-wopi/files/${fileId}/source-info${edit ? '?action=edit' : ''}`);\r\n});\r\n\r\nexport const copyDocumentsFromCluster = (clusterId: string, body: IBodyForCopyMoveActions) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/copy-from-cluster`, body);\r\n});\r\n\r\nexport const moveDocumentsFromCluster = (clusterId: string, body: IBodyForCopyMoveActions) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/move-from-cluster`, body);\r\n});\r\n\r\nexport const createNewOfficeDoc = (clusterId: string, body: {name: string, type: ECreateNewDocType, path: string}) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/create-document`, body);\r\n});\r\n","import { Dispatch } from 'redux';\r\n\r\nimport * as actionTypes from './actionTypes/contextTypes';\r\nimport * as organizationActionTypes from './actionTypes/organizationsTypes';\r\nimport { action, IDispatch } from '../tools/reduxTools';\r\nimport { Http } from '../tools/http';\r\nimport { IOrganizationContext } from '../entities/IContext';\r\nimport { ISendEmailResponse } from '../components/ITeams';\r\n\r\nexport const tokenReload = (loading: boolean) => ({\r\n type: actionTypes.SET_TOKEN_RELOAD_LOADER,\r\n loading\r\n});\r\n\r\nexport const setLoggedInUser = (\r\n accessToken: string,\r\n oid: string,\r\n user: {\r\n email: string,\r\n displayName: string,\r\n department?: string,\r\n userOrigin?: string\r\n }\r\n) => ({\r\n type: actionTypes.SET_LOGGED_IN_USER,\r\n user,\r\n accessToken,\r\n oid\r\n});\r\n\r\nexport const clearUserContext = () => ({\r\n type: actionTypes.CLEAR_USER_CONTEXT\r\n});\r\n\r\nexport const setPasswordResetMode = (passwordResetMode: boolean = true) => ({\r\n type: actionTypes.SET_PASSWORD_RESET_MODE,\r\n passwordResetMode\r\n});\r\n\r\nexport const setGPlacesLoaded = () => ({\r\n type: actionTypes.LOAD_EXTERNAL_GPLACES\r\n});\r\n\r\nexport const requestTokenRenewal = () => ({\r\n type: actionTypes.REQUEST_TOKEN_RENEWAL\r\n});\r\n\r\nexport const getCurrentUserContextOrganizations = () => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n\r\n return http.organizationsApiGet(`/Organizations/my?size=99999&lcid=${userLanguage}`)\r\n .then((response) => {\r\n const organizations = response.items || [];\r\n dispatch({\r\n type: actionTypes.LOAD_ORGANIZATION_CONTEXTS,\r\n organizations\r\n });\r\n dispatch>({\r\n type: organizationActionTypes.SET_ORGANIZATION_PERMISSIONS,\r\n list: organizations.map((organization) => ({\r\n id: organization.id,\r\n permissions: organization.permissions\r\n }))\r\n });\r\n return organizations;\r\n });\r\n}\r\n);\r\n\r\nexport const addTagsToContextOrganization = (\r\n organizationUrl: string,\r\n tags: string[]\r\n) => ({\r\n type: actionTypes.ADD_TAGS_TO_CONTEXT_ORGANIZATION,\r\n organizationUrl,\r\n tags\r\n});\r\n\r\nexport const setAccessToken = (token: string, isShadowAuth = false) => ({\r\n type: actionTypes.SET_ACCESS_TOKEN,\r\n token,\r\n isShadowAuth\r\n});\r\n\r\nexport const setExportView = (isInExportView: boolean) => ({\r\n type: actionTypes.SET_EXPORT_VIEW,\r\n isInExportView\r\n});\r\n\r\nexport const getEnvironmentUrl = (email: string) => action>(\r\n (dispatch, getState, http) => {\r\n return http.apiGet(`/get-base-configuration?email=${email}`);\r\n }\r\n);\r\n","import { saveAs } from 'file-saver';\r\n\r\nimport { Http } from '../tools/http';\r\nimport { action } from '../tools/reduxTools';\r\nimport { IDates, IOverviewDates } from '../entities/IDates';\r\nimport { ELcid } from '../entities/ILanguage';\r\n\r\nexport const getOverviewDates = (clusterId: string) => action>((dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/clusters/${clusterId}/dates/overview?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const addNewKeyDate = (clusterId: string, body: IDates, stakeFamilyKey: string, stakeListKey: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/dates?stakeFamilyKey=${stakeFamilyKey}&stakeListKey=${stakeListKey}`, body);\r\n});\r\n\r\nexport const updateKeyDate = (clusterId: string, dateId: string, body: IDates) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/dates/${dateId}`, body);\r\n});\r\nexport const removeDate = (clusterId: string, dateId: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiDelete(`/clusters/${clusterId}/dates/${dateId}`);\r\n});\r\n\r\nexport const exportDatesAsICS = (clusterId: string, dateId: string) => ((dispatch, getState, http: Http) => {\r\n const { context, config, language } = getState();\r\n return fetch(`${config.clustersApiUrl}/clusters/${clusterId}/dates/${dateId}/export-ics?lcid=${language.userLanguage || ELcid.En}`, {\r\n method: 'POST',\r\n body: JSON.stringify({ }),\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n return res.blob();\r\n }).then(blob => {\r\n blob && saveAs(blob, 'dates.ics');\r\n });\r\n}) as any;","import { Dispatch } from 'redux';\r\n\r\nimport { action, IDispatch } from '../tools/reduxTools';\r\nimport { EReferentials, ISearchResponse, IUserBrief, IReferencial, EContextList } from '../entities/IGlobal';\r\nimport { IReferentialsIdentities } from '../entities/IClusters';\r\nimport { EProfileDataType } from '../tools/profileConstants';\r\nimport { ISearchReferentialElements } from '../entities/IProfile';\r\nimport { IGlobalTypes, SET_REFERENTIAL } from './actionTypes/globalTypes';\r\nimport { IState } from '../reducers';\r\nimport { Http } from '../tools/http';\r\nimport { ELcid } from '../entities/ILanguage';\r\n\r\nexport const getReferentialsChildren = (query: string = '', referentialIdentity: string, parent?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/referentials/elements/${referentialIdentity}/children?size=9999&lcid=${userLanguage}${query.length > 0 ? `&query=${query}` : ''}${parent ? `&parent=${parent}` : ''}`);\r\n});\r\n\r\nexport const getReferentials = (query: string = '', type: EProfileDataType | EReferentials, context: EContextList = EContextList.Data, parent?: string, bustCache?: boolean) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const { referentials } = getState().global;\r\n let obj = referentials || {};\r\n let isExistContext = !!obj?.[context];\r\n let isExistType = !!obj?.[context]?.[type];\r\n if (!isExistContext || !isExistType || parent || bustCache) {\r\n return http.profilesApiGet(`/referentials/contexts/${context}/types/${type}/elements?size=9999&lcid=${userLanguage}${query.length > 0 ? `&query=${query}` : ''}${parent ? `&parent=${parent}` : ''}`).then((response: ISearchReferentialElements) => {\r\n if (isExistContext) {\r\n if (!isExistType) {\r\n obj = { ...obj, [context]: { ...obj[context], [type]: response.items } };\r\n }\r\n } else {\r\n obj = { ...obj, [context]: { [type]: response.items } };\r\n }\r\n dispatch>({\r\n type: SET_REFERENTIAL,\r\n referentialsList: obj\r\n });\r\n return response.items;\r\n });\r\n }\r\n return new Promise((resolve) => {\r\n if (referentials?.[context]?.[type]) {\r\n resolve(referentials?.[context]?.[type]);\r\n } else {\r\n resolve([]);\r\n }\r\n });\r\n});\r\n\r\nexport const getUnits = () => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/referentials/units?size=9999&lcid=${userLanguage}`);\r\n});\r\n\r\nexport const getReferentialsIdentities = (query: string = '') => action>((dispatch, getState, http) => {\r\n return http.profilesApiGet(`/referentials/identities?size=9999${query.length > 0 ? `&query=${query}` : ''}`).then((res: ISearchResponse) => res.items);\r\n});\r\n\r\nexport const getAllClusterReferentials = (clusterTemplateId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const { referentials } = getState().global;\r\n return http.clustersApiGet(`/cluster-templates/${clusterTemplateId}/referentials?lcid=${userLanguage}`).then(response => {\r\n let obj = referentials || {};\r\n for (let i = 0; i < response.length; i++) {\r\n let isExistContext = !!obj?.[response[i].identityContext];\r\n if (isExistContext) {\r\n let isExistType = !!obj?.[response[i].identityContext]?.[response[i].identityType];\r\n if (!isExistType) {\r\n obj = { ...obj, [response[i].identityContext]: { ...obj[response[i].identityContext], [response[i].identityType]: response[i].elements } };\r\n }\r\n } else {\r\n obj = { ...obj, [response[i].identityContext]: { [response[i].identityType]: response[i].elements } };\r\n }\r\n\r\n }\r\n dispatch>({\r\n type: SET_REFERENTIAL,\r\n referentialsList: obj\r\n });\r\n });\r\n});\r\n\r\nexport const getMultipleUsersById = (body: string[]) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiPost(`/users/by-ids?lcid=${userLanguage}`, body);\r\n});\r\n\r\nexport const getReferentialsByUniqueKey = (uniqueKey: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { referentials } = getState().global;\r\n let obj = referentials || {};\r\n let isExistByUniqueKey = !!obj?.[uniqueKey];\r\n if (!isExistByUniqueKey) {\r\n return http.profilesApiGet(`/referentials/elements/${uniqueKey}`).then(res => {\r\n obj = { ...obj, [uniqueKey]: res };\r\n dispatch>({\r\n type: SET_REFERENTIAL,\r\n referentialsList: obj\r\n });\r\n return res;\r\n });\r\n }\r\n return new Promise((resolve) => {\r\n if (referentials?.[uniqueKey]) {\r\n resolve(referentials?.[uniqueKey]);\r\n } else {\r\n resolve([]);\r\n }\r\n });\r\n});\r\n","import { Dispatch } from 'redux';\r\nimport moment from 'moment';\r\n\r\nimport { IState } from '../reducers';\r\nimport { ILanguage, ITranslations, IUpdateTranslation, ELcid, IClusterMessageTranslation, ISingleLcidTranslations, ISingleTranslate } from '../entities/ILanguage';\r\nimport * as actionTypes from './actionTypes/languageTypes';\r\nimport { action, IDispatch } from '../tools/reduxTools';\r\nimport { languageList } from '../tools/languageTools';\r\nimport { Http } from '../tools/http';\r\n\r\nexport const getLanguages = () => action>((dispatch, getState, http: Http) => {\r\n return http.languageApiGet('/languages').then((managedLanguages: ILanguage[]) => {\r\n dispatch({\r\n type: actionTypes.SET_MANAGE_LANGUAGES,\r\n managedLanguages\r\n });\r\n\r\n return managedLanguages;\r\n });\r\n});\r\n\r\nexport const getUserPrefferedLanguage = () => action>((dispatch, getState, http: Http) => {\r\n return http.profilesApiGet(`/users/me/settings/preferred-language`);\r\n});\r\n\r\nexport const getTranslationsForCurrentLang = (lcid: ELcid = ELcid.En) => action>(async (dispatch: Dispatch, getState, http: Http) => {\r\n const code: string = languageList[lcid];\r\n\r\n type SetTranslations = IDispatch;\r\n const enTrans = await code !== 'en' ? http.languageApiGet(`/translations/en`) : {};\r\n return http.languageApiGet(`/translations/${code}`).then((translations) => {\r\n dispatch({\r\n type: actionTypes.SET_TRANSLATIONS,\r\n lcid,\r\n translations: { ...enTrans, ...translations }\r\n });\r\n return translations;\r\n }).catch(() => {\r\n dispatch({\r\n type: actionTypes.SET_TRANSLATIONS,\r\n lcid,\r\n translations: {}\r\n });\r\n return [];\r\n });\r\n});\r\n\r\nexport const getTranslations = () => action>((dispatch, getState, http: Http) => {\r\n return http.languageApiGet(`/translations`);\r\n});\r\n\r\nexport const getWorkspaceTranslations = (organizationId: string) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n return http.languageApiGet(`/translations?organizationId=${organizationId}`).then((translations: ITranslations) => {\r\n const code: string = languageList[userLanguage];\r\n const translationsValues = Object.values(translations)?.[0]?.map(elem => ({[elem.Label]: elem[code]})) || [];\r\n let translationsObject = {};\r\n for (let i = 0; i < translationsValues.length; i++) {\r\n translationsObject = {\r\n ...translationsObject,\r\n ...translationsValues[i]\r\n };\r\n }\r\n dispatch({\r\n type: actionTypes.SET_WORKSPACE_TRANSLATIONS,\r\n translations: Object.values(translations)?.[0] || [],\r\n orgId: organizationId\r\n });\r\n dispatch({\r\n type: actionTypes.MERGE_TRANSLATIONS,\r\n translations: translationsObject,\r\n lcid: userLanguage\r\n });\r\n return translations;\r\n });\r\n});\r\n\r\nexport interface IUpdateBodyModel {\r\n label: string;\r\n translations: {\r\n [key: string]: string\r\n }\r\n}\r\n\r\nexport const updateWorkspaceTranslations = (organizationId: string, groupName: string, body: IUpdateBodyModel) => action>((dispatch, getState, http: Http) => {\r\n return http.languageApiPut(`/translations/${groupName}?organizationId=${organizationId}`, body).then((translations: { [key: string]: string }) => {\r\n dispatch(getWorkspaceTranslations(organizationId));\r\n return translations;\r\n });\r\n});\r\n\r\nexport const updateTranslation = (groupName: string, translation: IUpdateTranslation) => action>((dispatch, getState, http: Http) => {\r\n return http.languageApiPut(`/translations/${groupName}`, translation);\r\n});\r\n\r\nexport const removeTranslation = (groupName: string, labelKey: string) => action>((dispatch, getState, http: Http) => {\r\n return http.languageApiDelete(`/translations/${groupName}/${labelKey}`);\r\n});\r\n\r\nexport const setUserLanguage = (lcid: number) => ({\r\n type: actionTypes.SET_USER_LANGUAGE,\r\n lcid\r\n});\r\nexport const loadNewLang = () => ({\r\n type: actionTypes.LOAD_NEW_LANG\r\n});\r\n\r\nexport const savePrefferedLanguage = (lcid: ELcid) => action>((dispatch, getState, http: Http) => {\r\n return http.profilesApiPost(`/users/me/settings/preferred-language?lcid=${lcid}`).then(() => {\r\n dispatch({\r\n type: actionTypes.SET_USER_LANGUAGE,\r\n lcid\r\n });\r\n });\r\n});\r\n\r\nexport const getMessageTranslations = () => action>((dispatch, getState, http: Http) => {\r\n const userLanguage = getState().language.userLanguage || ELcid.En;\r\n return http.languageApiGet(`/translations/messages/${languageList[userLanguage]}`).then((response: IClusterMessageTranslation) => {\r\n dispatch({\r\n type: actionTypes.SET_CLUSTER_TRANSLATION_MESSAGES,\r\n clusterActivityTranslation: response\r\n });\r\n });\r\n});\r\n\r\nexport const changeInterfaceLanguage = (selectedLcid: ELcid) => action, IState>(async (dispatch, getState, http) => {\r\n const { managedLanguages } = getState().language;\r\n const availableLanguages = managedLanguages || await dispatch(getLanguages());\r\n const selectedLangIsAvailable = availableLanguages.some(language => language.Lcid === selectedLcid);\r\n\r\n if (selectedLangIsAvailable) {\r\n await dispatch(getTranslationsForCurrentLang(selectedLcid));\r\n await dispatch(savePrefferedLanguage(selectedLcid));\r\n moment.locale(languageList[selectedLcid]);\r\n return selectedLcid;\r\n }\r\n});\r\n","import { Dispatch } from 'redux';\r\n\r\nimport { IState } from '../reducers';\r\nimport { Http } from '../tools/http';\r\nimport * as actionTypes from './actionTypes/legalEntitiesTypes';\r\nimport { action, downloadFile } from '../tools/reduxTools';\r\nimport { IPLEGridSettings, ISIngleLegalEntity, IShortSingleLegalEntity, ISinglePLEDocument } from '../entities/ILegalEntities';\r\nimport { IDataGridSettings } from '../entities/IClusters';\r\nimport { IReferencial } from '../entities/IGlobal';\r\nimport { IGridSourceRow } from '../tools/dataGridTools';\r\nimport { ELcid } from '../entities/ILanguage';\r\nimport { ISearchResults } from '../entities/IFilters';\r\n\r\nexport const getAllLegalEntities = (query: string, filters?: { [key: string]: string[] }, top?: number, IsNotAssignedToCluster?: boolean, orgId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Query: query || '',\r\n ...filters,\r\n AssociatedClusterOrganizationId: orgId,\r\n IsNotAssignedToCluster,\r\n IsNotAssociatedToCluster: orgId ? true : false\r\n };\r\n return http.profilesApiPost(`/legal-entities/search-brief${top ? `?top=${top}` : ''}`, body).then((results: ISearchResults) => {\r\n dispatch({\r\n type: actionTypes.GET_LEGAL_ENTITIES,\r\n legalEntitiesResult: {\r\n list: results.items,\r\n facets: results.facets,\r\n count: results.count\r\n }\r\n });\r\n return results;\r\n });\r\n});\r\n\r\nexport const getAllDirectoryLegalEntities = (query: string, filters?: { [key: string]: string[] }, top?: number, IsNotAssignedToCluster?: boolean) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n Query: query || '',\r\n ...filters,\r\n IsNotAssignedToCluster\r\n };\r\n return http.profilesApiPost(`/legal-entities/search${top ? `?top=${top}` : ''}`, body).then((results: ISearchResults) => {\r\n dispatch({\r\n type: actionTypes.GET_LEGAL_ENTITIES,\r\n legalEntitiesResult: {\r\n list: results?.items,\r\n facets: results?.facets,\r\n count: results?.count\r\n }\r\n });\r\n return results;\r\n });\r\n});\r\n\r\nexport const clearResults = () => ({\r\n type: actionTypes.CLEAR_RESULTS\r\n});\r\n\r\nexport const getCompanyById = (legalEntityId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const { language } = getState();\r\n return http.profilesApiGet(`/legal-entities/${legalEntityId}?lcid=${language.userLanguage || ELcid.Fr}`);\r\n});\r\n\r\nexport const newUpdateCompany = (body: ISIngleLegalEntity | IShortSingleLegalEntity, companyId?: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n if (companyId) {\r\n return http.profilesApiPut(`/legal-entities`, body);\r\n } else {\r\n return http.profilesApiPost(`/legal-entities`, body);\r\n }\r\n});\r\n\r\nexport const getAllSizes = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/GetAllSizes`);\r\n});\r\n\r\nexport const getGridSettings = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/companies/data-grid`);\r\n});\r\n\r\nexport const setGridSettings = (body: IDataGridSettings) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPost(`/companies/data-grid`, body);\r\n});\r\n\r\nexport const uploadCompanyLogo = (userEmail: string, file: Blob) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const formData = new FormData();\r\n formData.append('fileImg', file);\r\n\r\n return http.cmsApiPost('/UploadImage?userEmailAddress=' + encodeURIComponent(userEmail), formData)\r\n .then((data: string[]) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n return data && data.length > 0 ? data[0] : null;\r\n });\r\n});\r\n\r\nexport const getTypeOfActivity = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/type-of-activity`);\r\n});\r\nexport const getLegalForm = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/legal-form`);\r\n});\r\nexport const getAliasType = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/client-referentials/types/AliasType`).then(response => {\r\n return response.Items;\r\n });\r\n});\r\nexport const getCurrencies = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/currencies`);\r\n});\r\nexport const getTypeOfLegalEntity = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/type-of-legal-entity`);\r\n});\r\n\r\nexport const sendFiles = (files: FormData, legalEntityId: string, documentLabel: string) => action>((dispatch, getState, http) => {\r\n return http.profilesApiPost(documentLabel ? `/legal-entities/${legalEntityId}/documents/upload?documentLabel=${documentLabel}` : `/legal-entities/${legalEntityId}/documents/upload`, files);\r\n});\r\n\r\nexport const downloadDocument = (legalEntityId: string, documentId: string) => action>((dispatch, getState, http) => {\r\n const body = {\r\n DocumentId: documentId\r\n };\r\n return http.profilesApiPost(`/legal-entities/${legalEntityId}/documents`, body);\r\n});\r\n\r\nexport const downloadPdfEntity = (entityId: string, entityName: string) => action>(async (dispatch, getState, http) => {\r\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n const { context, config } = getState();\r\n const { userLanguage } = getState().language;\r\n const getDate = new Date();\r\n await downloadFile(\r\n `${config.clustersApiUrl}/webpage-export?url=/company/${entityId}/export-entity?lcid=${userLanguage}&fileType=pdf&timeZone=${timeZone}&token=${context.token}`,\r\n `${entityName} ${getDate.toLocaleDateString()}.pdf`,\r\n context.token,\r\n config.subKey\r\n );\r\n});\r\n\r\nexport const getPLEGridData = () => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/legal-entities/datagrid/data?${userLanguage}`);\r\n});\r\n\r\nexport const getPLEGridSettings = () => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/legal-entities/datagrid/settings?lcid=${userLanguage}`);\r\n});\r\n\r\nexport const setPLEGridSettings = (settings: IPLEGridSettings) => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiPost(`/legal-entities/datagrid/settings?${userLanguage}`, settings);\r\n});\r\n\r\nexport const deleteLegalEntityById = (legalEntityId: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiDelete(`/legal-entities/${legalEntityId}/permanent`);\r\n});","import { HubConnection, HubConnectionBuilder, LogLevel } from '@microsoft/signalr';\r\nimport { saveAs } from 'file-saver';\r\nimport { Dispatch } from 'redux';\r\nimport { get } from 'lodash';\r\nimport queryString from 'query-string-for-all';\r\n\r\nimport { action } from '../tools/reduxTools';\r\nimport { Http } from '../tools/http';\r\nimport { getContextUserId, isIdTokenExpired } from '../tools/authTools';\r\nimport * as actionTypes from './actionTypes/messagingTypes';\r\nimport { ISingleMessage, IAttachmentInfo, ISingleConversation, IAttachment, EMessageType, IMessageSearchResult, Contact, ETriggerType } from '../entities/Messaging/IMessaging';\r\nimport { ISearchResponse } from '../entities/IGlobal';\r\nimport { IState } from '../reducers';\r\nimport { randomSecureNumber } from '../tools/generalTools';\r\n\r\nlet apiCancelSource: () => void;\r\n\r\nexport const changeMessageView = () => ({\r\n type: actionTypes.NEW_MESSAGE_VIEW\r\n});\r\n\r\nexport const showSearchMenuFunc = () => ({\r\n type: actionTypes.SHOW_SEARCH_MENU\r\n});\r\n\r\nexport const showSettingsMenuFunc = () => ({\r\n type: actionTypes.SHOW_SETTINGS_MENU\r\n});\r\n\r\nexport const showDotsMenuFunc = () => ({\r\n type: actionTypes.SHOW_DOTS_MENU\r\n});\r\n\r\nexport const clearCurrentMessages = () => ({\r\n type: actionTypes.CLEAR_CURRENT_MESSAGES\r\n});\r\n\r\nexport const setActiveConversation = (activeConversationId: string) => (dispatch, getState, http: Http) => {\r\n dispatch({\r\n type: actionTypes.ACTIVE_CONVERSATION_ID,\r\n activeConversationId\r\n });\r\n /* dispatch(getMessages()); */\r\n\r\n};\r\n\r\nexport const setNewMessage = (currentMessage: ISingleMessage) => ({\r\n type: actionTypes.SET_NEW_MESSAGE,\r\n currentMessage\r\n});\r\n\r\nexport const setNewConversation = (conversation: ISingleConversation) => ({\r\n type: actionTypes.SET_NEW_CONVERSATION,\r\n conversation\r\n});\r\n\r\nexport const updateSingleMessage = (message: ISingleMessage) => ({\r\n type: actionTypes.UPDATE_SINGLE_MESSAGE,\r\n message\r\n});\r\n\r\nexport const newEventsHaveOccuredOn = () => ({\r\n type: actionTypes.NEW_EVENTS_HAVE_OCCURED,\r\n events: true\r\n});\r\n\r\nexport const newEventsHaveOccuredOf = () => ({\r\n type: actionTypes.NEW_EVENTS_HAVE_OCCURED,\r\n events: false\r\n});\r\n\r\nexport const activityCreatedEventOn = () => ({\r\n type: actionTypes.ACTIVTY_CREATION_COMPLETED,\r\n activityCreationCompleted: true\r\n});\r\n\r\nexport const activityCreatedEventOf = () => ({\r\n type: actionTypes.ACTIVTY_CREATION_COMPLETED,\r\n activityCreationCompleted: false\r\n});\r\n\r\nexport const clearMessagingState = () => ({\r\n type: actionTypes.CLEAR_MESSAGING_STATE\r\n});\r\n\r\nexport const removeTempConversation = (removeConverastionId: string) => ({\r\n type: actionTypes.REMOVE_TEMP_CONVERSATION,\r\n removeConverastionId\r\n});\r\n\r\nexport const updateSingleConversation = (singleConversation: ISingleConversation) => ({\r\n type: actionTypes.UPDATE_CONVERSATION,\r\n singleConversation\r\n});\r\n\r\nexport const removeDoubleMessage = (messageId: string) => ({\r\n type: actionTypes.REMOVE_MESSAGE,\r\n messageId\r\n});\r\n\r\nexport const addReceiveAttachment = (messageId: string, file: IAttachment) => ({\r\n type: actionTypes.ADD_RECEIVE_ATTACHMENT,\r\n data: {\r\n messageId,\r\n file\r\n }\r\n});\r\n\r\nexport const downloadMessagingFileAsBlob = (uri: string, isThumbnail: boolean) => ((dispatch, getState, http: Http) => {\r\n const { context, config } = getState();\r\n return fetch(`${config.messagingApiUrl}/Attachments/download`, {\r\n method: 'POST',\r\n body: JSON.stringify({ uri, isThumbnail }),\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => res.blob());\r\n}) as any;\r\n\r\nexport const downloadAttachment = (uri: string, fileName: string) => ((dispatch, getState, http: Http) => {\r\n const { context, config } = getState();\r\n return fetch(`${config.messagingApiUrl}/Attachments/download`, {\r\n method: 'POST',\r\n body: JSON.stringify({ uri }),\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n return res.blob();\r\n }).then(blob => {\r\n blob && saveAs(blob, fileName);\r\n });\r\n}) as any;\r\n\r\nexport const uploadAttachment = (messageId: string, file: any) => ((dispatch, getState, http: Http) => {\r\n const formData = new FormData();\r\n formData.append('attachment', file, file.name);\r\n return http.messagingApiPost(`/Attachments/upload/${messageId}`, formData)\r\n .then((attachmentInfo: IAttachmentInfo) => {\r\n dispatch({\r\n type: actionTypes.COMPLETE_UPLOAD_ATTACHMENT,\r\n attachmentInfo\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const changeGroupTitle = (title: string, resourceChildId: string, teamId: string, teamChannelId: string) => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n return http.messagingApiPut(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/conversations/${messaging.activeConversationId}/title-update?title=${title}`)\r\n .then(res => {\r\n return res;\r\n });\r\n}) as any;\r\n\r\nexport const markAsRead = (messageId: string, conversationId?: string) => action, IState>((dispatch, getState, http) => {\r\n const { messaging } = getState();\r\n const activeConversationId = conversationId || messaging.activeConversationId;\r\n\r\n if (messageId !== '0' && activeConversationId) {\r\n return http.messagingApiPost(`/Conversations/${activeConversationId}/messages/${messageId}/read`)\r\n .then(res => {\r\n dispatch({\r\n type: actionTypes.MARK_CONVERSATION_AS_READ,\r\n conversationsId: res.conversationId\r\n });\r\n return res;\r\n });\r\n }\r\n});\r\n\r\nexport const removeMemberFromConversation = (userId: string) => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n return http.messagingApiDelete(`/Conversations/${messaging.activeConversationId}/members/${userId}`)\r\n .then(singleConversation => {\r\n if (singleConversation.conversationMembers && singleConversation.conversationMembers.length > 0) {\r\n dispatch({\r\n type: actionTypes.UPDATE_CONVERSATION,\r\n singleConversation\r\n });\r\n } else {\r\n dispatch({\r\n type: actionTypes.REMOVE_CONVERSATION\r\n });\r\n }\r\n });\r\n}) as any;\r\n\r\nexport const userRemovedFromConversation = (conversationId: string) => ({\r\n type: actionTypes.USER_REMOVED_FROM_CONVERSATION,\r\n conversationId\r\n});\r\n\r\nexport const removeMesssage = (messageId: string, conversationId?: string) => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n return http.messagingApiDelete(`/Messages?messageId=${messageId}&conversationId=${conversationId || messaging.activeConversationId}`);\r\n}) as any;\r\n\r\nexport const getMessages = (size: number = 50, resourceChildId: string, teamId: string, teamChannelId: string, activeConversationId?: string, page?: number, callbackOnly?: boolean) => ((dispatch, getState: () => IState, http: Http) => {\r\n const { messaging } = getState();\r\n\r\n !callbackOnly && dispatch({ type: actionTypes.CURRENT_MESSAGES_REQUESTED });\r\n\r\n const conversationId = activeConversationId || messaging.activeConversationId;\r\n\r\n if (!conversationId) {\r\n return;\r\n }\r\n\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/conversations/${conversationId}/messages?page=${page || 0}&size=${size}`)\r\n .then((result: ISearchResponse) => {\r\n !callbackOnly && dispatch({\r\n type: actionTypes.CURRENT_MESSAGES_COMPLETED,\r\n currentMessages: result?.items || [],\r\n currentMessagesCount: result?.count\r\n });\r\n return result;\r\n });\r\n}) as any;\r\n\r\nexport const loadNewMessagePage = (page: number = 0, size: number = 50) => ((dispatch, getState: () => IState, http: Http) => {\r\n const { messaging } = getState();\r\n\r\n dispatch({ type: actionTypes.CURRENT_MESSAGES_REQUESTED });\r\n\r\n return http.messagingApiGet(`/Conversations/${messaging.activeConversationId}/messages?page=${page}&size=${size}`)\r\n .then(result => {\r\n const newMessages = get(result, 'items', []) || [];\r\n\r\n dispatch({\r\n type: actionTypes.CURRENT_MESSAGES_COMPLETED,\r\n currentMessages: [...newMessages, ...messaging.currentMessages],\r\n currentMessagesCount: get(result, 'count', 0)\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const getMessagingContacts = (query?: string, page?: number, append?: boolean) => ((dispatch, getState: () => IState, http: Http) => {\r\n dispatch({ type: actionTypes.SET_MESSAGING_CONTACTS_REQUESTED });\r\n\r\n return http.apiGet(`/messaging/contacts?search=${query || ''}*&page=${page || 0}`, undefined, (cancel) => apiCancelSource = cancel)\r\n .then(response => {\r\n dispatch(setMessagingContacts((response && response.Items) || [], (response && response.Count) || 0, false, page, append));\r\n });\r\n}) as any;\r\n\r\nexport const setMessagingContacts = (contacts?: Contact[], count?: number, loading?: boolean, page?: number, append?: boolean) => {\r\n apiCancelSource && apiCancelSource();\r\n return {\r\n type: actionTypes.SET_MESSAGING_CONTACTS_COMPLETED,\r\n contacts: contacts || [],\r\n count: contacts ? (count || 0) : 0,\r\n loading,\r\n page: page || 0,\r\n append\r\n };\r\n};\r\n\r\nexport const createMessages = (body: ISingleMessage, setActiveConversationId = true) => ((dispatch, getState, http: Http) => { // should be body: ICreateMessage\r\n return http.messagingApiPost('/Messages', body)\r\n .then(res => {\r\n setActiveConversationId && dispatch({\r\n type: actionTypes.ACTIVE_CONVERSATION_ID,\r\n activeConversationId: res.conversationId\r\n });\r\n return res;\r\n }).catch(() => {\r\n dispatch(setNewMessage(body));\r\n dispatch({\r\n type: actionTypes.MESSAGE_NOT_SEND,\r\n notSendMessageId: body.id\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const addMembersToConversation = (body: any, conversationId: string) => ((dispatch, getState, http: Http) => {\r\n return http.messagingApiPost(`/conversations/${conversationId}/members`, body)\r\n .then((singleConversation: ISingleConversation) => {\r\n dispatch({\r\n type: actionTypes.UPDATE_CONVERSATION,\r\n singleConversation\r\n });\r\n /* dispatch(getMessages()); */\r\n });\r\n}) as any;\r\n\r\nexport const createTempGroup = (conversationMembers: any, conNum: number | string, currentUserName: any) => ((dispatch, getState, http: Http) => {\r\n dispatch({\r\n type: actionTypes.ADD_TEMP_GROUP,\r\n newGroup: {\r\n content: '',\r\n type: 0,\r\n title: `${currentUserName} group`,\r\n conversationId: '',\r\n id: `tempGroup-${conNum}`,\r\n conversationMembers,\r\n unreadMessagesCount: 0,\r\n lastMessage: {\r\n creationDate: new Date().toISOString(),\r\n messageId: '',\r\n preview: ''\r\n }\r\n }\r\n });\r\n}) as any;\r\n\r\nexport const getConversation = (conversationId: string, resourceChildId: string, teamId: string, teamChannelId: string): Promise => ((dispatch, getState, http: Http) => {\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/conversations/${conversationId}`);\r\n}) as any;\r\n\r\nexport const AddOwnership = (memberId: string) => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n return http.messagingApiPut(`/conversations/${messaging.activeConversationId}/members/${memberId}/set-ownership`)\r\n .then(res => {\r\n dispatch(updateSingleConversation(res));\r\n return res;\r\n });\r\n}) as any;\r\n\r\nexport const RevokeOwnership = (memberId: string) => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n return http.messagingApiPut(`/conversations/${messaging.activeConversationId}/members/${memberId}/revoke-ownership`)\r\n .then(res => {\r\n dispatch(updateSingleConversation(res));\r\n return res;\r\n });\r\n}) as any;\r\n\r\nexport const searchConversation = (query: string, messagType: EMessageType, page: number = 0, size: number = 10): Promise => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n const requestQuery = [\r\n `/conversations/${messaging.activeConversationId}/messages/search?`,\r\n `${query ? `searchQuery=${encodeURIComponent(query)}` : ''}`,\r\n `${!!messagType ? `&messageType=${messagType}` : ''}`,\r\n `&page=${page}&size=${size}`\r\n ].join('');\r\n return http.messagingApiGet(requestQuery);\r\n}) as any;\r\n\r\nexport const getMessageWithNearest = (messageId: string, before: number = 20, after: number = 20) => ((dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n return http.messagingApiGet(`/conversations/${messaging.activeConversationId}/messages/${messageId}/with-nearest?before=${before}&after=${after}`);\r\n}) as any;\r\n\r\nexport const getUnreadConversations = (resourceChildId: string, teamId: string, teamChannelId: string): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n return http.messagingApiGet(`/resources/${resourceChildId}/teams/${teamId}/channels/${teamChannelId}/conversations/my/unread-ids`).then((response: string[]) => {\r\n dispatch({\r\n type: actionTypes.GET_UNREAD_CONVERSATIONS,\r\n unreadConversations: response instanceof Array ? response : []\r\n });\r\n\r\n return response;\r\n });\r\n}) as any;\r\n\r\nexport const addUnreadConversation = (conversationId: string) => ({\r\n type: actionTypes.ADD_UNREAD_CONVERSATION,\r\n conversationId\r\n});\r\n\r\nexport const createSignlaRHubConnection = (signalRUri: string, token: string): HubConnection => ((dispatch, getState, http: Http) => {\r\n http.signalRConnection = new HubConnectionBuilder()\r\n .withUrl(`${signalRUri}`, { accessTokenFactory: () => token })\r\n .configureLogging(LogLevel.Warning)\r\n .withAutomaticReconnect({\r\n nextRetryDelayInMilliseconds: () => {\r\n if (!isIdTokenExpired(getContextUserId())) {\r\n return randomSecureNumber() * 10000;\r\n } else {\r\n // tslint:disable-next-line:no-null-keyword\r\n return null;\r\n }\r\n }\r\n })\r\n .build();\r\n\r\n return http.signalRConnection;\r\n}) as any;\r\n\r\nexport const getSignalRHubConnection = (): HubConnection => ((dispatch, getState, http: Http) => {\r\n return http.signalRConnection;\r\n}) as any;\r\n\r\nexport const clearSettingsSearchWindow = () => (dispatch, getState, http: Http) => {\r\n const { messaging } = getState();\r\n\r\n if (messaging.showSettingsMenu) {\r\n dispatch(showSettingsMenuFunc());\r\n } else if (messaging.showSearchMenu) {\r\n dispatch(showSearchMenuFunc());\r\n }\r\n};\r\n\r\nexport const searchConversations = (triggerType: ETriggerType, searchQuery?: string, page?: number, size?: number, withoutMessages?: boolean) => action>>((dispatch, getState, http) => {\r\n const { messaging } = getState();\r\n const queryParams = queryString.stringify({\r\n searchQuery: searchQuery || '*',\r\n page: page || 0,\r\n size: size || messaging.itemsOnPageCount\r\n });\r\n dispatch({ type: actionTypes.PENDING_SEARCH_CONVERSATIONS });\r\n return http.messagingApiGet(`/Conversations/search?${queryParams}`)\r\n .then((conversations: ISearchResponse) => {\r\n dispatch({\r\n type: actionTypes.SEARCH_CONVERSATIONS,\r\n conversations,\r\n spread: triggerType === ETriggerType.Scroller\r\n });\r\n if (conversations?.items?.length && !messaging.currentConversation && !withoutMessages) {\r\n /* dispatch(getMessages(50, conversations.items[0].id)); */\r\n dispatch(markAsRead(conversations.items[0].lastMessage?.messageId || '0'));\r\n }\r\n return conversations;\r\n });\r\n});\r\n\r\nexport const setCurrentConversation = (currentConversation: ISingleConversation) => ({\r\n type: actionTypes.SET_CURRENT_CONVERSATION,\r\n currentConversation,\r\n currentConversationId: currentConversation.id\r\n});\r\n\r\nexport const clearConversations = () => ({\r\n type: actionTypes.CLEAR_CONVERSATIONS\r\n});\r\n\r\nexport const setConversationMenu = (value: boolean, expanded?: boolean) => ({\r\n type: actionTypes.SET_CONVERSATION_MENU,\r\n value,\r\n expanded\r\n});\r\n\r\nexport const setConversationMenuExpanded = (expanded: boolean) => ({\r\n type: actionTypes.SET_CONVERSATION_MENU_EXPANDED,\r\n expanded\r\n});\r\n\r\nexport const setActiveConversationVisibility = (conversationId: string, value: boolean) => ({\r\n type: actionTypes.SET_ACTIVE_CONVERSATION_VISIBILITY,\r\n conversationId,\r\n value\r\n});\r\n\r\nexport const removeActiveConversation = (conversationId: string) => ({\r\n type: actionTypes.REMOVE_ACTIVE_CONVERSATION,\r\n conversationId\r\n});\r\n\r\nexport const addActiveConversation = (conversation: ISingleConversation) => ((dispatch, getState: () => IState, http: Http) => {\r\n dispatch({\r\n type: actionTypes.ADD_ACTIVE_CONVERSATION,\r\n conversationId: conversation?.id,\r\n conversation\r\n });\r\n});","import { IState } from './../reducers/index';\r\nimport * as actionTypes from './actionTypes/notificationsTypes';\r\nimport { Http } from '../tools/http';\r\nimport { INotification, ENotificationStatus, IUserNotificationSettings } from '../entities/INotification';\r\n\r\nexport const getNotificationsCount = () => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet('/Notifications/my/count?status=NotRead')\r\n .then(res => {\r\n dispatch({\r\n type: actionTypes.GET_NOTIFICATIONS_COUNT,\r\n notificationsCount: res.count\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const getNotificationsActiveData = () => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet('/Notifications/my?status=NotRead')\r\n .then(res => {\r\n dispatch({\r\n type: actionTypes.GET_NOTIFICATIONS_ACTIVE_DATA,\r\n notificationsActive: res.items\r\n });\r\n dispatch({\r\n type: actionTypes.NEW_NOTIFICATION_COUNT_LOADED,\r\n count: res.count || 0\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const getNotificationsNonActiveData = () => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet('/Notifications/my?status=Read')\r\n .then(res => {\r\n dispatch({\r\n type: actionTypes.GET_NOTIFICATIONS_NONACTIVE_DATA,\r\n notificationsNonActive: res.items\r\n });\r\n\r\n });\r\n}) as any;\r\n\r\nexport const changeNotificationStatus = (id: string): Promise => ((dispatch, getState, http) => {\r\n return http.notificationApiPut(`/Notifications/${id}/set-status?status=Archived`)\r\n .then(() => {\r\n dispatch(getNotificationsCount());\r\n dispatch(getNotificationsActiveData());\r\n });\r\n}) as any;\r\n\r\nexport const markAllAsNotNew = () => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiPut('/Notifications/my/new/as-not-new')\r\n .then(() => {\r\n dispatch({\r\n type: actionTypes.NEW_NOTIFICATION_MARKED_ASS_SEEN\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const getAllNotifications = (page: number = 0, size: number = 8) => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet(`/Notifications/my?page=${page}&size=${size}`);\r\n}) as any;\r\n\r\nexport const loadMoreActiveNotifications = (page: number) => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet(`/Notifications/my?status=NotRead&page=${page}`).then(result => {\r\n dispatch({\r\n type: actionTypes.LOAD_MORE_ACTIVE_NOTIFICATIONS,\r\n activeNotifications: result.items || []\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const loadMoreNonActiveNotifications = (page: number) => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet(`/Notifications/my?status=Read&page=${page}`).then(result => {\r\n dispatch({\r\n type: actionTypes.LOAD_MORE_NONACTIVE_NOTIFICATIONS,\r\n nonActiveNotifications: result.items || []\r\n });\r\n });\r\n}) as any;\r\n\r\nexport const markNotificationActionAsHandled = (id: string) => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiPut(`/Notifications/${id}/action-handled`);\r\n}) as any;\r\n\r\nexport const addRcivedNotification = (notification: INotification) => ((dispatch, getState: () => IState, http: Http) => {\r\n const { notifications: { notificationsVisible } } = getState();\r\n console.log('notification', notification, notificationsVisible); // we need this console log. please do not remove!! contact with Mateusz\r\n dispatch({\r\n type: actionTypes.SIGNALR_NOTIFICATION_RECIVED,\r\n notification: notification\r\n });\r\n}) as any;\r\n\r\nexport const setNotificationsVisibilityFlag = (areVisible: boolean = true) => ((dispatch, getState, http: Http) => {\r\n dispatch({\r\n type: actionTypes.SET_NOTIFICATION_VISIBILITY_FLAG,\r\n notificationsVisible: areVisible\r\n });\r\n}) as any;\r\n\r\nexport const updateNavMenuNotifications = (navMenuNotifications: INotification[]) => ((dispatch, getState, http: Http) => {\r\n dispatch({\r\n type: actionTypes.NAV_MENU_NOTIFICATION_UPDATED,\r\n navMenuNotifications\r\n });\r\n}) as any;\r\n\r\nexport const marNavMenuNotificationAsRead = (id: string) => ((dispatch, getState, http: Http) => {\r\n const { notifications: { navMenuNotifications } } = getState();\r\n const notificationCopy: INotification[] = [...navMenuNotifications];\r\n const targetIndex = notificationCopy.findIndex(not => not.id === id);\r\n if (targetIndex !== -1) {\r\n notificationCopy[targetIndex].status = ENotificationStatus.Archived;\r\n dispatch(updateNavMenuNotifications(notificationCopy));\r\n }\r\n}) as any;\r\n\r\nexport const markP2PNavMenuNotificationAsRead = (invitationId: string) => ((dispatch, getState, http: Http) => {\r\n const { notifications: { navMenuNotifications } } = getState();\r\n const notificationCopy: INotification[] = [...navMenuNotifications];\r\n const targetIndex = notificationCopy.findIndex(not => !!not.data && not.data.InvitationId === invitationId);\r\n\r\n if (targetIndex !== -1) {\r\n notificationCopy[targetIndex].data.ActionHandled = true;\r\n\r\n dispatch(updateNavMenuNotifications(notificationCopy));\r\n }\r\n}) as any;\r\n\r\nexport const getUserNotificationsSettings = () => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiGet('/notifications-settings/my')\r\n .then((res: IUserNotificationSettings) => {\r\n return res;\r\n });\r\n}) as any;\r\n\r\nexport const updateUserNotificationsSettings = (settings: IUserNotificationSettings) => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiPost('/notifications-settings', settings)\r\n .then((res: IUserNotificationSettings) => {\r\n return res;\r\n });\r\n}) as any;\r\n\r\nexport const checkNotifForOrganizations = (body: string[]) => ((dispatch, getState, http: Http) => {\r\n return http.notificationApiPost('/notifications/context/organizations', body).then((response) => {\r\n return response;\r\n });\r\n}) as any;\r\n\r\nexport const acceptDeclineInvitations = (accept: boolean, receiverId: string, inviterId: string, id: string) => ((dispatch, getState, http) => {\r\n return http\r\n .apiPost(`/P2PInvitation/respond?inviterId=${inviterId}&receiverId=${receiverId}&accepted=${accept}`)\r\n .then(() => {\r\n dispatch(markNotificationActionAsHandled(id));\r\n dispatch(changeNotificationStatus(id));\r\n\r\n accept && dispatch({\r\n type: actionTypes.UPDATE_RECIVER_RMS_STATUS,\r\n reciverRmsStatus: 3\r\n });\r\n setTimeout(() => dispatch({\r\n type: actionTypes.UPDATE_RECIVER_RMS_STATUS,\r\n reciverRmsStatus: 0\r\n }), 500);\r\n });\r\n}) as any;","import * as actionTypes from './actionTypes/onboardingTypes';\r\nimport { IFullUserProfile } from '../entities/IProfile';\r\nimport { Http } from '../tools/http';\r\nimport { EProfileType } from '../tools/profileConstants';\r\n\r\nexport const getOnboardingProfileScore = (currentProfile: IFullUserProfile) => {\r\n\r\n let score = 0;\r\n const profileScoreDetails = {\r\n picture: false,\r\n expertisesList: false,\r\n companyList: false,\r\n degreesList: false,\r\n roleCategory: false\r\n };\r\n\r\n if (currentProfile.picture && (currentProfile.picture || '').trim()) {\r\n ++score;\r\n profileScoreDetails.picture = true;\r\n }\r\n\r\n if (currentProfile?.expertises?.length || currentProfile.profileType !== EProfileType.Lawyer) {\r\n ++score;\r\n profileScoreDetails.expertisesList = true;\r\n }\r\n\r\n if (currentProfile?.companies?.length) {\r\n ++score;\r\n profileScoreDetails.companyList = true;\r\n }\r\n\r\n if (currentProfile?.degrees?.length) {\r\n ++score;\r\n profileScoreDetails.degreesList = true;\r\n }\r\n\r\n if (currentProfile?.roleFunctions?.length) {\r\n ++score;\r\n profileScoreDetails.roleCategory = true;\r\n }\r\n\r\n return {\r\n type: actionTypes.ONBOARDING_GET_PROFILE_SCORE,\r\n score: score / 5,\r\n profileScoreDetails\r\n };\r\n};\r\n\r\nexport const getOnboardingInviteScore = () => ((dispatch, getState, http: Http) => {\r\n http.apiGet('/invitations/sent/count').then(response => {\r\n dispatch({\r\n type: actionTypes.ONBOARDING_GET_INVITE_SCORE,\r\n score: parseInt(response, 10)\r\n });\r\n });\r\n}) as any;\r\n","import { Dispatch } from 'redux';\r\nimport queryString from 'query-string-for-all';\r\nimport { IPersonaProps } from '@fluentui/react';\r\n\r\nimport * as actionTypes from './actionTypes/organizationsTypes';\r\nimport * as actionTypess from '../actions/actionTypes/exploreTypes';\r\nimport * as contextActions from './contextActions';\r\nimport {\r\n IOrganizationMember, EOrganizationRole, IOrganization, IOrganizationMembers, IOrganizationAccount, IOrganizationLink, ILatestActivitiy, IOrgModuleVisibility,\r\n IOrganizationOwner, IOrganizationModule, IOrganizationTag, IOrganizationType, IOrganizationOption, ICallToAtion\r\n} from '../entities/IOrganization';\r\nimport { IGroupsAndPeople } from '../entities/IAdmin';\r\nimport { IOrganizationContext } from '../entities/IContext';\r\nimport { IRoleManagerUser, IRoleManagerEmailInvitation } from '../entities/IRoleManager';\r\nimport { IFullUserProfile } from '../entities/IProfile';\r\nimport { Http } from '../tools/http';\r\nimport { action, IDispatch } from '../tools/reduxTools';\r\nimport { IState } from '../reducers';\r\nimport { ISearch, ISearchResult } from '../entities/ISearch';\r\nimport { IModuleMember, OrganizationPermissions } from '../entities/IPermissions';\r\nimport { ISearchLawyer } from '../entities/ISearchLawyer';\r\nimport { CampaignDto, ICampaignListElem, ISingleCampaign } from '../entities/ICampaigns';\r\nimport { ISearchResults } from '../entities/IFilters';\r\nimport { IReferencial, IViewReferential } from '../entities/IGlobal';\r\n\r\nexport type IOrganizationSearchResult = IPersonaProps & ISearchResult;\r\n\r\nexport const organizationContactsPickerSearch = (query: string = '') => action>((dispatch, getState: () => IState, http: Http) => {\r\n\r\n return http.permissionsApiPost(`/groups/search-items?size=10&query=${query}`, {}).then((results: IGroupsAndPeople) => {\r\n return ((results && results.items) || []).map((item) => {\r\n const persona: IOrganizationSearchResult = {\r\n text: item.name,\r\n imageInitials: '',\r\n imageUrl: item.picture,\r\n secondaryText: '',\r\n id: item.id,\r\n originalResult: item as any\r\n };\r\n\r\n return persona;\r\n });\r\n });\r\n});\r\n\r\nexport const getUsersFromLc = (Search: string) => ((dispatch, getState, http: Http) => {\r\n const { pageContext } = getState().context;\r\n const { userLanguage } = getState().language;\r\n const digitalWorkplaceUrl = pageContext.web.absoluteUrl;\r\n const body = {\r\n Search,\r\n isMarketplaceSearch: true,\r\n IsGlobalOrNetworkDirectory: true,\r\n Selection: [],\r\n Orderby: 'LegalScore desc, search.score() desc, LastName asc, FirstName asc',\r\n Top: 50,\r\n Skip: 0,\r\n RelationIds: [],\r\n ExpertisesIds: [],\r\n SpecialitiesIds: [],\r\n CountriesIds: [],\r\n RoleFunctionListIds: [],\r\n CompaniesIds: [],\r\n BusinessSectorsIds: [],\r\n BarAdmissionIds: [],\r\n LanguageIds: [],\r\n IsPerfectMatch: true,\r\n UserIds: [],\r\n HideCurrentUser: false\r\n };\r\n const url = `/users/azure-search?digitalWorkplaceUrl=${encodeURIComponent(digitalWorkplaceUrl)}&lcid=${userLanguage}`;\r\n return http.apiPost(url, body)\r\n .then((searchResult: any) => {\r\n return {\r\n persons: ((searchResult && searchResult.value) || []).map((profile: ISearchLawyer) => {\r\n const persona: IOrganizationSearchResult = {\r\n text: `${profile?.FirstName} ${profile?.LastName}`,\r\n imageInitials: `${profile?.FirstName.slice(0, 1)}${profile?.LastName.slice(0, 1)}`,\r\n imageUrl: profile?.Picture,\r\n secondaryText: [profile?.JobTitle, profile?.Cabinet].filter(val => val).join(' - '),\r\n id: profile?.id\r\n };\r\n return persona;\r\n }), searchResult: searchResult.value\r\n };\r\n }).catch(err => {\r\n throw new Error(err);\r\n });\r\n}) as any;\r\n\r\nexport const getUserFromMyNetwork = (Search: string) => ((dispatch, getState, http: Http) => {\r\n const { pageContext } = getState().context;\r\n const { userLanguage } = getState().language;\r\n const digitalWorkplaceUrl = pageContext.web.absoluteUrl;\r\n const body = {\r\n BarAdmissionIds: [],\r\n BusinessSectorsIds: [],\r\n CompaniesIds: [],\r\n CountriesIds: [],\r\n ExpertisesIds: [],\r\n HideCurrentUser: false,\r\n IsGlobalOrNetworkDirectory: false,\r\n IsPerfectMatch: false,\r\n LanguageIds: [],\r\n Orderby: 'LegalScore desc, search.score() desc, LastName asc, FirstName asc',\r\n RelationIds: ['P2PRelation'],\r\n RoleFunctionListIds: [],\r\n Search,\r\n Selection: [],\r\n Skip: 0,\r\n SpecialitiesIds: [],\r\n Top: 10,\r\n UserIds: [],\r\n isMarketplaceSearch: true\r\n };\r\n const url = `/users/azure-search?digitalWorkplaceUrl=${encodeURIComponent(digitalWorkplaceUrl)}&lcid=${userLanguage}`;\r\n return http.apiPost(url, body)\r\n .then((searchResult: any) => {\r\n return {\r\n persons: ((searchResult && searchResult.value) || []).map((profile: IFullUserProfile) => {\r\n const persona: IPersonaProps = {\r\n text: `${profile.firstName} ${profile.lastName}`,\r\n imageInitials: `${profile.firstName.slice(0, 1)}${profile.lastName.slice(0, 1)}`,\r\n imageUrl: profile.picture,\r\n secondaryText: [profile.jobTitle, profile.cabinet].filter(val => val).join(' - '),\r\n id: profile.id\r\n };\r\n return persona;\r\n }), searchResult: searchResult.value\r\n };\r\n });\r\n}) as any;\r\n\r\nexport const getOrganizationMembersSearch = (organizationId: string, query: string = '', size = '50') => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const params = queryString.stringify({\r\n size: size,\r\n query: query,\r\n PrincipalType: 'Personal'\r\n });\r\n return http.organizationsApiGet(`/organizations/${organizationId}/members?${params}`).then((response) => {\r\n const members = ((response && response.items) || []) as IOrganizationMember[];\r\n return members;\r\n });\r\n});\r\n\r\nexport const getOrganizationMembers = (organizationId: string) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/members?size=9999`).then((response) => {\r\n return (response && response.items) || [];\r\n });\r\n});\r\n\r\nexport const addMemberToOrganization = (organizationId: string, message: string, member?: IRoleManagerUser, email?: IRoleManagerEmailInvitation) => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/members`, {\r\n ...(member || email),\r\n message\r\n });\r\n});\r\n\r\nexport const removeMemberFromOrganization = (organizationId: string, memberId: string) => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.organizationsApiDelete(`/organizations/${organizationId}/members/${memberId}`);\r\n});\r\n\r\nexport const setOrganizationsName = (name: string) => ({\r\n type: actionTypes.SET_ORGANIZATIONS_NAME,\r\n name\r\n});\r\n\r\nexport const clearOrgsLastMembers = () => ({\r\n type: actionTypes.CLEAR_ORGS_LAST_MEMBERS\r\n});\r\n\r\nexport const acceptOrDeclineInvitationToOrganization = (organizationId: string, accepted: boolean) => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/invitation?isAccepted=${accepted}`);\r\n});\r\n\r\nexport const uploadOrganizationsLogo = (file: File) => action>((dispatch, getState: () => IState, http: Http) => {\r\n const form = new FormData();\r\n form.append('file', file);\r\n\r\n return http.organizationsApiPost(`/Organizations/upload-logo`, form).then((url: string) => {\r\n return url;\r\n });\r\n});\r\n\r\nexport const updateOrganizations = (organizationId: string, organization: IOrganizationContext, description: string, logo: string, defaultCurrency: IViewReferential) => action>((dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n name: organization.details.name,\r\n description,\r\n isLawFirm: organization.details.isLawFirm,\r\n logo,\r\n businessSectors: organization.details.businessSectors,\r\n company: organization.details.company,\r\n urlName: organization.details.urlName,\r\n tenantId: organization.details.tenantId,\r\n defaultCurrency\r\n } as IOrganization;\r\n\r\n return http.organizationsApiPut(`/Organizations/${organizationId}`, body);\r\n});\r\n\r\nexport const orgsSearch = (organizationId: string, search: string, searchArrays: any, page: number, size: number) => action>((dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n page: page,\r\n size: size,\r\n lcid: userLanguage\r\n });\r\n const body = {\r\n search,\r\n departments: searchArrays.departments,\r\n teams: searchArrays.teams,\r\n languages: searchArrays.languages,\r\n barAdmissions: searchArrays.barAdmissions,\r\n expertises: searchArrays.expertises,\r\n competences: searchArrays.competences,\r\n businessSectors: searchArrays.businessSectors,\r\n countries: searchArrays.countries,\r\n talents: searchArrays.talents,\r\n roleFunctions: searchArrays.roleFunctions,\r\n roleCategories: searchArrays.roleCategories,\r\n firstReferentials: searchArrays.firstReferentials,\r\n secondReferentials: searchArrays.secondReferentials,\r\n thirdReferentials: searchArrays.thirdReferentials\r\n };\r\n\r\n return http.profilesApiPost(`/organization/${organizationId}/users/search?${query}`, body).then((result: ISearch) => {\r\n dispatch({\r\n type: actionTypes.GET_ORGS_SEARCH,\r\n orgsSearch: result\r\n });\r\n });\r\n});\r\n\r\nexport const getCurrentPOAHolders = (organizationId: string, search?: string, searchArrays?: any, page: number = 0, size?: number) => action>((dispatch: Dispatch, getState, http: Http) => { // add interface\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n lcid: userLanguage,\r\n page: page,\r\n size: 9999\r\n });\r\n const body = {\r\n search,\r\n legalEntities: searchArrays?.legalEntities,\r\n areaOfResponsibilities: searchArrays?.areaOfResponsibilities,\r\n items: searchArrays?.items,\r\n powers: searchArrays?.powers,\r\n financialLimit: searchArrays?.financialLimits?.toString(),\r\n levels: parseInt(searchArrays?.levels, 10),\r\n canSubdelegate: searchArrays?.canSubdelegate?.[0],\r\n firstReferentials: searchArrays?.firstReferentials,\r\n secondReferentials: searchArrays?.secondReferentials,\r\n thirdReferentials: searchArrays?.thirdReferentials\r\n };\r\n\r\n return http.profilesApiPost(`/organizations/${organizationId}/poa-mandates/holders/search?${query}`, body)\r\n .then((response: ISearch) => {\r\n dispatch({\r\n type: actionTypes.GET_ORGS_SEARCH,\r\n orgsSearch: response\r\n });\r\n return response;\r\n });\r\n});\r\n\r\nexport const getExploreOrgDirectoryUsers = (organisationId: string, page: number = 0, size: number = 48, body, loadSingleData: boolean) => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n page: page,\r\n size: size,\r\n lcid: userLanguage\r\n });\r\n return http.profilesApiPost(`/organization/${organisationId}/users/search?${query}`, body);\r\n});\r\n\r\nexport const getLastOrgsMembers = (organizationId: string) => action>((dispatch, getState: () => IState, http: Http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/members/last?size=9999`).then((members: IOrganizationMembers) => {\r\n dispatch({\r\n type: actionTypes.GET_LAST_ORGS_MEMBERS,\r\n members: members.items\r\n });\r\n return members;\r\n });\r\n});\r\n\r\nexport const getAllOrganizations = () => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const response = await http.organizationsApiGet(`/Organizations?size=99999&lcid=${userLanguage}`);\r\n return (response && response.items) || [];\r\n});\r\n\r\nexport const createOrganization = (name: string, urlName: string, owners: IPersonaProps[], organizationType: IOrganizationType, defaultCurrency: IViewReferential, logo: string, clientName?: string) => action>((dispatch, getState: () => IState, http: Http) => new Promise((resolve, reject) => {\r\n http.organizationsApiPost('/Organizations', {\r\n organization: {\r\n name,\r\n logo,\r\n businessSectors: [],\r\n urlName,\r\n tags: [],\r\n organizationType,\r\n defaultCurrency\r\n },\r\n clientName,\r\n owners: owners.map((owner) => ({\r\n id: owner.id,\r\n picture: owner.imageUrl,\r\n firstName: owner.text.split(' ')[0],\r\n lastName: owner.text.split(' ')[1],\r\n position: owner.secondaryText,\r\n role: EOrganizationRole.Owner\r\n }))\r\n }).then(response => {\r\n dispatch(contextActions.getCurrentUserContextOrganizations());\r\n resolve(response);\r\n }).catch(error => {\r\n reject(error);\r\n });\r\n}));\r\n\r\nexport const updateOrganization = (organizationId: string, organization: IOrganizationContext) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPut(`/Organizations/${organizationId}/as-admin`, {\r\n ...organization.details\r\n });\r\n});\r\n\r\nexport const getAllOrganizationAccounts = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const accounts = await http.organizationsApiGet(`/organizations/${organizationId}/accounts`);\r\n return accounts || [];\r\n});\r\n\r\nexport const createNewAccountForOrganization = (organizationId: string, name: string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPost(`/organizations/${organizationId}/accounts?newAccountName=${name}`);\r\n});\r\n\r\nexport const removeAccountFromOrganization = (organizationId: string, accountId: string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiDelete(`/organizations/${organizationId}/accounts?removedAccountId=${accountId}`);\r\n});\r\n\r\nexport const getAllTags = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const orgTags = await http.organizationsApiGet(`/organizations/${organizationId}/tags`);\r\n return orgTags || [];\r\n});\r\n\r\nexport const addNewtag = (organizationId: string, newTag: string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPost(`/organizations/${organizationId}/tags?newTag=${newTag}`);\r\n});\r\n\r\nexport const removeUsefulLink = (organizationId: string, id: string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiDelete(`/organizations/${organizationId}/links/${id}`);\r\n});\r\n\r\nexport const updateUsefulLink = (organizationId: string, id: string, name: string, url: string) => action>(async (dispatch, getState, http) => {\r\n const body = {\r\n name,\r\n url\r\n };\r\n await http.organizationsApiPut(`/organizations/${organizationId}/links/${id}`, body);\r\n});\r\n\r\nexport const getUsefulLinks = (organizationId: string) => action>(async (dispatch: Dispatch, getState, http) => {\r\n await http.organizationsApiGet(`/organizations/${organizationId}/links`).then((response: { links: IOrganizationLink[], permissions: string[] }) => {\r\n dispatch({\r\n type: actionTypes.GET_USEFUL_LINKS,\r\n usefulLinks: response.links\r\n });\r\n dispatch>({\r\n type: actionTypes.UPDATE_ORGANIZATION_PERMISSIONS,\r\n permissions: response.permissions as OrganizationPermissions[],\r\n organizationId\r\n });\r\n });\r\n});\r\n\r\nexport const addUsefulLink = (organizationId: string, name: string, url: string) => action>(async (dispatch, getState, http) => {\r\n const body = [{\r\n name,\r\n url\r\n }];\r\n await http.organizationsApiPost(`/organizations/${organizationId}/links/add`, body);\r\n});\r\n\r\nexport const getOrganizationActivities = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const response = await http.messagingApiGet(`/organizations/${organizationId}/activities?size=10`);\r\n return (response && response.items || []);\r\n});\r\n\r\nexport const markActivityAsRead = (organizationId: string, activityId: string) => action>(async (dispatch, getState, http) => {\r\n await http.messagingApiPut(`/organizations/${organizationId}/activities/${activityId}/mark-as-read`);\r\n});\r\n\r\nexport const markAllActivitiesAsRead = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n await http.messagingApiPut(`/organizations/${organizationId}/activities/mark-as-read`);\r\n});\r\n\r\nexport const getVisibleModulesForOrganization = (organizationId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/modules`);\r\n});\r\n\r\nexport const getVisibleOptionsForOrganization = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/options`);\r\n});\r\n\r\nexport const updateModuleVisibility = (organizationId: string, moduleId: string, visibility: boolean) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPut(`/organizations/${organizationId}/modules/${moduleId}`, { visibility });\r\n});\r\n\r\nexport const updateOptionVisibility = (organizationId: string, organizationOptionKey: number, value: boolean) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPut(`/organizations/${organizationId}/options`, { organizationId, organizationOptionKey, value });\r\n});\r\n\r\nexport const getOrganizationOwners = (organizationId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/owners`);\r\n});\r\n\r\nexport const addOrganizationOwner = (organizationId: string, member: IOrganizationMember) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPost(`/organizations/${organizationId}/owners/add`, member);\r\n});\r\n\r\nexport const deleteOrganizationOwner = (organizationId: string, ownerId: string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiDelete(`/organizations/${organizationId}/owners/${ownerId}`);\r\n});\r\n\r\nexport const getOrganizationModules = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const response = await http.organizationsApiGet(`/organizations/${organizationId}/modules`);\r\n return response instanceof Array ? response : [];\r\n});\r\n\r\nexport const addMemberToOrgModule = (organizationId: string, moduleId: string, member: IModuleMember) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/modules/${moduleId}/members`, member);\r\n});\r\n\r\nexport const updateOrgModuleMemberRole = (organizationId: string, moduleId: string, memberId: string, role: number | string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiPut(`/organizations/${organizationId}/modules/${moduleId}/members/${memberId}?role=${role}`);\r\n});\r\n\r\nexport const removeOrgModuleMember = (organizationId: string, moduleId: string, memberId: string) => action>(async (dispatch, getState, http) => {\r\n await http.organizationsApiDelete(`/organizations/${organizationId}/modules/${moduleId}/members/${memberId}`);\r\n});\r\n\r\nexport const getOrganizationByTenant = (tenantId: string) => action>((dispatch: Dispatch, getState, http: Http) => {\r\n return http.organizationsApiGet(`/organizations/by-tenant/${tenantId}`).then((response) => {\r\n return response;\r\n });\r\n});\r\n\r\nexport const getOrganizationTypes = () => action>((dispatch: Dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n return http.organizationsApiGet(`/organizations/types?lcid=${userLanguage}`);\r\n});\r\n\r\nexport const updateOrganizationPermissions = (permissions: OrganizationPermissions[], organizationId: string): IDispatch => ({\r\n type: actionTypes.UPDATE_ORGANIZATION_PERMISSIONS,\r\n permissions,\r\n organizationId\r\n});\r\n\r\nexport const getListOfMembersOfOrganization = (organizationId: string, query?: string, size?: number, page?: number) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/members/with-email?query=${query}&size=99999&page=0`);\r\n});\r\n\r\nexport const getAvailableCurrencies = () => action>((dispatch, getState, http) => {\r\n return http.apiGet(`/available-currencies`);\r\n});\r\n\r\nexport const getAllCallToActions = (orgId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiGet(`/Organizations/${orgId}/call-to-actions`);\r\n});\r\n\r\nexport const clearSearchResult = () => ({\r\n type: actionTypes.CLEAR_SEARCH_RESULT\r\n});\r\n\r\nexport const deleteCTA = (organizationId: string, callToActionId: string) => action>((dispatch, getState, http) => {\r\n const body = {\r\n organizationId,\r\n callToActionId\r\n };\r\n return http.organizationsApiPost(`/Organizations/${organizationId}/call-to-actions/delete`, body);\r\n});\r\n\r\nexport const updateCTA = (organizationId: string, callToAction: ICallToAtion) => action>((dispatch, getState, http) => {\r\n const body = {\r\n organizationId,\r\n callToAction\r\n };\r\n return http.organizationsApiPost(`/Organizations/${organizationId}/call-to-actions/update`, body);\r\n});\r\n\r\nexport const newCTA = (organizationId: string, callToAction: ICallToAtion) => action>((dispatch, getState, http) => {\r\n const body = {\r\n organizationId,\r\n callToAction\r\n };\r\n return http.organizationsApiPost(`/Organizations/${organizationId}/call-to-actions/new`, body);\r\n});\r\n\r\nexport const getCampaignsList = (organizationId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/campaigns`);\r\n});\r\n\r\nexport const getCampaignsRecipients = (organizationId: string, campaignId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiGet(`/organizations/${organizationId}/campaigns/${campaignId}/recipients`);\r\n});\r\n\r\nexport const reorderCTA = (organizationId: string, callToActionId: string, callToActionOrder: number) => action>((dispatch, getState, http) => {\r\n const body = {\r\n callToActionId,\r\n callToActionOrder,\r\n organizationId\r\n };\r\n\r\n return http.organizationsApiPost(`/Organizations/${organizationId}/call-to-actions/reorder`, body);\r\n});\r\n\r\nexport const resendCampaign = (organizationId: string, campaignId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/campaigns/${campaignId}/resend`, []);\r\n});\r\n\r\nexport const closeCampaign = (organizationId: string, campaignId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/campaigns/${campaignId}/close`, []);\r\n});\r\n\r\nconst searchParams = (params: Record): URLSearchParams => new URLSearchParams(\r\n Object.entries(params)\r\n .filter(([_key, value]) => value !== null && value !== undefined)\r\n .map(([key, value]) => [key, value.toString()])\r\n);\r\n\r\nexport const getExploreData = (organizationId?: string, page: number = 0, size: number = 20, body?, timeout?: number) => action>((dispatch, getState, http) => {\r\n const { userLanguage: lcid } = getState().language;\r\n return http.clustersApiPost(`/search-v2?${searchParams({organizationId, lcid, page, size})}`, body, undefined, timeout);\r\n});\r\n\r\nexport const getExploreDataGrid = (organizationId?: string, page: number = 0, size: number = 20, filters: any = {}) => action>((_dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n const { mine, query, ...otherfilters} = filters;\r\n return http.clustersApiPost(`/search-explore?${searchParams({ organizationId, userLanguage, page, size })}`, {\r\n ...otherfilters, mine: mine?.[0], query: query?.[0]\r\n });\r\n});\r\n\r\nexport const clearExploreItems = () => ({\r\n type: actionTypess.CLEAR_EXPLORE_ELEMENTS\r\n});\r\n\r\nexport const addRecipientsToCampaign = (organizationId: string, campaignId: string, body: {principalsToAdd: {principalChildId: string, principalType: number}[]}) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiPost(`/organizations/${organizationId}/campaigns/${campaignId}/recipients`, body);\r\n});\r\n\r\nexport const deleteRecipientFromCampaign = (organizationId: string, campaignId: string, body: string[]) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiDelete(`/organizations/${organizationId}/campaigns/${campaignId}`, body);\r\n});\r\n\r\nexport const deleteOrganization = (organizationId: string) => action>((dispatch, getState, http) => {\r\n return http.organizationsApiDelete(`/organizations/${organizationId}`, []);\r\n});","import { action } from '../tools/reduxTools';\r\nimport { UPDATE_PDF_OVERLAY, SHOW_PDF_OVERLAY, HIDE_PDF_OVERLAY, CLEAR_PDF_OVERLAY } from './actionTypes/pdfOverlayTypes';\r\nimport { IPdfOverlay } from '../entities/IPdfOverlay';\r\n\r\nexport const setPdfOverlay = ({ pdfUrl, pdfName, display = true} : IPdfOverlay) => action(async (dispatch) => {\r\n dispatch({ type: UPDATE_PDF_OVERLAY, pdfOverlay: { pdfUrl, pdfName, display } });\r\n});\r\n\r\nexport const showPdfOverlay = () => action(async (dispatch) => {\r\n dispatch({ type: SHOW_PDF_OVERLAY });\r\n});\r\n\r\nexport const hidePdfOverlay = () => action(async (dispatch) => {\r\n dispatch({ type: HIDE_PDF_OVERLAY });\r\n});\r\n\r\nexport const clearPdfOverlay = () => action(async (dispatch) => {\r\n dispatch({ type: CLEAR_PDF_OVERLAY });\r\n});\r\n\r\n","import { action } from '../tools/reduxTools';\r\nimport { IModuleRole, IAvailableRole, ERoleType, IAssignedPrincipal, IAssignedRole, IGetInvitation, IGetMultipleGroupsById } from '../entities/IPermissions';\r\nimport { IUserBrief } from '../entities/IGlobal';\r\nimport { IExtendedAvatarProps } from '../components/Common/ColoredDatagrid/CellTypeComponents/ExtendedAvatar';\r\n\r\nexport const getModuleRoles = () => action>(async (dispatch, getState, http) => {\r\n const response = await http.permissionsApiGet(`/Roles/module/all`);\r\n return response || [];\r\n});\r\n\r\nexport const getAllRoles = (type: ERoleType) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiGet(`/Roles/${type}/all`);\r\n});\r\n\r\nexport const createUserWithoutInvitation = (email: string, firstName: string, lastName: string, roleId?: string, resourceChildId?: string, resourceType?: string) => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n\r\n const body = {\r\n shadowProfile: {\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n profilePrivileges: roleId ? {\r\n resourceType,\r\n resourceChildId,\r\n roleId\r\n // tslint:disable-next-line:no-null-keyword\r\n } : null\r\n };\r\n\r\n return http.profilesApiPost(`/users/accounts/create-shadow-profile?lcid=${userLanguage}`, body);\r\n});\r\n\r\nexport const getResourcePrincipals = (resourceId: string, resourceType: ERoleType) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiGet(`/resources/${resourceId}/principals?resourceTypes=${resourceType}`);\r\n});\r\n\r\nexport const changeAssignedRole = (resourceId: string, principalChildId: string, roleId: string, resourceType: ERoleType, principalType: string) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiPut(`/resources/${resourceId}/assigned-roles`, {\r\n principalChildId,\r\n principalType,\r\n roleId,\r\n resourceType\r\n });\r\n});\r\n\r\nexport const deleteAssignedRole = (resourceId: string, principalChildId: string, resourceType: ERoleType, principalType?: string) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiDelete(`/resources/${resourceId}/assigned-roles`, {\r\n principalChildId,\r\n principalType,\r\n resourceType\r\n });\r\n});\r\n\r\nexport const addAssignedRole = (resourceId: string, principalChildId: string, roleId: string, resourceType: ERoleType, message?: string, principalType?: string) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiPost(`/resources/${resourceId}/assigned-roles`, {\r\n principalChildId,\r\n principalType,\r\n roleId,\r\n resourceType,\r\n message\r\n });\r\n});\r\n\r\nexport const inviteUserToResource = (resourceId: string, roleId: string, receiverEmail: string, receiverFirstName: string, receiverLastName: string, resourceType: ERoleType, message?: string, receiverId?: string) => action>((dispatch, getState, http) => {\r\n return http.permissionsApiPost(`/resources/${resourceId}/invitations`, {\r\n receiverId,\r\n receiverEmail,\r\n receiverFirstName,\r\n receiverLastName,\r\n message,\r\n role: roleId,\r\n resourceType\r\n });\r\n});\r\n\r\nexport const getSentInvitations = (resourceId: string) => action>(async (dispatch, getState, http) => {\r\n return http.permissionsApiGet(`/resources/${resourceId}/invitations`);\r\n});\r\n\r\nexport const resendToAll = (resourceId: string, body: string[]) => action>(async (dispatch, getState, http) => {\r\n return http.permissionsApiPost(`/resources/${resourceId}/invitations/remind/all`, {invitationIds: body});\r\n});\r\n\r\nexport const cancelInvitation = (resourceId: string, invitationId: string) => action>(async (dispatch, getState, http) => {\r\n await http.permissionsApiPost(`/resources/${resourceId}/invitations/${invitationId}/cancel`);\r\n});\r\n\r\nexport const resendInvitation = (resourceId: string, invitationId: string) => action>(async (dispatch, getState, http) => {\r\n await http.permissionsApiPost(`/resources/${resourceId}/invitations/${invitationId}/remind`);\r\n});\r\n\r\nexport const getMultipleGroupsById = (groupsIds: string[]) => action>(async (dispatch, getState, http) => {\r\n const body = {\r\n groupsIds: groupsIds\r\n };\r\n return http.permissionsApiPost(`/groups/filter-by-ids`, body);\r\n});\r\n\r\nexport interface IMembersDataTable {\r\n 'added-at': Date;\r\n 'last-active-at': Date;\r\n 'invitation-id': string;\r\n principal: IExtendedAvatarProps;\r\n role: {\r\n childId: string;\r\n id: string;\r\n isHidden: boolean;\r\n name: string;\r\n resourceType: ERoleType;\r\n };\r\n}\r\n\r\nexport const getMembersDataTable = (resourceId: string, filters: Record, page?: number) => action, count: number}>>(async (dispatch, getState, http) => {\r\n return http.permissionsApiPost(`/resources/${resourceId}/principals/as-datatable?page=${page || 0}`, {...filters, query: filters.query?.[0]});\r\n});\r\n\r\nexport const getPendingDataTable = (resourceId: string, page?: number) => action, count: number}>>(async (dispatch, getState, http) => {\r\n return http.permissionsApiGet(`/resources/${resourceId}/invitations/as-datatable?page=${page || 0}`);\r\n});\r\n\r\nexport const getGroupMembersDataTable = (groupId: string, filters: Record, page?: number) => action, count: number}>>(async (dispatch, getState, http) => {\r\n return http.permissionsApiGet(`/groups/${groupId}/members/as-datatable?page=${page || 0}`, {...filters, query: filters.query?.[0]});\r\n});\r\n","import { Dispatch } from 'redux';\r\nimport queryString from 'query-string';\r\n\r\nimport { IState } from '../reducers';\r\nimport { Http } from '../tools/http';\r\nimport * as actionTypes from './actionTypes/profileTypes';\r\nimport { getOnboardingProfileScore } from './onboardingActions';\r\nimport { action } from '../tools/reduxTools';\r\nimport { IRelation, IFullUserProfile, IUserQuerySearchResult, ISingleMandeHolder, IUserRegistrationValidation } from '../entities/IProfile';\r\nimport { ICheckingMailbox } from '../entities/MailBox/ICheckingMailbox';\r\nimport { objectKeysToCamelCase } from '../tools/objectTools';\r\nimport { UserProfileBody } from '../entities/IDeclaration';\r\nimport { ISearchResponse } from '../entities/IGlobal';\r\nimport { ISinglePoa } from '../entities/IPOA';\r\nimport { ISearch } from '../entities/ISearch';\r\nimport { ISearchResults } from '../entities/IFilters';\r\nimport * as actionSearchTypes from './actionTypes/searchTypes';\r\nimport { EUserPrivacy } from '../entities/IRoleManager';\r\n\r\nexport const getDirectoryUers = (search: string, page: number, size: number, filter: any) => action>((dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n page: page,\r\n size: size,\r\n lcid: userLanguage\r\n });\r\n const body = {\r\n departments: filter.departments,\r\n teams: filter.teams,\r\n languages: filter.languages,\r\n barAdmissions: filter.barAdmissions,\r\n expertises: filter.expertises,\r\n competences: filter.competences,\r\n businessSectors: filter.businessSectors,\r\n countries: filter.countries,\r\n talents: filter.talents,\r\n roleFunctions: filter.roleFunctions,\r\n roleCategories: filter.roleCategories,\r\n firstReferentials: filter.firstReferentials,\r\n secondReferentials: filter.secondReferentials,\r\n thirdReferentials: filter.thirdReferentials,\r\n legalEntities: filter.cabinet,\r\n search\r\n };\r\n const url = `/directory-users/search?${query}`;\r\n return http.profilesApiPost(url, body)\r\n .then((searchResult: ISearch) => {\r\n dispatch({\r\n type: actionSearchTypes.GET_SEARCH_RESULT,\r\n searchResult: {\r\n items: searchResult.items,\r\n facets: searchResult.facets,\r\n count: searchResult.count\r\n }\r\n });\r\n return searchResult;\r\n }).catch(err => {\r\n throw new Error(err);\r\n });\r\n});\r\n\r\nexport const checkFinalRegistrationRule = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiGet('/users/final-registration/is-active');\r\n});\r\n\r\nexport const getCurrentUserProfileNew = () => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n dispatch({ type: actionTypes.GET_CURRENT_USER_PROFILE_REQUESTED });\r\n\r\n return http.profilesApiGet('/users/me/full').then((currentUserProfile: IFullUserProfile) => {\r\n dispatch({\r\n type: actionTypes.GET_CURRENT_USER_PROFILE_COMPLETED,\r\n currentUserProfile: objectKeysToCamelCase(currentUserProfile)\r\n });\r\n\r\n dispatch(getOnboardingProfileScore(objectKeysToCamelCase(currentUserProfile)));\r\n return currentUserProfile;\r\n });\r\n});\r\n\r\nexport const getExploreDirectoryUsers = (page: number = 0, size: number = 48, body, loadSingleData: boolean) => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n page: page,\r\n size: size,\r\n lcid: userLanguage\r\n });\r\n return http.profilesApiPost(`/directory-users/search?${query}`, body);\r\n});\r\n\r\nexport const getProfileById = (id: string, lcid: number = 1033): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n return http.profilesApiGet(`/users/${id}/full?lcid=${lcid}&getExternalProfileData=true`);\r\n}) as any;\r\n\r\nexport const getUserProfileByQuery = (body: UserProfileBody, page: number = 0, size: number = 10) => action, IState>((dispatch: Dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({ page, size, lcid: userLanguage });\r\n\r\n return http.profilesApiPost(`/users/search?${query}`, body);\r\n});\r\n\r\nexport const getProfilePublicInfo = (userId: string, lcid: number = 1033): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n return http.apiGet(`/users/${userId}/public-info?lcid=${lcid}`);\r\n}) as any;\r\n\r\nexport const getOtherUserPolicy = (userId: string = ''): Promise => ((dispatch: Dispatch, getState, http: Http) => {\r\n return http.paymentApiGet(`/User/${userId}/policies`);\r\n}) as any;\r\n\r\nexport const changePassword = (userB2Cid: string, password: string): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPatch(`/ChangeUserPassword`, {userB2CId: userB2Cid, newPassword: password});\r\n}) as any;\r\n\r\nexport const accountExists = (email: string): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/AccountExists?emailAddres=${encodeURIComponent(email)}`);\r\n}) as any;\r\n\r\nexport const isUserSuperAdmin = (): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet('/users/me/is-super-admin')\r\n .then(result => {\r\n dispatch({\r\n type: actionTypes.GET_USER_SUPER_ADMIN_PERMISSIONS,\r\n isSuperAdmin: result\r\n });\r\n\r\n return result;\r\n });\r\n}) as any;\r\n\r\nexport const getMailboxUrls = () => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet('/mailbox/geturls')\r\n .then((result: ICheckingMailbox) => {\r\n dispatch({\r\n type: actionTypes.GET_MAILBOX_URLS,\r\n result\r\n });\r\n return result;\r\n });\r\n}) as any;\r\n\r\nexport const getUnreadOutlookEmail = (email: string) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/mailbox/emails/count?emailAddress=${email}&read=false`)\r\n .then(result => {\r\n dispatch({\r\n type: actionTypes.GET_UNREAD_EMAILS,\r\n result\r\n });\r\n\r\n return result;\r\n });\r\n}) as any;\r\n\r\nexport const addProfilePicture = (userId: string, file: Blob) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const form = new FormData();\r\n form.append('fileImg', file);\r\n\r\n return http.apiUpload(`/AddPictureToExpert?idExpertToEdit=${userId}`, form, undefined);\r\n}) as any;\r\n\r\nexport const editProfile = (profile: IFullUserProfile): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPost(`/EditExpert`, profile);\r\n}) as any;\r\n\r\nexport const getAllRoleCategories = (lcid: number = 1033) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/GetAllRoleCategories?lcid=${lcid}`);\r\n}) as any;\r\n\r\nexport const updateRelationsBetweenEntities = (currentEmail: string, targetEmail: string, relations: IRelation[], lcid: number = 1033) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPost(`/UpdateRelationsBetweenEntities?clusterEmailAddressSource=${encodeURIComponent(currentEmail)}&clusterEmailAddressTarget=${encodeURIComponent(targetEmail)}&lcid=${lcid}`, relations);\r\n}) as any;\r\n\r\nexport const getAllRelationsBetweenEntities = (currentEmail: string, targetEmail: string, lcid: number = 1033): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiPost(`/GetAllRelationsBetweenEntities?clusterEmailAddressSource=${encodeURIComponent(currentEmail)}&clusterEmailAddressTarget=${encodeURIComponent(targetEmail)}&lcid=${lcid}`);\r\n}) as any;\r\n\r\nexport const getAllRelationsByCategory = (category: string, lcid: number = 1033): Promise => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/GetAllRelationsByCategory?categoryEnum=${category}&lcid=${lcid}`);\r\n}) as any;\r\n\r\nexport const getReferentialListByName = (referentialName: string, name: string, size: number = 10, page: number = 1, lcid: number = 1033) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/Get${referentialName}ListByName?${(!!name ? name.trim() !== '' : '') && `name=${encodeURIComponent(name)}&`}size=${size}&page=${page}&lcid=${lcid}`);\r\n}) as any;\r\n\r\nexport const sendVerificationCode = (email: string) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.profilesApiPost(`/users/me/settings/email/generate-code?email=${email}`);\r\n}) as any;\r\n\r\nexport const checkUsedEmail = (email: string) => ((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.apiGet(`/users/me/settings/change-email/is-used?email=${email}`);\r\n}) as any;\r\n\r\nexport const changeUserEmail = (oldEmail: string, newEmail: string, verificationKey: string) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n oldEmail,\r\n newEmail,\r\n verificationKey\r\n };\r\n return http.profilesApiPut(`/users/me/settings/email`, body);\r\n});\r\n\r\nexport const updateProfile = (userId: string, body: IFullUserProfile) => action>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n body.firstName = body.firstName.trim();\r\n body.lastName = body.lastName.trim();\r\n return http.profilesApiPut(`/users/${userId}?lcid=${userLanguage}`, body);\r\n});\r\n\r\nexport const getProfileMandates = (userId: string, page: number, timeout?: number) => action>>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/users/${userId}/corporate-mandates?lcid=${userLanguage}&page=${page}&size=100`, undefined, undefined, timeout);\r\n});\r\n\r\nexport const getProfilePoa = (userId: string, timeout?: number) => action>>((dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.profilesApiGet(`/users/${userId}/poa-mandates/as-delegated?lcid=${userLanguage}&size=999999`, undefined, undefined, timeout);\r\n});\r\n\r\nexport const sendValidation = (userId: string, body: IUserRegistrationValidation) => action>>((dispatch, getState, http) => {\r\n return http.profilesApiPut(`/users/${userId}/validate-registration`, body);\r\n});\r\n\r\nexport const changeUserPrivacy = (userId: string, body: EUserPrivacy) => action>>((dispatch, getState, http) => {\r\n return http.profilesApiPut(`/users/${userId}/privacy-settings`, {privacy: body});\r\n});","import queryString from 'query-string-for-all';\r\n\r\nimport { Http } from '../tools/http';\r\nimport * as actionTypes from './actionTypes/searchTypes';\r\nimport { ISearch } from '../entities/ISearch';\r\nimport { action } from '../tools/reduxTools';\r\n\r\nexport const getSearchResult = (search: string, page: number, size: number, filter: any) => action>((dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n page: page,\r\n size: size,\r\n lcid: userLanguage\r\n });\r\n const body = {\r\n departments: filter.departments,\r\n teams: filter.teams,\r\n languages: filter.languages,\r\n barAdmissions: filter.barAdmissions,\r\n expertises: filter.expertises,\r\n competences: filter.competences,\r\n businessSectors: filter.businessSectors,\r\n countries: filter.countries,\r\n talents: filter.talents,\r\n roleFunctions: filter.roleFunctions,\r\n roleCategories: filter.roleCategories,\r\n firstReferentials: filter.firstReferentials,\r\n secondReferentials: filter.secondReferentials,\r\n thirdReferentials: filter.thirdReferentials,\r\n search\r\n };\r\n const url = `/users/search?${query}`;\r\n return http.profilesApiPost(url, body)\r\n .then((searchResult: ISearch) => {\r\n return searchResult;\r\n }).catch(err => {\r\n throw new Error(err);\r\n });\r\n});\r\n\r\nexport const getPLEPeople = (search: string, page: number, size: number, filter: any, legalEntityId: string) => action>((dispatch, getState, http: Http) => {\r\n const { userLanguage } = getState().language;\r\n const query = queryString.stringify({\r\n page: page,\r\n size: size,\r\n lcid: userLanguage\r\n });\r\n const body = {\r\n departments: filter.departments,\r\n teams: filter.teams,\r\n languages: filter.languages,\r\n barAdmissions: filter.barAdmissions,\r\n expertises: filter.expertises,\r\n competences: filter.competences,\r\n businessSectors: filter.businessSectors,\r\n countries: filter.countries,\r\n talents: filter.talents,\r\n roleFunctions: filter.roleFunctions,\r\n roleCategories: filter.roleCategories,\r\n firstReferentials: filter.firstReferentials,\r\n secondReferentials: filter.secondReferentials,\r\n thirdReferentials: filter.thirdReferentials,\r\n search\r\n };\r\n const url = `/legal-entities/${legalEntityId}/users/search?${query}`;\r\n return http.profilesApiPost(url, body)\r\n .then((searchResult: ISearch) => {\r\n dispatch({\r\n type: actionTypes.GET_SEARCH_RESULT,\r\n searchResult: {\r\n items: searchResult.items,\r\n facets: searchResult.facets,\r\n count: searchResult.count\r\n }\r\n });\r\n return searchResult;\r\n }).catch(err => {\r\n throw new Error(err);\r\n });\r\n});\r\n\r\nexport const clearSearchResult = () => ({\r\n type: actionTypes.CLEAR_SEARCH_RESULT\r\n});\r\n","import queryString from 'query-string-for-all';\r\n\r\nimport { getSogePdfOrWordFullUrl } from '../tools/legalDocTools/sogeTools';\r\nimport * as ISoge from '../entities/ISoge';\r\nimport { IDocumentationStyle, ISGStylesRoot } from '../entities/LegalDoc/ISogeStyles';\r\nimport { ISogeVersionDetails, IIDocumentVersionPublishResult } from '../entities/LegalDoc/INormativeDocumentationVersion';\r\nimport { ELcid } from '../entities/ILanguage';\r\nimport * as actionTypes from './actionTypes/sogeTypes';\r\nimport { IState } from '../reducers';\r\nimport { action, downloadFile } from '../tools/reduxTools';\r\nimport { getReferentialIdentities, getFullReferentialElementsByIdentityId } from './adminActions';\r\nimport { INormReferential, IFullReferentialElement } from '../entities/IAdmin';\r\nimport { IFacetsSearchResponse } from '../entities/IEntity';\r\nimport { ISearchResponse } from '../entities/IGlobal';\r\nimport { ETrackingType } from '../entities/IAnalytics';\r\nimport { Http } from '../tools/http';\r\nimport { ISingleArticleElem } from '../entities/AssetManagement/actions';\r\n\r\nexport const setSogeDocumentationLanguage = (lcid: ELcid) => ({\r\n type: actionTypes.SOGE_SET_DOC_LANG,\r\n lcid\r\n});\r\n\r\nexport const getTableOfContent = (documentationId: string, versionId?: string, lcid: ELcid = ELcid.En) => action>(async (dispatch, getState, http) => {\r\n const url = !!versionId\r\n ? `/normative-documentations/${documentationId}/versions/${versionId}/table-of-contents`\r\n : `/normative-documentations/${documentationId}/table-of-contents`;\r\n\r\n dispatch({\r\n type: actionTypes.SOGE_SET_LOADING_NEW_DATA\r\n });\r\n const response: ISoge.ITableOfContentsData = await http.sogeApiGet(`${url}?lcid=${lcid}`)\r\n .then((tableOfContent: ISoge.ITableOfContentsData) => {\r\n dispatch({\r\n type: actionTypes.SOGE_SET_TABLE_OF_CONTENTS,\r\n tableOfContent,\r\n currentUniqueVersionId: tableOfContent.id\r\n });\r\n return tableOfContent;\r\n });\r\n\r\n return response;\r\n});\r\n\r\nexport const reorderSingleElement = (documentationId: string, versionId: string, parentUniqueLevel: string, itemId: string, body: ISoge.IReorderElementsPayload) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/${documentationId}/versions/${versionId}/structure-levels/${parentUniqueLevel}/children/${itemId}/change-order`, body);\r\n});\r\n\r\nexport const getStructure = (documentationId: string, levelId: string, versionId: string, lcid: ELcid = ELcid.En) => action, IState>(async (dispatch, getState, http) => {\r\n const structureLevel = await http.sogeApiGet(`/normative-documentations/${documentationId}/versions/${versionId}/structure-levels/${levelId}/contents?lcid=${lcid}`);\r\n return structureLevel;\r\n});\r\n\r\nexport const getCodeArchives = (documentationId: string, lcid: ELcid = ELcid.En) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${documentationId}/archives?lcid=${lcid}`);\r\n});\r\n\r\nexport const getArticlesSearchResults = (body: ISoge.IArticlesSearchRequest, versionId: string, normativeDocumentationId: string, lcid: ELcid = ELcid.En, page: number = 0, size = 20) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid, page, size });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/search?${queryParams}`, body);\r\n});\r\n\r\nexport const getArticlesWithFilters = (normativeDocumentationId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/document-elements?bookType=LpaContract`, []);\r\n});\r\n\r\nexport const getNormativeDocumentations = (organizationId: string) => action>(async (dispatch, getState, http) => {\r\n const response = await http.sogeApiGet(`/organizations/${organizationId}/normative-documentations`);\r\n const normativeDocumentation = response?.[0];\r\n const documentationId = normativeDocumentation?.id;\r\n const normativeDocumentationName = normativeDocumentation?.name;\r\n\r\n documentationId && dispatch({\r\n type: actionTypes.SOGE_SET_NORMATIVE_DOC_ID,\r\n documentationId,\r\n normativeDocumentationName\r\n });\r\n\r\n return documentationId;\r\n});\r\n\r\nexport const getSogeArticle = (versionId: string, documentationId: string, articleId: string, lcid: ELcid = ELcid.En) => action, IState>(async (dispatch, getState, http) => {\r\n const response: ISoge.ISogeArticle = await http.sogeApiGet(`/normative-documentations/${documentationId}/versions/${versionId}/articles/${articleId}?lcid=${lcid}`);\r\n return response;\r\n});\r\n\r\nexport const getSogeTableOfContentSearchResult = (documentationId: string, versionId?: string, lcid: ELcid = ELcid.En, searchPhrase?: string) => action>(async (dispatch, getState, http) => {\r\n const response: ISoge.ITableOfContentsData = await http.sogeApiGet(`/normative-documentations/${documentationId}/versions/${versionId}/search-table-of-contents?lcid=${lcid}&searchPhrase=${searchPhrase}`);\r\n return response;\r\n});\r\n\r\nexport const getDocumentationStyles = (normativeDocumentationId: string, uniqueVersionId: string) => action>(async (dispatch, getState, http) => {\r\n const { soge } = getState();\r\n if (!soge.sgStylesContainer?.[uniqueVersionId]?.styles) {\r\n const response = (await http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${uniqueVersionId}/styles`) || []) as IDocumentationStyle[];\r\n const styles = response || [];\r\n\r\n dispatch({\r\n type: actionTypes.SOGE_SET_STYLES,\r\n styles,\r\n stylesVersionId: uniqueVersionId\r\n });\r\n }\r\n dispatch({\r\n type: actionTypes.SOGE_SET_CURRENT_UNIQUE_VERSION_ID,\r\n currentUniqueVersionId: uniqueVersionId\r\n });\r\n});\r\n\r\nexport const setUniqueVersionId = (uniqueVersionId: string) => ({\r\n type: actionTypes.SOGE_SET_CURRENT_UNIQUE_VERSION_ID,\r\n currentUniqueVersionId: uniqueVersionId\r\n});\r\n\r\nexport const getVersions = (documentationId: string, lcid?: ELcid) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${documentationId}/versions${lcid ? `?lcid=${lcid}` : ''}`)\r\n .then((versions: ISoge.ITableOfContentsVersion[]) => {\r\n dispatch({\r\n type: actionTypes.SOGE_SET_STYLES_CONTAINER,\r\n versionIds: versions?.map(version => ({\r\n versionId: version.versionId,\r\n uniqueVersionId: version.id,\r\n status: version.documentVersion.status\r\n })),\r\n lcid: lcid || ELcid.En\r\n });\r\n dispatch({\r\n type: actionTypes.SOGE_SET_ALL_VERSIONS,\r\n allVersions: versions\r\n });\r\n return versions;\r\n });\r\n});\r\n\r\nexport const searchVersions = (documentationId: string, versionStatus: ISoge.EVersionFilterStatus, query = '', page = 0, size = 25) => action>>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${documentationId}/versions/search`, {\r\n query,\r\n page,\r\n size,\r\n versionStatus\r\n });\r\n});\r\n\r\nexport const clearVersionCache = (documentationId: string, versionId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiDelete(`/normative-documentations/${documentationId}/versions/${versionId}/cache`);\r\n});\r\n\r\nexport const getBookWithBaseArticles = (documentationId: string, uniqueVersionId: string, uniqueLevelId: string, lcid: ELcid = ELcid.En) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${documentationId}/versions/${uniqueVersionId}/structure-levels/${uniqueLevelId}/with-base-articles?lcid=${lcid}`);\r\n});\r\n\r\nexport const getFlattenTableOfContent = (documentationId: string, uniqueVersionId: string, lcid: ELcid = ELcid.En) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${documentationId}/versions/${uniqueVersionId}/table-of-contents/flat?lcid=${lcid}`);\r\n});\r\n\r\nexport const getBranches = (normativeDocumentationId: string, uniqueVersionId: string, branchType: ISoge.EBranchFilterTypes = ISoge.EBranchFilterTypes.None, query?: string, page?: number, size?: number) => action>>(async (dispatch, getState, http) => {\r\n const { userLanguage: lcid } = getState().language;\r\n const queryParams = queryString.stringify({ lcid });\r\n\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${uniqueVersionId}/branches/search?${queryParams}`, {\r\n branchType,\r\n size: size || 50,\r\n page,\r\n query\r\n });\r\n});\r\n\r\nexport const getBranchWithoutContent = (normativeDocumentationId: string, versionId: string, branchId: string) => action>(async (dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}`);\r\n});\r\n\r\nexport const getBranchesForElement = (normativeDocumentationId: string, elementCommonId: string, versionId?: string) => action>((dispatch, getState, http) => {\r\n const query = versionId && queryString.stringify({ versionId });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/branches/document-elements/${elementCommonId}?${query || ''}`);\r\n});\r\n\r\nexport const getRelatedBranches = (normativeDocumentationId: string, versionId: string, branchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/related-branches`);\r\n});\r\n\r\nexport const getVersionOverview = (normativeDocumentationId: string, uniqueVersionId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${uniqueVersionId}/overview?${query}`);\r\n});\r\n\r\nexport const getVersionBranchesStatus = (normativeDocumentationId: string, versionId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/statused`);\r\n});\r\n\r\nexport const getBranchVersionContent = (normativeDocumentationId: string, versionId: string, elementCommonId: string, lcid = ELcid.En) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/document-elements/${elementCommonId}/contents?lcid=${lcid}`);\r\n});\r\n\r\nexport const getBranchContent = (normativeDocumentationId: string, versionId: string, elementCommonId: string, branchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/document-elements/${elementCommonId}/contents`);\r\n});\r\n\r\nexport const getOnlyBranchContent = (normativeDocumentationId: string, versionId: string, elementCommonId: string, branchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/document-elements/${elementCommonId}/contents-structure`);\r\n});\r\n\r\nexport const getArticleDetails = (normativeDocumentationId: string, versionId: string, branchId: string, articleCommonId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/articles/${articleCommonId}/details`);\r\n});\r\n\r\nexport const getArticleVersions = (normativeDocumentationId: string, versionId: string, articleCommonId: string, lcid: ELcid = ELcid.En) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/articles/${articleCommonId}/versions?${query}`);\r\n});\r\n\r\nexport const updateArticleDetails = (normativeDocumentationId: string, versionId: string, branchId: string, articleCommonId: string, articleDetails: ISoge.IArticleDetails, lcid = ELcid.En) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/articles/${articleCommonId}/details?${query}`, articleDetails);\r\n});\r\n\r\nexport const getStructureLevelDetails = (normativeDocumentationId: string, versionId: string, branchId: string, commonLevelId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}/details`);\r\n});\r\n\r\nexport const updateStructureLevelDetails = (normativeDocumentationId: string, versionId: string, branchId: string, commonLevelId: string, levelDetails: ISoge.ILevelDetails) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}/details`, levelDetails);\r\n});\r\n\r\nexport const getArticleMetadataSuggestions = (normativeDocumentationId: string, versionId: string, branchId: string, articleId: string, sectionName: string, query: string) => action>>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/elements/${articleId}/metadata/${sectionName}`, {\r\n query,\r\n maxItems: 10\r\n });\r\n});\r\n\r\nexport const getVersionDetails = (normativeDocumentationId: string, versionId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/details`).then((versionDetails: ISogeVersionDetails) => {\r\n versionDetails && dispatch({\r\n type: actionTypes.SOGE_GET_VERSION_DETAILS,\r\n versionDetails,\r\n versionId\r\n });\r\n\r\n return versionDetails;\r\n });\r\n});\r\n\r\nexport const getApprovalRequests = (normativeDocumentationId: string, versionId: string, filter?: ISoge.EApprovalRequestFilterTypes, query?: string, page?: number, size?: number) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({\r\n query,\r\n filter,\r\n page,\r\n size: 1000\r\n });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/search?${queryParams}`);\r\n});\r\n\r\nexport const editNorm = (normativeDocumentationId: string, name: string) => action>(async (dispatch, getState, http) => {\r\n await http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}`, { name });\r\n dispatch({ type: actionTypes.SOGE_SET_NORMATIVE_DOC_NAME, name });\r\n});\r\n\r\nexport const getDocumentElements = (normativeDocumentationId: string, versionId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/document-elements?lcid=${lcid}`);\r\n});\r\n\r\nexport const searchDocumentElements = (normativeDocumentationId: string, versionId: string, query: string, lcid: ELcid, page = 0, size = 25) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({\r\n query,\r\n lcid,\r\n page,\r\n size\r\n });\r\n\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/document-elements/search?${queryParams}`);\r\n});\r\n\r\nexport const createVersion = (normativeDocumentationId: string, name: string, referenceVersionId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions`, {\r\n name,\r\n referenceVersionId\r\n });\r\n});\r\n\r\nexport const getAmendmentRequest = (normativeDocumentationId: string, versionId: string, elementCommonId: string, amendmentId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ elementCommonId, amendmentId, lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments?${query}`);\r\n});\r\n\r\nexport const getAmendmentById = (normativeDocumentationId: string, amendmentId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/requests/amendments/${amendmentId}`);\r\n});\r\n\r\nexport const createAmendmentRequest = (normativeDocumentationId: string, versionId: string, file: File, elementCommonId: string, structureLevelRootCommonLevelId: string, documentElementType: ISoge.EDocumentElementType, lcid: ELcid, branchId: string) => action>((dispatch, getState, http) => {\r\n const form = new FormData();\r\n form.append('fileStream', file);\r\n const query = queryString.stringify({ elementCommonId, structureLevelRootCommonLevelId, documentElementType, lcid, branchId });\r\n\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/documents/word-document?${query}`, form);\r\n});\r\n\r\nexport const compareFeatureToMainBranch = (normativeDocumentationId: string, versionId: string, elementCommonId: string, targetVersionId: string, lcid?: ELcid, targetLcid?: ELcid, commonItemId?: string) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({\r\n lcid,\r\n targetLcid,\r\n commonItemId\r\n });\r\n\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/document-elements/${elementCommonId}/compare-feature/${targetVersionId}?${query}`);\r\n});\r\n\r\nexport const compareMainToMainBranch = (normativeDocumentationId: string, versionId: string, sourceRootCommonId: string, targetVersionId: string, targetRootCommonId: string, lcid: ELcid, targetLcid: ELcid, commonItemId: string) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({\r\n targetRootCommonId,\r\n lcid,\r\n targetLcid,\r\n commonItemId\r\n });\r\n\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/document-elements/${sourceRootCommonId}/compare-main/${targetVersionId}?${query}`);\r\n});\r\n\r\nexport const compareBetweenAnyTwoBranches = (normativeDocumentationId: string, versionId: string, elementCommonId: string, lhsFeatureBranchId: string, rhsFeatureBranchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/document-elements/${elementCommonId}/compare/lhsFeatureBranchId/${lhsFeatureBranchId}/rhsFeatureBranchId/${rhsFeatureBranchId}`);\r\n});\r\n\r\nexport const compareBetweenFeatureBranches = (normativeDocumentationId: string, versionId: string, branchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/comparable-branches`);\r\n});\r\n\r\nexport const getAmendmentReport = (normativeDocumentationId: string, versionId: string, amendmentId: string, documentId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/${amendmentId}/documents/${documentId}/report`);\r\n});\r\n\r\nexport const getAmendmentContent = (normativeDocumentationId: string, versionId: string, amendmentId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/${amendmentId}/contents?${query}`);\r\n});\r\n\r\nexport const downloadWordDocument = (normativeDocumentationId: string, versionId: string, elementId: string, structureLevelRootCommonLevelId: string, lcid: ELcid, branchId: string, fileName: string, sgContext: 'consultation' | 'management', versionName: string) => action, IState>((dispatch, getState) => {\r\n const { context, config, analytics } = getState();\r\n\r\n const event: [string, string, string, number] = ['Word document download', `Documentation ${sgContext}`, `${fileName} ${versionName || ''}`, 1];\r\n analytics.tracker[ETrackingType.Smh]?.trackEvent(...event);\r\n analytics.tracker[ETrackingType.Sg]?.trackEvent(...event);\r\n\r\n const documentUrl = getSogePdfOrWordFullUrl(\r\n config.legalDocApiUrl,\r\n normativeDocumentationId,\r\n versionId,\r\n elementId,\r\n structureLevelRootCommonLevelId,\r\n lcid,\r\n branchId,\r\n 'word'\r\n );\r\n\r\n return downloadFile(documentUrl, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const downloadPdfDocument = (normativeDocumentationId: string, versionId: string, elementId: string, structureLevelRootCommonLevelId: string, lcid: ELcid, branchId: string, fileName: string, sgContext: 'consultation' | 'management', versionName: string) => action, IState>((dispatch, getState) => {\r\n const { context, config, analytics } = getState();\r\n\r\n const event: [string, string, string, number] = ['Pdf document download', `Documentation ${sgContext}`, `${fileName} ${versionName || ''}`, 1];\r\n analytics.tracker[ETrackingType.Smh]?.trackEvent(...event);\r\n analytics.tracker[ETrackingType.Sg]?.trackEvent(...event);\r\n\r\n const documentUrl = getSogePdfOrWordFullUrl(\r\n config.legalDocApiUrl,\r\n normativeDocumentationId,\r\n versionId,\r\n elementId,\r\n structureLevelRootCommonLevelId,\r\n lcid,\r\n branchId,\r\n 'pdf'\r\n );\r\n\r\n return downloadFile(documentUrl, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const downloadUploadedAmendment = (normativeDocumentationId: string, versionId: string, amendmentId: string, documentId: string, fileName: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/${amendmentId}/documents/${documentId}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const getVersionDatagridSettings = (normativeDocumentationId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/datagrid/settings?${query}`);\r\n});\r\n\r\nexport const getBranchDatagridSettings = (normativeDocumentationId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/branches/datagrid/settings?${query}`);\r\n});\r\n\r\nexport const searchDocumentsElements = (normativeDocumentationId: string, versionId: string, page: number, query: string, body: { [key: string]: { name: string, id: string }[] }, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n let result = {};\r\n for (let key in body) {\r\n if (body[key].length) {\r\n result[key] = body[key];\r\n }\r\n }\r\n const queryParams = queryString.stringify({\r\n size: 1000,\r\n page,\r\n query,\r\n lcid\r\n });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/document-elements/search-extended?${queryParams}`, result);\r\n});\r\n\r\nexport const branchDatagridSearch = (normativeDocumentationId: string, versionId: string, page: number, query: string, filters: { [key: string]: { name: string, id: string }[] }) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/search-extended`, {\r\n size: 1000,\r\n page,\r\n query,\r\n filters: {}\r\n });\r\n});\r\n\r\nexport const setVersionDatagridSetting = (normativeDocumentationId: string, lcid: ELcid, body: ISoge.DataGridSettings) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/datagrid/settings?${query}`, body);\r\n});\r\n\r\nexport const setBranchDatagridSettings = (normativeDocumentationId: string, lcid: ELcid, body: ISoge.DataGridSettings) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/branches/datagrid/settings?${query}`, body);\r\n});\r\n\r\nexport const getBranchesForAmendment = (normativeDocumentationId: string, versionId: string, elementCommonId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/document-elements/${elementCommonId}?${query}`);\r\n});\r\n\r\nexport const getCheckStructureBetweenLanguages = (normativeDocumentationId: string, versionId: string, elementCommonId: string, lhsFeatureBranchId: string, rhsFeatureBranchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/document-elements/${elementCommonId}/validate/lhsFeatureBranchId/${lhsFeatureBranchId}/rhsFeatureBranchId/${rhsFeatureBranchId}`);\r\n});\r\n\r\nexport const createBranch = (normativeDocumentationId: string, versionId: string, name: string, description: string, relatedItemCrossId: string, relatedItemType: ISoge.EDocumentElementType, lcid: ELcid, structureLevelRootCommonLevelId: string) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches?${query}`, {\r\n name,\r\n description,\r\n relatedItemCrossId,\r\n relatedItemType,\r\n structureLevelRootCommonLevelId\r\n });\r\n});\r\n\r\nexport const commitAmendment = (normativeDocumentationId: string, versionId: string, amendmentId: string, amendmentCommitId: string, branchId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ branchId, lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/${amendmentId}/commits/${amendmentCommitId}?${query}`);\r\n});\r\n\r\nexport const searchAmendments = (normativeDocumentationId: string, versionId: string, query?: string, page?: number, size?: number, payload?: ISoge.IAmendmentSearchPayload) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ query, size: size || 60, page });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/search?${queryParams}`, payload || {});\r\n});\r\n\r\nexport const updateBranchDescription = (normativeDocumentationId: string, versionId: string, branchId: string, lcid: ELcid, description: string, isMinorChange: boolean) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}?${query}`, {\r\n description,\r\n isMinorChange\r\n });\r\n});\r\n\r\nexport const updateAmendmentDescription = (normativeDocumentationId: string, versionId: string, amendmentId: string, lcid: ELcid, description: string) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/amendments/${amendmentId}?${query}`, {\r\n description\r\n });\r\n});\r\n\r\nexport const createStructureLevel = (normativeDocumentationId: string, versionId: string, branchId: string, parentCommonLevelId: string, lcid: ELcid, newStructure: ISoge.ICreateStructure) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${parentCommonLevelId}?${query}`, newStructure);\r\n});\r\n\r\nexport const createArticle = (normativeDocumentationId: string, versionId: string, branchId: string, parentCommonLevelId: string, lcid: ELcid, newArticle: ISoge.IArticleAdd) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${parentCommonLevelId}/articles?${query}`, newArticle);\r\n});\r\n\r\nexport const deleteArticle = (normativeDocumentationId: string, versionId: string, branchId: string, articleId: string, lcid: ELcid, placeholder: boolean) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid, placeholder });\r\n return http.sogeApiDelete(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/articles/${articleId}?${query}`);\r\n});\r\n\r\nexport const downloadArticleAttachment = (normativeDocumentationId: string, versionId: string, articleId: string, articleVersionId: string, fileId: string, extension: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n const fileName = extension ? `Attachment.${extension}` : 'Attachment';\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/articles/${articleId}/versions/${articleVersionId}/files/${fileId}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const deleteLevel = (normativeDocumentationId: string, versionId: string, branchId: string, commonLevelId: string, lcid: ELcid, placeholder: boolean) => action>((dispatch, getState, http) => {\r\n const query = queryString.stringify({ lcid, placeholder });\r\n return http.sogeApiDelete(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}?${query}`);\r\n});\r\n\r\nexport const renameStructureLevel = (normativeDocumentationId: string, versionId: string, branchId: string, commonLevelId: string, renameStructure: ISoge.ICreateStructure & { lcid: ELcid; id: string; }) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}`, renameStructure);\r\n});\r\n\r\nexport const renameStructureArticle = (normativeDocumentationId: string, versionId: string, branchId: string, lcid: ELcid, article: ISoge.IRenameArticle) => action>((dispatch, getState, http) => {\r\n const { commonArticleId, newName, ignoreArticleNumberDupplicatedError } = article;\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/articles/${commonArticleId}/rename?lcid=${lcid}`, {\r\n newName,\r\n ignoreArticleNumberDupplicatedError\r\n });\r\n});\r\n\r\nexport const changeElementOrder = (normativeDocumentationId: string, versionId: string, branchId: string, parentCommonLevelId: string, childCommonId: string, previousElementCommonId: string, type: ISoge.EStructureLevelType, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${parentCommonLevelId}/children/${childCommonId}/change-order`, {\r\n previousElementCommonId,\r\n type,\r\n lcid\r\n });\r\n});\r\n\r\nexport const moveStructureElement = (normativeDocumentationId: string, versionId: string, branchId: string, movedItemId: string, body: ISoge.IMoveElementPayload) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/children/${movedItemId}/move`, body);\r\n});\r\n\r\nexport const getMoveStructureLevelSummary = (normativeDocumentationId: string, versionId: string, branchId: string, movedItemId: string, body: ISoge.IMoveElementPayload) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/children/${movedItemId}/move/auto-numbering`, body);\r\n});\r\n\r\nexport const moveMultipleElements = (normativeDocumentationId: string, versionId: string, branchId: string, body: ISoge.IMoveMultipleElementsPayload) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/move/multiple`, body);\r\n});\r\n\r\nexport const getBranchReferenceTextValidators = (normativeDocumentationId: string, versionId: string, branchId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/document-elements/management-details/validators`, {\r\n lcid\r\n });\r\n});\r\n\r\nexport const createApproval = (normativeDocumentationId: string, versionId: string, approval: ISoge.ICreateApproval) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals`, {\r\n ...approval\r\n });\r\n});\r\n\r\nexport const getApprovalRequest = (normativeDocumentationId: string, versionId: string, approvalRequestId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}`);\r\n});\r\n\r\nexport const getAllApprovals = (normativeDocumentationId: string, versionId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/search`);\r\n});\r\n\r\nexport const editApprover = (normativeDocumentationId: string, versionId: string, approvalRequestId: string, approverId: string, isMandatory: boolean) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/approvers/${approverId}`, {\r\n isMandatory\r\n });\r\n});\r\n\r\nexport const deleteApprover = (normativeDocumentationId: string, versionId: string, approvalRequestId: string, approverId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiDelete(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/approvers/${approverId}`);\r\n});\r\n\r\nexport const addApprover = (normativeDocumentationId: string, versionId: string, approvalRequestId: string, newApprover: ISoge.IIValidatorPayload) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/approvers`, {\r\n ...newApprover\r\n });\r\n});\r\n\r\nexport const changeStatusSelectedApprover = (normativeDocumentationId: string, versionId: string, approvalRequestId: string, approverId: string, body: { status: number }) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/approvers/${approverId}/change-status`, body);\r\n});\r\n\r\nexport const completeApproval = (normativeDocumentationId: string, versionId: string, approvalRequestId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/complete`);\r\n});\r\n\r\nexport const abandonBranch = (normativeDocumentationId: string, versionId: string, branchId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/abandon?${queryParams}`);\r\n});\r\n\r\nexport const abandonApproval = (normativeDocumentationId: string, versionId: string, approvalId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalId}/abandon`);\r\n});\r\n\r\nexport const uploadApproverAttachment = (normativeDocumentationId: string, versionId: string, approvalRequestId: string, approverId: string, files: File[]) => action>((dispatch, getState, http) => {\r\n const form = new FormData();\r\n files.forEach(file => {\r\n form.append('files', file);\r\n });\r\n\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/approvers/${approverId}/attachments`, form);\r\n});\r\n\r\nexport interface IUploadWordBookData {\r\n bookTitle: string;\r\n file?: File;\r\n preamble?: string;\r\n colorBlockHex?: string\r\n}\r\n\r\nexport const uploadWordBook = (normativeDocumentationId: string, versionId: string, lcid: ELcid, data: IUploadWordBookData, asDefaultType?: boolean) => action>(async (dispatch, getState, http) => {\r\n const { context, config } = getState();\r\n const form = new FormData();\r\n\r\n if (data.file) {\r\n form.append('fileStream', data.file);\r\n }\r\n\r\n form.append('bookTitle', data.bookTitle);\r\n form.append('preamble', data.preamble || '');\r\n form.append('colorBlockHex', data.colorBlockHex || '');\r\n\r\n return fetch(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/add${asDefaultType ? '/parse' : ''}?lcid=${lcid}`, {\r\n body: form,\r\n method: asDefaultType ? 'PUT' : 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey\r\n\r\n }\r\n }).then(res => res.json()).then(async (response) => {\r\n await dispatch(editBook(normativeDocumentationId, versionId, data.bookTitle, response.structureLevelRootCommonId, data.preamble || '', data.colorBlockHex || '', lcid, new Date().toUTCString()));\r\n });\r\n});\r\n\r\nexport const uploadStaticBook = (normativeDocumentationId: string, versionId: string, structureLevelRootCommonLevelId: string, lcid: ELcid, file: File) => action>(async (dispatch, getState, http) => {\r\n const { context, config } = getState();\r\n const queryParams = queryString.stringify({ structureLevelRootCommonLevelId, lcid });\r\n const form = new FormData();\r\n form.append('fileStream', file);\r\n\r\n return fetch(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/contents/pdf-document/static?${queryParams}`, {\r\n body: form,\r\n method: 'PUT',\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey\r\n }\r\n }).then(async (response) => {\r\n if (response.ok) {\r\n return response.blob();\r\n } else {\r\n return response.json();\r\n }\r\n });\r\n});\r\n\r\nexport const uploadBookImage = (normativeDocumentationId: string, versionId: string, structureLevelRootId: string, file: File) => action>(async (dispatch, getState, http) => {\r\n const { context, config } = getState();\r\n const form = new FormData();\r\n form.append('image', file);\r\n\r\n return fetch(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/structure-levels/${structureLevelRootId}/image`, {\r\n method: 'PUT',\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey\r\n },\r\n body: form\r\n }).then(async (response) => {\r\n if (response.ok) {\r\n return response.blob();\r\n } else {\r\n return response.json();\r\n }\r\n });\r\n});\r\n\r\nexport const downloadApproverAttachment = (normativeDocumentationId: string, versionId: string, approvalRequestId: string, approverId: string, attachmentId: string, fileName: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/requests/approvals/${approvalRequestId}/approvers/${approverId}/attachments/${attachmentId}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const publishDocumentVersion = (normativeDocumentationId: string, versionId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}`);\r\n});\r\n\r\nexport const getDocumentationVersionStatistics = (normativeDocumentationId: string, versionId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/statistics?${queryParams}`);\r\n});\r\n\r\nexport const getSgGlobalReferentials = () => action>(async dispatch => {\r\n const identities: INormReferential[] = (await dispatch(getReferentialIdentities('NormativeDocumentation'))) || [];\r\n const identitiesIds = identities.map(identity => identity.id);\r\n const identitiesItems: ISearchResponse[] = (await Promise.all(identitiesIds.map(id => dispatch(getFullReferentialElementsByIdentityId(id))))) || [];\r\n let allItemsById = {};\r\n\r\n const identitiesById = identities.reduce((identitiesObject, identity, index) => {\r\n const items = (identitiesItems[index]?.items || []);\r\n const itemById = items.reduce((itemsObject, item) => ({\r\n ...itemsObject,\r\n [item.id]: item\r\n }), {});\r\n\r\n allItemsById = { ...allItemsById, ...itemById };\r\n\r\n return {\r\n ...identitiesObject,\r\n [identity.id]: {\r\n ...identity,\r\n itemsIds: items.map(item => item.id),\r\n itemById\r\n }\r\n };\r\n }, {});\r\n\r\n const identitiesByType = identities.reduce((identitiesObject, identity, index) => {\r\n return {\r\n ...identitiesObject,\r\n [identity.referentialType]: [...(identitiesObject[identity.referentialType] || []), identity]\r\n };\r\n }, {});\r\n\r\n const referentialState: ISoge.IReferentialState = {\r\n identitiesIds,\r\n identitiesById,\r\n identitiesByType,\r\n allItemsById,\r\n loaded: true\r\n };\r\n\r\n dispatch({\r\n type: actionTypes.SOGE_SET_REFERENTIALS,\r\n normReferentials: referentialState\r\n });\r\n\r\n return referentialState;\r\n});\r\n\r\nexport const setCurrentVersionRealVersionId = (currentRealVersionId: string) => ({\r\n type: actionTypes.SET_CURRENT_REAL_VERSION_ID,\r\n currentRealVersionId\r\n});\r\n\r\nexport const reactivateBranch = (normativeDocumentationId: string, versionId: string, branchId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/reactivate?${queryParams}`);\r\n});\r\n\r\nexport const getSupportedStructureConfig = (normativeDocumentationId: string, versionId: string, branchId: string, commonLevelId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}/supported-configuration?${queryParams}`);\r\n});\r\n\r\nexport const getBooks = (normativeDocumentationId: string, versionId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books?${queryParams}`);\r\n});\r\n\r\nexport const getBooksLanguageAndFormat = (normativeDocumentationId: string, versionId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/with-matches?${queryParams}`);\r\n});\r\n\r\nexport const editBook = (normativeDocumentationId: string, versionId: string, bookTitle: string, rootCommonLevelId: string, preamble: string, colorBlockHex: string, lcid: ELcid, lastUpdateDate?: string) => action>(async (dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/edit?${queryParams}`, {\r\n rootCommonLevelId,\r\n bookTitle,\r\n preamble,\r\n colorBlockHex,\r\n lastUpdateDate\r\n });\r\n});\r\n\r\nexport const createBook = (normativeDocumentationId: string, versionId: string, bookTitle: string, preamble: string, colorBlockHex: string, lcid: ELcid, rootCommonLevelId?: string, bookLetter?: string) => action>(async (dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/add?${queryParams}`, {\r\n bookTitle,\r\n preamble,\r\n colorBlockHex,\r\n rootCommonLevelId,\r\n bookLetter\r\n });\r\n});\r\n\r\nexport const deletebook = (normativeDocumentationId: string, versionId: string, structureLevelRootCommonLevelId: string, lcid: ELcid, structureLevelRootId: string) => action>(async (dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid, structureLevelRootId });\r\n return http.sogeApiDelete(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/${structureLevelRootCommonLevelId}?${queryParams}`);\r\n});\r\n\r\n// orderIndex starts from 1 not 0\r\nexport const reorderBooks = (normativeDocumentationId: string, versionId: string, lcid: ELcid, body: { commonLevelId: string, orderIndex: number }) => action>(async (dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiPut(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/change-order?${queryParams}`, body);\r\n});\r\n\r\nexport const getUnmatchedBooks = (normativeDocumentationId: string, versionId: string, lcid: ELcid) => action>(async (dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/unmatched?${queryParams}`);\r\n});\r\n\r\nexport const getBookTexts = (normativeDocumentationId: string, versionId: string, commonLevelId: string, lcid: ELcid) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/${commonLevelId}/texts?${queryParams}`);\r\n});\r\n\r\nexport const getBookImage = (normativeDocumentationId: string, versionId: string, structureLevelRootId: string, fileId: string) => ((dispatch, getState, http: Http) => {\r\n const { context, config } = getState();\r\n return fetch(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/structure-levels/${structureLevelRootId}/image/${fileId}`, {\r\n headers: {\r\n 'Authorization': `Bearer ${context.token}`,\r\n 'Ocp-Apim-Subscription-Key': config.subKey,\r\n 'Content-Type': 'application/json'\r\n }\r\n }).then(res => {\r\n return res.blob();\r\n });\r\n}) as any;\r\n\r\nexport const getAllTexts = (normativeDocumentationId: string, versionId: string, lcid: ELcid, page: number = 0, size: number = 50) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid, page, size });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/texts?${queryParams}`);\r\n});\r\n\r\nexport const getReferenceTextSearchResults = (normativeDocumentationId: string, versionId: string, lcid: ELcid, query: string = '', filters: ISoge.SearchFiltersType, page: number = 0, size: number = 20) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid, page, size, query });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/texts/search?${queryParams}`, {\r\n query,\r\n filters\r\n });\r\n});\r\n\r\nexport const exportSearchDocument = (normativeDocumentationId: string, versionId: string, lcid: ELcid, query: string = '', filters: ISoge.SearchFiltersType, exportType: number, page: number = 0, size: number = 20) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ exportType, lcid, page, size });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/texts/export?${queryParams}`, {\r\n query,\r\n filters\r\n });\r\n});\r\n\r\nexport const exportArticleSearchDocument = (normativeDocumentationId: string, versionId: string, lcid: ELcid, query: string = '', filters: ISoge.SearchFiltersType, exportType: number, page: number = 0, size: number = 20) => action>>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ exportType, lcid, page, size });\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/articles/export?${queryParams}`, {\r\n query,\r\n filters\r\n });\r\n});\r\n\r\nexport const downloadExportedPdfDocument = (normativeDocumentationId: string, versionId: string, fileName: string, FileId: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n const queryParams = queryString.stringify({ FileId });\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/texts/export/pdf?${queryParams}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const downloadExportedArticlePdfDocument = (normativeDocumentationId: string, versionId: string, fileName: string, FileId: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n const queryParams = queryString.stringify({ FileId });\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/articles/export/pdf?${queryParams}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const downloadExportedWordDocument = (normativeDocumentationId: string, versionId: string, fileName: string, FileId: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n const queryParams = queryString.stringify({ FileId });\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/texts/export/docx?${queryParams}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const downloadExportedArticleWordDocument = (normativeDocumentationId: string, versionId: string, fileName: string, FileId: string) => action, IState>((dispatch, getState) => {\r\n const { context, config } = getState();\r\n const queryParams = queryString.stringify({ FileId });\r\n\r\n return downloadFile(`${config.legalDocApiUrl}/normative-documentations/${normativeDocumentationId}/versions/${versionId}/articles/export/docx?${queryParams}`, fileName, context.token, config.subKey);\r\n});\r\n\r\nexport const getNormsConfiguration = (normativeDocumentationId: string) => action>((dispatch, getState, http) => {\r\n dispatch({ type: actionTypes.NORMS_CONFIG_REQUESTED });\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/configuration`).then((response) => {\r\n dispatch({\r\n type: actionTypes.GET_NORM_CONFIG,\r\n normsConfiguration: response\r\n });\r\n return response;\r\n });\r\n});\r\n\r\nexport const updateMasterReferentials = (id: string, body: string[]) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/referentials/add-parent/${id}`, body);\r\n});\r\n\r\nexport const removeMasterReferentialParent = (id: string, body: string[]) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPut(`/normative-documentations/referentials/remove-parent/${id}`, body);\r\n});\r\n\r\nexport const getNewNumberSuggestion = (\r\n normativeDocumentationId: string,\r\n versionId: string,\r\n branchId: string,\r\n commonLevelId: string,\r\n lcid: ELcid,\r\n headerType?: string,\r\n previousElementCommonId?: string\r\n) => action>((dispatch, getState, http) => {\r\n const queryParams = queryString.stringify({ lcid, previousElementCommonId });\r\n\r\n if (headerType) {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}/numbering/${headerType}?${queryParams}`);\r\n } else {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/structure-levels/${commonLevelId}/articles/create/auto-numbering?${queryParams}`);\r\n }\r\n});\r\n\r\nexport const moveBetweenBooks = (normativeDocumentationId: string, versionId: string, movedItemCommonId: string, payload: ISoge.IMoveBetweenBooksPayload) => action>((dispatch, getState, http) => {\r\n return http.sogeApiPost(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/books/structure-levels/children/${movedItemCommonId}/move`, payload);\r\n});\r\n\r\nexport const getBranchAuditTrail = (normativeDocumentationId: string, versionId: string, branchId: string) => action>((dispatch, getState, http) => {\r\n return http.sogeApiGet(`/normative-documentations/${normativeDocumentationId}/versions/${versionId}/branches/${branchId}/audit-trail`);\r\n});\r\n","import { Dispatch } from 'redux';\r\n\r\nimport { action, IDispatch } from '../tools/reduxTools';\r\nimport { ELcid } from '../entities/ILanguage';\r\nimport { ISingleStakeDefinitionList, ISingleStakeDefinitionGet, IStakeEditingObject, IAttachmentResponse, IStakeDataGridSettings, IStakeDataGridSource } from '../entities/IClusterStake';\r\nimport { IState } from '../reducers';\r\nimport * as actionTypes from './actionTypes/stakesTypes';\r\nimport { IDirectoryContent } from '../entities/IClustersFilesystem';\r\n\r\nexport const getStakeDefinitionList = () => action>((dispatch: Dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/stake-definitions?lcid=${language.userLanguage || ELcid.En}`).then((stakesDefinitionList) => {\r\n dispatch>({\r\n type: actionTypes.GET_STAKES_DEFINISION_LIST,\r\n stakesDefinitionList\r\n });\r\n return stakesDefinitionList;\r\n });\r\n});\r\n\r\nexport const downloadAttachment = (clusterId: string, currentPath: string, name: string) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/documents/metadata`, {\r\n name,\r\n path: currentPath,\r\n includeFiles: true\r\n });\r\n});\r\n\r\nexport const getSingleStakeDefinition = (stakeDefinitionId: string | number) => action, IState>((dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/stake-definitions/${stakeDefinitionId}?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const updateStakeDefinition = (clusterId: string, stakeId: string, body: IStakeEditingObject) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPut(`/clusters/${clusterId}/stakes/${stakeId}`, body);\r\n});\r\n\r\nexport const addStakeToCluster = (clusterId: string, body: IStakeEditingObject) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/clusters/${clusterId}/stakes`, body);\r\n});\r\n\r\nexport const uploadAttachment = (clusterId: string, body: FormData, callback: (e: ProgressEvent) => void) => action>((dispatch, getState, http) => {\r\n return http.clustersApiUpload(`/clusters/${clusterId}/stakes/attachments`, body, callback);\r\n});\r\n\r\nexport const uploadSessionAttachment = (sessionId: string, body: FormData) => action>((dispatch, getState, http) => {\r\n return http.clustersApiPost(`/sessions/${sessionId}/stakes/attachments`, body);\r\n});\r\n\r\nexport const getStakeDataGridSettings = (organization: string, stakeId: string) => action, IState>((dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organization}/stake-datagrid/${stakeId}/settings?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getStakeDataGridSource = (organization: string, stakeId: string) => action, IState>((dispatch, getState, http) => {\r\n const { language } = getState();\r\n return http.clustersApiGet(`/organizations/${organization}/stake-definition/${stakeId}?lcid=${language.userLanguage || ELcid.En}`);\r\n});\r\n\r\nexport const getRightStakesDefinition = (clusterId: string) => action>(async (dispatch, getState, http) => {\r\n return http.clustersApiGet(`/clusters/${clusterId}/stake-definitions`);\r\n});","import { action } from '../tools/reduxTools';\r\nimport { ValidationResponse, IFormData, ITypesWithStatuses, EStatusesTypes, IGetSingleLastValidation } from '../entities/IValidation';\r\nimport { ISnapshotData } from '../entities/IClusters';\r\nimport * as actionTypes from './actionTypes/approvalTypes';\r\nimport { CLEAR_APPROVAL_OVERVIEW_INFORMATIONS } from './actionTypes/approvalTypes';\r\n\r\nexport const changeValidationStatus = (resourceId: string, validationRequestId: string, status: EStatusesTypes, principalId?: string) => action>(async (dispatch, getState, http) => {\r\n return http.validationsApiPatch(`/resources/${resourceId}/validations/${validationRequestId}/setStatus/${status}${principalId ? `?principalId=${principalId}` : ''}`);\r\n});\r\n\r\nexport const getSingleValidation = (resourceId: string, validationRequestId: string, onlyData?: boolean) => action>(async (dispatch, getState, http) => {\r\n return http.validationsApiGet(`/resources/${resourceId}/validations/${validationRequestId}`).then((response: ValidationResponse) => {\r\n if (!onlyData) {\r\n dispatch({\r\n type: actionTypes.SET_APPROVAL_OVERVIEW_INFORMATIONS,\r\n singleValidation: response\r\n });\r\n }\r\n return response;\r\n });\r\n});\r\n\r\nexport const createNewValidation = (body: IFormData) => action>(async (dispatch, getState, http) => {\r\n return http.validationsApiPost(`/validations`, body);\r\n});\r\n\r\nexport const getSnapshotImage = (validationRequestId: string) => action>(async (dispatch, getState, http) => {\r\n return http.validationsApiGet(`/validations/${validationRequestId}/snapshot`);\r\n});\r\n\r\nexport const getApprovalSnapshot = (organizationId: string, clusterId: string) => action>(async (dispatch, getState, http) => {\r\n const body = {\r\n organizationId,\r\n clusterId\r\n };\r\n\r\n return http.validationsApiPost(`/validations/new-snapshot`, body);\r\n});\r\n\r\nexport const getSingleLastValidation = (resourceId: string, type: string) => action>(async (dispatch, getState, http) => {\r\n const body = {\r\n type\r\n };\r\n return http.validationsApiPost(`/resources/${resourceId}/validations?page=0&size=1`, body).then((response: IGetSingleLastValidation) => {\r\n dispatch({\r\n type: actionTypes.SET_APPROVAL_OVERVIEW_INFORMATIONS,\r\n singleValidation: response.items[0]\r\n });\r\n return response;\r\n });\r\n});\r\n\r\nexport const getTypesWithStatuses = () => action>(async (dispatch, getState, http) => {\r\n return http.validationsApiGet(`/validations/typesWithStatuses`);\r\n});\r\n\r\nexport const disableValidationRequest = (resourceId: string, validationRequestId: string) => action>(async (dispatch, getState, http) => {\r\n return http.validationsApiPost(`/resources/${resourceId}/validations/${validationRequestId}/disable`, {});\r\n});\r\n\r\nexport const clearApprovalInfo = () => action(async(dispatch) => {\r\n dispatch({ type: CLEAR_APPROVAL_OVERVIEW_INFORMATIONS});\r\n});","import React, { FC, useCallback, useState } from 'react';\r\nimport styled, { css, keyframes } from 'styled-components';\r\nimport { useDispatch } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\nimport { faTimes } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { cardsShadow } from '../../styleHelpers/mixins/shadow';\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../styleHelpers/fontSizes';\r\nimport { EAlertType, EAlertTypeSchema } from '../../entities/IAlert';\r\nimport { hideAndRemoveAlert } from '../../actions/alertActions';\r\n\r\nconst progressAnimation = keyframes`\r\n from {\r\n width: 100%;\r\n }\r\n\r\n to {\r\n width: 0;\r\n }\r\n`;\r\n\r\nconst Progress = styled.div`\r\n height: 16px;\r\n animation: ${progressAnimation} 10s linear;\r\n animation-fill-mode: forwards;\r\n`;\r\n\r\ninterface IAlertWrapperProps {\r\n alertType: EAlertType;\r\n isVisible: boolean;\r\n isPaused: boolean;\r\n typeSchema: EAlertTypeSchema;\r\n withoutProgress: boolean\r\n}\r\n\r\nconst ContentInner = styled.div`\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 0.5rem;\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n margin-top: 1rem;\r\n width: 100%;\r\n border-radius: 8px;\r\n overflow: hidden;\r\n position: relative;\r\n cursor: pointer;\r\n ${({ withoutProgress }) => !withoutProgress && css`\r\n ${cardsShadow()};\r\n transform: translateX(200%);\r\n transition: transform 600ms;\r\n `}\r\n ${props => props.isVisible && css`\r\n transform: translateX(0);\r\n `}\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n };\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.SUCCESS && css`\r\n ${Progress} {\r\n background: ${colorStack.middleGreen};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n ${Progress} {\r\n background: ${colorStack.middleGreen};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.DONE && css`\r\n ${Progress} {\r\n background: ${colorStack.middlePurple};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n ${Progress} {\r\n background: ${colorStack.middlePurple};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.WARNING && css`\r\n ${Progress} {\r\n background: ${colorStack.middleOrange};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n ${Progress} {\r\n background: ${colorStack.middleOrange};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.ERROR && css`\r\n ${Progress} {\r\n background: ${colorStack.middleRed};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n ${Progress} {\r\n background: ${colorStack.middleRed};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.INFO && css`\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n }\r\n `}\r\n `};\r\n &:hover {\r\n ${Progress} {\r\n animation-play-state: paused;\r\n }\r\n }\r\n ${props => props.isPaused && css`\r\n ${Progress} {\r\n animation-play-state: paused;\r\n }\r\n `}\r\n`;\r\n\r\nconst LinkName = styled.div<{ alertType: EAlertType, typeSchema: EAlertTypeSchema }>`\r\n margin-top: 1rem;\r\n font-weight: 500;\r\n ${fontSizeAndHeight[20]};\r\n color: ${colorStack.middleBlue};\r\n ${({ alertType }) => alertType !== EAlertType.DEFAULT && css`\r\n color: ${colorStack.white};\r\n `};\r\n ${({ typeSchema }) => typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n color: ${colorStack.middleBlue};\r\n `};\r\n`;\r\n\r\nconst Content = styled.div<{ alertType: EAlertType, typeSchema: EAlertTypeSchema }>`\r\n display: flex;\r\n padding-top: 2px;\r\n ${fontSizeAndHeight[16]};\r\n flex-direction: column;\r\n ${({ alertType }) => alertType !== EAlertType.DEFAULT && css`\r\n color: ${colorStack.white};\r\n `};\r\n ${({ typeSchema }) => typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n color: ${colorStack.content};\r\n `};\r\n`;\r\n\r\nconst ProgressWrapper = styled.div`\r\n height: 16px;\r\n background: ${colorStack.ligthGrey};\r\n`;\r\n\r\nconst CloseBtn = styled.button<{ alertType: EAlertType, typeSchema: EAlertTypeSchema }>`\r\n cursor: pointer;\r\n outline: 0;\r\n margin: 0 0 0 auto;\r\n font-size: 16px;\r\n color: ${colorStack.darkGrey};\r\n ${({ alertType, typeSchema }) => alertType !== EAlertType.DEFAULT && css`\r\n color: ${colorStack.white};\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n color: ${colorStack.darkGrey};\r\n `}\r\n `};\r\n`;\r\n\r\nconst Top = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding-top: 3px;\r\n margin-bottom: 1rem;\r\n height: 23px;\r\n width: 100%;\r\n`;\r\n\r\nconst Title = styled.div<{ alertType: EAlertType, typeSchema: EAlertTypeSchema }>`\r\n font-weight: 500;\r\n ${fontSizeAndHeight[16]};\r\n color: ${colorStack.content};\r\n ${({ alertType }) => alertType !== EAlertType.DEFAULT && css`\r\n color: ${colorStack.white};\r\n `};\r\n ${({ typeSchema }) => typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n color: ${colorStack.content};\r\n `};\r\n`;\r\n\r\nconst Left = styled.div<{ alertType: EAlertType, typeSchema: EAlertTypeSchema }>`\r\n width: 24px;\r\n padding: 0;\r\n margin-right: 1rem;\r\n svg {\r\n flex-shrink: 0;\r\n margin-right: 1rem;\r\n font-size: 24px;\r\n color: ${colorStack.white};\r\n ${props => props.alertType === EAlertType.DEFAULT && css`\r\n color: ${colorStack.darkBlue};\r\n `}\r\n ${props => (props.typeSchema === EAlertTypeSchema.SECONDARY && (props.alertType === EAlertType.DEFAULT || props.alertType === EAlertType.INFO)) && css`\r\n color: ${colorStack.darkBlue};\r\n `}\r\n ${props => (props.typeSchema === EAlertTypeSchema.SECONDARY && props.alertType === EAlertType.ERROR) && css`\r\n color: ${colorStack.darkRed};\r\n `}\r\n ${props => (props.typeSchema === EAlertTypeSchema.SECONDARY && props.alertType === EAlertType.SUCCESS) && css`\r\n color: ${colorStack.darkGreen};\r\n `}\r\n ${props => (props.typeSchema === EAlertTypeSchema.SECONDARY && props.alertType === EAlertType.DONE) && css`\r\n color: ${colorStack.darkPurple};\r\n `}\r\n ${props => (props.typeSchema === EAlertTypeSchema.SECONDARY && props.alertType === EAlertType.WARNING) && css`\r\n color: ${colorStack.darkOrange};\r\n `}\r\n }\r\n`;\r\n\r\nconst Right = styled.div<{ fullSize: boolean }>`\r\n width: calc(100% - 1rem - 24px);\r\n ${props => props.fullSize && css`\r\n width: 100%;\r\n `};\r\n`;\r\n\r\nconst MainContent = styled.div<{ typeSchema: EAlertTypeSchema, alertType: EAlertType }>`\r\n display: flex;\r\n padding: 1rem;\r\n align-items: flex-start;\r\n background: ${colorStack.whiteGrey};\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n };\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.SUCCESS && css`\r\n background: ${colorStack.darkGreen};\r\n ${Progress} {\r\n background: ${colorStack.middleGreen};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n background: ${colorStack.lightGreen};\r\n ${Progress} {\r\n background: ${colorStack.middleGreen};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.WARNING && css`\r\n background: ${colorStack.darkOrange};\r\n ${Progress} {\r\n background: ${colorStack.middleOrange};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n background: ${colorStack.lightOrange};\r\n ${Progress} {\r\n background: ${colorStack.middleOrange};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.ERROR && css`\r\n background: ${colorStack.darkRed};\r\n ${Progress} {\r\n background: ${colorStack.middleRed};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n background: ${colorStack.lightRed};\r\n ${Progress} {\r\n background: ${colorStack.middleRed};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.DONE && css`\r\n background: ${colorStack.darkBlue};\r\n ${Progress} {\r\n background: ${colorStack.middlePurple};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n background: ${colorStack.lightPurple};\r\n ${Progress} {\r\n background: ${colorStack.middlePurple};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.INFO && css`\r\n background: ${colorStack.darkBlue};\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n background: ${colorStack.lightBlue};\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n }\r\n `}\r\n `};\r\n ${({ alertType, typeSchema }) => alertType === EAlertType.DEFAULT && css`\r\n background: ${colorStack.whiteGrey};\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n }\r\n ${typeSchema === EAlertTypeSchema.SECONDARY && css`\r\n background: ${colorStack.whiteGrey};\r\n ${Progress} {\r\n background: ${colorStack.middleBlue};\r\n }\r\n `}\r\n `};\r\n`;\r\n\r\ninterface IAlertProps {\r\n type: EAlertType;\r\n typeSchema?: EAlertTypeSchema;\r\n visible: boolean;\r\n title?: string;\r\n alertId: string | number;\r\n linkName?: string;\r\n withoutIco?: boolean;\r\n withoutProgress?: boolean;\r\n children: React.ReactNode;\r\n withoutClose?: boolean;\r\n onLinkClick?();\r\n}\r\n\r\nexport const Alert: FC = props => {\r\n const dispatch = useDispatch();\r\n const [paused, setPaused] = useState(false);\r\n\r\n const hideAlert = useCallback(() => {\r\n dispatch(hideAndRemoveAlert(props.alertId));\r\n }, [props.alertId]);\r\n\r\n const onClick = useCallback(() => {\r\n setPaused(state => !state);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {!props.withoutIco && (\r\n \r\n \r\n \r\n )}\r\n \r\n {props.title &&\r\n \r\n \r\n {props.title}\r\n \r\n {!props.withoutClose &&\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n \r\n \r\n
    \r\n {props.children}\r\n
    \r\n {(!props.withoutClose && !props.title) &&\r\n \r\n \r\n \r\n }\r\n
    \r\n {props.linkName &&\r\n \r\n {props.linkName}\r\n \r\n }\r\n \r\n
    \r\n
    \r\n {!props.withoutProgress &&\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC, useEffect, useState } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { useParams } from 'react-router-dom';\r\nimport { faEye } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { history } from '../../history';\r\nimport { ApprovalContent, Title, DetailsBox, AttachmentBox, LegendContainer } from '../Organization/ClustersV2/ClusterActivity/Components/StyledComponents';\r\nimport { ValidationResponse } from '../../entities/IValidation';\r\nimport { SingleApprover } from '../Organization/ClustersV2/ClusterActivity/Components/SingleApprover';\r\nimport { clearApprovalInfo, getSingleValidation, getSnapshotImage } from '../../actions/validationActions';\r\nimport { Attachment } from '../Common/Attachment/Attachment';\r\nimport { fontSizeAndHeight } from '../../styleHelpers/fontSizes';\r\nimport { getProfileById } from '../../actions/profileActions';\r\nimport { IFullUserProfile } from '../../entities/IProfile';\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { IState } from '../../reducers';\r\nimport { IClusterReducer } from '../../reducers/clustersReducer';\r\nimport { getMessageViewByThreadId, getSingleCluster, getTeamsWithChannels } from '../../actions/clustersActions';\r\nimport { EValidationRequestStatus } from '../../entities/IGlobal';\r\nimport { Meta } from '../Common/Meta/Meta';\r\nimport { Button, EButtonTypeSchema } from '../Common/Buttons/NewButton';\r\nimport { IApprovalReducer } from '../../reducers/approvalReducer';\r\nimport { ESpinnerSize, Spinner } from '../Common/Spinner/Spinner';\r\nimport { GlobalBreadcrumbs } from '../Common/Breadcrumbs/GlobalBreadcrumbs';\r\n\r\ntype GetSingleValidation = ReturnType;\r\ntype GetProfileById = ReturnType;\r\ntype GetSingleCluster = ReturnType;\r\ntype GetSnapshotImage = ReturnType;\r\ntype GetMessageViewByThreadId = ReturnType;\r\ntype GetTeamsWithChannels = ReturnType;\r\ntype ClearApprovalInfo = ReturnType;\r\n\r\nconst OrganizationAndClusterInfo = styled.div`\r\n ${fontSizeAndHeight[16]};\r\n font-weight: 500;\r\n margin-top: 1rem;\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nconst SenderContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nconst MessageTitle = styled.div`\r\n ${fontSizeAndHeight[20]};\r\n font-weight: 500;\r\n border-right: 1px solid ${colorStack.middleGrey};\r\n padding-right: 1rem;\r\n margin-right: 1rem;\r\n`;\r\n\r\nconst Subject = styled.div`\r\n font-weight: 500;\r\n ${fontSizeAndHeight[16]};\r\n margin-bottom: 0.5rem;\r\n`;\r\n\r\nconst Message = styled.div`\r\n ${fontSizeAndHeight[16]};\r\n`;\r\n\r\nconst InfoWrapper = styled.div`\r\n display:flex;\r\n align-items: center;\r\n gap: 5%;\r\n`;\r\n\r\nconst MessageContainer = styled.div`\r\n width: 70%;\r\n word-wrap: break-word;\r\n`;\r\n\r\nconst SnapshotContainer = styled.div`\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n width: 30%;\r\n font-weight: 700;\r\n ${fontSizeAndHeight[16]};\r\n gap: 1rem;\r\n padding: 1rem;\r\n border: 2px solid ${colorStack.middleGrey};\r\n background: ${colorStack.bodyBg};\r\n border-radius: 8px;\r\n`;\r\n\r\ninterface IProps {\r\n clusterId: string;\r\n validationId: string;\r\n showPopup: boolean;\r\n threadId?: string;\r\n setShowPopup(showPopup: boolean);\r\n getTemplatesSettingsAndData?();\r\n setStatus(status: string);\r\n setBussinesId(bussinesId: number);\r\n}\r\n\r\nexport enum EPathType {\r\n ClusterDocument = 'ClusterDocument',\r\n ClusterOverview = 'ClusterOverview',\r\n Documents = 'Documents',\r\n OverviewFiles = 'Overview Files'\r\n}\r\n\r\nexport const ApprovalDetails: FC = props => {\r\n const dispatch = useDispatch();\r\n const { id } = useParams<{ id: string }>();\r\n const { currentClusterData, approvalOverviewInformations } = useSelector(state => ({\r\n ...state.clusters,\r\n ...state.approval\r\n }));\r\n const [singleValidation, setSingleValidation] = useState(undefined);\r\n const [singleValidationReady, setSingleValidationReady] = useState(false);\r\n const [profileInfo, setProfileInfo] = useState(undefined);\r\n const [fetchingProfile, setFetchingProfile] = useState(false);\r\n const [snapshotName, setSnapshotName] = useState(undefined);\r\n const [isSnapshotUnavailable, setIsSnapshotUnavailable] = useState(false);\r\n const InProgres = 'InProgress';\r\n const OverviewVersions = 'Overview Versions';\r\n const ClusterDocument = 'ClusterDocument';\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch(clearApprovalInfo());\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (approvalOverviewInformations?.id && props.validationId) {\r\n setSingleValidation(approvalOverviewInformations);\r\n props.setStatus(approvalOverviewInformations.status);\r\n props.setBussinesId(approvalOverviewInformations?.businessId?.value);\r\n }\r\n }, [approvalOverviewInformations]);\r\n\r\n useEffect(() => {\r\n if (singleValidation) {\r\n setSingleValidationReady(true);\r\n }\r\n if (singleValidation?.status !== EValidationRequestStatus.Active && singleValidation && !snapshotName) {\r\n dispatch(getSnapshotImage(props.validationId)).then(res => {\r\n setSnapshotName(res.name);\r\n setIsSnapshotUnavailable(false);\r\n }).catch(() => setIsSnapshotUnavailable(true));\r\n }\r\n }, [singleValidation]);\r\n\r\n useEffect(() => {\r\n let stateUpdatesAllowed = true;\r\n if (props.validationId) {\r\n dispatch(getSingleValidation(props.clusterId, props.validationId)).then(response => {\r\n if (stateUpdatesAllowed) {\r\n setSingleValidation(response);\r\n props.setStatus(response.status);\r\n props.setBussinesId(response.businessId.value);\r\n }\r\n });\r\n } else if (props.threadId) {\r\n dispatch(getTeamsWithChannels(id)).then(res => {\r\n dispatch(getMessageViewByThreadId(res?.[0].teamChannels?.[0].teamChannelResourceId, res?.[0].teamChannels?.[0].teamId, res?.[0].teamChannels?.[0].id, props.threadId)).then((message) => {\r\n dispatch(getSingleValidation(props.clusterId, message[0].details.validationRequestId)).then(response => {\r\n if (stateUpdatesAllowed) {\r\n setSingleValidation(response);\r\n props.setStatus(response.status);\r\n props.setBussinesId(response.businessId.value);\r\n }\r\n });\r\n });\r\n });\r\n }\r\n return () => {\r\n stateUpdatesAllowed = false;\r\n };\r\n }, [props.validationId]);\r\n\r\n useEffect(() => {\r\n let stateUpdatesAllowed = true;\r\n if (stateUpdatesAllowed && singleValidationReady && singleValidation.requestorId && !fetchingProfile) {\r\n setFetchingProfile(true);\r\n dispatch(getProfileById(singleValidation.requestorId))\r\n .then(res => {\r\n if (stateUpdatesAllowed) {\r\n setProfileInfo(res);\r\n }\r\n })\r\n .finally(() => {\r\n if (stateUpdatesAllowed) {\r\n setFetchingProfile(false);\r\n }\r\n });\r\n }\r\n dispatch(getSingleCluster(props.clusterId));\r\n }, [singleValidationReady]);\r\n\r\n const onViewRequestClick = () => {\r\n props.setShowPopup(false);\r\n history.push(`/orgs/${currentClusterData?.organizationUrlName}/cluster/${props?.clusterId}/overview`);\r\n };\r\n\r\n return (\r\n <>\r\n {(singleValidation && profileInfo && currentClusterData) ? (\r\n <>\r\n {currentClusterData?.organizationName}\r\n }, {\r\n element: {currentClusterData?.presentation.name}\r\n }]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {singleValidation?.subject &&\r\n <>\r\n {singleValidation?.subject}\r\n {singleValidation?.message}\r\n \r\n }\r\n \r\n {singleValidation?.resources[0]?.type !== ClusterDocument ?\r\n <>\r\n {(singleValidation?.status !== EValidationRequestStatus.Active && singleValidation && snapshotName) &&\r\n \r\n
    \r\n \r\n
    \r\n }\r\n {((singleValidation?.status === EValidationRequestStatus.Active || isSnapshotUnavailable) && singleValidation) &&\r\n \r\n \r\n \r\n }\r\n \r\n :\r\n <>\r\n {singleValidation?.resources?.length > 0 && singleValidation?.resources?.filter(item => item.type === EPathType.ClusterDocument)?.length > 0 &&\r\n \r\n {singleValidation?.resources?.map(file =>\r\n \r\n )}\r\n \r\n }\r\n \r\n }\r\n
    \r\n \r\n \r\n <FormattedMessage id=\"validation.label.statusDetails\" />\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {singleValidation?.stages?.map((stage) => (stage?.validators || []).map(validator =>\r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC, useContext, useEffect, useState } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { ApprovalDetails } from './ApprovalDetails';\r\nimport { IApprovalPanelContext } from '../../entities/IValidation';\r\nimport { ICommentMessages, PanelComments } from '../Common/Panel/PanelComments/PanelComments';\r\nimport { IActivitySearchItem } from '../../entities/Activity/global';\r\nimport { getClusterMembersDataManager, getTeamsWithChannels, sendMessage } from '../../actions/clustersActions';\r\nimport { SendMessageBody } from '../../entities/IClusters';\r\nimport { EActivityTypes } from '../../entities/Activity/enums';\r\nimport { getActivityChannelMessages } from '../../actions/activityActions';\r\nimport { filterMentionInputDataDeletedMentions } from '../../tools/RichTextTools';\r\nimport { IData } from '../Common/RichText/NewRT';\r\nimport { IState } from '../../reducers';\r\nimport { IClusterReducer } from '../../reducers/clustersReducer';\r\n\r\ntype GetClusterMembersDataManager = ReturnType;\r\ntype SendMessage = ReturnType;\r\ntype GetActivityChannelMessages = ReturnType;\r\ntype GetTeamsWithChannels = ReturnType;\r\n\r\nconst ApprovalWrapper = styled.div<{showComment: boolean}>`\r\n padding: 1rem 4rem;\r\n height: 100%;\r\n width: 100%;\r\n ${props => props.showComment && css`\r\n width: calc(100% - 342px);\r\n `}\r\n`;\r\nconst Wrapper = styled.div`\r\n height: 100%;\r\n display: flex;\r\n`;\r\n\r\ninterface IProps {\r\n context: React.Context>;\r\n message?: IActivitySearchItem;\r\n}\r\n\r\nexport const ApprovalPanelContent: FC = props => {\r\n const panelContext = useContext>(props.context);\r\n const { currentClusterData } = useSelector(state => ({\r\n ...state.clusters\r\n }));\r\n const { id } = useParams<{ organization: string, id: string }>();\r\n const [messages, setMessages] = useState([]);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n setMessages(props.message?.threadMessages.map(elem => ({\r\n id: elem.channelMessageId,\r\n sender: elem.creator,\r\n channelMessageId: elem.channelMessageId,\r\n threadId: elem.threadId,\r\n createdDate: elem.createdAt,\r\n content: elem.details.content,\r\n mentionedItems: []\r\n })));\r\n }, [props.message?.threadMessages]);\r\n\r\n useEffect(() => {\r\n if (panelContext?.approvalClusterId) {\r\n dispatch(getTeamsWithChannels(panelContext?.approvalClusterId)).then(res => {\r\n dispatch(getActivityChannelMessages(res[0].teamChannels?.[0].teamChannelResourceId, res[0].teamChannels?.[0].teamId, res[0].teamChannels?.[0].id, {validationRequestId: panelContext?.validationId})).then(searchResponse => {\r\n setMessages(searchResponse?.items[0]?.threadMessages?.map(elem => ({\r\n id: elem.channelMessageId,\r\n sender: elem.creator,\r\n channelMessageId: elem.channelMessageId,\r\n threadId: elem.threadId,\r\n createdDate: elem.createdAt,\r\n content: elem.details.content,\r\n mentionedItems: []\r\n })));\r\n });\r\n });\r\n }\r\n panelContext.setShowComments(props.message?.type === EActivityTypes.Text);\r\n }, []);\r\n\r\n const sendMessageHandler = (message: string, mentionInputData: IData[]) => {\r\n if (panelContext?.approvalClusterId) {\r\n return new Promise(resolve => {\r\n dispatch(getTeamsWithChannels(panelContext?.approvalClusterId)).then(res => {\r\n const resourceChildId = res?.[0].teamChannels?.[0].teamChannelResourceId;\r\n const teamId = res?.[0].teamChannels?.[0].teamId;\r\n const teamChanelId = res?.[0].teamChannels?.[0].id;\r\n dispatch(getActivityChannelMessages(resourceChildId, teamId, teamChanelId, {validationRequestId: panelContext?.validationId})).then(searchResponse => {\r\n const datagridBody: SendMessageBody = {\r\n content: message.trim(),\r\n type: 'Text',\r\n tempId: (searchResponse?.items[0]?.threadMessages?.length + 1)?.toString() || '0',\r\n threadId: searchResponse?.items[0]?.threadId\r\n };\r\n dispatch(sendMessage(datagridBody, resourceChildId, teamId, teamChanelId)).then((response) => {\r\n const newElem = {\r\n id: response.id,\r\n sender: response.sender,\r\n createdDate: response.createdDate,\r\n content: response.content,\r\n channelMessageId: response.channelMessageId,\r\n threadId: response.threadId,\r\n mentionedItems: response.mentionedItems\r\n };\r\n setMessages(state => state ? [newElem, ...state] : [newElem]);\r\n resolve(true);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n return new Promise(resolve => {\r\n dispatch(getTeamsWithChannels(id)).then(res => {\r\n const body: SendMessageBody = {\r\n content: message.trim(),\r\n type: 'Text',\r\n tempId: (props.message?.threadMessages?.length + 1)?.toString() || '0',\r\n threadId: props.message?.threadId,\r\n mentionedItems: filterMentionInputDataDeletedMentions(res?.[0].teamChannels?.[0].id, message, mentionInputData)\r\n };\r\n dispatch(sendMessage(body, res?.[0].teamChannels?.[0].teamChannelResourceId, res?.[0].teamChannels?.[0].teamId, res?.[0].teamChannels?.[0].id)).then((response) => {\r\n const newElem = {\r\n id: response.id,\r\n sender: response.sender,\r\n createdDate: response.createdDate,\r\n content: response.content,\r\n channelMessageId: response.channelMessageId,\r\n threadId: response.threadId,\r\n mentionedItems: response.mentionedItems\r\n };\r\n setMessages(state => state ? [newElem, ...state] : [newElem]);\r\n resolve(true);\r\n });\r\n });\r\n });\r\n\r\n };\r\n\r\n const getMentionSuggestions = () => {\r\n return dispatch(getClusterMembersDataManager(id, currentClusterData.presentation.name));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {panelContext?.showComments &&\r\n \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC, useContext } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { faComment, faEllipsisVertical } from '@fortawesome/pro-light-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { Box, BoxTitle, CommentBox, DropDownBox, DropDownTitle, Line } from '../Common/Panel/CommonStyles';\r\nimport { IApprovalPanelContext } from '../../entities/IValidation';\r\nimport { getStatusColor, getStatusText } from '../../tools/statusHelper';\r\nimport { disableValidationRequest } from '../../actions/validationActions';\r\nimport { IClusterReducer } from '../../reducers/clustersReducer';\r\nimport { IState } from '../../reducers';\r\nimport { useDropdown } from '../../tools/hooks';\r\nimport { ContextMenu } from '../Common/ContextMenu/ContextMenu';\r\nimport { EClusterPermissionsBase } from '../../entities/IPermissions';\r\nimport { DotsMenu } from '../AssetsManagement/PanelsComponents/PanelHeader/PanelHeader';\r\nimport { EValidationRequestStatus } from '../../entities/IGlobal';\r\nimport { fontSizeAndHeight } from '../../styleHelpers/fontSizes';\r\n\r\ntype DisableValidationRequest = ReturnType;\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n height: 75px;\r\n background: ${colorStack.whiteGrey};\r\n`;\r\nconst CommentAndStatusWrapper = styled.div`\r\n display: flex;\r\n`;\r\nconst CustomBoxWidth = styled(Box)`\r\n width: auto;\r\n`;\r\n\r\nconst Status = styled.div<{color: string}>`\r\n ${props => props.color && css`\r\n color: ${props.color};\r\n `}\r\n`;\r\n\r\nconst BoxSubtitle = styled.div`\r\n color: ${colorStack.label};\r\n margin-top: 4px;\r\n ${fontSizeAndHeight[16]};\r\n font-style: italic;\r\n`;\r\n\r\ninterface IProps {\r\n context: React.Context>;\r\n}\r\n\r\nexport const ApprovalPanelHeader: FC = props => {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const { clusterPermissions } = useSelector(state => state.clusters);\r\n const [dropdownRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n\r\n const panelContext = useContext>(props.context);\r\n\r\n const onCommentClick = () => {\r\n panelContext.setShowComments(!panelContext.showComments);\r\n };\r\n\r\n const onApprovalDisableClick = () => {\r\n closeDropdown();\r\n dispatch(disableValidationRequest(panelContext.clusterId, panelContext.validationId)).then(() => {\r\n panelContext.setShowPanel(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {panelContext?.bussinesId &&\r\n #{panelContext?.bussinesId}\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {getStatusText(panelContext?.status, intl)}\r\n \r\n {panelContext.showComments !== undefined &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n {(dropdownOpen && panelContext.status !== EValidationRequestStatus.Disabled) &&\r\n ,\r\n action: onApprovalDisableClick,\r\n visible: clusterPermissions?.[EClusterPermissionsBase.ApprovalDisable]\r\n }]}\r\n />\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { FC, useCallback, useState, useContext, useEffect, useRef, MutableRefObject } from 'react';\r\nimport styled from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { faComment, faEllipsisVertical } from '@fortawesome/pro-light-svg-icons';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { colorStack } from '../../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../../styleHelpers/fontSizes';\r\nimport { DropDown } from '../../../Common/DropDown/DropDown';\r\nimport { IValue } from '../../../../entities/IPickers';\r\nimport { AnyPanelContext, EMFN, ETypes, PanelContextStandard } from '../../../../entities/AssetManagement/global';\r\nimport { useAlert, useDropdown } from '../../../../tools/hooks';\r\nimport { ContextMenu } from '../../../Common/ContextMenu/ContextMenu';\r\nimport { addQuestionToFaq, addRightToClauses, deleteClusterQuestion } from '../../../../actions/assetsmanagementActions';\r\nimport { Box, BoxTitle, CommentBox, DropDownBox, Line } from '../../../Common/Panel/CommonStyles';\r\nimport { EAlertType } from '../../../../entities/IAlert';\r\nimport { IState } from '../../../../reducers';\r\nimport { IProfileReducer } from '../../../../reducers/profileReducer';\r\nimport { IClusterReducer } from '../../../../reducers/clustersReducer';\r\nimport { ConfirmPopup } from '../../../Common/ConfirmPopup/ConfirmPopup';\r\nimport { EAcceptanceStatus, StatusMapper } from '../../../../entities/IGlobal';\r\nimport { getStatus } from '../../../../tools/statusHelper';\r\nimport { PanelContextClausier } from '../PanelContent/OrganizationClausierTab';\r\nimport { IAnswerDto, IAnswerDtoClausier, IGetMainQuestion, IQueryDtoClausier, IQuestionDto } from '../../../../entities/AssetManagement/actions';\r\n\r\ntype DeleteClusterQuestion = ReturnType;\r\ntype AddQuestionToFaq = ReturnType;\r\ntype AddRightToClauses = ReturnType;\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n height: 75px;\r\n background: ${colorStack.whiteGrey};\r\n`;\r\n\r\nconst FaqBox = styled(Box)`\r\n width: 42%;\r\n`;\r\n\r\nconst SlightlyWiderBox = styled(Box)`\r\n width: 20%;\r\n`;\r\n\r\nconst DropDownBoxStyled = styled(DropDownBox)`\r\n cursor: pointer;\r\n`;\r\n\r\nconst DropDownTitle = styled.div`\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[16]};\r\n font-weight: 600;\r\n`;\r\n\r\nconst BoxSubtitle = styled.div`\r\n color: ${colorStack.label};\r\n ${fontSizeAndHeight[16]};\r\n font-style: italic;\r\n`;\r\n\r\nexport const DotsMenu = styled.div`\r\n width: 32px;\r\n cursor: pointer;\r\n background: ${colorStack.white};\r\n display: flex;\r\n align-items: center;\r\n position: relative;\r\n justify-content: center;\r\n svg {\r\n height: 31px;\r\n }\r\n > div {\r\n top: 75px;\r\n left: -200px;\r\n }\r\n`;\r\n\r\nconst TypesElem = styled.div`\r\n color: ${colorStack.content};\r\n border: none;\r\n background: none;\r\n ${fontSizeAndHeight[16]};\r\n padding: .8rem 1rem;\r\n font-weight: 500;\r\n text-align: left;\r\n transition: all .3s;\r\n cursor: pointer;\r\n margin: 0!important;\r\n white-space: nowrap;\r\n display: block;\r\n svg {\r\n margin: 0 .5rem 0 0;\r\n transition: all .3s;\r\n }\r\n &:hover {\r\n background: ${colorStack.ligthGrey};\r\n }\r\n`;\r\n\r\nconst Count = styled.span`\r\n background: ${colorStack.middleGrey};\r\n ${fontSizeAndHeight[10]};\r\n padding: 3px 6px 1px 6px;\r\n border-radius: 50px;\r\n color: ${colorStack.white};\r\n font-weight: 500;\r\n position: absolute;\r\n left: 103%;\r\n top: -100%;\r\n`;\r\n\r\ninterface IDropdownTriggersState {\r\n MFN: boolean;\r\n type: boolean;\r\n status: boolean;\r\n}\r\n\r\ninterface IProps {\r\n context: React.Context>;\r\n refreshData?();\r\n}\r\n\r\nexport const PanelHeader: FC = props => {\r\n const dispatch = useDispatch();\r\n const addAlert = useAlert();\r\n const { currentUserProfile, clusterPermissions } = useSelector(state => ({\r\n ...state.profile,\r\n ...state.clusters\r\n }));\r\n const panelContext = useContext>(props.context);\r\n const [wrapperRef, dropdownOpen, toggleDropdown] = useDropdown();\r\n const [closeMfnDropdown, setCloseMfnDropdown] = useState(false);\r\n const [closeStatusDropdown, setCloseStatusDropdown] = useState(false);\r\n const [closeTypeDropdown, setCloseTypeDropdown] = useState(false);\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [blockMultiClicking, setBlockMultiClicking] = useState(false);\r\n const [openDropdownTriggers, setOpenDropDownTriggers] = useState({\r\n MFN: false,\r\n type: false,\r\n status: false\r\n });\r\n // tslint:disable-next-line:no-null-keyword\r\n const mfnBoxRef = useRef(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const mfnTitleRef = useRef(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const typeBoxRef = useRef(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const typeTitleRef = useRef(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const statusBoxRef = useRef(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const statusTitleRef = useRef(null);\r\n\r\n const onCommentClick = useCallback(() => {\r\n if (panelContext.mainData?.mainQuestionDto?.id) {\r\n panelContext.setShowComments(!panelContext.showComments);\r\n }\r\n }, [panelContext]);\r\n\r\n const changeStatus = (item: IValue) => {\r\n setCloseStatusDropdown(false);\r\n setTimeout(() => {\r\n const data = {\r\n ...panelContext.mainData,\r\n mainQuestionDto: {\r\n ...panelContext.mainData.mainQuestionDto,\r\n questionAcceptanceStatus: item.key\r\n }\r\n };\r\n\r\n if (panelContext.currentTab === 'OrganizationClausier') {\r\n (panelContext as Partial).setMainData(data as IGetMainQuestion);\r\n } else {\r\n (panelContext as Partial).setMainData(data as IGetMainQuestion);\r\n }\r\n setCloseStatusDropdown(true);\r\n panelContext.setHeaderUpdate({\r\n topic: 'questionAcceptanceStatus',\r\n shouldUpdate: true\r\n });\r\n }, 500);\r\n };\r\n\r\n const changeMFN = (item: IValue) => {\r\n setCloseMfnDropdown(false);\r\n setTimeout(() => {\r\n const data = {\r\n ...panelContext.mainData,\r\n mainQuestionDto: {\r\n ...panelContext.mainData.mainQuestionDto,\r\n mfnType: EMFN[item.key]\r\n }\r\n };\r\n\r\n if (panelContext.currentTab === 'OrganizationClausier') {\r\n (panelContext as Partial).setMainData(data as IGetMainQuestion);\r\n } else {\r\n (panelContext as Partial).setMainData(data as IGetMainQuestion);\r\n }\r\n setCloseMfnDropdown(true);\r\n panelContext.setHeaderUpdate({\r\n topic: 'generic',\r\n shouldUpdate: true\r\n });\r\n }, 500);\r\n };\r\n\r\n const changeType = (item: IValue) => {\r\n setCloseTypeDropdown(false);\r\n\r\n setTimeout(() => {\r\n const data = {\r\n ...panelContext.mainData,\r\n mainQuestionDto: {\r\n ...panelContext.mainData.mainQuestionDto,\r\n questionType: ETypes[item.key]\r\n }\r\n };\r\n\r\n if (panelContext.currentTab === 'OrganizationClausier') {\r\n (panelContext as Partial).setMainData(data as IGetMainQuestion);\r\n } else {\r\n (panelContext as Partial).setMainData(data as IGetMainQuestion);\r\n }\r\n setCloseTypeDropdown(true);\r\n panelContext.setHeaderUpdate({\r\n topic: 'questionType',\r\n shouldUpdate: true\r\n });\r\n }, 500);\r\n };\r\n\r\n const changeTabQ = () => {\r\n panelContext.setCurrentTab('Q&A');\r\n };\r\n\r\n const changeTabC = () => {\r\n if (panelContext.mainData?.mainQuestionDto?.id && panelContext.editorOpened.length === 0 && (panelContext.mainData?.mainQuestionDto?.relatedItems?.length > 0 || panelContext.mainData?.mainQuestionDto?.tags?.length > 0) && panelContext.faqContent?.length > 0) {\r\n panelContext.setCurrentTab('Clausier');\r\n }\r\n };\r\n\r\n const changeTabR = useCallback(() => {\r\n panelContext.setCurrentTab('Right');\r\n }, []);\r\n\r\n const changeTabF = () => {\r\n if (panelContext.mainData?.mainQuestionDto?.id && panelContext.editorOpened.length === 0 && (panelContext.mainData?.mainQuestionDto?.relatedItems?.length > 0 || panelContext.mainData?.mainQuestionDto?.tags?.length > 0) && panelContext.faqContent?.length > 0) {\r\n panelContext.setCurrentTab('FAQ');\r\n }\r\n };\r\n\r\n const deleteHandler = () => {\r\n dispatch(deleteClusterQuestion(panelContext.clusterId, panelContext.mainData.mainQuestionDto.id)).then(() => {\r\n panelContext.setShowPanel(false);\r\n props.refreshData?.();\r\n const translationKey = panelContext.context === 'SL' || panelContext.context === 'OrganizationClausier'\r\n ? 'assetmanagement.alert.deleteRight.success'\r\n : 'assetmanagement.alert.deleteQuestion.success';\r\n addAlert(, EAlertType.SUCCESS);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (blockMultiClicking && panelContext.context === 'Q&A') {\r\n dispatch(addQuestionToFaq(panelContext.clusterId, panelContext.mainData.mainQuestionDto.id)).then(() => {\r\n addAlert(, EAlertType.SUCCESS);\r\n panelContext.setShowPanel(false);\r\n setBlockMultiClicking(false);\r\n }).catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n panelContext.setShowPanel(false);\r\n setBlockMultiClicking(false);\r\n });\r\n }\r\n if (blockMultiClicking && panelContext.context === 'SL') {\r\n dispatch(addRightToClauses(panelContext.clusterId, panelContext.mainData.mainQuestionDto.id)).then(() => {\r\n addAlert(, EAlertType.SUCCESS);\r\n panelContext.setShowPanel(false);\r\n setBlockMultiClicking(false);\r\n }).catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n panelContext.setShowPanel(false);\r\n setBlockMultiClicking(false);\r\n });\r\n }\r\n }, [blockMultiClicking]);\r\n\r\n const addToHandler = () => {\r\n setBlockMultiClicking(true);\r\n };\r\n\r\n const showHidePopup = useCallback(() => {\r\n setTimeout(() => {\r\n setShowPopup(state => !state);\r\n }, 300);\r\n }, []);\r\n\r\n const getSubtitleElement = () => {\r\n const businessIdValue = panelContext.mainData?.mainQuestionDto?.businessId?.value;\r\n // tslint:disable-next-line:no-null-keyword\r\n return businessIdValue ? #{businessIdValue} : null;\r\n };\r\n\r\n const handleMFNBoxClick = (e: React.MouseEvent) => {\r\n handleDropdownBoxClick(e.target as HTMLElement, [mfnBoxRef, mfnTitleRef], { MFN: true, status: false, type: false });\r\n };\r\n\r\n const handleTypeBoxClick = (e: React.MouseEvent) => {\r\n handleDropdownBoxClick(e.target as HTMLElement, [typeBoxRef, typeTitleRef], { MFN: false, status: false, type: true });\r\n };\r\n\r\n const handleStatusBoxClick = (e: React.MouseEvent) => {\r\n handleDropdownBoxClick(e.target as HTMLElement, [statusBoxRef, statusTitleRef], { MFN: false, status: true, type: false });\r\n };\r\n\r\n const handleDropdownBoxClick = (target: HTMLElement, acceptableRefs: MutableRefObject[], newDropdownTriggersState: IDropdownTriggersState) => {\r\n if (acceptableRefs.map(ref => ref.current).includes(target)) {\r\n setOpenDropDownTriggers(newDropdownTriggersState);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {panelContext.context === 'Q&A' &&\r\n <>\r\n \r\n \r\n {getSubtitleElement()}\r\n \r\n \r\n \r\n \r\n \r\n {((panelContext.mainData?.mainQuestionDto?.relatedItems?.length > 0 || panelContext.mainData?.mainQuestionDto?.tags?.length > 0) && panelContext.faqContent) ? (\r\n <>\r\n {panelContext.faqContent?.length} \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n }\r\n {panelContext.context === 'FAQ' &&\r\n <>\r\n \r\n \r\n {getSubtitleElement()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {panelContext.context === 'OrganizationClausier' &&\r\n <>\r\n \r\n \r\n {getSubtitleElement()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {panelContext.context === 'SL' &&\r\n <>\r\n \r\n \r\n {getSubtitleElement()}\r\n \r\n \r\n \r\n \r\n \r\n {((panelContext.mainData?.mainQuestionDto?.relatedItems?.length > 0 || panelContext.mainData?.mainQuestionDto?.tags?.length > 0) && panelContext.faqContent) ? (\r\n <>\r\n {panelContext.faqContent?.length} \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n }\r\n {(panelContext.context === 'SL' || panelContext.context === 'OrganizationClausier') &&\r\n \r\n \r\n { setOpenDropDownTriggers(state => ({ ...state, MFN: false })); }}\r\n closeDropdown={closeMfnDropdown}\r\n value={[{ key: panelContext.mainData?.mainQuestionDto?.mfnType, data: panelContext.mainData?.mainQuestionDto?.mfnType, text: `assetmanagement.type.${panelContext.mainData?.mainQuestionDto?.mfnType || EMFN.All}` }]}\r\n links={Object.keys(EMFN).map(elem => ({\r\n visible: true,\r\n customRender: changeMFN({ key: elem, text: elem, data: elem })}>\r\n }))}\r\n />\r\n \r\n }\r\n \r\n \r\n {panelContext.mainData?.mainQuestionDto && { setOpenDropDownTriggers(state => ({ ...state, type: false })); }}\r\n closeDropdown={closeTypeDropdown}\r\n value={[{ key: panelContext.mainData?.mainQuestionDto?.questionType, data: panelContext.mainData?.mainQuestionDto?.questionType, text: `assetmanagement.type.${panelContext.mainData?.mainQuestionDto?.questionType || ETypes.StandardNew}` }]}\r\n links={Object.keys(ETypes).map(elem => ({\r\n visible: true,\r\n customRender: changeType({ key: elem, text: elem, data: elem })}>\r\n }))}\r\n />}\r\n \r\n \r\n \r\n {panelContext.mainData?.mainQuestionDto && { setOpenDropDownTriggers(state => ({ ...state, status: false })); }}\r\n closeDropdown={closeStatusDropdown}\r\n value={StatusMapper.filter(elem => elem.key === panelContext.mainData?.mainQuestionDto?.questionAcceptanceStatus)}\r\n onChange={changeStatus}\r\n options={[getStatus(EAcceptanceStatus.NoResponse), getStatus(EAcceptanceStatus.Draft), getStatus(EAcceptanceStatus.InternalReview), getStatus(EAcceptanceStatus.AwaitingApproval), getStatus(EAcceptanceStatus.Approved), getStatus(EAcceptanceStatus.DealBreaker), getStatus(EAcceptanceStatus.Closed)]}\r\n />}\r\n \r\n \r\n \r\n \r\n {panelContext.messages?.length > 0 &&\r\n {panelContext.messages?.length}\r\n }\r\n \r\n \r\n \r\n {(panelContext.currentTab !== 'OrganizationClausier' && panelContext.currentTab !== 'FAQ') &&\r\n \r\n \r\n {(dropdownOpen && panelContext.mainData?.mainQuestionDto) &&\r\n ,\r\n action: showHidePopup\r\n }, {\r\n visible: (\r\n !!panelContext.mainData.mainQuestionDto.id &&\r\n panelContext.context === 'Q&A' &&\r\n panelContext.mainData.mainQuestionDto.questionAcceptanceStatus === EAcceptanceStatus.Approved &&\r\n panelContext.mainData.mainQuestionDto.questionType !== 'Standard' &&\r\n !panelContext.mainData.mainQuestionDto.faqElementId\r\n ),\r\n name: ,\r\n action: addToHandler\r\n }, {\r\n visible: (\r\n !!panelContext.mainData.mainQuestionDto.id &&\r\n panelContext.context === 'SL' &&\r\n panelContext.mainData.mainQuestionDto.questionAcceptanceStatus === EAcceptanceStatus.Approved &&\r\n panelContext.mainData.mainQuestionDto.questionType !== 'Standard' &&\r\n !panelContext.mainData.mainQuestionDto.faqElementId\r\n ),\r\n name: ,\r\n action: addToHandler\r\n }]}\r\n />\r\n }\r\n }\r\n\r\n }\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useState, DragEvent, useMemo, useEffect } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport moment from 'moment';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCloud, faTrash, faEllipsis } from '@fortawesome/pro-regular-svg-icons';\r\nimport { IconDefinition, faFileImage, faFilePdf, faFileWord, faFileExcel, faSquareQuestion, faXmark, faRotateRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { TextWithEllipsis } from '../TextWithEllipsis/TextWithEllipsis';\r\nimport { LabelWithEllipsis } from '../Label/Label';\r\nimport { ContextMenu, ISingleLink } from '../ContextMenu/ContextMenu';\r\nimport { uuidv4 } from '../../../tools/authTools';\r\nimport { useDropdown } from '../../../tools/hooks';\r\n\r\n\r\nconst computeHumanFriendlyFileSize = (fileSize: number) => {\r\n if (fileSize >= 10e8) {\r\n return `${(fileSize * 10e-10).toFixed(2)}GB`;\r\n }\r\n\r\n if (fileSize >= 10e5) {\r\n return `${(fileSize * 10e-7).toFixed(2)}MB`;\r\n }\r\n\r\n return `${Math.ceil(fileSize * 10e-4)}KB`;\r\n}\r\n\r\nconst Label = styled(LabelWithEllipsis)`\r\n ${fontSizeAndHeight[10]}\r\n`;\r\n\r\nconst GlobalWrapper = styled.div<{ withLabel: boolean }>`\r\n display: flex;\r\n align-items: center;\r\n\r\n ${({ withLabel }) => withLabel && css`\r\n margin-top: 4px;\r\n `}\r\n`;\r\n\r\nconst Wrapper = styled.div<{ vertical: boolean, inProgress?: boolean, complete?: boolean }>`\r\n display: flex;\r\n ${({ vertical, complete, inProgress }) => vertical && !complete && !inProgress && css`\r\n flex-direction: column;\r\n height: 242px;\r\n justify-content: center;\r\n align-items: center;\r\n text-align: center;\r\n `}\r\n ${({ inProgress, complete }) => !complete && !inProgress && css`\r\n align-items: center;\r\n min-width: 311px;\r\n padding: 16px;\r\n gap: 16px;\r\n border: 1px dashed ${colorStack.ligthGrey};\r\n border-radius: 8px;\r\n `}\r\n`;\r\n\r\nconst MenuWrapper = styled.div<{ }>`\r\n position: relative;\r\n`;\r\n\r\nconst ThreeDotsMenu = styled.div<{ }>`\r\n display: flex;\r\n ${fontSizeAndHeight[25]}\r\n width: 24px;\r\n height: 24px;\r\n cursor: pointer;\r\n\r\n svg {\r\n color: ${colorStack.darkGrey};\r\n }\r\n`;\r\n\r\nconst ActionsWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n color: ${colorStack.darkGrey};\r\n`;\r\n\r\nconst Action = styled.div`\r\n cursor: pointer;\r\n`;\r\n\r\nconst FileInfo = styled.div<{ withSizeOrDate: boolean, withProgress: boolean, complete: boolean }>`\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n border-radius: 8px;\r\n box-sizing: content-box;\r\n\r\n padding: 4px 8px 4px 4px;\r\n\r\n ${({ withSizeOrDate, withProgress }) => (withSizeOrDate || withProgress) && css`\r\n gap: 16px;\r\n padding: 16px;\r\n `}\r\n\r\n ${({ complete }) => complete && css`\r\n padding-right: 16px;\r\n `}\r\n\r\n &:hover {\r\n background-color: ${colorStack.whiteBlue};\r\n }\r\n\r\n &:focus {\r\n outline: 1.5px solid ${colorStack.ligthGrey};\r\n }\r\n`;\r\n\r\nconst FileNameSizeAndDate = styled.div<{ }>`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n`;\r\n\r\nconst FileName = styled(TextWithEllipsis)<{ }>`\r\n font-weight: 500;\r\n ${fontSizeAndHeight[13]}\r\n color: ${colorStack.content};\r\n`;\r\n\r\nconst FileSizeAndDate = styled.div<{ }>`\r\n color: ${colorStack.darkGrey};\r\n ${fontSizeAndHeight[10]}\r\n`;\r\n\r\nconst IconWrapper = styled.div<{ color: string, withSizeOrDate: boolean }>`\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 4px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n ${({ withSizeOrDate }) => withSizeOrDate && css`\r\n width: 32px;\r\n height: 32px;\r\n border-radius: 8px;\r\n `}\r\n\r\n ${({ color }) => css`\r\n background-color: ${color};\r\n svg {\r\n ${fontSizeAndHeight[16]}\r\n color: ${colorStack.white};\r\n }\r\n `}\r\n`;\r\n\r\nconst CloudAndTextWrapper = styled.div<{ vertical: boolean }>`\r\n ${fontSizeAndHeight[31]};\r\n display: inline-flex;\r\n align-items: center;\r\n height: 32px;\r\n gap: 12px;\r\n\r\n ${({ vertical }) => vertical && css`\r\n ${fontSizeAndHeight[39]}\r\n margin-bottom: 8px;\r\n `};\r\n`;\r\n\r\nconst TextWrapper = styled.div`\r\n display: block;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n > span {\r\n height: 16px;\r\n }\r\n`;\r\n\r\nconst Text = styled.span<{ }>`\r\n display: inline-flex;\r\n ${fontSizeAndHeight[13]}\r\n font-weight: 500;\r\n`;\r\n\r\nconst HiddenBrowseButton = styled.input<{ }>`\r\n display: none !important;\r\n`;\r\n\r\nconst BrowseButtonLabel = styled.label<{ }>`\r\n ${fontSizeAndHeight[16]}\r\n color: ${colorStack.middleBlue};\r\n cursor: pointer;\r\n`;\r\n\r\nconst SubText = styled.span<{ }>`\r\n display: block;\r\n ${fontSizeAndHeight[10]}\r\n font-weight: 400;\r\n color: ${colorStack.darkGrey};\r\n`;\r\n\r\nconst UploadProgressWrapper = styled.div<{ progressPercentage: number }>`\r\n display: flex;\r\n flex-direction: column;\r\n width: 237px;\r\n color: ${colorStack.darkGrey};\r\n ${fontSizeAndHeight[10]}\r\n`;\r\n\r\nconst UploadProgressSegment = styled.div<{ progressPercentage: number }>`\r\n position: relative;\r\n height: 8px;\r\n width: 100%;\r\n background-color: ${colorStack.ligthGrey};\r\n border-radius: 8px;\r\n margin: 8px 0;\r\n\r\n &:before {\r\n position: absolute;\r\n content: '';\r\n height: 8px;\r\n border-radius: 8px;\r\n background-color: ${colorStack.blue};\r\n ${({ progressPercentage }) => css`\r\n width: calc(${progressPercentage}%);\r\n `}\r\n }\r\n`;\r\n\r\nconst UploadErrorWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 4px;\r\n`;\r\n\r\nconst ErrorText = styled.span`\r\n ${fontSizeAndHeight[10]}\r\n color: ${colorStack.middleRed};\r\n`;\r\n\r\nconst DownloadIconWrapper = styled.div`\r\n width: 16px;\r\n height: 16px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n\r\nconst DownloadIcon = \r\n\r\n\r\n\r\n;\r\n\r\nexport enum EUploaderFileFormat {\r\n DOCX = 'DOCX',\r\n JPEG = 'JPEG',\r\n JPG = 'JPG',\r\n PDF = 'PDF',\r\n PNG = 'PNG',\r\n XLS = 'XLS',\r\n XLSX = 'XLSX'\r\n}\r\n\r\nexport interface IFileUploaderChangeEvent {\r\n rawFile: File;\r\n fileName: string;\r\n date: Date;\r\n mimeType: string;\r\n fileSizeInBytes: number;\r\n humanFriendlyFileSize: string;\r\n}\r\n\r\ninterface IUploaderProps {\r\n label?: string;\r\n fileId?: string;\r\n fileFormats: EUploaderFileFormat[];\r\n fileName?: string;\r\n fileSizeInBytes?: number;\r\n fileDate?: Date;\r\n onFileChange?(e: IFileUploaderChangeEvent): void;\r\n vertical?: boolean;\r\n inProgress?: boolean;\r\n progressPercentage?: number;\r\n error?: string;\r\n threeDotsMenuActions?: ISingleLink[];\r\n downloadAction?(e): void;\r\n removeAction?(id: string): void;\r\n cancelAction?(): void;\r\n}\r\n\r\nexport const Uploader = (props: IUploaderProps) => {\r\n const [id, _] = useState(uuidv4());\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n const [complete, setComplete] = useState(!!props.fileId);\r\n const [fileName, setFileName] = useState(props.fileName);\r\n const [fileSize, setFileSize] = useState(props.fileSizeInBytes);\r\n const [fileDate, setFileDate] = useState(props.fileDate);\r\n // tslint:disable-next-line:no-null-keyword\r\n const [file, setFile] = useState(null);\r\n\r\n useEffect(() => {\r\n setFileName(props.fileName);\r\n }, [props.fileName]);\r\n\r\n useEffect(() => {\r\n setComplete(!!props.fileId);\r\n }, [props.fileId]);\r\n\r\n useEffect(() => {\r\n setFileSize(props.fileSizeInBytes);\r\n }, [props.fileSizeInBytes]);\r\n\r\n const processFile = (file: File) => {\r\n const fileSize = file.size;\r\n const fileName = file.name;\r\n const mimeType = file.type;\r\n const date = new Date(file.lastModified);\r\n\r\n // remember the file as well for retrying in case it fails\r\n setFile(file);\r\n setFileName(fileName);\r\n setFileSize(fileSize);\r\n setFileDate(date);\r\n setComplete(true);\r\n props.onFileChange?.({\r\n rawFile: file,\r\n fileSizeInBytes: fileSize,\r\n date,\r\n fileName,\r\n mimeType,\r\n humanFriendlyFileSize: computeHumanFriendlyFileSize(fileSize)\r\n });\r\n }\r\n\r\n const fileFormat: EUploaderFileFormat|null = useMemo(() => {\r\n if (fileName) {\r\n const format = fileName.split('.').pop();\r\n switch (format?.toLowerCase()) {\r\n case 'docx':\r\n return EUploaderFileFormat.DOCX;\r\n\r\n case 'jpg':\r\n return EUploaderFileFormat.JPG;\r\n\r\n case 'jpeg':\r\n return EUploaderFileFormat.JPEG;\r\n\r\n case 'pdf':\r\n return EUploaderFileFormat.PDF;\r\n\r\n case 'png':\r\n return EUploaderFileFormat.PNG;\r\n\r\n case 'xls':\r\n return EUploaderFileFormat.XLS;\r\n\r\n case 'xlsx':\r\n return EUploaderFileFormat.XLSX;\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:no-null-keyword\r\n return null;\r\n }, [fileName]);\r\n\r\n const relevantFileIcon: IconDefinition = useMemo(() => {\r\n if (fileFormat === null) {\r\n return faSquareQuestion;\r\n }\r\n\r\n switch (fileFormat) {\r\n case EUploaderFileFormat.DOCX:\r\n return faFileWord;\r\n\r\n case EUploaderFileFormat.JPEG:\r\n case EUploaderFileFormat.JPG:\r\n case EUploaderFileFormat.PNG:\r\n return faFileImage;\r\n\r\n case EUploaderFileFormat.PDF:\r\n return faFilePdf;\r\n\r\n case EUploaderFileFormat.XLS:\r\n case EUploaderFileFormat.XLSX:\r\n return faFileExcel;\r\n }\r\n }, [fileFormat]);\r\n\r\n const onDragEnter = (e: DragEvent) => {\r\n if (complete) {\r\n return;\r\n }\r\n };\r\n\r\n const onDragLeave = (e: DragEvent) => {\r\n if (complete) {\r\n return;\r\n }\r\n };\r\n\r\n const onDrop = (e: DragEvent) => {\r\n e.preventDefault();\r\n\r\n if (complete) {\r\n return;\r\n }\r\n\r\n const file = e.dataTransfer.files[0];\r\n file && processFile(file);\r\n };\r\n\r\n const onDragOver = (e: DragEvent) => {\r\n e.preventDefault();\r\n\r\n if (complete) {\r\n return;\r\n }\r\n };\r\n\r\n const onDialogUploadChoice = (e: React.ChangeEvent) => {\r\n const fileName = e.target.value;\r\n\r\n if (fileName) {\r\n const file = e.target.files[0];\r\n processFile(file);\r\n }\r\n };\r\n\r\n const humanFriendlyFileSize: string = useMemo(() => {\r\n return computeHumanFriendlyFileSize(fileSize);\r\n }, [fileSize]);\r\n\r\n const acceptableFileExtensionsAttr: string = useMemo(() => {\r\n return props.fileFormats.map(format => `.${format.toLowerCase()}`).join(',');\r\n }, [props.fileFormats]);\r\n\r\n const iconWrapperColor: string = useMemo(() => {\r\n switch (relevantFileIcon) {\r\n case faFileExcel:\r\n return colorStack.green;\r\n\r\n case faFilePdf:\r\n return colorStack.red;\r\n\r\n case faFileImage:\r\n return colorStack.orange;\r\n\r\n case faFileWord:\r\n return colorStack.blue;\r\n\r\n case faSquareQuestion:\r\n return colorStack.disabled;\r\n\r\n default:\r\n return colorStack.content;\r\n }\r\n }, [relevantFileIcon]);\r\n\r\n return (\r\n <>\r\n {props.label && }\r\n \r\n \r\n {!fileName &&\r\n <>\r\n \r\n \r\n \r\n \r\n
    \r\n  \r\n \r\n \r\n \r\n
    \r\n  {props.fileFormats.join(', ')}\r\n
    \r\n {!fileName && props.threeDotsMenuActions?.length > 0 &&\r\n \r\n \r\n {dropdownOpen && ({\r\n ...link,\r\n action: () => { toggleDropdown(); link.action() }\r\n }))} />}\r\n \r\n }\r\n \r\n }\r\n {fileName &&\r\n \r\n \r\n \r\n \r\n {props.error &&\r\n \r\n {fileName}\r\n {props.error}\r\n \r\n }\r\n {!props.error && (props.inProgress ?\r\n \r\n {fileName}\r\n \r\n \r\n \r\n : \r\n {fileName}\r\n {(fileSize || fileDate) &&\r\n \r\n {humanFriendlyFileSize} {fileDate && '.'} {moment.utc(fileDate).local().format('DD MMM, YYYY')}\r\n \r\n }\r\n \r\n )}\r\n \r\n {!props.error && props.inProgress && props.cancelAction &&\r\n props.cancelAction()}>\r\n }\r\n {!props.error && complete && props.downloadAction &&\r\n props.downloadAction(e)}>{DownloadIcon}\r\n }\r\n {!props.error && complete && props.removeAction &&\r\n props.removeAction(props.fileId)}>\r\n }\r\n {props.error && file &&\r\n processFile(file)}>\r\n }\r\n \r\n \r\n }\r\n \r\n
    \r\n \r\n );\r\n};\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport styled, { css } from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faEllipsisV } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { getFileExt } from '../../../tools/clusterFilesystemTools';\r\nimport { downloadDocuments } from '../../../actions/clustersActions';\r\nimport { isImage, isPdf } from '../../../tools/generalTools';\r\nimport { convertToBinary, textTruncate } from '../../../tools/string';\r\nimport { useUrlQuery, useDropdown, useAlert } from '../../../tools/hooks';\r\nimport { ContextMenu } from '../ContextMenu/ContextMenu';\r\nimport * as fsActions from '../../../actions/clustersFilesystemActions';\r\nimport { FilesystemImageViewer } from '../FileViewers/FilesystemImageViewer';\r\nimport { FilesystemPdfViewer } from '../FileViewers/FilesystemPdfViewer';\r\nimport { EAlertType } from '../../../entities/IAlert';\r\nimport { downloadDocument } from '../../../actions/legalEntitiesActions';\r\nimport { FolderIcon } from '../../Organization/ClustersV2/ClusterDocuments/FileManager/FolderIcon';\r\nimport { mimeToText } from '../../../entities/IClustersFilesystem';\r\nimport { instanceConfig } from '../../../instance';\r\nimport { Uploader, EUploaderFileFormat, IFileUploaderChangeEvent } from './Uploader';\r\nimport { ISingleLink } from '../ContextMenu/ContextMenu';\r\n\r\ntype DownloadDocuments = ReturnType;\r\ntype DownloadDocument = ReturnType;\r\n\r\ntype ColorMode = 'text' | 'presentation' | 'image' | 'tables' | '';\r\n\r\nconst Wrapper = styled.div`\r\n border-radius: 4px;\r\n border: 1px solid ${colorStack.lightBlue};\r\n padding: 3px;\r\n margin: 0 0.5rem 0 0;\r\n display: inline-flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n font-family: 'Roboto', sans-serif;\r\n position: relative;\r\n width: 240px;\r\n`;\r\n\r\nconst Extension = styled.div<{ colorMode: ColorMode; }>`\r\n ${fontSizeAndHeight[13]};\r\n white-space: nowrap;\r\n font-weight: 500;\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.whiteBlue};\r\n display: flex;\r\n align-items: center;\r\n width: 30px;\r\n height: 30px;\r\n justify-content: center;\r\n margin: 0 12px 0 0;\r\n cursor: pointer;\r\n ${props =>\r\n props.color === 'text' &&\r\n css`\r\n background: ${colorStack.whiteBlue};\r\n `}\r\n ${props =>\r\n props.color === 'presentation' &&\r\n css`\r\n background: ${colorStack.whiteOrange};\r\n `}\r\n ${props =>\r\n props.color === 'tables' &&\r\n css`\r\n background: ${colorStack.whiteGreen};\r\n `}\r\n ${props =>\r\n props.color === 'image' &&\r\n css`\r\n background: ${colorStack.whiteRed};\r\n `}\r\n`;\r\n\r\nconst Name = styled.div`\r\n ${fontSizeAndHeight[13]};\r\n font-weight: 700;\r\n cursor: pointer;\r\n`;\r\n\r\nconst Content = styled.div<{}>`\r\n display: flex;\r\n width: 100%;\r\n align-items: center;\r\n`;\r\n\r\nconst ButtonsMenu = styled.div<{ customContextMenuOpenRight: boolean; customContextMenuOpenTop: boolean }>`\r\n position: relative;\r\n margin: 0 0 0 auto;\r\n cursor: pointer;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 0 0 0.5rem;\r\n svg {\r\n color: ${colorStack.blue};\r\n }\r\n > div {\r\n ${props => props.customContextMenuOpenTop ? (\r\n css`\r\n bottom: 30px;\r\n `\r\n ) : (\r\n css`\r\n top: 30px;\r\n `\r\n )\r\n }\r\n ${props => !props.customContextMenuOpenRight &&\r\n css`\r\n left: 0;\r\n `\r\n }\r\n }\r\n`;\r\n\r\nexport enum EAttachmentType {\r\n UPLOADER = 'UPLOADER'\r\n}\r\n\r\nexport enum EAttachmentAlignment {\r\n HORIZONTAL = 'HORIZONTAL',\r\n VERTICAL = 'VERTICAL'\r\n}\r\n\r\ninterface IProps {\r\n label?: string;\r\n type?: EAttachmentType;\r\n threeDotsMenuActions?: ISingleLink[];\r\n uploadOngoing?: boolean;\r\n progressPercentage?: number;\r\n align?: EAttachmentAlignment;\r\n fileFormats?: EUploaderFileFormat[];\r\n fileSizeInBytes?: number;\r\n fileDate?: Date;\r\n entityId?: string;\r\n documentId?: string;\r\n fileName: string;\r\n id?: string;\r\n hideCopyUrl?: boolean;\r\n hideDownload?: boolean;\r\n hideWopi?: boolean;\r\n clusterId?: string;\r\n canRemove?: boolean;\r\n visibleButtons?: boolean;\r\n overviewPath?: boolean;\r\n customPath?: string;\r\n sourceName?: string;\r\n isFolder?: boolean;\r\n hideView?: boolean;\r\n filetMime?: string;\r\n error?: string;\r\n customContextMenuOpenRight?: boolean;\r\n removeHandler?(id: string): void;\r\n onFileChange?(e: IFileUploaderChangeEvent): void;\r\n cancelHandler?(): void;\r\n}\r\n\r\nexport const Attachment = (props: IProps) => {\r\n const dispatch = useDispatch();\r\n const addAlert = useAlert();\r\n const query = useUrlQuery<{ path: string }>();\r\n const attachmentRef = useRef(undefined);\r\n const buttonWrapperRef = useRef(undefined);\r\n const { wopie } = instanceConfig;\r\n const { organization } = useParams<{ organization: string }>();\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n const [showImageViewer, setShowImageViewer] = useState(false);\r\n const [showPdfViewer, setShowPdfViewer] = useState(false);\r\n const [viewerName, setViewerName] = useState(undefined);\r\n const [viewerDirectUrl, setViewerDirectUrl] = useState(undefined);\r\n const [spaceUnderElement, setSpaceUnderElement] = useState(undefined);\r\n const [contextMenuLinksNumber, setContextMenuLinksNumber] = useState(0);\r\n\r\n useEffect(() => {\r\n const element = attachmentRef?.current?.parentNode as HTMLDivElement;\r\n const elementRect = element?.getBoundingClientRect();\r\n const elementHeight = elementRect?.height;\r\n const elementOffsetTop = elementRect?.top + window.scrollY;\r\n setSpaceUnderElement(Math.max(document.documentElement.scrollHeight, document.body.scrollHeight) - (elementOffsetTop + elementHeight));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (dropdownOpen) {\r\n const contextMenuElement = buttonWrapperRef?.current?.lastChild as HTMLDivElement;\r\n const contexMenuChildsNumber = contextMenuElement?.childElementCount || 0;\r\n setContextMenuLinksNumber(contexMenuChildsNumber);\r\n }\r\n }, [dropdownOpen]);\r\n\r\n const openCloseImage = useCallback(() => {\r\n setShowImageViewer(currentState => !currentState);\r\n }, []);\r\n\r\n const openClosePdf = useCallback(() => {\r\n setShowPdfViewer(currentState => !currentState);\r\n }, []);\r\n\r\n const fileExtension = getFileExt(props?.fileName)?.ext;\r\n const overviewFiles = 'Overview Files';\r\n const path = props?.customPath ? props?.customPath : props.overviewPath ? overviewFiles : query?.path;\r\n\r\n const viewHandler = useCallback((e) => {\r\n e.stopPropagation();\r\n closeDropdown();\r\n if (props.clusterId) {\r\n dispatch(downloadDocuments(props.clusterId, props.fileName, path))\r\n .then(response => {\r\n setViewerName(response.name);\r\n setViewerDirectUrl(response.directUri);\r\n isImage(fileExtension) ? openCloseImage() : isPdf(fileExtension) && openClosePdf();\r\n })\r\n .catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n });\r\n } else {\r\n dispatch(downloadDocument(props.entityId, props.documentId))\r\n .then(response => {\r\n setViewerName(response?.name);\r\n setViewerDirectUrl(response?.directUri);\r\n isImage(fileExtension) ? openCloseImage() : isPdf(fileExtension) && openClosePdf();\r\n })\r\n .catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n });\r\n }\r\n }, [openClosePdf, openCloseImage, path, props, fileExtension]);\r\n\r\n const downloadHandler = useCallback((e) => {\r\n e.stopPropagation();\r\n closeDropdown();\r\n if (props.clusterId) {\r\n dispatch(fsActions.getFileMetadata(props.clusterId, [path], props.fileName))\r\n .then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n })\r\n .catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n });\r\n } else {\r\n dispatch(downloadDocument(props.entityId, props.documentId))\r\n .then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n })\r\n .catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n });\r\n }\r\n }, [props.fileName, props.clusterId, path]);\r\n\r\n const removeHandler = () => {\r\n props.removeHandler(props?.id);\r\n };\r\n\r\n const copyHandler = useCallback(() => {\r\n dispatch(fsActions.getFileMetadata(props.clusterId, [path], props.fileName))\r\n .then(() => {\r\n navigator.clipboard.writeText(\r\n `${window.location.origin}/orgs/${organization}/cluster/${props.clusterId\r\n }/documents?path=${path}&getFilea=${convertToBinary(props.fileName)}&getFileb=${convertToBinary(\r\n path\r\n )}`\r\n );\r\n addAlert(, EAlertType.SUCCESS);\r\n })\r\n .catch(() => {\r\n addAlert(, EAlertType.ERROR);\r\n });\r\n }, [props.fileName, props.clusterId, path, organization]);\r\n\r\n const getColorMode = useCallback((ext: string): ColorMode => {\r\n const text = ['doc', 'docm', 'docx', 'wpd', 'txt', 'pdf', 'xps', 'rtf', 'msg'].includes(ext) && 'text';\r\n const presentation = ['pptx', 'ppt', 'pptm', 'pps', 'pot', 'potx'].includes(ext) && 'presentation';\r\n const tables = ['csv', 'xls', 'xlsm', 'xlsx'].includes(ext) && 'tables';\r\n const image = ['bmp', 'gif', 'jpg', 'jpeg', 'png', 'tif', 'tiff'].includes(ext) && 'image';\r\n return text || presentation || tables || image;\r\n }, []);\r\n\r\n const hasQuickView = useCallback((ext: string) => {\r\n return !!(props.documentId || props.clusterId) && (isPdf(ext) || isImage(ext));\r\n }, [props?.fileName]);\r\n\r\n const quickViewAllowed = hasQuickView(fileExtension);\r\n\r\n const wopiFunction = () => {\r\n closeDropdown();\r\n window.open(`${window.location.href}?wopieItemId=${props.id}&edit=false`, '_blank');\r\n };\r\n\r\n const checkMSFileType = useCallback((fileName: string) => {\r\n const extFiles = ['csv', 'ods', 'xls', 'xlsb', 'xlsm', 'xlsx', 'one', 'onetoc2', 'onepkg', 'odp', 'pot', 'potm', 'potx', 'pps', 'ppsm', 'ppsx', 'ppt', 'pptx', 'wopitest', 'wopitestx', 'doc', 'docm', 'docx', 'dot', 'dotm', 'dotx', 'odt'];\r\n if (extFiles.includes(getFileExt(fileName).ext.toLowerCase())) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }, []);\r\n\r\n return (\r\n props.type === EAttachmentType.UPLOADER ?\r\n \r\n : \r\n \r\n \r\n {props.isFolder ? : <>{fileExtension}}\r\n \r\n {props?.fileName && (\r\n \r\n {textTruncate(props?.sourceName || props?.fileName, 20)}\r\n \r\n )}\r\n {props.visibleButtons && props?.fileName && (\r\n \r\n \r\n {dropdownOpen && (\r\n ,\r\n action: viewHandler,\r\n visible: !props.hideView && quickViewAllowed\r\n },\r\n {\r\n name: ,\r\n action: wopiFunction,\r\n visible: !props.hideView && checkMSFileType(props.fileName) && !props.hideWopi && wopie\r\n },\r\n {\r\n name: ,\r\n action: copyHandler,\r\n visible: !props?.hideCopyUrl\r\n },\r\n {\r\n name: ,\r\n action: downloadHandler,\r\n visible: !props?.hideDownload\r\n },\r\n {\r\n name: ,\r\n action: removeHandler,\r\n visible: props?.removeHandler && props.canRemove\r\n }\r\n ]}\r\n openFromRight={props.customContextMenuOpenRight}\r\n />\r\n )}\r\n \r\n )}\r\n \r\n {showImageViewer && props.visibleButtons && (\r\n \r\n )}\r\n {showPdfViewer && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { IState } from '../../../reducers';\r\nimport { IAvatarReducer } from '../../../reducers/avatarReducer';\r\nimport { setUserColor } from '../../../actions/avatarActions';\r\nimport { getEntityLink } from '../../../tools/clusterTools';\r\nimport { EProfileType } from '../../../entities/IGlobal';\r\nimport { ToolTip } from '../ToolTip/ToolTip';\r\n\r\ntype SetUserColor = ReturnType;\r\n\r\nexport enum EAvatarSize {\r\n XLARGE = 'XLARGE',\r\n LARGE = 'LARGE',\r\n MEDIUM = 'MEDIUM',\r\n SMALL = 'SMALL',\r\n XSMALL = 'XSMALL',\r\n TINY = 'TINY'\r\n}\r\n\r\nconst Wrapper = styled.div<{ size: EAvatarSize }>`\r\n position: relative;\r\n max-width: 100%;\r\n a, span {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n text-decoration: none;\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n }\r\n`;\r\n\r\nconst CurrentUserProfilePicture = styled.img<{ size: EAvatarSize, isSquare: boolean }>`\r\n border-radius: 100%;\r\n height: 32px;\r\n width: 32px;\r\n flex-shrink: 0;\r\n ${({ isSquare }) => isSquare && css`\r\n border-radius: 8px;\r\n `}\r\n ${({ size }) => size === EAvatarSize.TINY && css`\r\n height: 24px;\r\n width: 24px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.SMALL && css`\r\n height: 40px;\r\n width: 40px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.MEDIUM && css`\r\n height: 56px;\r\n width: 56px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.LARGE && css`\r\n height: 96px;\r\n width: 96px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.XLARGE && css`\r\n height: 160px;\r\n width: 160px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.TINY && isSquare) && css`\r\n border-radius: 4px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.SMALL && isSquare) && css`\r\n border-radius: 8px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.MEDIUM && isSquare) && css`\r\n border-radius: 16px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.LARGE && isSquare) && css`\r\n border-radius: 24px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.XLARGE && isSquare) && css`\r\n border-radius: 32px;\r\n `};\r\n background-color: ${`${colorStack.white}`};\r\n`;\r\n\r\nconst TextWrapper = styled.div<{ bgColor: string; size?: EAvatarSize, isSquare: boolean }>`\r\n height: 32px;\r\n width: 32px;\r\n display: flex;\r\n justify-content: center;\r\n border-radius: 100%;\r\n flex-shrink: 0;\r\n ${({ isSquare }) => isSquare && css`\r\n border-radius: 8px;\r\n `}\r\n ${props => props.bgColor && css`\r\n background: ${props.bgColor};\r\n `}\r\n ${({ size }) => size === EAvatarSize.TINY && css`\r\n height: 24px;\r\n width: 24px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.SMALL && css`\r\n height: 40px;\r\n width: 40px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.MEDIUM && css`\r\n height: 56px;\r\n width: 56px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.LARGE && css`\r\n height: 96px;\r\n width: 96px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.XLARGE && css`\r\n height: 160px;\r\n width: 160px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.TINY && isSquare) && css`\r\n border-radius: 4px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.SMALL && isSquare) && css`\r\n border-radius: 8px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.MEDIUM && isSquare) && css`\r\n border-radius: 16px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.LARGE && isSquare) && css`\r\n border-radius: 24px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.XLARGE && isSquare) && css`\r\n border-radius: 32px;\r\n `};\r\n > div {\r\n margin: auto 0;\r\n text-indent: 0;\r\n color: ${colorStack.black};\r\n font-weight: 500;\r\n ${fontSizeAndHeight[10]};\r\n ${({ size }) => size === EAvatarSize.TINY && css`\r\n ${fontSizeAndHeight[10]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.SMALL && css`\r\n ${fontSizeAndHeight[13]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.MEDIUM && css`\r\n ${fontSizeAndHeight[20]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.LARGE && css`\r\n ${fontSizeAndHeight[39]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.XLARGE && css`\r\n ${fontSizeAndHeight[61]};\r\n `};\r\n }\r\n`;\r\n\r\nconst Name = styled.div<{ size: EAvatarSize }>`\r\n color: ${colorStack.content};\r\n margin: 0 0 0 .5rem;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n ${fontSizeAndHeight[16]};\r\n ${({ size }) => size === EAvatarSize.TINY && css`\r\n ${fontSizeAndHeight[16]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.SMALL && css`\r\n ${fontSizeAndHeight[16]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.MEDIUM && css`\r\n ${fontSizeAndHeight[20]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.LARGE && css`\r\n ${fontSizeAndHeight[39]};\r\n `};\r\n ${({ size }) => size === EAvatarSize.XLARGE && css`\r\n ${fontSizeAndHeight[61]};\r\n `};\r\n`;\r\n\r\nconst ImageWrapper = styled.div`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst Shadow = styled.div<{ size: EAvatarSize, isSquare: boolean }>`\r\n height: 32px;\r\n width: 32px;\r\n position: absolute;\r\n border-radius: 100%;\r\n left: 0;\r\n top: 0;\r\n background: rgba(0,0,0, .3);\r\n ${({ size }) => size === EAvatarSize.TINY && css`\r\n height: 24px;\r\n width: 24px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.SMALL && css`\r\n height: 40px;\r\n width: 40px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.MEDIUM && css`\r\n height: 56px;\r\n width: 56px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.LARGE && css`\r\n height: 96px;\r\n width: 96px;\r\n `};\r\n ${({ size }) => size === EAvatarSize.XLARGE && css`\r\n height: 160px;\r\n width: 160px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.TINY && isSquare) && css`\r\n border-radius: 4px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.SMALL && isSquare) && css`\r\n border-radius: 8px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.MEDIUM && isSquare) && css`\r\n border-radius: 16px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.LARGE && isSquare) && css`\r\n border-radius: 24px;\r\n `};\r\n ${({ size, isSquare }) => (size === EAvatarSize.XLARGE && isSquare) && css`\r\n border-radius: 32px;\r\n `};\r\n`;\r\n\r\nconst TooltipWrapper = styled.div`\r\n position: absolute;\r\n z-index: 99;\r\n top: 2rem;\r\n width: 90%;\r\n > div {\r\n white-space: break-spaces;\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n picture: string;\r\n firstName: string;\r\n lastName: string;\r\n metaInfo?: string;\r\n id: string;\r\n disabled?: boolean;\r\n extended?: boolean;\r\n type?: EProfileType;\r\n size?: EAvatarSize;\r\n darkMode?: boolean;\r\n preventRedirection?: boolean;\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst AvatarDetails: FC = props => {\r\n const { usersColor } = useSelector(state => state.avatar);\r\n const [showTooltip, setShowTooltip] = useState(false);\r\n // tslint:disable-next-line:no-null-keyword\r\n const nameRef = useRef(null);\r\n return (\r\n <>\r\n {props.picture ? (\r\n \r\n {props.darkMode &&\r\n \r\n }\r\n \r\n \r\n ) : (\r\n \r\n
    \r\n {props.firstName?.slice(0, 1)}\r\n {props.lastName?.slice(0, 1)}\r\n
    \r\n \r\n )}\r\n {props.extended &&\r\n setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)} ref={nameRef}>\r\n {props.metaInfo ? {props.firstName || ''} {props.lastName || ''} : `${props.firstName || ''} ${props.lastName || ''}`}\r\n {props.metaInfo?.length > 0 && <>
    {props.metaInfo}}\r\n {(showTooltip && (nameRef?.current.offsetWidth < nameRef?.current.scrollWidth)) &&\r\n \r\n \r\n \r\n }\r\n
    \r\n }\r\n \r\n );\r\n};\r\n\r\nexport const Avatar: FC = props => {\r\n const dispatch = useDispatch();\r\n const { organization } = useParams<{ organization: string }>();\r\n const [targetType, setTargetType] = useState(undefined);\r\n\r\n useEffect(() => {\r\n if (!props.picture) {\r\n dispatch(setUserColor(props.id));\r\n }\r\n setTargetType(IS_TEAMS_INSTANCE ? '_self' : '_blank');\r\n\r\n }, [IS_TEAMS_INSTANCE]);\r\n\r\n return (\r\n \r\n {props.preventRedirection ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/pro-light-svg-icons';\r\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\r\n\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\n\r\nexport enum EBadgeSize {\r\n XSMALL = 'XSMALL',\r\n SMALL = 'SMALL',\r\n MEDIUM = 'MEDIUM',\r\n MLARGE = 'MLARGE',\r\n LARGE = 'LARGE'\r\n}\r\n\r\nexport enum EBadgeShape {\r\n CIRCLE = 'CIRCLE',\r\n SQUARE = 'SQUARE'\r\n}\r\n\r\nexport enum EBadgeColor {\r\n BLUE = 'BLUE',\r\n YELLOW = 'YELLOW',\r\n RED = 'RED',\r\n GREEN = 'GREEN',\r\n PURPLE = 'PURPLE',\r\n GRAY = 'GRAY',\r\n DARKBLUE = 'DARKBLUE'\r\n}\r\n\r\nconst Placeholder = styled.span<{ size: EBadgeSize }>`\r\n padding: 8px;\r\n ${props => [EBadgeSize.MEDIUM, EBadgeSize.MLARGE, EBadgeSize.LARGE].includes(props.size) && css`\r\n padding: 8px 16px 8px 16px;\r\n `}\r\n`;\r\n\r\nconst Wrapper = styled.div<{ color: string, shape: EBadgeShape, outlined: boolean, noContent: boolean, withIcon: boolean, size: EBadgeSize, forceWhiteText: boolean }>`\r\n color: ${colorStack.content};\r\n ${props => (props.noContent || props.forceWhiteText) && css`\r\n color: ${colorStack.white};\r\n `}\r\n font-weight: 500;\r\n ${fontSizeAndHeight[13]}\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n box-sizing: content-box;\r\n width: fit-content;\r\n\r\n ${props => props.outlined && css`\r\n box-sizing: border-box;\r\n border: 1.5px solid ${colorStack.white};\r\n `}\r\n ${props => props.size === EBadgeSize.XSMALL && css`\r\n min-width: 16px;\r\n ${props.noContent && css`\r\n width: 16px;\r\n `}\r\n height: 16px;\r\n ${fontSizeAndHeight[10]}\r\n border-radius: ${props.shape === EBadgeShape.SQUARE ? '4px' : '100%'};\r\n `}\r\n ${props => props.size === EBadgeSize.SMALL && css`\r\n min-width: 24px;\r\n ${props.noContent && css`\r\n width: 24px;`\r\n }\r\n height: 24px;\r\n ${fontSizeAndHeight[10]}\r\n border-radius: ${props.shape === EBadgeShape.SQUARE ? '4px' : '100%'};\r\n `}\r\n ${props => props.size === EBadgeSize.MEDIUM && css`\r\n min-width: 32px;\r\n ${props.noContent && css`\r\n width: 32px;`\r\n }\r\n height: 32px;\r\n border-radius: ${props.shape === EBadgeShape.SQUARE ? '8px' : '100%'};\r\n `}\r\n ${props => props.size === EBadgeSize.MLARGE && css`\r\n min-width: 40px;\r\n ${props.noContent && css`\r\n width: 40px;`\r\n }\r\n height: 40px;\r\n border-radius: ${props.shape === EBadgeShape.SQUARE ? '8px' : '100%'};\r\n `}\r\n ${props => props.size === EBadgeSize.LARGE && css`\r\n min-width: 56px;\r\n ${props.noContent && css`\r\n width: 56px;`\r\n }\r\n ${fontSizeAndHeight[16]}\r\n height: 56px;\r\n border-radius: ${props.shape === EBadgeShape.SQUARE ? '8px' : '100%'};\r\n `}\r\n\r\n ${props => props.shape === EBadgeShape.CIRCLE && css`\r\n border-radius: 999px;\r\n `}\r\n\r\n ${props => props.size === EBadgeSize.XSMALL && css`\r\n `}\r\n ${props => props.color === EBadgeColor.BLUE && css`\r\n background-color: ${colorStack.blue};\r\n `}\r\n ${props => props.color === EBadgeColor.YELLOW && css`\r\n background-color: ${colorStack.orange};\r\n `}\r\n ${props => props.color === EBadgeColor.RED && css`\r\n background-color: ${colorStack.red};\r\n `}\r\n ${props => props.color === EBadgeColor.GREEN && css`\r\n background-color: ${colorStack.green};\r\n `}\r\n ${props => props.color === EBadgeColor.PURPLE && css`\r\n background-color: ${colorStack.purple};\r\n `}\r\n ${props => props.color === EBadgeColor.DARKBLUE && css`\r\n background-color: ${colorStack.darkBlue};\r\n `}\r\n ${props => props.color === EBadgeColor.GRAY && css`\r\n background-color: ${colorStack.middleGrey};\r\n `}\r\n`;\r\n\r\ninterface IBadgeProps {\r\n color: EBadgeColor;\r\n size?: EBadgeSize;\r\n shape?: EBadgeShape;\r\n placeholder?: string;\r\n outlined?: boolean;\r\n icon?: IconDefinition;\r\n onClick?();\r\n}\r\n\r\nconst resolveIconSize = (size: EBadgeSize): SizeProp => {\r\n switch (size) {\r\n case EBadgeSize.XSMALL:\r\n return 'xs';\r\n\r\n case EBadgeSize.SMALL:\r\n case EBadgeSize.MEDIUM:\r\n return 'sm';\r\n\r\n case EBadgeSize.MLARGE:\r\n return 'lg';\r\n\r\n case EBadgeSize.LARGE:\r\n return 'xl';\r\n // tslint:disable-next-line:no-unused-expression\r\n default: '';\r\n }\r\n};\r\n\r\nexport const Badge = ({ icon, outlined, placeholder, shape = EBadgeShape.CIRCLE, size = EBadgeSize.MEDIUM, ...props }: IBadgeProps) => (\r\n \r\n {/* tslint:disable-next-line:no-null-keyword */}\r\n {placeholder ? {placeholder} : null}\r\n {/* tslint:disable-next-line:no-null-keyword */}\r\n {(!placeholder && icon) ? : null}\r\n \r\n);\r\n","import React, { FC, Fragment, ReactNode } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { media } from '../../../styleHelpers/breakpoint';\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 1rem;\r\n flex-wrap: wrap;\r\n ${media.tablet`\r\n flex-wrap: nowrap;\r\n `}\r\n`;\r\n\r\nconst ElementWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n cursor: pointer;\r\n margin: 0 .1rem 0 .25rem;\r\n padding: 0.25rem 0.5rem;\r\n\r\n ${({ withBackground }) => withBackground && css`\r\n border-radius: 999px;\r\n background-color: ${colorStack.bodyBg};\r\n `}\r\n &:first-child {\r\n margin-left: 0;\r\n padding-left: 0;\r\n }\r\n &:hover {\r\n &, span, a {\r\n color: ${colorStack.middleBlue};\r\n text-decoration: none;\r\n }\r\n\r\n ${({ withBackground }) => withBackground && css`\r\n border-radius: 999px;\r\n background-color: ${colorStack.lightBlue};\r\n `}\r\n }\r\n\r\n &, > span, a {\r\n font-weight: 500;\r\n color: ${colorStack.darkGrey};\r\n ${fontSizeAndHeight[10]}\r\n ${({ lastItem }) => lastItem && css`\r\n color: ${colorStack.label};\r\n `}\r\n }\r\n`;\r\n\r\nconst Breadcrumbs = styled.div`\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n ${({ noWrap }) => noWrap && css`\r\n flex-wrap: nowrap;\r\n `}\r\n`;\r\n\r\nconst MenuWrapper = styled.div`\r\n margin-left: auto;\r\n padding-left: 1rem;\r\n`;\r\n\r\nconst Separator = styled.div`\r\n display: inline-block;\r\n margin: 0 0.25rem;\r\n &:after {\r\n font-weight: 300;\r\n color: ${colorStack.middleGrey};\r\n content: '/';\r\n ${fontSizeAndHeight[10]}\r\n }\r\n`;\r\n\r\ninterface ISharedInnerProps {\r\n withBackground?: boolean;\r\n noWrap?: boolean;\r\n}\r\n\r\nexport interface IBreadcrumbItem {\r\n icon?: ReactNode;\r\n element: ReactNode;\r\n}\r\n\r\ninterface IGlobalBreadcrumbsProps extends ISharedInnerProps {\r\n breadcrumbs: IBreadcrumbItem[];\r\n menu?: ReactNode;\r\n hideIcons?: boolean;\r\n}\r\n\r\nexport const GlobalBreadcrumbs: FC = ({ withBackground, breadcrumbs, menu, children, noWrap, hideIcons }) => {\r\n return (\r\n \r\n \r\n {breadcrumbs.map(({ element, icon }, index) => (\r\n \r\n \r\n {/* ts-lint:disable-nextline:no-null-keyword */}\r\n {(icon && !hideIcons) ? icon : null}\r\n {element}\r\n \r\n {index < breadcrumbs.length - 1 && }\r\n \r\n ))}\r\n \r\n {children}\r\n {menu && (\r\n \r\n {menu}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { CSSProperties, HTMLAttributes, InputHTMLAttributes, lazy, useCallback, useRef, useMemo, useState } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { IconDefinition } from '@fortawesome/pro-light-svg-icons';\r\nimport { Link, useParams } from 'react-router-dom';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { ESpinnerSize, Spinner } from '../Spinner/Spinner';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { isFontAwesomeIcon } from '../../../tools/generalTools';\r\nimport { useDropdown } from '../../../tools/hooks';\r\nimport { ContextMenu } from '../ContextMenu/ContextMenu';\r\nimport { StepsPopup } from '../StepsPopup/StepsPopup';\r\nimport { EPopupSizes } from '../../../entities/IGlobal';\r\nimport { ISelectedRows, IDirectoryContent, EFilesystemItemType } from '../../../entities/IClustersFilesystem';\r\nimport lazyBlock from '../../../tools/lazyBlock';\r\nimport { Button } from './NewButton';\r\n\r\nconst FileManager = lazyBlock(lazy(() => import('../../Organization/ClustersV2/ClusterDocuments/FileManager/FileManager'))) as any;\r\n\r\nconst setMargin = (margin?: string) => margin !== undefined && margin !== '' ?\r\n { '--button-margin': margin } as CSSProperties : null; // tslint:disable-line: no-null-keyword\r\n\r\nconst Wrapper = styled.button<{ bgColor: string, fontColor: string, borderColor: string, leftPadding: boolean, rightPadding: boolean, noContent: boolean, size: ButtonSize }>`\r\n border-radius: 8px;\r\n padding: 0 1rem;\r\n font-weight: 500;\r\n ${fontSizeAndHeight[16]};\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: center;\r\n cursor: pointer;\r\n margin: var(--button-margin, 0 4px);\r\n background: ${props => props.bgColor};\r\n color: ${props => props.fontColor};\r\n border: 2px solid ${props => props.borderColor};\r\n ${props => props.size && css`\r\n height: ${`${props.size}px`};\r\n `}\r\n ${props => props.rightPadding && css`\r\n padding-right: 4px;\r\n `}\r\n ${props => props.leftPadding && css`\r\n padding-left: 4px;\r\n `}\r\n ${props => props.noContent && css`\r\n padding: 0;\r\n `}\r\n\r\n > a, > span {\r\n color: inherit;\r\n width: 100%;\r\n text-decoration:none;\r\n }\r\n > a {\r\n display: flex;\r\n }\r\n &:disabled {\r\n background: ${colorStack.whiteGrey};\r\n border-color: ${colorStack.whiteGrey};\r\n color: ${colorStack.darkGrey};\r\n cursor: default;\r\n }\r\n`;\r\n\r\nconst ContentBox = styled.div<{ leftMargin: boolean, rightMargin: boolean }>`\r\n position: relative;\r\n white-space: nowrap;\r\n ${props => props.rightMargin && css`\r\n margin-right: .5rem;\r\n `}\r\n ${props => props.leftMargin && css`\r\n margin-left: .5rem;\r\n `}\r\n > div {\r\n top: 32px;\r\n right: 0;\r\n }\r\n`;\r\n\r\nconst IcoBox = styled.div`\r\n padding: 0 8px 0 8px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\ninterface IButtonIconProps {\r\n ico?: React.ReactNode | IconDefinition;\r\n loading?: boolean;\r\n}\r\n\r\ntype ButtonSize = 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 | 96 | 104 | 112 | 120 | 128 | 136 | 144 | 152 | 160 | 168 | 176 | 184 | 192 | 200;\r\n\r\nconst ButtonIcon = ({ ico, loading }: IButtonIconProps) => (ico || loading) ?\r\n \r\n {isFontAwesomeIcon(ico) ? : (loading ? : ico)}\r\n : null; // tslint:disable-line: no-null-keyword\r\n\r\ninterface IStyledButtonProps {\r\n margin?: string;\r\n bgColor?: string;\r\n fontColor?: string;\r\n borderColor?: string;\r\n size?: ButtonSize;\r\n}\r\n\r\ninterface ILinkButtonProps extends IStyledButtonProps, HTMLAttributes {\r\n ico?: React.ReactNode | IconDefinition;\r\n rightIco?: React.ReactNode | IconDefinition;\r\n href?: string;\r\n externalLink?: boolean;\r\n to?: string;\r\n dataLc?: string;\r\n newWindow?: boolean;\r\n size?: ButtonSize;\r\n onClick?(e: React.MouseEvent); // overrides div onClick to make it compatible with Link onClick\r\n}\r\n\r\nexport const LinkButton = ({ ico, rightIco, dataLc, margin = '0 4px', bgColor = colorStack.blue, fontColor = colorStack.white, borderColor = 'transparent', ...props }: ILinkButtonProps) => {\r\n const icon = useMemo(() => , [ico, props.children]);\r\n const righticon = useMemo(() => , [ico, props.children]);\r\n\r\n return (\r\n \r\n {props.externalLink ? (\r\n \r\n {icon}\r\n {props.children &&\r\n \r\n {props.children}\r\n \r\n }\r\n {righticon}\r\n ) :\r\n props.href ? (\r\n \r\n {icon}\r\n {props.children &&\r\n \r\n {props.children}\r\n \r\n }\r\n {righticon}\r\n ) :\r\n props.to ? (\r\n \r\n {icon}\r\n {props.children &&\r\n \r\n {props.children}\r\n \r\n }\r\n {righticon}\r\n ) : (\r\n \r\n {icon}\r\n {props.children &&\r\n \r\n {props.children}\r\n \r\n }\r\n {righticon}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst BrowseWrapper = styled.div`\r\n position: relative;\r\n`;\r\n\r\nconst UploadFromComputer = styled.div`\r\n overflow: hidden;\r\n position: relative;\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[16]};\r\n padding: .5rem;\r\n font-weight: 500;\r\n width: 100%;\r\n text-align: left;\r\n transition: all .3s;\r\n cursor: pointer;\r\n margin: 0!important;\r\n span {\r\n white-space: nowrap;\r\n }\r\n &:hover {\r\n background: ${colorStack.whiteBlue};\r\n }\r\n input[type=\"file\"] {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n opacity: 0;\r\n }\r\n`;\r\n\r\ninterface IFileButtonProps extends InputHTMLAttributes {\r\n currentClusterName?: string;\r\n dataLc?: string;\r\n importFile?(file: IDirectoryContent, closeImportPopup: () => void, path: string[]);\r\n}\r\n\r\nexport const FileButton = ({ importFile, dataLc, children, ...props }: IFileButtonProps) => {\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n const [openClusterDocument, setOpenClusterDocument] = useState(false);\r\n const [selectedFile, setSelectedFile] = useState(undefined);\r\n const [isValidated, setIsValidated] = useState(false);\r\n const [path, setPath] = useState(undefined);\r\n const inputRef = useRef();\r\n const { id } = useParams<{ id: string }>();\r\n\r\n const onChange = useCallback((e: React.ChangeEvent) => {\r\n props.onChange?.(e);\r\n inputRef?.current && (inputRef.current.value = '');\r\n closeDropdown();\r\n }, [props.onChange]);\r\n\r\n const saveHandler = useCallback((): Promise => {\r\n return new Promise((resolve) => {\r\n importFile(selectedFile, () => setOpenClusterDocument(false), path).then(() => {\r\n resolve(true);\r\n closeDropdown();\r\n });\r\n });\r\n }, [selectedFile, importFile, path]);\r\n\r\n const openClusterDocPopup = useCallback(() => {\r\n setOpenClusterDocument(state => !state);\r\n closeDropdown();\r\n }, []);\r\n\r\n const getFileToImport = useCallback((selectedRows: ISelectedRows, pathArray: string[]) => {\r\n const selected = Object.values(selectedRows || {}).filter(item => !!item);\r\n setIsValidated(selected?.length < 2 && selected?.[0]?.item.type === EFilesystemItemType.File);\r\n setPath(pathArray);\r\n setSelectedFile(selected?.[0]?.item);\r\n }, [setSelectedFile]);\r\n\r\n const openContextMenu = useCallback(() => {\r\n if (!dropdownOpen) {\r\n toggleDropdown();\r\n }\r\n }, [dropdownOpen]);\r\n\r\n return (\r\n \r\n \r\n {dropdownOpen &&\r\n ,\r\n customRender: \r\n \r\n \r\n ,\r\n action: closeDropdown,\r\n visible: true\r\n }, {\r\n name: ,\r\n visible: !!importFile,\r\n action: openClusterDocPopup\r\n }]}\r\n />\r\n }\r\n }\r\n confirmDisabled={false}\r\n isFormValid={!!selectedFile && isValidated}\r\n finishHandler={openClusterDocPopup}\r\n confirmHandler={saveHandler}\r\n sendButtonText={}\r\n lastThanksScreen={1}\r\n sendButtonType=\"button\"\r\n steps={[\r\n { content: }\r\n ]}\r\n />\r\n \r\n );\r\n};\r\n","import { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nexport enum EIconButtonTypeSchema {\r\n PRIMARY = 'PRIMARY',\r\n SECONDARY = 'SECONDARY',\r\n TERTIARY = 'TERTIARY'\r\n}\r\nexport enum EIconButtonSize {\r\n LARGE = 'LARGE',\r\n MEDIUM = 'MEDIUM',\r\n SMALL = 'SMALL'\r\n}\r\nexport enum EIconButtonShape {\r\n SQUARE = 'SQUARE',\r\n CIRCLE = 'CIRCLE'\r\n}\r\nexport enum EIconButtonColorSchema {\r\n NEUTRAL = 'NEUTRAL',\r\n ALERT = 'ALERT',\r\n WARNING = 'WARNING',\r\n SUCCESS = 'SUCCESS'\r\n}\r\n\r\nconst Wrapper = styled.button<{ shape: EIconButtonShape, size: EIconButtonSize, typeSchema: EIconButtonTypeSchema, disabled: boolean, colorSchema: EIconButtonColorSchema, outlined: boolean }>`\r\n border-radius: 8px;\r\n border: 2px solid;\r\n font-size: 1rem;\r\n border-color: ${colorStack.middleBlue};\r\n background: ${colorStack.middleBlue};\r\n color: ${colorStack.white};\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 32px;\r\n height: 32px;\r\n ${({ shape }) => shape === EIconButtonShape.CIRCLE && css`\r\n border-radius: 100%;\r\n `}\r\n ${({ outlined }) => outlined && css`\r\n background: ${colorStack.white};\r\n color: ${colorStack.darkBlue};\r\n border-color: ${colorStack.middleBlue};\r\n `};\r\n ${({ size }) => size === EIconButtonSize.MEDIUM && css`\r\n width: 40px;\r\n height: 40px;\r\n `};\r\n ${({ size, outlined }) => size === EIconButtonSize.LARGE && css`\r\n ${fontSizeAndHeight[25]};\r\n width: 56px;\r\n height: 56px;\r\n font-size: 24px;\r\n ${outlined && css`\r\n color: ${colorStack.middleBlue};\r\n `};\r\n `};\r\n ${({ colorSchema, outlined, size }) => colorSchema === EIconButtonColorSchema.ALERT && css`\r\n border-color: ${colorStack.middleRed};\r\n background: ${colorStack.middleRed};\r\n color: ${colorStack.white};\r\n ${outlined && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.white};\r\n ${size === EIconButtonSize.MEDIUM && css`\r\n color: ${colorStack.middleRed};\r\n `}\r\n `};\r\n `};\r\n ${({ colorSchema, outlined, size }) => colorSchema === EIconButtonColorSchema.WARNING && css`\r\n border-color: ${colorStack.middleOrange};\r\n background: ${colorStack.middleOrange};\r\n color: ${colorStack.white};\r\n ${outlined && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.white};\r\n ${size === EIconButtonSize.MEDIUM && css`\r\n color: ${colorStack.middleOrange};\r\n `}\r\n `};\r\n `};\r\n ${({ colorSchema, outlined, size }) => colorSchema === EIconButtonColorSchema.SUCCESS && css`\r\n border-color: ${colorStack.middleGreen};\r\n background: ${colorStack.middleGreen};\r\n color: ${colorStack.white};\r\n ${outlined && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.white};\r\n ${size === EIconButtonSize.MEDIUM && css`\r\n color: ${colorStack.middleGreen};\r\n `}\r\n `};\r\n `};\r\n ${({ typeSchema, colorSchema, outlined }) => typeSchema === EIconButtonTypeSchema.SECONDARY && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.lightBlue};\r\n border-color: ${colorStack.lightBlue};\r\n ${outlined && css`\r\n border-color: ${colorStack.ligthGrey};\r\n background: ${colorStack.white};\r\n color: ${colorStack.middleBlue};\r\n `};\r\n ${colorSchema === EIconButtonColorSchema.ALERT && css`\r\n border-color: ${colorStack.lightRed};\r\n background: ${colorStack.lightRed};\r\n color: ${colorStack.darkRed};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleRed};\r\n `};\r\n `};\r\n ${colorSchema === EIconButtonColorSchema.WARNING && css`\r\n border-color: ${colorStack.lightOrange};\r\n background: ${colorStack.lightOrange};\r\n color: ${colorStack.darkOrange};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleOrange};\r\n `};\r\n `};\r\n ${colorSchema === EIconButtonColorSchema.SUCCESS && css`\r\n border-color: ${colorStack.lightGreen};\r\n background: ${colorStack.lightGreen};\r\n color: ${colorStack.darkGreen};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleGreen};\r\n `};\r\n `};\r\n `};\r\n ${({ typeSchema, colorSchema, outlined }) => typeSchema === EIconButtonTypeSchema.TERTIARY && css`\r\n color: ${colorStack.middleBlue};\r\n background: ${colorStack.bodyBg};\r\n border-color: ${colorStack.bodyBg};\r\n ${outlined && css`\r\n border-color: ${colorStack.ligthGrey};\r\n background: ${colorStack.white};\r\n color: ${colorStack.middleBlue};\r\n `};\r\n ${colorSchema === EIconButtonColorSchema.ALERT && css`\r\n border-color: ${colorStack.bodyBg};\r\n background: ${colorStack.bodyBg};\r\n color: ${colorStack.middleRed};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleRed};\r\n `};\r\n `};\r\n ${colorSchema === EIconButtonColorSchema.WARNING && css`\r\n border-color: ${colorStack.bodyBg};\r\n background: ${colorStack.bodyBg};\r\n color: ${colorStack.middleOrange};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleOrange};\r\n `};\r\n `};\r\n ${colorSchema === EIconButtonColorSchema.SUCCESS && css`\r\n border-color: ${colorStack.bodyBg};\r\n background: ${colorStack.bodyBg};\r\n color: ${colorStack.middleGreen};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleGreen};\r\n `};\r\n `};\r\n `};\r\n ${({ disabled, typeSchema }) => disabled && css`\r\n cursor: default;\r\n color: ${colorStack.disabled};\r\n background: ${colorStack.ligthGrey};\r\n border-color: ${colorStack.ligthGrey};\r\n `};\r\n`;\r\n\r\ninterface IProps {\r\n icon: IconDefinition;\r\n typeSchema?: EIconButtonTypeSchema;\r\n size?: EIconButtonSize;\r\n colorSchema?: EIconButtonColorSchema;\r\n disabled?: boolean;\r\n shape?: EIconButtonShape;\r\n outlined?: boolean;\r\n onClick?(e: React.MouseEvent);\r\n}\r\n\r\nexport const IconButton: FC = props => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};","import { IconDefinition } from '@fortawesome/fontawesome-common-types';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { ESpinnerSize, Spinner } from '../Spinner/Spinner';\r\n\r\nexport enum EButtonSize {\r\n XSMALL = 'XSMALL',\r\n SMALL = 'SMALL',\r\n MEDIUM = 'MEDIUM'\r\n}\r\n\r\nexport enum EButtonTypeSchema {\r\n PRIMARY = 'PRIMARY',\r\n SECONDARY = 'SECONDARY',\r\n TERTIARY = 'TERTIARY',\r\n TEXT = 'TEXT'\r\n}\r\n\r\nexport enum EButtonColorSchema {\r\n NEUTRAL = 'NEUTRAL',\r\n ALERT = 'ALERT',\r\n WARNING = 'WARNING',\r\n SUCCESS = 'SUCCESS'\r\n}\r\n\r\nconst Wrapper = styled.button<{ size: EButtonSize, typeSchema: EButtonTypeSchema, disabled: boolean, colorSchema: EButtonColorSchema, outlined: boolean }>`\r\n padding: 6px 1rem;\r\n border-radius: 8px;\r\n white-space: nowrap;\r\n border: 2px solid;\r\n ${fontSizeAndHeight[16]};\r\n border-color: ${colorStack.middleBlue};\r\n background: ${colorStack.middleBlue};\r\n color: ${colorStack.white};\r\n font-weight: 500;\r\n cursor: pointer;\r\n justify-content: center;\r\n display: flex;\r\n align-items: center;\r\n svg {\r\n &:nth-child(1){\r\n margin-right: .5rem;\r\n }\r\n &:nth-child(2){\r\n margin-left: .5rem;\r\n }\r\n &:nth-child(3){\r\n margin-left: .5rem;\r\n }\r\n }\r\n > div {\r\n margin-left: .5rem;\r\n }\r\n ${({ outlined }) => outlined && css`\r\n background: ${colorStack.white};\r\n color: ${colorStack.darkBlue};\r\n border-color: ${colorStack.middleBlue};\r\n `};\r\n ${({ size }) => size === EButtonSize.SMALL && css`\r\n padding: 10px 1rem;\r\n `};\r\n ${({ size, outlined }) => size === EButtonSize.MEDIUM && css`\r\n ${fontSizeAndHeight[25]};\r\n padding: 10px 1rem;\r\n ${outlined && css`\r\n color: ${colorStack.middleBlue};\r\n `};\r\n `};\r\n ${({ colorSchema, outlined, size }) => colorSchema === EButtonColorSchema.ALERT && css`\r\n border-color: ${colorStack.middleRed};\r\n background: ${colorStack.middleRed};\r\n color: ${colorStack.white};\r\n ${outlined && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.white};\r\n ${size === EButtonSize.MEDIUM && css`\r\n color: ${colorStack.middleRed};\r\n `}\r\n `};\r\n `};\r\n ${({ colorSchema, outlined, size }) => colorSchema === EButtonColorSchema.WARNING && css`\r\n border-color: ${colorStack.middleOrange};\r\n background: ${colorStack.middleOrange};\r\n color: ${colorStack.white};\r\n ${outlined && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.white};\r\n ${size === EButtonSize.MEDIUM && css`\r\n color: ${colorStack.middleOrange};\r\n `}\r\n `};\r\n `};\r\n ${({ colorSchema, outlined, size }) => colorSchema === EButtonColorSchema.SUCCESS && css`\r\n border-color: ${colorStack.middleGreen};\r\n background: ${colorStack.middleGreen};\r\n color: ${colorStack.white};\r\n ${outlined && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.white};\r\n ${size === EButtonSize.MEDIUM && css`\r\n color: ${colorStack.middleGreen};\r\n `}\r\n `};\r\n `};\r\n ${({ typeSchema, colorSchema, outlined }) => typeSchema === EButtonTypeSchema.SECONDARY && css`\r\n color: ${colorStack.darkBlue};\r\n background: ${colorStack.lightBlue};\r\n border-color: ${colorStack.lightBlue};\r\n ${outlined && css`\r\n border-color: ${colorStack.ligthGrey};\r\n background: ${colorStack.white};\r\n color: ${colorStack.middleBlue};\r\n `};\r\n ${colorSchema === EButtonColorSchema.ALERT && css`\r\n border-color: ${colorStack.lightRed};\r\n background: ${colorStack.lightRed};\r\n color: ${colorStack.darkRed};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleRed};\r\n `};\r\n `};\r\n ${colorSchema === EButtonColorSchema.WARNING && css`\r\n border-color: ${colorStack.lightOrange};\r\n background: ${colorStack.lightOrange};\r\n color: ${colorStack.darkOrange};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleOrange};\r\n `};\r\n `};\r\n ${colorSchema === EButtonColorSchema.SUCCESS && css`\r\n border-color: ${colorStack.lightGreen};\r\n background: ${colorStack.lightGreen};\r\n color: ${colorStack.darkGreen};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleGreen};\r\n `};\r\n `};\r\n `};\r\n ${({ typeSchema, colorSchema, outlined }) => typeSchema === EButtonTypeSchema.TERTIARY && css`\r\n color: ${colorStack.middleBlue};\r\n background: ${colorStack.bodyBg};\r\n border-color: ${colorStack.bodyBg};\r\n ${outlined && css`\r\n border-color: ${colorStack.ligthGrey};\r\n background: ${colorStack.white};\r\n color: ${colorStack.middleBlue};\r\n `};\r\n ${colorSchema === EButtonColorSchema.ALERT && css`\r\n border-color: ${colorStack.bodyBg};\r\n background: ${colorStack.bodyBg};\r\n color: ${colorStack.middleRed};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleRed};\r\n `};\r\n `};\r\n ${colorSchema === EButtonColorSchema.WARNING && css`\r\n border-color: ${colorStack.bodyBg};\r\n background: ${colorStack.bodyBg};\r\n color: ${colorStack.middleOrange};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleOrange};\r\n `};\r\n `};\r\n ${colorSchema === EButtonColorSchema.SUCCESS && css`\r\n border-color: ${colorStack.bodyBg};\r\n background: ${colorStack.bodyBg};\r\n color: ${colorStack.middleGreen};\r\n ${outlined && css`\r\n background: ${colorStack.white};\r\n border-color: ${colorStack.ligthGrey};\r\n color: ${colorStack.middleGreen};\r\n `};\r\n `};\r\n `};\r\n ${({ typeSchema, colorSchema, outlined }) => typeSchema === EButtonTypeSchema.TEXT && css`\r\n color: ${colorStack.middleBlue};\r\n background: transparent;\r\n border-color: transparent;\r\n ${outlined && css`\r\n border-color: transparent;\r\n background: transparent;\r\n color: ${colorStack.middleBlue};\r\n `};\r\n ${colorSchema === EButtonColorSchema.ALERT && css`\r\n border-color: transparent;\r\n background:transparent;\r\n color: ${colorStack.middleRed};\r\n ${outlined && css`\r\n background: transparent;\r\n border-color: transparent;\r\n color: ${colorStack.middleRed};\r\n `};\r\n `};\r\n ${colorSchema === EButtonColorSchema.WARNING && css`\r\n border-color: transparent;\r\n background: transparent;\r\n color: ${colorStack.middleOrange};\r\n ${outlined && css`\r\n background: transparent;\r\n border-color: transparent;\r\n color: ${colorStack.middleOrange};\r\n `};\r\n `};\r\n ${colorSchema === EButtonColorSchema.SUCCESS && css`\r\n border-color: transparent;\r\n background: transparent;\r\n color: ${colorStack.middleGreen};\r\n ${outlined && css`\r\n background: transparent;\r\n border-color: transparent;\r\n color: ${colorStack.middleGreen};\r\n `};\r\n `};\r\n `};\r\n ${({ disabled, typeSchema }) => disabled && css`\r\n cursor: default;\r\n color: ${colorStack.disabled};\r\n background: ${colorStack.ligthGrey};\r\n border-color: ${colorStack.ligthGrey};\r\n ${typeSchema === EButtonTypeSchema.TEXT && css`\r\n background: transparent;\r\n border-color: transparent;\r\n `};\r\n `};\r\n`;\r\n\r\ninterface IProps {\r\n children: React.ReactNode;\r\n typeSchema?: EButtonTypeSchema;\r\n size?: EButtonSize;\r\n colorSchema?: EButtonColorSchema;\r\n rightIco?: IconDefinition;\r\n leftIco?: IconDefinition;\r\n loading?: boolean;\r\n disabled?: boolean;\r\n outlined?: boolean;\r\n className?: string;\r\n type?: 'submit' | 'reset' | 'button' | undefined;\r\n onClick?(e: React.MouseEvent);\r\n}\r\n\r\nexport const Button: FC = props => {\r\n return (\r\n \r\n {props.leftIco &&\r\n \r\n }\r\n {props.children}\r\n {(props.rightIco && !props.loading) &&\r\n \r\n }\r\n {props.loading &&\r\n \r\n }\r\n \r\n );\r\n};","import React, { useCallback, FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport { IDropdownOption } from '@fluentui/react';\r\nimport { faMinusCircle } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { IRefferentialObj, IRegistrations } from '../../../entities/ILegalEntities';\r\nimport { IReferencial } from '../../../entities/IGlobal';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { SelectInput } from '../../Common/SelectInput/SelectInput';\r\nimport { TextComponent } from '../Inputs/TextComponent';\r\n\r\nconst TableRow = styled.div`\r\n display: flex;\r\n align-items: center;\r\n > div {\r\n padding: .5rem;\r\n &:first-child {\r\n width: 220px;\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n }\r\n &:nth-child(2) {\r\n display: flex;\r\n align-items: center;\r\n width: calc(100% - 420px);\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n input {\r\n margin: 0 1rem 0 0;\r\n }\r\n }\r\n &:nth-child(3) {\r\n width: 232px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n svg {\r\n color: ${colorStack.darkRed};\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n`;\r\n\r\ninterface ISingleRegistrationRowProps {\r\n elem: IRegistrations;\r\n aliasType: IReferencial[];\r\n elemIndex: number;\r\n removeRow(elemIndex: number);\r\n aliasChange(elemIndex: number, aliasChange: IRefferentialObj);\r\n codeChange(elemIndex: number, value: string);\r\n}\r\n\r\nexport const SingleRegistrationRow: FC = props => {\r\n\r\n const aliasChange = useCallback((aliasType: IRefferentialObj) => {\r\n props.aliasChange(props.elemIndex, aliasType);\r\n }, [props.elemIndex, props.aliasChange]);\r\n\r\n const codeChange = useCallback((e: React.ChangeEvent) => {\r\n props.codeChange(props.elemIndex, e.target.value);\r\n }, [props.elemIndex, props.codeChange]);\r\n\r\n const removeRowCode = useCallback(() => {\r\n props.removeRow(props.elemIndex);\r\n }, [props.elemIndex, props.removeRow]);\r\n\r\n return (\r\n \r\n
    \r\n {(props.aliasType && props.aliasType.length > 0) &&\r\n aliasChange(option.data)}\r\n options={props.aliasType.map(elem => ({\r\n key: elem.name,\r\n text: elem.name,\r\n data: elem\r\n }))}\r\n />\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport { faBuilding } from '@fortawesome/pro-duotone-svg-icons';\r\nimport { faPlusCircle } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { useFormikContext } from 'formik';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport boxShadow from '../../../styleHelpers/mixins/shadow';\r\nimport { addressFormatterGlobal } from '../../../tools/addressFormatter';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { IMainInformation, MainInformationEditField } from '../../../entities/CLE/ICLE';\r\nimport { ExternalLink } from '../../Common/ExternalLink';\r\nimport { getReferentials } from '../../../actions/globalActions';\r\nimport { StakesWrapper } from '../../Common/CLEComponents/StakesWrapper';\r\nimport { EStakeDetailsType, EPropertieKey, EStakeDetailsSubType } from '../../../entities/IClusterStake';\r\nimport ImageCropper from '../../Common/ImageCropper/ImageCropper';\r\nimport { SingleRegistrationRow } from './SingleRegistrationRow';\r\nimport { referentialConfiguration } from '../../../tools/selectConfiguration';\r\nimport { toValidLink } from '../../../tools/links';\r\nimport { IRefferentialObj, IRegistrations } from '../../../entities/ILegalEntities';\r\nimport { objectKeysToCamelCase } from '../../../tools/objectTools';\r\nimport { EReferentials, EContextList, IReferencial } from '../../../entities/IGlobal';\r\nimport { TranslateReferentials } from '../../../tools/referentials';\r\n\r\ntype GetReferentials = ReturnType;\r\n\r\nconst Wrapper = styled.div`\r\n background: ${colorStack.white};\r\n border-radius: 4px;\r\n padding: 1rem;\r\n ${boxShadow()};\r\n margin-bottom: 1rem;\r\n display: flex;\r\n word-wrap: break-word;\r\n`;\r\n\r\nconst PhotoWrapper = styled.div`\r\n width: 128px;\r\n border-radius: 4px;\r\n margin: 0 1rem 0 0;\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n img {\r\n width: 100%;\r\n max-height: 100%;\r\n }\r\n`;\r\n\r\nconst Address = styled.div`\r\n ${fontSizeAndHeight[16]};\r\n color: ${colorStack.darkBlue};\r\n margin: 0 0 1rem 0;\r\n overflow: hidden;\r\n width: 100%;\r\n`;\r\n\r\nconst Meta = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 250px;\r\n margin: 0 1rem 1rem 0;\r\n span {\r\n color: ${colorStack.darkBlue};\r\n ${fontSizeAndHeight[16]};\r\n }\r\n`;\r\n\r\nconst Label = styled.div`\r\n ${fontSizeAndHeight[13]};\r\n color: ${colorStack.disabled};\r\n margin: 0 0 .5rem 0;\r\n`;\r\n\r\nconst MetasBox = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nconst Name = styled.div`\r\n color: ${colorStack.darkBlue};\r\n ${fontSizeAndHeight[16]};\r\n font-weight: 700;\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nconst Content = styled.div`\r\n width: calc(100% - 128px - 1rem);\r\n`;\r\n\r\nconst Logo = styled.div`\r\n width: 128px;\r\n height: 128px;\r\n border: 1px solid ${colorStack.ligthGrey};\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n cursor: pointer;\r\n justify-content: center;\r\n margin: 0 0 1rem 0;\r\n svg {\r\n margin-bottom: .5rem;\r\n }\r\n img {\r\n max-width: 100%;\r\n max-height: 100%;\r\n width: 100%; /** IE11 fix ;/ */\r\n }\r\n`;\r\n\r\nconst AddRegistration = styled.button`\r\n color: ${colorStack.darkBlue};\r\n margin: 10px 0;\r\n cursor: pointer;\r\n outline: none;\r\n text-align: left;\r\n svg {\r\n margin: 0 10px 0 0;\r\n }\r\n`;\r\n\r\nconst RegistrationTable = styled.div`\r\n border: 1px solid ${colorStack.ligthGrey};\r\n`;\r\nconst HeadTable = styled.div`\r\n border-bottom: 1px solid ${colorStack.ligthGrey};\r\n display: flex;\r\n div {\r\n padding: .5rem;\r\n font-weight: 600;\r\n color: ${colorStack.darkBlue};\r\n &:first-child {\r\n width: 220px;\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n }\r\n &:nth-child(2) {\r\n width: calc(100% - 420px);\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n }\r\n &:nth-child(3) {\r\n width: 232px;\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n }\r\n }\r\n\r\n`;\r\nconst BodyTable = styled.div`\r\n background: ${colorStack.whiteGrey};\r\n`;\r\n\r\nconst RegistrationWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\ninterface IProps {\r\n data: IMainInformation;\r\n editMode: boolean;\r\n context: 'Cluster' | 'PLE';\r\n changeBlobPicture?(blob: Blob);\r\n}\r\n\r\nexport const MainInformation: FC = props => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n const formikContext = useFormikContext();\r\n const [aliasType, setAliasType] = useState(undefined);\r\n const [showCropper, setShowCropper] = useState(false);\r\n\r\n useEffect(() => {\r\n dispatch(getReferentials('', EReferentials.AliasType, EContextList.Corporate)).then(response => {\r\n setAliasType(response);\r\n });\r\n }, []);\r\n\r\n const cropperHandler = useCallback(() => {\r\n setShowCropper(currentState => !currentState);\r\n }, []);\r\n\r\n const returnImage = useCallback((blobPictureData: File, Picture: string) => {\r\n setShowCropper(currentState => !currentState);\r\n props.changeBlobPicture(blobPictureData);\r\n formikContext.setFieldValue(MainInformationEditField[props.context]?.picture, Picture);\r\n }, [props.context]);\r\n\r\n const removeRowCode = useCallback((elemIndex: number) => {\r\n formikContext.setFieldValue(MainInformationEditField[props.context]?.registrations, props.data?.registrations.filter((elem, index) => index !== elemIndex));\r\n }, [props.data?.registrations, props.context]);\r\n\r\n const aliasChange = useCallback((elemIndex: number, elemAliasType: IRefferentialObj) => {\r\n formikContext.setFieldValue(MainInformationEditField[props.context]?.registrations, props.data?.registrations.map((elem, index) => index === elemIndex ? {\r\n ...elem,\r\n aliasType: elemAliasType\r\n } : elem));\r\n }, [props.data?.registrations, props.context]);\r\n\r\n const codeChange = useCallback((elemIndex: number, aliasValue: string) => {\r\n formikContext.setFieldValue(MainInformationEditField[props.context]?.registrations, props.data?.registrations.map((elem, index) => index === elemIndex ? {\r\n ...elem,\r\n aliasValue\r\n } : elem));\r\n }, [props.data?.registrations, props.context]);\r\n\r\n const addRegistration = useCallback(() => {\r\n const newRegistration = {\r\n aliasType: aliasType?.[0],\r\n aliasValue: '',\r\n showInHeader: false\r\n };\r\n formikContext.setFieldValue(MainInformationEditField[props.context]?.registrations, [...(props.data?.registrations || []), newRegistration]);\r\n }, [props.data?.registrations, props.context, aliasType]);\r\n\r\n return (\r\n \r\n \r\n {props.data && (!props.editMode ? (\r\n <>\r\n \r\n {props.data?.picture ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {(props.data?.name && props.context !== 'PLE') &&\r\n <>\r\n {!!props.data?.pleId ? (\r\n \r\n \r\n {props.data?.name}\r\n \r\n \r\n ) : (\r\n {props.data?.name}\r\n )}\r\n \r\n }\r\n {props.data?.address &&\r\n \r\n \r\n
    {props.data?.address && addressFormatterGlobal(props.data?.address)}
    \r\n \r\n }\r\n \r\n {props.data?.typeOfLegalEntity?.name &&\r\n \r\n \r\n {props.data?.typeOfLegalEntity?.name}\r\n \r\n }\r\n {props.data?.legalForm?.name &&\r\n \r\n \r\n {props.data?.legalForm?.name}\r\n \r\n }\r\n {props.data?.registeredCapital?.number &&\r\n \r\n \r\n {props.data?.registeredCapital?.number} \r\n \r\n }\r\n {(props.data?.registrations?.length > 0 && (props.data?.registrations[0]?.aliasType?.name || props.data?.registrations[0]?.aliasValue)) &&\r\n \r\n \r\n {(objectKeysToCamelCase(props.data?.registrations || [])).map(registration =>\r\n
    \r\n \r\n {registration?.aliasType?.name}\r\n {registration?.aliasType?.name && registration?.aliasValue && (\r\n : \r\n )}\r\n {registration?.aliasValue}\r\n \r\n
    \r\n )}\r\n \r\n }\r\n {props.data?.nationality?.name &&\r\n \r\n \r\n {props.data?.nationality?.name}\r\n \r\n }\r\n {props.data?.group?.name &&\r\n \r\n \r\n {props.data?.group?.name}\r\n \r\n }\r\n {props.data?.websiteUrl &&\r\n \r\n \r\n {toValidLink(props.data?.websiteUrl)}\r\n \r\n }\r\n {props.data?.phoneNumber &&\r\n \r\n \r\n {props.data?.phoneNumber}\r\n \r\n }\r\n
    \r\n
    \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {props.data?.picture ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n {showCropper &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {props.data?.registrations?.map((elem, index) =>\r\n \r\n )}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n ))}\r\n\r\n
    \r\n );\r\n};","import React, { useCallback, useState, useEffect, FC } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { useFormikContext } from 'formik';\r\nimport { IDropdownOption, IPersonaProps } from '@fluentui/react';\r\nimport styled, { css } from 'styled-components';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { EClusterPrivacy, IClusterPersonInCharge, EClusterVisibility, EContextTypes } from '../../../entities/IClusters';\r\nimport { EReferentials, EProfileType, EContextList, EClusterStatus } from '../../../entities/IGlobal';\r\nimport { getOrganizationMembersSearch } from '../../../actions/organizationActions';\r\nimport { getReferentials, getReferentialsIdentities } from '../../../actions/globalActions';\r\nimport { getSearchResult } from '../../../actions/searchActions';\r\nimport { FacetsNames } from '../../../entities/ISearch';\r\nimport { IPresentation, PresentationEditField } from '../../../entities/CLE/ICLE';\r\nimport { EStakeDetailsType } from '../../../entities/IClusterStake';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { media } from '../../../styleHelpers/breakpoint';\r\nimport { Tag } from '../TagPicker/Tag';\r\nimport { TagPickerColor, TagPicker, ITag } from '../TagPicker/TagPicker';\r\nimport { DebouncedPeoplePicker } from '../DebouncedPeoplePicker';\r\nimport { WhiteCollapsedSection } from '../WhiteCollapsedSection/WhiteCollapsedSection';\r\nimport { PresentationSection } from '../../Organization/ClustersV2/ClusterOverview/PresentationComponents';\r\nimport { SetPropertiesIcon } from '../../Organization/ClustersV2/ClusterOverview/StakeComponents/SetPropertiesIcon';\r\nimport { ProfilesSummary } from '../ProfilesSummary/ProfilesSummary';\r\nimport { clusterPrivacyTranslation, clusterVisibilityTranslation } from '../../../tools/translationTools';\r\nimport { EProfileDataType } from '../../../tools/profileConstants';\r\nimport { SelectInput } from '../../Common/SelectInput/SelectInput';\r\nimport { convertPascalCaseKeyToCamelCaseKey } from '../../../tools/string';\r\nimport { getStatusText } from '../../../tools/statusHelper';\r\nimport { NewRtView } from '../RichText/NewRtView';\r\n\r\ntype GetOrgMembers = ReturnType;\r\ntype GetReferentialsIdentities = ReturnType;\r\ntype GetReferentials = ReturnType;\r\ntype GetSearchResult = ReturnType;\r\n\r\nconst Wrapper = styled.div<{ pageBreakOn?: boolean; }>`\r\n ${props => props.pageBreakOn && css`\r\n page-break-inside:avoid;\r\n `}\r\n`;\r\n\r\nconst RowLeft = styled.div`\r\n ${fontSizeAndHeight[13]};\r\n color: ${colorStack.disabled};\r\n width: 100%;\r\n font-weight: 500;\r\n margin: 0 0 1rem 0;\r\n ${media.desktop`\r\n width: 25%;\r\n margin: 0;\r\n `};\r\n svg, img {\r\n margin: 0 1rem 0 0;\r\n width: 16px!important;\r\n }\r\n`;\r\n\r\nconst RowRight = styled.div`\r\n width: 100%;\r\n ${media.desktop`\r\n width: 75%;\r\n `}\r\n`;\r\n\r\ninterface IPresentationProps {\r\n editMode: boolean;\r\n data: IPresentation;\r\n context: 'Cluster' | 'PLE';\r\n pageBreakOn?: boolean;\r\n}\r\n\r\nexport const Presentation: FC = props => {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const formikContext = useFormikContext();\r\n const [referentialsName, setReferentialsName] = useState<{ name: string, type: string, key: string }[]>(undefined);\r\n\r\n useEffect(() => {\r\n dispatch(getReferentialsIdentities('')).then(res => {\r\n const ref1 = res.filter(elem => elem.referentialType === EProfileDataType.FirstReferential)[0];\r\n const ref2 = res.filter(elem => elem.referentialType === EProfileDataType.SecondReferential)[0];\r\n const ref3 = res.filter(elem => elem.referentialType === EProfileDataType.ThirdReferential)[0];\r\n setReferentialsName([{ name: ref1.name, type: ref1.referentialType, key: ref1.key }, { name: ref2.name, type: ref2.referentialType, key: ref2.key }, { name: ref3.name, type: ref3.referentialType, key: ref3.key }]);\r\n });\r\n }, [props.data?.organizationId]);\r\n\r\n const transformPickerResult = useCallback((profile: IClusterPersonInCharge): IPersonaProps => ({\r\n id: profile.id,\r\n text: `${profile.firstName} ${profile.lastName}`,\r\n imageInitials: `${(profile.firstName || '').slice(0, 1)}${(profile.lastName || '').slice(0, 1)}`,\r\n imageUrl: profile.picture,\r\n secondaryText: [profile.jobTitle, profile.cabinet].filter(val => val).join(' - ')\r\n }), []);\r\n\r\n const resolvePeople = useCallback(async (query: string = ''): Promise => {\r\n let members = undefined;\r\n if (props.context === 'PLE') {\r\n members = await dispatch(getSearchResult(query || '', 0, 20, Object.keys(FacetsNames).reduce((result, item) => {\r\n result[item] = [];\r\n return result;\r\n }, {})));\r\n return (members.items || []).map(({ firstName, lastName, jobTitle, picture, id }) => ({\r\n firstName: firstName, lastName: lastName, jobTitle: jobTitle, picture: picture, id\r\n }));\r\n } else {\r\n members = await dispatch(getOrganizationMembersSearch(props.data?.organizationId, query));\r\n return (members || []).map(({ firstName, lastName, jobTitle, department, picture, cabinet, id }) => ({\r\n firstName, lastName, jobTitle, department, picture, cabinet, id\r\n }));\r\n }\r\n }, [props.context]);\r\n\r\n const resolveReferentials = useCallback(async (type: EReferentials, query: string): Promise => {\r\n const referentials = await dispatch(getReferentials(query, type, EContextList.Platform));\r\n return referentials.map(ref => ({\r\n ...ref,\r\n value: ref.name\r\n }));\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {props.data && (!props.editMode ? (\r\n }\r\n editMode={props.editMode}\r\n >\r\n {!!PresentationEditField[props.context].description && !!props.data?.description?.length && (\r\n \r\n \r\n \r\n \r\n \r\n {!!props.data?.description && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!!PresentationEditField[props.context].peopleInCharge && !!props.data?.peopleInCharge?.length && (\r\n \r\n \r\n \r\n \r\n \r\n {!!props.data?.peopleInCharge?.length && (\r\n \r\n {(props.data.peopleInCharge || []).map(profile => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n {(!!props.data?.firstReferential && !!PresentationEditField[props.context].firstReferential && (!!props.data.firstReferential?.referentials?.length || !!props.data.firstReferential?.length)) && (\r\n \r\n \r\n \r\n \r\n {referentialsName?.[0]?.key !== undefined ?\r\n \r\n : referentialsName?.[0]?.name\r\n }\r\n \r\n \r\n \r\n {(props.data.firstReferential?.referentials || props.data.firstReferential || []).map(referential => (\r\n \r\n {referential.name || referential.Name}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {(!!props.data?.secondReferential && !!PresentationEditField[props.context].secondReferential && !!props.data.secondReferential?.referentials?.length || !!props.data.secondReferential?.length) && (\r\n \r\n \r\n \r\n \r\n {referentialsName?.[1]?.key !== undefined ?\r\n \r\n : referentialsName?.[1]?.name\r\n }\r\n \r\n \r\n \r\n {(props.data.secondReferential?.referentials || props.data.secondReferential || []).map(referential => (\r\n \r\n {referential.name || referential.Name}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {(!!props.data?.thirdReferential && !!PresentationEditField[props.context].thirdReferential && !!props.data.thirdReferential?.referentials?.length || !!props.data.thirdReferential?.length) && (\r\n \r\n \r\n \r\n \r\n {referentialsName?.[2]?.key !== undefined ?\r\n \r\n : referentialsName?.[2]?.name\r\n }\r\n \r\n \r\n \r\n {(props.data.thirdReferential?.referentials || props.data.thirdReferential || []).map(referential => (\r\n \r\n {referential.name || referential.Name}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n }\r\n >\r\n {!!PresentationEditField[props.context].peopleInCharge &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n formikContext.setFieldValue(PresentationEditField[props.context].peopleInCharge, result)}\r\n itemLimit={15}\r\n />\r\n \r\n \r\n }\r\n {!!PresentationEditField.PLE.visibility && props.context === EContextTypes.PLE &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n formikContext.setFieldValue(PresentationEditField.PLE.visibility, option.key)}\r\n options={[{ key: 0, text: 'Visible' }, { key: 1, text: 'Hidden' }].map(elem => ({\r\n key: elem.key, text: clusterVisibilityTranslation(EClusterVisibility[elem.text], intl)\r\n }))}\r\n />\r\n \r\n \r\n }\r\n {!!PresentationEditField[props.context].status &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n formikContext.setFieldValue(PresentationEditField[props.context].status, option.key)}\r\n options={[EClusterStatus.Active, EClusterStatus.Closed, EClusterStatus.Archived].map(key => ({\r\n key, text: getStatusText(key, intl)\r\n }))}\r\n />\r\n \r\n \r\n }\r\n {!!PresentationEditField[props.context].privacy &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n formikContext.setFieldValue(PresentationEditField[props.context].privacy, option.key)}\r\n options={Object.keys(EClusterPrivacy).map(key => ({\r\n key, text: clusterPrivacyTranslation(EClusterPrivacy[key], intl)\r\n }))}\r\n />\r\n \r\n \r\n }\r\n {!!PresentationEditField[props.context].firstReferential &&\r\n \r\n \r\n \r\n \r\n {referentialsName?.[0]?.key !== undefined ?\r\n \r\n : referentialsName?.[0]?.name\r\n }\r\n \r\n \r\n \r\n resolveReferentials(EReferentials.FirstReferential, query)}\r\n onChange={tags => formikContext.setFieldValue(PresentationEditField[props.context].firstReferential, props.context === 'PLE' ? tags.map(tag => ({\r\n ...tag,\r\n Name: tag.value\r\n })) : ({\r\n name: referentialsName?.[0]?.name || '',\r\n type: referentialsName?.[0]?.type || '',\r\n referentials: tags.map(tag => ({\r\n ...tag,\r\n id: tag.id,\r\n name: tag.value\r\n }))\r\n }))}\r\n selectedTags={(props.data?.firstReferential?.referentials || props.data?.firstReferential || []).map(referential => ({\r\n ...referential,\r\n value: referential.Name || referential.name\r\n }))}\r\n tagColor={TagPickerColor.LightBlue}\r\n onClearSearchBox={() => formikContext.setFieldValue(PresentationEditField[props.context].firstReferential, [])}\r\n />\r\n \r\n \r\n }\r\n\r\n {!!PresentationEditField[props.context].secondReferential &&\r\n \r\n \r\n \r\n \r\n {referentialsName?.[1]?.key !== undefined ?\r\n \r\n : referentialsName?.[1]?.name\r\n }\r\n \r\n \r\n \r\n resolveReferentials(EReferentials.SecondReferential, query)}\r\n onChange={tags => formikContext.setFieldValue(PresentationEditField[props.context].secondReferential, props.context === 'PLE' ? tags.map(tag => ({\r\n id: tag.id,\r\n Name: tag.value\r\n })) : ({\r\n name: referentialsName?.[1]?.name || '',\r\n type: referentialsName?.[1]?.type || '',\r\n referentials: tags.map(tag => ({\r\n id: tag.id,\r\n name: tag.value\r\n }))\r\n }))}\r\n selectedTags={(props.data?.secondReferential?.referentials || props.data?.secondReferential || []).map(referential => ({\r\n id: referential.id,\r\n value: referential.Name || referential.name\r\n }))}\r\n tagColor={TagPickerColor.LightBlue}\r\n onClearSearchBox={() => formikContext.setFieldValue(PresentationEditField[props.context].secondReferential, [])}\r\n />\r\n \r\n \r\n }\r\n {!!PresentationEditField[props.context].thirdReferential &&\r\n \r\n \r\n \r\n \r\n {referentialsName?.[2]?.key !== undefined ?\r\n \r\n : referentialsName?.[2]?.name\r\n }\r\n \r\n \r\n \r\n resolveReferentials(EReferentials.ThirdReferential, query)}\r\n onChange={tags => formikContext.setFieldValue(PresentationEditField[props.context].thirdReferential, props.context === 'PLE' ? tags.map(tag => ({\r\n id: tag.id,\r\n Name: tag.value\r\n })) : ({\r\n name: referentialsName?.[1]?.name || '',\r\n type: referentialsName?.[1]?.type || '',\r\n referentials: tags.map(tag => ({\r\n id: tag.id,\r\n name: tag.value\r\n }))\r\n }))}\r\n selectedTags={(props.data?.thirdReferential?.referentials || props.data?.thirdReferential || []).map(referential => ({\r\n id: referential.id,\r\n value: referential.Name || referential.name\r\n }))}\r\n tagColor={TagPickerColor.LightBlue}\r\n onClearSearchBox={() => formikContext.setFieldValue(PresentationEditField[props.context].thirdReferential, [])}\r\n />\r\n \r\n \r\n }\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { IDropdownOption } from '@fluentui/react';\r\nimport { useIntl } from 'react-intl';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { EConfigurationOfAvailableUnits, IClusterStakeProperty, EStakeDetailsSubType, EStakeDetailsType } from '../../../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { SelectInput } from '../../../../Common/SelectInput/SelectInput';\r\nimport { TextComponent } from '../../../../Common/Inputs/TextComponent';\r\nimport { IReferencial, IViewReferential } from '../../../../../entities/IGlobal';\r\nimport { getReferentials } from '../../../../../actions/globalActions';\r\nimport { TranslateReferentials } from '../../../../../tools/referentials';\r\nimport { numberFormatter } from '../../../../../tools/numberTools';\r\n\r\ntype GetReferentials = ReturnType;\r\n\r\nconst Wrapper = styled.div`\r\n span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nconst EditMode = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 1rem;\r\n > div {\r\n width: 50%;\r\n }\r\n`;\r\n\r\ninterface INumberContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: {\r\n errorCode: number;\r\n message: string;\r\n };\r\n context?: 'PLE' | 'Cluster';\r\n base?: boolean;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const NumberContent: FC = ({ base, context, error, data, editStake, propertieId, setEditingData }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n // tslint:disable-next-line:no-null-keyword\r\n const [content, setContent] = useState(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const [unit, setUnit] = useState(null);\r\n // tslint:disable-next-line:no-null-keyword\r\n const [units, setUnits] = useState(null);\r\n const referentialIdentity = data.configuration?.referentialIdentity;\r\n\r\n useEffect(() => {\r\n setContent(data?.value?.number || data?.value?.numericValue?.number as number);\r\n setUnit(data?.value?.unit || data?.value?.numericValue?.unit as string);\r\n if ((data?.configuration?.availableUnits?.configuration || data?.configuration?.availableUnits?.Configuration) === EConfigurationOfAvailableUnits.DynamicValues) {\r\n dispatch(getReferentials('', (data?.configuration?.availableUnits?.referentialType || data?.configuration?.availableUnits?.ReferentialType), (data?.configuration?.availableUnits?.referentialContext || data?.configuration?.availableUnits?.ReferentialContext)))\r\n .then(res => {\r\n setUnits(res);\r\n if (res.length === 1 && !unit) {\r\n setUnit({\r\n key: res[0].id,\r\n // tslint:disable-next-line:no-null-keyword\r\n parentId: null,\r\n uniqueKey: res[0].Key\r\n });\r\n // tslint:disable-next-line:no-null-keyword\r\n const value = ({ number: data?.value?.number || data?.value?.numericValue?.number, unit: { key: res[0].id, parentId: null, uniqueKey: res[0].Key } });\r\n setEditingData({\r\n ...data,\r\n value: data.type === EStakeDetailsType.NumberAndRisk ? { riskValue: data.value?.riskValue, numericValue: value } : value,\r\n id: propertieId\r\n });\r\n }\r\n });\r\n } else if ((data?.configuration?.availableUnits?.configuration || data?.configuration?.availableUnits?.Configuration) === EConfigurationOfAvailableUnits.DefinedValues) {\r\n setUnits((data?.configuration?.availableUnits?.valueKeys || data?.configuration?.availableUnits?.ValueKeys)?.map(elem => ({\r\n // tslint:disable-next-line:no-null-keyword\r\n Key: null,\r\n id: elem,\r\n name: elem,\r\n // tslint:disable-next-line:no-null-keyword\r\n logicalId: null\r\n })));\r\n }\r\n }, [data, editStake]);\r\n\r\n const changeNumber = useCallback((e: React.ChangeEvent) => {\r\n let text = e.target.value;\r\n const regex = /^\\d*\\.?(?:\\d{1,6})?$/g;\r\n if (regex.test(text) || text === '') {\r\n if (data.subType === EStakeDetailsSubType.Percentage && parseInt(text, 10) > 100) {\r\n setContent('100');\r\n text = '100';\r\n } else {\r\n // tslint:disable-next-line:no-null-keyword\r\n setContent(text !== '' ? text : null);\r\n }\r\n const value = referentialIdentity === 'Custom' ?\r\n // tslint:disable-next-line:no-null-keyword\r\n parseInt(text, 10) : ({ number: (text !== '' ? text.replace(' ', '') : null), unit: unit });\r\n setEditingData({\r\n ...data,\r\n value: data.type === EStakeDetailsType.NumberAndRisk ? { riskValue: data.value?.riskValue, numericValue: value } : value,\r\n id: propertieId\r\n });\r\n }\r\n }, [data, unit, setEditingData, context, units, propertieId]);\r\n\r\n const changeUnit = useCallback((unitElem: IViewReferential) => {\r\n setUnit(unitElem);\r\n const value = ({ number: content, unit: { key: unitElem.key, parentId: unitElem.parentId, uniqueKey: unitElem.uniqueKey } });\r\n setEditingData({\r\n ...data,\r\n value: data.type === EStakeDetailsType.NumberAndRisk ? { riskValue: data.value?.riskValue, numericValue: value } : value,\r\n id: propertieId\r\n });\r\n }, [data, content, setEditingData, context, units, propertieId]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n
    \r\n \r\n \r\n {units?.length > 1 ? (\r\n changeUnit(option as any)}\r\n options={units?.sort((a, b) => a.name.localeCompare(b.name))?.map(elem => ({\r\n key: elem.id,\r\n text: elem.name,\r\n uniqueKey: elem.Key,\r\n parentId: elem.referentialIdentityId\r\n }))}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n {(error) &&\r\n {error?.message}\r\n }\r\n
    \r\n ) : (\r\n <>\r\n {(data.value?.number && !base) &&\r\n <>\r\n {numberFormatter(data.value?.number)}\r\n {data.value?.unit && }\r\n \r\n }\r\n {(data.value?.baseNumber && base) &&\r\n <>\r\n {numberFormatter(data.value?.baseNumber)}\r\n {data.value?.baseUnit && }\r\n \r\n }\r\n \r\n )}\r\n
    \r\n );\r\n};","import React, { FC, useEffect, useRef, useState } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { TextComponent } from '../../../../Common/Inputs/TextComponent';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { NewRT } from '../../../../Common/RichText/NewRT';\r\nimport { NewRtView } from '../../../../Common/RichText/NewRtView';\r\n\r\nconst Wrapper = styled.div`\r\n span {\r\n overflow-wrap: break-word;\r\n }\r\n`;\r\n\r\ninterface ITextContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n simple?: boolean;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const TextContent: FC = ({ simple, error, data, editStake, propertieId, setEditingData }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const didMountRef = useRef(false);\r\n\r\n useEffect(() => {\r\n if (didMountRef.current) {\r\n setEditingData({\r\n ...data,\r\n value: inputValue,\r\n id: propertieId\r\n });\r\n }\r\n didMountRef.current = true;\r\n }, [inputValue]);\r\n\r\n useEffect(() => {\r\n setInputValue(data.value);\r\n }, []);\r\n\r\n const changeText = (value: string) => {\r\n setInputValue(value);\r\n };\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n {simple ? (\r\n changeText(e.target.value)} />\r\n ) : (\r\n changeText(value)}\r\n />\r\n )}\r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n <>\r\n {simple ? (\r\n
    {inputValue}
    \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};","import React, { FC, useEffect, useState, useCallback } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { Switch } from '../../../../Common/Switch/Switch';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { useNewDesignContext } from '../../../../NewDesignCommon/NewDesignSwitch/NewDesignSwitch';\r\nimport { RadioButton } from '../../../../Common/Inputs/RadioButton';\r\nimport { newDesignThemeSwitch } from '../../../../NewDesignCommon/NewDesignSwitch/newDesignTheme';\r\n\r\nconst Wrapper = styled.div`\r\n span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n ${(props) => newDesignThemeSwitch(props, () =>\r\n css`\r\n span {\r\n font-size: ${fontSize[13]};\r\n font-family: ${props.theme.font.primary};\r\n font-weight: 400;\r\n color: ${colorStack.content};\r\n }\r\n `\r\n)}\r\n`;\r\n\r\nconst RadioGroup = styled.div`\r\n padding-top: 12px;\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n\r\n & > :first-child {\r\n margin-right: 60px;\r\n }\r\n`;\r\n\r\ninterface IBooleanContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const BooleanContent: FC = ({ error, data, editStake, propertieId, setEditingData }) => {\r\n const intl = useIntl();\r\n // tslint:disable-next-line:no-null-keyword\r\n const [content, setContent] = useState(null);\r\n const newDesign = useNewDesignContext();\r\n\r\n useEffect(() => {\r\n setContent(data.value);\r\n }, [data, editStake]);\r\n\r\n const changeState = useCallback((value) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n setContent(state => value === state ? null : value);\r\n setEditingData({\r\n ...data,\r\n // tslint:disable-next-line:no-null-keyword\r\n value: value === data.value ? null : value,\r\n id: propertieId\r\n });\r\n }, [data, propertieId, setEditingData, content]);\r\n\r\n if (newDesign.active) {\r\n const yesMessage = intl.formatMessage({ id: 'global.yes' });\r\n const noMessage = intl.formatMessage({ id: 'global.no' });\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n changeState(true)}\r\n data-lc=\"js-lc-radio-true\"\r\n />\r\n changeState(false)}\r\n data-lc=\"js-lc-radio-false\"\r\n />\r\n \r\n {error && {error}}\r\n \r\n ) : (\r\n <>\r\n {content === true && yesMessage}\r\n {content === false && noMessage}\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport { IDropdownOption } from '@fluentui/react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faSync } from '@fortawesome/pro-light-svg-icons';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport moment from 'moment';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { getDaysOfMonth, months } from '../../../../../tools/date';\r\nimport { DatePickerWrapper } from '../../../../Common/DatePicker/DatePicker';\r\nimport { SelectInput } from '../../../../Common/SelectInput/SelectInput';\r\n\r\nconst Wrapper = styled.div`\r\n\r\n`;\r\n\r\nconst BalancedWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n span {\r\n margin: 0 0 0 .5rem;\r\n }\r\n`;\r\n\r\nconst SimpleCalendar = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst SelectWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin: 0 1rem 0 0;\r\n label {\r\n padding: 0;\r\n }\r\n > div {\r\n width: 70px;\r\n margin: 0 0 0 .5rem;\r\n }\r\n`;\r\n\r\ninterface IDateContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const DateContent: FC = ({ error, data, editStake, propertieId, setEditingData }) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n const [content, setContent] = useState(data?.value?.date || null);\r\n const [day, setDay] = useState(undefined);\r\n const [month, setMonth] = useState(undefined);\r\n const intl = useIntl();\r\n useEffect(() => {\r\n if (data.id !== 'BalanceSheetDate' && data?.key !== 'balance-sheet-date') {\r\n // tslint:disable-next-line:no-null-keyword\r\n !editStake && setContent(data.value?.date || null);\r\n }\r\n if (data.value?.date) {\r\n setDay(new Date(data.value?.date).getDate().toString());\r\n setMonth((new Date(data.value?.date).getMonth() + 1).toString());\r\n }\r\n }, [data, editStake]);\r\n\r\n const changeDate = useCallback((date: Date) => {\r\n const changeHour = date ? new Date(new Date(date).setHours(7)) : date;\r\n setContent(changeHour);\r\n setEditingData({\r\n ...data,\r\n value: { date: changeHour },\r\n id: propertieId\r\n });\r\n }, [data, propertieId, setEditingData]);\r\n\r\n const changeSimpleDate = useCallback((dayData: string) => {\r\n setDay(dayData);\r\n setEditingData({\r\n ...data,\r\n value: { date: new Date(`${month}/${dayData}/2000`) },\r\n id: propertieId\r\n });\r\n }, [data, month, day]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n {(data.id !== 'BalanceSheetDate' && data?.key !== 'balance-sheet-date') ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n setMonth(option.data)}\r\n options={months.map(elem => ({\r\n key: elem,\r\n text: elem,\r\n data: elem\r\n }))}\r\n />\r\n \r\n \r\n \r\n changeSimpleDate(option.data)}\r\n options={getDaysOfMonth[Number(month) - 1]?.map(elem => ({\r\n key: elem,\r\n text: elem,\r\n data: elem\r\n }))}\r\n />\r\n \r\n \r\n )}\r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n <>\r\n {(data.id === 'BalanceSheetDate' || data?.key === 'balance-sheet-date') ? (\r\n \r\n {data.value?.date &&\r\n <>\r\n \r\n \r\n {new Date(data.value?.date).getMonth() + 1}/{new Date(data.value?.date).getDate()}\r\n \r\n }\r\n \r\n ) : (\r\n <>\r\n {data.value?.date && moment.utc(data?.value?.date).local().format('DD MMM YYYY')}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};","import React, { useState, useCallback, useEffect, FC } from 'react';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\nimport { faBell } from '@fortawesome/pro-regular-svg-icons';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { Button, EButtonTypeSchema } from '../../../../Common/Buttons/NewButton';\r\nimport { DatesPopup } from '../StakeContainers/DatesPopup/DatesPopup';\r\nimport { StepsPopup } from '../../../../Common/StepsPopup/StepsPopup';\r\nimport { EPopupSizes, IReferencial } from '../../../../../entities/IGlobal';\r\nimport { IDates } from '../../../../../entities/IDates';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { getReferentials } from '../../../../../actions/globalActions';\r\nimport { DatePickerWrapper } from '../../../../Common/DatePicker/DatePicker';\r\n\r\ntype GetReferentials = ReturnType;\r\n\r\nconst AllWrapper = styled.div`\r\n > span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nconst RowWrapper = styled.div<{ blue: boolean }>`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n > div:first-child { width: 49%;}\r\n > button { width: 49%; margin: 0;}\r\n ${props => props.blue && css`\r\n > button {\r\n svg {\r\n color: ${colorStack.middleBlue};\r\n }\r\n }\r\n `}\r\n`;\r\n\r\ninterface IProps {\r\n editStake: boolean;\r\n data: IClusterStakeProperty;\r\n propertieId: string;\r\n organizationId: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const LegalDateContent: FC = props => {\r\n const intl = useIntl();\r\n const dispatch = useDispatch();\r\n const [showEventPopup, setShowEventPopup] = useState(false);\r\n const [title, setTitle] = useState(undefined);\r\n const [formValid, setFormValid] = useState(false);\r\n const [popupData, setPopupData] = useState(undefined);\r\n\r\n useEffect(() => {\r\n dispatch(getReferentials('', props.data.configuration.titleReferentialIdentityType, props.data.configuration.titleReferentialIdentityContext)).then(response => {\r\n setTitle(response.filter(elem => elem.Key === props.data.configuration.defaultReferentialKey)?.[0]);\r\n });\r\n }, [props.data.configuration.defaultReferentialKey]);\r\n\r\n const changeDate = useCallback((dateProp: Date) => {\r\n const changeHour = dateProp ? new Date(new Date(dateProp).setHours(7)) : undefined;\r\n props.setEditingData({\r\n ...props.data,\r\n value: props.data?.value?.title ? ({\r\n ...props.data.value,\r\n endAt: changeHour\r\n }) : ({\r\n actors: [],\r\n description: '',\r\n isReminderActivated: false,\r\n // tslint:disable-next-line:no-null-keyword\r\n reminder: null,\r\n // tslint:disable-next-line:no-null-keyword\r\n endAt: changeHour,\r\n // tslint:disable-next-line:no-null-keyword\r\n status: null,\r\n // tslint:disable-next-line:no-null-keyword\r\n title: title,\r\n // tslint:disable-next-line:no-null-keyword\r\n type: null,\r\n // tslint:disable-next-line:no-null-keyword\r\n startAt: null,\r\n // tslint:disable-next-line:no-null-keyword\r\n recuring: null,\r\n // tslint:disable-next-line:no-null-keyword\r\n nextOccurrenceDate: null\r\n }),\r\n id: props.propertieId\r\n });\r\n }, [props.data, props.propertieId, props.setEditingData, title]);\r\n\r\n const changeReminder = useCallback(() => {\r\n setShowEventPopup(state => !state);\r\n }, [props.data, props.propertieId]);\r\n\r\n const getDataFromPopup = useCallback((data: IDates) => {\r\n setPopupData(data);\r\n }, []);\r\n\r\n const confirmHandler = useCallback(() => {\r\n return new Promise((resolve) => {\r\n props.setEditingData({\r\n ...props.data,\r\n value: popupData,\r\n id: props.propertieId\r\n });\r\n resolve(true);\r\n setShowEventPopup(false);\r\n });\r\n }, [props.data, popupData, props.propertieId, props.setEditingData]);\r\n\r\n const validationDates = useCallback((valid: boolean) => {\r\n setFormValid(valid);\r\n }, []);\r\n\r\n // tslint:disable-next-line:no-null-keyword\r\n const date = (props.data.value?.endAt || props.data.value?.recuring?.frequency?.startDate) ? new Date(props.data.value?.endAt || props.data.value?.recuring?.frequency?.startDate) : null;\r\n\r\n return (\r\n \r\n {props.editStake ? (\r\n <>\r\n \r\n \r\n \r\n }\r\n confirmDisabled={false}\r\n finishHandler={changeReminder}\r\n size={EPopupSizes.MEDIUM}\r\n sendButtonType=\"button\"\r\n isFormValid={formValid}\r\n lastButtonText={}\r\n sendButtonText={}\r\n confirmHandler={confirmHandler}\r\n dirty\r\n steps={[\r\n {\r\n content: \r\n }\r\n ]}\r\n />\r\n \r\n \r\n ) : (\r\n <>\r\n {date && moment.utc(date).local().format('DD MMM YYYY')}\r\n \r\n )\r\n }\r\n \r\n );\r\n};","import React, { FC, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst Name = styled.span`\r\n ${fontSizeAndHeight[13]};\r\n color: ${colorStack.disabled};\r\n margin: 0 1rem 0 .5rem;\r\n`;\r\n\r\nconst SelectDot = styled.button<{ isSelected: boolean }>`\r\n cursor: pointer;\r\n width: 16px;\r\n height: 16px;\r\n border-radius: 50%;\r\n position: relative;\r\n transition: all .2s ease;\r\n border: 1px solid ${colorStack.disabled};\r\n &::after {\r\n background: ${colorStack.darkBlue};\r\n opacity: 0;\r\n position: absolute;\r\n content: \"\";\r\n border-radius: 50%;\r\n width: 8px;\r\n height: 8px;\r\n top: 3px;\r\n left: 3px;\r\n transition: all .2s ease;\r\n ${props => props.isSelected && css`\r\n opacity: 1;\r\n `}\r\n }\r\n &:hover {\r\n border-color: ${colorStack.darkBlue};\r\n }\r\n ${props => props.isSelected && css`\r\n border-color: ${colorStack.darkBlue};\r\n `}\r\n`;\r\n\r\ninterface SingleRadioItemProps {\r\n selectedItemId: string;\r\n name: string;\r\n id: string;\r\n onSelect(dataObj: {id: string, Name: string} );\r\n}\r\n\r\nexport const SingleRadioItem: FC = ({ selectedItemId, name, id, onSelect }) => {\r\n\r\n const selectHandler = useCallback(() => {\r\n if (id !== selectedItemId) {\r\n onSelect({id, Name: name});\r\n }\r\n }, [onSelect, id, selectedItemId, name]);\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n );\r\n};","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { IDropdownOption } from '@fluentui/react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\n\r\nimport { IClusterStakeProperty, EStakeDetailsSubType } from '../../../../../entities/IClusterStake';\r\nimport { getReferentials } from '../../../../../actions/globalActions';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { SingleRadioItem } from '../../../../Common/Buttons/SingleRadioItem';\r\nimport { SelectInput } from '../../../../Common/SelectInput/SelectInput';\r\n\r\nconst Wrapper = styled.div<{ radioSelect: boolean }>`\r\n ${props => props.radioSelect ? css`\r\n display: flex;\r\n ` : css`\r\n > span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n `}\r\n`;\r\n\r\ntype GetReferentials = ReturnType;\r\n\r\ninterface ISingleSelectContentProps {\r\n data: IClusterStakeProperty;\r\n propertieId: string;\r\n error: string;\r\n editStake: boolean;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const SingleSelectContent: FC = ({ error, data, editStake, propertieId, setEditingData }) => {\r\n const dispatch = useDispatch();\r\n const intl = useIntl();\r\n const [selectContent, setSelectContent] = useState<{ Name: string, id: string, Key: string }[]>(undefined);\r\n const [selectValue, setSelectValue] = useState(data?.value?.value);\r\n const [selectedValueId, setSelectedValueId] = useState(data?.value?.key);\r\n const referentialIdentity = data.referentialIdentity;\r\n const referentialContext = data.configuration?.referentialContext;\r\n const referentialType = data.configuration?.referentialType;\r\n\r\n const changeSelect = useCallback((dataObj: { id: string, Name: string, Key: string }, option?: any) => {\r\n setSelectValue(dataObj.Name);\r\n setSelectedValueId(dataObj.id);\r\n setEditingData({\r\n ...data,\r\n // tslint:disable-next-line:no-null-keyword\r\n value: dataObj.id !== 'empty' ? referentialIdentity === 'Custom' ? ({ id: dataObj.id, Name: dataObj.Name, IsDeleted: false }) : ({ key: dataObj.id, value: dataObj.Name, uniqueKey: dataObj.Key }) : null,\r\n id: propertieId\r\n });\r\n }, [selectContent, data, setEditingData, referentialIdentity, referentialContext, referentialType]);\r\n\r\n useEffect(() => {\r\n if (editStake) {\r\n const context = data.configuration?.referentialContext || (data.configuration as any)?.ReferentialContext;\r\n const type = data.configuration?.referentialType || (data.configuration as any)?.ReferentialType;\r\n setSelectValue(data?.value?.value || data?.configuration?.value?.Value || data?.configuration?.value?.value);\r\n setSelectedValueId(data?.value?.key || data?.configuration?.value?.Key || data?.configuration?.value?.key);\r\n if (context && type) {\r\n dispatch(getReferentials('', type, context)).then(response => {\r\n if (!data.value && (data.configuration?.value?.Name && !data.configuration?.value?.id)) {\r\n const defaultValue = response.find(elem => elem.name === data.configuration.value.Name);\r\n if (defaultValue) {\r\n changeSelect({ Name: defaultValue.name, id: defaultValue.id, Key: defaultValue.Key });\r\n }\r\n }\r\n setSelectContent(response.map(elem => ({\r\n Name: elem.name,\r\n id: elem.id,\r\n Key: elem.Key\r\n })));\r\n });\r\n }\r\n }\r\n }, [editStake]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n {(selectContent && !data.subType) &&\r\n changeSelect(option.data, option)}\r\n options={[{\r\n id: 'empty',\r\n Name: intl.formatMessage({ id: 'global.selectValue' })\r\n }, ...selectContent]?.map(elem => ({\r\n key: elem.id,\r\n text: elem.Name,\r\n data: elem\r\n }))}\r\n />\r\n }\r\n {(selectContent && data.subType === EStakeDetailsSubType.Radio) &&\r\n selectContent?.map(item => (\r\n \r\n ))\r\n }\r\n \r\n ) : (\r\n {selectValue}\r\n )}\r\n \r\n );\r\n};","import React, { FC, useEffect, useState, useCallback } from 'react';\r\nimport styled from 'styled-components';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { getReferentials } from '../../../../../actions/globalActions';\r\nimport { Tag } from '../../../../Common/TagPicker/Tag';\r\nimport { TagPicker, TagPickerColor, ITag } from '../../../../Common/TagPicker/TagPicker';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { PillPicker } from '../../../../Common/PillPicker/PillPicker';\r\nimport { IValue } from '../../../../../entities/IPickers';\r\nimport { Pill } from '../../../../Common/Pill/Pill';\r\n\r\nconst TagpickerTag = styled(Tag)`\r\n padding: 0.3rem 0.5rem;\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\ntype GetReferentials = ReturnType;\r\n\r\ninterface IMultiSelectContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const MultiSelectContent: FC = props => {\r\n const dispatch = useDispatch();\r\n const [selectContent, setSelectContent] = useState<{ Name: string, id: string }[]>(undefined);\r\n const [selectValue, setSelectValue] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.editStake) {\r\n const context = props.data.configuration?.referentialContext || props.data.configuration?.ReferentialContext;\r\n const type = props.data.configuration?.referentialType || props.data.configuration?.ReferentialType;\r\n if (context && type) {\r\n dispatch(getReferentials('', type, context)).then(response => {\r\n setSelectContent(response.map(elem => ({\r\n Name: elem.name,\r\n id: elem.id\r\n })));\r\n });\r\n }\r\n }\r\n setSelectValue((props.data?.value || []).map(elem => ({ key: elem.key, text: elem.value, data: elem })));\r\n }, [props.editStake, props.data?.value]);\r\n\r\n const changeSelect = (item: IValue) => {\r\n setSelectValue(state => [...state, item]);\r\n props.setEditingData({\r\n ...props.data,\r\n value: props.data.value ? [...props.data.value, {key: item.key, value: item.text}] : [{key: item.key, value: item.text}],\r\n id: props.propertieId\r\n });\r\n };\r\n\r\n const clearAll = () => {\r\n setSelectValue([]);\r\n props.setEditingData({\r\n ...props.data,\r\n value: [],\r\n id: props.propertieId\r\n });\r\n };\r\n\r\n const removePill = (itemId: string) => {\r\n setSelectValue(state => state.filter(elem => elem.data.id !== itemId));\r\n props.setEditingData({\r\n ...props.data,\r\n value: props.data.value.filter(elem => elem.key !== itemId),\r\n id: props.propertieId\r\n });\r\n };\r\n\r\n return (\r\n \r\n {props.editStake ? (\r\n <>\r\n {selectContent && (\r\n ({\r\n key: elem.id,\r\n data: elem,\r\n text: elem.Name\r\n }))}\r\n onChange={changeSelect}\r\n />\r\n )}\r\n {props.error &&\r\n {props.error}\r\n }\r\n \r\n ) : (\r\n <>\r\n {(selectValue || []).map(tag => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n );\r\n};","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { ProfilesSummary } from '../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { Modify } from '../../../../../tools/generalTools';\r\nimport { EProfileType } from '../../../../../entities/IGlobal';\r\nimport { IValue } from '../../../../../entities/IPickers';\r\nimport { LegalEntitiesPicker } from '../../../../Common/Pickers/LegalEntitiesPicker';\r\n\r\nexport const Wrapper = styled.div`\r\n`;\r\n\r\nconst PickerWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\ntype ILegalEntityContent = Modify;\r\n\r\nexport interface IProps {\r\n data: ILegalEntityContent;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n context?: 'PLE' | 'Cluster';\r\n setEditingData(propertie: any);\r\n}\r\n\r\nexport const LegalEntityContent: FC = ({ context, error, data, editStake, propertieId, setEditingData }) => {\r\n const [content, setContent] = useState(undefined);\r\n useEffect(() => {\r\n const finalData = Array.isArray(data?.value) ? data?.value : [data?.value];\r\n !editStake && setContent(finalData?.map(elem => elem ? ({\r\n key: elem.id,\r\n text: elem.Name || elem.name,\r\n data: elem\r\n // tslint:disable-next-line:no-null-keyword\r\n }) : null) || []);\r\n }, [data, editStake]);\r\n\r\n const setFieldValue = useCallback((value: IValue[]) => {\r\n setContent(value);\r\n setEditingData({\r\n ...data,\r\n value: context === 'PLE' ? ({\r\n Name: value?.[0]?.data.Name,\r\n id: value?.[0]?.data.id\r\n }) as any : value?.[0]?.data,\r\n id: propertieId\r\n });\r\n }, [propertieId, data, setEditingData, context]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n \r\n \r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n <>\r\n {!!content &&\r\n \r\n }\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC, useState, useCallback, useEffect } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { ProfilesSummary } from '../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { IProps, Wrapper } from './LegalEntityContent';\r\nimport { ISIngleLegalEntity } from '../../../../../entities/ILegalEntities';\r\nimport { EProfileType } from '../../../../../entities/IGlobal';\r\nimport { LegalEntitiesPicker } from '../../../../Common/Pickers/LegalEntitiesPicker';\r\n\r\nconst PickerWrapper = styled.div`\r\n margin-top: 6px;\r\n`;\r\n\r\nexport const NewDesignLegalEntityContent: FC = ({ context, error, data, editStake, propertieId, setEditingData }) => {\r\n const [companyValue, setCompanyValue] = useState<{ key: string; text: string; data: any }[]>(undefined); // we need any - from backend we have pascal and camel case\r\n\r\n useEffect(() => {\r\n setCompanyValue(data?.value?.id ? [{\r\n ...data?.value,\r\n key: data?.key,\r\n data: data?.value\r\n }] : undefined);\r\n }, []);\r\n\r\n const mapFormValue = useCallback((entity: any) => {\r\n if (!entity) {\r\n // tslint:disable-next-line:no-null-keyword\r\n return null;\r\n }\r\n\r\n return context === 'PLE' ? ({\r\n Name: entity.Name,\r\n id: entity.id\r\n }) as any : entity;\r\n }, [context]);\r\n\r\n const onChangeSelectedCompany = (value: { key: string; text: string; data: ISIngleLegalEntity; }[]) => {\r\n setCompanyValue(value);\r\n setEditingData(({ ...data, value: mapFormValue(value?.[0]?.data), id: propertieId }));\r\n };\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n \r\n \r\n {error && {error}}\r\n \r\n ) : (\r\n <>\r\n {(!!companyValue?.[0]?.data && !!companyValue?.[0]?.data?.id) &&\r\n \r\n }\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { ISearchLegalEntitiesValue } from '../../../../../entities/ILegalEntities';\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { ProfilesSummary } from '../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { Modify } from '../../../../../tools/generalTools';\r\nimport { IValue } from '../../../../../entities/IPickers';\r\nimport { EProfileType } from '../../../../../entities/IGlobal';\r\nimport { LegalEntitiesPicker } from '../../../../Common/Pickers/LegalEntitiesPicker';\r\n\r\nconst Wrapper = styled.div`\r\n > span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\ntype IMultipleLegalEntityContent = Modify;\r\n\r\ninterface IProps {\r\n data: IMultipleLegalEntityContent;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IMultipleLegalEntityContent);\r\n}\r\n\r\nexport const MultipleLegalEntityContent: FC = ({ error, data, editStake, propertieId, setEditingData }) => {\r\n const [content, setContent] = useState(undefined);\r\n\r\n useEffect(() => {\r\n data?.value?.length > 0 && setContent(data?.value?.map(elem => ({\r\n key: elem.id,\r\n text: elem.name,\r\n data: elem\r\n })));\r\n }, [data, editStake]);\r\n\r\n const setFieldValue = useCallback((value: IValue[]) => {\r\n setContent(value);\r\n setEditingData({\r\n ...data,\r\n value: value.map(elem => elem.data),\r\n id: propertieId\r\n });\r\n }, [propertieId, data, setEditingData]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n <>\r\n {!!content?.length && content.map(entity =>\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState, useCallback, FC } from 'react';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { ProfilesSummary } from '../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { IValue } from '../../../../../entities/IPickers';\r\nimport { EProfileType } from '../../../../../entities/IGlobal';\r\nimport { UsersPicker } from '../../../../Common/Pickers/UsersPicker';\r\n\r\ninterface IProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n context?: 'PLE' | 'Cluster';\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const MultiplePeopleContent: FC = ({ context, error, data, editStake, propertieId, setEditingData }) => {\r\n const [content, setContent] = useState([]);\r\n useEffect(() => {\r\n const finalData = data?.value ? (Array.isArray(data?.value) ? data?.value : [data?.value]) : undefined;\r\n setContent(finalData?.map(elem => elem ? ({\r\n key: elem?.id,\r\n text: `${elem?.firstName} ${elem?.lastName}`,\r\n data: elem\r\n // tslint:disable-next-line:no-null-keyword\r\n }) : null ) || []);\r\n }, [data, editStake]);\r\n\r\n const setFieldValue = (value: IValue[]) => {\r\n setEditingData({\r\n ...data,\r\n // tslint:disable-next-line:no-null-keyword\r\n value: value?.length > 0 ? value.map(elem => elem.data) : null,\r\n id: propertieId\r\n });\r\n };\r\n\r\n return (\r\n
    \r\n {editStake ? (\r\n <>\r\n \r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n <>\r\n {!!content?.length && content.map(person =>\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n","import { faFile, faFileImage, faTimes, faFileWord } from '@fortawesome/pro-light-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { rgba } from 'polished';\r\nimport React, { FC, useCallback } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { useDispatch } from 'react-redux';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { downloadAttachment } from '../../../../../actions/stakeActions';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { ESpinnerSize, Spinner } from '../../../../Common/Spinner/Spinner';\r\n\r\ntype DownloadAttachment = ReturnType;\r\n\r\nconst Wrapper = styled.div`\r\n color: ${colorStack.darkBlue};\r\n font-size: ${fontSize[13]};\r\n font-weight: 500;\r\n padding: .5rem;\r\n margin: 0 0 .2rem 0;\r\n position: relative;\r\n svg {\r\n margin: 0 .5rem 0 0;\r\n }\r\n`;\r\n\r\nconst ProgressBar = styled.div<{ progress: number, isError: boolean; }>`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n width: 100%;\r\n background: ${rgba(colorStack.darkBlue, .05)};\r\n transition: max-width 1s ease;\r\n max-width: ${props => props.progress}%;\r\n ${props => props.isError && css`\r\n background: ${rgba(colorStack.middleRed, .1)};\r\n `}\r\n`;\r\n\r\nconst FrontSection = styled.div`\r\n display: flex;\r\n cursor: pointer;\r\n z-index: 2;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n`;\r\n\r\nconst EndSection = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst ContentWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n`;\r\n\r\nconst UploadingMessage = styled.div<{ isHidden: boolean }>`\r\n margin: 0 2rem 0 0;\r\n color: ${colorStack.darkBlue};\r\n font-size: ${fontSize[13]};\r\n opacity: 1;\r\n transition: opacity .4s ease;\r\n ${props => props.isHidden && css`\r\n opacity: 0;\r\n `}\r\n`;\r\n\r\nconst CloseIcon = styled(FontAwesomeIcon)`\r\n z-index: 2;\r\n cursor: pointer;\r\n`;\r\n\r\nexport enum EUploadStatus {\r\n Success,\r\n Error,\r\n Pending\r\n}\r\n\r\ninterface ISingleAttachmentProps {\r\n currentClusterId: string;\r\n value: {\r\n name: string;\r\n directUri: string;\r\n };\r\n status: EUploadStatus;\r\n progress: number;\r\n guid: string;\r\n isEditMode: boolean;\r\n onDelete?(guid: string);\r\n}\r\n\r\nexport const SingleAttachment: FC = ({ currentClusterId, value, progress, isEditMode, guid, status, onDelete }) => {\r\n const dispatch = useDispatch();\r\n const uploadProggress = typeof progress === 'number' ? Math.floor(progress * 100) : 100;\r\n const hideUploadMessage = uploadProggress === 100;\r\n\r\n const downloadHandler = useCallback(() => {\r\n !!currentClusterId && dispatch(downloadAttachment(currentClusterId, 'Overview Files', value.name)).then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n });\r\n }, [value, currentClusterId]);\r\n\r\n const deleteHandler = useCallback(() => {\r\n onDelete?.(guid);\r\n }, [onDelete, guid]);\r\n\r\n const fileIcon = useCallback(() => {\r\n const splittedFileName = value?.name?.split('.');\r\n const extension = splittedFileName[splittedFileName.length - 1];\r\n if (['jpeg', 'jpg', 'png', 'gif'].includes(extension)) {\r\n return faFileImage;\r\n } else if (['doc', 'docm', 'docx'].includes(extension)) {\r\n return faFileWord;\r\n } else {\r\n return faFile;\r\n }\r\n }, [value.name]);\r\n\r\n return (\r\n \r\n \r\n \r\n {value?.name &&\r\n <>\r\n \r\n {value?.name}\r\n \r\n }\r\n \r\n {isEditMode &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(status === EUploadStatus.Pending && hideUploadMessage) &&\r\n \r\n }\r\n {(status === EUploadStatus.Success || status === EUploadStatus.Error) &&\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n );\r\n};","import React, { useEffect, useState, useCallback, FC } from 'react';\r\nimport { last } from 'lodash';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { EAlertType } from '../../../../../entities/IAlert';\r\nimport { uploadAttachment, uploadSessionAttachment } from '../../../../../actions/stakeActions';\r\nimport { IState } from '../../../../../reducers';\r\nimport { IClusterReducer } from '../../../../../reducers/clustersReducer';\r\nimport { useAlert } from '../../../../../tools/hooks';\r\nimport { checkAttachmentSize, checkAttachmentType } from '../../../../../tools/attachment';\r\nimport { uuidv4 } from '../../../../../tools/authTools';\r\nimport { EUploadStatus } from './SingleAttachment';\r\nimport { Dropzone } from '../../../../NewDesignCommon/Dropzone/Dropzone';\r\nimport { IDirectoryContent } from '../../../../../entities/IClustersFilesystem';\r\nimport { moveFileBeetwenClusters } from '../../../../../actions/clustersFilesystemActions';\r\nimport { EFilesystemItemType } from '../../../../../entities/IClustersFilesystem';\r\nimport { Attachment } from '../../../../../components/Common/Attachment/Attachment';\r\n\r\ntype UploadAttachment = ReturnType;\r\ntype UploadSessionAttachment = ReturnType;\r\ntype MoveFileBeetwenClusters = ReturnType;\r\n\r\ninterface IAttachmentContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n stakeDefinitionId: string;\r\n multipleAttachment?: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\ninterface IAttachmentContentState {\r\n [guid: string]: {\r\n name: string;\r\n progress: number;\r\n status: EUploadStatus;\r\n directUri?: string;\r\n fileName?: string,\r\n contentType?: string,\r\n fileId?: string\r\n }\r\n}\r\n\r\nexport const AttachmentContent: FC = ({ multipleAttachment, error, stakeDefinitionId, data, editStake, propertieId, setEditingData }) => {\r\n const addAlert = useAlert();\r\n const dispatch = useDispatch();\r\n const [state, setState] = useState(undefined);\r\n const [loadingFile, setLoadingFile] = useState(false);\r\n\r\n const { currentClusterId } = useSelector(store => store.clusters);\r\n\r\n useEffect(() => {\r\n if ((!editStake && !!data.value) || (editStake && !!data.value && !state)) {\r\n if (multipleAttachment) {\r\n setState((data.value || [])\r\n .reduce((assignedObject, attachment) => ({\r\n ...assignedObject,\r\n [uuidv4()]: {\r\n ...attachment,\r\n status: EUploadStatus.Success,\r\n progress: 1\r\n }\r\n }), {}));\r\n } else {\r\n setState({\r\n [uuidv4()]: {\r\n ...data.value,\r\n status: EUploadStatus.Success,\r\n progress: 1\r\n }\r\n });\r\n }\r\n }\r\n }, [data, editStake]);\r\n\r\n const handleProgress = useCallback((e: ProgressEvent, itemGuid: string, fileName: string) => {\r\n setState(currentState => ({\r\n ...currentState,\r\n [itemGuid]: {\r\n name: fileName,\r\n progress: e.lengthComputable && e.loaded / e.total,\r\n status: EUploadStatus.Pending\r\n }\r\n }));\r\n }, [state]);\r\n\r\n const fileInputChange = useCallback((e: React.ChangeEvent) => {\r\n const files = e.target.files;\r\n setLoadingFile(true);\r\n const localAttachments = Object.keys(state || {}).map(key => ({\r\n name: state[key].name,\r\n directUri: state[key].directUri,\r\n fileName: state[key].name,\r\n contentType: state[key].contentType,\r\n fileId: state[key].fileId\r\n }));\r\n for (let i = 0; i < files.length; i++) {\r\n const attachSize = checkAttachmentSize(files[i].size, 'cle');\r\n const attachType = checkAttachmentType(last(files[i].name.split('.')).toLowerCase(), 'cle');\r\n const itemGuid = uuidv4();\r\n const fileName = files[i]?.name;\r\n setState(currentState => ({\r\n ...(multipleAttachment ? currentState : {}),\r\n [itemGuid]: {\r\n name: fileName,\r\n progress: 0,\r\n status: EUploadStatus.Pending\r\n }\r\n }));\r\n if (attachSize.isValid && attachType.isValid) {\r\n const formData = new FormData();\r\n formData.append('attachment', files[i]);\r\n formData.append('propertyId', propertieId);\r\n formData.append('stakeDefinitionId', stakeDefinitionId);\r\n if (!!currentClusterId) {\r\n dispatch(uploadAttachment(currentClusterId, formData, (event) => handleProgress(event, itemGuid, fileName)))\r\n .then(response => {\r\n const newAttachment = {\r\n name: response.name,\r\n directUri: response.directUri,\r\n fileName: response.name,\r\n contentType: response.contentType,\r\n fileId: response.fileId\r\n };\r\n localAttachments.push(newAttachment);\r\n setEditingData({\r\n ...data,\r\n value: multipleAttachment ? [...(localAttachments || [])] : newAttachment,\r\n id: propertieId\r\n });\r\n setState(currentState => ({\r\n ...(multipleAttachment ? currentState : {}),\r\n [itemGuid]: {\r\n ...newAttachment,\r\n progress: 1,\r\n status: EUploadStatus.Success\r\n }\r\n }));\r\n setLoadingFile(false);\r\n }).catch(() => {\r\n setState(currentState => ({\r\n ...currentState,\r\n [itemGuid]: {\r\n name: fileName,\r\n progress: 1,\r\n status: EUploadStatus.Error\r\n }\r\n }));\r\n setLoadingFile(false);\r\n });\r\n } else {\r\n const sessionId = uuidv4();\r\n dispatch(uploadSessionAttachment(sessionId, formData))\r\n .then(response => {\r\n const newAttachment = {\r\n name: response.name,\r\n directUri: response.directUri,\r\n fileName: response.name,\r\n contentType: response.contentType,\r\n fileId: response.fileId\r\n };\r\n localAttachments.push(newAttachment);\r\n setEditingData({\r\n ...data,\r\n value: multipleAttachment ? [...(localAttachments || [])] : newAttachment,\r\n id: propertieId\r\n });\r\n setState(currentState => ({\r\n ...(multipleAttachment ? currentState : {}),\r\n [itemGuid]: {\r\n ...newAttachment,\r\n progress: 1,\r\n status: EUploadStatus.Success\r\n }\r\n }));\r\n setLoadingFile(false);\r\n }).catch(() => {\r\n setState(currentState => ({\r\n ...currentState,\r\n [itemGuid]: {\r\n name: fileName,\r\n progress: 1,\r\n status: EUploadStatus.Error\r\n }\r\n }));\r\n setLoadingFile(false);\r\n });\r\n }\r\n } else {\r\n addAlert({attachType.message || attachSize.message}, EAlertType.ERROR);\r\n setState(currentState => ({\r\n ...currentState,\r\n [itemGuid]: {\r\n name: fileName,\r\n progress: 1,\r\n status: EUploadStatus.Error\r\n }\r\n }));\r\n setLoadingFile(false);\r\n }\r\n }\r\n }, [propertieId, data, setEditingData, handleProgress, state]);\r\n\r\n const onAttachmentDelete = useCallback((guid: string) => {\r\n const { [guid]: removedItem, ...rest } = state;\r\n setState(rest);\r\n setEditingData({\r\n ...data,\r\n value: multipleAttachment ? Object.keys(rest || {}).map(key => ({\r\n name: rest[key].name,\r\n directUri: rest[key].directUri,\r\n fileName: rest[key].name,\r\n contentType: rest[key].contentType,\r\n fileId: rest[key].fileId\r\n })) : {\r\n name: undefined,\r\n directUri: undefined,\r\n fileName: undefined,\r\n contentType: undefined,\r\n fileId: undefined\r\n },\r\n id: propertieId\r\n });\r\n }, [state, setEditingData, propertieId]);\r\n\r\n const importFile = useCallback((file: IDirectoryContent, closeImportPopup: any, path: string[]) => {\r\n return new Promise((resolve) => {\r\n const localAttachments = Object.keys(state || {}).map(key => ({\r\n name: state[key].name,\r\n directUri: state[key].directUri,\r\n fileName: state[key].fileName,\r\n contentType: state[key].contentType,\r\n fileId: state[key].fileId\r\n }));\r\n const itemGuid = uuidv4();\r\n dispatch(moveFileBeetwenClusters(currentClusterId, { sourceClusterId: currentClusterId, items: [{ item: file.name, finalItemName: file.name, type: EFilesystemItemType.File }], path: 'Overview Files', sourcePath: path.join('\\\\') })).then((res) => {\r\n const newAttachment = {\r\n name: file?.name,\r\n directUri: file?.directUri,\r\n fileName: file?.name,\r\n contentType: file?.contentType,\r\n fileId: file?.fileId\r\n };\r\n localAttachments.push(newAttachment);\r\n setEditingData({\r\n ...data,\r\n value: multipleAttachment ? [...(localAttachments || [])] : newAttachment,\r\n id: propertieId\r\n });\r\n setState(currentState => ({\r\n ...(multipleAttachment ? currentState : {}),\r\n [itemGuid]: {\r\n ...newAttachment,\r\n progress: 1,\r\n status: EUploadStatus.Success\r\n }\r\n }));\r\n setLoadingFile(false);\r\n closeImportPopup();\r\n resolve(true);\r\n }).catch(() => {\r\n resolve(false);\r\n });\r\n });\r\n }, [propertieId, data, setEditingData, state]);\r\n\r\n return (\r\n
    \r\n {editStake ? (\r\n ({ name: state[attachmentGuid]?.name, directUri: state[attachmentGuid]?.directUri, id: state[attachmentGuid]?.fileId }))}\r\n clusterId={currentClusterId}\r\n canRemove\r\n removeHandler={onAttachmentDelete}\r\n />\r\n ) : (\r\n <>\r\n {(Object.keys(state || {}) || []).map(elem =>\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n","import React, { useState, useEffect, useCallback, FunctionComponent, FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport { withRouter, RouteComponentProps } from 'react-router-dom';\r\n\r\nimport { IClusterStakeProperty, EStakeDetailsSubType } from '../../../../../entities/IClusterStake';\r\nimport { ProfilesSummary } from '../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { IValue } from '../../../../../entities/IPickers';\r\nimport { UsersAndLegalEntitiesPicker } from '../../../../Common/Pickers/UsersAndLegalEntitiesPicker';\r\nimport { EProfileType } from '../../../../../entities/IGlobal';\r\n\r\nconst Wrapper = styled.div`\r\n span {\r\n overflow-wrap: break-word;\r\n }\r\n`;\r\n\r\nconst PickerWrapper = styled.div`\r\n margin-top: 6px;\r\n`;\r\n\r\ninterface IPartyContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n context?: 'PLE' | 'Cluster';\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\ntype IPropsWithRouterAndInt = RouteComponentProps<{ organization: string }> & IPartyContentProps;\r\n\r\nexport const PartyContent: FC = withRouter>(({ error, data, editStake, propertieId, setEditingData }) => {\r\n const [content, setContent] = useState(undefined);\r\n const LegalEntity = 'legalentity';\r\n const Person = 'Person';\r\n useEffect(() => {\r\n const finalData = Array.isArray(data?.value) ? data?.value : [data?.value];\r\n setContent(finalData?.map(elem => elem ? ({\r\n key: elem.id,\r\n text: elem.Name || elem.name,\r\n data: elem\r\n // tslint:disable-next-line:no-null-keyword\r\n }) : null) || []);\r\n }, [data, editStake]);\r\n\r\n const setFieldValue = useCallback((value: IValue[]) => {\r\n setContent(value);\r\n setEditingData({\r\n ...data,\r\n value: value?.length > 0 ? ({\r\n text: value?.[0]?.text,\r\n emailContact: value?.[0]?.data?.emailContact,\r\n id: value?.[0]?.data?.id,\r\n name: value?.[0]?.data ? (value?.[0]?.data?.Name || value?.[0]?.data?.name || `${value?.[0]?.data?.firstName} ${value?.[0]?.data?.lastName}`) : undefined,\r\n picture: value?.[0]?.data?.picture || value?.[0]?.data?.Picture,\r\n subTitle: '',\r\n cabinet: value?.[0].data?.cabinet,\r\n jobTitle: value?.[0].data?.jobTitle,\r\n type: value?.[0]?.data?.dataType || value?.[0]?.data?.type || 'personal'\r\n // tslint:disable-next-line:no-null-keyword\r\n }) : null,\r\n id: propertieId\r\n });\r\n }, [propertieId, data, setEditingData]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {(!!content && content?.[0]?.data) &&\r\n \r\n }\r\n \r\n )}\r\n \r\n );\r\n}) as any;\r\n","import React, { FC, useState, useEffect, useCallback } from 'react';\r\nimport styled from 'styled-components';\r\nimport { geocodeByAddress } from 'react-places-autocomplete';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { GoogleAddressViewGlobal } from '../../../../Common/GoogleAddress/GoogleAddressView';\r\nimport { GoogleAddressEditor, IAddressObject } from '../../../../Common/GoogleAddress/GoogleAddressEditor';\r\nimport { IAddressGlobal } from '../../../../../entities/IGlobal';\r\n\r\nconst Wrapper = styled.div`\r\n > div {\r\n margin: 0;\r\n }\r\n`;\r\n\r\ninterface IAddressContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const AddressContent: FC = ({ error, data, editStake, propertieId, setEditingData }) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n const [content, setContent] = useState(data?.value || null);\r\n\r\n useEffect(() => {\r\n // tslint:disable-next-line:no-null-keyword\r\n setContent(data.value || {\r\n number: '',\r\n street: '',\r\n city: '',\r\n state: '',\r\n country: '',\r\n countryShort: '',\r\n zipCode: ''\r\n });\r\n }, [data, editStake]);\r\n\r\n const changeAddress = useCallback((value: IAddressObject | string) => {\r\n const valueObject = typeof value === 'string' ? (data.id.match('Address') ? ({\r\n Number: '',\r\n Street: '',\r\n City: value,\r\n State: '',\r\n Country: '',\r\n CountryShort: '',\r\n ZipCode: ''\r\n }) : ({\r\n number: '',\r\n street: '',\r\n city: value,\r\n state: '',\r\n country: '',\r\n countryShort: '',\r\n zipCode: ''\r\n })) : (data.id.match('Address') ? ({\r\n Number: value?.street_number || '',\r\n Street: (value?.route || value?.neighborhood) || '',\r\n City: value?.locality || '',\r\n State: value?.administrative_area_level_1 || '',\r\n Country: value?.country || '',\r\n CountryShort: content.CountryShort || '',\r\n ZipCode: value?.postal_code || ''\r\n }) : ({\r\n number: value?.street_number || '',\r\n street: (value?.route || value?.neighborhood) || '',\r\n city: value?.locality || '',\r\n state: value?.administrative_area_level_1 || '',\r\n country: value?.country || '',\r\n countryShort: content.countryShort || '',\r\n zipCode: value?.postal_code || ''\r\n }));\r\n setEditingData({\r\n ...data,\r\n value: valueObject,\r\n id: propertieId\r\n });\r\n }, [content, setEditingData, data]);\r\n\r\n const selectAddress = useCallback((address: any) => {\r\n geocodeByAddress(address)\r\n .then(results => {\r\n const addressObject: IAddressObject = {};\r\n const componentForm = {\r\n street_number: 'short_name',\r\n route: 'long_name',\r\n neighborhood: 'long_name',\r\n locality: 'long_name',\r\n administrative_area_level_1: 'short_name',\r\n country: 'long_name',\r\n postal_code: 'short_name'\r\n };\r\n for (let i = 0; i < results[0].address_components.length; i++) {\r\n let addressType = results[0].address_components[i].types[0];\r\n if (componentForm[addressType]) {\r\n if (addressType === 'country') {\r\n if (data.id === 'Address') {\r\n setContent(currentState => ({\r\n ...currentState,\r\n CountryShort: results[0].address_components[i].short_name\r\n }));\r\n setEditingData({\r\n ...data,\r\n value: {\r\n ...data.value,\r\n CountryShort: results[0].address_components[i].short_name\r\n }\r\n });\r\n } else {\r\n setContent(currentState => ({\r\n ...currentState,\r\n countryShort: results[0].address_components[i].short_name\r\n }));\r\n setEditingData({\r\n ...data,\r\n value: {\r\n ...data.value,\r\n countryShort: results[0].address_components[i].short_name\r\n }\r\n });\r\n }\r\n }\r\n addressObject[addressType] = results[0].address_components[i][componentForm[addressType]];\r\n }\r\n }\r\n changeAddress(addressObject);\r\n });\r\n\r\n }, [changeAddress, content, data]);\r\n return (\r\n \r\n {editStake ? (\r\n changeAddress(newValue.replace(/^\\s+/g, ''))}\r\n onSelectAddress={selectAddress}\r\n address={content}\r\n />\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};","import React, { FC, useCallback } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { IClusterStakeProperty, EStakeDetailsType } from '../../../../../entities/IClusterStake';\r\nimport { SingleSelectContent } from './SingleSelectContent';\r\nimport { NumberContent } from './NumberContent';\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n > div:first-of-type {\r\n margin: 0 1rem 0 0;\r\n }\r\n`;\r\n\r\ninterface INumberAndSelectProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: {\r\n errorCode: number;\r\n message: string;\r\n };\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const NumberAndSelect: FC = props => {\r\n const onContentUpdate = useCallback((currentData: IClusterStakeProperty) => {\r\n props.setEditingData({\r\n ...currentData,\r\n type: EStakeDetailsType.NumberAndSelect,\r\n value: {\r\n SingleSelectValue: currentData.type === EStakeDetailsType.SingleSelect ? currentData.value : props.data.value?.SingleSelectValue,\r\n NumericValue: currentData.type === EStakeDetailsType.Number ? currentData.value : props.data.value?.NumericValue\r\n }\r\n });\r\n }, [props.setEditingData, props.data]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};","import React, { FC, useEffect, useState, useCallback } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { Checkbox } from '../../../../Common/Inputs/Checkbox';\r\nimport { ErrorText } from './StakeStyles';\r\n\r\nconst Wrapper = styled.div`\r\n span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nconst SCheckbox = styled(Checkbox)`\r\n margin-bottom: 10px;\r\n`;\r\n\r\ninterface ICheckboxContentProps {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const CheckboxContent: FC = ({ error, data, editStake, propertieId, setEditingData }) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n const [content, setContent] = useState(null);\r\n\r\n useEffect(() => {\r\n setContent(data.value);\r\n }, [data, editStake]);\r\n\r\n const changeState = useCallback(() => {\r\n setContent(!data.value);\r\n setEditingData({\r\n ...data,\r\n value: !data.value,\r\n id: propertieId\r\n });\r\n }, [data, propertieId, setEditingData]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n {error &&\r\n {error}\r\n }\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { useMemo, useCallback, useEffect, useState, FC } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useIntl } from 'react-intl';\r\nimport { IDropdownOption } from '@fluentui/react';\r\nimport styled from 'styled-components';\r\n\r\nimport { IState } from '../../../../../reducers';\r\nimport { ILanguageReducer } from '../../../../../reducers/languageReducer';\r\nimport { IClusterStakeProperty, ITranslationItem } from '../../../../../entities/IClusterStake';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { SelectInput } from '../../../../Common/SelectInput/SelectInput';\r\nimport { StatusDot } from '../../../../Common/StatusDot/StatusDot';\r\nimport { EStatus } from '../../../../../entities/IGlobal';\r\n\r\nconst Wrapper = styled.div``;\r\n\r\ninterface IEnumSelectContent {\r\n data: IClusterStakeProperty;\r\n propertieId: string;\r\n error: string;\r\n editStake: boolean;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const EnumSelectContent: FC = ({ data, editStake, error, setEditingData }) => {\r\n const intl = useIntl();\r\n const { userLanguage, translations } = useSelector(state => state.language);\r\n const placeholder = useMemo(() => intl.formatMessage({ id: 'global.selectValue' }), []);\r\n const emptyItem: ITranslationItem = { enumElement: 'empty', translationKey: 'global.selectValue' };\r\n const options = useMemo(() => [\r\n { key: emptyItem.enumElement, text: placeholder, data: emptyItem },\r\n ...(data?.configuration?.items || []).map(item => ({ key: item.enumElement, text: translations[userLanguage][item.translationKey], data: item }))\r\n ], [emptyItem, placeholder, translations, userLanguage, data.configuration.items]);\r\n // tslint:disable-next-line:no-null-keyword\r\n const [selectedItem, setSelectedItem] = useState(null);\r\n\r\n useEffect(() => {\r\n // tslint:disable-next-line:no-null-keyword\r\n setSelectedItem(data?.value || null);\r\n }, [data, editStake]);\r\n\r\n const changeHandler = useCallback((dataObj: ITranslationItem) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n setEditingData({ ...data, value: dataObj.enumElement !== 'empty' ? dataObj : null });\r\n }, [data, setEditingData]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n changeHandler(option.data)}\r\n options={options}\r\n />\r\n {error && {error}}\r\n \r\n ) : (\r\n <>\r\n {selectedItem && }\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { useCallback, useMemo, Reducer, useReducer } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { addressFormatter } from './addressFormatter';\r\nimport { EProfileDataType } from './profileConstants';\r\nimport { FacetsNames, LegalEntitiesNames, ISearch, ISearchUser } from '../entities/ISearch';\r\nimport { IReferencial, EReferentials, ISearchResponse, EContextList } from '../entities/IGlobal';\r\nimport { IInvolvedPartyRequest } from '../entities/IClusters';\r\nimport { ISearchLegalEntitiesValue } from '../entities/ILegalEntities';\r\nimport { IItemResults } from '../entities/IFilters';\r\nimport { getAllLegalEntities } from '../actions/legalEntitiesActions';\r\nimport { getSearchResult } from '../actions/searchActions';\r\nimport { getReferentials } from '../actions/globalActions';\r\nimport { getRelatedCluster } from '../actions/clustersActions';\r\nimport { ITag } from '../components/Common/TagPicker/TagPicker';\r\n\r\ninterface ISearchFn {\r\n (queryOrType: string | EProfileDataType | EReferentials, context: string, clusterId: string): Promise;\r\n}\r\n\r\ninterface IFormatTagValueFn {\r\n (item: T): string;\r\n}\r\n\r\ninterface IFormatTagFn {\r\n (items: T[]): ITag[];\r\n}\r\n\r\ninterface IState {\r\n searching: boolean;\r\n results: ITag[];\r\n error: U;\r\n}\r\n\r\nconst initialState = {\r\n searching: false,\r\n results: undefined,\r\n error: undefined\r\n};\r\n\r\ntype Action =\r\n | { type: 'SEARCH' }\r\n | { type: 'SEARCH_SUCCESS'; results: IState['results'] }\r\n | { type: 'SEARCH_ERROR'; error: IState['error'] };\r\n\r\nconst reducer = (state: IState, action: Action): IState => {\r\n switch (action.type) {\r\n case 'SEARCH':\r\n return { ...state, searching: true, results: undefined, error: undefined };\r\n case 'SEARCH_SUCCESS':\r\n return { ...state, searching: false, results: action.results };\r\n case 'SEARCH_ERROR':\r\n return { ...state, searching: false, error: action.error };\r\n default:\r\n return { ...initialState };\r\n }\r\n};\r\n\r\nconst useSearchLegalEntities = (): [ISearchFn, IFormatTagValueFn] => {\r\n const dispatch = useDispatch();\r\n const filters = useMemo(() =>\r\n Object.keys(LegalEntitiesNames).reduce((result, item) => ({ ...result, [item]: [] }), {})\r\n , []);\r\n\r\n const searchFn = useCallback((query: string): Promise => {\r\n return dispatch(getAllLegalEntities(query, filters, 15))\r\n .then(response => response.items);\r\n }, [filters]);\r\n\r\n const formatFn = useCallback((item: ISearchLegalEntitiesValue) => {\r\n return `${item.name} ${item.address ? ` - ${addressFormatter(item.address)}` : ''}`;\r\n }, [addressFormatter]);\r\n\r\n return [searchFn, formatFn];\r\n};\r\n\r\nconst useSearchPeoples = (): [ISearchFn, IFormatTagValueFn] => {\r\n const dispatch = useDispatch();\r\n const filters = useMemo(() =>\r\n Object.keys(FacetsNames).reduce((result, item) => ({ ...result, [item]: [] }), {})\r\n , []);\r\n\r\n const searchFn = useCallback((query: string): Promise => {\r\n return dispatch>(getSearchResult(query, 0, 20, filters))\r\n .then(response => response.items);\r\n }, [filters]);\r\n\r\n const formatFn = useCallback((item: ISearchUser) => {\r\n return `${item.firstName} ${item.lastName}`;\r\n }, []);\r\n\r\n return [searchFn, formatFn];\r\n};\r\n\r\nconst useReferentials = (): [ISearchFn, IFormatTagValueFn] => {\r\n const dispatch = useDispatch();\r\n\r\n const searchFn = useCallback((type: EProfileDataType | EReferentials, context: EContextList): Promise => {\r\n return dispatch>(getReferentials('', type, context))\r\n .then(response => response);\r\n }, []);\r\n\r\n const formatFn = useCallback((item: IReferencial) => item.name, []);\r\n\r\n return [searchFn, formatFn];\r\n};\r\n\r\nconst useInvolvedParties = (): [ISearchFn, IFormatTagValueFn] => {\r\n const dispatch = useDispatch();\r\n\r\n const searchFn = useCallback((query: string, organizationId: string, clusterId: string): Promise => {\r\n return dispatch>>(getRelatedCluster(query, organizationId, clusterId))\r\n .then(response => response.items);\r\n }, []);\r\n\r\n const formatFn = useCallback((item: IInvolvedPartyRequest) => item.name, []);\r\n\r\n return [searchFn, formatFn];\r\n};\r\n\r\ntype PickerReturnValue = [ISearchFn>, IFormatTagFn, IState['results'], IState['searching'], IState['error']];\r\n\r\nconst usePicker = (searchFn: ISearchFn, formatFn: IFormatTagValueFn): PickerReturnValue => {\r\n const [state, dispatch] = useReducer, Action>>(reducer, { ...initialState });\r\n\r\n const mapResults = useCallback((items: T[]): ITag[] => {\r\n return (items || []).map(item => ({ id: item.id, value: formatFn(item), data: item }));\r\n }, [formatFn]);\r\n\r\n const search = useCallback(async (queryOrType: string | EProfileDataType | EReferentials, context: string, clusterId: string): Promise[]> => {\r\n try {\r\n dispatch({ type: 'SEARCH' });\r\n const results = mapResults(await searchFn(queryOrType || '', context, clusterId));\r\n dispatch({ type: 'SEARCH_SUCCESS', results });\r\n return results;\r\n } catch (err) {\r\n dispatch({ type: 'SEARCH_ERROR', error: err });\r\n }\r\n }, [mapResults, searchFn]);\r\n\r\n return [search, mapResults, state.results, state.searching, state.error];\r\n};\r\n\r\nexport const useLegalEntitiesPicker = () => {\r\n const [searchFn, formatFn] = useSearchLegalEntities();\r\n return usePicker(searchFn, formatFn);\r\n};\r\n\r\nexport const usePeoplesPicker = () => {\r\n const [searchFn, formatFn] = useSearchPeoples();\r\n return usePicker(searchFn, formatFn);\r\n};\r\n\r\nexport const useReferentialsPicker = () => {\r\n const [searchFn, formatFn] = useReferentials();\r\n return usePicker(searchFn, formatFn);\r\n};\r\n\r\nexport const useInvolvedPartiesPicker = () => {\r\n const [searchFn, formatFn] = useInvolvedParties();\r\n return usePicker(searchFn, formatFn);\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { TagPicker, ITag } from '../../../../Common/TagPicker/TagPicker';\r\nimport { Avatar } from '../../../../Common/Avatar/Avatar';\r\nimport { ISearchLegalEntitiesValue } from '../../../../../entities/ILegalEntities';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n &:hover {\r\n cursor: text;\r\n }\r\n`;\r\n\r\nconst SingleElem = styled.div`\r\n display: flex;\r\n cursor: pointer;\r\n align-items: center;\r\n font-family: 'Roboto', sans-serif;\r\n color: ${colorStack.darkBlue};\r\n padding: 4px 12px;\r\n height: 33px;\r\n span {\r\n margin-left: 8px;\r\n height: 18px;\r\n overflow: hidden;\r\n }\r\n`;\r\n\r\ninterface IFocusedElementTag {\r\n firstName: string;\r\n lastName: string;\r\n picture: string;\r\n id: string;\r\n}\r\n\r\ninterface Data {\r\n firstName: string;\r\n lastName: string;\r\n picture: string;\r\n id: string;\r\n Picture?: string;\r\n}\r\ninterface IProps {\r\n focusedElementTag: ITag[];\r\n error?: boolean;\r\n isAvatarVisible?: boolean;\r\n noAvatar?: boolean;\r\n noResults?: React.ReactNode;\r\n searchHandler(query: string);\r\n onSelectElement(value: ITag[] | ITag[]): void;\r\n onBlur?(e: React.FocusEvent);\r\n setCustomName?(value: string | ITag[] | ITag[]): void;\r\n}\r\n\r\nlet debounce: ReturnType;\r\n\r\nexport const Picker: FC = props => {\r\n\r\n return (\r\n \r\n \r\n selectedTags={props.focusedElementTag}\r\n onChange={props.onSelectElement}\r\n resolveTags={query => props.searchHandler(query)}\r\n limit={1}\r\n noResults={props.noResults}\r\n noClearButton\r\n newDesign\r\n clearTagsOnInputChange\r\n onBlur={props.onBlur}\r\n error={props.error}\r\n onClickOutside={props.setCustomName}\r\n renderTag={tag => \r\n {props.isAvatarVisible && !props.noAvatar && tag.data && }\r\n {tag.value}\r\n }\r\n renderSuggestion={tag => \r\n {!props.noAvatar && }\r\n {tag.value}\r\n \r\n }\r\n />\r\n \r\n );\r\n};","import React, { FC, useState, useCallback, useEffect } from 'react';\r\nimport styled from 'styled-components';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { useInvolvedPartiesPicker } from '../../../../../tools/pickerHooks';\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { SingleWorkElem } from '../../../../Home/SingleWorkElem';\r\nimport { ErrorText } from './StakeStyles';\r\nimport { Picker } from '../../ClusterDocuments/SignatureForm/PickerInput';\r\nimport { ITag } from '../../../../Common/TagPicker/TagPicker';\r\nimport { Wrapper } from './LegalEntityContent';\r\nimport { IState } from '../../../../../reducers';\r\nimport { IClusterReducer } from '../../../../../reducers/clustersReducer';\r\n\r\nconst PickerWrapper = styled.div`\r\n margin-top: 6px;\r\n`;\r\n\r\ninterface IInvolvedPartiesContent {\r\n data: IClusterStakeProperty;\r\n editStake: boolean;\r\n propertieId: string;\r\n error: string;\r\n organizationId: string;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport const InvolvedPartiesContent: FC = ({ error, data, editStake, propertieId, organizationId, setEditingData }) => {\r\n const [searchHandler, mapResults] = useInvolvedPartiesPicker();\r\n const [focusedElementTag, setFocusedElementTag] = useState[]>([]);\r\n const { currentClusterId } = useSelector(state => state.clusters);\r\n\r\n useEffect(() => {\r\n setFocusedElementTag(data?.value ? mapResults([data.value]) : []);\r\n }, [data, editStake]);\r\n\r\n const searchInvolvedParties = useCallback((query: string) => {\r\n return searchHandler(query, organizationId, currentClusterId);\r\n }, [currentClusterId, organizationId]);\r\n\r\n const selectElementHandler = useCallback((tags: ITag[]) => {\r\n // tslint:disable-next-line:no-null-keyword\r\n const entity = !!tags && tags.length > 0 ? tags[0].data : null;\r\n\r\n setFocusedElementTag(entity ? mapResults([entity]) : []);\r\n setEditingData({\r\n ...data,\r\n value: entity,\r\n id: propertieId\r\n });\r\n }, [setEditingData, mapResults]);\r\n\r\n return (\r\n \r\n {editStake ? (\r\n <>\r\n \r\n \r\n }\r\n />\r\n \r\n {error && {error}}\r\n \r\n ) : (\r\n <>\r\n {focusedElementTag.length > 0 &&\r\n \r\n }\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { EStakeDetailsType, IClusterStakeProperty, EStakeDetailsSubType } from '../../../../../entities/IClusterStake';\r\nimport { media } from '../../../../../styleHelpers/breakpoint';\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport { SetPropertiesIcon } from '../StakeComponents/SetPropertiesIcon';\r\nimport { NumberContent } from '../StakeComponents/NumberContent';\r\nimport { TextContent } from '../StakeComponents/TextContent';\r\nimport { BooleanContent } from '../StakeComponents/BooleanContent';\r\nimport { DateContent } from '../StakeComponents/DateContent';\r\nimport { LegalDateContent } from '../StakeComponents/LegalDateContent';\r\nimport { SingleSelectContent } from '../StakeComponents/SingleSelectContent';\r\nimport { MultiSelectContent } from '../StakeComponents/MultiSelectContent';\r\nimport { LegalEntityContent } from '../StakeComponents/LegalEntityContent';\r\nimport { NewDesignLegalEntityContent } from '../StakeComponents/NewDesignLegalEntityContent';\r\nimport { MultipleLegalEntityContent } from '../StakeComponents/MultipleLegalEntityContent';\r\nimport { PeopleContent } from '../StakeComponents/PeopleContent';\r\nimport { NewDesignPeopleContent } from '../StakeComponents/NewDesignPeopleContent';\r\nimport { MultiplePeopleContent } from '../StakeComponents/MultiplePeopleContent';\r\nimport { AttachmentContent } from '../StakeComponents/AttachmentContent';\r\nimport { PartyContent } from '../StakeComponents/PartyContent';\r\nimport { AddressContent } from '../StakeComponents/AddressContent';\r\nimport { NumberAndSelect } from '../StakeComponents/NumberAndSelectContent';\r\nimport { CheckboxContent } from '../StakeComponents/CheckboxContent';\r\nimport { useNewDesignContext } from '../../../../NewDesignCommon/NewDesignSwitch/NewDesignSwitch';\r\nimport { newDesignThemeSwitch } from '../../../../NewDesignCommon/NewDesignSwitch/newDesignTheme';\r\nimport { LabelWithEllipsis } from '../../../../Common/Label/Label';\r\nimport { EnumSelectContent } from '../StakeComponents/EnumSelectContent';\r\nimport { InvolvedPartiesContent } from '../StakeComponents/InvolvedPartiesContent';\r\n\r\nconst RowLeft = styled.div`\r\n display: flex;\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.disabled};\r\n width: 100%;\r\n font-weight: 500;\r\n margin: 0 0 1rem 0;\r\n ${media.desktop`\r\n width: 25%;\r\n margin: 0;\r\n `};\r\n span {\r\n margin: 0 0 0 1rem;\r\n }\r\n svg {\r\n width: 16px!important;\r\n }\r\n`;\r\n\r\nconst RowRight = styled.div<{ withMargin?: boolean }>`\r\n word-wrap: break-word;\r\n width: 100%;\r\n ${media.desktop`\r\n width: 75%;\r\n `};\r\n ${(props) => newDesignThemeSwitch(props, () =>\r\n css`\r\n margin-top: ${props.withMargin ? '6px' : '0'};\r\n ${media.desktop`\r\n width: 100%;\r\n `};\r\n `\r\n)}\r\n`;\r\n\r\ninterface IStakeRowContentProps {\r\n stakeDefinitionId: string;\r\n propertie: IClusterStakeProperty;\r\n editStake: boolean;\r\n errors: any // because we receive different objects;\r\n context: 'PLE' | 'Cluster';\r\n stakeOptions?: {\r\n peopleContent?: {\r\n fullWidth?: boolean;\r\n }\r\n };\r\n stakeListName?: string;\r\n currentClusterId?: string;\r\n organizationId?: string;\r\n base?: boolean;\r\n setEditingData(propertie: IClusterStakeProperty);\r\n}\r\n\r\nexport enum EItemNameById {\r\n Name = 'referencedItem.referencedItem.name',\r\n WebSite = 'referencedItem.referencedItem.websiteUrl',\r\n PhoneNumber = 'referencedItem.referencedItem.phoneNumber'\r\n}\r\n\r\nconst checkFieldTitle = (data: IStakeRowContentProps) => {\r\n const canEditField = data.propertie.id === EItemNameById.Name ? false : data.editStake;\r\n return canEditField;\r\n};\r\n\r\nexport const StakeCollection: FC = (props) => {\r\n const newDesign = useNewDesignContext();\r\n const withMargin = newDesign.active && ![\r\n EStakeDetailsType.LegalEntity?.toLocaleLowerCase(),\r\n EStakeDetailsType.People?.toLocaleLowerCase()\r\n ].includes(props.propertie?.type?.toLocaleLowerCase());\r\n\r\n return (\r\n <>\r\n
    \r\n {!newDesign.active &&\r\n \r\n \r\n {props.propertie?.name}\r\n \r\n }\r\n {newDesign.active && {props.propertie?.name}}\r\n \r\n {(props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Number.toLocaleLowerCase() || props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.NumberAndRisk.toLocaleLowerCase()) &&\r\n <>\r\n {(props.propertie?.value?.number > 0 || props.propertie.isEditable) &&\r\n 0 ? props.errors?.aggregatedErrors : []))?.find(elem => elem.propertyId === props.propertie.id)}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n base={props.base}\r\n />\r\n }\r\n \r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Text.toLocaleLowerCase() &&\r\n 0 ? props?.errors?.aggregatedErrors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={checkFieldTitle(props)}\r\n setEditingData={props.setEditingData}\r\n simple={props.propertie.subType === EStakeDetailsSubType.Simple}\r\n />\r\n }\r\n {(props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Boolean.toLocaleLowerCase() &&\r\n props.propertie?.subType?.toLocaleLowerCase() === EStakeDetailsType.CheckboxBoolean.toLocaleLowerCase()) &&\r\n 0 ? props?.errors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Boolean.toLocaleLowerCase() &&\r\n props.propertie?.subType?.toLocaleLowerCase() !== EStakeDetailsType.CheckboxBoolean.toLocaleLowerCase() &&\r\n 0 ? props?.errors?.aggregatedErrors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Date.toLocaleLowerCase() &&\r\n 0 ? props?.errors?.aggregatedErrors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.LegalDate.toLocaleLowerCase() &&\r\n \r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Attachment.toLocaleLowerCase() &&\r\n 0 ? props?.errors?.aggregatedErrors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n stakeDefinitionId={props.stakeDefinitionId}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.MultipleAttachments.toLocaleLowerCase() &&\r\n 0 ? props?.errors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n multipleAttachment={true}\r\n stakeDefinitionId={props.stakeDefinitionId}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.LegalEntity.toLocaleLowerCase() && !newDesign.active &&\r\n 0 ? props?.errors : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.propertie?.subType?.toLocaleLowerCase() !== EStakeDetailsSubType.Subsidiary.toLocaleLowerCase() ? 'Cluster' : props.context}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.MultipleLegalEntity.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.People.toLocaleLowerCase() && !newDesign.active &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n stakeOptions={props.stakeOptions?.peopleContent}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.MultiplePeople.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.SingleSelect.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.MultipleSelect.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Party.toLocaleLowerCase() &&\r\n props.propertie?.subType?.toLocaleLowerCase() !== EStakeDetailsType.Cluster.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.MultipleParty.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Address.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.NumberAndSelect.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.LegalEntity.toLocaleLowerCase() && newDesign.active &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.People.toLocaleLowerCase() && newDesign.active &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n context={props.context}\r\n stakeOptions={props.stakeOptions?.peopleContent}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Enum.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Party.toLocaleLowerCase() &&\r\n props.propertie?.subType?.toLocaleLowerCase() === EStakeDetailsType.Cluster.toLocaleLowerCase() && newDesign.active &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n organizationId={props.organizationId}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n {props.propertie?.type?.toLocaleLowerCase() === EStakeDetailsType.Cluster.toLocaleLowerCase() &&\r\n 0 ? (props?.errors?.aggregatedErrors || props?.errors) : []))?.find(elem => elem.propertyId === props.propertie.id)?.message}\r\n data={props.propertie}\r\n editStake={props.editStake && props.propertie.isEditable !== false}\r\n organizationId={props.organizationId}\r\n setEditingData={props.setEditingData}\r\n />\r\n }\r\n \r\n \r\n );\r\n};\r\n","import React, { FC, useCallback, useEffect, useReducer } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled from 'styled-components';\r\n\r\nimport { IStakeCoupleCollection } from './StakeCoupleCollection';\r\nimport { IReferencial } from '../../../../../entities/IGlobal';\r\nimport { useReferentialsPicker } from '../../../../../tools/pickerHooks';\r\nimport { uuidv4 } from '../../../../../tools/authTools';\r\nimport { Tag } from '../../../../Common/TagPicker/Tag';\r\nimport { TagPickerColor, ITag } from '../../../../Common/TagPicker/TagPicker';\r\nimport { SpliceList } from '../../../../Common/SpliceList/SpliceList';\r\nimport { NewDesignStakeLayout } from './NewDesignStakeLayout';\r\nimport { ErrorText } from '../StakeComponents/StakeStyles';\r\nimport { StaticDataPicker } from '../../../../Common/Pickers/StaticDataPicker';\r\nimport { IValue } from '../../../../../entities/IPickers';\r\n\r\ninterface IPropertyValue {\r\n key: string;\r\n value: string;\r\n parentId?: string;\r\n}\r\n\r\ninterface IScopeItem {\r\n id: string;\r\n aorValue: IPropertyValue[];\r\n itemsValue: IPropertyValue[];\r\n}\r\n\r\ninterface IState {\r\n aorTags: ITag[];\r\n itemsTags: ITag[];\r\n scopeItems: IScopeItem[];\r\n totalAorValue: IPropertyValue[];\r\n totalItemsValue: IPropertyValue[];\r\n changed: boolean;\r\n}\r\n\r\nconst initialState = {\r\n aorTags: [],\r\n itemsTags: [],\r\n scopeItems: [],\r\n totalAorValue: [],\r\n totalItemsValue: [],\r\n changed: false\r\n};\r\n\r\ntype TagKeys = 'aorTags' | 'itemsTags';\r\n\r\ntype Action =\r\n | { type: 'INIT', totalAorValue: IPropertyValue[], totalItemsValue?: IPropertyValue[] }\r\n | { type: 'ADD_ITEM', aorValue?: IPropertyValue[] }\r\n | { type: 'UPDATE_ITEM', id: string, aorValue: IPropertyValue[], itemsValue: IPropertyValue[] }\r\n | { type: 'REMOVE_ITEM', id: string }\r\n | { type: 'SET_TAGS', key: TagKeys, tags: ITag[] }\r\n | { type: 'SET_UNCHANGED' };\r\n\r\nclass StateAdapter {\r\n init(totalAorValue: IPropertyValue[], totalItemsValue: IPropertyValue[]): IState {\r\n const itemsByAorIds = (totalItemsValue || []).reduce((byIds, item) => {\r\n byIds.set(item.parentId, byIds.has(item.parentId) ? [...byIds.get(item.parentId), item] : [item]);\r\n return byIds;\r\n }, new Map());\r\n return (totalAorValue || [])\r\n .reduce((state, value) => this.addItem(state, [value], itemsByAorIds.get(value.key)), { ...initialState });\r\n }\r\n\r\n addItem(state: IState, aorValue: IPropertyValue[] = [], itemsValue: IPropertyValue[] = []): IState {\r\n const newItem = { id: uuidv4(), aorValue, itemsValue };\r\n const newItems = [...state.scopeItems, newItem];\r\n\r\n return { ...state, scopeItems: newItems, ...this.totalizeScopeItems(newItems), changed: true };\r\n }\r\n\r\n updateItem(state: IState, id: string, aorValue: IPropertyValue[], itemsValue: IPropertyValue[]): IState {\r\n const updatedItems = state.scopeItems.map(item => {\r\n if (item.id === id) {\r\n const aorChanged = item.aorValue !== aorValue;\r\n return { ...item, aorValue, itemsValue: aorChanged ? [] : itemsValue };\r\n } else {\r\n return item;\r\n }\r\n });\r\n return { ...state, scopeItems: updatedItems, ...this.totalizeScopeItems(updatedItems), changed: true };\r\n }\r\n\r\n removeItem(state: IState, id: string): IState {\r\n const updatedItems = state.scopeItems.filter(item => item.id !== id);\r\n\r\n return { ...state, scopeItems: updatedItems, ...this.totalizeScopeItems(updatedItems), changed: true };\r\n }\r\n\r\n totalizeScopeItems(items: IScopeItem[]): Pick {\r\n return items.reduce((total, item) => ({\r\n totalAorValue: [...total.totalAorValue, ...item.aorValue],\r\n totalItemsValue: [...total.totalItemsValue, ...item.itemsValue.map(child => ({ ...child, parentId: item.aorValue[0].key }))]\r\n }), { totalAorValue: [], totalItemsValue: [] });\r\n }\r\n}\r\n\r\nconst adapter = new StateAdapter();\r\n\r\nconst reducer = (state: IState, action: Action): IState => {\r\n switch (action.type) {\r\n case 'INIT':\r\n return adapter.init(action.totalAorValue, action.totalItemsValue);\r\n case 'ADD_ITEM':\r\n return adapter.addItem(state, action.aorValue);\r\n case 'UPDATE_ITEM':\r\n return adapter.updateItem(state, action.id, action.aorValue, action.itemsValue);\r\n case 'REMOVE_ITEM':\r\n return adapter.removeItem(state, action.id);\r\n case 'SET_TAGS':\r\n return { ...state, [action.key]: action.tags };\r\n case 'SET_UNCHANGED':\r\n return { ...state, changed: false };\r\n default:\r\n return { ...initialState };\r\n }\r\n};\r\n\r\n// tslint:disable-next-line:no-null-keyword\r\nconst mapToPropertyValue = (items: IValue[]) => (items || []).map((item) => ({ key: item.key, value: item.data.value, parentId: null }));\r\n\r\nconst Field = styled.div`\r\n label {\r\n margin-bottom: 6px;\r\n }\r\n`;\r\n\r\nconst TagpickerTag = styled(Tag)`\r\n padding: 0.3rem 0.5rem;\r\n`;\r\n\r\nexport const AreaOfResponsabilities: FC = ({ errors, couple, editStake, setEditingData }) => {\r\n const [aorProperty, itemsProperty] = couple;\r\n const [searchHandler, , , searching] = useReferentialsPicker();\r\n const [state, dispatch] = useReducer(reducer, { ...initialState });\r\n\r\n useEffect(() => {\r\n dispatch({ type: 'INIT', totalAorValue: aorProperty.value, totalItemsValue: itemsProperty.value });\r\n\r\n if (editStake) {\r\n try {\r\n const keys: TagKeys[] = ['aorTags', 'itemsTags'];\r\n const promises = [aorProperty, itemsProperty].map(async (property, index) => {\r\n const context = property.configuration?.referentialContext;\r\n const type = property.configuration?.referentialType;\r\n\r\n const tags = await searchHandler(type, context, undefined);\r\n return dispatch({ type: 'SET_TAGS', key: keys[index], tags });\r\n });\r\n // SonarCloud wants us to use the result of the mapped promises, please leave the next line\r\n console.log('Promises for properties', promises);\r\n } catch (err) {\r\n console.log(`error: ${err}`);\r\n }\r\n }\r\n }, [editStake]);\r\n\r\n useEffect(() => {\r\n editStake && state?.totalAorValue?.length === 0 && addAorHandler();\r\n }, [editStake]);\r\n\r\n useEffect(() => {\r\n if (state.changed) {\r\n setEditingData([\r\n { ...aorProperty, value: state.totalAorValue },\r\n { ...itemsProperty, value: state.totalItemsValue }\r\n ]);\r\n\r\n dispatch({ type: 'SET_UNCHANGED' });\r\n }\r\n }, [state.changed]);\r\n\r\n const updateAorHandler = (id: string, aorValue: IPropertyValue[], itemsValue?: IPropertyValue[]) => {\r\n dispatch({ type: 'UPDATE_ITEM', id, aorValue, itemsValue });\r\n };\r\n\r\n const addAorHandler = useCallback(() => {\r\n dispatch({ type: 'ADD_ITEM' });\r\n }, []);\r\n\r\n const removeAorHandler = useCallback((id: string) => {\r\n dispatch({ type: 'REMOVE_ITEM', id });\r\n }, []);\r\n\r\n const aorError = (errors?.aggregatedErrors || [])?.find(elem => elem?.propertyId === aorProperty?.id)?.message;\r\n const itemsError = (errors?.aggregatedErrors || [])?.find(elem => elem?.propertyId === itemsError?.id)?.message;\r\n\r\n return (\r\n \r\n }\r\n itemRenderer={item => (\r\n \r\n \r\n {editStake ? (\r\n <>\r\n ({\r\n text: elem.value,\r\n key: elem.key,\r\n data: { ...elem, name: elem.value }\r\n }))}\r\n staticData={state.aorTags.map(elem => ({\r\n text: elem.value,\r\n key: elem.id,\r\n data: elem.data\r\n }))}\r\n onSelectElement={tags => updateAorHandler(item.id, mapToPropertyValue(tags), item.itemsValue)}\r\n />\r\n {aorError && {aorError}}\r\n \r\n ) : (\r\n <>\r\n {item.aorValue.length > 0 && (\r\n \r\n {item.aorValue[0].value}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {editStake ? (\r\n <>\r\n ({\r\n text: elem.value,\r\n key: elem.key,\r\n data: { ...elem, name: elem.value }\r\n }))}\r\n staticData={item.aorValue.length > 0 ?\r\n state.itemsTags.filter(tag => tag?.data?.parents?.includes(item?.aorValue[0]?.key)).map(elem => ({\r\n text: elem.value,\r\n key: elem.id,\r\n data: elem.data\r\n })) :\r\n state.itemsTags.map(elem => ({\r\n text: elem.value,\r\n key: elem.id,\r\n data: elem.data\r\n }))}\r\n onSelectElementMulti={tags => updateAorHandler(item.id, item.aorValue, mapToPropertyValue(tags))}\r\n />\r\n {itemsError && {itemsError}}\r\n \r\n ) : (\r\n \r\n {item.itemsValue.map(child =>\r\n \r\n {child.value}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { IClusterStakeProperty } from '../../../../../entities/IClusterStake';\r\nimport { AreaOfResponsabilities } from './AreaOfResponsabilities';\r\n\r\nexport interface IStakeCoupleCollection {\r\n couple: [IClusterStakeProperty, IClusterStakeProperty];\r\n editStake: boolean;\r\n errors: IStakeError;\r\n setEditingData(couple: [IClusterStakeProperty, IClusterStakeProperty]);\r\n}\r\n\r\nexport interface IStakeError {\r\n aggregatedErrors: {\r\n propertyId: string;\r\n stakeInstanceId: string;\r\n errorCode: number;\r\n message: string;\r\n }[]\r\n errorCode: number;\r\n message: string;\r\n}\r\n\r\nconst components = {\r\n 'area-of-resp': AreaOfResponsabilities\r\n};\r\n\r\nexport const StakeCoupleCollection: FC = (props) => {\r\n const [parent] = props.couple;\r\n const Component = components[parent?.key];\r\n\r\n return <>{!!Component && };\r\n};\r\n","import { rgba } from 'polished';\r\nimport { Link } from 'react-router-dom';\r\nimport styled from 'styled-components';\r\n\r\nimport { colorStack } from '../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../styleHelpers/fontSizes';\r\nimport boxShadow from '../../../../../styleHelpers/mixins/shadow';\r\n\r\nexport const Wrapper = styled.div`\r\n ${boxShadow()};\r\n border-radius: 4px;\r\n margin: 1rem 0;\r\n background: ${colorStack.white};\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const TopSection = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n background: ${rgba(colorStack.darkBlue, .05)};\r\n`;\r\n\r\nexport const BottomSection = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const DetailSection = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const PartyInfoWrapper = styled.div`\r\n padding: 1rem 2rem;\r\n`;\r\n\r\nexport const Position = styled.div`\r\n font-size: ${fontSize[16]};\r\n font-weight: 600;\r\n color: ${colorStack.darkBlue};\r\n margin: .5rem;\r\n`;\r\n\r\nexport const Attachment = styled.div`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n color: ${colorStack.darkBlue};\r\n span {\r\n font-weight: 500;\r\n margin: 0 .5rem;\r\n }\r\n`;\r\n\r\nexport const LeftSide = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n width: 50%;\r\n > div {\r\n align-items: center;\r\n display: flex;\r\n }\r\n`;\r\n\r\nexport const EntityDetails = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 0 0 1rem;\r\n`;\r\n\r\nexport const RightSide = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 0 0 auto;\r\n justify-content: center;\r\n width: 50%;\r\n`;\r\n\r\nexport const RightSideRow = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n margin: 0 0 0 auto;\r\n justify-content: space-around;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n width: 50%;\r\n`;\r\n\r\nexport const ImageWrapper = styled.div`\r\n width: 80px;\r\n height: 80px;\r\n margin: 0 1rem 0 0;\r\n`;\r\n\r\nexport const SmallImage = styled.div`\r\n width: 20px;\r\n height: 20px;\r\n margin: 0 1rem 0 0;\r\n`;\r\n\r\nexport const AdditionalInfo = styled.span`\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.disabled};\r\n margin: 1rem 0;\r\n`;\r\n\r\nexport const Name = styled(Link)`\r\n font-size: ${fontSize[16]};\r\n font-weight: 500;\r\n color: ${colorStack.darkBlue};\r\n &:visited {\r\n color: ${colorStack.darkBlue};\r\n }\r\n &:hover {\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nexport const RepresentativeName = styled(Name as any)`\r\n font-size: ${fontSize[13]};\r\n margin: 0 1rem 0 0;\r\n`;\r\n\r\nexport const DateWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n > div {\r\n margin: 0 1rem 2rem 0;\r\n }\r\n`;\r\n\r\nexport const LawFirmPicture = styled.div<{ url: string }>`\r\n background-image: url(${props => props.url});\r\n border-radius: 4px;\r\n width: 60px;\r\n height: 60px;\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n`;\r\n\r\nexport const DateContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n font-size: ${fontSize[13]};\r\n margin: 0 1rem 0 0;\r\n`;\r\n\r\nexport const IconWrapper = styled.div`\r\n min-width: 100px;\r\n color: ${colorStack.disabled};\r\n margin: .5rem .5rem .5rem 0;\r\n svg {\r\n font-size: ${fontSize[20]};\r\n &:last-child {\r\n color: ${colorStack.middleBlue};\r\n }\r\n }\r\n span {\r\n font-size: ${fontSize[13]};\r\n margin: 0 1rem;\r\n font-weight: normal !important;\r\n }\r\n`;\r\n\r\nexport const Representatives = styled.div`\r\n font-size: ${fontSize[13]};\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 0 .5rem 0;\r\n`;\r\n\r\nexport const InlineProperty = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const MiddleSection = styled.div`\r\n flex-direction: column;\r\n align-items: flex-start;\r\n width: 50%;\r\n`;\r\n\r\nexport const Terms = styled.div`\r\n margin: 1rem 0 0 0;\r\n`;\r\n","import React, { FC } from 'react';\r\nimport { faPaperclip } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport * as Common from '../Common';\r\n\r\ninterface IAttachmentSectionProps {\r\n title: string;\r\n isAttachmentAvailable?: boolean;\r\n downloadHandler();\r\n}\r\n\r\nexport const AttachmentSection: FC = ({ title, isAttachmentAvailable, downloadHandler }) => (\r\n \r\n \r\n {title}\r\n \r\n {isAttachmentAvailable &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n);","import { faAlignLeft, faCheckSquare, faCaretCircleDown, faMapMarkedAlt } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { IClusterSingleDynamicStake, IClusterStakeProperty, EPropertieKey } from '../../../../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../../../../styleHelpers/fontSizes';\r\nimport { addressFormatterGlobal } from '../../../../../../tools/addressFormatter';\r\nimport { Checkbox } from '../../../../../Common/Inputs/Checkbox';\r\nimport * as Common from '../Common';\r\nimport { AttachmentSection } from './AttachmentSection';\r\n\r\nconst Name = styled.span`\r\n font-size: ${fontSize[16]};\r\n font-weight: 500;\r\n color: ${colorStack.darkBlue};\r\n`;\r\n\r\ninterface IDonorLayoutProps {\r\n stake: IClusterSingleDynamicStake;\r\n propertyByKey: {\r\n [key in EPropertieKey]?: IClusterStakeProperty;\r\n }\r\n downloadHandler();\r\n}\r\n\r\nexport const DonorLayout: FC = ({ stake, propertyByKey, downloadHandler }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {propertyByKey[EPropertieKey.NonRegisteredUserFirstName]?.value || ''} {propertyByKey[EPropertieKey.NonRegisteredUserLastName]?.value || ''}\r\n \r\n \r\n {propertyByKey[EPropertieKey.NonRegisteredUserUserJob]?.value} - {propertyByKey[EPropertieKey.NonRegisteredUserCabinet]?.value}\r\n \r\n \r\n \r\n \r\n {propertyByKey[EPropertieKey.NonRegisteredUserAddress]?.value &&\r\n <>\r\n \r\n \r\n {propertyByKey[EPropertieKey.NonRegisteredUserAddress]?.name}\r\n \r\n \r\n {addressFormatterGlobal(propertyByKey[EPropertieKey.NonRegisteredUserAddress].value)}\r\n \r\n \r\n }\r\n {propertyByKey[EPropertieKey.JourneyPartiesRelationshipNature]?.value?.value &&\r\n <>\r\n \r\n \r\n {propertyByKey[EPropertieKey.JourneyPartiesRelationshipNature]?.name}\r\n \r\n \r\n {propertyByKey[EPropertieKey.JourneyPartiesRelationshipNature].value.value}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n {typeof propertyByKey[EPropertieKey.Boolean]?.value === 'boolean' &&\r\n \r\n \r\n \r\n {propertyByKey[EPropertieKey.Boolean]?.name}\r\n \r\n \r\n \r\n }\r\n {propertyByKey[EPropertieKey.JourneyPartiesRelationshipDescription]?.value &&\r\n \r\n \r\n \r\n {propertyByKey[EPropertieKey.JourneyPartiesRelationshipDescription]?.name}\r\n \r\n \r\n {propertyByKey[EPropertieKey.JourneyPartiesRelationshipDescription].value}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n};","import { faAlignLeft, faUser } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\n\r\nimport { IClusterSingleDynamicStake, IClusterStakeProperty, EPropertieKey } from '../../../../../../entities/IClusterStake';\r\nimport { Avatar, EAvatarSize } from '../../../../../Common/Avatar/Avatar';\r\nimport * as Common from '../Common';\r\nimport { ProfilesSummary } from '../../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { AttachmentSection } from './AttachmentSection';\r\nimport { EProfileType } from '../../../../../../entities/IGlobal';\r\n\r\ninterface IBeneficiaryLayoutProps {\r\n stake: IClusterSingleDynamicStake;\r\n propertyByKey: {\r\n [key in EPropertieKey]?: IClusterStakeProperty;\r\n }\r\n downloadHandler();\r\n}\r\n\r\nexport const BeneficiaryLayout: FC = ({ stake, propertyByKey, downloadHandler }) => {\r\n const userData = propertyByKey[EPropertieKey.JourneyCreator]?.value;\r\n const managerData = propertyByKey[EPropertieKey.JourneyCreatorManager]?.value;\r\n const legalEntityData = propertyByKey[EPropertieKey.JourneyCreatorLegalEntity];\r\n const functionData = propertyByKey[EPropertieKey.Function];\r\n const costCenterData = propertyByKey[EPropertieKey.CostCenterSponso];\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {userData &&\r\n \r\n }\r\n \r\n \r\n {`${userData?.firstName || ''} ${userData?.lastName || ''}`}\r\n \r\n {!!legalEntityData?.value?.Picture &&\r\n \r\n }\r\n \r\n \r\n \r\n {!!managerData &&\r\n <>\r\n \r\n \r\n {propertyByKey[EPropertieKey.JourneyCreatorManager]?.name}\r\n \r\n \r\n \r\n }\r\n {propertyByKey[EPropertieKey.Email]?.value &&\r\n <>\r\n \r\n \r\n {propertyByKey[EPropertieKey.Email]?.name}\r\n \r\n \r\n {propertyByKey[EPropertieKey.Email]?.value}\r\n \r\n \r\n }\r\n {!legalEntityData?.value?.Picture &&\r\n
    \r\n \r\n {legalEntityData.name}\r\n \r\n \r\n {legalEntityData?.value?.Name}\r\n \r\n
    \r\n }\r\n {!!functionData &&\r\n
    \r\n \r\n {functionData.name}\r\n \r\n \r\n {functionData?.value}\r\n \r\n
    \r\n }\r\n {!!costCenterData &&\r\n
    \r\n \r\n {costCenterData.name}\r\n \r\n \r\n {costCenterData?.value?.value}\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport { faCalendarDay, faBell } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport moment from 'moment';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { IClusterStakeProperty, EPropertieKey } from '../../../../../../entities/IClusterStake';\r\nimport * as Common from '../Common';\r\n\r\ninterface IDateSectionProps {\r\n propertyByKey: {\r\n [key in EPropertieKey]?: IClusterStakeProperty;\r\n }\r\n}\r\n\r\nexport const DateSection: FC = ({ propertyByKey }) => (\r\n \r\n {(propertyByKey?.['date-start']?.value?.date || propertyByKey['date-start']?.value?.endAt) &&\r\n \r\n \r\n \r\n {propertyByKey['date-start']?.name}\r\n {propertyByKey['date-start']?.value?.isReminderActivated &&\r\n \r\n }\r\n \r\n {moment.utc(propertyByKey['date-start']?.value?.date || propertyByKey['date-start'].value?.endAt).local().format('DD MMM YYYY')}\r\n \r\n }\r\n \r\n \r\n \r\n {propertyByKey?.['date-end']?.name}\r\n {propertyByKey['date-end']?.value?.isReminderActivated &&\r\n \r\n }\r\n \r\n {\r\n (propertyByKey?.['date-end']?.value?.date || propertyByKey['date-end']?.value?.endAt) ?\r\n moment.utc(propertyByKey['date-end'].value?.date || propertyByKey['date-end']?.value?.endAt).local().format('DD MMM YYYY')\r\n : \r\n }\r\n \r\n {(propertyByKey?.['last-renewal-date']?.value?.date || propertyByKey['last-renewal-date']?.value?.endAt) &&\r\n \r\n \r\n \r\n {propertyByKey?.['last-renewal-date']?.name}\r\n {propertyByKey['last-renewal-date']?.value?.isReminderActivated &&\r\n \r\n }\r\n \r\n {\r\n (propertyByKey?.['last-renewal-date']?.value?.date || propertyByKey['last-renewal-date']?.value?.endAt) ?\r\n moment.utc(propertyByKey['last-renewal-date'].value?.date || propertyByKey['last-renewal-date']?.value?.endAt).local().format('DD MMM YYYY')\r\n : \r\n }\r\n \r\n }\r\n \r\n);\r\n","import React, { FC } from 'react';\r\nimport { faCaretCircleDown, faUser } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { IClusterSingleDynamicStake, EClusterSingleDynamicStakeSubType, IClusterStakeProperty, EPropertieKey } from '../../../../../../entities/IClusterStake';\r\nimport { Avatar, EAvatarSize } from '../../../../../Common/Avatar/Avatar';\r\nimport * as Common from '../Common';\r\nimport { AttachmentSection } from './AttachmentSection';\r\nimport { DateSection } from './DateSection';\r\nimport { ProfilesSummary } from '../../../../../Common/ProfilesSummary/ProfilesSummary';\r\nimport { EProfileType } from '../../../../../../entities/IGlobal';\r\n\r\ninterface IPartiesLayoutProps {\r\n stake: IClusterSingleDynamicStake;\r\n propertyByKey: {\r\n [key in EPropertieKey]?: IClusterStakeProperty;\r\n }\r\n downloadHandler();\r\n}\r\n\r\nexport const PartiesLayout: FC = ({ stake, propertyByKey, downloadHandler }) => (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {propertyByKey?.[EPropertieKey.MandateHolder]?.value &&\r\n
    \r\n \r\n {(propertyByKey?.[EPropertieKey.MandateHolder]?.value?.name || propertyByKey?.[EPropertieKey.MandateHolder]?.value?.Name) &&\r\n \r\n \r\n {`${propertyByKey[EPropertieKey.MandateHolder]?.value?.name || propertyByKey[EPropertieKey.MandateHolder]?.value?.Name || ''}`}\r\n \r\n \r\n {propertyByKey[EPropertieKey.Position]?.value?.value}\r\n \r\n \r\n }\r\n
    \r\n }\r\n
    \r\n \r\n {propertyByKey?.representatives?.value &&\r\n <>\r\n \r\n \r\n {propertyByKey.representatives?.name}\r\n \r\n \r\n {propertyByKey.representatives.value?.length ? (\r\n propertyByKey.representatives.value.slice(0, 2).map(user => (\r\n \r\n ))\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n }\r\n {propertyByKey?.terms?.value?.value &&\r\n <>\r\n \r\n \r\n \r\n {propertyByKey.terms.name}\r\n \r\n {propertyByKey.terms.value?.value}\r\n \r\n \r\n }\r\n \r\n \r\n {(propertyByKey[EPropertieKey.DateStart] || propertyByKey[EPropertieKey.DateEnd] || propertyByKey[EPropertieKey.LastRenewalDate]) &&\r\n \r\n }\r\n \r\n
    \r\n
    \r\n \r\n);","import React, { FC, useMemo, useCallback } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { IClusterSingleDynamicStake, EStakeContainerType, IClusterStakeProperty, EPropertieKey } from '../../../../../entities/IClusterStake';\r\nimport { downloadAttachment } from '../../../../../actions/stakeActions';\r\nimport { IState } from '../../../../../reducers';\r\nimport { IClusterReducer } from '../../../../../reducers/clustersReducer';\r\nimport { arrayToObject } from '../../../../../tools/arrayTools';\r\nimport { DonorLayout } from './LayoutTemplates/DonorLayout';\r\nimport { BeneficiaryLayout } from './LayoutTemplates/BeneficiaryLayout';\r\nimport { PartiesLayout } from './LayoutTemplates/PartiesLayout';\r\n\r\ntype DownloadAttachment = ReturnType;\r\n\r\ninterface IPartyContainerProps {\r\n stake: IClusterSingleDynamicStake;\r\n}\r\n\r\ninterface IPropertyByKey {\r\n propertyKey: {\r\n [key in EPropertieKey]?: IClusterStakeProperty;\r\n }\r\n}\r\n\r\nexport const PartyContainer: FC = ({ stake }) => {\r\n const dispatch = useDispatch();\r\n const { currentClusterId } = useSelector(state => state.clusters);\r\n const property: IPropertyByKey = useMemo(() => {\r\n return ({\r\n propertyKey: arrayToObject((stake.properties || []), propertie => propertie.key)\r\n });\r\n }, [stake.properties]);\r\n\r\n const downloadHandler = useCallback(() => {\r\n dispatch(downloadAttachment(currentClusterId, 'Overview Files', property.propertyKey?.attachments?.value?.name)).then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n });\r\n }, [property]);\r\n\r\n return (\r\n <>\r\n {(stake.type === EStakeContainerType.InvitationSecondParty\r\n || stake.type === EStakeContainerType.GiftSecondParty\r\n ) &&\r\n \r\n }\r\n {stake.type === EStakeContainerType.GiftCreator &&\r\n \r\n }\r\n {(stake.type === EStakeContainerType.LegalEntityParty\r\n || stake.type === EStakeContainerType.GiftParty\r\n || stake.type === EStakeContainerType.UserParty\r\n || stake.type === EStakeContainerType.ContractingParties\r\n || stake.type === EStakeContainerType.InvolvedParty\r\n || stake.type === EStakeContainerType.LeaseParties\r\n ) &&\r\n \r\n }\r\n \r\n );\r\n};","import React, { useCallback, FC, ReactNode, useMemo, Fragment } from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\nimport { faTrash, faArrowUpLong } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { useFormikContext } from 'formik';\r\n\r\nimport { IClusterSingleDynamicStake, IClusterDynamicStakeListItem, IClusterStakeProperty, EPropertieKey } from '../../../entities/IClusterStake';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize, fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { media } from '../../../styleHelpers/breakpoint';\r\nimport { Button, EButtonColorSchema, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { StakeCollection, EItemNameById } from '../../Organization/ClustersV2/ClusterOverview/StakeContainers/StakeCollection';\r\nimport { StakeCoupleCollection, IStakeError } from '../../Organization/ClustersV2/ClusterOverview/StakeContainers/StakeCoupleCollection';\r\nimport { NewDesignStakeLayout } from '../../Organization/ClustersV2/ClusterOverview/StakeContainers/NewDesignStakeLayout';\r\nimport { PartyContainer } from '../../Organization/ClustersV2/ClusterOverview/StakeContainers/PartyContainer';\r\nimport { isStanderdView, isPartyView, prepareProperties } from '../../../tools/stakes';\r\nimport { useNewDesignContext } from '../../NewDesignCommon/NewDesignSwitch/NewDesignSwitch';\r\nimport { newDesignThemeSwitch } from '../../NewDesignCommon/NewDesignSwitch/newDesignTheme';\r\n\r\nconst Wrapper = styled.div<{ presentationSection?: boolean; }>`\r\n ${props => !props.presentationSection && css`\r\n border: 1px solid ${colorStack.ligthGrey};\r\n border-radius: 4px;\r\n margin: 0 0 1rem 0;\r\n padding: 1rem;\r\n background: ${colorStack.white};\r\n `}\r\n ${(props) => newDesignThemeSwitch(props, () =>\r\n css`\r\n border: none;\r\n padding: 0;\r\n margin: 0;\r\n background: none;\r\n `\r\n)}\r\n`;\r\n\r\nconst Separator = styled.div`\r\n height: 1px;\r\n margin: 10px -${fontSize[16]};\r\n background-color: ${colorStack.ligthGrey};\r\n`;\r\n\r\nconst StakeRowWrapper = styled.div<{ partiesSection?: boolean }>`\r\n display: flex;\r\n align-items: flex-start;\r\n margin: 0 0 .5rem 0;\r\n flex-direction: column;\r\n align-items: center;\r\n ${media.desktop`\r\n flex-direction: row;\r\n `};\r\n`;\r\n\r\nconst Title = styled.div`\r\n ${fontSizeAndHeight[16]};\r\n color: ${colorStack.darkBlue};\r\n font-weight: 500;\r\n font-style: italic;\r\n`;\r\n\r\nconst Top = styled.div`\r\n display: flex;\r\n margin: 0 0 1rem 0;\r\n justify-content: space-between;\r\n`;\r\n\r\nconst ButtonWrapper = styled.div`\r\n display: flex;\r\n button {\r\n margin: 0 0 0 .5rem;\r\n }\r\n`;\r\n\r\nconst BottomSectionWrapper = styled.div`\r\n padding-top: .8rem;\r\n margin-top: .8rem;\r\n border-top: 1px solid ${colorStack.ligthGrey};\r\n`;\r\n\r\nconst ButtonsWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst ReorderButton = styled.div`\r\n margin: 0 10px 0 0;\r\n cursor: pointer;\r\n`;\r\n\r\ninterface IStakesWrapperProps {\r\n stake: IClusterSingleDynamicStake;\r\n singleStakes?: IClusterDynamicStakeListItem;\r\n pleMainObj?: any;\r\n editMode?: boolean;\r\n editField?: string;\r\n singleIndex?: number;\r\n errors?: IStakeError;\r\n isMultistake?: boolean;\r\n context?: 'PLE' | 'Cluster',\r\n isPresentationSection?: boolean;\r\n bottomSection?: ReactNode;\r\n currentClusterId?: string;\r\n organizationId?: string;\r\n}\r\n\r\nexport const StakesWrapper: FC = props => {\r\n const formikContext = useFormikContext();\r\n const newDesign = useNewDesignContext();\r\n const removeSingleStake = useCallback(() => {\r\n if (props.context === 'Cluster') {\r\n formikContext.setFieldValue(props.editField, props.singleStakes?.clusterStakes.filter((stake, index) => index !== props.singleIndex));\r\n }\r\n if (props.context === 'PLE') {\r\n formikContext.setFieldValue(props.editField, props.pleMainObj.filter((stake, index) => index !== props.singleIndex));\r\n }\r\n }, [props.singleStakes?.clusterStakes, props.editField, props.singleIndex]);\r\n\r\n const setEditingData = useCallback((propertie: IClusterStakeProperty | [IClusterStakeProperty, IClusterStakeProperty]) => {\r\n if (Array.isArray(propertie)) {\r\n const [parent, child] = propertie;\r\n formikContext.setFieldValue(`${props.editField}[${props.singleIndex}]`, {\r\n ...props.stake,\r\n properties: props.stake.properties.map(elem => {\r\n if (elem.id !== parent.id && elem.id !== child.id) {\r\n return elem;\r\n }\r\n\r\n return elem.id === parent.id ? parent : child;\r\n })\r\n });\r\n return;\r\n }\r\n if (props.context === 'Cluster' && propertie.key !== EPropertieKey.PLECLE) {\r\n formikContext.setFieldValue(`${props.editField}[${props.singleIndex}]`, {\r\n ...props.stake,\r\n properties: props.stake.properties.map(elem => elem.id === propertie.id ? propertie : elem)\r\n });\r\n }\r\n if (props.context === 'PLE' || propertie.key === EPropertieKey.PLECLE) {\r\n formikContext?.setFieldValue(propertie.id, propertie.value);\r\n }\r\n }, [props.stake, props.editField, props.singleIndex, props.context, formikContext]);\r\n\r\n const [coupleProperties, singleProperties] = useMemo(() => prepareProperties(props?.stake?.properties), [props?.stake?.properties]);\r\n\r\n const reorderHandler = useCallback(() => {\r\n const reorderArray = props.singleStakes.clusterStakes;\r\n reorderArray.splice(props.singleIndex - 1, 0, reorderArray.splice(props.singleIndex, 1)[0]);\r\n formikContext?.setFieldValue(props.editField, reorderArray);\r\n }, [props.editField, props.singleStakes, props.singleIndex]);\r\n\r\n return (\r\n <>\r\n {(isStanderdView(props.stake.type) || props.editMode) &&\r\n \r\n {props.stake?.id && !newDesign.active &&
    }\r\n {!newDesign.active &&\r\n \r\n {props.stake.name && (\r\n {props.stake.name}\r\n )}\r\n {props.editMode &&\r\n \r\n {props.isMultistake &&\r\n \r\n {props.singleIndex > 0 &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n {coupleProperties.map(couple =>\r\n \r\n )}\r\n {coupleProperties.length > 0 && singleProperties.length > 0 && (\r\n \r\n )}\r\n \r\n {singleProperties.map(propertie =>\r\n \r\n {propertie.id !== EItemNameById.Name &&\r\n \r\n \r\n \r\n }\r\n \r\n )}\r\n \r\n {props.bottomSection && (\r\n \r\n {props.bottomSection}\r\n \r\n )}\r\n \r\n }\r\n {(isPartyView(props.stake.type) && !props.editMode) &&\r\n \r\n }\r\n \r\n );\r\n};","import { EStakeContainerType, IClusterStakeProperty } from '../entities/IClusterStake';\r\n\r\nexport const isStanderdView = (type: number) => {\r\n return (type === EStakeContainerType.Standard\r\n || type === EStakeContainerType.Shareholder\r\n || type === EStakeContainerType.Participations\r\n || type === EStakeContainerType.GeneralCommitment\r\n || type === EStakeContainerType.ShareholderMeetingInformation\r\n || type === EStakeContainerType.Notes\r\n || type === EStakeContainerType.Contact\r\n || type === EStakeContainerType.Economic\r\n || type === EStakeContainerType.RelatedEntities\r\n || type === EStakeContainerType.GiftDescription\r\n || type === EStakeContainerType.GiftPartiesRelationship\r\n || type === EStakeContainerType.AuthorizedActivities\r\n || type === EStakeContainerType.MainRent\r\n || type === EStakeContainerType.AdditionnalRent\r\n || type === EStakeContainerType.BuildingFeesCommitment\r\n || type === EStakeContainerType.QuotationPrice\r\n || type === EStakeContainerType.LeaseTaxes\r\n || type === EStakeContainerType.ConstructionWorkRepaire\r\n || type === EStakeContainerType.RentCancellation\r\n || type === EStakeContainerType.QuotationPresentation\r\n || type === EStakeContainerType.QuotationRequestBody\r\n || type === EStakeContainerType.LeaseAssignment\r\n || type === EStakeContainerType.SecurityDeposit\r\n || type === EStakeContainerType.RentIndexation\r\n || type === EStakeContainerType.DamagePovision\r\n || type === EStakeContainerType.ContractDuration\r\n || type === EStakeContainerType.BuildingFees\r\n || type === EStakeContainerType.Designation\r\n || type === EStakeContainerType.LeaseContractTypology\r\n || type === EStakeContainerType.RenewalProvision\r\n || type === EStakeContainerType.SubLeasing\r\n || type === EStakeContainerType. ProjectDescription\r\n || type === EStakeContainerType.ContractTypologyMerieux\r\n || type === EStakeContainerType.FinancingPlan\r\n || type === EStakeContainerType.OwnershipOfRights\r\n || type === EStakeContainerType.TransferOfRights\r\n || type === EStakeContainerType.InvitationDescription\r\n || type === EStakeContainerType.RentInsurance);\r\n};\r\n\r\nexport const isPartyView = (type: number) => {\r\n return (type === EStakeContainerType.LegalEntityParty\r\n || type === EStakeContainerType.UserParty\r\n || type === EStakeContainerType.GiftCreator\r\n || type === EStakeContainerType.GiftSecondParty\r\n || type === EStakeContainerType.GiftParty\r\n || type === EStakeContainerType.ContractingParties\r\n || type === EStakeContainerType.InvolvedParty\r\n || type === EStakeContainerType.InvitationSecondParty\r\n || type === EStakeContainerType.LeaseParties);\r\n};\r\n\r\nexport const prepareProperties = (properties: IClusterStakeProperty[]) => {\r\n const { singles, couples } = (properties || []).reduce(({ byIds, indexesByIds, singles, couples }, property) => {\r\n byIds.set(property.id, property);\r\n\r\n if (!!property.configuration?.parentPropertyId) {\r\n couples.push([byIds.get(property.configuration.parentPropertyId), property]);\r\n singles.splice(indexesByIds.get(property.configuration?.parentPropertyId), 1);\r\n } else {\r\n indexesByIds.set(property.id, singles.push(property) - 1);\r\n }\r\n return { byIds, indexesByIds, singles, couples };\r\n }, { byIds: new Map(), indexesByIds: new Map(), singles: [], couples: [] });\r\n\r\n return [couples, singles];\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faXmark } from '@fortawesome/pro-solid-svg-icons';\r\nimport { rgba } from 'polished';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { EPopupSizes } from '../../../entities/IGlobal';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { Button, EButtonSize, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { MultilineTextWithEllipsis } from '../TextWithEllipsis/MultilineTextWithEllipsis';\r\n\r\nconst Wrapper = styled.div`\r\n position: fixed;\r\n width: 100%;\r\n height: 100%;\r\n background: ${rgba(colorStack.label, .75)};\r\n top: 0;\r\n left: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 999999;\r\n .custom-iframe-wopi {\r\n width: 100%;\r\n height: 70vh;\r\n }\r\n`;\r\n\r\nconst InnerWrapper = styled.div`\r\n max-height: 95vh;\r\n border-radius: 8px;\r\n background: ${colorStack.white};\r\n`;\r\n\r\nconst Buttons = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 1rem 1.5rem;\r\n gap: .5rem;\r\n`;\r\n\r\nconst Content = styled.div<{ size: EPopupSizes }>`\r\n padding: 1.5rem;\r\n color: ${colorStack.content};\r\n min-width: 250px;\r\n ${props => props.size === EPopupSizes.XSMALL && css`\r\n width: auto;\r\n max-width: 560px;\r\n `}\r\n ${props => props.size === EPopupSizes.SMALL && css`\r\n width: 560px;\r\n `}\r\n ${props => props.size === EPopupSizes.MEDIUM && css`\r\n width: 660px;\r\n `}\r\n ${props => props.size === EPopupSizes.BIG && css`\r\n width: 760px;\r\n `}\r\n ${props => props.size === EPopupSizes.MONSTER && css`\r\n width: 960px;\r\n `}\r\n ${props => props.size === EPopupSizes.FULL && css`\r\n width: calc(100vw - 130px);\r\n `}\r\n`;\r\n\r\nconst Title = styled.span`\r\n font-weight: 700;\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[20]};\r\n`;\r\n\r\nconst Top = styled.div`\r\n display: flex;\r\n padding: 1rem;\r\n justify-content: space-between;\r\n background: ${colorStack.whiteGrey};\r\n border-radius: 8px 8px 0 0;\r\n align-items: center;\r\n svg {\r\n cursor: pointer;\r\n margin-left: 1rem;\r\n font-size: 24px;\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n showPopup: boolean;\r\n title?: string;\r\n noButtonText?: React.ReactNode;\r\n yesButtonText?: React.ReactNode;\r\n loading?: boolean;\r\n size?: EPopupSizes;\r\n disabled?: boolean;\r\n children: React.ReactNode;\r\n hideButtonWithNoHandlerFunction?: boolean;\r\n noHandler?();\r\n yesHandler?(e?: React.MouseEvent);\r\n}\r\n\r\nexport const ConfirmPopup: FC = props => {\r\n return (\r\n <>\r\n {props.showPopup &&\r\n \r\n \r\n \r\n \r\n <MultilineTextWithEllipsis numberOfLines={1} noTooltip>\r\n {props.title}\r\n </MultilineTextWithEllipsis>\r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n \r\n {props.noHandler && !props.hideButtonWithNoHandlerFunction &&\r\n \r\n {props.noButtonText || }\r\n \r\n }\r\n {props.yesHandler &&\r\n \r\n {props.yesButtonText || }\r\n \r\n }\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};","import React, { FC, Fragment, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { IconDefinition, faCaretRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { cardsShadow } from '../../../styleHelpers/mixins/shadow';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { useDropdown } from '../../../tools/hooks';\r\n\r\nconst Wrapper = styled.div<{openFromRight?: boolean}>`\r\n border-radius: 8px;\r\n background: ${colorStack.white};\r\n ${cardsShadow()};\r\n position: absolute;\r\n z-index: 999;\r\n min-width: 220px;\r\n ${props => props.openFromRight && css`\r\n right: 0;\r\n `}\r\n`;\r\n\r\nconst Link = styled.button`\r\n color: ${colorStack.content};\r\n border: none;\r\n background: none;\r\n ${fontSizeAndHeight[16]};\r\n padding: .5rem;\r\n font-weight: 500;\r\n width: 100%;\r\n text-align: left;\r\n transition: all .3s;\r\n cursor: pointer;\r\n margin: 0!important;\r\n white-space: nowrap;\r\n display: block;\r\n svg {\r\n margin: 0 .5rem 0 0;\r\n transition: all .3s;\r\n }\r\n &[disabled],\r\n &[disabled]:hover {\r\n transition: none;\r\n cursor: not-allowed;\r\n background: ${colorStack.middleGrey};\r\n }\r\n\r\n &:hover {\r\n background: ${colorStack.whiteBlue};\r\n }\r\n`;\r\n\r\nconst ExpandedElem = styled.div`\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[16]};\r\n padding: .5rem;\r\n font-weight: 500;\r\n text-align: left;\r\n transition: all .3s;\r\n cursor: pointer;\r\n margin: 0!important;\r\n white-space: nowrap;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n svg {\r\n margin: 0 0 0 2rem;\r\n transition: all .3s;\r\n }\r\n &:hover {\r\n background: ${colorStack.whiteBlue};\r\n }\r\n > div {\r\n left: 100%;\r\n top: 0\r\n }\r\n`;\r\n\r\nexport interface ISingleLink {\r\n name?: React.ReactNode;\r\n visible: boolean;\r\n disabled?: boolean;\r\n ico?: IconDefinition;\r\n dataLc?: string;\r\n icoColor?: string;\r\n customRender?: React.ReactNode;\r\n links?: ISingleLink[];\r\n action?(e?);\r\n}\r\n\r\ninterface IProps {\r\n links: ISingleLink[];\r\n openFromRight?: boolean;\r\n\r\n}\r\n\r\nconst SingleLinkElem: FC = props => {\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n\r\n const onMouseLeaveElement = useCallback(() => {\r\n setTimeout(() => {\r\n closeDropdown();\r\n }, 100);\r\n }, [closeDropdown]);\r\n\r\n return (\r\n <>\r\n {props.links?.length > 0 ? (\r\n <>\r\n \r\n {props.ico && }\r\n {props.name}\r\n \r\n {dropdownOpen &&\r\n \r\n {props.links.map((link, index) =>\r\n \r\n )}\r\n \r\n }\r\n \r\n \r\n ) : (\r\n <>\r\n {props.customRender ? (\r\n <>\r\n {props.customRender}\r\n \r\n ) : (\r\n\r\n \r\n {props.ico && }\r\n {props.name}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport const ContextMenu: FC = props => {\r\n return (\r\n \r\n {props.links?.filter(elem => elem.visible)?.map((link, index) =>\r\n \r\n {link.customRender ? (\r\n <>\r\n {link.customRender}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\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))for(t=0;t maxDate) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof minDate, \"` supplied to `\").concat(componentName, \"`, minDate cannot be larger than maxDate.\"));\n }\n return null;\n}\nexport function isMaxDate(props, propName, componentName) {\n var _a = props, _b = propName, maxDate = _a[_b];\n if (!maxDate) {\n return null;\n }\n if (!(maxDate instanceof Date)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof maxDate, \"` supplied to `\").concat(componentName, \"`, expected instance of `Date`.\"));\n }\n var minDate = props.minDate;\n if (minDate && maxDate < minDate) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(typeof maxDate, \"` supplied to `\").concat(componentName, \"`, maxDate cannot be smaller than minDate.\"));\n }\n return null;\n}\nexport var isRef = PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any,\n }),\n]);\nexport var isValue = PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n]);\nexport var isViews = PropTypes.arrayOf(PropTypes.oneOf(allViews));\nexport function isView(props, propName, componentName) {\n var _a = props, _b = propName, view = _a[_b];\n var views = props.views;\n var allowedViews = views || allViews;\n if (view !== undefined && (typeof view !== 'string' || allowedViews.indexOf(view) === -1)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of value `\").concat(view, \"` supplied to `\").concat(componentName, \"`, expected one of [\").concat(allowedViews\n .map(function (a) { return \"\\\"\".concat(a, \"\\\"\"); })\n .join(', '), \"].\"));\n }\n // Everything is fine\n return null;\n}\nisView.isRequired = function (props, propName, componentName) {\n var _a = props, _b = propName, view = _a[_b];\n if (!view) {\n return new Error(\"The prop `\".concat(propName, \"` is marked as required in `\").concat(componentName, \"`, but its value is `\").concat(view, \"`.\"));\n }\n return isView(props, propName, componentName);\n};\nexport var tileGroupProps = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n hover: PropTypes.instanceOf(Date),\n locale: PropTypes.string,\n maxDate: isMaxDate,\n minDate: isMinDate,\n onClick: PropTypes.func,\n onMouseOver: PropTypes.func,\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n value: isValue,\n valueType: PropTypes.string,\n};\nexport var tileProps = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n classes: PropTypes.arrayOf(PropTypes.string).isRequired,\n date: PropTypes.instanceOf(Date).isRequired,\n locale: PropTypes.string,\n maxDate: isMaxDate,\n minDate: isMinDate,\n onClick: PropTypes.func,\n onMouseOver: PropTypes.func,\n style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n tileDisabled: PropTypes.func,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getUserLocale } from 'get-user-locale';\nimport { getCenturyLabel, getDecadeLabel, getBeginNext, getBeginNext2, getBeginPrevious, getBeginPrevious2, getEndPrevious, getEndPrevious2, } from '../shared/dates';\nimport { formatMonthYear as defaultFormatMonthYear, formatYear as defaultFormatYear, } from '../shared/dateFormatter';\nimport { isView, isViews } from '../shared/propTypes';\nvar className = 'react-calendar__navigation';\nexport default function Navigation(_a) {\n var activeStartDate = _a.activeStartDate, drillUp = _a.drillUp, _b = _a.formatMonthYear, formatMonthYear = _b === void 0 ? defaultFormatMonthYear : _b, _c = _a.formatYear, formatYear = _c === void 0 ? defaultFormatYear : _c, locale = _a.locale, maxDate = _a.maxDate, minDate = _a.minDate, _d = _a.navigationAriaLabel, navigationAriaLabel = _d === void 0 ? '' : _d, navigationAriaLive = _a.navigationAriaLive, navigationLabel = _a.navigationLabel, _e = _a.next2AriaLabel, next2AriaLabel = _e === void 0 ? '' : _e, _f = _a.next2Label, next2Label = _f === void 0 ? '»' : _f, _g = _a.nextAriaLabel, nextAriaLabel = _g === void 0 ? '' : _g, _h = _a.nextLabel, nextLabel = _h === void 0 ? '›' : _h, _j = _a.prev2AriaLabel, prev2AriaLabel = _j === void 0 ? '' : _j, _k = _a.prev2Label, prev2Label = _k === void 0 ? '«' : _k, _l = _a.prevAriaLabel, prevAriaLabel = _l === void 0 ? '' : _l, _m = _a.prevLabel, prevLabel = _m === void 0 ? '‹' : _m, setActiveStartDate = _a.setActiveStartDate, showDoubleView = _a.showDoubleView, view = _a.view, views = _a.views;\n var drillUpAvailable = views.indexOf(view) > 0;\n var shouldShowPrevNext2Buttons = view !== 'century';\n var previousActiveStartDate = getBeginPrevious(view, activeStartDate);\n var previousActiveStartDate2 = shouldShowPrevNext2Buttons\n ? getBeginPrevious2(view, activeStartDate)\n : undefined;\n var nextActiveStartDate = getBeginNext(view, activeStartDate);\n var nextActiveStartDate2 = shouldShowPrevNext2Buttons\n ? getBeginNext2(view, activeStartDate)\n : undefined;\n var prevButtonDisabled = (function () {\n if (previousActiveStartDate.getFullYear() < 0) {\n return true;\n }\n var previousActiveEndDate = getEndPrevious(view, activeStartDate);\n return minDate && minDate >= previousActiveEndDate;\n })();\n var prev2ButtonDisabled = shouldShowPrevNext2Buttons &&\n (function () {\n if (previousActiveStartDate2.getFullYear() < 0) {\n return true;\n }\n var previousActiveEndDate = getEndPrevious2(view, activeStartDate);\n return minDate && minDate >= previousActiveEndDate;\n })();\n var nextButtonDisabled = maxDate && maxDate < nextActiveStartDate;\n var next2ButtonDisabled = shouldShowPrevNext2Buttons && maxDate && maxDate < nextActiveStartDate2;\n function onClickPrevious() {\n setActiveStartDate(previousActiveStartDate, 'prev');\n }\n function onClickPrevious2() {\n setActiveStartDate(previousActiveStartDate2, 'prev2');\n }\n function onClickNext() {\n setActiveStartDate(nextActiveStartDate, 'next');\n }\n function onClickNext2() {\n setActiveStartDate(nextActiveStartDate2, 'next2');\n }\n function renderLabel(date) {\n var label = (function () {\n switch (view) {\n case 'century':\n return getCenturyLabel(locale, formatYear, date);\n case 'decade':\n return getDecadeLabel(locale, formatYear, date);\n case 'year':\n return formatYear(locale, date);\n case 'month':\n return formatMonthYear(locale, date);\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n })();\n return navigationLabel\n ? navigationLabel({\n date: date,\n label: label,\n locale: locale || getUserLocale() || undefined,\n view: view,\n })\n : label;\n }\n function renderButton() {\n var labelClassName = \"\".concat(className, \"__label\");\n return (React.createElement(\"button\", { \"aria-label\": navigationAriaLabel, \"aria-live\": navigationAriaLive, className: labelClassName, disabled: !drillUpAvailable, onClick: drillUp, style: { flexGrow: 1 }, type: \"button\" },\n React.createElement(\"span\", { className: \"\".concat(labelClassName, \"__labelText \").concat(labelClassName, \"__labelText--from\") }, renderLabel(activeStartDate)),\n showDoubleView ? (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: \"\".concat(labelClassName, \"__divider\") }, \" \\u2013 \"),\n React.createElement(\"span\", { className: \"\".concat(labelClassName, \"__labelText \").concat(labelClassName, \"__labelText--to\") }, renderLabel(nextActiveStartDate)))) : null));\n }\n return (React.createElement(\"div\", { className: className },\n prev2Label !== null && shouldShowPrevNext2Buttons ? (React.createElement(\"button\", { \"aria-label\": prev2AriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__prev2-button\"), disabled: prev2ButtonDisabled, onClick: onClickPrevious2, type: \"button\" }, prev2Label)) : null,\n prevLabel !== null && (React.createElement(\"button\", { \"aria-label\": prevAriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__prev-button\"), disabled: prevButtonDisabled, onClick: onClickPrevious, type: \"button\" }, prevLabel)),\n renderButton(),\n nextLabel !== null && (React.createElement(\"button\", { \"aria-label\": nextAriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__next-button\"), disabled: nextButtonDisabled, onClick: onClickNext, type: \"button\" }, nextLabel)),\n next2Label !== null && shouldShowPrevNext2Buttons ? (React.createElement(\"button\", { \"aria-label\": next2AriaLabel, className: \"\".concat(className, \"__arrow \").concat(className, \"__next2-button\"), disabled: next2ButtonDisabled, onClick: onClickNext2, type: \"button\" }, next2Label)) : null));\n}\nNavigation.propTypes = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n drillUp: PropTypes.func.isRequired,\n formatMonthYear: PropTypes.func,\n formatYear: PropTypes.func,\n locale: PropTypes.string,\n maxDate: PropTypes.instanceOf(Date),\n minDate: PropTypes.instanceOf(Date),\n navigationAriaLabel: PropTypes.string,\n navigationAriaLive: PropTypes.string,\n navigationLabel: PropTypes.func,\n next2AriaLabel: PropTypes.string,\n next2Label: PropTypes.node,\n nextAriaLabel: PropTypes.string,\n nextLabel: PropTypes.node,\n prev2AriaLabel: PropTypes.string,\n prev2Label: PropTypes.node,\n prevAriaLabel: PropTypes.string,\n prevLabel: PropTypes.node,\n setActiveStartDate: PropTypes.func.isRequired,\n showDoubleView: PropTypes.bool,\n view: isView.isRequired,\n views: isViews.isRequired,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React from 'react';\nimport PropTypes from 'prop-types';\nfunction toPercent(num) {\n return \"\".concat(num, \"%\");\n}\nexport default function Flex(_a) {\n var children = _a.children, className = _a.className, count = _a.count, direction = _a.direction, offset = _a.offset, style = _a.style, wrap = _a.wrap, otherProps = __rest(_a, [\"children\", \"className\", \"count\", \"direction\", \"offset\", \"style\", \"wrap\"]);\n return (React.createElement(\"div\", __assign({ className: className, style: __assign({ display: 'flex', flexDirection: direction, flexWrap: wrap ? 'wrap' : 'nowrap' }, style) }, otherProps), React.Children.map(children, function (child, index) {\n return React.cloneElement(child, __assign(__assign({}, child.props), { style: {\n flexBasis: toPercent(100 / count),\n flexShrink: 0,\n flexGrow: 0,\n overflow: 'hidden',\n marginLeft: offset && index === 0 ? toPercent((100 * offset) / count) : null,\n } }));\n })));\n}\nFlex.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n count: PropTypes.number.isRequired,\n direction: PropTypes.string,\n offset: PropTypes.number,\n style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n wrap: PropTypes.bool,\n};\n","import { getRange } from './dates';\n/**\n * Returns a value no smaller than min and no larger than max.\n *\n * @param {Date} value Value to return.\n * @param {Date} min Minimum return value.\n * @param {Date} max Maximum return value.\n * @returns {Date} Value between min and max.\n */\nexport function between(value, min, max) {\n if (min && min > value) {\n return min;\n }\n if (max && max < value) {\n return max;\n }\n return value;\n}\nexport function isValueWithinRange(value, range) {\n return range[0] <= value && range[1] >= value;\n}\nexport function isRangeWithinRange(greaterRange, smallerRange) {\n return greaterRange[0] <= smallerRange[0] && greaterRange[1] >= smallerRange[1];\n}\nexport function doRangesOverlap(range1, range2) {\n return isValueWithinRange(range1[0], range2) || isValueWithinRange(range1[1], range2);\n}\nfunction getRangeClassNames(valueRange, dateRange, baseClassName) {\n var isRange = doRangesOverlap(dateRange, valueRange);\n var classes = [];\n if (isRange) {\n classes.push(baseClassName);\n var isRangeStart = isValueWithinRange(valueRange[0], dateRange);\n var isRangeEnd = isValueWithinRange(valueRange[1], dateRange);\n if (isRangeStart) {\n classes.push(\"\".concat(baseClassName, \"Start\"));\n }\n if (isRangeEnd) {\n classes.push(\"\".concat(baseClassName, \"End\"));\n }\n if (isRangeStart && isRangeEnd) {\n classes.push(\"\".concat(baseClassName, \"BothEnds\"));\n }\n }\n return classes;\n}\nexport function getTileClasses(args) {\n if (!args) {\n throw new Error('args is required');\n }\n var value = args.value, date = args.date, hover = args.hover;\n var className = 'react-calendar__tile';\n var classes = [className];\n if (!date) {\n return classes;\n }\n var now = new Date();\n var dateRange = (function () {\n if (Array.isArray(date)) {\n return date;\n }\n var dateType = args.dateType;\n if (!dateType) {\n throw new Error('dateType is required when date is not an array of two dates');\n }\n return getRange(dateType, date);\n })();\n if (isValueWithinRange(now, dateRange)) {\n classes.push(\"\".concat(className, \"--now\"));\n }\n if (!value) {\n return classes;\n }\n var valueRange = (function () {\n if (Array.isArray(value)) {\n return value;\n }\n var valueType = args.valueType;\n if (!valueType) {\n throw new Error('valueType is required when value is not an array of two dates');\n }\n return getRange(valueType, value);\n })();\n if (isRangeWithinRange(valueRange, dateRange)) {\n classes.push(\"\".concat(className, \"--active\"));\n }\n else if (doRangesOverlap(valueRange, dateRange)) {\n classes.push(\"\".concat(className, \"--hasActive\"));\n }\n var valueRangeClassNames = getRangeClassNames(valueRange, dateRange, \"\".concat(className, \"--range\"));\n classes.push.apply(classes, valueRangeClassNames);\n var valueArray = Array.isArray(value) ? value : [value];\n if (hover && valueArray.length === 1) {\n var hoverRange = hover > valueRange[0] ? [valueRange[0], hover] : [hover, valueRange[0]];\n var hoverRangeClassNames = getRangeClassNames(hoverRange, dateRange, \"\".concat(className, \"--hover\"));\n classes.push.apply(classes, hoverRangeClassNames);\n }\n return classes;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport Flex from './Flex';\nimport { getTileClasses } from './shared/utils';\nimport { tileGroupProps } from './shared/propTypes';\nexport default function TileGroup(_a) {\n var className = _a.className, _b = _a.count, count = _b === void 0 ? 3 : _b, dateTransform = _a.dateTransform, dateType = _a.dateType, end = _a.end, hover = _a.hover, offset = _a.offset, start = _a.start, _c = _a.step, step = _c === void 0 ? 1 : _c, Tile = _a.tile, value = _a.value, valueType = _a.valueType, tileProps = __rest(_a, [\"className\", \"count\", \"dateTransform\", \"dateType\", \"end\", \"hover\", \"offset\", \"start\", \"step\", \"tile\", \"value\", \"valueType\"]);\n var tiles = [];\n for (var point = start; point <= end; point += step) {\n var date = dateTransform(point);\n tiles.push(React.createElement(Tile, __assign({ key: date.getTime(), classes: getTileClasses({\n value: value,\n valueType: valueType,\n date: date,\n dateType: dateType,\n hover: hover,\n }), date: date, point: point }, tileProps)));\n }\n return (React.createElement(Flex, { className: className, count: count, offset: offset, wrap: true }, tiles));\n}\nTileGroup.propTypes = __assign(__assign({}, tileGroupProps), { className: PropTypes.string, count: PropTypes.number, dateTransform: PropTypes.func.isRequired, dateType: PropTypes.string, end: PropTypes.number.isRequired, offset: PropTypes.number, step: PropTypes.number, start: PropTypes.number.isRequired, tile: PropTypes.func.isRequired });\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { tileProps } from './shared/propTypes';\nfunction datesAreDifferent(date1, date2) {\n return ((date1 && !date2) ||\n (!date1 && date2) ||\n (date1 && date2 && date1.getTime() !== date2.getTime()));\n}\nvar Tile = /** @class */ (function (_super) {\n __extends(Tile, _super);\n function Tile() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {};\n return _this;\n }\n Tile.getDerivedStateFromProps = function (nextProps, prevState) {\n var activeStartDate = nextProps.activeStartDate, date = nextProps.date, tileClassName = nextProps.tileClassName, tileContent = nextProps.tileContent, view = nextProps.view;\n var nextState = {};\n var args = { activeStartDate: activeStartDate, date: date, view: view };\n if (tileClassName !== prevState.tileClassNameProps ||\n datesAreDifferent(activeStartDate, prevState.activeStartDateProps)) {\n nextState.tileClassName =\n typeof tileClassName === 'function' ? tileClassName(args) : tileClassName;\n nextState.tileClassNameProps = tileClassName;\n }\n if (tileContent !== prevState.tileContentProps ||\n datesAreDifferent(activeStartDate, prevState.activeStartDateProps)) {\n nextState.tileContent = typeof tileContent === 'function' ? tileContent(args) : tileContent;\n nextState.tileContentProps = tileContent;\n }\n nextState.activeStartDateProps = activeStartDate;\n return nextState;\n };\n Tile.prototype.render = function () {\n var _a = this.props, activeStartDate = _a.activeStartDate, children = _a.children, classes = _a.classes, date = _a.date, formatAbbr = _a.formatAbbr, locale = _a.locale, maxDate = _a.maxDate, maxDateTransform = _a.maxDateTransform, minDate = _a.minDate, minDateTransform = _a.minDateTransform, onClick = _a.onClick, onMouseOver = _a.onMouseOver, style = _a.style, tileDisabled = _a.tileDisabled, view = _a.view;\n var _b = this.state, tileClassName = _b.tileClassName, tileContent = _b.tileContent;\n return (React.createElement(\"button\", { className: clsx(classes, tileClassName), disabled: (minDate && minDateTransform(minDate) > date) ||\n (maxDate && maxDateTransform(maxDate) < date) ||\n (tileDisabled && tileDisabled({ activeStartDate: activeStartDate, date: date, view: view })), onClick: onClick ? function (event) { return onClick(date, event); } : undefined, onFocus: onMouseOver ? function () { return onMouseOver(date); } : undefined, onMouseOver: onMouseOver ? function () { return onMouseOver(date); } : undefined, style: style, type: \"button\" },\n formatAbbr ? React.createElement(\"abbr\", { \"aria-label\": formatAbbr(locale, date) }, children) : children,\n tileContent));\n };\n Tile.propTypes = __assign(__assign({}, tileProps), { children: PropTypes.node.isRequired, formatAbbr: PropTypes.func, maxDateTransform: PropTypes.func.isRequired, minDateTransform: PropTypes.func.isRequired });\n return Tile;\n}(Component));\nexport default Tile;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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};\nvar __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};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getDecadeStart, getDecadeEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { getDecadeLabel } from '../shared/dates';\nimport { formatYear as defaultFormatYear } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__century-view__decades__decade';\nexport default function Decade(_a) {\n var _b = _a.classes, classes = _b === void 0 ? [] : _b, _c = _a.formatYear, formatYear = _c === void 0 ? defaultFormatYear : _c, otherProps = __rest(_a, [\"classes\", \"formatYear\"]);\n var date = otherProps.date, locale = otherProps.locale;\n return (React.createElement(Tile, __assign({}, otherProps, { classes: __spreadArray(__spreadArray([], classes, true), [className], false), maxDateTransform: getDecadeEnd, minDateTransform: getDecadeStart, view: \"century\" }), getDecadeLabel(locale, formatYear, date)));\n}\nDecade.propTypes = __assign(__assign({}, tileProps), { formatYear: PropTypes.func });\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport { getDecadeStart } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup';\nimport Decade from './Decade';\nimport { getBeginOfCenturyYear } from '../shared/dates';\nimport { tileGroupProps } from '../shared/propTypes';\nexport default function Decades(props) {\n var activeStartDate = props.activeStartDate;\n var start = getBeginOfCenturyYear(activeStartDate);\n var end = start + 99;\n return (React.createElement(TileGroup, __assign({}, props, { className: \"react-calendar__century-view__decades\", dateTransform: getDecadeStart, dateType: \"decade\", end: end, start: start, step: 10, tile: Decade })));\n}\nDecades.propTypes = __assign({}, tileGroupProps);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport Decades from './CenturyView/Decades';\nexport default function CenturyView(props) {\n function renderDecades() {\n return React.createElement(Decades, __assign({}, props));\n }\n return React.createElement(\"div\", { className: \"react-calendar__century-view\" }, renderDecades());\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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};\nvar __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};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYearStart, getYearEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { formatYear as defaultFormatYear } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__decade-view__years__year';\nexport default function Year(_a) {\n var _b = _a.classes, classes = _b === void 0 ? [] : _b, _c = _a.formatYear, formatYear = _c === void 0 ? defaultFormatYear : _c, otherProps = __rest(_a, [\"classes\", \"formatYear\"]);\n var date = otherProps.date, locale = otherProps.locale;\n return (React.createElement(Tile, __assign({}, otherProps, { classes: __spreadArray(__spreadArray([], classes, true), [className], false), maxDateTransform: getYearEnd, minDateTransform: getYearStart, view: \"decade\" }), formatYear(locale, date)));\n}\nYear.propTypes = __assign(__assign({}, tileProps), { formatYear: PropTypes.func });\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport TileGroup from '../TileGroup';\nimport Year from './Year';\nimport { getBeginOfDecadeYear } from '../shared/dates';\nimport { tileGroupProps } from '../shared/propTypes';\nexport default function Years(props) {\n var activeStartDate = props.activeStartDate;\n var start = getBeginOfDecadeYear(activeStartDate);\n var end = start + 9;\n return (React.createElement(TileGroup, __assign({}, props, { className: \"react-calendar__decade-view__years\", dateTransform: function (year) {\n var date = new Date();\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }, dateType: \"year\", end: end, start: start, tile: Year })));\n}\nYears.propTypes = __assign({}, tileGroupProps);\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport Years from './DecadeView/Years';\nexport default function DecadeView(props) {\n function renderYears() {\n return React.createElement(Years, __assign({}, props));\n }\n return React.createElement(\"div\", { className: \"react-calendar__decade-view\" }, renderYears());\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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};\nvar __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};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getMonthStart, getMonthEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { formatMonth as defaultFormatMonth, formatMonthYear as defaultFormatMonthYear, } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__year-view__months__month';\nexport default function Month(_a) {\n var _b = _a.classes, classes = _b === void 0 ? [] : _b, _c = _a.formatMonth, formatMonth = _c === void 0 ? defaultFormatMonth : _c, _d = _a.formatMonthYear, formatMonthYear = _d === void 0 ? defaultFormatMonthYear : _d, otherProps = __rest(_a, [\"classes\", \"formatMonth\", \"formatMonthYear\"]);\n var date = otherProps.date, locale = otherProps.locale;\n return (React.createElement(Tile, __assign({}, otherProps, { classes: __spreadArray(__spreadArray([], classes, true), [className], false), formatAbbr: formatMonthYear, maxDateTransform: getMonthEnd, minDateTransform: getMonthStart, view: \"year\" }), formatMonth(locale, date)));\n}\nMonth.propTypes = __assign(__assign({}, tileProps), { formatMonth: PropTypes.func, formatMonthYear: PropTypes.func });\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYear } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup';\nimport Month from './Month';\nimport { tileGroupProps } from '../shared/propTypes';\nexport default function Months(props) {\n var activeStartDate = props.activeStartDate;\n var start = 0;\n var end = 11;\n var year = getYear(activeStartDate);\n return (React.createElement(TileGroup, __assign({}, props, { className: \"react-calendar__year-view__months\", dateTransform: function (monthIndex) {\n var date = new Date();\n date.setFullYear(year, monthIndex, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }, dateType: \"month\", end: end, start: start, tile: Month })));\n}\nMonths.propTypes = __assign(__assign({}, tileGroupProps), { locale: PropTypes.string });\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React from 'react';\nimport Months from './YearView/Months';\nexport default function YearView(props) {\n function renderMonths() {\n return React.createElement(Months, __assign({}, props));\n }\n return React.createElement(\"div\", { className: \"react-calendar__year-view\" }, renderMonths());\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport { getDayStart, getDayEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { isWeekend } from '../shared/dates';\nimport { formatDay as defaultFormatDay, formatLongDate as defaultFormatLongDate, } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__month-view__days__day';\nexport default function Day(_a) {\n var calendarType = _a.calendarType, _b = _a.classes, classes = _b === void 0 ? [] : _b, currentMonthIndex = _a.currentMonthIndex, _c = _a.formatDay, formatDay = _c === void 0 ? defaultFormatDay : _c, _d = _a.formatLongDate, formatLongDate = _d === void 0 ? defaultFormatLongDate : _d, otherProps = __rest(_a, [\"calendarType\", \"classes\", \"currentMonthIndex\", \"formatDay\", \"formatLongDate\"]);\n var date = otherProps.date, locale = otherProps.locale;\n var classesProps = [];\n if (classes) {\n classesProps.push.apply(classesProps, classes);\n }\n if (className) {\n classesProps.push(className);\n }\n if (isWeekend(date, calendarType)) {\n classesProps.push(\"\".concat(className, \"--weekend\"));\n }\n if (date.getMonth() !== currentMonthIndex) {\n classesProps.push(\"\".concat(className, \"--neighboringMonth\"));\n }\n return (React.createElement(Tile, __assign({}, otherProps, { classes: classesProps, formatAbbr: formatLongDate, maxDateTransform: getDayEnd, minDateTransform: getDayStart, view: \"month\" }), formatDay(locale, date)));\n}\nDay.propTypes = __assign(__assign({}, tileProps), { currentMonthIndex: PropTypes.number.isRequired, formatDay: PropTypes.func, formatLongDate: PropTypes.func });\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYear, getMonth, getDaysInMonth } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup';\nimport Day from './Day';\nimport { getDayOfWeek } from '../shared/dates';\nimport { isCalendarType, tileGroupProps } from '../shared/propTypes';\nexport default function Days(props) {\n var activeStartDate = props.activeStartDate, calendarType = props.calendarType;\n var showFixedNumberOfWeeks = props.showFixedNumberOfWeeks, showNeighboringMonth = props.showNeighboringMonth, otherProps = __rest(props, [\"showFixedNumberOfWeeks\", \"showNeighboringMonth\"]);\n var year = getYear(activeStartDate);\n var monthIndex = getMonth(activeStartDate);\n var hasFixedNumberOfWeeks = showFixedNumberOfWeeks || showNeighboringMonth;\n var dayOfWeek = getDayOfWeek(activeStartDate, calendarType);\n var offset = hasFixedNumberOfWeeks ? 0 : dayOfWeek;\n /**\n * Defines on which day of the month the grid shall start. If we simply show current\n * month, we obviously start on day one, but if showNeighboringMonth is set to\n * true, we need to find the beginning of the week the first day of the month is in.\n */\n var start = (hasFixedNumberOfWeeks ? -dayOfWeek : 0) + 1;\n /**\n * Defines on which day of the month the grid shall end. If we simply show current\n * month, we need to stop on the last day of the month, but if showNeighboringMonth\n * is set to true, we need to find the end of the week the last day of the month is in.\n */\n var end = (function () {\n if (showFixedNumberOfWeeks) {\n // Always show 6 weeks\n return start + 6 * 7 - 1;\n }\n var daysInMonth = getDaysInMonth(activeStartDate);\n if (showNeighboringMonth) {\n var activeEndDate = new Date();\n activeEndDate.setFullYear(year, monthIndex, daysInMonth);\n activeEndDate.setHours(0, 0, 0, 0);\n var daysUntilEndOfTheWeek = 7 - getDayOfWeek(activeEndDate, calendarType) - 1;\n return daysInMonth + daysUntilEndOfTheWeek;\n }\n return daysInMonth;\n })();\n return (React.createElement(TileGroup, __assign({}, otherProps, { className: \"react-calendar__month-view__days\", count: 7, currentMonthIndex: monthIndex, dateTransform: function (day) {\n var date = new Date();\n date.setFullYear(year, monthIndex, day);\n date.setHours(0, 0, 0, 0);\n return date;\n }, dateType: \"day\", end: end, offset: offset, start: start, tile: Day })));\n}\nDays.propTypes = __assign({ calendarType: isCalendarType, showFixedNumberOfWeeks: PropTypes.bool, showNeighboringMonth: PropTypes.bool }, tileGroupProps);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { getYear, getMonth, getMonthStart } from '@wojtekmaj/date-utils';\nimport Flex from '../Flex';\nimport { getDayOfWeek, isCurrentDayOfWeek, isWeekend } from '../shared/dates';\nimport { formatShortWeekday as defaultFormatShortWeekday, formatWeekday as defaultFormatWeekday, } from '../shared/dateFormatter';\nimport { isCalendarType } from '../shared/propTypes';\nvar className = 'react-calendar__month-view__weekdays';\nvar weekdayClassName = \"\".concat(className, \"__weekday\");\nexport default function Weekdays(props) {\n var calendarType = props.calendarType, _a = props.formatShortWeekday, formatShortWeekday = _a === void 0 ? defaultFormatShortWeekday : _a, _b = props.formatWeekday, formatWeekday = _b === void 0 ? defaultFormatWeekday : _b, locale = props.locale, onMouseLeave = props.onMouseLeave;\n var anyDate = new Date();\n var beginOfMonth = getMonthStart(anyDate);\n var year = getYear(beginOfMonth);\n var monthIndex = getMonth(beginOfMonth);\n var weekdays = [];\n for (var weekday = 1; weekday <= 7; weekday += 1) {\n var weekdayDate = new Date(year, monthIndex, weekday - getDayOfWeek(beginOfMonth, calendarType));\n var abbr = formatWeekday(locale, weekdayDate);\n weekdays.push(React.createElement(\"div\", { key: weekday, className: clsx(weekdayClassName, isCurrentDayOfWeek(weekdayDate) && \"\".concat(weekdayClassName, \"--current\"), isWeekend(weekdayDate, calendarType) && \"\".concat(weekdayClassName, \"--weekend\")) },\n React.createElement(\"abbr\", { \"aria-label\": abbr, title: abbr }, formatShortWeekday(locale, weekdayDate).replace('.', ''))));\n }\n return (React.createElement(Flex, { className: className, count: 7, onFocus: onMouseLeave, onMouseOver: onMouseLeave }, weekdays));\n}\nWeekdays.propTypes = {\n calendarType: isCalendarType,\n formatShortWeekday: PropTypes.func,\n formatWeekday: PropTypes.func,\n locale: PropTypes.string,\n onMouseLeave: PropTypes.func,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React from 'react';\nimport PropTypes from 'prop-types';\nvar className = 'react-calendar__tile';\nexport default function WeekNumber(props) {\n var onClickWeekNumber = props.onClickWeekNumber, weekNumber = props.weekNumber;\n var children = React.createElement(\"span\", null, weekNumber);\n if (onClickWeekNumber) {\n var date_1 = props.date, onClickWeekNumber_1 = props.onClickWeekNumber, weekNumber_1 = props.weekNumber, otherProps = __rest(props, [\"date\", \"onClickWeekNumber\", \"weekNumber\"]);\n return (React.createElement(\"button\", __assign({}, otherProps, { className: className, onClick: function (event) { return onClickWeekNumber_1(weekNumber_1, date_1, event); }, type: \"button\" }), children));\n }\n else {\n var date = props.date, onClickWeekNumber_2 = props.onClickWeekNumber, weekNumber_2 = props.weekNumber, otherProps = __rest(props, [\"date\", \"onClickWeekNumber\", \"weekNumber\"]);\n return (React.createElement(\"div\", __assign({}, otherProps, { className: className }), children));\n }\n}\nWeekNumber.propTypes = {\n date: PropTypes.instanceOf(Date).isRequired,\n onClickWeekNumber: PropTypes.func,\n weekNumber: PropTypes.node.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYear, getMonth, getDate, getDaysInMonth } from '@wojtekmaj/date-utils';\nimport WeekNumber from './WeekNumber';\nimport Flex from '../Flex';\nimport { getBeginOfWeek, getDayOfWeek, getWeekNumber } from '../shared/dates';\nimport { isCalendarType } from '../shared/propTypes';\nexport default function WeekNumbers(props) {\n var activeStartDate = props.activeStartDate, calendarType = props.calendarType, onClickWeekNumber = props.onClickWeekNumber, onMouseLeave = props.onMouseLeave, showFixedNumberOfWeeks = props.showFixedNumberOfWeeks;\n var numberOfWeeks = (function () {\n if (showFixedNumberOfWeeks) {\n return 6;\n }\n var numberOfDays = getDaysInMonth(activeStartDate);\n var startWeekday = getDayOfWeek(activeStartDate, calendarType);\n var days = numberOfDays - (7 - startWeekday);\n return 1 + Math.ceil(days / 7);\n })();\n var dates = (function () {\n var year = getYear(activeStartDate);\n var monthIndex = getMonth(activeStartDate);\n var day = getDate(activeStartDate);\n var result = [];\n for (var index = 0; index < numberOfWeeks; index += 1) {\n result.push(getBeginOfWeek(new Date(year, monthIndex, day + index * 7), calendarType));\n }\n return result;\n })();\n var weekNumbers = dates.map(function (date) { return getWeekNumber(date, calendarType); });\n return (React.createElement(Flex, { className: \"react-calendar__month-view__weekNumbers\", count: numberOfWeeks, direction: \"column\", onFocus: onMouseLeave, onMouseOver: onMouseLeave, style: { flexBasis: 'calc(100% * (1 / 8)', flexShrink: 0 } }, weekNumbers.map(function (weekNumber, weekIndex) {\n var date = dates[weekIndex];\n if (!date) {\n throw new Error('date is not defined');\n }\n return (React.createElement(WeekNumber, { key: weekNumber, date: date, onClickWeekNumber: onClickWeekNumber, weekNumber: weekNumber }));\n })));\n}\nWeekNumbers.propTypes = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n calendarType: isCalendarType,\n onClickWeekNumber: PropTypes.func,\n onMouseLeave: PropTypes.func,\n showFixedNumberOfWeeks: PropTypes.bool,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Days from './MonthView/Days';\nimport Weekdays from './MonthView/Weekdays';\nimport WeekNumbers from './MonthView/WeekNumbers';\nimport { CALENDAR_TYPES, CALENDAR_TYPE_LOCALES } from './shared/const';\nimport { isCalendarType, tileGroupProps } from './shared/propTypes';\nfunction getCalendarTypeFromLocale(locale) {\n for (var _i = 0, _a = Object.entries(CALENDAR_TYPE_LOCALES); _i < _a.length; _i++) {\n var _b = _a[_i], calendarType = _b[0], locales = _b[1];\n if (locales.includes(locale)) {\n return calendarType;\n }\n }\n return CALENDAR_TYPES.ISO_8601;\n}\nexport default function MonthView(props) {\n var activeStartDate = props.activeStartDate, locale = props.locale, onMouseLeave = props.onMouseLeave, showFixedNumberOfWeeks = props.showFixedNumberOfWeeks;\n var _a = props.calendarType, calendarType = _a === void 0 ? getCalendarTypeFromLocale(locale) : _a, formatShortWeekday = props.formatShortWeekday, formatWeekday = props.formatWeekday, onClickWeekNumber = props.onClickWeekNumber, showWeekNumbers = props.showWeekNumbers, childProps = __rest(props, [\"calendarType\", \"formatShortWeekday\", \"formatWeekday\", \"onClickWeekNumber\", \"showWeekNumbers\"]);\n function renderWeekdays() {\n return (React.createElement(Weekdays, { calendarType: calendarType, formatShortWeekday: formatShortWeekday, formatWeekday: formatWeekday, locale: locale, onMouseLeave: onMouseLeave }));\n }\n function renderWeekNumbers() {\n if (!showWeekNumbers) {\n return null;\n }\n return (React.createElement(WeekNumbers, { activeStartDate: activeStartDate, calendarType: calendarType, onClickWeekNumber: onClickWeekNumber, onMouseLeave: onMouseLeave, showFixedNumberOfWeeks: showFixedNumberOfWeeks }));\n }\n function renderDays() {\n return React.createElement(Days, __assign({ calendarType: calendarType }, childProps));\n }\n var className = 'react-calendar__month-view';\n return (React.createElement(\"div\", { className: clsx(className, showWeekNumbers ? \"\".concat(className, \"--weekNumbers\") : '') },\n React.createElement(\"div\", { style: {\n display: 'flex',\n alignItems: 'flex-end',\n } },\n renderWeekNumbers(),\n React.createElement(\"div\", { style: {\n flexGrow: 1,\n width: '100%',\n } },\n renderWeekdays(),\n renderDays()))));\n}\nMonthView.propTypes = __assign(__assign({}, tileGroupProps), { calendarType: isCalendarType, formatDay: PropTypes.func, formatLongDate: PropTypes.func, formatShortWeekday: PropTypes.func, formatWeekday: PropTypes.func, onClickWeekNumber: PropTypes.func, onMouseLeave: PropTypes.func, showFixedNumberOfWeeks: PropTypes.bool, showNeighboringMonth: PropTypes.bool, showWeekNumbers: PropTypes.bool });\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\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 React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Navigation from './Calendar/Navigation';\nimport CenturyView from './CenturyView';\nimport DecadeView from './DecadeView';\nimport YearView from './YearView';\nimport MonthView from './MonthView';\nimport { getBegin, getBeginNext, getEnd, getValueRange } from './shared/dates';\nimport { isCalendarType, isClassName, isMaxDate, isMinDate, isRef, isView, } from './shared/propTypes';\nimport { between } from './shared/utils';\nvar baseClassName = 'react-calendar';\nvar allViews = ['century', 'decade', 'year', 'month'];\nvar allValueTypes = ['decade', 'year', 'month', 'day'];\nvar defaultMinDate = new Date();\ndefaultMinDate.setFullYear(1, 0, 1);\ndefaultMinDate.setHours(0, 0, 0, 0);\nvar defaultMaxDate = new Date(8.64e15);\nvar defaultProps = {\n goToRangeStartOnSelect: true,\n maxDate: defaultMaxDate,\n maxDetail: 'month',\n minDate: defaultMinDate,\n minDetail: 'century',\n returnValue: 'start',\n showNavigation: true,\n showNeighboringMonth: true,\n};\nfunction toDate(value) {\n if (value instanceof Date) {\n return value;\n }\n return new Date(value);\n}\n/**\n * Returns views array with disallowed values cut off.\n */\nfunction getLimitedViews(minDetail, maxDetail) {\n return allViews.slice(allViews.indexOf(minDetail), allViews.indexOf(maxDetail) + 1);\n}\n/**\n * Determines whether a given view is allowed with currently applied settings.\n */\nfunction isViewAllowed(view, minDetail, maxDetail) {\n var views = getLimitedViews(minDetail, maxDetail);\n return views.indexOf(view) !== -1;\n}\n/**\n * Gets either provided view if allowed by minDetail and maxDetail, or gets\n * the default view if not allowed.\n */\nfunction getView(view, minDetail, maxDetail) {\n if (!view) {\n return maxDetail;\n }\n if (isViewAllowed(view, minDetail, maxDetail)) {\n return view;\n }\n return maxDetail;\n}\n/**\n * Returns value type that can be returned with currently applied settings.\n */\nfunction getValueType(view) {\n var index = allViews.indexOf(view);\n return allValueTypes[index];\n}\nfunction getValue(value, index) {\n var rawValue = Array.isArray(value) ? value[index] : value;\n if (!rawValue) {\n return null;\n }\n var valueDate = toDate(rawValue);\n if (isNaN(valueDate.getTime())) {\n throw new Error(\"Invalid date: \".concat(value));\n }\n return valueDate;\n}\nfunction getDetailValue(_a, index) {\n var value = _a.value, minDate = _a.minDate, maxDate = _a.maxDate, maxDetail = _a.maxDetail;\n var valuePiece = getValue(value, index);\n if (!valuePiece) {\n return null;\n }\n var valueType = getValueType(maxDetail);\n var detailValueFrom = (function () {\n switch (index) {\n case 0:\n return getBegin(valueType, valuePiece);\n case 1:\n return getEnd(valueType, valuePiece);\n default:\n throw new Error(\"Invalid index value: \".concat(index));\n }\n })();\n return between(detailValueFrom, minDate, maxDate);\n}\nvar getDetailValueFrom = function (args) { return getDetailValue(args, 0); };\nvar getDetailValueTo = function (args) { return getDetailValue(args, 1); };\nvar getDetailValueArray = function (args) {\n return [getDetailValueFrom, getDetailValueTo].map(function (fn) { return fn(args); });\n};\nfunction getActiveStartDate(props) {\n var maxDate = props.maxDate, maxDetail = props.maxDetail, minDate = props.minDate, minDetail = props.minDetail, value = props.value, view = props.view;\n var rangeType = getView(view, minDetail, maxDetail);\n var valueFrom = getDetailValueFrom({\n value: value,\n minDate: minDate,\n maxDate: maxDate,\n maxDetail: maxDetail,\n }) || new Date();\n return getBegin(rangeType, valueFrom);\n}\nfunction getInitialActiveStartDate(props) {\n var activeStartDate = props.activeStartDate, defaultActiveStartDate = props.defaultActiveStartDate, defaultValue = props.defaultValue, defaultView = props.defaultView, maxDetail = props.maxDetail, minDetail = props.minDetail, value = props.value, view = props.view, otherProps = __rest(props, [\"activeStartDate\", \"defaultActiveStartDate\", \"defaultValue\", \"defaultView\", \"maxDetail\", \"minDetail\", \"value\", \"view\"]);\n var rangeType = getView(view, minDetail, maxDetail);\n var valueFrom = activeStartDate || defaultActiveStartDate;\n if (valueFrom) {\n return getBegin(rangeType, valueFrom);\n }\n return getActiveStartDate(__assign({ maxDetail: maxDetail, minDetail: minDetail, value: value || defaultValue, view: view || defaultView }, otherProps));\n}\nfunction getIsSingleValue(value) {\n return value && (!Array.isArray(value) || value.length === 1);\n}\nvar isActiveStartDate = PropTypes.instanceOf(Date);\nvar isValue = PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)]);\nvar isValueOrValueArray = PropTypes.oneOfType([isValue, PropTypes.arrayOf(isValue)]);\nvar Calendar = /** @class */ (function (_super) {\n __extends(Calendar, _super);\n function Calendar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n activeStartDate: _this.props.defaultActiveStartDate,\n hover: null,\n value: Array.isArray(_this.props.defaultValue)\n ? _this.props.defaultValue.map(function (el) { return (el !== null ? toDate(el) : el); })\n : _this.props.defaultValue !== null && _this.props.defaultValue !== undefined\n ? toDate(_this.props.defaultValue)\n : _this.props.defaultValue,\n view: _this.props.defaultView,\n };\n _this.setStateAndCallCallbacks = function (nextState, event, callback) {\n var _a = _this, previousActiveStartDate = _a.activeStartDate, previousView = _a.view;\n var _b = _this\n .props, allowPartialRange = _b.allowPartialRange, onActiveStartDateChange = _b.onActiveStartDateChange, onChange = _b.onChange, onViewChange = _b.onViewChange, selectRange = _b.selectRange;\n var prevArgs = {\n action: undefined,\n activeStartDate: previousActiveStartDate,\n value: undefined,\n view: previousView,\n };\n _this.setState(nextState, function () {\n var args = {\n action: nextState.action,\n activeStartDate: nextState.activeStartDate || _this.activeStartDate,\n value: ('value' in nextState && nextState.value) || _this.value,\n view: ('view' in nextState && nextState.view) || _this.view,\n };\n function shouldUpdate(key) {\n // Key must exist, and…\n if (!(key in nextState)) {\n return false;\n }\n var nextValue = nextState[key];\n var prevValue = prevArgs[key];\n // …key changed from defined to undefined or the other way around, or…\n if (typeof nextValue !== typeof prevValue) {\n return true;\n }\n // …value changed.\n if (nextValue instanceof Date && prevValue instanceof Date) {\n return nextValue.getTime() !== prevValue.getTime();\n }\n else {\n return nextValue !== prevValue;\n }\n }\n if (shouldUpdate('activeStartDate')) {\n if (onActiveStartDateChange)\n onActiveStartDateChange(args);\n }\n if (shouldUpdate('view')) {\n if (onViewChange)\n onViewChange(args);\n }\n if (shouldUpdate('value')) {\n if (onChange) {\n if (!event) {\n throw new Error('event is required');\n }\n if (selectRange) {\n var isSingleValue = getIsSingleValue(nextState.value);\n if (!isSingleValue) {\n onChange(nextState.value || null, event);\n }\n else if (allowPartialRange) {\n if (Array.isArray(nextState.value)) {\n throw new Error('value must not be an array');\n }\n onChange([nextState.value || null, null], event);\n }\n }\n else {\n onChange(nextState.value || null, event);\n }\n }\n }\n if (callback)\n callback(args);\n });\n };\n /**\n * Called when the user uses navigation buttons.\n */\n _this.setActiveStartDate = function (nextActiveStartDate, action) {\n _this.setStateAndCallCallbacks({\n action: action,\n activeStartDate: nextActiveStartDate,\n });\n };\n _this.drillDown = function (nextActiveStartDate, event) {\n if (!_this.drillDownAvailable) {\n return;\n }\n _this.onClickTile(nextActiveStartDate, event);\n var _a = _this, view = _a.view, views = _a.views;\n var onDrillDown = _this.props.onDrillDown;\n var nextView = views[views.indexOf(view) + 1];\n if (!nextView) {\n throw new Error('Attempted to drill down from the lowest view.');\n }\n _this.setStateAndCallCallbacks({\n action: 'drillDown',\n activeStartDate: nextActiveStartDate,\n view: nextView,\n }, undefined, onDrillDown);\n };\n _this.drillUp = function () {\n if (!_this.drillUpAvailable) {\n return;\n }\n var _a = _this, activeStartDate = _a.activeStartDate, view = _a.view, views = _a.views;\n var onDrillUp = _this.props.onDrillUp;\n var nextView = views[views.indexOf(view) - 1];\n if (!nextView) {\n throw new Error('Attempted to drill up from the highest view.');\n }\n var nextActiveStartDate = getBegin(nextView, activeStartDate);\n _this.setStateAndCallCallbacks({\n action: 'drillUp',\n activeStartDate: nextActiveStartDate,\n view: nextView,\n }, undefined, onDrillUp);\n };\n _this.onChange = function (value, event) {\n var previousValue = _this.value;\n var _a = _this.props, goToRangeStartOnSelect = _a.goToRangeStartOnSelect, selectRange = _a.selectRange;\n _this.onClickTile(value, event);\n var isFirstValueInRange = selectRange && !getIsSingleValue(previousValue);\n var nextValue;\n if (selectRange) {\n // Range selection turned on\n var valueType = _this.valueType;\n if (isFirstValueInRange) {\n // Value has 0 or 2 elements - either way we're starting a new array\n // First value\n nextValue = getBegin(valueType, value);\n }\n else {\n if (!previousValue) {\n throw new Error('previousValue is required');\n }\n if (Array.isArray(previousValue)) {\n throw new Error('previousValue must not be an array');\n }\n // Second value\n nextValue = getValueRange(valueType, previousValue, value);\n }\n }\n else {\n // Range selection turned off\n nextValue = _this.getProcessedValue(value);\n }\n var nextActiveStartDate = \n // Range selection turned off\n !selectRange ||\n // Range selection turned on, first value\n isFirstValueInRange ||\n // Range selection turned on, second value, goToRangeStartOnSelect toggled on\n goToRangeStartOnSelect\n ? getActiveStartDate(__assign(__assign({}, _this.props), { value: nextValue }))\n : null;\n event.persist();\n _this.setStateAndCallCallbacks({\n action: 'onChange',\n activeStartDate: nextActiveStartDate,\n value: nextValue,\n }, event);\n };\n _this.onClickTile = function (value, event) {\n var view = _this.view;\n var _a = _this\n .props, onClickDay = _a.onClickDay, onClickDecade = _a.onClickDecade, onClickMonth = _a.onClickMonth, onClickYear = _a.onClickYear;\n var callback = (function () {\n switch (view) {\n case 'century':\n return onClickDecade;\n case 'decade':\n return onClickYear;\n case 'year':\n return onClickMonth;\n case 'month':\n return onClickDay;\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n })();\n if (callback)\n callback(value, event);\n };\n _this.onMouseOver = function (value) {\n _this.setState(function (prevState) {\n if (prevState.hover && prevState.hover.getTime() === value.getTime()) {\n return null;\n }\n return { hover: value };\n });\n };\n _this.onMouseLeave = function () {\n _this.setState({ hover: null });\n };\n return _this;\n }\n Object.defineProperty(Calendar.prototype, \"activeStartDate\", {\n get: function () {\n var activeStartDateProps = this.props.activeStartDate;\n var activeStartDateState = this.state.activeStartDate;\n return (activeStartDateProps ||\n activeStartDateState ||\n getInitialActiveStartDate(this.props));\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"value\", {\n get: function () {\n var _a = this.props, selectRange = _a.selectRange, valueProps = _a.value;\n var valueState = this.state.value;\n var rawValue = (function () {\n // In the middle of range selection, use value from state\n if (selectRange && getIsSingleValue(valueState)) {\n return valueState;\n }\n return valueProps !== undefined ? valueProps : valueState;\n })();\n if (!rawValue) {\n return null;\n }\n return Array.isArray(rawValue)\n ? rawValue.map(function (el) { return (el !== null ? toDate(el) : el); })\n : rawValue !== null\n ? toDate(rawValue)\n : rawValue;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"valueType\", {\n get: function () {\n var maxDetail = this.props.maxDetail;\n return getValueType(maxDetail);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"view\", {\n get: function () {\n var _a = this.props, minDetail = _a.minDetail, maxDetail = _a.maxDetail, viewProps = _a.view;\n var viewState = this.state.view;\n return getView(viewProps || viewState, minDetail, maxDetail);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"views\", {\n get: function () {\n var _a = this.props, minDetail = _a.minDetail, maxDetail = _a.maxDetail;\n return getLimitedViews(minDetail, maxDetail);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"hover\", {\n get: function () {\n var selectRange = this.props.selectRange;\n var hover = this.state.hover;\n return selectRange ? hover : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"drillDownAvailable\", {\n get: function () {\n var _a = this, view = _a.view, views = _a.views;\n return views.indexOf(view) < views.length - 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"drillUpAvailable\", {\n get: function () {\n var _a = this, view = _a.view, views = _a.views;\n return views.indexOf(view) > 0;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Gets current value in a desired format.\n */\n Calendar.prototype.getProcessedValue = function (value) {\n var _a = this.props, minDate = _a.minDate, maxDate = _a.maxDate, maxDetail = _a.maxDetail, returnValue = _a.returnValue;\n var processFunction = (function () {\n switch (returnValue) {\n case 'start':\n return getDetailValueFrom;\n case 'end':\n return getDetailValueTo;\n case 'range':\n return getDetailValueArray;\n default:\n throw new Error('Invalid returnValue.');\n }\n })();\n return processFunction({\n value: value,\n minDate: minDate,\n maxDate: maxDate,\n maxDetail: maxDetail,\n });\n };\n Calendar.prototype.renderContent = function (next) {\n var _a = this, currentActiveStartDate = _a.activeStartDate, onMouseOver = _a.onMouseOver, valueType = _a.valueType, value = _a.value, view = _a.view;\n var _b = this.props, calendarType = _b.calendarType, locale = _b.locale, maxDate = _b.maxDate, minDate = _b.minDate, selectRange = _b.selectRange, tileClassName = _b.tileClassName, tileContent = _b.tileContent, tileDisabled = _b.tileDisabled;\n var hover = this.hover;\n var activeStartDate = next\n ? getBeginNext(view, currentActiveStartDate)\n : getBegin(view, currentActiveStartDate);\n var onClick = this.drillDownAvailable ? this.drillDown : this.onChange;\n var commonProps = {\n activeStartDate: activeStartDate,\n hover: hover,\n locale: locale,\n maxDate: maxDate,\n minDate: minDate,\n onClick: onClick,\n onMouseOver: selectRange ? onMouseOver : null,\n tileClassName: tileClassName,\n tileContent: tileContent,\n tileDisabled: tileDisabled,\n value: value,\n valueType: valueType,\n };\n switch (view) {\n case 'century': {\n var formatYear = this.props.formatYear;\n return React.createElement(CenturyView, __assign({ formatYear: formatYear }, commonProps));\n }\n case 'decade': {\n var formatYear = this.props.formatYear;\n return React.createElement(DecadeView, __assign({ formatYear: formatYear }, commonProps));\n }\n case 'year': {\n var _c = this.props, formatMonth = _c.formatMonth, formatMonthYear = _c.formatMonthYear;\n return (React.createElement(YearView, __assign({ formatMonth: formatMonth, formatMonthYear: formatMonthYear }, commonProps)));\n }\n case 'month': {\n var _d = this.props, formatDay = _d.formatDay, formatLongDate = _d.formatLongDate, formatShortWeekday = _d.formatShortWeekday, formatWeekday = _d.formatWeekday, onClickWeekNumber = _d.onClickWeekNumber, showDoubleView = _d.showDoubleView, showFixedNumberOfWeeks = _d.showFixedNumberOfWeeks, showNeighboringMonth = _d.showNeighboringMonth, showWeekNumbers = _d.showWeekNumbers;\n var onMouseLeave = this.onMouseLeave;\n return (React.createElement(MonthView, __assign({ calendarType: calendarType, formatDay: formatDay, formatLongDate: formatLongDate, formatShortWeekday: formatShortWeekday, formatWeekday: formatWeekday, onClickWeekNumber: onClickWeekNumber, onMouseLeave: selectRange ? onMouseLeave : null, showFixedNumberOfWeeks: typeof showFixedNumberOfWeeks !== 'undefined'\n ? showFixedNumberOfWeeks\n : showDoubleView, showNeighboringMonth: showNeighboringMonth, showWeekNumbers: showWeekNumbers }, commonProps)));\n }\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n };\n Calendar.prototype.renderNavigation = function () {\n var showNavigation = this.props.showNavigation;\n if (!showNavigation) {\n return null;\n }\n var _a = this, activeStartDate = _a.activeStartDate, view = _a.view, views = _a.views;\n var _b = this.props, formatMonthYear = _b.formatMonthYear, formatYear = _b.formatYear, locale = _b.locale, maxDate = _b.maxDate, minDate = _b.minDate, navigationAriaLabel = _b.navigationAriaLabel, navigationAriaLive = _b.navigationAriaLive, navigationLabel = _b.navigationLabel, next2AriaLabel = _b.next2AriaLabel, next2Label = _b.next2Label, nextAriaLabel = _b.nextAriaLabel, nextLabel = _b.nextLabel, prev2AriaLabel = _b.prev2AriaLabel, prev2Label = _b.prev2Label, prevAriaLabel = _b.prevAriaLabel, prevLabel = _b.prevLabel, showDoubleView = _b.showDoubleView;\n return (React.createElement(Navigation, { activeStartDate: activeStartDate, drillUp: this.drillUp, formatMonthYear: formatMonthYear, formatYear: formatYear, locale: locale, maxDate: maxDate, minDate: minDate, navigationAriaLabel: navigationAriaLabel, navigationAriaLive: navigationAriaLive, navigationLabel: navigationLabel, next2AriaLabel: next2AriaLabel, next2Label: next2Label, nextAriaLabel: nextAriaLabel, nextLabel: nextLabel, prev2AriaLabel: prev2AriaLabel, prev2Label: prev2Label, prevAriaLabel: prevAriaLabel, prevLabel: prevLabel, setActiveStartDate: this.setActiveStartDate, showDoubleView: showDoubleView, view: view, views: views }));\n };\n Calendar.prototype.render = function () {\n var _a = this\n .props, className = _a.className, inputRef = _a.inputRef, selectRange = _a.selectRange, showDoubleView = _a.showDoubleView;\n var _b = this, onMouseLeave = _b.onMouseLeave, value = _b.value;\n var valueArray = Array.isArray(value) ? value : [value];\n return (React.createElement(\"div\", { className: clsx(baseClassName, selectRange && valueArray.length === 1 && \"\".concat(baseClassName, \"--selectRange\"), showDoubleView && \"\".concat(baseClassName, \"--doubleView\"), className), ref: inputRef },\n this.renderNavigation(),\n React.createElement(\"div\", { className: \"\".concat(baseClassName, \"__viewContainer\"), onBlur: selectRange ? onMouseLeave : undefined, onMouseLeave: selectRange ? onMouseLeave : undefined },\n this.renderContent(),\n showDoubleView ? this.renderContent(true) : null)));\n };\n Calendar.defaultProps = defaultProps;\n Calendar.propTypes = {\n activeStartDate: isActiveStartDate,\n allowPartialRange: PropTypes.bool,\n calendarType: isCalendarType,\n className: isClassName,\n defaultActiveStartDate: isActiveStartDate,\n defaultValue: isValueOrValueArray,\n defaultView: isView,\n formatDay: PropTypes.func,\n formatLongDate: PropTypes.func,\n formatMonth: PropTypes.func,\n formatMonthYear: PropTypes.func,\n formatShortWeekday: PropTypes.func,\n formatWeekday: PropTypes.func,\n formatYear: PropTypes.func,\n goToRangeStartOnSelect: PropTypes.bool,\n inputRef: isRef,\n locale: PropTypes.string,\n maxDate: isMaxDate,\n maxDetail: PropTypes.oneOf(allViews),\n minDate: isMinDate,\n minDetail: PropTypes.oneOf(allViews),\n navigationAriaLabel: PropTypes.string,\n navigationAriaLive: PropTypes.oneOf(['off', 'polite', 'assertive']),\n navigationLabel: PropTypes.func,\n next2AriaLabel: PropTypes.string,\n next2Label: PropTypes.node,\n nextAriaLabel: PropTypes.string,\n nextLabel: PropTypes.node,\n onActiveStartDateChange: PropTypes.func,\n onChange: PropTypes.func,\n onClickDay: PropTypes.func,\n onClickDecade: PropTypes.func,\n onClickMonth: PropTypes.func,\n onClickWeekNumber: PropTypes.func,\n onClickYear: PropTypes.func,\n onDrillDown: PropTypes.func,\n onDrillUp: PropTypes.func,\n onViewChange: PropTypes.func,\n prev2AriaLabel: PropTypes.string,\n prev2Label: PropTypes.node,\n prevAriaLabel: PropTypes.string,\n prevLabel: PropTypes.node,\n returnValue: PropTypes.oneOf(['start', 'end', 'range']),\n selectRange: PropTypes.bool,\n showDoubleView: PropTypes.bool,\n showFixedNumberOfWeeks: PropTypes.bool,\n showNavigation: PropTypes.bool,\n showNeighboringMonth: PropTypes.bool,\n showWeekNumbers: PropTypes.bool,\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n tileDisabled: PropTypes.func,\n value: isValueOrValueArray,\n view: isView,\n };\n return Calendar;\n}(Component));\nexport default Calendar;\n","import Calendar from './Calendar';\nimport Navigation from './Calendar/Navigation';\nimport CenturyView from './CenturyView';\nimport DecadeView from './DecadeView';\nimport YearView from './YearView';\nimport MonthView from './MonthView';\nexport { Calendar, Navigation, CenturyView, DecadeView, YearView, MonthView };\nexport default Calendar;\n","import { faCalendar, faXmark } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport DatePicker, { DatePickerProps } from 'react-date-picker/dist/entry.nostyle';\r\nimport { DateRangePickerProps } from '@wojtekmaj/react-daterange-picker';\r\nimport { Value } from '@wojtekmaj/react-daterange-picker/dist/cjs/shared/types';\r\nimport { useSelector } from 'react-redux';\r\nimport styled, { css } from 'styled-components';\r\nimport Calendar from 'react-calendar';\r\n\r\nimport { ELcid } from '../../../entities/ILanguage';\r\nimport { IState } from '../../../reducers';\r\nimport { IProfileReducer } from '../../../reducers/profileReducer';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { languageList } from '../../../tools/languageTools';\r\n\r\nconst Wrapper = styled.div<{isRange: boolean}>`\r\n font-family: 'Roboto', sans-serif;\r\n width: 100%;\r\n ${props => props.isRange && css`\r\n height: 320px;\r\n `}\r\n .react-date-picker__calendar {\r\n &--closed {\r\n display: none;\r\n }\r\n &--open {\r\n display: block;\r\n margin: 3px 0 0 0;\r\n }\r\n }\r\n .react-daterange-picker__calendar {\r\n &--closed {\r\n display: none;\r\n }\r\n &--open {\r\n display: block;\r\n margin: 3px 0 0 0;\r\n }\r\n }\r\n .react-daterange-picker {\r\n &__range-divider {\r\n display: none;\r\n }\r\n }\r\n .custom-calendar-wrapper {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n > div {\r\n border: none;\r\n display: flex;\r\n justify-content: space-between;\r\n height: 40px;\r\n padding: 0 1rem;\r\n > div {\r\n width: 100%;\r\n cursor: pointer;\r\n ${props => !props.isRange && css`\r\n opacity: 0;\r\n `}\r\n input, span {\r\n cursor: pointer;\r\n }\r\n }\r\n }\r\n .react-date-picker {\r\n &__wrapper {\r\n button {\r\n cursor: pointer;\r\n svg {\r\n color: ${colorStack.darkGrey};\r\n }\r\n &:nth-child(2) {\r\n margin: 0 .5rem 0 auto;\r\n svg {\r\n padding-right: .5rem;\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n .react-calendar {\r\n background: ${colorStack.white};\r\n padding: 24px;\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 8px;\r\n width: 328px;\r\n z-index: 999;\r\n border: none;\r\n position: relative;\r\n &__navigation{\r\n display: flex;\r\n padding: 0 1rem;\r\n height: 40px;\r\n justify-content: space-between;\r\n button {\r\n color: ${colorStack.middleBlue};\r\n ${fontSizeAndHeight[13]};\r\n cursor: pointer;\r\n }\r\n &__prev2-button {\r\n margin: 0 2rem 0 0;\r\n }\r\n &__next2-button {\r\n margin: 0 0 0 2rem;\r\n }\r\n &__label {\r\n ${fontSizeAndHeight[13]};\r\n }\r\n }\r\n &__tile {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 8px;\r\n ${fontSizeAndHeight[13]};\r\n color: ${colorStack.content};\r\n &--active {\r\n background: ${colorStack.bodyBg};\r\n font-weight: 600;\r\n border-radius: 0px;\r\n }\r\n &--hasActive {\r\n background: ${colorStack.whiteBlue};\r\n }\r\n &--now {\r\n background: ${colorStack.whiteGrey};\r\n }\r\n &--rangeStart {\r\n background: ${colorStack.whiteBlue};\r\n border-radius: 8px 0 0 8px;\r\n }\r\n &--rangeEnd {\r\n background: ${colorStack.whiteBlue};\r\n border-radius: 0 8px 8px 0;\r\n }\r\n &--rangeBothEnds {\r\n background: ${colorStack.whiteBlue};\r\n border-radius: 8px 8px;\r\n }\r\n }\r\n &__decade-view {\r\n &__years {\r\n &__year {\r\n ${fontSizeAndHeight[13]};\r\n cursor: pointer;\r\n &:hover {\r\n border: 2px solid ${colorStack.middleBlue};\r\n font-weight: 600;\r\n }\r\n }\r\n }\r\n }\r\n &__year-view {\r\n &__months {\r\n &__month {\r\n ${fontSizeAndHeight[13]};\r\n cursor: pointer;\r\n &:hover {\r\n border: 2px solid ${colorStack.middleBlue};\r\n font-weight: 600;\r\n }\r\n }\r\n }\r\n }\r\n &__month-view {\r\n &__days {\r\n &__day {\r\n cursor: pointer;\r\n color: ${colorStack.content};\r\n &--neighboringMonth {\r\n color: ${colorStack.disabled};\r\n }\r\n &:hover {\r\n border: 2px solid ${colorStack.middleBlue};\r\n font-weight: 600;\r\n }\r\n }\r\n }\r\n &__weekdays {\r\n margin: 0 0 0.8rem 0;\r\n &__weekday {\r\n font-weight: 600;\r\n ${fontSizeAndHeight[13]};\r\n text-align: center;\r\n cursor: default;\r\n abbr {\r\n text-decoration: none;\r\n color: ${colorStack.content};\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\ntype IProps = DatePickerProps & DateRangePickerProps & {\r\n noIcons?: boolean;\r\n rangePicker?: boolean;\r\n onChange(value: Value);\r\n};\r\n\r\nexport const CustomCalendar: FC = props => {\r\n const { currentUserProfile } = useSelector(state => state.profile);\r\n return (\r\n \r\n {props.rangePicker ? (\r\n \r\n ) : (\r\n }\r\n clearIcon={!props.noIcons && }\r\n />\r\n )}\r\n \r\n );\r\n};","import React from 'react';\r\n\r\nimport { Icon } from '../../../entities/IGlobal';\r\n\r\nexport const LcLogo = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import React, { FC } from 'react';\r\nimport styled from 'styled-components';\r\nimport moment from 'moment';\r\n\r\nimport { TextComponent } from '../Inputs/TextComponent';\r\nimport { LabelWithEllipsis } from '../Label/Label';\r\nimport { MandatoryFieldStar } from '../MandatoryFieldStar/MandatoryFieldStar';\r\nimport { CustomCalendar } from '../CustomCalendar/CustomCalendar';\r\n\r\nconst InnerWrapper = styled.div`\r\n position: relative;\r\n .custom-calendar {\r\n box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n value: Date;\r\n disabled?: boolean;\r\n placeholder?: string;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n label?: string | React.ReactNode;\r\n required?: boolean;\r\n error?: boolean;\r\n errorMsg?: string;\r\n onChange(date: Date);\r\n}\r\n\r\nexport const DatePickerWrapper: FC = props => {\r\n return (\r\n
    \r\n {props.label &&\r\n \r\n {props.label}\r\n {props.required &&\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};","import React, { FC } from 'react';\r\nimport moment from 'moment';\r\nimport { IntlShape } from 'react-intl';\r\n\r\ninterface IDateStandardFormatProps {\r\n date?: string | Date | number;\r\n showTime?: boolean;\r\n showNumeric?: boolean;\r\n className?: string;\r\n nextMonth?: boolean;\r\n nextYear?: boolean;\r\n context?: IntlShape;\r\n withWhitespace?: boolean;\r\n}\r\n\r\nconst getNextMonth = (currentDate: Date) => new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, currentDate.getDate());\r\nconst getNextYear = (currentDate: Date) => new Date(currentDate.setFullYear(currentDate.getFullYear() + 1));\r\n\r\nexport const dateStandardFormatString = (options: IDateStandardFormatProps): string => {\r\n if (!options.context) {\r\n return;\r\n }\r\n const currentDate = new Date();\r\n let parsedDate = options.date || new Date();\r\n\r\n if (options.nextMonth) {\r\n parsedDate = getNextYear(currentDate);\r\n }\r\n if (options.nextYear) {\r\n parsedDate = getNextMonth(currentDate);\r\n }\r\n\r\n return moment.utc(parsedDate).local().format('DD MMM YYYY');\r\n};\r\n\r\nexport const DateStandardFormat: FC = ({ date = new Date(), showTime, className = '', showNumeric, children, nextMonth, nextYear, withWhitespace }) => {\r\n const currentDate = new Date();\r\n let parsedDate = date;\r\n\r\n if (nextMonth) {\r\n parsedDate = getNextYear(currentDate);\r\n }\r\n if (nextYear) {\r\n parsedDate = getNextMonth(currentDate);\r\n }\r\n\r\n let pattern = showTime ? 'DD MMM YYYY HH:mm:ss' : 'DD MMM YYYY';\r\n\r\n return (\r\n <>\r\n {moment.utc(parsedDate).local().format(pattern)}\r\n \r\n );\r\n};\r\n","import React, { Component } from 'react';\r\nimport { NormalPeoplePicker, IPersonaProps } from '@fluentui/react';\r\nimport styled, { css } from 'styled-components';\r\nimport { rgba } from 'polished';\r\n\r\nimport { colorStack } from '../../styleHelpers/colors';\r\n\r\nconst ColorBar = styled.div`\r\n background-color: ${colorStack.white};\r\n transition: background-color .3s;\r\n height: 2px;\r\n width: 100%;\r\n border-radius: 0 0 4px 4px;\r\n`;\r\n\r\nconst Wrapper = styled.div<{newDesign: boolean}>`\r\n ${props => props.newDesign && css`\r\n &:hover ${ColorBar} {\r\n background-color: ${colorStack.middleBlue};\r\n }\r\n .ms-BasePicker-text {\r\n padding: 4px 10px;\r\n border: none;\r\n box-shadow: ${`0px .3px .9px ${rgba(colorStack.black, .07)}, 0px 1.6px 3.6px ${rgba(colorStack.black, .11)}`}\r\n }\r\n `}\r\n`;\r\n\r\ninterface ApiObject {\r\n id: string;\r\n [key: string]: any; // this is any by design, not a bug\r\n}\r\n\r\ninterface IDebouncedPeoplePickerProps {\r\n noResultsFoundText?: string;\r\n selectedItems: ApiObject[];\r\n itemLimit?: number;\r\n newDesign?: boolean;\r\n disabled?: boolean;\r\n transformResults(originalObject: ApiObject): IPersonaProps;\r\n resolveQuery(query: string);\r\n onChange(pickerResults: IPersonaProps[], apiResults: ApiObject[]);\r\n}\r\n\r\ninterface IDebouncedPeoplePickerState {\r\n apiResults: ApiObject[];\r\n pickerResults: IPersonaProps[];\r\n}\r\n\r\nexport class DebouncedPeoplePicker extends Component {\r\n debounce: ReturnType;\r\n\r\n state: IDebouncedPeoplePickerState = {\r\n apiResults: [],\r\n pickerResults: []\r\n };\r\n\r\n resolvePeople = (query: string = ''): IPersonaProps[] | PromiseLike => {\r\n const { resolveQuery, transformResults, selectedItems } = this.props;\r\n clearTimeout(this.debounce);\r\n return new Promise(resolve => {\r\n this.debounce = setTimeout(async () => {\r\n const apiResults = await resolveQuery(query) || [];\r\n const pickerResults = apiResults.map(transformResults);\r\n const filteredResults = pickerResults.filter(itemFromApi => !selectedItems?.find(selectedItem => selectedItem.id === itemFromApi.id));\r\n this.setState({\r\n apiResults,\r\n pickerResults: filteredResults\r\n }, () => {\r\n resolve(filteredResults);\r\n });\r\n }, 500);\r\n });\r\n }\r\n\r\n onResolveSuggestions = (filterText: string, currentPersonas: IPersonaProps[]): IPersonaProps[] | PromiseLike => {\r\n if (!filterText.trim()) {\r\n return currentPersonas || [];\r\n }\r\n\r\n return this.resolvePeople(filterText);\r\n }\r\n\r\n onEmptyPeopleFocus = () => this.resolvePeople();\r\n\r\n onChange = (items?: IPersonaProps[]) => {\r\n const { apiResults } = this.state;\r\n const { onChange, selectedItems } = this.props;\r\n const itemsById = (items || []).reduce((arrayOfItems, item) => ({\r\n ...arrayOfItems,\r\n [item.id]: item\r\n }), {} as { [id: string]: IPersonaProps });\r\n\r\n const originalResults = [...(apiResults || []), ...(selectedItems || [])]\r\n .reduce((unique, item) => unique.find(el => el.id === item.id) ? unique : [...unique, item], []);\r\n\r\n onChange(items, originalResults.filter(item => !!itemsById[item.id]));\r\n }\r\n\r\n render() {\r\n const { transformResults, selectedItems, itemLimit, noResultsFoundText } = this.props;\r\n\r\n return (\r\n \r\n \r\n {this.props.newDesign && }\r\n \r\n );\r\n }\r\n}","import React from 'react';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { IValue } from '../../../entities/IPickers';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { ContextMenu, ISingleLink } from '../ContextMenu/ContextMenu';\r\n\r\nconst CustomElem = styled.div`\r\n color: ${colorStack.content};\r\n font-size: ${fontSize[16]};\r\n padding: .8rem 1rem;\r\n font-weight: 500;\r\n text-align: left;\r\n transition: all .3s;\r\n cursor: pointer;\r\n display: flex;\r\n &:hover {\r\n background: ${colorStack.ligthGrey};\r\n }\r\n`;\r\n\r\nconst ColorCircle = styled.div<{ color: string }>`\r\n border-radius: 100%;\r\n margin-right: .5rem;\r\n width: 16px;\r\n height: 16px;\r\n ${props => props.color && css`\r\n background: ${props.color};\r\n `}\r\n`;\r\n\r\ninterface IProps {\r\n options: IValue[];\r\n value: IValue[];\r\n onChange(item: IValue);\r\n}\r\n\r\nexport const StatusMenu = (props: IProps) => {\r\n return (\r\n ({\r\n customRender:\r\n props.onChange(elem)}>\r\n \r\n ,\r\n visible: true\r\n }))} />\r\n );\r\n};","import React , { useEffect }from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCaretDown } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { MultilineTextWithEllipsis } from '../TextWithEllipsis/MultilineTextWithEllipsis';\r\nimport { useDropdown } from '../../../tools/hooks';\r\nimport { SearchMenu } from '../SearchMenu/SearchMenu';\r\nimport { IValue } from '../../../entities/IPickers';\r\nimport { EContextList, EReferentials } from '../../../entities/IGlobal';\r\nimport { ContextMenu, ISingleLink } from '../ContextMenu/ContextMenu';\r\nimport { StatusMenu } from '../StatusMenu/StatusMenu';\r\n\r\nconst Wrapper = styled.div`\r\n cursor: pointer;\r\n position: relative;\r\n`;\r\n\r\nconst SelectedBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n svg {\r\n color: ${colorStack.middleBlue};\r\n width: 8px;\r\n margin-left: 20px;\r\n }\r\n`;\r\n\r\nconst Selected = styled.span<{textColor: string, withSeparator?: boolean}>`\r\n ${fontSizeAndHeight[16]};\r\n color: ${props => props.textColor};\r\n width: calc(100% - 28px);\r\n position: relative;\r\n ${props => props.withSeparator && css`\r\n &::after {\r\n position: absolute;\r\n width: 16px;\r\n height: 16px;\r\n top: 0;\r\n right: -20px;\r\n content: '|';\r\n color: ${colorStack.ligthGrey};\r\n }\r\n `}\r\n`;\r\n\r\nconst ListBox = styled.div<{ alignRight?: boolean }>`\r\n > div {\r\n top: 30px;\r\n left: -21px;\r\n ${props => props.alignRight && css`\r\n width: auto;\r\n top: 33px;\r\n left: calc(-200% + 28px);\r\n `}\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n type: 'search' | 'menu' | 'status',\r\n loading?: boolean;\r\n options?: IValue[];\r\n refsOptions?: {\r\n context: EContextList;\r\n type: EReferentials;\r\n };\r\n links?: ISingleLink[];\r\n value: IValue[];\r\n alignRight?: boolean;\r\n withSeparator?: boolean;\r\n triggerOpenDropdown?: boolean;\r\n resetTrigger?: () => void;\r\n closeDropdown?: boolean;\r\n onChange?(item: IValue);\r\n}\r\n\r\nexport const DropDown = (props: IProps) => {\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n\r\n useEffect(() => {\r\n if (props.closeDropdown) {\r\n closeDropdown();\r\n }\r\n }, [props.closeDropdown]);\r\n\r\n useEffect(() => {\r\n if (props.triggerOpenDropdown) {\r\n closeDropdown();\r\n setTimeout(() => {\r\n toggleDropdown();\r\n props.resetTrigger?.();\r\n }, 100);\r\n }\r\n\r\n }, [props.triggerOpenDropdown]);\r\n\r\n const changeHandler = (item: IValue) => {\r\n setTimeout(() => {\r\n toggleDropdown();\r\n props.resetTrigger?.();\r\n props.onChange(item);\r\n }, 100);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* tslint:disable-next-line:no-null-keyword */}\r\n {props.options?.length > 1 ? : null}\r\n \r\n {dropdownOpen &&\r\n \r\n {props.type === 'search' &&\r\n \r\n }\r\n {(props.type === 'menu' && props.links) &&\r\n \r\n }\r\n {props.type === 'status' &&\r\n \r\n }\r\n \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\ninterface IProps {\r\n to: string;\r\n className?: string;\r\n title?: string;\r\n onClick?: any;\r\n}\r\n\r\nexport const ExternalLink: FC = (props) => {\r\n return (\r\n
    \r\n {props.children}\r\n \r\n );\r\n};","import React, { FC, useCallback } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport ReactDom from 'react-dom';\r\n\r\nimport { getFileMetadata } from '../../../actions/clustersFilesystemActions';\r\nimport { downloadDocument } from '../../../actions/legalEntitiesActions';\r\nimport { ImageViewer } from './ImageViewer';\r\n\r\ntype DownloadDocument = ReturnType;\r\n\r\ninterface IFilesystemImageViewerProps {\r\n imageName: string;\r\n entityId?: string;\r\n documentId?: string;\r\n clusterId: string;\r\n displayDirectUrl: string;\r\n currentPath: string[];\r\n closeViewer();\r\n}\r\n\r\nexport const FilesystemImageViewer: FC = (props) => {\r\n const { displayDirectUrl, clusterId, imageName, closeViewer, currentPath, entityId, documentId } = props;\r\n const dispatch = useDispatch();\r\n\r\n const downloadHandler = useCallback(() => {\r\n if (clusterId) {\r\n dispatch(getFileMetadata(clusterId, currentPath, imageName)).then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n });\r\n } else {\r\n dispatch(downloadDocument(entityId, documentId)).then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n });\r\n }\r\n }, [currentPath, imageName, clusterId, entityId, documentId]);\r\n\r\n return ReactDom.createPortal(\r\n , document.getElementById('react-app')\r\n );\r\n};\r\n","import React, { FC, useCallback } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport ReactDom from 'react-dom';\r\n\r\nimport { getFileMetadata } from '../../../actions/clustersFilesystemActions';\r\nimport { PdfViewer } from './PdfViewer';\r\n\r\ninterface IFilesystemPdfViewerProps {\r\n document: string;\r\n pdfName: string;\r\n clusterId: string;\r\n currentPath: string[];\r\n closeViewer();\r\n}\r\n\r\nexport const FilesystemPdfViewer: FC = (props) => {\r\n const dispatch = useDispatch();\r\n\r\n const downloadHandler = useCallback(() => {\r\n dispatch(getFileMetadata(props.clusterId, props.currentPath, props.pdfName)).then(response => {\r\n response?.directUri && (window.location.href = response?.directUri);\r\n });\r\n }, [props.currentPath, props.pdfName, props.clusterId]);\r\n\r\n // TODO: waiting for API for corect document\r\n return ReactDom.createPortal(\r\n , document.getElementById('react-app')\r\n );\r\n};","import React, { FC, ReactNode } from 'react';\r\nimport styled from 'styled-components';\r\nimport { rgba } from 'polished';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { FileIcon } from '../../Organization/ClustersV2/ClusterActivity/Components/FileIcon';\r\nimport { Loader } from '../../Common/Loader/Loader';\r\nimport { Button, EButtonTypeSchema } from '../Buttons/NewButton';\r\n\r\nconst Wrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n background: ${rgba(colorStack.black, .8)};\r\n z-index: 99999;\r\n overflow: hidden;\r\n`;\r\n\r\nconst DocumentWrapper = styled.div`\r\n width: 100%;\r\n height: calc(100% - 59px);\r\n > div {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100%;\r\n }\r\n img {\r\n max-width: 100%;\r\n display: block;\r\n max-height: calc(90vh - 59px);\r\n }\r\n`;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 10px 30px;\r\n background: ${rgba(colorStack.black, .6)};\r\n > div {\r\n display: flex;\r\n align-items: center;\r\n .image-ico {\r\n color: ${colorStack.white};\r\n ${fontSizeAndHeight[20]};\r\n margin-right: 10px;\r\n }\r\n }\r\n .image-name {\r\n color: ${colorStack.white};\r\n font-weight: 700;\r\n ${fontSizeAndHeight[20]};\r\n }\r\n .close-button {\r\n margin: 0 30px 0 auto;\r\n }\r\n`;\r\n\r\ninterface IImageViewerProps {\r\n imageName: ReactNode;\r\n image: string;\r\n onDownloadClick(): void;\r\n onCloseClick(): void;\r\n}\r\n\r\nexport const ImageViewer: FC = ({ imageName, image, onDownloadClick, onCloseClick }) => {\r\n\r\n const onClose = (e) => {\r\n e.stopPropagation();\r\n onCloseClick();\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {imageName}
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\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 if (bounds.Rotation !== 270) {\n bounds.Y = yValue;\n bounds.Height = heightValue;\n }\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height, bounds.Rotation);\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 = void 0;\n if (bounds.Rotation === 90) {\n scale = bounds.Height * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n else {\n scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation, bounds);\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, bounds.Rotation);\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 = void 0;\n if (bounds.Rotation === 90) {\n scale = bounds.Height * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n else {\n scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n }\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation, bounds);\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, bounds) {\n var scaleString = 'scaleX(' + scale + ')';\n if (rotation === 0) {\n if (textRotation >= 0 && textRotation < 90) {\n textDiv.style.transform = scaleString;\n }\n else if ((textRotation == 90) || (textRotation == 270)) {\n if ((textRotation == 270)) {\n textDiv.style.left = (bounds.X * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.top = ((bounds.Y + bounds.Width) * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.height = (bounds.Height * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.fontSize = (bounds.Height * this.pdfViewerBase.getZoomFactor()) + \"px\";\n }\n else {\n textDiv.style.left = ((bounds.X + bounds.Width) * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.top = (bounds.Y * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.height = (bounds.Width * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.fontSize = (bounds.Width * this.pdfViewerBase.getZoomFactor()) + \"px\";\n textDiv.style.transformOrigin = '0% 0%';\n }\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + 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 textRotation = textRotation + 90;\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, rotation) {\n textDiv.style.left = left * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = top * this.pdfViewerBase.getZoomFactor() + 'px';\n var textHeight;\n if (rotation === 90) {\n textHeight = width * this.pdfViewerBase.getZoomFactor();\n }\n else {\n textHeight = height * this.pdfViewerBase.getZoomFactor();\n }\n textDiv.style.height = textHeight + 'px';\n textDiv.style.fontSize = textHeight + '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","import { createElement } from '@syncfusion/ej2-base';\n/**\n * The 'AccessibilityTags' module helps to access the tagged layers in a PDF document for the users with disabilities.\n */\nvar AccessibilityTags = /** @class */ (function () {\n /**\n * @param {PdfViewer} pdfViewer - The PdfViewer.\n * @param {PdfViewerBase} pdfViewerBase - The PdfViewerBase.\n * @private\n */\n function AccessibilityTags(pdfViewer, pdfViewerBase) {\n this.createTag = function (taggedTextResponse) {\n var _this = this;\n var tagType = taggedTextResponse.TagType;\n var parentTagType = taggedTextResponse.ParentTagType;\n var text = taggedTextResponse.Text;\n var altText = taggedTextResponse.AltText;\n var bounds = taggedTextResponse.Bounds;\n var childTags = taggedTextResponse.ChildElements;\n var textTag = document.createElement(this.getTag(tagType));\n textTag.style = \"padding:0px;margin:0px\";\n if (parentTagType != \"Document\" && parentTagType != \"Part\") {\n textTag.style.position = 'absolute';\n }\n if (bounds) {\n this.setStyleToTaggedTextDiv(textTag, bounds, taggedTextResponse.FontSize, taggedTextResponse.FontName, taggedTextResponse.FontStyle);\n this.setTextElementProperties(textTag);\n }\n if (text.trim() != \"\") {\n textTag.innerText = text;\n }\n if (altText && altText.trim() !== \"\" && (tagType === \"Image\" || tagType === \"Figure\")) {\n textTag.alt = altText;\n textTag.src = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgYAAAAAMAASsJTYQAAAAASUVORK5CYII=\";\n }\n if (childTags && childTags.length > 0) {\n childTags.forEach(function (element) {\n if (tagType === \"Table\") {\n if (element.ChildElements) {\n element.ChildElements.forEach(function (newelement) {\n textTag.appendChild(_this.createTag(newelement));\n });\n }\n }\n else {\n textTag.appendChild(_this.createTag(element));\n }\n });\n }\n return textTag;\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n AccessibilityTags.prototype.addTaggedLayer = function (pageIndex) {\n var taggedLayer;\n if (this.pdfViewer.enableAccessibilityTags && this.pdfViewerBase.isTaggedPdf) {\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n taggedLayer = document.getElementById(this.pdfViewer.element.id + '_taggedLayer_' + pageIndex);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n if (textLayer) {\n textLayer.setAttribute('aria-hidden', 'true');\n }\n if (!taggedLayer) {\n taggedLayer = createElement('div', { id: this.pdfViewer.element.id + '_taggedLayer_' + pageIndex, className: 'e-pv-tagged-layer e-pv-text-layer' });\n }\n taggedLayer.innerHTML = \"\";\n taggedLayer.style.width = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].width * this.pdfViewerBase.getZoomFactor() + 'px';\n taggedLayer.style.height = this.pdfViewerBase.pageSize[parseInt(pageIndex.toString(), 10)].height * this.pdfViewerBase.getZoomFactor() + 'px';\n taggedLayer.style.pointerEvents = \"none\";\n if (pageDiv) {\n pageDiv.appendChild(taggedLayer);\n }\n }\n return taggedLayer;\n };\n /**\n * @param pageIndex\n * @private\n */\n AccessibilityTags.prototype.renderAccessibilityTags = function (pageIndex, taggedTextResponse) {\n var taggedLayer = this.addTaggedLayer(pageIndex);\n for (var i = 0; i < taggedTextResponse.length; i++) {\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + '_taggedText_' + pageIndex + '_' + parseInt(i.toString(), 10), className: 'e-pv-text', attrs: { 'tabindex': '-1' } });\n var bounds = taggedTextResponse[parseInt(i.toString(), 10)].Bounds;\n if (taggedTextResponse[parseInt(parseInt(i.toString(), 10).toString(), 10)].TagType === \"Paragraph\" && taggedTextResponse[parseInt(i.toString(), 10)].ChildElements === null && taggedTextResponse[parseInt(i.toString(), 10)].Text.trim() === \"\") {\n continue;\n }\n else {\n textDiv.appendChild(this.createTag(taggedTextResponse[parseInt(i.toString(), 10)]));\n }\n textDiv.style.display = \"inline\";\n // eslint-disable-next-line max-len\n this.setStyleToTaggedTextDiv(textDiv, bounds, taggedTextResponse[parseInt(i.toString(), 10)].FontSize, taggedTextResponse[parseInt(i.toString(), 10)].FontName, taggedTextResponse[parseInt(i.toString(), 10)].FontStyle);\n this.setTextElementProperties(textDiv);\n taggedLayer.appendChild(textDiv);\n }\n };\n AccessibilityTags.prototype.getTag = function (tagType) {\n switch (tagType) {\n case \"Paragraph\":\n return \"p\";\n case \"Figure\":\n return \"img\";\n case \"Article\":\n return \"art\";\n case \"Annotation\":\n return \"annot\";\n case \"BibliographyEntry\":\n return \"bibentry\";\n case \"BlockQuotation\":\n return \"blockQuote\";\n case \"Caption\":\n return \"caption\";\n case \"Code\":\n return \"code\";\n case \"Division\":\n return \"div\";\n case \"Document\":\n return \"document\";\n case \"Form\":\n return \"form\";\n case \"Formula\":\n return \"formula\";\n case \"Index\":\n return \"index\";\n case \"Heading\":\n return \"h\";\n case \"HeadingLevel1\":\n return \"h1\";\n case \"HeadingLevel2\":\n return \"h2\";\n case \"HeadingLevel3\":\n return \"h3\";\n case \"HeadingLevel4\":\n return \"h4\";\n case \"HeadingLevel5\":\n return \"h5\";\n case \"HeadingLevel6\":\n return \"h6\";\n case \"Label\":\n return \"label\";\n case \"Link\":\n return \"a\";\n case \"List\":\n return \"ul\";\n case \"ListItem\":\n return \"li\";\n case \"ListBody\":\n return \"p\";\n case \"Note\":\n return \"note\";\n case \"Part\":\n return \"part\";\n case \"Quotation\":\n return \"quote\";\n case \"Reference\":\n return \"reference\";\n case \"Section\":\n return \"sect\";\n case \"Span\":\n return \"span\";\n case \"Table\":\n return \"table\";\n case \"TableDataCell\":\n return \"td\";\n case \"TableHeader\":\n return \"th\";\n case \"TableOfContent\":\n return \"toc\";\n case \"TableOfContentItem\":\n return \"toci\";\n case \"TableRow\":\n return \"tr\";\n case \"Image\":\n return \"img\";\n default:\n return \"p\";\n }\n };\n AccessibilityTags.prototype.setStyleToTaggedTextDiv = function (textDiv, bounds, fontSize, fontName, fontStyle) {\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n textDiv.style.left = this.pdfViewerBase.ConvertPointToPixel(bounds.X) * zoomFactor + 'px';\n textDiv.style.top = this.pdfViewerBase.ConvertPointToPixel(bounds.Y) * zoomFactor + 'px';\n textDiv.style.width = this.pdfViewerBase.ConvertPointToPixel(bounds.Width) * zoomFactor + 'px';\n var textHeight = this.pdfViewerBase.ConvertPointToPixel(bounds.Height) * zoomFactor;\n textDiv.style.height = textHeight + 'px';\n textDiv.style.fontSize = this.pdfViewerBase.ConvertPointToPixel(fontSize) * zoomFactor + 'px';\n if (fontName && (fontName === \"Wingdings\" || fontName === \"Symbol\")) {\n textDiv.style.fontFamily = \"Verdana\";\n }\n else if (fontName) {\n textDiv.style.fontFamily = fontName;\n }\n if (fontStyle) {\n textDiv.style.fontWeight = fontStyle;\n }\n textDiv.style.color = 'transparent';\n };\n AccessibilityTags.prototype.setTextElementProperties = function (textDiv) {\n textDiv.style.transformOrigin = '0%';\n };\n /**\n * @private\n */\n AccessibilityTags.prototype.getModuleName = function () {\n return 'AccessibilityTags';\n };\n /**\n * @private\n */\n AccessibilityTags.prototype.destroy = function () {\n return true;\n };\n return AccessibilityTags;\n}());\nexport { AccessibilityTags };\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[parseInt(i.toString(), 10)];\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[parseInt(j.toString(), 10)], 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[parseInt(j.toString(), 10)], 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[parseInt(j.toString(), 10)] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[parseInt(j.toString(), 10)] });\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[parseInt(j.toString(), 10)], 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[parseInt(j.toString(), 10)], 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[parseInt(j.toString(), 10)], 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[parseInt(j.toString(), 10)], 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 // eslint-disable-next-line\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)] = 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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)];\n break;\n }\n if (newSeg) {\n arrayCollection[parseInt(i.toString(), 10)] = 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[parseInt(i.toString(), 10)]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[parseInt(i.toString(), 10)]);\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","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[parseInt(j.toString(), 10)], 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","/**\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","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 instances = 'ej2_instances';\nvar uid = 0;\nvar isBlazorPlatform = false;\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function disableBlazorMode() {\n isBlazorPlatform = false;\n}\n/**\n * Create Instance from constructor function with desired parameters.\n *\n * @param {Function} classFunction - Class function to which need to create instance\n * @param {any[]} params - Parameters need to passed while creating instance\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function createInstance(classFunction, params) {\n var arrayParam = params;\n arrayParam.unshift(undefined);\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\n}\n/**\n * To run a callback function immediately after the browser has completed other operations.\n *\n * @param {Function} handler - callback function to be triggered.\n * @returns {Function} ?\n * @private\n */\nexport function setImmediate(handler) {\n var unbind;\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n intCrypto.getRandomValues(num);\n var secret = 'ej2' + combineArray(num);\n // eslint-disable-next-line\n var messageHandler = function (event) {\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\n handler();\n unbind();\n }\n };\n window.addEventListener('message', messageHandler, false);\n window.postMessage(secret, '*');\n return unbind = function () {\n window.removeEventListener('message', messageHandler);\n handler = messageHandler = secret = undefined;\n };\n}\n/**\n * To get nameSpace value from the desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getValue(nameSpace, obj) {\n // eslint-disable-next-line\n var value = obj;\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n }\n return value;\n}\n/**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function setValue(nameSpace, value, obj) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n // eslint-disable-next-line\n var start = obj || {};\n // eslint-disable-next-line\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[parseInt(i.toString(), 10)];\n if (i + 1 === length) {\n fromObj[\"\" + key] = value === undefined ? {} : value;\n }\n else if (isNullOrUndefined(fromObj[\"\" + key])) {\n fromObj[\"\" + key] = {};\n }\n fromObj = fromObj[\"\" + key];\n }\n return start;\n}\n/**\n * Delete an item from Object\n *\n * @param {any} obj - Object in which we need to delete an item.\n * @param {string} key - String value to the get the inner object\n * @returns {void} ?\n * @private\n */\n// eslint-disable-next-line\nexport function deleteObject(obj, key) {\n delete obj[\"\" + key];\n}\n/**\n *@private\n */\n// eslint-disable-next-line\nexport var containerObject = typeof window !== 'undefined' ? window : {};\n/**\n * Check weather the given argument is only object.\n *\n * @param {any} obj - Object which is need to check.\n * @returns {boolean} ?\n * @private\n */\n// eslint-disable-next-line\nexport function isObject(obj) {\n var objCon = {};\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\n}\n/**\n * To get enum value by giving the string.\n *\n * @param {any} enumObject - Enum object.\n * @param {string} enumValue - Enum value to be searched\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getEnumValue(enumObject, enumValue) {\n // eslint-disable-next-line\n return enumObject[enumValue];\n}\n/**\n * Merge the source object into destination object.\n *\n * @param {any} source - source object which is going to merge with destination object\n * @param {any} destination - object need to be merged\n * @returns {void} ?\n * @private\n */\nexport function merge(source, destination) {\n if (!isNullOrUndefined(destination)) {\n var temrObj = source;\n var tempProp = destination;\n var keys = Object.keys(destination);\n var deepmerge = 'deepMerge';\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!isNullOrUndefined(temrObj[\"\" + deepmerge]) && (temrObj[\"\" + deepmerge].indexOf(key) !== -1) &&\n (isObject(tempProp[\"\" + key]) || Array.isArray(tempProp[\"\" + key]))) {\n extend(temrObj[\"\" + key], temrObj[\"\" + key], tempProp[\"\" + key], true);\n }\n else {\n temrObj[\"\" + key] = tempProp[\"\" + key];\n }\n }\n }\n}\n/**\n * Extend the two object with newer one.\n *\n * @param {any} copied - Resultant object after merged\n * @param {Object} first - First object need to merge\n * @param {Object} second - Second object need to merge\n * @param {boolean} deep ?\n * @returns {Object} ?\n * @private\n */\nexport function extend(copied, first, second, deep) {\n var result = copied && typeof copied === 'object' ? copied : {};\n var length = arguments.length;\n if (deep) {\n length = length - 1;\n }\n var _loop_1 = function (i) {\n // eslint-disable-next-line\n if (!arguments_1[i]) {\n return \"continue\";\n }\n // eslint-disable-next-line\n var obj1 = arguments_1[i];\n Object.keys(obj1).forEach(function (key) {\n var src = result[\"\" + key];\n var copy = obj1[\"\" + key];\n var clone;\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\n // eslint-disable-next-line\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\n if (isObject(copy)) {\n clone = src ? src : {};\n // eslint-disable-next-line\n if (Array.isArray(clone) && clone.hasOwnProperty('isComplexArray')) {\n extend(clone, {}, copy, deep);\n }\n else {\n result[\"\" + key] = extend(clone, {}, copy, deep);\n }\n }\n else {\n /* istanbul ignore next */\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\n // eslint-disable-next-line\n result[\"\" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));\n }\n }\n else {\n result[\"\" + key] = copy;\n }\n });\n };\n var arguments_1 = arguments;\n for (var i = 1; i < length; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * To check whether the object is null or undefined.\n *\n * @param {Object} value - To check the object is null or undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n/**\n * To check whether the object is undefined.\n *\n * @param {Object} value - To check the object is undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isUndefined(value) {\n return ('undefined' === typeof value);\n}\n/**\n * To return the generated unique name\n *\n * @param {string} definedName - To concatenate the unique id to provided name\n * @returns {string} ?\n * @private\n */\nexport function getUniqueID(definedName) {\n return definedName + '_' + uid++;\n}\n/**\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\n *\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\n * @returns {Function} ?\n * @private\n */\nexport function debounce(eventFunction, delay) {\n // eslint-disable-next-line\n var out;\n return function () {\n var _this = this;\n // eslint-disable-next-line\n var args = arguments;\n var later = function () {\n out = null;\n return eventFunction.apply(_this, args);\n };\n clearTimeout(out);\n out = setTimeout(later, delay);\n };\n}\n/**\n * To convert the object to string for query url\n *\n * @param {Object} data ?\n * @returns {string} ?\n * @private\n */\n// eslint-disable-next-line\nexport function queryParams(data) {\n var array = [];\n var keys = Object.keys(data);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[\"\" + key]));\n }\n return array.join('&');\n}\n/**\n * To check whether the given array contains object.\n *\n * @param {any} value - Specifies the T type array to be checked.\n * @returns {boolean} ?\n * @private\n */\nexport function isObjectArray(value) {\n var parser = Object.prototype.toString;\n if (parser.call(value) === '[object Array]') {\n if (parser.call(value[0]) === '[object Object]') {\n return true;\n }\n }\n return false;\n}\n/**\n * To check whether the child element is descendant to parent element or parent and child are same element.\n *\n * @param {Element} child - Specifies the child element to compare with parent.\n * @param {Element} parent - Specifies the parent element.\n * @returns {boolean} ?\n * @private\n */\nexport function compareElementParent(child, parent) {\n var node = child;\n if (node === parent) {\n return true;\n }\n else if (node === document || !node) {\n return false;\n }\n else {\n return compareElementParent(node.parentNode, parent);\n }\n}\n/**\n * To throw custom error message.\n *\n * @param {string} message - Specifies the error message to be thrown.\n * @returns {void} ?\n * @private\n */\nexport function throwError(message) {\n try {\n throw new Error(message);\n }\n catch (e) {\n // eslint-disable-next-line\n throw e.message + '\\n' + e.stack;\n }\n}\n/**\n * This function is used to print given element\n *\n * @param {Element} element - Specifies the print content element.\n * @param {Window} printWindow - Specifies the print window.\n * @returns {Window} ?\n * @private\n */\nexport function print(element, printWindow) {\n var div = document.createElement('div');\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\n if (blinks.length) {\n for (var l = 0, len = blinks.length; l < len; l++) {\n links.push(blinks[parseInt(l.toString(), 10)]);\n }\n }\n var reference = '';\n if (isNullOrUndefined(printWindow)) {\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\n }\n div.appendChild(element.cloneNode(true));\n for (var i = 0, len = links.length; i < len; i++) {\n reference += links[parseInt(i.toString(), 10)].outerHTML;\n }\n printWindow.document.write(' ' + reference + '' + div.innerHTML +\n '' + '');\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 var regExp = RegExp;\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 var regExp = RegExp;\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 if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[\"\" + i] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\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 var regExp = RegExp;\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 regExp = RegExp;\nvar parseRegex = new regExp('^([^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';\nvar regExp = RegExp;\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 /* eslint-disable */\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 = new regExp(\"(^[ncpae]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.currencyFormatRegex = new regExp(\"(^[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 dOptions.isCustomFormat = true;\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 // eslint-disable-next-line\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 * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\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 var regExp = RegExp;\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 if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\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","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', '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 = '21.1';\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=MjEuMQ==\";\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","/**\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 { 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 var regExp = RegExp;\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.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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 var isDialogEle = this.helperElement.classList.contains('e-dialog');\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 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : 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.classList.contains(\"e-dialog\") && !this.element.classList.contains(\"e-card\") && 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.isSafari() ? 'touchend' : 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.isSafari() ? 'touchend' : 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","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","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","/**\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 { 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.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) {\n this.element.checked = false;\n this.validCheck = false;\n }\n else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) {\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.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) {\n this.element.checked = true;\n this.validCheck = false;\n }\n else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) {\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 this.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","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","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.isSwiped = 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.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));\n }\n if (count > 0) {\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, 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, 'aria-disabled': 'false' }\n });\n wrap.querySelector('.' + CLS_TEXT).appendChild(item);\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', 'aria-disabled': '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, 'data-id': item.id\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 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.isSwiped,\n isInteracted: isInteracted,\n preventFocus: false\n };\n this.trigger('selected', eventArg, function (selectEventArgs) {\n if (!selectEventArgs.preventFocus) {\n trg.firstElementChild.focus();\n }\n });\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)) {\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.isSwiped = 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.isSwiped = 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 scrBar.removeAttribute('tabindex');\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 (properties[j] === 'headerTemplate') {\n this.clearTabTemplate(hdrItem, properties[j], CLS_TB_ITEM);\n }\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.isAngular || this.isReact) {\n this.clearTabTemplate(cntItem, properties[j], CLS_ITEM);\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.clearTabTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[templateName].length; index++) {\n var registeredItem = registeredTemplates[templateName][index].rootNodes[0];\n var closestItem = closest(registeredItem, '.' + className);\n if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], [registeredTemplates[templateName][index]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[index];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNullOrUndefined(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\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 var dragObj = e.element.ej2_instances[0];\n if (!isNullOrUndefined(dragObj)) {\n dragObj.intDestroy(e.event);\n }\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.firstElementChild.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 var header = select('#' + CLS_ITEM + _this.tabId + '_' + _this.extIndex(trg.id), select('.' + CLS_TB_ITEMS, _this.element));\n if (!isNOU(header)) {\n _this.clearTabTemplate(header, 'headerTemplate', CLS_TB_ITEM);\n }\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 _this.clearTabTemplate(cntTrg, 'content', CLS_ITEM);\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.isSwiped,\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', 'aria-disabled': 'false' };\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', 'aria-disabled': 'false' }\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","/**\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","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 this.issaveTypeSignature = false;\n this.issaveImageSignature = false;\n this.issaveTypeInitial = false;\n this.issaveImageInitial = false;\n this.saveSignatureTypeString = '';\n this.saveInitialTypeString = '';\n this.saveTypeString = '';\n this.signatureTypeString = '';\n this.initialTypeString = '';\n this.saveUploadString = '';\n this.saveSignatureUploadString = '';\n this.saveInitialUploadString = '';\n this.signatureUploadString = '';\n this.initialUploadString = '';\n this.clearUploadString = false;\n this.textValue = '';\n this.signatureDrawString = '';\n this.initialDrawString = '';\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.signatureDrawString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n image_1.src = this.initialDrawString;\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.drawSavedTypeSignature = function () {\n var output = '';\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.issaveTypeSignature || this.issaveTypeInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.issaveTypeSignature) {\n output = this.saveSignatureTypeString;\n }\n else {\n output = this.saveInitialTypeString;\n }\n }\n return output;\n };\n ;\n Signature.prototype.drawSavedImageSignature = function () {\n var output = '';\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.issaveImageSignature || this.issaveImageInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.issaveImageSignature) {\n output = this.saveSignatureUploadString;\n }\n else {\n output = this.saveInitialUploadString;\n }\n }\n return output;\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 = document.getElementById('checkbox');\n var typeCheckbox = document.getElementById('checkbox1');\n var imageCheckbox = document.getElementById('checkbox2');\n var isSignatureAdded = false;\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) {\n if (checkbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureDrawString = this.saveImageString;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.initialDrawString = 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 }\n this.saveTypeSignature(typeCheckbox);\n this.saveUploadSignature(imageCheckbox);\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 (type) {\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 var checkbox = document.getElementById('checkbox');\n var typeCheckbox = document.getElementById('checkbox1');\n var imageCheckbox = document.getElementById('checkbox2');\n var isSignatureAdded = false;\n if (!isSignatureAdded) {\n this.saveDrawSignature(checkbox);\n this.saveUploadSignature(imageCheckbox);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveTypeString = canvas.toDataURL();\n this.updateSignatureTypeValue();\n if (typeCheckbox && typeCheckbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureImageString = this.saveTypeString;\n this.saveSignatureTypeString = this.textValue;\n this.issaveTypeSignature = true;\n }\n else {\n this.isSaveInitial = true;\n this.initialImageString = this.saveTypeString;\n this.saveInitialTypeString = this.textValue;\n this.issaveTypeInitial = true;\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureTypeString = '';\n this.issaveTypeSignature = false;\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialTypeString = '';\n this.issaveTypeInitial = false;\n }\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureTypeString = this.saveTypeString;\n }\n else {\n this.initialTypeString = this.saveTypeString;\n }\n this.pdfViewer.formFieldsModule.drawSignature('Type', this.textValue, this.pdfViewerBase.currentTarget);\n isSignatureAdded = true;\n this.hideSignaturePanel();\n }\n }\n };\n Signature.prototype.imageAddSignature = function (type) {\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 var checkbox = document.getElementById('checkbox');\n var typeCheckbox = document.getElementById('checkbox1');\n var imageCheckbox = document.getElementById('checkbox2');\n var isSignatureAdded = false;\n if (!isSignatureAdded) {\n this.saveDrawSignature(checkbox);\n this.saveTypeSignature(typeCheckbox);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveUploadString = canvas.toDataURL();\n if (imageCheckbox && imageCheckbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureImageString = this.saveUploadString;\n this.saveSignatureUploadString = this.outputString;\n this.issaveImageSignature = true;\n }\n else {\n this.isSaveInitial = true;\n this.initialImageString = this.saveUploadString;\n this.saveInitialUploadString = this.outputString;\n this.issaveImageInitial = true;\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureUploadString = '';\n this.issaveImageSignature = false;\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialUploadString = '';\n this.issaveImageInitial = false;\n }\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureUploadString = this.saveUploadString;\n }\n else {\n this.initialUploadString = this.saveUploadString;\n }\n this.pdfViewer.formFieldsModule.drawSignature('Image', '', this.pdfViewerBase.currentTarget);\n isSignatureAdded = true;\n this.hideSignaturePanel();\n }\n }\n };\n Signature.prototype.saveDrawSignature = function (checkbox) {\n if (checkbox) {\n if (checkbox.checked) {\n if (this.drawOutputString !== '') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureString = this.drawOutputString;\n this.signatureDrawString = this.saveImageString;\n }\n else {\n this.saveInitialString = this.drawOutputString;\n this.initialDrawString = this.saveImageString;\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, true);\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureString = '';\n }\n else {\n this.saveInitialString = '';\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, false);\n }\n }\n };\n Signature.prototype.saveTypeSignature = function (typeCheckbox) {\n if (typeCheckbox) {\n if (typeCheckbox.checked) {\n this.updateSignatureTypeValue();\n if (this.textValue !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.issaveTypeSignature = true;\n this.saveSignatureTypeString = this.textValue;\n }\n else {\n this.issaveTypeInitial = true;\n this.saveInitialTypeString = this.textValue;\n }\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureTypeString = '';\n this.issaveTypeSignature = false;\n }\n else {\n this.saveInitialTypeString = '';\n this.issaveTypeInitial = false;\n }\n }\n }\n };\n Signature.prototype.saveUploadSignature = function (imageCheckbox) {\n if (imageCheckbox) {\n if (imageCheckbox.checked) {\n var imageCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n var uploadString = imageCanvas.toDataURL();\n var imageString = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button').style.visibility === 'hidden' ? uploadString : '';\n if (imageString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.issaveImageSignature = true;\n this.saveSignatureUploadString = imageString;\n }\n else {\n this.issaveImageInitial = true;\n this.saveInitialUploadString = imageString;\n }\n }\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.saveSignatureUploadString = '';\n this.issaveImageSignature = false;\n }\n else {\n this.saveInitialUploadString = '';\n this.issaveImageInitial = false;\n }\n }\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 (this.pdfViewerBase.isToolbarSignClicked) {\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 }\n else {\n if (isType) {\n this.signtypevalue = fontElements[parseInt(j.toString(), 10)].textContent;\n this.textValue = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n else {\n this.textValue = fontElements[parseInt(j.toString(), 10)].textContent;\n }\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 if (!this.pdfViewerBase.isInitialField && this.issaveTypeSignature && !this.pdfViewerBase.isToolbarSignClicked) {\n inputText.value = this.drawSavedTypeSignature();\n }\n else if (this.pdfViewerBase.isInitialField && this.issaveTypeInitial && !this.pdfViewerBase.isToolbarSignClicked) {\n inputText.value = this.drawSavedTypeSignature();\n }\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 fontDiv.style.paddingRight = '0px';\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 if (this.issaveTypeSignature && !this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\n else if (this.issaveTypeInitial && this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\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 var imageUploadString = '';\n if (!this.pdfViewerBase.isInitialField && this.issaveImageSignature && !this.pdfViewerBase.isToolbarSignClicked) {\n imageUploadString = this.drawSavedImageSignature();\n }\n else if (this.pdfViewerBase.isInitialField && this.issaveImageInitial && !this.pdfViewerBase.isToolbarSignClicked) {\n imageUploadString = this.drawSavedImageSignature();\n }\n if (imageUploadString !== '' && !this.pdfViewerBase.isToolbarSignClicked) {\n this.clearUploadString = false;\n var ctx_1 = uploadCanvas.getContext('2d');\n var image_2 = new Image();\n image_2.src = imageUploadString;\n image_2.onload = function () {\n ctx_1.drawImage(image_2, 0, 0, uploadCanvas.width, uploadCanvas.height);\n };\n uploadButton.element.style.display = 'hidden';\n }\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 if (this.issaveImageSignature && !this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\n else if (this.issaveImageInitial && this.pdfViewerBase.isInitialField && !this.pdfViewerBase.isToolbarSignClicked) {\n checkBoxObj.checked = true;\n }\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 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 var textbox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n if (!this.pdfViewerBase.isInitialField && this.saveSignatureTypeString !== '' && textbox.value !== '' && !this.pdfViewerBase.isToolbarSignClicked) {\n this.renderSignatureText();\n }\n else if (this.pdfViewerBase.isInitialField && this.saveInitialTypeString !== '' && textbox.value !== '' && !this.pdfViewerBase.isToolbarSignClicked) {\n this.renderSignatureText();\n }\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 var signbutton = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button');\n if (this.saveSignatureUploadString !== \"\" && !this.pdfViewerBase.isInitialField && !this.clearUploadString && !this.pdfViewerBase.isToolbarSignClicked) {\n this.enableCreateButton(false);\n signbutton.style.visibility = 'hidden';\n this.outputString = this.saveSignatureUploadString;\n }\n if (this.saveInitialUploadString !== \"\" && this.pdfViewerBase.isInitialField && !this.clearUploadString && !this.pdfViewerBase.isToolbarSignClicked) {\n this.enableCreateButton(false);\n signbutton.style.visibility = 'hidden';\n this.outputString = this.saveInitialUploadString;\n }\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.pdfViewerBase.isToolbarSignClicked || this.signaturetype !== 'Type') {\n if (this.outputString !== \"\") {\n this.enableCreateButton(false);\n }\n else {\n this.enableCreateButton(true);\n }\n }\n else {\n if (this.textValue !== \"\") {\n this.enableCreateButton(false);\n }\n else {\n this.enableCreateButton(true);\n }\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.fontName !== \"\" && this.signfontStyle[parseInt(i.toString(), 10)].FontName === this.fontName) {\n this.fontsign[parseInt(i.toString(), 10)].style.borderColor = 'red';\n }\n else if (isNullOrUndefined(this.fontName) && 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 var context_2 = canvas.getContext('2d');\n var canvasContent = canvas.toDataURL();\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 var image_3 = new Image();\n image_3.src = canvasContent;\n image_3.onload = function () {\n context_2.drawImage(image_3, 0, 0, canvas.width, canvas.height);\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 var checkbox = document.getElementById('checkbox');\n var checkBoxElement = document.getElementById('checkbox');\n if (checkbox && checkBoxElement.nextElementSibling) {\n checkBoxElement.nextElementSibling.classList.remove('e-check');\n checkbox.checked = false;\n }\n }\n else if (this.signaturetype === 'Type') {\n isClearTypeTab = true;\n var checkbox = document.getElementById('checkbox1');\n var checkBoxElement = document.getElementById('checkbox1');\n if (checkbox && checkBoxElement.nextElementSibling) {\n checkBoxElement.nextElementSibling.classList.remove('e-check');\n checkbox.checked = false;\n this.textValue = '';\n }\n }\n else {\n isClearImageTab = true;\n this.clearUploadString = true;\n var checkbox = document.getElementById('checkbox2');\n var checkBoxElement = document.getElementById('checkbox2');\n if (checkbox && checkBoxElement.nextElementSibling) {\n checkBoxElement.nextElementSibling.classList.remove('e-check');\n checkbox.checked = false;\n }\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 if (this.pdfViewer.isSignatureEditable) {\n var signatureSettings = this.pdfViewer.handWrittenSignatureSettings;\n var annotationSettings = this.pdfViewer.annotationSettings;\n var annotationAuthor = (signatureSettings.author !== 'Guest') ? signatureSettings.author : annotationSettings.author ? annotationSettings.author : 'Guest';\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].author = annotationAuthor;\n }\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 (!isNullOrUndefined(index) && 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","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 (typeof value !== 'function' && 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 (typeof value !== 'function' && 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 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 var toastObj = new Toast(untilToastsModel);\n toastObj.appendTo(toastContainerElement);\n toastObj.show();\n return toastObj;\n }\n ToastUtility.show = show;\n})(ToastUtility || (ToastUtility = {}));\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 */\n this.contextMenuObj.open(top, left, target);\n /* eslint-enable */\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","import { AnnotationDataFormat } from '../index';\nimport { createElement, Browser, isBlazor, initializeCSPTemplate } 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 annotationData = _this.pdfViewerBase.getSanitizedString(annotationData);\n var jsonData = JSON.parse(annotationData);\n var firstAnnotation = jsonData.pdfAnnotation[Object.keys(jsonData.pdfAnnotation)[0]];\n if ((Object.keys(jsonData.pdfAnnotation).length >= 1) && (firstAnnotation.textMarkupAnnotation || firstAnnotation.measureShapeAnnotation || firstAnnotation.freeTextAnnotation || firstAnnotation.stampAnnotations || firstAnnotation.signatureInkAnnotation || (firstAnnotation.shapeAnnotation && firstAnnotation.shapeAnnotation[0].Bounds))) {\n _this.pdfViewerBase.isPDFViewerJson = true;\n _this.pdfViewerBase.importAnnotations(jsonData, AnnotationDataFormat.Json);\n }\n else {\n _this.pdfViewerBase.isPDFViewerJson = false;\n _this.pdfViewerBase.importAnnotations(importFile, AnnotationDataFormat.Json);\n }\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 */\n this.annotationMenuObj.open(event.clientY, event.clientX, event.currentTarget);\n /* eslint-enable */\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: initializeCSPTemplate(function () { return this.pdfViewer.localeObj.getConstant('Page Thumbnails'); }, this), 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: initializeCSPTemplate(function () { return this.pdfViewer.localeObj.getConstant('Bookmarks'); }, this), 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","/**\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.retryTimeout = 0;\n this.pdfViewer = pdfviewer;\n this.retryCount = pdfviewer.retryCount;\n this.retryStatusCodes = pdfviewer.retryStatusCodes;\n this.retryTimeout = 1000 * pdfviewer.retryTimeout;\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 this.httpRequest.timeout = this.retryTimeout;\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, false);\n }\n if (!isSkip) {\n _this.stateChange(_this);\n }\n };\n this.httpRequest.ontimeout = function () {\n var isSkip = false;\n // tslint: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, true);\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, isTimeout) {\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 || isTimeout) {\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 */\n this.httpRequest.open(this.type, this.url, this.mode);\n /* eslint-enable */\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)];\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 // eslint-disable-next-line\n if (!window[path]) {\n // eslint-disable-next-line\n window[path] = {};\n }\n if (data) {\n var measureElement = 'measureElement';\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'visible';\n // eslint-disable-next-line\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 // eslint-disable-next-line\n if (window[path][data]) {\n // eslint-disable-next-line\n bounds = window[path][data];\n }\n else {\n // eslint-disable-next-line\n window[path][data] = bounds = element.getBBox();\n if ((bounds.x === 0 || bounds.y === 0) && (bounds.width === 0 || bounds.height === 0)) {\n // eslint-disable-next-line\n window[path][data] = bounds = getBBox(data);\n }\n }\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n // eslint-disable-next-line\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[parseInt(i.toString(), 10)].length > 1) {\n currentValue = currentpath[parseInt(i.toString(), 10)].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[parseInt(i.toString(), 10)].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[parseInt(j.toString(), 10)].split(' ') : eachLine;\n for (i = 0; i < words.length; i++) {\n bounds1 = bBoxText(words[parseInt(i.toString(), 10)], text);\n if (bounds1 > text.width && words[parseInt(i.toString(), 10)].length > 0 && text.textWrapping !== 'NoWrap') {\n if (eachLine.length > 1) {\n words[parseInt(i.toString(), 10)] = words[parseInt(i.toString(), 10)] + '\\n';\n }\n text.content = words[parseInt(i.toString(), 10)];\n childNodes = wrapText(text, txtValue, childNodes);\n }\n else {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[parseInt(i.toString(), 10)];\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 textValue = txtValue;\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[parseInt(k.toString(), 10)].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[parseInt(k.toString(), 10)].dy = text.fontSize * 1.2;\n childNodes[parseInt(k.toString(), 10)].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[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\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 // eslint-disable-next-line\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 // eslint-disable-next-line\n window[measureElement] = divElement;\n // eslint-disable-next-line\n window[measureElement].usageCount = 1;\n document.body.appendChild(divElement);\n }\n else {\n // eslint-disable-next-line\n window[measureElement].usageCount += 1;\n }\n}\n/** @private */\nexport function measureImage(source, contentSize) {\n var measureElement = 'measureElement';\n // eslint-disable-next-line\n window[measureElement].style.visibility = 'visible';\n // eslint-disable-next-line\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 // eslint-disable-next-line\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 // eslint-disable-next-line\n window[measureElement].style.visibility = 'visible';\n // eslint-disable-next-line\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 // eslint-disable-next-line\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)];\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 var targetParentRect = void 0;\n if (event.target.offsetParent && event.target.offsetParent.offsetParent && event.target.offsetParent.offsetParent.offsetParent && event.target.offsetParent.offsetParent.offsetParent.offsetParent) {\n // eslint-disable-next-line\n targetParentRect = event.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n }\n else if (event.target.parentElement.offsetParent && event.target.parentElement.offsetParent.offsetParent) {\n // eslint-disable-next-line\n targetParentRect = event.target.parentElement.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\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 (shapeAnnotationType === 'Image' || shapeAnnotationType === 'SignatureImage') {\n this.inAction = false;\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 if (!isNullOrUndefined(drawnAnnotation) && !isNullOrUndefined(drawnAnnotation.wrapper)) {\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 }\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)], 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 // eslint-disable-next-line\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 // eslint-disable-next-line\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[parseInt(i.toString(), 10)];\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[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\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_MAT3_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_MATERIAL3SPIN = 'e-spin-material3';\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 createMaterial3Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material3', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_MATERIAL3SPIN);\n matCalculateAttributes(radius, container, 'Material3', CLS_MATERIAL3SPIN);\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 'Material3':\n createMaterial3Spinner(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 'Material3':\n defaultSize = DEFT_MAT3_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')) || !isNullOrUndefined(container.querySelector('svg.e-spin-material3'))) {\n var svg = void 0;\n if (!isNullOrUndefined(container.querySelector('svg.e-spin-material')) && !isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle'))) {\n svg = container.querySelector('svg.e-spin-material');\n }\n else if (!isNullOrUndefined(container.querySelector('svg.e-spin-material3')) && !isNullOrUndefined(container.querySelector('svg.e-spin-material3').querySelector('path.e-path-circle'))) {\n svg = container.querySelector('svg.e-spin-material3');\n }\n if (!isNullOrUndefined(svg)) {\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 - 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' || type === 'Material3') {\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 case 'Material3':\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, AccessibilityTags } 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 { 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.pageRenderCount = 2;\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.isPDFViewerJson = 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.isTaggedPdf = false;\n this.accessibilityTagsHandler = null;\n this.accessibilityTagsCollection = [];\n this.pageRequestListForAccessibilityTags = [];\n this.enableAccessibilityMultiPageRequest = true;\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) && _this.pdfViewer.formFieldCollection) {\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.magnificationModule ? _this.pdfViewer.magnification.zoomFactor : _this.pdfViewer.zoomValue < 1) {\n zoomDifference = 10;\n }\n if (_this.pdfViewer.magnificationModule ? _this.pdfViewer.magnification.zoomFactor : _this.pdfViewer.zoomValue >= 2) {\n zoomDifference = 50;\n }\n if (_this.isTouchPad && !_this.isMacSafari) {\n zoomDifference = zoomDifference / _this.zoomInterval;\n }\n // eslint-disable-next-line\n if (_this.pdfViewer.magnificationModule) {\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 }\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 var activeElement = document.activeElement;\n if (activeElement.tagName !== 'INPUT' && activeElement.tagName !== 'TEXTAREA' && !activeElement.isContentEditable) {\n _this.DeleteKeyPressed(event);\n }\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[parseInt(i.toString(), 10)];\n if (fieldId === formfield.id && (formfield.type === 'SignatureField' || formfield.type === 'InitialField')) {\n _this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', _this.pdfViewer.formFieldCollections[parseInt(i.toString(), 10)]);\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[parseInt(i.toString(), 10)];\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 if (event.target.className === 'e-pv-formfield-input' || event.target.id === _this.pdfViewer.element.id + '_viewerContainer') {\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 }\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 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 && !_this.pdfViewer.isFormDesignerToolbarVisible) {\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 if (_this.pdfViewer.toolbarModule && _this.pdfViewer.isFormDesignerToolbarVisible && _this.pdfViewer.enableAnnotationToolbar && !_this.pdfViewer.isAnnotationToolbarVisible && !isNullOrUndefined(_this.pdfViewer.toolbarModule.annotationToolbarModule)) {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(_this.pdfViewer.toolbarModule.annotationItem);\n }\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 */\n _this.contextMenuModule.open(_this.touchClientY, _this.touchClientX, _this.viewerContainer);\n /* eslint-enable */\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.accessibilityTags = new AccessibilityTags(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 /**\n * @private\n * @param {any} data - data.\n * @returns {boolean}\n */\n PdfViewerBase.prototype.checkRedirection = function (data) {\n var redirect = false;\n if (data && typeof (data) === 'object' && (data.redirectUrl || data.redirectUri || data.redirectUrl === \"\" || data.redirectUri === \"\")) {\n if (data.redirectUrl === \"\" || data.redirectUri === \"\") {\n redirect = true;\n }\n else {\n data.redirectUrl ? window.location.href = data.redirectUrl : window.location.href = data.redirectUri;\n }\n }\n else if (data && typeof (data) === 'string' && (data.includes('redirectUrl') || data.includes('redirectUri'))) {\n if (JSON.parse(data).redirectUrl === \"\" || JSON.parse(data).redirectUri === \"\") {\n redirect = true;\n }\n else {\n data.includes('redirectUrl') ? window.location.href = JSON.parse(data).redirectUrl : window.location.href = JSON.parse(data).redirectUri;\n }\n }\n return redirect;\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 var redirect = proxy.checkRedirection(data);\n if (redirect) {\n proxy.showLoadingIndicator(false);\n }\n else {\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 if (!isNullOrUndefined(data['isTaggedPdf']) && data['isTaggedPdf']) {\n proxy.isTaggedPdf = true;\n }\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 };\n // eslint-disable-next-line\n this.loadRequestHandler.onFailure = function (result) {\n var statusString = result.status.toString().split('')[0];\n if (statusString === '4') {\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 var renderLimit = this.pdfViewer.initialRenderPages <= this.pageCount ? (this.pdfViewer.initialRenderPages > this.pageRenderCount) ? this.pdfViewer.initialRenderPages : 2 : this.pageCount;\n for (var i = 1; i < renderLimit; i++) {\n this.createRequestForRender(i);\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 proxy.isTaggedPdf = false;\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.accessibilityTagsCollection) {\n proxy.accessibilityTagsCollection = [];\n }\n if (proxy.pageRequestListForAccessibilityTags) {\n proxy.pageRequestListForAccessibilityTags = [];\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 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 = (!isNullOrUndefined(this.pdfViewer.annotation) && !isNullOrUndefined(this.pdfViewer.annotation.freeTextAnnotationModule) && !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 if (this.tapCount > 2) {\n this.tapCount = 2;\n }\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 if (this.tapCount > 2) {\n this.tapCount = 2;\n }\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 = void 0;\n if (this.pdfViewer.initialRenderPages > 10) {\n if (this.pdfViewer.initialRenderPages > 100) {\n limit = pageLimit;\n }\n else {\n limit = this.pdfViewer.initialRenderPages <= this.pageCount ? this.pdfViewer.initialRenderPages : this.pageCount;\n }\n }\n else {\n limit = this.pageCount < 10 ? this.pageCount : 10;\n }\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 var initialLoadedPages = this.pdfViewer.initialRenderPages > this.pageRenderCount ? (this.pdfViewer.initialRenderPages <= this.pageCount) ? (this.pdfViewer.initialRenderPages - 1) : this.pageCount : -1;\n if (pageCanvas && j > initialLoadedPages) {\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 && j > initialLoadedPages) {\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_1 = proxy.pageLimit; i_1 < proxy.pageCount; i_1++) {\n if (typeof (pageValues.pageSizes[parseInt(i_1.toString(), 10)]) !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i_1.toString(), 10)].split(',');\n if (proxy.pageSize[i_1 - 1] !== null && i_1 !== 0) {\n var previousPageHeight = proxy.pageSize[i_1 - 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 - 1] !== null && i_1 !== 0) {\n var previousPageHeight = proxy.pageSize[i_1 - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageValues.pageSizes[parseInt(i_1.toString(), 10)].Width), height: parseFloat(pageValues.pageSizes[parseInt(i_1.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 if (this.pdfViewer.initialRenderPages > 100) {\n var limit = this.pdfViewer.initialRenderPages <= proxy.pageCount ? this.pdfViewer.initialRenderPages : proxy.pageCount;\n for (var i = 100; i < limit; i++) {\n proxy.renderPageContainer(i, proxy.getPageWidth(i), proxy.getPageHeight(i), proxy.getPageTop(i));\n proxy.createRequestForRender(i);\n }\n }\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 ? this.pdfViewer.magnificationModule.isFormFieldPageZoomed : false)) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.accessibilityTagsModule && this.pdfViewer.enableAccessibilityTags && this.isTaggedPdf) {\n if (this.accessibilityTagsCollection[pageIndex.toString()]) {\n this.renderAccessibilityTags(pageIndex, this.accessibilityTagsCollection[pageIndex.toString()]);\n }\n else if (this.pageRequestListForAccessibilityTags.indexOf(pageIndex) === -1) {\n this.createRequestForAccessibilityTags(pageIndex);\n }\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 ? this.pdfViewer.magnificationModule.isFormFieldPageZoomed : true)) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.isFormFieldPageZoomed = false;\n }\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.signatureAnnotation = pageAnnotations.signatureAnnotation;\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 this.drawPageAnnotations(this.importedAnnotation[parseInt(pageIndex.toString(), 10)], 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.isImportAction)) {\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.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 }\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 (data && data.signatureAnnotation && this.signatureModule) {\n this.signatureModule.renderExistingSignature(data.signatureAnnotation, pageIndex, false);\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, annotationsCollection, 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.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 var annotData = [];\n var collection = annotationsCollection.annotationOrder;\n for (var l = 0; l < collection.length; l++) {\n var type = collection[parseInt(l.toString(), 10)].AnnotType ? collection[parseInt(l.toString(), 10)].AnnotType : collection[parseInt(l.toString(), 10)].AnnotationType;\n annotData.push(collection[parseInt(l.toString(), 10)]);\n switch (type) {\n case \"textMarkup\":\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(annotData, pageIndex, null, true);\n break;\n case \"shape_measure\":\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, annotData, null, null, null, true);\n break;\n case \"shape\":\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, annotData, null, null, null, null, true);\n break;\n case \"sticky\":\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(annotData, pageIndex);\n break;\n case \"stamp\":\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(annotData, pageIndex, null, null, true);\n break;\n case \"Ink\":\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(annotData, pageIndex, false, true);\n break;\n case \"Text Box\":\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(annotData, pageIndex, undefined, true);\n break;\n default:\n break;\n }\n annotData = [];\n }\n if (data && data.signatureAnnotation) {\n this.signatureModule.renderExistingSignature(data.signatureAnnotation, 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][parseInt(pageIndex.toString(), 10)].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.renderAccessibilityTags = function (pageIndex, taggedTextResponse) {\n this.accessibilityTags.renderAccessibilityTags(pageIndex, taggedTextResponse);\n };\n PdfViewerBase.prototype.returnPageListForAccessibilityTags = function (pageIndex) {\n var pageList = [];\n if (!this.enableAccessibilityMultiPageRequest) {\n return [pageIndex];\n }\n var minPage = pageIndex - 2 > 0 ? pageIndex - 2 : 0;\n var maxPage = pageIndex + 4 < this.pageCount - 1 ? pageIndex + 4 : this.pageCount - 1;\n for (var i = minPage; i <= maxPage; i++) {\n if (this.accessibilityTagsCollection[parseInt(i.toString(), 10)] === undefined) {\n pageList.push(parseInt(i.toString(), 10));\n }\n else {\n maxPage = maxPage + 1 < this.pageCount - 1 ? maxPage + 1 : this.pageCount - 1;\n }\n }\n this.pageRequestListForAccessibilityTags = pageList;\n return pageList;\n };\n PdfViewerBase.prototype.createRequestForAccessibilityTags = function (pageIndex) {\n var jsonObject;\n var proxy = this;\n jsonObject = { action: 'RenderTaggedContent', elementId: this.pdfViewer.element.id, hashId: this.hashId, uniqueId: this.documentId, pageList: JSON.stringify(this.returnPageListForAccessibilityTags(pageIndex)) };\n if (this.jsonDocumentId) {\n jsonObject.document = this.jsonDocumentId;\n }\n var url = this.pdfViewer.serviceUrl + '/' + \"RenderTaggedContent\";\n this.accessibilityTagsHandler = new AjaxHandler(this.pdfViewer);\n this.accessibilityTagsHandler.url = url;\n this.accessibilityTagsHandler.mode = true;\n this.accessibilityTagsHandler.responseType = 'text';\n this.accessibilityTagsHandler.send(jsonObject);\n this.accessibilityTagsHandler.onSuccess = function (result) {\n var data = JSON.parse(result.data);\n var pageData;\n for (var i = 0; i < data.length; i++) {\n pageData = data[parseInt(i.toString(), 10)];\n proxy.accessibilityTagsCollection[pageData[0]] = pageData[1];\n }\n proxy.pageRequestListForAccessibilityTags = [];\n if (proxy.accessibilityTagsCollection[parseInt(pageIndex.toString(), 10)]) {\n proxy.renderAccessibilityTags(pageIndex, proxy.accessibilityTagsCollection[parseInt(pageIndex.toString(), 10)]);\n }\n if (proxy.accessibilityTagsCollection[pageIndex - 1 <= 0 ? parseInt((pageIndex - 1).toString(), 10) : 0]) {\n proxy.renderAccessibilityTags(pageIndex - 1 <= 0 ? pageIndex - 1 : 0, proxy.accessibilityTagsCollection[pageIndex - 1 <= 0 ? parseInt((pageIndex - 1).toString(), 10) : 0]);\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.isMixedSizeDocument && (this.highestWidth * this.getZoomFactor()) > this.viewerContainer.clientWidth) ? (this.highestWidth * this.getZoomFactor()) + 'px' : 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 this.pageContainer.style.width = ((this.highestWidth * this.getZoomFactor()) > this.viewerContainer.clientWidth) ? (this.highestWidth * this.getZoomFactor()) + 'px' : this.viewerContainer.clientWidth + 'px';\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 if (this.isDocumentLoaded && this.pdfViewer.initialRenderPages > this.pageRenderCount && (this.getPageHeight(this.pdfViewer.initialRenderPages - 1) + this.getPageTop(this.pdfViewer.initialRenderPages - 1)) > this.viewerContainer.clientHeight) {\n var renderLimit = this.pdfViewer.initialRenderPages <= this.pageCount ? this.pdfViewer.initialRenderPages : this.pageCount;\n for (var i = 1; i < renderLimit; i++) {\n this.createRequestForRender(i);\n }\n }\n else {\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 };\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 */\n window.open(blobUrl, '_parent');\n /* eslint-enable */\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 */\n window.open(blobUrl, '_parent');\n /* eslint-enable */\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 var canExport = false;\n if (formFieldDataFormat === 'Json' || formFieldDataFormat === 'Fdf' || formFieldDataFormat === 'Xfdf' || formFieldDataFormat === \"Xml\") {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n canExport = proxy.pdfViewer.fireFormExportStarted(jsonObject);\n }\n if (canExport) {\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 var redirect = proxy.checkRedirection(data);\n if (!redirect) {\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 };\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 });\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['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 jsonObject = Object.assign(jsonObject, this.constructJsonDownload());\n // eslint-disable-next-line\t\n jsonObject.action = 'ImportFormFields';\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 var redirect = proxy.checkRedirection(data);\n if (!redirect) {\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 };\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 var redirect = proxy.checkRedirection(data);\n if (!redirect) {\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 };\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 = Math.ceil(tileCount);\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 var redirect = proxy.checkRedirection(data);\n if (redirect) {\n proxy.showLoadingIndicator(false);\n }\n else {\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 };\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 var redirect = proxy.checkRedirection(data);\n if (!redirect) {\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][parseInt(pageIndex.toString(), 10)].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 };\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[parseInt(j.toString(), 10)].Y >= markedBounds.Y - buffer && characterBounds[parseInt(j.toString(), 10)].X >= markedBounds.X - buffer && characterBounds[parseInt(j.toString(), 10)].Y <= markedBounds.Y + markedBounds.Height + buffer && characterBounds[parseInt(j.toString(), 10)].X <= markedBounds.X + markedBounds.Width + buffer) {\n textMarkupContent += pageCharText[parseInt(j.toString(), 10)];\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][parseInt(pageIndex.toString(), 10)];\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') && target.parentElement.classList.length > 0 && !target.parentElement.classList.contains(\"e-editable-elements\")) {\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 (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 (annotationDataFormat) {\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).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 if (this.pdfViewer.formFieldsModule) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n this.isFormStorageExceed = true;\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n }\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 var canExport = false;\n jsonObject = _this.constructJsonDownload();\n jsonObject.annotationDataFormat = annotationDataFormat;\n // eslint-disable-next-line\n jsonObject['action'] = 'ExportAnnotations';\n canExport = proxy.pdfViewer.fireExportStart(jsonObject);\n if (canExport) {\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 var redirect = proxy.checkRedirection(data);\n if (!redirect) {\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 annotationJson = proxy.getSanitizedString(annotationJson);\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 };\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 });\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[parseInt(j.toString(), 10)].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[parseInt(j.toString(), 10)].ModifiedDate);\n if (data[parseInt(j.toString(), 10)].Comments) {\n for (var i = 0; i < data[parseInt(j.toString(), 10)].Comments.length; i++) {\n data[parseInt(j.toString(), 10)].Comments[parseInt(i.toString(), 10)].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[parseInt(j.toString(), 10)].Comments[parseInt(i.toString(), 10)].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 (!isXfdf && proxy.isPDFViewerJson) {\n this.isJsonImported = true;\n }\n else {\n this.isJsonImported = false;\n }\n if (typeof importData === 'object') {\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[parseInt(i.toString(), 10)]];\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 if (proxy.isPDFViewerJson) {\n jsonObject = { fileName: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId, annotationDataFormat: annotationDataFormat };\n }\n else {\n jsonObject = { importedData: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId, annotationDataFormat: annotationDataFormat };\n }\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, annotationDataFormat: annotationDataFormat };\n }\n jsonObject = Object.assign(jsonObject, this.constructJsonDownload());\n jsonObject[\"action\"] = 'ImportAnnotations';\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n if (jsonObject.documentId) {\n delete jsonObject['documentId'];\n }\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 var redirect = proxy.checkRedirection(data);\n if (!redirect) {\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 var newArray_1;\n var newData_1;\n newArray_1 = Object.keys(data.pdfAnnotation);\n for (var i = 0; i < Object.keys(data.pdfAnnotation).length; i++) {\n newData_1 = data.pdfAnnotation[newArray_1[parseInt(i.toString(), 10)]];\n proxy.updateModifiedDateToLocalDate(newData_1, \"annotationOrder\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"freeTextAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"measureShapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"shapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"signatureAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"signatureInkAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"stampAnnotations\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"stickyNotesAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData_1, \"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 };\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 }\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 }\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 }\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 }\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 }\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 }\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 }\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 }\n if (annotation[parseInt(i.toString(), 10)].annotationOrder) {\n var annotationOrderCollection = annotation[parseInt(i.toString(), 10)].annotationOrder;\n var annotationData = [];\n for (var index = 0; index < annotationOrderCollection.length; index++) {\n var annotationName = annotationOrderCollection[parseInt(index.toString(), 10)].AnnotType ? annotationOrderCollection[parseInt(index.toString(), 10)].AnnotType : annotationOrderCollection[parseInt(index.toString(), 10)].AnnotationType;\n annotationData.push(annotationOrderCollection[parseInt(index.toString(), 10)]);\n var annotObject = void 0;\n switch (annotationName) {\n case 'textMarkup':\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateTextMarkupAnnotationCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n case 'shape':\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.shapeAnnotationModule.updateShapeAnnotationCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n case 'shape_measure':\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.measureAnnotationModule.updateMeasureAnnotationCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n case 'stamp':\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stampAnnotationModule.updateStampAnnotationCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n case 'Text Box':\n case 'freeText':\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.freeTextAnnotationModule.updateFreeTextAnnotationCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n case 'sticky':\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateStickyNotesAnnotationCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n case 'signature':\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n for (var j = 0; j < annotationData.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.signatureModule.updateSignatureCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i), true);\n }\n }\n break;\n case 'Ink':\n case 'ink':\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotationData, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].annotationOrder[parseInt(index.toString(), 10)].length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkCollections(annotationOrderCollection[parseInt(index.toString(), 10)], i));\n }\n }\n break;\n }\n annotationData = [];\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 // When utilising the addAnnotation API, the annotationOrder object is not available; thus, the following code is used to put the annotation object into the annotationOrder.\n if (annotation && !(annotation.annotationOrder)) {\n var annotationTypes = ['freeTextAnnotation', 'measureShapeAnnotation', 'shapeAnnotation', 'signatureAnnotation', 'signatureInkAnnotation', 'stampAnnotations', 'stickyNotesAnnotation', 'textMarkupAnnotation'];\n // eslint-disable-next-line\n var foundAnnotationType = annotationTypes.find(function (type) { return annotation[type]; });\n if (foundAnnotationType) {\n // eslint-disable-next-line\n annotation.annotationOrder = annotation[foundAnnotationType];\n }\n }\n if (annotation) {\n var annotationOrderCollection = annotation.annotationOrder;\n var annotationData = [];\n var isRefreshRequired = true;\n for (var index = 0; index < annotationOrderCollection.length; index++) {\n var annotationName = annotationOrderCollection[parseInt(index.toString(), 10)].AnnotType ? annotationOrderCollection[parseInt(index.toString(), 10)].AnnotType : annotationOrderCollection[parseInt(index.toString(), 10)].AnnotationType;\n annotationData.push(annotationOrderCollection[parseInt(index.toString(), 10)]);\n var storeObject = void 0;\n var annotObject = void 0;\n switch (annotationName) {\n case 'textMarkup':\n isRefreshRequired = false;\n 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 annotObject = JSON.parse(storeObject);\n if (annotObject) {\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n }\n annotation.textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation.textMarkupAnnotation, pageIndex);\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, null, annotationData, null, true);\n break;\n case 'shape':\n isRefreshRequired = false;\n 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 annotObject = JSON.parse(storeObject);\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n annotation.shapeAnnotation = this.checkAnnotationCommentsCollections(annotation.shapeAnnotation, pageIndex);\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, annotationData, null, null, null, true);\n break;\n case 'shape_measure':\n isRefreshRequired = false;\n 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 annotObject = JSON.parse(storeObject);\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n annotation.measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation.measureShapeAnnotation, pageIndex);\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, annotationData, null, null, true);\n break;\n case 'stamp':\n 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 annotObject = JSON.parse(storeObject);\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n annotation.stampAnnotations = this.checkAnnotationCommentsCollections(annotation.stampAnnotations, pageIndex);\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(annotationData, pageIndex, null, true);\n break;\n case 'Text Box':\n case 'freeText':\n 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 annotObject = JSON.parse(storeObject);\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n annotation.freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation.freeTextAnnotation, pageIndex);\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(annotationData, pageIndex, true);\n break;\n case 'sticky':\n 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 annotObject = JSON.parse(storeObject);\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n annotation.stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation.stickyNotesAnnotation, pageIndex);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(annotationData, pageIndex);\n break;\n case 'signature':\n storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n annotObject = JSON.parse(storeObject);\n if (annotObject) {\n annotation.signatureAnnotation = this.checkSignatureCollections(annotObject, annotationData, pageIndex);\n }\n this.signatureModule.renderExistingSignature(annotationData, pageIndex, true);\n break;\n case 'Ink':\n case 'ink':\n 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 annotObject = JSON.parse(storeObject);\n annotationData = this.checkAnnotationCollections(annotObject, annotationData, pageIndex);\n }\n annotation.signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation.signatureInkAnnotation, pageIndex);\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(annotationData, pageIndex, true);\n break;\n default:\n break;\n }\n annotationData = [];\n }\n if (isRefreshRequired) {\n var canvas = this.getElement('_annotationCanvas_' + pageIndex);\n this.pdfViewer.drawing.refreshCanvasDiagramLayer(canvas, pageIndex);\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 /**\n * @private\n */\n PdfViewerBase.prototype.isSignaturePathData = function (data) {\n // eslint-disable-next-line\n var pathRegex = /^([Mm]\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?(\\s+[Ll]\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?)*\\s*)+$/;\n return pathRegex.test(data);\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.isSignatureImageData = function (data) {\n // eslint-disable-next-line\n var base64ImageRegex = /^data:image\\/([a-z]+);base64,/;\n return base64ImageRegex.test(data);\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getSanitizedString = function (annotationData) {\n var sanitizedString = annotationData.replace(/[\\x00-\\x1F\\x7F]/g, function (c) { return \"\\\\u\" + c.charCodeAt(0).toString(16).padStart(4, '0'); });\n return sanitizedString;\n };\n return PdfViewerBase;\n}());\nexport { PdfViewerBase };\n","import { Browser, isBlazor, isNullOrUndefined, initializeCSPTemplate } 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' || currentData.Name === 'CheckBox') {\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: initializeCSPTemplate(function () { return 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 var collectionData = this.pdfViewer.formFieldCollections;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n // eslint-disable-next-line\n var currentField;\n if (this.currentTarget) {\n if (this.pdfViewer.formDesignerModule) {\n for (var i = 0; i < collectionData.length; i++) {\n currentField = collectionData[i];\n if (this.currentTarget.id === currentField.id) {\n this.currentTarget = document.getElementById(currentField.id);\n this.getSignatureIndex(i, collectionData.length, isNextSignField);\n break;\n }\n }\n }\n else {\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 }\n else {\n if (nextSign) {\n if (this.pdfViewer.formDesignerModule) {\n currentField = signatureFields[0];\n if (currentField.id) {\n this.currentTarget = document.getElementById(currentField.id);\n this.getSignatureIndex(0, signatureFields.length, isNextSignField, true);\n }\n }\n else {\n currentField = 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 };\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 var collectionData = this.pdfViewer.formFieldCollections;\n // eslint-disable-next-line\n var currentField;\n if (curSignIndex < collectionData.length) {\n for (var i = 0; i < collectionData.length; i++) {\n if (this.pdfViewer.formDesignerModule) {\n var curSignIndexId = collectionData[curSignIndex].id;\n var signatureFieldData = collectionData[i];\n if (curSignIndexId === signatureFieldData.id) {\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 + 1);\n this.renderFormFields(pageIndex, false);\n }\n this.currentTarget = document.getElementById(signatureFieldData.id);\n currentField = signatureFieldData;\n break;\n }\n }\n else {\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_1 = signatureFieldData.PageIndex >= 0 ? signatureFieldData.PageIndex : signatureFieldData.pageNumber;\n var isRender_1 = this.pdfViewer.annotationModule.findRenderPageList(pageIndex_1);\n if (!isRender_1) {\n this.pdfViewer.navigation.goToPage(pageIndex_1 + 1);\n this.renderFormFields(pageIndex_1, false);\n }\n this.currentTarget = document.getElementById(signatureFieldData.uniqueID);\n currentField = signatureFieldData;\n break;\n }\n }\n }\n if (this.currentTarget === null) {\n var pageIndex_2 = currentField.PageIndex >= 0 ? currentField.PageIndex : currentField.pageNumber;\n this.pdfViewer.navigation.goToPage(pageIndex_2);\n this.currentTarget = document.getElementById(currentField.uniqueID);\n }\n if (this.currentTarget) {\n if (this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature' && !(this.pdfViewer.formDesignerModule)) {\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' || this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\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' || currentData.Name === 'InitialField') {\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 if (this.pdfViewer.formDesignerModule) {\n var targetName = this.currentTarget && this.currentTarget.offsetParent ? this.currentTarget.offsetParent.name : this.currentTarget ? this.currentTarget.name : target.name ? target.name : target.offsetParent.name;\n }\n else {\n var targetName = this.currentTarget ? this.currentTarget.name : target.name ? target.name : target.offsetParent.name;\n }\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 zoomvalue = this.pdfViewerBase.getZoomFactor();\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.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 if (!(inputField.className === \"e-pdfviewer-signatureformfields e-pv-signature-focus\")) {\n inputField.remove();\n }\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.ActualFieldName === null && count && (currentData.Name === 'ink' || currentData.Name === 'SignatureField' || currentData.Name === 'SignatureImage' || currentData.Name === 'SignatureText') && (this.pdfViewer.formDesigner ? ((currentData.FieldName.split('_')[0]) === (signData.ActualFieldName) || (currentData.FieldName.split('_')[0]) === (signData.FieldName)) : ((currentData.FieldName.split('_')[0] === (signData.FieldName)) && !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 signData.Bounds = currentData.LineBounds;\n }\n if (currentData.ActualFieldName === null && count && (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 ((this.pdfViewerBase.isSignatureImageData(data.Value))) {\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 (this.pdfViewerBase.isSignaturePathData(data.Value)) {\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 else {\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 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 /**\n * @private\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' || currentData.Name === 'InitialField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.uniqueID];\n if (annotation.propName !== 'annotations') {\n annotation = this.pdfViewer.nameTable[currentData.uniqueID + '_content'];\n }\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.annotation.deleteAnnotationById(annotation.id);\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 (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n else {\n return baseTemplateComplier(template);\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 if (actualObject.shapeAnnotationType === 'Radius' && actualObject.wrapper.children[1]) {\n actualObject.wrapper.children[1].style.strokeColor = node.strokeColor;\n }\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 if (actualObject.shapeAnnotationType === 'Radius' && actualObject.wrapper.children[1]) {\n actualObject.wrapper.children[1].style.strokeWidth = 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 if (actualObject && actualObject.shapeAnnotationType === 'FreeText' && this.pdfViewer.annotationModule.stickyNotesAnnotationModule.textFromCommentPanel) {\n actualObject.wrapper.width = undefined;\n actualObject.wrapper.height = undefined;\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.textFromCommentPanel = false;\n }\n else {\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n }\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 * enableTileRendering: false,\n * x: 0,\n * y: 0\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.contextMenuSettings = {\n * contextMenuAction: 'RightClick',\n * contextMenuItems: [\n * ContextMenuItem.Comment,\n * ContextMenuItem.Copy,\n * ContextMenuItem.Cut,\n * ContextMenuItem.Delete,\n * ContextMenuItem.Highlight,\n * ContextMenuItem.Paste,\n * ContextMenuItem.Properties,\n * ContextMenuItem.ScaleRatio,\n * ContextMenuItem.Strikethrough,\n * ContextMenuItem.Underline\n * ]\n * };\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 Object.defineProperty(PdfViewer.prototype, \"accessibilityTags\", {\n /**\n * Gets the Accessibility Tags object of the pdf viewer.\n *\n * @asptype AccessibilityTags\n * @blazorType AccessibilityTags\n * @returns { AccessibilityTags }\n */\n get: function () {\n return this.accessibilityTagsModule;\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 (!Browser.isDevice || this.enableDesktopMode) {\n if (this.toolbarModule && this.formDesignerModule && !oldProp.isFormDesignerToolbarVisible && newProp.isFormDesignerToolbarVisible) {\n if (this.toolbarModule.annotationToolbarModule && this.isAnnotationToolbarVisible) {\n this.isAnnotationToolbarVisible = false;\n this.toolbarModule.annotationToolbarModule.showAnnotationToolbar();\n }\n this.toolbarModule.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n else {\n if (!isNullOrUndefined(this.toolbarModule) && !isNullOrUndefined(this.formDesignerModule) && this.toolbarModule.formDesignerToolbarModule && !this.isFormDesignerToolbarVisible) {\n this.isFormDesignerToolbarVisible = false;\n this.formDesignerModule.setMode('edit');\n this.toolbarModule.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n }\n }\n break;\n case 'isAnnotationToolbarVisible':\n if (!Browser.isDevice || this.enableDesktopMode) {\n if (this.toolbarModule && this.annotationModule && !oldProp.isAnnotationToolbarVisible && newProp.isAnnotationToolbarVisible) {\n if (this.toolbarModule.formDesignerToolbarModule && this.isFormDesignerToolbarVisible) {\n this.isFormDesignerToolbarVisible = false;\n this.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar();\n }\n this.toolbarModule.annotationToolbarModule.resetToolbar();\n }\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 modules.push({\n member: 'AccessibilityTags', args: [this, this.viewerBase]\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 (this.viewerBase.isSignaturePathData(fieldValue.value)) {\n fieldValue.signatureType = 'Path';\n }\n else if (this.viewerBase.isSignatureImageData(fieldValue.value)) {\n fieldValue.signatureType = 'Image';\n }\n else {\n fieldValue.signatureType = '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 var _loop_1 = function () {\n var currentData = FormFieldsData[m];\n var fieldName;\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 //map the signature field and its data object to find the signature field name.\n var fieldData = FormFieldsData.filter(function (item) { return item.FieldName === currentData.FieldName.split('_')[0]; });\n if (!isNullOrUndefined(fieldData) && !isNullOrUndefined(fieldData[0])) {\n if (fieldData[0].Name === \"SignatureField\" || fieldData[0].Name === \"InitialField\") {\n fieldName = currentData.FieldName.split('_')[0];\n currentData.LineBounds = FormFieldsData.filter(function (item) { return item.FieldName === fieldName; })[0].LineBounds;\n }\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_1.updateSignatureValue(currentData, fieldValue);\n }\n }\n this_1.formFieldsModule.updateFormFieldsCollection(currentData);\n }\n };\n var this_1 = this;\n for (var m = 0; m < FormFieldsData.length; m++) {\n _loop_1();\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 = this.viewerBase.isSignatureImageData(fieldValue.value) ? 'Image' : (this.viewerBase.isSignaturePathData(fieldValue.value) ? '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 if (annotationDataFormat == 'Json') {\n if (importData.includes('pdfAnnotation')) {\n this.importAnnotationsAsJson(importData);\n }\n else if (importData.split('.')[1] === 'json') {\n this.viewerBase.isPDFViewerJson = true;\n this.viewerBase.importAnnotations(importData, annotationDataFormat, isXfdfFile);\n }\n else {\n var newImportData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n importData = decodeURIComponent(escape(atob(newImportData)));\n this.importAnnotationsAsJson(importData);\n }\n }\n else {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, isXfdfFile);\n }\n }\n }\n else {\n if (importData.split('.')[1] === 'json') {\n if (importData.includes('pdfAnnotation')) {\n this.importAnnotationsAsJson(importData);\n }\n else {\n var newImportData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n importData = decodeURIComponent(escape(atob(newImportData)));\n this.importAnnotationsAsJson(importData);\n }\n }\n else {\n this.viewerBase.importAnnotations(importData, AnnotationDataFormat.Xfdf, isXfdfFile);\n }\n }\n }\n else {\n var imporedAnnotation = importData.pdfAnnotation;\n if (typeof (importData) === 'object' && !isNullOrUndefined(imporedAnnotation) && !isNullOrUndefined(Object.keys(imporedAnnotation)) && !isNullOrUndefined(Object.keys(imporedAnnotation)[0]) && Object.keys(imporedAnnotation[Object.keys(imporedAnnotation)[0]]).length > 1) {\n this.viewerBase.importAnnotations(importData);\n }\n else {\n importData = JSON.stringify(importData);\n this.viewerBase.isPDFViewerJson = false;\n this.viewerBase.importAnnotations(btoa(importData), AnnotationDataFormat.Json);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.importAnnotationsAsJson = function (importData) {\n var jsonData = JSON.parse(importData);\n var firstAnnotation = jsonData.pdfAnnotation[Object.keys(jsonData.pdfAnnotation)[0]];\n if ((Object.keys(jsonData.pdfAnnotation).length >= 1) && (firstAnnotation.textMarkupAnnotation || firstAnnotation.measureShapeAnnotation || firstAnnotation.freeTextAnnotation || firstAnnotation.stampAnnotations || firstAnnotation.signatureInkAnnotation || (firstAnnotation.shapeAnnotation && firstAnnotation.shapeAnnotation[0].Bounds))) {\n this.viewerBase.isPDFViewerJson = true;\n this.viewerBase.importAnnotations(jsonData, AnnotationDataFormat.Json);\n }\n else {\n this.viewerBase.isPDFViewerJson = false;\n this.viewerBase.importAnnotations(btoa(importData), AnnotationDataFormat.Json);\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 *@param {AnnotationDataFormat} annotationDataFormat - Export the annotation based on the format.\n \n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsObject = function (annotationDataFormat) {\n var _this = this;\n if (annotationDataFormat === void 0) { annotationDataFormat = AnnotationDataFormat.Json; }\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportAnnotationsAsObject(annotationDataFormat).then(function (value) {\n resolve(value);\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 (formFieldDataFormat === void 0) { formFieldDataFormat = FormFieldDataFormat.Json; }\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, cancel: false };\n this.trigger('exportStart', eventArgs);\n if (eventArgs.cancel) {\n return false;\n }\n else {\n return true;\n }\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, cancel: false };\n this.trigger('exportStart', eventArgs);\n if (eventArgs.cancel) {\n return false;\n }\n else {\n return true;\n }\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(0)\n ], PdfViewer.prototype, \"retryTimeout\", void 0);\n __decorate([\n Property(2)\n ], PdfViewer.prototype, \"initialRenderPages\", 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(true)\n ], PdfViewer.prototype, \"enableAccessibilityTags\", 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})();\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.statelessTemplateProps = null;\n _this.templateProps = null;\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","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 (typeof this.template !== 'function' && 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","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined, closest, initializeCSPTemplate } 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 if (!this.pdfViewer.enableRtl) {\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n }\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 if (!this.pdfViewer.enableRtl) {\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n }\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 if (!this.pdfViewer.enableRtl) {\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n }\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 if (!this.pdfViewer.enableRtl) {\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n }\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: initializeCSPTemplate(function (data) { return \"\" + data.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: initializeCSPTemplate(function (data) { return \"\" + data.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.updateToolbarItems();\n // eslint-disable-next-line max-len\n if ((this.pdfViewer.isAnnotationToolbarOpen || this.pdfViewer.isAnnotationToolbarVisible) && this.pdfViewer.enableAnnotationToolbar) {\n this.adjustViewer(false);\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.primaryToolbar.selectItem(this.primaryToolbar.annotationItem);\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n }\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 if (this.pdfViewer.isFormDesignerToolbarVisible) {\n this.pdfViewer.designerMode = true;\n this.pdfViewer.formDesignerModule.setMode(\"designer\");\n this.adjustViewer(false);\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n if (!this.pdfViewer.isAnnotationToolbarVisible) {\n this.adjustViewer(true);\n }\n this.primaryToolbar.deSelectItem(this.primaryToolbar.formDesignerItem);\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, initializeCSPTemplate } 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 if (!isNullOrUndefined(this.undoItem) && !isNullOrUndefined(this.undoItem.parentElement)) {\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.actionCollection, this.undoItem.parentElement);\n }\n if (!isNullOrUndefined(this.redoItem) && !isNullOrUndefined(this.redoItem.parentElement)) {\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.redoCollection, this.redoItem.parentElement);\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 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 var proxy = this;\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: proxy.pdfViewer.localeObj.getConstant('Fit Page'), id: '9' }, { percent: proxy.pdfViewer.localeObj.getConstant('Fit Width'), id: '10' }, { percent: proxy.pdfViewer.localeObj.getConstant('Automatic'), id: '11' }\n ];\n // eslint-disable-next-line max-len\n if (!proxy.pdfViewer.enableRtl) {\n proxy.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: proxy.openZoomDropdown.bind(proxy), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.percent !== proxy.zoomDropDown.element.value) {\n proxy.zoomDropDownChange(proxy.zoomDropDown.element.value);\n args.cancel = true;\n }\n }\n });\n }\n else {\n proxy.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: proxy.openZoomDropdown.bind(proxy), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.percent !== proxy.zoomDropDown.element.value) {\n proxy.zoomDropDownChange(proxy.zoomDropDown.element.value);\n args.cancel = true;\n }\n }\n });\n }\n proxy.zoomDropDown.appendTo(proxy.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: initializeCSPTemplate(function () { return 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 var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (!isNullOrUndefined(commentPanel) && !isNullOrUndefined(this.pdfViewerBase.navigationPane)) {\n if (commentPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n }\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 if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.resizeCanvas(pageNumber);\n }\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","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 { merge, formatUnit, isNullOrUndefined, append, detach, extend } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, prepend, closest, remove } from '@syncfusion/ej2-base';\nimport { Component, EventHandler, Property, Complex, Event } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\nimport { compile, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Animation, rippleEffect, Touch } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\nimport { ListBase, getFieldValues } from '../common/list-base';\n// Effect Configuration Effect[] = [fromViewBackward,fromViewForward,toViewBackward,toviewForward];\nvar effectsConfig = {\n 'None': [],\n 'SlideLeft': ['SlideRightOut', 'SlideLeftOut', 'SlideLeftIn', 'SlideRightIn'],\n 'SlideDown': ['SlideTopOut', 'SlideBottomOut', 'SlideBottomIn', 'SlideTopIn'],\n 'Zoom': ['FadeOut', 'FadeZoomOut', 'FadeZoomIn', 'FadeIn'],\n 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn']\n};\nvar effectsRTLConfig = {\n 'None': [],\n 'SlideLeft': ['SlideLeftOut', 'SlideRightOut', 'SlideRightIn', 'SlideLeftIn'],\n 'SlideDown': ['SlideBottomOut', 'SlideTopOut', 'SlideTopIn', 'SlideBottomIn'],\n 'Zoom': ['FadeZoomOut', 'FadeOut', 'FadeIn', 'FadeZoomIn'],\n 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn']\n};\n// don't use space in classnames.\nexport var classNames = {\n root: 'e-listview',\n hover: 'e-hover',\n selected: 'e-active',\n focused: 'e-focused',\n parentItem: 'e-list-parent',\n listItem: 'e-list-item',\n listIcon: 'e-list-icon',\n textContent: 'e-text-content',\n listItemText: 'e-list-text',\n groupListItem: 'e-list-group-item',\n hasChild: 'e-has-child',\n view: 'e-view',\n header: 'e-list-header',\n headerText: 'e-headertext',\n headerTemplateText: 'e-headertemplate-text',\n text: 'e-text',\n disable: 'e-disabled',\n container: 'e-list-container',\n icon: 'e-icons',\n backIcon: 'e-icon-back',\n backButton: 'e-back-button',\n checkboxWrapper: 'e-checkbox-wrapper',\n checkbox: 'e-checkbox',\n checked: 'e-check',\n checklist: 'e-checklist',\n checkboxIcon: 'e-frame',\n checkboxRight: 'e-checkbox-right',\n checkboxLeft: 'e-checkbox-left',\n listviewCheckbox: 'e-listview-checkbox',\n itemCheckList: 'e-checklist',\n virtualElementContainer: 'e-list-virtualcontainer'\n};\nvar LISTVIEW_TEMPLATE_PROPERTY = 'Template';\nvar LISTVIEW_GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\nvar LISTVIEW_HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\nvar swipeVelocity = 0.5;\n/**\n * Represents the field settings of the ListView.\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, \"id\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('isChecked')\n ], FieldSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('isVisible')\n ], FieldSettings.prototype, \"isVisible\", void 0);\n __decorate([\n Property('enabled')\n ], FieldSettings.prototype, \"enabled\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('child')\n ], FieldSettings.prototype, \"child\", void 0);\n __decorate([\n Property('tooltip')\n ], FieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('groupBy')\n ], FieldSettings.prototype, \"groupBy\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"sortBy\", void 0);\n __decorate([\n Property('htmlAttributes')\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('tableName')\n ], FieldSettings.prototype, \"tableName\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Represents the EJ2 ListView control.\n * ```html\n *
    \n *
      \n *
    • Favorite
    • \n *
    • Documents
    • \n *
    • Downloads
    • \n *
    \n *
    \n * ```\n * ```typescript\n * var listviewObject = new ListView({});\n * listviewObject.appendTo(\"#listview\");\n * ```\n */\nvar ListView = /** @class */ (function (_super) {\n __extends(ListView, _super);\n /**\n * Constructor for creating the widget\n *\n * @param options\n *\n * @param element\n */\n function ListView(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.previousSelectedItems = [];\n _this.hiddenItems = [];\n _this.enabledItems = [];\n _this.disabledItems = [];\n return _this;\n }\n /**\n * @param newProp\n *\n * @param oldProp\n *\n * @private\n */\n ListView.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 'htmlAttributes':\n this.setHTMLAttribute();\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'enable':\n this.setEnable();\n break;\n case 'width':\n case 'height':\n this.setSize();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'fields':\n // eslint-disable-next-line\n this.listBaseOption.fields = this.fields.properties;\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.reRender();\n }\n break;\n case 'headerTitle':\n if (!this.curDSLevel.length) {\n this.header(this.headerTitle, false, 'header');\n }\n break;\n case 'query':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.reRender();\n }\n break;\n case 'showHeader':\n this.header(this.headerTitle, false, 'header');\n break;\n case 'enableVirtualization':\n if (!isNullOrUndefined(this.contentContainer)) {\n detach(this.contentContainer);\n }\n this.refresh();\n break;\n case 'showCheckBox':\n case 'checkBoxPosition':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.setCheckbox();\n }\n break;\n case 'dataSource':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.reRender();\n }\n break;\n case 'sortOrder':\n case 'template':\n if (!this.enableVirtualization) {\n this.refresh();\n }\n break;\n case 'showIcon':\n if (this.enableVirtualization) {\n this.virtualizationModule.reRenderUiVirtualization();\n }\n else {\n this.listBaseOption.showIcon = this.showIcon;\n this.curViewDS = this.getSubDS();\n this.resetCurrentList();\n }\n break;\n default:\n break;\n }\n }\n };\n // Model Changes\n ListView.prototype.setHTMLAttribute = function () {\n if (Object.keys(this.htmlAttributes).length) {\n attributes(this.element, this.htmlAttributes);\n }\n };\n ListView.prototype.setCSSClass = function (oldCSSClass) {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' ').filter(function (css) { return css; }));\n }\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' ').filter(function (css) { return css; }));\n }\n };\n ListView.prototype.setSize = function () {\n this.element.style.height = formatUnit(this.height);\n this.element.style.width = formatUnit(this.width);\n this.isWindow = this.element.clientHeight ? false : true;\n };\n ListView.prototype.setEnable = function () {\n this.enableElement(this.element, this.enable);\n };\n ListView.prototype.setEnableRTL = function () {\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n else {\n this.element.classList.remove('e-rtl');\n }\n };\n ListView.prototype.enableElement = function (element, isEnabled) {\n if (isEnabled) {\n element.classList.remove(classNames.disable);\n }\n else {\n element.classList.add(classNames.disable);\n }\n };\n // Support Component Functions\n ListView.prototype.header = function (text, showBack, prop) {\n if (this.headerEle === undefined && this.showHeader) {\n if (this.enableHtmlSanitizer) {\n this.setProperties({ headerTitle: SanitizeHtmlHelper.sanitize(this.headerTitle) }, true);\n }\n this.headerEle = this.createElement('div', { className: classNames.header });\n var innerHeaderEle = this.createElement('span', { className: classNames.headerText, innerHTML: this.headerTitle });\n var textEle = this.createElement('div', { className: classNames.text, innerHTML: innerHeaderEle.outerHTML });\n var hedBackButton = this.createElement('div', {\n className: classNames.icon + ' ' + classNames.backIcon + ' ' + classNames.backButton,\n attrs: { style: 'display:none;' }\n });\n this.headerEle.appendChild(hedBackButton);\n this.headerEle.appendChild(textEle);\n if (this.headerTemplate) {\n // eslint-disable-next-line\n var compiledString = compile(this.headerTemplate);\n var headerTemplateEle = this.createElement('div', { className: classNames.headerTemplateText });\n // eslint-disable-next-line\n var compiledElement = compiledString({}, this, prop, this.LISTVIEW_HEADERTEMPLATE_ID, null, null, this.headerEle);\n if (compiledElement) {\n append(compiledElement, headerTemplateEle);\n }\n append([headerTemplateEle], this.headerEle);\n // eslint-disable-next-line\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n if (this.headerTemplate && this.headerTitle) {\n textEle.classList.add('header');\n }\n this.element.classList.add('e-has-header');\n prepend([this.headerEle], this.element);\n }\n else if (this.headerEle) {\n if (this.showHeader) {\n this.headerEle.style.display = '';\n var textEle = this.headerEle.querySelector('.' + classNames.headerText);\n var hedBackButton = this.headerEle.querySelector('.' + classNames.backIcon);\n if (this.enableHtmlSanitizer) {\n text = SanitizeHtmlHelper.sanitize(text);\n }\n textEle.innerHTML = text;\n if (this.headerTemplate && showBack) {\n textEle.parentElement.classList.remove('header');\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('nested-header');\n }\n if (this.headerTemplate && !showBack) {\n textEle.parentElement.classList.add('header');\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.remove('nested-header');\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('header');\n }\n if (showBack === true) {\n hedBackButton.style.display = '';\n }\n else {\n hedBackButton.style.display = 'none';\n }\n }\n else {\n this.headerEle.style.display = 'none';\n }\n }\n };\n // Animation Related Functions\n ListView.prototype.switchView = function (fromView, toView, reverse) {\n var _this = this;\n if (fromView && toView) {\n var fPos_1 = fromView.style.position;\n var overflow_1 = (this.element.style.overflow !== 'hidden') ? this.element.style.overflow : '';\n fromView.style.position = 'absolute';\n fromView.classList.add('e-view');\n var anim = void 0;\n var duration = this.animation.duration;\n if (this.animation.effect) {\n anim = (this.enableRtl ? effectsRTLConfig[this.animation.effect] : effectsConfig[this.animation.effect]);\n }\n else {\n var slideLeft = 'SlideLeft';\n anim = effectsConfig[\"\" + slideLeft];\n reverse = this.enableRtl;\n duration = 0;\n }\n this.element.style.overflow = 'hidden';\n this.aniObj.animate(fromView, {\n name: (reverse === true ? anim[0] : anim[1]),\n duration: duration,\n timingFunction: this.animation.easing,\n // eslint-disable-next-line\n end: function (model) {\n fromView.style.display = 'none';\n _this.element.style.overflow = overflow_1;\n fromView.style.position = fPos_1;\n fromView.classList.remove('e-view');\n }\n });\n toView.style.display = '';\n this.aniObj.animate(toView, {\n name: (reverse === true ? anim[2] : anim[3]),\n duration: duration,\n timingFunction: this.animation.easing,\n end: function () {\n _this.trigger('actionComplete');\n }\n });\n this.curUL = toView;\n }\n };\n ListView.prototype.preRender = function () {\n if (this.template) {\n try {\n if (document.querySelectorAll(this.template).length) {\n this.setProperties({ template: document.querySelector(this.template).innerHTML.trim() }, true);\n }\n }\n catch (e) {\n compile(this.template);\n }\n }\n this.listBaseOption = {\n template: this.template,\n headerTemplate: this.headerTemplate,\n groupTemplate: this.groupTemplate, expandCollapse: true, listClass: '',\n ariaAttributes: {\n itemRole: 'listitem', listRole: 'group', itemText: '',\n groupItemRole: 'presentation', wrapperRole: 'presentation'\n },\n // eslint-disable-next-line\n fields: (this.fields.properties),\n sortOrder: this.sortOrder,\n showIcon: this.showIcon,\n itemCreated: this.renderCheckbox.bind(this),\n templateID: \"\" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY,\n groupTemplateID: \"\" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY,\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n };\n this.initialization();\n };\n ListView.prototype.initialization = function () {\n this.curDSLevel = [];\n this.animateOptions = {};\n this.curViewDS = [];\n this.currentLiElements = [];\n this.isNestedList = false;\n this.selectedData = [];\n this.selectedId = this.enablePersistence ? this.selectedId : [];\n this.LISTVIEW_TEMPLATE_ID = \"\" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY;\n this.LISTVIEW_GROUPTEMPLATE_ID = \"\" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY;\n this.LISTVIEW_HEADERTEMPLATE_ID = \"\" + this.element.id + LISTVIEW_HEADERTEMPLATE_PROPERTY;\n this.aniObj = new Animation(this.animateOptions);\n this.removeElement(this.curUL);\n this.removeElement(this.ulElement);\n this.removeElement(this.headerEle);\n this.removeElement(this.contentContainer);\n this.curUL = this.ulElement = this.liCollection = this.headerEle = this.contentContainer = undefined;\n };\n ListView.prototype.renderCheckbox = function (args) {\n var _this = this;\n if (args.item.classList.contains(classNames.hasChild)) {\n this.isNestedList = true;\n }\n if (this.showCheckBox && this.isValidLI(args.item)) {\n var checkboxElement = void 0;\n var fieldData_1;\n // eslint-disable-next-line prefer-const\n checkboxElement = createCheckBox(this.createElement, false, {\n checked: false, enableRtl: this.enableRtl,\n cssClass: classNames.listviewCheckbox\n });\n checkboxElement.setAttribute('role', 'checkbox');\n var frameElement_1 = checkboxElement.querySelector('.' + classNames.checkboxIcon);\n args.item.classList.add(classNames.itemCheckList);\n args.item.firstElementChild.classList.add(classNames.checkbox);\n if (typeof this.dataSource[0] !== 'string' && typeof this.dataSource[0] !== 'number') {\n fieldData_1 = getFieldValues(args.curData, this.listBaseOption.fields);\n if (this.enablePersistence && !isNullOrUndefined(this.selectedId)) {\n var index = this.selectedId.findIndex(function (e) { return e == fieldData_1[_this.listBaseOption.fields.id].toString(); });\n if (index != -1) {\n this.checkInternally(args, checkboxElement);\n }\n }\n else if (fieldData_1[this.listBaseOption.fields.isChecked]) {\n this.checkInternally(args, checkboxElement);\n }\n }\n else if (((typeof this.dataSource[0] === 'string' ||\n typeof this.dataSource[0] === 'number') && this.selectedData.indexOf(args.text) !== -1)) {\n this.checkInternally(args, checkboxElement);\n }\n checkboxElement.setAttribute('aria-checked', frameElement_1.classList.contains(classNames.checked) ? 'true' : 'false');\n checkboxElement.setAttribute('aria-label', 'checkbox');\n if (this.checkBoxPosition === 'Left') {\n checkboxElement.classList.add(classNames.checkboxLeft);\n args.item.firstElementChild.classList.add(classNames.checkboxLeft);\n args.item.firstElementChild.insertBefore(checkboxElement, args.item.firstElementChild.childNodes[0]);\n }\n else {\n checkboxElement.classList.add(classNames.checkboxRight);\n args.item.firstElementChild.classList.add(classNames.checkboxRight);\n args.item.firstElementChild.appendChild(checkboxElement);\n }\n this.currentLiElements.push(args.item);\n if (this.checkBoxPosition === 'Left') {\n this.virtualCheckBox = args.item.firstElementChild.children[0];\n }\n else {\n this.virtualCheckBox = args.item.firstElementChild.lastElementChild;\n }\n }\n };\n ListView.prototype.checkInternally = function (args, checkboxElement) {\n args.item.classList.add(classNames.selected);\n checkboxElement.querySelector('.' + classNames.checkboxIcon).classList.add(classNames.checked);\n checkboxElement.setAttribute('aria-checked', 'true');\n };\n /**\n * Checks the specific list item by passing the unchecked fields as an argument to this method.\n *\n * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument.\n */\n ListView.prototype.checkItem = function (item) {\n this.toggleCheckBase(item, true);\n };\n ListView.prototype.toggleCheckBase = function (item, checked) {\n if (this.showCheckBox) {\n var liElement = item;\n if (item instanceof Object && item.constructor !== HTMLLIElement) {\n liElement = this.getLiFromObjOrElement(item);\n }\n if (!isNullOrUndefined(liElement)) {\n var checkboxIcon = liElement.querySelector('.' + classNames.checkboxIcon);\n if (checked === true) {\n liElement.classList.add(classNames.selected);\n }\n else {\n liElement.classList.remove(classNames.selected);\n }\n if (checked === true) {\n checkboxIcon.classList.add(classNames.checked);\n }\n else {\n checkboxIcon.classList.remove(classNames.checked);\n }\n checkboxIcon.parentElement.setAttribute('aria-checked', checked ? 'true' : 'false');\n }\n this.setSelectedItemData(liElement);\n this.updateSelectedId();\n }\n };\n /**\n * Uncheck the specific list item by passing the checked fields as an argument to this method.\n *\n * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument.\n */\n ListView.prototype.uncheckItem = function (item) {\n this.toggleCheckBase(item, false);\n };\n /**\n * Checks all the unchecked items in the ListView.\n */\n ListView.prototype.checkAllItems = function () {\n this.toggleAllCheckBase(true);\n };\n /**\n * Uncheck all the checked items in ListView.\n */\n ListView.prototype.uncheckAllItems = function () {\n this.toggleAllCheckBase(false);\n };\n ListView.prototype.toggleAllCheckBase = function (checked) {\n if (this.showCheckBox) {\n for (var i = 0; i < this.liCollection.length; i++) {\n var checkIcon = this.liCollection[i].querySelector('.' + classNames.checkboxIcon);\n if (checkIcon) {\n if (checked) {\n if (!checkIcon.classList.contains(classNames.checked)) {\n this.checkItem(this.liCollection[i]);\n }\n }\n else {\n if (checkIcon.classList.contains(classNames.checked)) {\n this.uncheckItem(this.liCollection[i]);\n }\n }\n }\n }\n if (this.enableVirtualization) {\n this.virtualizationModule.checkedItem(checked);\n }\n this.updateSelectedId();\n }\n };\n ListView.prototype.setCheckbox = function () {\n if (this.showCheckBox) {\n var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem));\n var args = {\n item: undefined, curData: undefined, dataSource: undefined, fields: undefined,\n options: undefined, text: ''\n };\n for (var i = 0; i < liCollection.length; i++) {\n var element = liCollection[i];\n args.item = element;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args.curData = this.getItemData(element);\n if (element.querySelector('.' + classNames.checkboxWrapper)) {\n this.removeElement(element.querySelector('.' + classNames.checkboxWrapper));\n }\n this.renderCheckbox(args);\n if (args.item.classList.contains(classNames.selected)) {\n this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper));\n }\n }\n }\n else {\n var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.itemCheckList));\n for (var i = 0; i < liCollection.length; i++) {\n var element = liCollection[i];\n element.classList.remove(classNames.selected);\n element.firstElementChild.classList.remove(classNames.checkbox);\n this.removeElement(element.querySelector('.' + classNames.checkboxWrapper));\n }\n if (this.selectedItems) {\n this.selectedItems.item.classList.add(classNames.selected);\n }\n }\n };\n /**\n * Refresh the height of the list item only on enabling the virtualization property.\n */\n ListView.prototype.refreshItemHeight = function () {\n if (this.virtualizationModule) {\n this.virtualizationModule.refreshItemHeight();\n }\n };\n ListView.prototype.clickHandler = function (e) {\n var target = e.target;\n this.targetElement = target;\n var classList = target.classList;\n var closestElement;\n if (classList.contains(classNames.backIcon) || classList.contains(classNames.headerText)) {\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\n this.uncheckAllItems();\n }\n this.back();\n }\n else {\n var li = closest(target.parentNode, '.' + classNames.listItem);\n if (li === null) {\n li = target;\n }\n this.removeFocus();\n if (this.enable && this.showCheckBox && this.isValidLI(li)) {\n if (e.target.classList.contains(classNames.checkboxIcon)) {\n li.classList.add(classNames.focused);\n if (isNullOrUndefined(li.querySelector('.' + classNames.checked))) {\n var args = {\n curData: undefined, dataSource: undefined, fields: undefined, options: undefined,\n text: undefined, item: li\n };\n this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper));\n }\n else {\n this.uncheckItem(li);\n li.classList.add(classNames.focused);\n }\n if (this.enableVirtualization) {\n this.virtualizationModule.setCheckboxLI(li, e);\n }\n if (e) {\n var eventArgs = this.selectEventData(li, e);\n var checkIcon = li.querySelector('.' + classNames.checkboxIcon);\n merge(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) });\n this.trigger('select', eventArgs);\n }\n }\n else if (li.classList.contains(classNames.hasChild)) {\n this.removeHover();\n this.removeSelect();\n this.removeSelect(li);\n this.setSelectLI(li, e);\n li.classList.remove(classNames.selected);\n }\n else {\n this.setCheckboxLI(li, e);\n if ((target.nodeName == \"INPUT\") || (target.nodeName == \"TEXTAREA\")) {\n target.classList.add('e-focused');\n this.targetElement = target;\n }\n }\n }\n else {\n this.setSelectLI(li, e);\n if ((target.nodeName == \"INPUT\") || (target.nodeName == \"TEXTAREA\")) {\n target.classList.add('e-focused');\n this.targetElement = target;\n }\n }\n closestElement = closest(e.target, 'li');\n if (!isNullOrUndefined(closestElement)) {\n if (closestElement.classList.contains('e-has-child') &&\n !e.target.parentElement.classList.contains('e-listview-checkbox')) {\n closestElement.classList.add(classNames.disable);\n }\n }\n }\n this.updateSelectedId();\n };\n ListView.prototype.removeElement = function (element) {\n return element && element.parentNode && element.parentNode.removeChild(element);\n };\n ListView.prototype.hoverHandler = function (e) {\n var curLi = closest(e.target.parentNode, '.' + classNames.listItem);\n this.setHoverLI(curLi);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ListView.prototype.leaveHandler = function (e) {\n this.removeHover();\n };\n ListView.prototype.homeKeyHandler = function (e, end) {\n e.preventDefault();\n if (Object.keys(this.dataSource).length && this.curUL) {\n var li = this.curUL.querySelectorAll('.' + classNames.listItem);\n var focusedElement = this.curUL.querySelector('.' + classNames.focused) ||\n this.curUL.querySelector('.' + classNames.selected);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.focused);\n if (!this.showCheckBox) {\n focusedElement.classList.remove(classNames.selected);\n }\n }\n var index = !end ? 0 : li.length - 1;\n if (li[index].classList.contains(classNames.hasChild) || this.showCheckBox) {\n li[index].classList.add(classNames.focused);\n }\n else {\n this.setSelectLI(li[index], e);\n }\n if (li[index]) {\n this.element.setAttribute('aria-activedescendant', li[index].id.toString());\n }\n else {\n this.element.removeAttribute('aria-activedescendant');\n }\n }\n };\n ListView.prototype.onArrowKeyDown = function (e, prev) {\n var siblingLI;\n var li;\n var hasChild = !isNullOrUndefined(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false;\n if (hasChild || this.showCheckBox) {\n li = this.curUL.querySelector('.' + classNames.focused) || this.curUL.querySelector('.' + classNames.selected);\n siblingLI = ListBase.getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev);\n if (!isNullOrUndefined(siblingLI)) {\n if (li) {\n li.classList.remove(classNames.focused);\n if (!this.showCheckBox) {\n li.classList.remove(classNames.selected);\n }\n }\n if (siblingLI.classList.contains(classNames.hasChild) || this.showCheckBox) {\n siblingLI.classList.add(classNames.focused);\n }\n else {\n this.setSelectLI(siblingLI, e);\n }\n }\n }\n else {\n li = this.curUL.querySelector('.' + classNames.selected);\n siblingLI = ListBase.getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev);\n this.setSelectLI(siblingLI, e);\n }\n if (siblingLI) {\n this.element.setAttribute('aria-activedescendant', siblingLI.id.toString());\n }\n else {\n this.element.removeAttribute('aria-activedescendant');\n }\n return siblingLI;\n };\n ListView.prototype.arrowKeyHandler = function (e, prev) {\n var _this = this;\n e.preventDefault();\n if (Object.keys(this.dataSource).length && this.curUL) {\n var siblingLI = this.onArrowKeyDown(e, prev);\n var elementTop = this.element.getBoundingClientRect().top;\n var elementHeight = this.element.getBoundingClientRect().height;\n var firstItemBounds = this.curUL.querySelector('.' + classNames.listItem).getBoundingClientRect();\n var heightDiff = void 0;\n var groupItemBounds = void 0;\n if (this.fields.groupBy) {\n groupItemBounds = this.curUL.querySelector('.' + classNames.groupListItem).getBoundingClientRect();\n }\n if (siblingLI) {\n var siblingTop = siblingLI.getBoundingClientRect().top;\n var siblingHeight = siblingLI.getBoundingClientRect().height;\n if (!prev) {\n var height = this.isWindow ? window.innerHeight : elementHeight;\n heightDiff = this.isWindow ? (siblingTop + siblingHeight) :\n ((siblingTop - elementTop) + siblingHeight);\n if (heightDiff > height) {\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset + (heightDiff - height));\n }\n else {\n this.element.scrollTop = this.element.scrollTop + (heightDiff - height);\n }\n }\n }\n else {\n heightDiff = this.isWindow ? siblingTop : (siblingTop - elementTop);\n if (heightDiff < 0) {\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset + heightDiff);\n }\n else {\n this.element.scrollTop = this.element.scrollTop + heightDiff;\n }\n }\n }\n }\n else if (this.enableVirtualization && prev && this.virtualizationModule.uiFirstIndex) {\n this.onUIScrolled = function () {\n _this.onArrowKeyDown(e, prev);\n _this.onUIScrolled = undefined;\n };\n heightDiff = this.virtualizationModule.listItemHeight;\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset - heightDiff);\n }\n else {\n this.element.scrollTop = this.element.scrollTop - heightDiff;\n }\n }\n else if (prev) {\n if (this.showHeader && this.headerEle) {\n var topHeight = groupItemBounds ? groupItemBounds.top : firstItemBounds.top;\n var headerBounds = this.headerEle.getBoundingClientRect();\n heightDiff = headerBounds.top < 0 ? (headerBounds.height - topHeight) : 0;\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset - heightDiff);\n }\n else {\n this.element.scrollTop = 0;\n }\n }\n else if (this.fields.groupBy) {\n heightDiff = this.isWindow ? (groupItemBounds.top < 0 ? groupItemBounds.top : 0) :\n (elementTop - firstItemBounds.top) + groupItemBounds.height;\n if (this.isWindow === true) {\n window.scroll(0, pageYOffset + heightDiff);\n }\n else {\n this.element.scrollTop = this.element.scrollTop - heightDiff;\n }\n }\n }\n }\n };\n ListView.prototype.enterKeyHandler = function (e) {\n if (Object.keys(this.dataSource).length && this.curUL) {\n var hasChild = !isNullOrUndefined(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false;\n var li = this.curUL.querySelector('.' + classNames.focused);\n if (hasChild && li) {\n li.classList.remove(classNames.focused);\n if (this.showCheckBox) {\n this.removeSelect();\n this.removeSelect(li);\n this.removeHover();\n }\n this.setSelectLI(li, e);\n }\n }\n };\n ListView.prototype.spaceKeyHandler = function (e) {\n e.preventDefault();\n if (this.enable && this.showCheckBox && Object.keys(this.dataSource).length && this.curUL) {\n var li = this.curUL.querySelector('.' + classNames.focused);\n var checkboxElement = void 0;\n var checkIcon = void 0;\n if (!isNullOrUndefined(li) && isNullOrUndefined(li.querySelector('.' + classNames.checked))) {\n var args = {\n curData: undefined, dataSource: undefined, fields: undefined, options: undefined,\n text: undefined, item: li\n };\n checkboxElement = args.item.querySelector('.' + classNames.checkboxWrapper);\n this.checkInternally(args, checkboxElement);\n checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon);\n }\n else {\n this.uncheckItem(li);\n }\n var eventArgs = this.selectEventData(li, e);\n merge(eventArgs, { isChecked: checkIcon ? checkIcon.classList.contains(classNames.checked) : false });\n this.trigger('select', eventArgs);\n this.updateSelectedId();\n }\n };\n ListView.prototype.keyActionHandler = function (e) {\n switch (e.keyCode) {\n case 36:\n this.homeKeyHandler(e);\n break;\n case 35:\n this.homeKeyHandler(e, true);\n break;\n case 40:\n this.arrowKeyHandler(e);\n break;\n case 38:\n this.arrowKeyHandler(e, true);\n break;\n case 13:\n this.enterKeyHandler(e);\n break;\n case 8:\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\n this.uncheckAllItems();\n }\n this.back();\n break;\n case 32:\n if (isNullOrUndefined(this.targetElement) || !(this.targetElement.classList.contains('e-focused'))) {\n this.spaceKeyHandler(e);\n }\n break;\n }\n };\n ListView.prototype.swipeActionHandler = function (e) {\n if (e.swipeDirection === 'Right' && e.velocity > swipeVelocity && e.originalEvent.type === 'touchend') {\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\n this.uncheckAllItems();\n }\n this.back();\n }\n };\n ListView.prototype.focusout = function () {\n if (Object.keys(this.dataSource).length && this.curUL) {\n var focusedElement = this.curUL.querySelector('.' + classNames.focused);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.focused);\n if (!this.showCheckBox && !isNullOrUndefined(this.selectedLI)) {\n this.selectedLI.classList.add(classNames.selected);\n }\n }\n }\n };\n ListView.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'keydown', this.keyActionHandler, this);\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\n EventHandler.add(this.element, 'mouseout', this.leaveHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusout, this);\n this.touchModule = new Touch(this.element, { swipe: this.swipeActionHandler.bind(this) });\n };\n ListView.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'mouseout', this.leaveHandler);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'mouseout', this.leaveHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n };\n ListView.prototype.removeFocus = function () {\n var focusedLI = this.element.querySelectorAll('.' + classNames.focused);\n for (var _i = 0, focusedLI_1 = focusedLI; _i < focusedLI_1.length; _i++) {\n var ele = focusedLI_1[_i];\n ele.classList.remove(classNames.focused);\n }\n };\n ListView.prototype.removeHover = function () {\n var hoverLI = this.element.querySelector('.' + classNames.hover);\n if (hoverLI) {\n hoverLI.classList.remove(classNames.hover);\n }\n };\n ListView.prototype.removeSelect = function (li) {\n if (isNullOrUndefined(li)) {\n var selectedLI = this.element.querySelectorAll('.' + classNames.selected);\n for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) {\n var ele = selectedLI_1[_i];\n if (this.showCheckBox && ele.querySelector('.' + classNames.checked)) {\n continue;\n }\n else {\n ele.classList.remove(classNames.selected);\n }\n }\n }\n else {\n li.classList.remove(classNames.selected);\n }\n };\n ListView.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(classNames.listItem)\n && !li.classList.contains(classNames.groupListItem)\n && !li.classList.contains(classNames.disable));\n };\n ListView.prototype.setCheckboxLI = function (li, e) {\n if (this.isValidLI(li) && this.enable && this.showCheckBox) {\n if (this.curUL.querySelector('.' + classNames.focused)) {\n this.curUL.querySelector('.' + classNames.focused).classList.remove(classNames.focused);\n }\n var textAreaFocus = li.querySelector('textarea') || li.querySelector('input');\n li.classList.add(classNames.focused);\n if (!isNullOrUndefined(e)) {\n if (e.target === textAreaFocus) {\n textAreaFocus.classList.add('e-focused');\n }\n }\n var checkboxElement = li.querySelector('.' + classNames.checkboxWrapper);\n var checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon);\n this.removeHover();\n if (!checkIcon.classList.contains(classNames.checked)) {\n checkIcon.classList.add(classNames.checked);\n li.classList.add(classNames.selected);\n }\n else {\n checkIcon.classList.remove(classNames.checked);\n li.classList.remove(classNames.selected);\n }\n checkboxElement.setAttribute('aria-checked', checkIcon.classList.contains(classNames.checked) ?\n 'true' : 'false');\n var eventArgs = this.selectEventData(li, e);\n merge(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) });\n if (this.enableVirtualization) {\n this.virtualizationModule.setCheckboxLI(li, e);\n }\n this.trigger('select', eventArgs);\n this.setSelectedItemData(li);\n this.renderSubList(li);\n }\n };\n ListView.prototype.selectEventData = function (li, e) {\n var data = this.getItemData(li);\n var fieldData = getFieldValues(data, this.listBaseOption.fields);\n var selectedItem;\n if (!isNullOrUndefined(data)\n && typeof this.dataSource[0] === 'string' || typeof this.dataSource[0] === 'number') {\n selectedItem = { item: li, text: li && li.innerText.trim(), data: this.dataSource };\n }\n else {\n selectedItem =\n // eslint-disable-next-line\n {\n item: li, text: fieldData && fieldData[this.listBaseOption.fields.text],\n // eslint-disable-next-line\n data: data\n };\n }\n var eventArgs = {};\n merge(eventArgs, selectedItem);\n if (e) {\n merge(eventArgs, { isInteracted: true, event: e, cancel: false, index: this.curUL && Array.prototype.indexOf.call(this.curUL.children, li) });\n }\n return eventArgs;\n };\n ListView.prototype.setSelectedItemData = function (li) {\n var data = this.getItemData(li);\n // eslint-disable-next-line\n var fieldData = getFieldValues(data, this.listBaseOption.fields);\n if (!isNullOrUndefined(data) && ((typeof this.dataSource[0] === 'string') ||\n (typeof this.dataSource[0] === 'number'))) {\n this.selectedItems = {\n item: li,\n text: li && li.innerText.trim(),\n data: this.dataSource\n };\n }\n else {\n this.selectedItems = {\n item: li,\n // eslint-disable-next-line\n text: fieldData && fieldData[this.listBaseOption.fields.text],\n // eslint-disable-next-line\n data: data\n };\n }\n };\n ListView.prototype.setSelectLI = function (li, e) {\n var _this = this;\n if (this.isValidLI(li) && !li.classList.contains(classNames.selected) && this.enable) {\n if (!this.showCheckBox) {\n this.removeSelect();\n }\n li.classList.add(classNames.selected);\n this.removeHover();\n this.setSelectedItemData(li);\n if (this.enableVirtualization) {\n this.virtualizationModule.setSelectLI(li, e);\n }\n var eventArgs = this.selectEventData(li, e);\n this.trigger('select', eventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.selectedLI = li;\n _this.renderSubList(li);\n }\n });\n }\n };\n ListView.prototype.setHoverLI = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(classNames.hover) && this.enable) {\n var lastLi = this.element.querySelectorAll('.' + classNames.hover);\n if (lastLi && lastLi.length) {\n removeClass(lastLi, classNames.hover);\n }\n if (!li.classList.contains(classNames.selected) || this.showCheckBox) {\n li.classList.add(classNames.hover);\n }\n }\n };\n //Data Source Related Functions\n ListView.prototype.getSubDS = function () {\n var levelKeys = this.curDSLevel;\n if (levelKeys.length) {\n var ds = this.localData;\n for (var _i = 0, levelKeys_1 = levelKeys; _i < levelKeys_1.length; _i++) {\n var key = levelKeys_1[_i];\n var field = {};\n // eslint-disable-next-line\n field[this.fields.id] = key;\n this.curDSJSON = this.findItemFromDS(ds, field);\n var fieldData = getFieldValues(this.curDSJSON, this.listBaseOption.fields);\n ds = this.curDSJSON ? fieldData[this.fields.child] : ds;\n }\n return ds;\n }\n return this.localData;\n };\n ListView.prototype.getItemData = function (li) {\n var dataSource = this.dataSource instanceof DataManager ?\n this.localData : this.dataSource;\n var fields = this.getElementUID(li);\n var curDS;\n if (isNullOrUndefined(this.element.querySelector('.' + classNames.hasChild)) && this.fields.groupBy) {\n curDS = this.curViewDS;\n }\n else {\n curDS = dataSource;\n }\n return this.findItemFromDS(curDS, fields);\n };\n ListView.prototype.findItemFromDS = function (dataSource, fields, parent) {\n var _this = this;\n var resultJSON;\n if (dataSource && dataSource.length && fields) {\n dataSource.some(function (data) {\n var fieldData = \n // eslint-disable-next-line\n getFieldValues(data, _this.listBaseOption.fields);\n //(!(fid) || id === fid) && (!(ftext) || text === ftext) && (!!fid || !!ftext)\n if ((fields[_this.fields.id] || fields[_this.fields.text]) &&\n (!fields[_this.fields.id] || (!isNullOrUndefined(fieldData[_this.fields.id]) &&\n fieldData[_this.fields.id].toString()) === fields[_this.fields.id].toString()) &&\n (!fields[_this.fields.text] || fieldData[_this.fields.text] === fields[_this.fields.text])) {\n resultJSON = (parent ? dataSource : data);\n }\n else if (typeof data !== 'object' && dataSource.indexOf(data) !== -1) {\n resultJSON = (parent ? dataSource : data);\n }\n else if (!isNullOrUndefined(fields[_this.fields.id]) && isNullOrUndefined(fieldData[_this.fields.id])) {\n var li = _this.element.querySelector('[data-uid=\"'\n + fields[_this.fields.id] + '\"]');\n // eslint-disable-next-line\n if (li && li.innerText.trim() === fieldData[_this.fields.text]) {\n resultJSON = data;\n }\n // eslint-disable-next-line\n }\n else if (fieldData.hasOwnProperty(_this.fields.child) && fieldData[_this.fields.child].length) {\n resultJSON = _this.findItemFromDS(fieldData[_this.fields.child], fields, parent);\n }\n return !!resultJSON;\n });\n }\n else {\n resultJSON = dataSource;\n }\n return resultJSON;\n };\n ListView.prototype.getQuery = function () {\n var columns = [];\n var query = (this.query ? this.query : new Query());\n if (!this.query) {\n // eslint-disable-next-line\n for (var _i = 0, _a = Object.keys(this.fields.properties); _i < _a.length; _i++) {\n var column = _a[_i];\n if (column !== 'tableName' && !!(this.fields[\"\" + column]) &&\n this.fields[\"\" + column] !==\n ListBase.defaultMappedFields[\"\" + column]\n && columns.indexOf(this.fields[\"\" + column]) === -1) {\n columns.push(this.fields[\"\" + column]);\n }\n }\n query.select(columns);\n // eslint-disable-next-line\n if (this.fields.properties.hasOwnProperty('tableName')) {\n query.from(this.fields.tableName);\n }\n }\n return query;\n };\n ListView.prototype.setViewDataSource = function (dataSource) {\n if (dataSource === void 0) { dataSource = this.localData; }\n // eslint-disable-next-line\n var fieldValue = (isNullOrUndefined(this.fields.sortBy)) ? this.fields.text : this.fields.sortBy;\n var query = ListBase.addSorting(this.sortOrder, fieldValue);\n if (dataSource && this.fields.groupBy) {\n if (this.sortOrder !== 'None') {\n this.curViewDS = ListBase.groupDataSource(ListBase.getDataSource(dataSource, query), this.listBaseOption.fields, this.sortOrder);\n }\n else {\n this.curViewDS = ListBase.groupDataSource(dataSource, this.listBaseOption.fields, this.sortOrder);\n }\n }\n else if (dataSource && this.sortOrder !== 'None') {\n this.curViewDS = ListBase.getDataSource(dataSource, query);\n }\n else {\n this.curViewDS = dataSource;\n }\n };\n ListView.prototype.isInAnimation = function () {\n return this.curUL.classList.contains('.e-animate');\n };\n ListView.prototype.renderRemoteLists = function (e, listViewComponent) {\n if (this.isDestroyed) {\n return;\n }\n this.localData = e.result;\n listViewComponent.removeElement(listViewComponent.contentContainer);\n this.renderList();\n this.trigger('actionComplete', e);\n };\n ListView.prototype.triggerActionFailure = function (e) {\n if (this.isDestroyed) {\n return;\n }\n this.trigger('actionFailure', e);\n };\n ListView.prototype.setLocalData = function () {\n var _this = this;\n this.trigger('actionBegin');\n // eslint-disable-next-line\n var listViewComponent = this;\n if (this.dataSource instanceof DataManager) {\n if (this.dataSource.ready) {\n this.dataSource.ready.then(function (e) {\n /* eslint-disable */\n _this.isOffline = _this.dataSource.dataSource.offline;\n if (_this.dataSource instanceof DataManager && _this.isOffline) {\n _this.renderRemoteLists(e, listViewComponent);\n }\n }).catch(function (e) {\n _this.triggerActionFailure(e);\n });\n }\n else {\n this.dataSource.executeQuery(this.getQuery()).then(function (e) {\n _this.renderRemoteLists(e, listViewComponent);\n }).catch(function (e) {\n _this.triggerActionFailure(e);\n });\n }\n }\n else if (!this.dataSource || !this.dataSource.length) {\n var ul = this.element.querySelector('ul');\n if (ul) {\n remove(ul);\n this.setProperties({ dataSource: ListBase.createJsonFromElement(ul) }, true);\n this.localData = this.dataSource;\n this.renderList();\n this.trigger('actionComplete', { data: this.localData });\n }\n }\n else {\n this.localData = this.dataSource;\n this.renderList();\n this.trigger('actionComplete', { data: this.localData });\n }\n };\n ListView.prototype.reRender = function () {\n this.removeElement(this.headerEle);\n this.removeElement(this.ulElement);\n this.removeElement(this.contentContainer);\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n if (Object.keys(window).indexOf('ejsInterop') === -1) {\n this.element.innerHTML = '';\n }\n this.headerEle = this.ulElement = this.liCollection = undefined;\n this.header();\n this.setLocalData();\n };\n ListView.prototype.resetCurrentList = function () {\n this.setViewDataSource(this.curViewDS);\n this.contentContainer.innerHTML = '';\n this.createList();\n this.renderIntoDom(this.curUL);\n };\n ListView.prototype.setAttributes = function (liElements) {\n for (var i = 0; i < liElements.length; i++) {\n var element = liElements[i];\n if (element.classList.contains('e-list-item')) {\n element.setAttribute('id', this.element.id + '_' + element.getAttribute('data-uid'));\n element.setAttribute('tabindex', '-1');\n }\n }\n };\n ListView.prototype.createList = function () {\n this.currentLiElements = [];\n this.isNestedList = false;\n this.ulElement = this.curUL = ListBase.createList(this.createElement, this.curViewDS, this.listBaseOption, null, this);\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n this.setAttributes(this.liCollection);\n };\n ListView.prototype.exceptionEvent = function (e) {\n this.trigger('actionFailure', e);\n };\n ListView.prototype.UpdateCurrentUL = function () {\n this.ulElement = this.curUL = this.element.querySelector('.' + classNames.parentItem);\n if (this.curUL) {\n // eslint-disable-next-line\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n }\n };\n ListView.prototype.renderSubList = function (li) {\n this.liElement = li;\n var uID = li.getAttribute('data-uid');\n if (li.classList.contains(classNames.hasChild) && uID) {\n var ul = closest(li.parentNode, '.' + classNames.parentItem);\n var ele = this.element.querySelector('[pid=\\'' + uID + '\\']');\n this.curDSLevel.push(uID);\n this.setViewDataSource(this.getSubDS());\n if (!ele) {\n var data = this.curViewDS;\n ele = ListBase.createListFromJson(this.createElement, data, this.listBaseOption, this.curDSLevel.length, null, this);\n // eslint-disable-next-line\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var lists = ele.querySelectorAll('.' + classNames.listItem);\n this.setAttributes(lists);\n ele.setAttribute('pID', uID);\n ele.style.display = 'none';\n this.renderIntoDom(ele);\n }\n this.switchView(ul, ele);\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n if (this.selectedItems) {\n var fieldData = getFieldValues(this.selectedItems.data, this.listBaseOption.fields);\n // eslint-disable-next-line\n this.header((fieldData[this.listBaseOption.fields.text]), true, 'header');\n }\n this.selectedLI = undefined;\n }\n };\n ListView.prototype.renderIntoDom = function (ele) {\n this.contentContainer.appendChild(ele);\n };\n ListView.prototype.renderList = function (data) {\n this.setViewDataSource(data);\n if (this.enableVirtualization) {\n if (Object.keys(this.dataSource).length) {\n if ((this.template || this.groupTemplate) && !this.virtualizationModule.isNgTemplate()) {\n if (this.isReact || this.isVue) {\n if (typeof this.template == \"string\") {\n this.listBaseOption.template = null;\n }\n if (typeof this.groupTemplate == \"string\") {\n this.listBaseOption.groupTemplate = null;\n }\n }\n else {\n this.listBaseOption.template = null;\n this.listBaseOption.groupTemplate = null;\n }\n this.listBaseOption.itemCreated = this.virtualizationModule.createUIItem.bind(this.virtualizationModule);\n }\n }\n this.virtualizationModule.uiVirtualization();\n }\n else {\n this.createList();\n this.contentContainer = this.createElement('div', { className: classNames.container });\n this.element.appendChild(this.contentContainer);\n this.renderIntoDom(this.ulElement);\n // eslint-disable-next-line\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n };\n ListView.prototype.getElementUID = function (obj) {\n var fields = {};\n if (obj instanceof Element) {\n // eslint-disable-next-line\n fields[this.fields.id] = obj.getAttribute('data-uid');\n }\n else {\n fields = obj;\n }\n return fields;\n };\n /**\n * Initializes the ListView component rendering.\n */\n ListView.prototype.render = function () {\n this.element.classList.add(classNames.root);\n attributes(this.element, { role: 'list', tabindex: '0' });\n this.setCSSClass();\n this.setEnableRTL();\n this.setEnable();\n this.setSize();\n this.wireEvents();\n this.header();\n this.setLocalData();\n this.setHTMLAttribute();\n this.rippleFn = rippleEffect(this.element, {\n selector: '.' + classNames.listItem\n });\n this.renderComplete();\n };\n /**\n * It is used to destroy the ListView component.\n */\n ListView.prototype.destroy = function () {\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n this.unWireEvents();\n var classAr = [classNames.root, classNames.disable, 'e-rtl',\n 'e-has-header', 'e-lib'].concat(this.cssClass.split(' ').filter(function (css) { return css; }));\n removeClass([this.element], classAr);\n this.element.removeAttribute('role');\n this.element.removeAttribute('tabindex');\n this.curUL = this.ulElement = this.liCollection = this.headerEle = undefined;\n this.element.innerHTML = '';\n this.contentContainer = null;\n this.selectedItems = null;\n this.selectedLI = null;\n this.liElement = null;\n this.targetElement = null;\n this.currentLiElements = null;\n this.virtualCheckBox = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Switches back from the navigated sub list item.\n */\n ListView.prototype.back = function () {\n var pID = this.curDSLevel[this.curDSLevel.length - 1];\n if (pID === undefined || this.isInAnimation()) {\n return;\n }\n this.curDSLevel.pop();\n this.setViewDataSource(this.getSubDS());\n var toUL = this.element.querySelector('[data-uid=\\'' + pID + '\\']');\n var fromUL = this.curUL;\n if (!toUL) {\n this.createList();\n this.renderIntoDom(this.ulElement);\n toUL = this.curUL;\n }\n else {\n toUL = toUL.parentElement;\n }\n var fieldData = getFieldValues(this.curDSJSON, this.listBaseOption.fields);\n // eslint-disable-next-line\n var text = fieldData[this.fields.text];\n this.switchView(fromUL, toUL, true);\n this.removeFocus();\n var li = this.element.querySelector('[data-uid=\\'' + pID + '\\']');\n li.classList.remove(classNames.disable);\n li.classList.add(classNames.focused);\n if (!(this.showCheckBox && li.querySelector('.' + classNames.checkboxIcon).classList.contains(classNames.checked))) {\n li.classList.remove(classNames.selected);\n }\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n if (this.enableHtmlSanitizer) {\n this.setProperties({ headerTitle: SanitizeHtmlHelper.sanitize(this.headerTitle) }, true);\n }\n this.header((this.curDSLevel.length ? text : this.headerTitle), (this.curDSLevel.length ? true : false), 'header');\n };\n /**\n * Selects the list item from the ListView by passing the elements or field object.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.selectItem = function (item) {\n if (this.enableVirtualization) {\n this.virtualizationModule.selectItem(item);\n }\n else if (this.showCheckBox) {\n this.setCheckboxLI(this.getLiFromObjOrElement(item));\n }\n else {\n if (isNullOrUndefined(item) === true) {\n this.removeSelect();\n }\n else {\n this.setSelectLI(this.getLiFromObjOrElement(item));\n }\n }\n };\n ListView.prototype.getLiFromObjOrElement = function (obj) {\n var li;\n var dataSource = this.dataSource instanceof DataManager ?\n this.localData : this.dataSource;\n if (!isNullOrUndefined(obj)) {\n if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') {\n if (obj instanceof Element) {\n var uid = obj.getAttribute('data-uid').toString();\n for (var i = 0; i < this.liCollection.length; i++) {\n if (this.liCollection[i].getAttribute('data-uid').toString() === uid) {\n li = this.liCollection[i];\n break;\n }\n }\n }\n else {\n Array.prototype.some.call(this.curUL.querySelectorAll('.' + classNames.listItem), function (item) {\n if (item.innerText.trim() === obj.toString()) {\n li = item;\n return true;\n }\n else {\n return false;\n }\n });\n }\n }\n else {\n var resultJSON = this.getItemData(obj);\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\n if (resultJSON) {\n li = this.element.querySelector('[data-uid=\"'\n + fieldData[this.fields.id] + '\"]');\n if (!this.enableVirtualization && isNullOrUndefined(li)) {\n var curLi = this.element.querySelectorAll('.' + classNames.listItem);\n for (var i = 0; i < curLi.length; i++) {\n // eslint-disable-next-line\n if (curLi[i].innerText.trim() === fieldData[this.fields.text]) {\n li = curLi[i];\n }\n }\n }\n }\n }\n }\n return li;\n };\n /**\n * Selects multiple list items from the ListView.\n *\n * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of\n * elements or array of fields Object with ID and Text fields.\n */\n ListView.prototype.selectMultipleItems = function (item) {\n if (!isNullOrUndefined(item)) {\n for (var i = 0; i < item.length; i++) {\n if (!isNullOrUndefined(item[i])) {\n this.selectItem(item[i]);\n }\n }\n }\n };\n ListView.prototype.getParentId = function () {\n var parentId = [];\n if (this.isNestedList) {\n for (var i = this.curDSLevel.length - 1; i >= 0; i--) {\n parentId.push(this.curDSLevel[i]);\n }\n }\n return parentId;\n };\n ListView.prototype.updateSelectedId = function () {\n this.selectedId = [];\n var liCollection = this.curUL.getElementsByClassName(classNames.selected);\n for (var i = 0; i < liCollection.length; i++) {\n var tempData = this.getItemData(liCollection[i]);\n if (!isNullOrUndefined(tempData) && tempData[this.listBaseOption.fields.id]) {\n this.selectedId.push(tempData[this.listBaseOption.fields.id]);\n }\n }\n };\n /**\n * Gets the details of the currently selected item from the list items.\n *\n */\n ListView.prototype.getSelectedItems = function () {\n // eslint-disable-next-line\n var finalValue;\n var isCompleted = false;\n this.selectedId = [];\n var dataSource = this.dataSource instanceof DataManager ?\n this.localData : this.dataSource;\n if (this.enableVirtualization && !isCompleted) {\n finalValue = this.virtualizationModule.getSelectedItems();\n isCompleted = true;\n }\n else if (this.showCheckBox && !isCompleted) {\n // eslint-disable-next-line\n var liCollection = this.curUL.getElementsByClassName(classNames.selected);\n var liTextCollection = [];\n var liDataCollection = [];\n this.selectedId = [];\n var dataParent = [];\n for (var i = 0; i < liCollection.length; i++) {\n if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') {\n liTextCollection.push(liCollection[i].innerText.trim());\n }\n else {\n var tempData = this.getItemData(liCollection[i]);\n var fieldData = getFieldValues(tempData, this.listBaseOption.fields);\n if (this.isNestedList) {\n dataParent.push({ data: tempData, parentId: this.getParentId() });\n }\n else {\n liDataCollection.push(tempData);\n }\n if (fieldData) {\n // eslint-disable-next-line\n liTextCollection.push(fieldData[this.listBaseOption.fields.text]);\n // eslint-disable-next-line\n this.selectedId.push(fieldData[this.listBaseOption.fields.id]);\n }\n else {\n liTextCollection.push(undefined);\n this.selectedId.push(undefined);\n }\n }\n }\n if ((typeof dataSource[0] === 'string'\n || typeof dataSource[0] === 'number')\n && !isCompleted) {\n finalValue = { item: liCollection, data: dataSource, text: liTextCollection };\n isCompleted = true;\n }\n if (this.isNestedList && !isCompleted) {\n finalValue = { item: liCollection, data: dataParent, text: liTextCollection };\n isCompleted = true;\n }\n else if (!isCompleted) {\n finalValue = { item: liCollection, data: liDataCollection, text: liTextCollection };\n isCompleted = true;\n }\n }\n else if (!isCompleted) {\n var liElement = this.element.getElementsByClassName(classNames.selected)[0];\n var fieldData = getFieldValues(this.getItemData(liElement), this.listBaseOption.fields);\n if ((typeof dataSource[0] === 'string'\n || typeof dataSource[0] === 'number')\n && !isCompleted) {\n finalValue = (!isNullOrUndefined(liElement)) ? {\n item: liElement, data: dataSource,\n text: liElement.innerText.trim()\n } : undefined;\n isCompleted = true;\n }\n else if (!isCompleted) {\n if (isNullOrUndefined(fieldData) || isNullOrUndefined(liElement)) {\n finalValue = undefined;\n isCompleted = true;\n }\n else {\n // eslint-disable-next-line\n this.selectedId.push(fieldData[this.listBaseOption.fields.id]);\n finalValue = {\n text: fieldData[this.listBaseOption.fields.text], item: liElement,\n data: this.getItemData(liElement)\n };\n isCompleted = true;\n }\n }\n }\n return finalValue;\n };\n /**\n * Finds out an item details from the current list.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.findItem = function (item) {\n return this.getItemData(item);\n };\n /**\n * Enables the disabled list items by passing the Id and text fields.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.enableItem = function (item) {\n this.setItemState(item, true);\n if (this.enableVirtualization) {\n this.virtualizationModule.enableItem(item);\n }\n };\n /**\n * Disables the list items by passing the Id and text fields.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.disableItem = function (item) {\n this.setItemState(item, false);\n if (this.enableVirtualization) {\n this.virtualizationModule.disableItem(item);\n }\n };\n //A function that used to set state of the list item like enable, disable.\n ListView.prototype.setItemState = function (item, isEnable) {\n var resultJSON = this.getItemData(item);\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\n if (resultJSON) {\n var li = this.element.querySelector('[data-uid=\"' + fieldData[this.fields.id] + '\"]');\n if (isEnable) {\n if (li) {\n li.classList.remove(classNames.disable);\n }\n delete resultJSON[this.fields.enabled];\n }\n else if (!isEnable) {\n if (li) {\n li.classList.add(classNames.disable);\n }\n // eslint-disable-next-line\n resultJSON[this.fields.enabled] = false;\n }\n }\n };\n /**\n * Shows the hide list item from the ListView.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.showItem = function (item) {\n this.showHideItem(item, false, '');\n if (this.enableVirtualization) {\n this.virtualizationModule.showItem(item);\n }\n };\n /**\n * Hides an list item from the ListView.\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.hideItem = function (item) {\n this.showHideItem(item, true, 'none');\n if (this.enableVirtualization) {\n this.virtualizationModule.hideItem(item);\n }\n };\n ListView.prototype.showHideItem = function (obj, isHide, display) {\n var resultJSON = this.getItemData(obj);\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\n if (resultJSON) {\n var li = this.element.querySelector('[data-uid=\"' + fieldData[this.fields.id] + '\"]');\n if (li) {\n li.style.display = display;\n }\n if (isHide) {\n // eslint-disable-next-line\n resultJSON[this.fields.isVisible] = false;\n }\n else {\n delete resultJSON[this.fields.isVisible];\n }\n }\n };\n /**\n * Adds the new list item(s) to the current ListView.\n * To add a new list item(s) in the ListView, we need to pass the `data` as an array of items that need\n * to be added and `fields` as the target item to which we need to add the given item(s) as its children.\n * For example fields: { text: 'Name', tooltip: 'Name', id:'id'}\n *\n * @param {{Object}[]} data - JSON Array Data that need to add.\n *\n * @param {Fields} fields - Target item to add the given data as its children (can be null).\n *\n */\n ListView.prototype.addItem = function (data, fields) {\n if (fields === void 0) { fields = undefined; }\n var dataSource = this.dataSource instanceof DataManager\n ? this.localData : this.dataSource;\n this.addItemInternally(data, fields, dataSource);\n };\n ListView.prototype.addItemInternally = function (data, fields, dataSource) {\n if (data instanceof Array) {\n if (this.enableVirtualization) {\n this.virtualizationModule.addItem(data, fields, dataSource);\n }\n else {\n var ds = this.findItemFromDS(dataSource, fields);\n var child = void 0;\n if (ds) {\n var fieldData = getFieldValues(ds, this.listBaseOption.fields);\n child = fieldData[this.fields.child];\n if (!child) {\n child = [];\n }\n child = child.concat(data);\n }\n // check for whether target is nested level or top level in list\n if (ds instanceof Array) {\n for (var i = 0; i < data.length; i++) {\n dataSource.push(data[i]);\n this.setViewDataSource(dataSource);\n // since it is top level target, get the content container's first child\n // as it is always the top level UL\n var targetUL = this.contentContainer\n ? this.contentContainer.children[0]\n : null;\n // check for whether the list was previously empty or not, if it is\n // proceed to call initial render\n if (this.contentContainer && targetUL) {\n this.addItemIntoDom(data[i], targetUL, this.curViewDS);\n }\n else {\n this.reRender();\n }\n }\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\n }\n else {\n // proceed as target item is in nested level, only if it is a valid target ds\n if (ds) {\n ds[this.fields.child] = child;\n this.addItemInNestedList(ds, data);\n }\n }\n }\n }\n };\n ListView.prototype.addItemInNestedList = function (targetItemData, itemQueue) {\n // eslint-disable-next-line\n var targetItemId = targetItemData[this.fields.id];\n var targetChildDS = targetItemData[this.fields.child];\n var isAlreadyRenderedUL = this.element.querySelector('[pid=\\'' + targetItemId + '\\']');\n var targetLi = this.element.querySelector('[data-uid=\\'' + targetItemId + '\\']');\n var targetUL = isAlreadyRenderedUL\n ? isAlreadyRenderedUL\n : targetLi\n ? closest(targetLi, 'ul')\n : null;\n var targetDS = isAlreadyRenderedUL ? targetChildDS : [targetItemData];\n var isTargetEmptyChild = targetLi ? !targetLi.classList.contains(classNames.hasChild) : false;\n var isRefreshTemplateNeeded = false;\n // if li element is already rendered, that element needs to be refreshed so that\n // it becomes child viewable due to new child items are added now\n if (isTargetEmptyChild) {\n var targetRefreshedElement = ListBase.createListItemFromJson(this.createElement, targetDS, this.listBaseOption, null, null, this);\n this.setAttributes(targetRefreshedElement);\n targetUL.insertBefore(targetRefreshedElement[0], targetLi);\n detach(targetLi);\n isRefreshTemplateNeeded = true;\n }\n // if it is already rendered element, we need to create and append new elements\n if (isAlreadyRenderedUL && itemQueue) {\n for (var i = 0; i < itemQueue.length; i++) {\n targetDS.push(itemQueue[i]);\n this.addItemIntoDom(itemQueue[i], targetUL, targetDS);\n }\n isRefreshTemplateNeeded = true;\n }\n };\n ListView.prototype.addItemIntoDom = function (currentItem, targetUL, curViewDS) {\n var index = curViewDS.indexOf(currentItem);\n this.addListItem(currentItem, index, targetUL, curViewDS);\n var curItemDS = curViewDS[index - 1];\n if (curItemDS && curItemDS.isHeader && curItemDS.items.length === 1) {\n this.addListItem(curItemDS, (index - 1), targetUL, curViewDS);\n }\n };\n ListView.prototype.addListItem = function (dataSource, index, ulElement, curViewDS) {\n var target = this.getLiFromObjOrElement(curViewDS[index + 1]) ||\n this.getLiFromObjOrElement(curViewDS[index + 2]) || null;\n var li = ListBase.createListItemFromJson(this.createElement, [dataSource], this.listBaseOption, null, null, this);\n this.setAttributes(li);\n // eslint-disable-next-line\n if (this.template && this.isReact) {\n this.renderReactTemplates();\n }\n if (this.fields.groupBy && curViewDS[index + 1] && curViewDS[index + 1].isHeader) {\n var targetEle = this.getLiFromObjOrElement(curViewDS[index - 1]);\n if (targetEle) {\n target = targetEle.nextElementSibling;\n }\n }\n ulElement.insertBefore(li[0], target);\n };\n /**\n * Removes the list item from the data source based on a passed\n * element like fields: { text: 'Name', tooltip: 'Name', id:'id'}\n *\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\n */\n ListView.prototype.removeItem = function (item) {\n var listDataSource = this.dataSource instanceof DataManager\n ? this.localData : this.dataSource;\n if (this.enableVirtualization) {\n this.virtualizationModule.removeItem(item);\n }\n else {\n this.removeItemFromList(item, listDataSource);\n }\n };\n ListView.prototype.removeItemFromList = function (obj, listDataSource) {\n var _this = this;\n var curViewDS = this.curViewDS;\n var fields = obj instanceof Element ? this.getElementUID(obj) : obj;\n var dataSource;\n // eslint-disable-next-line prefer-const\n dataSource = this.findItemFromDS(listDataSource, fields, true);\n if (dataSource) {\n var data_1;\n // eslint-disable-next-line prefer-const\n data_1 = this.findItemFromDS(dataSource, fields);\n var index = curViewDS.indexOf(data_1);\n var li = this.getLiFromObjOrElement(obj);\n var groupLi = void 0;\n this.validateNestedView(li);\n if (this.fields.groupBy && this.curViewDS[index - 1] &&\n curViewDS[index - 1].isHeader &&\n curViewDS[index - 1].items.length === 1) {\n if (li && li.previousElementSibling.classList.contains(classNames.groupListItem) &&\n (isNullOrUndefined(li.nextElementSibling) || (li.nextElementSibling &&\n li.nextElementSibling.classList.contains(classNames.groupListItem)))) {\n groupLi = li.previousElementSibling;\n }\n }\n if (li) {\n detach(li);\n }\n if (groupLi) {\n detach(groupLi);\n }\n // eslint-disable-next-line\n var foundData = (dataSource.length - 1) <= 0\n ? this.findParent(this.localData, this.fields.id, \n // eslint-disable-next-line\n function (value) { return value === data_1[_this.fields.id]; }, null) : null;\n var dsIndex = dataSource.indexOf(data_1);\n dataSource.splice(dsIndex, 1);\n this.setViewDataSource(listDataSource);\n if (foundData\n && foundData.parent\n && Array.isArray(foundData.parent[this.fields.child])\n && foundData.parent[this.fields.child].length <= 0) {\n var parentLi = this.getLiFromObjOrElement(foundData.parent);\n if (parentLi) {\n var li_1 = ListBase.createListItemFromJson(this.createElement, [foundData.parent], this.listBaseOption, null, null, this);\n this.setAttributes(li_1);\n parentLi.parentElement.insertBefore(li_1[0], parentLi);\n parentLi.parentElement.removeChild(parentLi);\n }\n }\n if (dataSource.length <= 0) {\n this.back();\n }\n this.liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem));\n }\n };\n // validate before removing an element whether the current view is inside target element's child view\n ListView.prototype.validateNestedView = function (li) {\n var liID = li ? li.getAttribute('data-uid').toString().toLowerCase() : null;\n if (liID && this.curDSLevel && this.curDSLevel.length > 0) {\n while (this.curDSLevel.some(function (id) { return id.toString().toLowerCase() === liID; })) {\n this.back();\n }\n }\n };\n /**\n * Removes multiple items from the ListView by passing the array of elements or array of field objects.\n *\n * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of elements or array of field Object with ID and Text fields.\n */\n ListView.prototype.removeMultipleItems = function (item) {\n if (item.length) {\n for (var i = 0; i < item.length; i++) {\n this.removeItem(item[i]);\n }\n }\n };\n // eslint-disable-next-line\n ListView.prototype.findParent = function (dataSource, id, callback, parent) {\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource.hasOwnProperty(id) && callback(dataSource[id]) === true) {\n return extend({}, dataSource);\n }\n for (var i = 0; i < Object.keys(dataSource).length; i++) {\n if (dataSource[Object.keys(dataSource)[i]]\n && typeof dataSource[Object.keys(dataSource)[i]] === 'object') {\n // eslint-disable-next-line\n var result = this.findParent(dataSource[Object.keys(dataSource)[i]], id, callback, dataSource);\n if (result != null) {\n if (!result.parent) {\n result.parent = parent;\n }\n return result;\n }\n }\n }\n return null;\n };\n // Module Required function\n ListView.prototype.getModuleName = function () {\n return 'listview';\n };\n ListView.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableVirtualization) {\n modules.push({ args: [this], member: 'virtualization' });\n }\n return modules;\n };\n /**\n * Get the properties to be maintained in the persisted state.\n */\n ListView.prototype.getPersistData = function () {\n return this.addOnPersist(['cssClass', 'enableRtl', 'htmlAttributes',\n 'enable', 'fields', 'animation', 'headerTitle',\n 'sortOrder', 'showIcon', 'height', 'width', 'showCheckBox', 'checkBoxPosition', 'selectedId']);\n };\n __decorate([\n Property('')\n ], ListView.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"enableVirtualization\", void 0);\n __decorate([\n Property({})\n ], ListView.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], ListView.prototype, \"enable\", void 0);\n __decorate([\n Property([])\n ], ListView.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], ListView.prototype, \"query\", void 0);\n __decorate([\n Complex(ListBase.defaultMappedFields, FieldSettings)\n ], ListView.prototype, \"fields\", void 0);\n __decorate([\n Property({ effect: 'SlideLeft', duration: 400, easing: 'ease' })\n ], ListView.prototype, \"animation\", void 0);\n __decorate([\n Property('None')\n ], ListView.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"showIcon\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"showCheckBox\", void 0);\n __decorate([\n Property('Left')\n ], ListView.prototype, \"checkBoxPosition\", void 0);\n __decorate([\n Property('')\n ], ListView.prototype, \"headerTitle\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"showHeader\", void 0);\n __decorate([\n Property(false)\n ], ListView.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property('')\n ], ListView.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], ListView.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], ListView.prototype, \"template\", void 0);\n __decorate([\n Property(null)\n ], ListView.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ListView.prototype, \"groupTemplate\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], ListView.prototype, \"actionFailure\", void 0);\n ListView = __decorate([\n NotifyPropertyChanges\n ], ListView);\n return ListView;\n}(Component));\nexport { ListView };\n","import { createElement, Browser, isBlazor, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { TreeView } from '@syncfusion/ej2-navigations';\nimport { ListView } from '@syncfusion/ej2-lists';\nimport { AjaxHandler } from '../index';\n/**\n * BookmarkView module\n */\nvar BookmarkView = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function BookmarkView(pdfViewer, pdfViewerBase) {\n var _this = this;\n /**\n * @private\n */\n this.childNavigateCount = 0;\n // eslint-disable-next-line\n this.bookmarkClick = function (args) {\n // eslint-disable-next-line\n if (!args.event.target.classList.contains('e-icons')) {\n var bookid = args.data.Id;\n _this.childNavigateCount = 0;\n _this.pdfViewerBase.navigationPane.goBackToToolbar();\n // eslint-disable-next-line\n var selectedItem = _this.bookmarkList.getSelectedItems();\n _this.navigateToBookmark(bookid, args.text, selectedItem.data.FileName);\n }\n else {\n _this.childNavigateCount++;\n }\n return false;\n };\n this.nodeClick = function (args) {\n _this.setHeight(args.node);\n var bookid = Number(args.nodeData.id);\n // eslint-disable-next-line\n var data = _this.treeObj.getTreeData(args.node);\n _this.navigateToBookmark(bookid, args.node.textContent, data[0].FileName);\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 return false;\n };\n this.bookmarkPanelBeforeOpen = function (args) {\n if (_this.pdfViewer.enableBookmarkStyles) {\n for (var k = 0; k < _this.bookmarkStyles.length; k++) {\n if ((args.text.trim()) === (_this.bookmarkStyles[k].Text.trim())) {\n // eslint-disable-next-line\n var element = args.node.lastElementChild;\n if (element) {\n // eslint-disable-next-line\n var fontStyle = _this.bookmarkStyles[k].FontStyle.split(',');\n for (var n = 0; n < fontStyle.length; n++) {\n switch (fontStyle[n].trim()) {\n case 'Italic':\n element.style.fontStyle = 'italic';\n break;\n case 'Bold':\n element.style.fontWeight = 'Bold';\n }\n }\n // eslint-disable-next-line\n var currentElement = element.getElementsByClassName('e-pv-bookmark-title')[0];\n if (currentElement) {\n currentElement.style.color = _this.bookmarkStyles[k].Color;\n }\n else {\n element.children[0].style.color = _this.bookmarkStyles[k].Color;\n }\n }\n break;\n }\n }\n }\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n BookmarkView.prototype.createRequestForBookmarks = function () {\n var proxy = this;\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: this.pdfViewerBase.hashId, action: 'Bookmarks', elementId: this.pdfViewer.element.id, uniqueId: this.pdfViewerBase.documentId };\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n if (this.pdfViewer.enableBookmarkStyles) {\n // eslint-disable-next-line\n jsonObject.bookmarkStyles = this.pdfViewer.enableBookmarkStyles;\n }\n this.bookmarkRequestHandler = new AjaxHandler(this.pdfViewer);\n this.bookmarkRequestHandler.url = proxy.pdfViewer.serviceUrl + '/Bookmarks';\n this.bookmarkRequestHandler.responseType = 'json';\n this.bookmarkRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.bookmarkRequestHandler.onSuccess = function (result) {\n if (proxy.pdfViewerBase.navigationPane) {\n proxy.pdfViewerBase.navigationPane.disableBookmarkButton();\n }\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.pdfViewerBase.checkRedirection(data);\n if (!redirect) {\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, 'Bookmarks');\n data = null;\n }\n }\n if (data && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess('Bookmarks', data);\n proxy.bookmarks = { bookMark: data.Bookmarks };\n proxy.bookmarkStyles = data.Bookmarkstyles;\n proxy.bookmarksDestination = { bookMarkDestination: data.BookmarksDestination };\n if (isBlazor()) {\n // eslint-disable-next-line\n var bookmarkCollection = { bookmarks: proxy.bookmarks, bookmarksDestination: proxy.bookmarksDestination };\n if (proxy.pdfViewer && proxy.pdfViewer._dotnetInstance) {\n proxy.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateBookmarkCollection', bookmarkCollection);\n }\n }\n }\n }\n if (proxy.pdfViewerBase.navigationPane) {\n if (proxy.bookmarks == null) {\n proxy.pdfViewerBase.navigationPane.disableBookmarkButton();\n if (isBlazor() && proxy.pdfViewer._dotnetInstance) {\n proxy.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateBookmarkCollection', null);\n }\n }\n else {\n proxy.pdfViewerBase.navigationPane.enableBookmarkButton();\n proxy.isBookmarkViewDiv = false;\n if (proxy.pdfViewer.isBookmarkPanelOpen) {\n proxy.pdfViewerBase.navigationPane.openBookmarkcontentInitially();\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.bookmarkRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, 'Bookmarks');\n };\n // eslint-disable-next-line\n this.bookmarkRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, 'Bookmarks');\n };\n };\n /**\n * @private\n */\n BookmarkView.prototype.renderBookmarkcontent = function () {\n var _this = this;\n if (!this.isBookmarkViewDiv) {\n var isblazor = isBlazor();\n // eslint-disable-next-line max-len\n this.bookmarkView = isblazor ? this.pdfViewer.element.querySelector('.e-pv-bookmark-view') : createElement('div', { id: this.pdfViewer.element.id + '_bookmark_view', className: 'e-pv-bookmark-view' });\n this.pdfViewerBase.navigationPane.sideBarContent.appendChild(this.bookmarkView);\n // eslint-disable-next-line max-len\n var bookmarkIconView_1 = createElement('div', { id: this.pdfViewer.element.id + '_bookmark_iconview', className: 'e-pv-bookmark-icon-view' });\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n var bookmarkIcon = createElement('span', { id: this.pdfViewer.element.id + '_bookmark_icon', className: 'e-pv-bookmark-icon e-pv-icon' });\n bookmarkIconView_1.appendChild(bookmarkIcon);\n }\n else {\n // eslint-disable-next-line max-len\n var bookmarkIcon = createElement('span', { id: this.pdfViewer.element.id + '_bookmark_icon', className: 'e-pv-bookmark-icon e-pv-icon e-right' });\n bookmarkIconView_1.appendChild(bookmarkIcon);\n }\n // eslint-disable-next-line max-len\n var bookmarkTitle = createElement('div', { id: this.pdfViewer.element.id + '_bookmark_Title', className: 'e-pv-bookmark-title' });\n if (this.pdfViewer.enableRtl) {\n bookmarkTitle.style.paddingRight = 26 + 'px';\n }\n bookmarkTitle.innerText = '${Title}';\n bookmarkIconView_1.appendChild(bookmarkTitle);\n if (!isblazor) {\n // eslint-disable-next-line max-len\n this.treeObj = new TreeView({\n fields: {\n dataSource: this.bookmarks.bookMark,\n id: 'Id',\n text: 'Title',\n child: 'Child',\n hasChildren: 'HasChild'\n },\n nodeTemplate: initializeCSPTemplate(function (data) { return bookmarkIconView_1.outerHTML.replace('${Title}', data.Title); }),\n nodeSelected: this.nodeClick.bind(this),\n drawNode: this.bookmarkPanelBeforeOpen.bind(this)\n });\n this.treeObj.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.treeObj.enableRtl = true;\n }\n this.treeObj.appendTo(this.bookmarkView);\n }\n // eslint-disable-next-line\n var event_1 = ['mouseover', 'keydown'];\n for (var m = 0; m < event_1.length; m++) {\n this.bookmarkView.addEventListener(event_1[m], function (event) {\n _this.setHeight(event.target);\n });\n }\n this.isBookmarkViewDiv = true;\n }\n this.bookmarkView.style.display = 'block';\n };\n /**\n * @private\n */\n BookmarkView.prototype.renderBookmarkContentMobile = function () {\n if (this.bookmarkView != null) {\n this.bookmarkView.remove();\n }\n this.bookmarkView = createElement('div', { id: this.pdfViewer.element.id + '_bookmark_view', className: 'e-pv-bookmark-view' });\n this.pdfViewerBase.getElement('_bookmarks_container').appendChild(this.bookmarkView);\n this.bookmarkList = new ListView({\n dataSource: this.bookmarks.bookMark,\n fields: {\n id: 'Id',\n text: 'Title',\n child: 'Child'\n },\n showHeader: false,\n select: this.bookmarkClick.bind(this)\n });\n this.bookmarkList.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.bookmarkList.enableRtl = true;\n }\n this.bookmarkList.appendTo(this.bookmarkView);\n };\n // eslint-disable-next-line\n BookmarkView.prototype.setHeight = function (element) {\n if (this.treeObj) {\n if (this.treeObj.fullRowSelect && element.classList) {\n if (element.classList.contains('e-treeview') && element.classList.contains('.e-active')) {\n element = element.querySelector('.e-active').querySelector('.e-fullrow');\n }\n else if (element.classList.contains('e-treeview')) {\n element = element.querySelector('.e-fullrow');\n }\n else if (element.classList.contains('e-list-parent')) {\n element = element.querySelector('.e-fullrow');\n }\n else if (element.classList.value !== ('e-fullrow')) {\n if (element.closest && element.closest('.e-list-item')) {\n element = element.closest('.e-list-item').querySelector('.e-fullrow');\n }\n else {\n if (element.classList.contains('e-list-item')) {\n element = element.querySelector('.e-fullrow');\n }\n else if (element.classList.contains('e-icons') && element.classList.contains('interaction')\n && element.parentElement.parentElement.classList.contains('e-list-item')) {\n element = element.parentElement.parentElement.querySelector('.e-fullrow');\n }\n }\n }\n if (element.nextElementSibling) {\n element.style.height = element.nextElementSibling.offsetHeight + 'px';\n }\n }\n }\n };\n /**\n * @private\n */\n BookmarkView.prototype.setBookmarkContentHeight = function () {\n if (this.treeObj) {\n // eslint-disable-next-line\n var element = this.treeObj.element;\n if (this.treeObj.fullRowSelect) {\n if (element.classList.contains('e-treeview') && element.classList.contains('.e-active')) {\n element = element.querySelector('.e-active').querySelector('.e-fullrow');\n }\n else if (element.classList.contains('e-treeview')) {\n element = element.querySelector('.e-fullrow');\n }\n if (element.nextElementSibling) {\n element.style.height = element.nextElementSibling.offsetHeight + 'px';\n }\n }\n }\n };\n BookmarkView.prototype.navigateToBookmark = function (bookid, text, fileName) {\n var pageIndex = this.bookmarksDestination.bookMarkDestination[bookid].PageIndex;\n var Y = this.bookmarksDestination.bookMarkDestination[bookid].Y;\n if (pageIndex !== -1) {\n this.goToBookmark(pageIndex, Y);\n }\n this.pdfViewer.fireBookmarkClick(pageIndex !== -1 ? pageIndex + 1 : pageIndex, Y, text, fileName);\n };\n /**\n * Get Bookmarks of the PDF document being loaded in the ejPdfViewer control\n *\n * @returns any\n */\n // eslint-disable-next-line\n BookmarkView.prototype.getBookmarks = function () {\n if (this.bookmarks && this.bookmarksDestination) {\n // eslint-disable-next-line max-len\n return { bookmarks: this.bookmarks, bookmarksDestination: this.bookmarksDestination };\n }\n };\n /**\n * Navigate To current Bookmark location of the PDF document being loaded in the ejPdfViewer control.\n *\n * @param {number} pageIndex - Specifies the pageIndex for Navigate\n * @param {number} y - Specifies the Y coordinates value of the Page\n * @returns void\n */\n BookmarkView.prototype.goToBookmark = function (pageIndex, y) {\n var proxy = this;\n var destPage = (this.pdfViewerBase.pageSize[pageIndex].height);\n var scrollValue;\n if (y === 0) {\n scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor();\n }\n else {\n // eslint-disable-next-line max-len\n scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + ((destPage - y) * this.pdfViewerBase.getZoomFactor());\n }\n var scroll = scrollValue.toString();\n // eslint-disable-next-line radix\n proxy.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = '';\n this.pdfViewerBase.updateMobileScrollerPosition();\n }\n proxy.pdfViewerBase.focusViewerContainer();\n return false;\n };\n /**\n * @private\n */\n BookmarkView.prototype.clear = function () {\n if (this.pdfViewerBase.navigationPane) {\n this.pdfViewerBase.navigationPane.disableBookmarkButton();\n this.pdfViewerBase.navigationPane.updateViewerContainerOnClose();\n }\n if (this.bookmarks) {\n this.bookmarks.bookMark = [];\n this.bookmarks = null;\n }\n if (this.bookmarksDestination) {\n this.bookmarksDestination.bookMarkDestination = [];\n }\n if (this.bookmarkView != null && !isBlazor()) {\n if (this.bookmarkView.parentElement !== null) {\n this.bookmarkView.parentElement.removeChild(this.bookmarkView);\n }\n while (this.bookmarkView.hasChildNodes()) {\n this.bookmarkView.removeChild(this.bookmarkView.lastChild);\n }\n }\n if (this.bookmarkRequestHandler) {\n this.bookmarkRequestHandler.clear();\n }\n };\n /**\n * @private\n */\n BookmarkView.prototype.destroy = function () {\n this.clear();\n };\n /**\n * @private\n */\n BookmarkView.prototype.getModuleName = function () {\n return 'BookmarkView';\n };\n return BookmarkView;\n}());\nexport { BookmarkView };\n","/* eslint-disable */\nimport { AjaxHandler } from '../index';\nimport { createElement } from '@syncfusion/ej2-base';\n/**\n * The `ThumbnailView` module is used to handle thumbnail view navigation of PDF viewer.\n */\nvar ThumbnailView = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function ThumbnailView(pdfViewer, pdfViewerBase) {\n var _this = this;\n this.thumbnailLimit = 30;\n this.thumbnailThreshold = 50;\n this.thumbnailTopMargin = 10;\n /**\n * @private\n */\n this.isThumbnailClicked = false;\n /**\n * @param event\n * @private\n */\n this.thumbnailClick = function (event) {\n var proxy = _this;\n var pageNumber = proxy.getPageNumberFromID(event.srcElement.id);\n if (proxy.previousElement) {\n proxy.previousElement.classList.remove('e-pv-thumbnail-selection');\n proxy.previousElement.classList.remove('e-pv-thumbnail-focus');\n proxy.previousElement.classList.add('e-pv-thumbnail-selection-ring');\n }\n if (event.srcElement.parentElement.id === proxy.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n proxy.setSelectionStyle(event.srcElement.parentElement);\n proxy.previousElement = event.srcElement.parentElement;\n }\n else if (event.srcElement.id === proxy.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n proxy.setSelectionStyle(event.srcElement);\n proxy.previousElement = event.srcElement;\n }\n proxy.pdfViewer.fireThumbnailClick(pageNumber + 1);\n proxy.isThumbnailClicked = true;\n proxy.goToThumbnailPage(pageNumber + 1);\n proxy.pdfViewerBase.focusViewerContainer();\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 event\n * @private\n */\n this.thumbnailMouseOver = function (event) {\n var proxy = _this;\n var pageNumber = proxy.getPageNumberFromID(event.srcElement.id);\n if (event.srcElement.id === proxy.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n proxy.setMouseOverStyle(event.srcElement);\n }\n else if (event.srcElement.id === proxy.pdfViewer.element.id + '_thumbnail_image_' + pageNumber) {\n proxy.setMouseOverStyle(event.srcElement.parentElement);\n }\n };\n /**\n * @param event\n * @private\n */\n this.thumbnailMouseLeave = function (event) {\n var proxy = _this;\n var pageNumber = proxy.getPageNumberFromID(event.srcElement.id);\n if (event.srcElement.parentElement.id === proxy.pdfViewer.element.id + '_thumbnail_view') {\n proxy.setMouseLeaveStyle(event.srcElement.children[0].children[0]);\n }\n else if (event.srcElement.parentElement.id === proxy.pdfViewer.element.id + '_thumbnail_' + pageNumber) {\n proxy.setMouseLeaveStyle(event.srcElement.parentElement.children[0]);\n }\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n ThumbnailView.prototype.createThumbnailContainer = function () {\n // eslint-disable-next-line max-len\n this.thumbnailView = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_view', className: 'e-pv-thumbnail-view e-pv-thumbnail-row' });\n this.pdfViewerBase.navigationPane.sideBarContent.appendChild(this.thumbnailView);\n };\n /**\n * Open the thumbnail pane of the PdfViewer.\n *\n * @returns void\n */\n ThumbnailView.prototype.openThumbnailPane = function () {\n if (this.pdfViewerBase.navigationPane) {\n this.pdfViewerBase.navigationPane.openThumbnailPane();\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n ThumbnailView.prototype.createRequestForThumbnails = function () {\n var proxy = this;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n // eslint-disable-next-line\n return new Promise(\n // eslint-disable-next-line\n function (renderThumbnailImage, reject) {\n proxy.requestCreation(proxy);\n });\n }\n else {\n this.requestCreation(proxy);\n return null;\n }\n };\n ThumbnailView.prototype.requestCreation = function (proxy) {\n // Removed the condition to skip multiple request for thumbnail image.\n proxy.startIndex = proxy.thumbnailLimit;\n // eslint-disable-next-line max-len\n proxy.thumbnailLimit = proxy.startIndex + proxy.thumbnailThreshold < proxy.pdfViewer.pageCount ? proxy.startIndex + proxy.thumbnailThreshold : proxy.pdfViewer.pageCount;\n var digitalSignaturePresent = false;\n for (var i = proxy.startIndex; i < proxy.thumbnailLimit; i++) {\n if (proxy.pdfViewerBase.digitalSignaturePresent(i)) {\n digitalSignaturePresent = true;\n }\n }\n var digitalSignatureList = \"\";\n if (digitalSignaturePresent) {\n digitalSignatureList = proxy.pdfViewerBase.digitalSignaturePages.toString();\n }\n // eslint-disable-next-line max-len\n var jsonObject = { startPage: proxy.startIndex.toString(), endPage: proxy.thumbnailLimit.toString(), sizeX: \"99.7\", sizeY: \"141\", hashId: proxy.pdfViewerBase.hashId, action: 'RenderThumbnailImages', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId, digitalSignaturePresent: digitalSignaturePresent, digitalSignaturePageList: digitalSignatureList };\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n this.thumbnailRequestHandler = new AjaxHandler(this.pdfViewer);\n this.thumbnailRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.renderThumbnail;\n this.thumbnailRequestHandler.responseType = 'json';\n this.thumbnailRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.thumbnailRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.pdfViewerBase.checkRedirection(data);\n if (!redirect) {\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, proxy.pdfViewer.serverActionSettings.renderThumbnail);\n data = null;\n }\n }\n if (data && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderThumbnail, data);\n proxy.renderThumbnailImage(data);\n if (proxy.pdfViewer.isThumbnailViewOpen) {\n proxy.pdfViewerBase.navigationPane.isThumbnailOpen = true;\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.navigationPane.sideBarTitle.textContent = proxy.pdfViewer.localeObj.getConstant('Page Thumbnails');\n document.getElementById(proxy.pdfViewer.element.id + '_thumbnail_view').style.display = 'flex';\n var bookmarkContent = proxy.pdfViewer.element.querySelector('.e-pv-bookmark-view');\n if (bookmarkContent) {\n bookmarkContent.style.display = 'none';\n }\n proxy.pdfViewerBase.navigationPane.setThumbnailSelectionIconTheme();\n proxy.pdfViewerBase.navigationPane.updateViewerContainerOnExpand();\n proxy.pdfViewerBase.navigationPane.isBookmarkOpen = false;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.thumbnailRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderThumbnail);\n };\n // eslint-disable-next-line\n this.thumbnailRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderThumbnail);\n };\n };\n /**\n * @param pageNumber\n * @private\n */\n ThumbnailView.prototype.gotoThumbnailImage = function (pageNumber) {\n var shouldScroll = this.checkThumbnailScroll(pageNumber);\n if (this.thumbnailView) {\n var thumbnailChild = this.thumbnailView.children[pageNumber];\n if (thumbnailChild) {\n var thumbnailDiv = thumbnailChild.children[0];\n if (shouldScroll) {\n var offsetTop = thumbnailDiv.offsetTop + thumbnailDiv.clientTop - this.thumbnailTopMargin;\n this.pdfViewerBase.navigationPane.sideBarContent.scrollTop = offsetTop;\n }\n if (!this.isThumbnailClicked) {\n if (this.previousElement) {\n this.previousElement.classList.remove('e-pv-thumbnail-selection');\n this.previousElement.classList.remove('e-pv-thumbnail-focus');\n this.previousElement.classList.remove('e-pv-thumbnail-hover');\n this.previousElement.classList.add('e-pv-thumbnail-selection-ring');\n }\n this.setFocusStyle(thumbnailDiv, pageNumber);\n }\n this.previousElement = thumbnailDiv.children[0];\n }\n }\n };\n ThumbnailView.prototype.checkThumbnailScroll = function (pageNumber) {\n var shouldScroll = false;\n if (this.thumbnailView) {\n var visibleThumbs = this.getVisibleThumbs();\n var numVisibleThumbs = visibleThumbs.views.length;\n // if the thumbnail isn't currently visible, scroll it into view.\n if (numVisibleThumbs > 0) {\n var visibleFirstPageID = this.getPageNumberFromID(visibleThumbs.first.id);\n // account for only one thumbnail being visible.\n // eslint-disable-next-line max-len\n var visibleLastPageID = (numVisibleThumbs > 1 ? this.getPageNumberFromID(visibleThumbs.last.id) : visibleFirstPageID);\n if (pageNumber <= visibleFirstPageID || pageNumber >= visibleLastPageID) {\n shouldScroll = true;\n }\n else {\n // eslint-disable-next-line\n visibleThumbs.views.some(function (view) {\n var pageID = view.id.split('_');\n var thumbPageNumber = pageID[pageID.length - 1];\n // eslint-disable-next-line radix\n if (parseInt(thumbPageNumber) !== pageNumber) {\n return false;\n }\n shouldScroll = view.percent < 100;\n return true;\n });\n }\n }\n }\n return shouldScroll;\n };\n ThumbnailView.prototype.getPageNumberFromID = function (pageId) {\n var pageID = pageId.split('_');\n var pageNumber = pageID[pageID.length - 1];\n // eslint-disable-next-line radix\n return parseInt(pageNumber);\n };\n ThumbnailView.prototype.setFocusStyle = function (thumbnail, pageNumber) {\n if (thumbnail.children[0].id === this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageNumber) {\n this.setMouseFocusStyle(thumbnail.children[0]);\n }\n };\n // eslint-disable-next-line\n ThumbnailView.prototype.renderThumbnailImage = function (data) {\n if (this.thumbnailView) {\n var startPage = (data && isNaN(data.startPage)) ? data.startPage : this.startIndex;\n var endPage = (data && isNaN(data.endPage)) ? data.endPage : this.thumbnailLimit;\n for (var i = startPage; i < endPage; i++) {\n // eslint-disable-next-line max-len\n var pageLink = createElement('a', { id: 'page_' + i, attrs: { 'aria-label': 'Thumbnail of Page' + (i + 1), 'tabindex': '-1', 'role': 'link' }, className: 'e-pv-thumbnail-anchor-node' });\n // eslint-disable-next-line max-len\n var thumbnail = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_' + i, className: 'e-pv-thumbnail e-pv-thumbnail-column' });\n // eslint-disable-next-line max-len\n this.thumbnailSelectionRing = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + i, className: 'e-pv-thumbnail-selection-ring' });\n thumbnail.appendChild(this.thumbnailSelectionRing);\n // eslint-disable-next-line max-len\n var thumbnailPageNumber = createElement('div', { id: this.pdfViewer.element.id + '_thumbnail_pagenumber_' + i, className: 'e-pv-thumbnail-number' });\n thumbnailPageNumber.textContent = (i + 1).toString();\n thumbnail.appendChild(thumbnailPageNumber);\n // eslint-disable-next-line max-len\n this.thumbnailImage = createElement('img', { id: this.pdfViewer.element.id + '_thumbnail_image_' + i, className: 'e-pv-thumbnail-image' });\n this.thumbnailImage.src = data.thumbnailImage[i];\n this.thumbnailImage.alt = this.pdfViewer.element.id + '_thumbnail_page_' + i;\n if (this.pdfViewerBase.pageSize[i] && (this.pdfViewerBase.pageSize[i].height < this.pdfViewerBase.pageSize[i].width)) {\n this.thumbnailImage.style.height = '86px';\n this.thumbnailImage.style.width = '126px';\n thumbnail.style.height = '100px';\n thumbnail.style.width = '140px';\n pageLink.style.left = '-25px';\n pageLink.style.position = 'relative';\n thumbnailPageNumber.style.left = '18px';\n thumbnailPageNumber.style.position = 'relative';\n }\n this.thumbnailSelectionRing.appendChild(this.thumbnailImage);\n pageLink.appendChild(thumbnail);\n this.thumbnailView.appendChild(pageLink);\n this.wireUpEvents();\n if (i === 0) {\n this.setMouseFocusToFirstPage();\n }\n }\n }\n this.pdfViewerBase.navigationPane.enableThumbnailButton();\n if (this.thumbnailLimit !== this.pdfViewerBase.pageCount && this.thumbnailView) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n Promise.all([this.createRequestForThumbnails()]);\n }\n else {\n this.createRequestForThumbnails();\n }\n }\n };\n ThumbnailView.prototype.wireUpEvents = function () {\n if (this.thumbnailSelectionRing) {\n this.thumbnailSelectionRing.addEventListener('click', this.thumbnailClick);\n this.thumbnailSelectionRing.addEventListener('mouseover', this.thumbnailMouseOver);\n this.thumbnailSelectionRing.addEventListener('mouseleave', this.thumbnailMouseLeave);\n }\n };\n ThumbnailView.prototype.unwireUpEvents = function () {\n if (this.thumbnailSelectionRing && this.thumbnailImage) {\n this.thumbnailSelectionRing.removeEventListener('click', this.thumbnailClick);\n this.thumbnailSelectionRing.removeEventListener('mouseover', this.thumbnailMouseOver);\n this.thumbnailSelectionRing.removeEventListener('mouseleave', this.thumbnailMouseLeave);\n }\n };\n ThumbnailView.prototype.goToThumbnailPage = function (pageNumber) {\n if (pageNumber > 0 && pageNumber <= this.pdfViewerBase.pageCount && this.pdfViewerBase.currentPageNumber !== pageNumber) {\n this.pdfViewerBase.updateScrollTop(pageNumber - 1);\n }\n else {\n this.isThumbnailClicked = false;\n }\n };\n ThumbnailView.prototype.setSelectionStyle = function (thumbnailElement) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection-ring');\n thumbnailElement.classList.remove('e-pv-thumbnail-hover');\n thumbnailElement.classList.remove('e-pv-thumbnail-focus');\n thumbnailElement.classList.add('e-pv-thumbnail-selection');\n };\n ThumbnailView.prototype.setMouseOverStyle = function (thumbnailElement) {\n // eslint-disable-next-line max-len\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-selection')) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection-ring');\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-focus')) {\n thumbnailElement.classList.add('e-pv-thumbnail-hover');\n }\n }\n };\n ThumbnailView.prototype.setMouseLeaveStyle = function (thumbnailElement) {\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-selection')) {\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-focus')) {\n thumbnailElement.classList.add('e-pv-thumbnail-selection-ring');\n }\n thumbnailElement.classList.remove('e-pv-thumbnail-hover');\n }\n else {\n if (!thumbnailElement.classList.contains('e-pv-thumbnail-selection')) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection');\n thumbnailElement.classList.add('e-pv-thumbnail-focus');\n }\n }\n };\n ThumbnailView.prototype.setMouseFocusStyle = function (thumbnailElement) {\n thumbnailElement.classList.remove('e-pv-thumbnail-selection');\n thumbnailElement.classList.remove('e-pv-thumbnail-hover');\n thumbnailElement.classList.add('e-pv-thumbnail-focus');\n };\n ThumbnailView.prototype.setMouseFocusToFirstPage = function () {\n var thumbnailChild = this.thumbnailView.children[0];\n if (thumbnailChild) {\n var thumbnailDiv = thumbnailChild.children[0].children[0];\n this.setMouseFocusStyle(thumbnailDiv);\n this.previousElement = thumbnailDiv;\n }\n };\n /**\n * @private\n */\n ThumbnailView.prototype.clear = function () {\n this.startIndex = 0;\n this.thumbnailLimit = 0;\n if (this.pdfViewerBase.navigationPane) {\n if (this.pdfViewerBase.navigationPane.sideBarContentContainer) {\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.display = 'block';\n this.pdfViewerBase.navigationPane.sideBarContent.scrollTop = 0;\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.display = 'none';\n }\n }\n if (this.thumbnailView) {\n while (this.thumbnailView.hasChildNodes()) {\n this.thumbnailView.removeChild(this.thumbnailView.lastChild);\n }\n }\n if (this.pdfViewerBase.navigationPane) {\n this.pdfViewerBase.navigationPane.resetThumbnailView();\n }\n if (this.thumbnailRequestHandler) {\n this.thumbnailRequestHandler.clear();\n }\n this.unwireUpEvents();\n };\n ThumbnailView.prototype.getVisibleThumbs = function () {\n return this.getVisibleElements(this.pdfViewerBase.navigationPane.sideBarContent, this.thumbnailView.children);\n };\n ThumbnailView.prototype.getVisibleElements = function (scrollElement, thumbnailViewChildren) {\n var top = scrollElement.scrollTop;\n var bottom = top + scrollElement.clientHeight;\n var left = scrollElement.scrollLeft;\n var right = left + scrollElement.clientWidth;\n /**\n * @param thumbnailViewChildrenElement\n */\n function isThumbnailElementBottomAfterViewTop(thumbnailViewChildrenElement) {\n var elementBottom = thumbnailViewChildrenElement.offsetTop + thumbnailViewChildrenElement.clientTop + thumbnailViewChildrenElement.clientHeight;\n return elementBottom > top;\n }\n // eslint-disable-next-line\n var visible = [];\n var thumbnailView;\n var element;\n var currentHeight;\n var viewHeight;\n var viewBottom;\n var hiddenHeight;\n var currentWidth;\n var viewWidth;\n var viewRight;\n var hiddenWidth;\n var percentVisible;\n var firstVisibleElementInd = thumbnailViewChildren.length === 0 ? 0 :\n this.binarySearchFirstItem(thumbnailViewChildren, isThumbnailElementBottomAfterViewTop);\n if (thumbnailViewChildren.length > 0) {\n firstVisibleElementInd =\n this.backtrackBeforeAllVisibleElements(firstVisibleElementInd, thumbnailViewChildren, top);\n }\n var lastEdge = -1;\n for (var i = firstVisibleElementInd, ii = thumbnailViewChildren.length; i < ii; i++) {\n thumbnailView = this.getThumbnailElement(i);\n element = thumbnailView;\n currentWidth = element.offsetLeft + element.clientLeft;\n currentHeight = element.offsetTop + element.clientTop;\n viewWidth = element.clientWidth;\n viewHeight = element.clientHeight;\n viewRight = currentWidth + viewWidth;\n viewBottom = currentHeight + viewHeight;\n if (lastEdge === -1) {\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n }\n else if (currentHeight > lastEdge) {\n break;\n }\n if (viewBottom <= top || currentHeight >= bottom ||\n viewRight <= left || currentWidth >= right) {\n continue;\n }\n hiddenHeight = Math.max(0, top - currentHeight) +\n Math.max(0, viewBottom - bottom);\n hiddenWidth = Math.max(0, left - currentWidth) +\n Math.max(0, viewRight - right);\n // eslint-disable-next-line no-bitwise\n percentVisible = ((viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth) | 0;\n visible.push({\n id: thumbnailView.id,\n x: currentWidth,\n y: currentHeight,\n view: thumbnailView,\n percent: percentVisible\n });\n }\n var first = visible[0];\n var last = visible[visible.length - 1];\n return { first: first, last: last, views: visible };\n };\n // eslint-disable-next-line\n ThumbnailView.prototype.binarySearchFirstItem = function (items, condition) {\n var minIndex = 0;\n var maxIndex = items.length - 1;\n if (items.length === 0 || !condition(this.getThumbnailElement(maxIndex))) {\n return items.length - 1;\n }\n if (condition(this.getThumbnailElement(minIndex))) {\n return minIndex;\n }\n while (minIndex < maxIndex) {\n // eslint-disable-next-line no-bitwise\n var currentIndex = (minIndex + maxIndex) >> 1;\n if (condition(this.getThumbnailElement(currentIndex))) {\n maxIndex = currentIndex;\n }\n else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex; /* === maxIndex */\n };\n ThumbnailView.prototype.backtrackBeforeAllVisibleElements = function (index, views, top) {\n if (index < 2) {\n return index;\n }\n var thumbnailElement = this.getThumbnailElement(index);\n var pageTop = thumbnailElement.offsetTop + thumbnailElement.clientTop;\n if (pageTop >= top) {\n thumbnailElement = this.getThumbnailElement(index - 1);\n pageTop = thumbnailElement.offsetTop + thumbnailElement.clientTop;\n }\n for (var i = index - 2; i >= 0; --i) {\n thumbnailElement = this.getThumbnailElement(i);\n if (thumbnailElement.offsetTop + thumbnailElement.clientTop + thumbnailElement.clientHeight <= pageTop) {\n break;\n }\n index = i;\n }\n return index;\n };\n ThumbnailView.prototype.getThumbnailElement = function (index) {\n var thumbnailChild = this.thumbnailView.children[index];\n return thumbnailChild.children[0];\n };\n /**\n * @private\n */\n ThumbnailView.prototype.destroy = function () {\n this.clear();\n };\n /**\n * @private\n */\n ThumbnailView.prototype.getModuleName = function () {\n return 'ThumbnailView';\n };\n return ThumbnailView;\n}());\nexport { ThumbnailView };\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;\n if (this.pdfViewer.initialRenderPages > 10) {\n limit = this.pdfViewer.initialRenderPages <= this.pdfViewerBase.pageCount ? this.pdfViewer.initialRenderPages : this.pdfViewerBase.pageCount;\n }\n else {\n limit = this.pdfViewerBase.pageCount < 10 ? this.pdfViewerBase.pageCount : 10;\n }\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 if (this.pdfViewerBase.isMixedSizeDocument && (this.pdfViewerBase.highestWidth * this.pdfViewerBase.getZoomFactor()) > this.pdfViewerBase.viewerContainer.clientWidth) {\n this.pdfViewerBase.viewerContainer.scrollLeft = (this.pdfViewerBase.pageContainer.offsetWidth - this.pdfViewerBase.viewerContainer.clientWidth) / 2;\n }\n else {\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_1 * scaleCorrectionFactor;\n }\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 if (this.pdfViewerBase.isMixedSizeDocument && (this.pdfViewerBase.highestWidth * this.pdfViewerBase.getZoomFactor()) > this.pdfViewerBase.viewerContainer.clientWidth) {\n this.pdfViewerBase.viewerContainer.scrollLeft = (this.pdfViewerBase.pageContainer.offsetWidth - this.pdfViewerBase.viewerContainer.clientWidth) / 2;\n }\n else {\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_2 * scaleCorrectionFactor;\n }\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 if (Browser.isDevice) {\n if (this.pdfViewer.formDesignerModule) {\n var fomrFieldCollection = void 0;\n var pageNumber_1 = this.pdfViewer.currentPageNumber;\n fomrFieldCollection = this.pdfViewer.formFieldCollection.filter(function (data) { return data.pageNumber === pageNumber_1; });\n for (var i = 0; i < fomrFieldCollection.length; i++) {\n document.querySelectorAll(\"[id^=\" + fomrFieldCollection[parseInt(i.toString(), 10)].id + \"]\").forEach(function (formField) { return formField.style.display = 'none'; });\n }\n }\n else {\n document.querySelectorAll(\"[id^=\\\"pdfViewerinput_\\\"]\").forEach(function (formField) { return formField.parentElement.style.display = 'none'; });\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 if (this.pdfViewer.initialRenderPages > this.pdfViewerBase.pageRenderCount) {\n lowerPageValue = 0;\n higherPageValue = (higherPageValue < this.pdfViewer.initialRenderPages) ? (this.pdfViewer.initialRenderPages <= this.pdfViewerBase.pageCount) ? this.pdfViewer.initialRenderPages : this.pdfViewerBase.pageCount : (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n }\n else {\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n }\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 var _this = this;\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 setTimeout(function () { _this.isMagnified = false; }, 500);\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","/* eslint-disable */\nimport { createElement, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * The `TextSelection` module is used to handle the text selection of PDF viewer.\n */\nvar TextSelection = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function TextSelection(pdfViewer, pdfViewerBase) {\n var _this = this;\n /**\n * @private\n */\n this.isTextSelection = false;\n /**\n * @private\n */\n this.selectionStartPage = null;\n this.isBackwardPropagatedSelection = false;\n this.contextMenuHeight = 144;\n this.backwardStart = 0;\n /**\n * @private\n */\n this.selectionRangeArray = [];\n this.selectionAnchorTouch = null;\n this.selectionFocusTouch = null;\n // eslint-disable-next-line\n this.scrollMoveTimer = 0;\n this.isMouseLeaveSelection = false;\n this.isTouchSelection = false;\n this.previousScrollDifference = 0;\n this.topStoreLeft = null;\n this.topStoreRight = null;\n this.isTextSearched = false;\n this.isSelectionStartTriggered = false;\n this.allTextContent = \"\";\n this.onLeftTouchSelectElementTouchStart = function (event) {\n _this.initiateSelectionByTouch();\n };\n this.onRightTouchSelectElementTouchStart = function (event) {\n _this.initiateSelectionByTouch();\n };\n this.onLeftTouchSelectElementTouchEnd = function (event) {\n _this.terminateSelectionByTouch(event);\n };\n this.onRightTouchSelectElementTouchEnd = function (event) {\n _this.terminateSelectionByTouch(event);\n };\n this.onLeftTouchSelectElementTouchMove = function (event) {\n var range;\n var nodeElement;\n event.preventDefault();\n event.target.style.zIndex = '0';\n var rightElement = _this.dropDivElementRight;\n var isTouchedWithinViewerContainer = _this.isTouchedWithinContainer(event);\n if (rightElement && isTouchedWithinViewerContainer) {\n var dropBounds = rightElement.getBoundingClientRect();\n var xTouch = event.changedTouches[0].clientX;\n var yTouch = event.changedTouches[0].clientY;\n event.target.style.zIndex = '1000';\n nodeElement = _this.getNodeElement(range, xTouch, yTouch, event, nodeElement);\n if (nodeElement) {\n // eslint-disable-next-line max-len\n var currentDifference = Math.sqrt((yTouch - dropBounds.top) * (yTouch - dropBounds.top) + (xTouch - dropBounds.left) * (xTouch - dropBounds.left));\n var isCloserMovement = _this.isCloserTouchScroll(currentDifference);\n var isTextSelected = false;\n if (yTouch <= dropBounds.top) {\n _this.dropElementLeft.style.transform = 'rotate(0deg)';\n _this.dropElementRight.style.transform = 'rotate(-90deg)';\n isTextSelected = _this.selectTextByTouch(nodeElement.parentElement, xTouch, yTouch, false, 'left', isCloserMovement);\n }\n else {\n _this.dropElementLeft.style.transform = 'rotate(-90deg)';\n _this.dropElementRight.style.transform = 'rotate(0deg)';\n isTextSelected = _this.selectTextByTouch(nodeElement.parentElement, xTouch, yTouch, true, 'left', isCloserMovement);\n }\n if (isTextSelected) {\n var elementClientRect = _this.dropDivElementLeft.getBoundingClientRect();\n var pageTopValue = _this.pdfViewerBase.pageSize[_this.pdfViewerBase.currentPageNumber - 1].top;\n var topClientValue = _this.getClientValueTop(yTouch, _this.pdfViewerBase.currentPageNumber - 1);\n // eslint-disable-next-line max-len\n var currentPageLeft = _this.pdfViewerBase.getElement('_pageDiv_' + (_this.pdfViewerBase.currentPageNumber - 1)).getBoundingClientRect().left;\n var currentRangeLeft = xTouch - currentPageLeft;\n // eslint-disable-next-line max-len\n _this.dropDivElementLeft.style.top = pageTopValue * _this.pdfViewerBase.getZoomFactor() + topClientValue + 'px';\n _this.topStoreLeft = { pageTop: pageTopValue, topClientValue: _this.getMagnifiedValue(topClientValue), pageNumber: _this.pdfViewerBase.currentPageNumber - 1, left: _this.getMagnifiedValue(currentRangeLeft), isHeightNeeded: false };\n // eslint-disable-next-line max-len\n _this.dropDivElementLeft.style.left = xTouch - _this.pdfViewerBase.viewerContainer.getBoundingClientRect().left - (elementClientRect.width / 2) + 'px';\n _this.previousScrollDifference = currentDifference;\n }\n }\n }\n };\n // eslint-disable-next-line\n this.onRightTouchSelectElementTouchMove = function (event) {\n var range;\n var nodeElement;\n event.preventDefault();\n event.target.style.zIndex = '0';\n var leftElement = _this.dropDivElementLeft;\n var isTouchedWithinViewerContainer = _this.isTouchedWithinContainer(event);\n if (leftElement && isTouchedWithinViewerContainer) {\n var dropPosition = leftElement.getBoundingClientRect();\n var touchX = event.changedTouches[0].clientX;\n var touchY = event.changedTouches[0].clientY;\n event.target.style.zIndex = '1000';\n nodeElement = _this.getNodeElement(range, touchX, touchY, event, nodeElement);\n if (nodeElement) {\n // eslint-disable-next-line max-len\n var currentDifference = Math.sqrt((touchY - dropPosition.top) * (touchY - dropPosition.top) + (touchX - dropPosition.left) * (touchX - dropPosition.left));\n var isCloserMovement = _this.isCloserTouchScroll(currentDifference);\n var isTextSelected = false;\n if (touchY >= dropPosition.top) {\n _this.dropElementRight.style.transform = 'rotate(-90deg)';\n _this.dropElementLeft.style.transform = 'rotate(0deg)';\n isTextSelected = _this.selectTextByTouch(nodeElement.parentElement, touchX, touchY, true, 'right', isCloserMovement);\n }\n else {\n _this.dropElementRight.style.transform = 'rotate(0deg)';\n _this.dropElementLeft.style.transform = 'rotate(-90deg)';\n isTextSelected = _this.selectTextByTouch(nodeElement.parentElement, touchX, touchY, false, 'right', isCloserMovement);\n }\n if (isTextSelected) {\n var pageTopValue = _this.pdfViewerBase.pageSize[_this.pdfViewerBase.currentPageNumber - 1].top;\n var topClientValue = _this.getClientValueTop(touchY, _this.pdfViewerBase.currentPageNumber - 1);\n var elementClientRect = _this.dropDivElementRight.getBoundingClientRect();\n _this.dropDivElementRight.style.top = pageTopValue * _this.pdfViewerBase.getZoomFactor() + topClientValue + 'px';\n // eslint-disable-next-line max-len\n var currentPageLeft = _this.pdfViewerBase.getElement('_pageDiv_' + (_this.pdfViewerBase.currentPageNumber - 1)).getBoundingClientRect().left;\n var currentRangeLeft = touchX - currentPageLeft;\n // eslint-disable-next-line max-len\n _this.topStoreRight = { pageTop: pageTopValue, topClientValue: _this.getMagnifiedValue(topClientValue), pageNumber: _this.pdfViewerBase.currentPageNumber - 1, left: _this.getMagnifiedValue(currentRangeLeft), isHeightNeeded: false };\n // eslint-disable-next-line max-len\n _this.dropDivElementRight.style.left = touchX - _this.pdfViewerBase.viewerContainer.getBoundingClientRect().left - (elementClientRect.width / 2) + 'px';\n _this.previousScrollDifference = currentDifference;\n }\n }\n }\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param target\n * @param x\n * @param y\n * @param isExtended\n * @private\n */\n TextSelection.prototype.textSelectionOnMouseMove = function (target, x, y, isExtended) {\n var targetElement = target;\n this.isTextSearched = true;\n if (targetElement.nodeType === targetElement.TEXT_NODE) {\n if (!this.isSelectionStartTriggered && !this.pdfViewerBase.getTextMarkupAnnotationMode()) {\n this.pdfViewer.fireTextSelectionStart(this.pdfViewerBase.currentPageNumber);\n this.isSelectionStartTriggered = true;\n }\n this.isBackwardPropagatedSelection = false;\n var range = targetElement.ownerDocument.createRange();\n var selection = window.getSelection();\n if (selection.anchorNode !== null) {\n var position = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n if (!position && selection.anchorOffset > selection.focusOffset || position === Node.DOCUMENT_POSITION_PRECEDING) {\n this.isBackwardPropagatedSelection = true;\n }\n }\n range.selectNodeContents(targetElement);\n var currentPosition = 0;\n var endPosition = range.endOffset;\n while (currentPosition < endPosition) {\n range.setStart(targetElement, currentPosition);\n range.setEnd(targetElement, currentPosition + 1);\n var rangeBounds = range.getBoundingClientRect();\n var rightBounds = rangeBounds.right;\n if (isExtended) {\n // eslint-disable-next-line\n rightBounds = parseInt(rangeBounds.right.toString());\n }\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n if (rangeBounds.left <= x && rightBounds >= x && parseInt(rangeBounds.top.toString()) <= y && rangeBounds.bottom >= y) {\n if (selection.anchorNode !== null && selection.anchorNode.parentNode.classList.contains('e-pv-text')) {\n if (selection.anchorOffset > currentPosition) {\n if (this.backwardStart != 0) {\n range.setStart(selection.anchorNode, this.backwardStart);\n }\n else {\n range.setStart(selection.anchorNode, selection.anchorOffset + 1);\n }\n }\n else {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n }\n }\n selection.removeAllRanges();\n selection.addRange(range);\n if (!this.isTextSelection) {\n this.selectionStartPage = this.pdfViewerBase.currentPageNumber - 1;\n }\n this.isTextSelection = true;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n if (this.isBackwardPropagatedSelection || range.endOffset > currentPosition) {\n if (this.backwardStart != range.startOffset && range.startOffset >= currentPosition) {\n this.backwardStart = range.endOffset;\n }\n if (currentPosition === 0 && range.endOffset != 1) {\n selection.extend(targetElement, currentPosition);\n }\n else {\n selection.extend(targetElement, currentPosition + 1);\n }\n }\n else if (isExtended) {\n selection.extend(targetElement, currentPosition);\n }\n else {\n selection.extend(targetElement, currentPosition + 1);\n }\n }\n range.detach();\n }\n currentPosition += 1;\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 // eslint-disable-next-line\n var leftDivElement = document.getElementById(this.pdfViewer.element.id + '_droplet_left');\n if (this.pdfViewerBase.isSelection && selection && selection.rangeCount > 0) {\n // eslint-disable-next-line\n var currentrange = selection.getRangeAt(0);\n // eslint-disable-next-line\n var rect = currentrange.getBoundingClientRect();\n var left = rect.left;\n var top_1 = rect.top;\n this.pdfViewer.annotation.textMarkupAnnotationModule.updateLeftposition(left, top_1);\n this.pdfViewerBase.isSelection = false;\n }\n else if ((leftDivElement && leftDivElement.style.display === 'none')) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.updateLeftposition(x, y);\n }\n this.pdfViewer.annotation.textMarkupAnnotationModule.updatePosition(x, y);\n }\n }\n else {\n for (var i = 0; i < targetElement.childNodes.length; i++) {\n if (targetElement.childNodes[i].nodeType === targetElement.TEXT_NODE) {\n var range = this.getSelectionRange(i, targetElement);\n var rangeBounds = range.getBoundingClientRect();\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n if (rangeBounds.left <= x && rangeBounds.right >= parseInt(x.toString()) && parseInt(rangeBounds.top.toString()) <= y && rangeBounds.bottom >= y) {\n range.detach();\n this.textSelectionOnMouseMove(targetElement.childNodes[i], x, y, isExtended);\n }\n else {\n range.detach();\n }\n }\n }\n }\n };\n /**\n * @param target\n * @param x\n * @param y\n * @param isforward\n * @param target\n * @param x\n * @param y\n * @param isforward\n * @param target\n * @param x\n * @param y\n * @param isforward\n * @private\n */\n TextSelection.prototype.textSelectionOnDrag = function (target, x, y, isforward) {\n var targetElement = target;\n this.isTextSearched = true;\n if (targetElement.nodeType === targetElement.TEXT_NODE) {\n this.isBackwardPropagatedSelection = false;\n var range = targetElement.ownerDocument.createRange();\n var selection = window.getSelection();\n if (selection.anchorNode !== null) {\n var position = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n if (!position && selection.anchorOffset > selection.focusOffset || position === Node.DOCUMENT_POSITION_PRECEDING) {\n this.isBackwardPropagatedSelection = true;\n }\n }\n range.selectNodeContents(targetElement);\n var currentPosition = 0;\n var endPosition = range.endOffset;\n while (currentPosition < endPosition) {\n range.setStart(targetElement, currentPosition);\n range.setEnd(targetElement, currentPosition + 1);\n var rangeBounds = range.getBoundingClientRect();\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n if (rangeBounds.left <= x && rangeBounds.right >= x && parseInt(rangeBounds.top.toString()) <= y && rangeBounds.bottom >= y) {\n if (isforward) {\n // eslint-disable-next-line max-len\n if (selection.anchorNode !== null && selection.anchorNode.parentNode.classList.contains('e-pv-text')) {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n }\n selection.removeAllRanges();\n selection.addRange(range);\n selection.extend(targetElement, currentPosition);\n }\n else if (selection.focusNode) {\n range.setEnd(selection.focusNode, selection.focusOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n if (!this.isTextSelection) {\n this.selectionStartPage = this.pdfViewerBase.currentPageNumber - 1;\n }\n this.isTextSelection = true;\n range.detach();\n return true;\n }\n currentPosition += 1;\n }\n if (this.pdfViewerBase.isSelection) {\n // eslint-disable-next-line\n var currentrange = selection.getRangeAt(0);\n // eslint-disable-next-line\n var rect = currentrange.getBoundingClientRect();\n var left = rect.left;\n var top_2 = rect.top;\n this.pdfViewer.annotation.textMarkupAnnotationModule.updateLeftposition(left, top_2);\n this.pdfViewerBase.isSelection = false;\n }\n this.pdfViewer.annotation.textMarkupAnnotationModule.updatePosition(x, y);\n }\n else {\n for (var i = 0; i < targetElement.childNodes.length; i++) {\n if (targetElement.childNodes[i].nodeType === targetElement.TEXT_NODE) {\n var range = this.getSelectionRange(i, targetElement);\n var rangeBounds = range.getBoundingClientRect();\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n if (rangeBounds.left <= x && rangeBounds.right >= x && parseInt(rangeBounds.top.toString()) <= y && rangeBounds.bottom >= y) {\n range.detach();\n this.textSelectionOnDrag(targetElement.childNodes[i], x, y, isforward);\n }\n else {\n range.detach();\n }\n }\n }\n }\n return null;\n };\n /**\n * Select the target text region in the PDF document of the given bounds.\n *\n * @param {number} pageNumbers - Specifies the page number\n * @param {IRectangle[]} bounds - Specifies the bounds of the texts.\n * @returns void\n */\n TextSelection.prototype.selectTextRegion = function (pageNumbers, bounds) {\n // eslint-disable-next-line\n var element = null;\n var pageNumber = (pageNumbers - 1);\n for (var k = 0; k < bounds.length; k++) {\n // eslint-disable-next-line\n var bound = bounds[k];\n var x = (bound.left ? bound.left : bound.Left) * this.pdfViewerBase.getZoomFactor();\n var y = (bound.top ? bound.top : bound.Top) * this.pdfViewerBase.getZoomFactor();\n var width = (bound.width ? bound.width : bound.Width) * this.pdfViewerBase.getZoomFactor();\n var height = bound.height ? bound.height : bound.Height;\n // eslint-disable-next-line\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n if (textLayer) {\n // eslint-disable-next-line\n var textDivs = textLayer.childNodes;\n for (var n = 0; n < textDivs.length; n++) {\n if (textDivs[n]) {\n // eslint-disable-next-line\n var rangebounds = textDivs[n].getBoundingClientRect();\n var top_3 = this.getClientValueTop(rangebounds.top, pageNumber);\n // eslint-disable-next-line max-len\n var currentLeft = rangebounds.left - this.pdfViewerBase.getElement('_pageDiv_' + pageNumber).getBoundingClientRect().left;\n var totalLeft = currentLeft + rangebounds.width;\n // eslint-disable-next-line\n var textDiVLeft = parseInt(textDivs[n].style.left);\n // eslint-disable-next-line\n var currentTop = parseInt(textDivs[n].style.top);\n var isLeftBounds = this.checkLeftBounds(currentLeft, textDiVLeft, totalLeft, x);\n var isTopBounds = this.checkTopBounds(top_3, currentTop, y);\n if (isLeftBounds && isTopBounds) {\n element = textDivs[n];\n break;\n }\n }\n }\n if (element != null) {\n // eslint-disable-next-line\n var boundingRect = this.pdfViewerBase.getElement('_textLayer_' + pageNumber).getBoundingClientRect();\n this.textSelectionOnMouseMove(element, x + boundingRect.left, y + boundingRect.top, false);\n if ((bounds.length - 1) === k) {\n // eslint-disable-next-line max-len\n this.textSelectionOnMouseMove(element, x + boundingRect.left + width, y + boundingRect.top, false);\n }\n }\n }\n }\n };\n /**\n * @param left\n * @param textDiVLeft\n * @param totalLeft\n * @param x\n * @private\n */\n TextSelection.prototype.checkLeftBounds = function (left, textDiVLeft, totalLeft, x) {\n var isExists = false;\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n if (left === parseInt(x.toString()) || parseInt(left.toString()) === parseInt(x.toString()) || (left + 1) === parseInt(x.toString()) || (left - 1) === parseInt(x.toString())\n // eslint-disable-next-line\n || textDiVLeft === parseInt(x.toString()) || textDiVLeft === x || (totalLeft >= x && left <= x)) {\n isExists = true;\n }\n return isExists;\n };\n /**\n * @param top\n * @param currentTop\n * @param y\n * @param top\n * @param currentTop\n * @param y\n * @private\n */\n TextSelection.prototype.checkTopBounds = function (top, currentTop, y) {\n var isExists = false;\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n if ((top === parseInt(y.toString()) || parseInt(top.toString()) === parseInt(y.toString()) || parseInt((top + 1).toString()) === parseInt(y.toString()) || parseInt((top - 1).toString()) === parseInt(y.toString())\n // eslint-disable-next-line\n || currentTop === parseInt(y.toString()) || currentTop === y)) {\n isExists = true;\n }\n return isExists;\n };\n /**\n * @param event\n * @private\n */\n TextSelection.prototype.textSelectionOnMouseLeave = function (event) {\n var _this = this;\n event.preventDefault();\n var viewerTop = this.pdfViewerBase.viewerContainer.offsetTop;\n if (this.pdfViewer.magnificationModule) {\n if (this.pdfViewer.magnificationModule.fitType === 'fitToPage') {\n return;\n }\n }\n if (event.clientY > viewerTop) {\n this.scrollMoveTimer = setInterval(function () {\n _this.scrollForwardOnSelection();\n }, 500);\n }\n else {\n this.scrollMoveTimer = setInterval(function () {\n _this.scrollBackwardOnSelection();\n }, 500);\n }\n };\n TextSelection.prototype.scrollForwardOnSelection = function () {\n this.isMouseLeaveSelection = true;\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.viewerContainer.scrollTop + 200;\n this.stichSelectionOnScroll(this.pdfViewerBase.currentPageNumber - 1);\n };\n TextSelection.prototype.scrollBackwardOnSelection = function () {\n this.isMouseLeaveSelection = true;\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.viewerContainer.scrollTop - 200;\n this.stichSelectionOnScroll(this.pdfViewerBase.currentPageNumber - 1);\n };\n /**\n * @private\n */\n TextSelection.prototype.clear = function () {\n if (this.scrollMoveTimer) {\n this.isMouseLeaveSelection = false;\n clearInterval(this.scrollMoveTimer);\n }\n };\n /**\n * @param element\n * @param x\n * @param y\n * @param isStoreSelection\n * @param element\n * @param x\n * @param y\n * @param isStoreSelection\n * @param element\n * @param x\n * @param y\n * @param isStoreSelection\n * @private\n */\n // eslint-disable-next-line\n TextSelection.prototype.selectAWord = function (element, x, y, isStoreSelection) {\n if (element.nodeType === element.TEXT_NODE) {\n var selection = window.getSelection();\n var range = element.ownerDocument.createRange();\n range.selectNodeContents(element);\n var currentPosition = 0;\n var endPosition = range.endOffset;\n while (currentPosition < endPosition) {\n range.setStart(element, currentPosition);\n range.setEnd(element, currentPosition + 1);\n var rangeBounds = range.getBoundingClientRect();\n if (rangeBounds.left <= x && rangeBounds.right >= x && rangeBounds.top <= y && rangeBounds.bottom >= y) {\n var textContent = element.textContent;\n var indices = [];\n var startPosition = void 0;\n var endPos = void 0;\n for (var i = 0; i < textContent.length; i++) {\n if (textContent[i] === ' ') {\n indices.push(i);\n }\n }\n for (var j = 0; j < indices.length; j++) {\n if (currentPosition === indices[j]) {\n startPosition = indices[j];\n endPos = indices[j];\n }\n if (indices[0] > currentPosition) {\n startPosition = 0;\n endPos = indices[j];\n break;\n }\n if (currentPosition > indices[j] && currentPosition < indices[j + 1]) {\n startPosition = indices[j];\n endPos = indices[j + 1];\n }\n else if (currentPosition > indices[j]) {\n if (!indices[j + 1]) {\n startPosition = indices[j];\n }\n }\n }\n if (!endPos) {\n endPos = textContent.length;\n }\n if (startPosition === 0) {\n range.setStart(element, startPosition);\n }\n else {\n range.setStart(element, startPosition + 1);\n }\n range.setEnd(element, endPos);\n selection.removeAllRanges();\n selection.addRange(range);\n this.isTextSelection = true;\n // eslint-disable-next-line max-len\n var startParent = isNullOrUndefined(range.startContainer.parentElement) ? range.startContainer.parentNode : range.startContainer.parentElement;\n // eslint-disable-next-line radix\n this.selectionStartPage = parseInt(startParent.id.split('_text_')[1]);\n if (isStoreSelection) {\n // eslint-disable-next-line max-len\n this.selectionAnchorTouch = { anchorNode: selection.anchorNode.parentElement.id, anchorOffset: selection.anchorOffset };\n this.selectionFocusTouch = { focusNode: selection.focusNode.parentElement.id, focusOffset: selection.focusOffset };\n }\n if (!Browser.isIE) {\n range.detach();\n }\n break;\n }\n currentPosition += 1;\n }\n }\n else {\n for (var i = 0; i < element.childNodes.length; i++) {\n var range = this.getSelectionRange(i, element);\n var rangeBounds = range.getBoundingClientRect();\n if (rangeBounds.left <= x && rangeBounds.right >= x && rangeBounds.top <= y && rangeBounds.bottom >= y) {\n range.detach();\n this.selectAWord(element.childNodes[i], x, y, isStoreSelection);\n }\n else {\n range.detach();\n }\n }\n }\n };\n TextSelection.prototype.getSelectionRange = function (index, element) {\n var range = element.childNodes[index].ownerDocument.createRange();\n range.selectNodeContents(element.childNodes[index]);\n return range;\n };\n /**\n * @param event\n * @private\n */\n TextSelection.prototype.selectEntireLine = function (event) {\n var textIds = [];\n var targetElement = event.target;\n var targetRect = targetElement.getBoundingClientRect();\n // eslint-disable-next-line\n var targetcentre = parseInt((targetRect.top + (targetRect.height / 2)).toString());\n // eslint-disable-next-line radix\n var pageNumber = parseInt(event.target.id.split('_text_')[1]);\n var textDivs = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_text_' + pageNumber + '\"]');\n if (targetElement.classList.contains('e-pv-text')) {\n this.pdfViewer.fireTextSelectionStart(pageNumber + 1);\n for (var i = 0; i < textDivs.length; i++) {\n var rect = textDivs[i].getBoundingClientRect();\n // eslint-disable-next-line radix\n var topValue = parseInt(rect.top.toString());\n // eslint-disable-next-line radix\n var bottomValue = parseInt(rect.bottom.toString());\n if ((topValue <= targetcentre && bottomValue > targetcentre) && (targetRect.bottom + 10 > bottomValue)) {\n var textId = textDivs[i].id;\n if (textId !== '') {\n textIds.push(textId);\n }\n }\n }\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n var lengths = (textIds.length - 1);\n var d1 = document.getElementById(textIds[0]);\n var d2 = document.getElementById(textIds[lengths]);\n var childNodes = d2.childNodes.length;\n if (childNodes > 0) {\n range.setStart(d1.childNodes[0], 0);\n range.setEnd(d2.childNodes[0], d2.textContent.length);\n }\n else {\n range.setStart(d1.childNodes[0], 0);\n range.setEnd(d2, 1);\n }\n // eslint-disable-next-line radix\n this.selectionStartPage = parseInt(range.startContainer.parentElement.id.split('_text_')[1]);\n selection.addRange(range);\n this.isTextSelection = true;\n if (selection != null && this.pdfViewer.contextMenuSettings.contextMenuAction === 'MouseUp') {\n this.calculateContextMenuPosition(event.clientY, event.clientY);\n }\n }\n };\n /**\n * @private\n */\n TextSelection.prototype.enableTextSelectionMode = function () {\n this.pdfViewerBase.isTextSelectionDisabled = false;\n if (!isNullOrUndefined(this.pdfViewerBase.viewerContainer)) {\n this.pdfViewerBase.viewerContainer.classList.remove('e-disable-text-selection');\n this.pdfViewerBase.viewerContainer.classList.add('e-enable-text-selection');\n this.pdfViewerBase.viewerContainer.addEventListener('selectstart', function () {\n return true;\n });\n }\n };\n TextSelection.prototype.clearTextSelection = function () {\n if (this.isTextSelection) {\n this.pdfViewerBase.textLayer.clearDivSelection();\n if (window.getSelection) {\n if (window.getSelection().removeAllRanges) {\n window.getSelection().removeAllRanges();\n }\n }\n if (this.pdfViewer.linkAnnotationModule) {\n var lowerPageIndex = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageIndex = (lowerPageIndex < 0) ? 0 : lowerPageIndex;\n var higherPageIndex = this.pdfViewer.currentPageNumber + 1;\n // eslint-disable-next-line max-len\n higherPageIndex = (higherPageIndex < (this.pdfViewerBase.pageCount - 1)) ? higherPageIndex : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageIndex; i <= higherPageIndex; i++) {\n this.pdfViewer.linkAnnotationModule.modifyZindexForTextSelection(i, false);\n }\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n this.selectionRangeArray = [];\n this.isTextSelection = false;\n this.isTouchSelection = false;\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.searchAfterSelection();\n }\n this.pdfViewerBase.contextMenuModule.close();\n this.removeTouchElements();\n }\n };\n /**\n * @private\n */\n TextSelection.prototype.removeTouchElements = function () {\n if (this.dropDivElementLeft) {\n this.dropDivElementLeft.parentElement.removeChild(this.dropDivElementLeft);\n this.dropDivElementLeft = null;\n this.dropElementLeft.style.transform = 'rotate(0deg)';\n }\n if (this.dropDivElementRight) {\n this.dropDivElementRight.parentElement.removeChild(this.dropDivElementRight);\n this.dropDivElementRight = null;\n this.dropElementRight.style.transform = 'rotate(-90deg)';\n }\n };\n /**\n * @private\n */\n TextSelection.prototype.resizeTouchElements = function () {\n var viewerContainerLeft = this.pdfViewerBase.viewerContainer.getBoundingClientRect().left;\n if (this.dropDivElementLeft) {\n var elementClientRect = this.dropDivElementLeft.getBoundingClientRect();\n var dropElementHeight = 0;\n // eslint-disable-next-line max-len\n var leftCurrentPagePosition = this.pdfViewerBase.getElement('_pageDiv_' + this.topStoreLeft.pageNumber).getBoundingClientRect();\n this.dropDivElementLeft.style.left = parseFloat(this.topStoreLeft.left.toString()) * this.pdfViewerBase.getZoomFactor() + leftCurrentPagePosition.left - viewerContainerLeft - (elementClientRect.width / 2) + 'px';\n if (this.topStoreLeft.isHeightNeeded) {\n dropElementHeight = (elementClientRect.height / 2) * this.pdfViewerBase.getZoomFactor();\n }\n // eslint-disable-next-line max-len\n this.dropDivElementLeft.style.top = parseFloat(this.topStoreLeft.pageTop.toString()) * this.pdfViewerBase.getZoomFactor() + parseFloat(this.topStoreLeft.topClientValue.toString()) * this.pdfViewerBase.getZoomFactor() + dropElementHeight + 'px';\n }\n if (this.dropDivElementRight) {\n var elementClientRect = this.dropDivElementRight.getBoundingClientRect();\n var dropElementHeight = 0;\n // eslint-disable-next-line max-len\n var rightCurrentPagePosition = this.pdfViewerBase.getElement('_pageDiv_' + this.topStoreRight.pageNumber).getBoundingClientRect();\n this.dropDivElementRight.style.left = parseFloat(this.topStoreRight.left.toString()) * this.pdfViewerBase.getZoomFactor() + rightCurrentPagePosition.left - viewerContainerLeft - (elementClientRect.width / 2) + 'px';\n if (this.topStoreRight.isHeightNeeded) {\n dropElementHeight = (elementClientRect.height / 2) * this.pdfViewerBase.getZoomFactor();\n }\n // eslint-disable-next-line max-len\n this.dropDivElementRight.style.top = parseFloat(this.topStoreRight.pageTop.toString()) * this.pdfViewerBase.getZoomFactor() + parseFloat(this.topStoreRight.topClientValue.toString()) * this.pdfViewerBase.getZoomFactor() + dropElementHeight + 'px';\n }\n };\n /**\n * @param event\n * @private\n */\n TextSelection.prototype.textSelectionOnMouseup = function (event) {\n this.clear();\n if (window.getSelection().anchorNode !== null) {\n this.isMouseLeaveSelection = false;\n this.isSelectionStartTriggered = false;\n this.maintainSelectionOnZoom(true, false);\n this.fireTextSelectEnd();\n var isTextSearch = this.pdfViewerBase.textLayer.getTextSearchStatus();\n if (isTextSearch) {\n this.pdfViewerBase.textLayer.clearDivSelection();\n // eslint-disable-next-line\n var indexes = this.pdfViewer.textSearchModule.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.applySelectionRangeOnScroll(i);\n }\n this.pdfViewer.textSearchModule.searchAfterSelection();\n }\n else {\n this.applySpanForSelection();\n }\n if (this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.modifyZindexForTextSelection(this.pdfViewerBase.currentPageNumber - 1, false);\n }\n if (this.isTextSearched && this.pdfViewer.contextMenuSettings.contextMenuAction === 'MouseUp') {\n this.calculateContextMenuPosition(event.clientY, event.clientX);\n this.isTextSearched = false;\n }\n }\n else {\n this.pdfViewerBase.textLayer.clearDivSelection();\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.searchAfterSelection();\n }\n this.pdfViewerBase.contextMenuModule.close();\n this.removeTouchElements();\n }\n };\n /**\n * @private\n */\n TextSelection.prototype.fireTextSelectEnd = function () {\n if (this.selectionRangeArray.length !== 0) {\n var selectEndPageIndex = 0;\n var selectedText = '';\n // eslint-disable-next-line\n var selectedBounds = [];\n for (var k = 0; k < this.selectionRangeArray.length; k++) {\n selectedText += this.selectionRangeArray[k].textContent;\n for (var j = 0; j < this.selectionRangeArray[k].rectangleBounds.length; j++) {\n var currentBound = this.selectionRangeArray[k].rectangleBounds[j];\n // eslint-disable-next-line max-len\n selectedBounds.push({ left: currentBound.left, right: currentBound.right, top: currentBound.top, bottom: currentBound.bottom, width: currentBound.width, height: currentBound.height, pageIndex: this.selectionRangeArray[k].pageNumber + 1 });\n }\n if (this.selectionRangeArray[k].isBackward && k === 0) {\n selectEndPageIndex = this.selectionRangeArray[k].pageNumber + 1;\n }\n else if (!this.selectionRangeArray[k].isBackward && k === this.selectionRangeArray.length - 1) {\n selectEndPageIndex = this.selectionRangeArray[k].pageNumber + 1;\n }\n }\n this.pdfViewer.fireTextSelectionEnd(selectEndPageIndex, selectedText, selectedBounds);\n }\n };\n /**\n * @param isMaintainSelection\n * @param isStich\n * @param isMaintainSelection\n * @param isStich\n * @private\n */\n TextSelection.prototype.maintainSelectionOnZoom = function (isMaintainSelection, isStich) {\n var selection = window.getSelection();\n if (selection.type === 'Range' || (!selection.type && !selection.isCollapsed)) {\n var isBackward = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n if (selection.anchorNode !== null) {\n // eslint-disable-next-line radix\n var anchorPageId = parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1]);\n // eslint-disable-next-line radix\n var focusPageId = parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1]);\n if (this.isTouchSelection && isNaN(focusPageId)) {\n var focusElement = selection.focusNode;\n if (focusElement === this.pdfViewerBase.pageContainer) {\n var lastChildNode = this.pdfViewerBase.pageContainer.lastChild;\n if (lastChildNode.classList.contains('e-pv-touch-select-drop')) {\n // eslint-disable-next-line radix\n focusPageId = parseInt(lastChildNode.previousSibling.previousSibling.id.split('_pageDiv_')[1]);\n }\n else if (lastChildNode.classList.contains('e-pv-page-div')) {\n // eslint-disable-next-line radix\n focusPageId = parseInt(lastChildNode.id.split('_pageDiv_')[1]);\n }\n }\n }\n if (!isBackward) {\n for (var i = anchorPageId; i <= focusPageId; i++) {\n this.maintainSelectionOnScroll(i, isStich);\n }\n }\n else {\n for (var i = anchorPageId; i >= focusPageId; i--) {\n this.maintainSelectionOnScroll(i, isStich);\n }\n }\n }\n if (!isMaintainSelection) {\n selection.removeAllRanges();\n }\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n TextSelection.prototype.isSelectionAvailableOnScroll = function (pageNumber) {\n var isSelectionAvailable = false;\n var ranges = this.selectionRangeArray;\n for (var i = 0; i < ranges.length; i++) {\n if (ranges[i] !== null) {\n if (pageNumber === ranges[i].pageNumber) {\n isSelectionAvailable = true;\n if (this.isTouchSelection && !this.pdfViewerBase.getMagnified()) {\n isSelectionAvailable = false;\n }\n break;\n }\n }\n }\n return isSelectionAvailable;\n };\n /**\n * @param pageNumber\n * @private\n */\n TextSelection.prototype.applySelectionRangeOnScroll = function (pageNumber) {\n if (this.isMouseLeaveSelection) {\n this.applySelectionMouseScroll(pageNumber);\n }\n else {\n this.applySelectionRange(pageNumber);\n }\n };\n // eslint-disable-next-line\n TextSelection.prototype.getSelectionRangeFromArray = function (pageNumber) {\n var isSelectionAvailable = false;\n var selectionRange = null;\n var ranges = this.selectionRangeArray;\n for (var i = 0; i < ranges.length; i++) {\n if (ranges[i] !== null) {\n if (pageNumber === ranges[i].pageNumber) {\n selectionRange = ranges[i];\n isSelectionAvailable = true;\n break;\n }\n }\n }\n return { isSelectionAvailable: isSelectionAvailable, selectionRange: selectionRange };\n };\n TextSelection.prototype.applySelectionRange = function (pageNumber) {\n var selectionObject = this.getSelectionRangeFromArray(pageNumber);\n var isSelectionAvailable = selectionObject.isSelectionAvailable;\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n if (textLayer) {\n if (isSelectionAvailable && textLayer.childNodes.length !== 0) {\n var selectionRange = selectionObject.selectionRange;\n var anchorOffsetDiv = void 0;\n var focusOffsetDiv = void 0;\n var anchorOffset = void 0;\n var focusOffset = void 0;\n if (selectionRange.isBackward) {\n // eslint-disable-next-line radix\n var startId = parseInt(selectionRange.endNode.split('_text_')[1].split('_')[1]);\n // eslint-disable-next-line radix\n var endId = parseInt(selectionRange.startNode.split('_text_')[1].split('_')[1]);\n if (startId < endId) {\n anchorOffsetDiv = startId;\n anchorOffset = selectionRange.endOffset;\n focusOffset = selectionRange.startOffset;\n focusOffsetDiv = endId;\n }\n else {\n anchorOffsetDiv = endId;\n anchorOffset = selectionRange.endOffset;\n focusOffsetDiv = startId;\n focusOffset = selectionRange.startOffset;\n }\n }\n else {\n // eslint-disable-next-line radix\n anchorOffsetDiv = parseInt(selectionRange.startNode.split('text_')[1].split('_')[1]);\n // eslint-disable-next-line radix\n focusOffsetDiv = parseInt(selectionRange.endNode.split('text_')[1].split('_')[1]);\n anchorOffset = selectionRange.startOffset;\n focusOffset = selectionRange.endOffset;\n }\n window.getSelection().removeAllRanges();\n // eslint-disable-next-line max-len\n this.pdfViewerBase.textLayer.applySpanForSelection(pageNumber, pageNumber, anchorOffsetDiv, focusOffsetDiv, anchorOffset, focusOffset);\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.searchAfterSelection();\n }\n }\n }\n };\n TextSelection.prototype.applySelectionMouseScroll = function (pageNumber) {\n var selectionObject = this.getSelectionRangeFromArray(pageNumber);\n var isSelectionAvailable = selectionObject.isSelectionAvailable;\n if (isSelectionAvailable) {\n var selectionRange = selectionObject.selectionRange;\n var selection = window.getSelection();\n var anchorNode = document.getElementById(selectionRange.startNode).childNodes[0];\n var focusNode = document.getElementById(selectionRange.endNode).childNodes[0];\n var range = document.createRange();\n if (selection.anchorNode === null) {\n if (!selectionRange.isBackward) {\n range.setStart(anchorNode, selectionRange.startOffset);\n range.setEnd(focusNode, selectionRange.endOffset);\n }\n else {\n range.setStart(focusNode, selectionRange.endOffset);\n range.setEnd(anchorNode, selectionRange.startOffset);\n }\n }\n else {\n // eslint-disable-next-line\n var anchorPageIndex = isNaN(parseInt(selection.anchorNode.parentElement.id.split('_text_')[1])) ? parseInt(selection.anchorNode.id.split('_pageDiv_')[1]) : parseInt(selection.anchorNode.parentElement.id.split('_text_')[1]);\n if (isNaN(anchorPageIndex)) {\n // eslint-disable-next-line radix\n anchorPageIndex = parseInt(selection.anchorNode.id.split('_text_')[1]);\n }\n // eslint-disable-next-line\n var focusPageIndex = isNaN(parseInt(selection.focusNode.parentElement.id.split('_text_')[1])) ? parseInt(selection.focusNode.id.split('_pageDiv_')[1]) : parseInt(selection.focusNode.parentElement.id.split('_text_')[1]);\n // eslint-disable-next-line radix\n var currentAnchorIndex = parseInt(selectionRange.startNode.split('_text_')[1]);\n if ((anchorPageIndex === focusPageIndex) && (anchorPageIndex === currentAnchorIndex)) {\n if (!selectionRange.isBackward) {\n range.setStart(anchorNode, selectionRange.startOffset);\n range.setEnd(focusNode, selectionRange.endOffset);\n }\n else {\n range.setStart(focusNode, selectionRange.endOffset);\n range.setEnd(anchorNode, selectionRange.startOffset);\n }\n }\n else if (!isNaN(anchorPageIndex)) {\n if (!isNaN(anchorPageIndex) && !selectionRange.isBackward) {\n // eslint-disable-next-line max-len\n if (anchorPageIndex < currentAnchorIndex && currentAnchorIndex < focusPageIndex && anchorPageIndex !== focusPageIndex) {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n else if (anchorPageIndex < currentAnchorIndex) {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(focusNode, selectionRange.endOffset);\n }\n else {\n range.setStart(anchorNode, selectionRange.startOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n }\n else {\n var isBackward = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n // eslint-disable-next-line max-len\n if (anchorPageIndex > currentAnchorIndex && currentAnchorIndex > focusPageIndex && anchorPageIndex !== focusPageIndex) {\n if (!isBackward) {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n else {\n selection.extend(selection.focusNode, selection.focusOffset);\n }\n // eslint-disable-next-line max-len\n }\n else if (anchorPageIndex < currentAnchorIndex && currentAnchorIndex < focusPageIndex && anchorPageIndex !== focusPageIndex) {\n if (!isBackward) {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n else {\n selection.extend(selection.focusNode, selection.focusOffset);\n }\n }\n else if (anchorPageIndex < currentAnchorIndex) {\n if (!isBackward) {\n if (currentAnchorIndex !== this.selectionRangeArray[0].pageNumber) {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(focusNode, selectionRange.endOffset);\n }\n else {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(anchorNode, selectionRange.startOffset);\n }\n }\n else {\n if (currentAnchorIndex !== this.selectionRangeArray[0].pageNumber) {\n this.extendCurrentSelection(focusNode.parentElement, selectionRange.endOffset, selection, range);\n }\n else {\n this.extendCurrentSelection(anchorNode.parentElement, selectionRange.startOffset, selection, range);\n }\n }\n }\n else if (anchorPageIndex === currentAnchorIndex) {\n if (currentAnchorIndex === focusPageIndex) {\n range.setStart(anchorNode, selectionRange.startOffset);\n range.setEnd(anchorNode, selectionRange.startOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n range = document.createRange();\n selection.extend(focusNode, selectionRange.endOffset);\n }\n else {\n if (isBackward) {\n this.extendCurrentSelection(focusNode.parentElement, selectionRange.endOffset, selection, range);\n }\n else {\n range.setStart(focusNode, selectionRange.endOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n }\n }\n else if (focusPageIndex === currentAnchorIndex) {\n if (isBackward) {\n selection.extend(selection.focusNode, selection.focusOffset);\n }\n else {\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n }\n else if (anchorPageIndex > currentAnchorIndex) {\n // eslint-disable-next-line radix\n var currentAnchorOffset = parseInt(selectionRange.startNode.split('_' + currentAnchorIndex + '_')[1]);\n // eslint-disable-next-line radix\n var currentFocusOffset = parseInt(selectionRange.endNode.split('_' + currentAnchorIndex + '_')[1]);\n if (isBackward) {\n if (currentAnchorIndex !== this.selectionRangeArray[0].pageNumber) {\n if (currentAnchorOffset < currentFocusOffset) {\n this.extendCurrentSelection(anchorNode.parentElement, selectionRange.startOffset, selection, range);\n }\n else {\n range.setStart(focusNode.parentElement, selectionRange.endOffset);\n range.setEnd(selection.anchorNode, selection.anchorOffset);\n }\n }\n else {\n this.extendCurrentSelection(focusNode.parentElement, selectionRange.endOffset, selection, range);\n }\n }\n else {\n if (currentAnchorOffset < currentFocusOffset) {\n range.setStart(anchorNode, selectionRange.startOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n else {\n range.setStart(focusNode, selectionRange.endOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n }\n }\n }\n }\n else if (isNaN(anchorPageIndex)) {\n if (!selectionRange.isBackward) {\n range.setStart(anchorNode, selectionRange.startOffset);\n range.setEnd(focusNode, selectionRange.endOffset);\n }\n else {\n range.setStart(focusNode, selectionRange.endOffset);\n range.setEnd(anchorNode, selectionRange.startOffset);\n }\n }\n }\n if (range.toString() !== '') {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n };\n /**\n * @param pageNumber\n * @param isStich\n * @param pageNumber\n * @param isStich\n * @private\n */\n TextSelection.prototype.maintainSelectionOnScroll = function (pageNumber, isStich) {\n var isSelectionAvailable = this.isSelectionAvailableOnScroll(pageNumber);\n if (this.isTextSelection && !isSelectionAvailable) {\n this.maintainSelection(pageNumber, isStich);\n }\n };\n /**\n * @param pageNumber\n * @param isStich\n * @private\n */\n TextSelection.prototype.maintainSelection = function (pageNumber, isStich) {\n var selection = window.getSelection();\n if (this.isTextSelection && (selection.type === 'Range' || (!selection.type && !selection.isCollapsed))) {\n // eslint-disable-next-line\n var anchorPageId = parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1]);\n // eslint-disable-next-line\n var focusPageId = parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1]);\n if (isNaN(focusPageId) && selection.anchorNode !== null) {\n var backward_1 = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n if (!backward_1) {\n // eslint-disable-next-line radix\n var lastChildNode = this.pdfViewerBase.pageContainer.lastChild;\n if (lastChildNode.classList.contains('e-pv-touch-select-drop')) {\n // eslint-disable-next-line radix\n focusPageId = parseInt(lastChildNode.previousSibling.previousSibling.id.split('_pageDiv_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n focusPageId = parseInt(lastChildNode.id.split('_pageDiv_')[1]);\n }\n }\n else {\n // eslint-disable-next-line radix\n focusPageId = parseInt(this.pdfViewerBase.pageContainer.firstChild.id.split('_pageDiv_')[1]);\n }\n }\n var backward = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n if (this.isTouchSelection && pageNumber > focusPageId && pageNumber > anchorPageId) {\n return;\n }\n if (anchorPageId === focusPageId) {\n var selectionObject = null;\n var selectionBounds = this.getSelectionBounds(selection.getRangeAt(0), pageNumber);\n var selectionRectBounds = this.getSelectionRectangleBounds(selection.getRangeAt(0), pageNumber);\n // eslint-disable-next-line max-len\n var anchorOffsetValue = (this.getNodeElementFromNode(selection.anchorNode).childNodes.length === 1) ? selection.anchorOffset : this.getCorrectOffset(selection.anchorNode, selection.anchorOffset);\n var focusOffsetValue = (this.getNodeElementFromNode(selection.focusNode).childNodes.length === 1) ? selection.focusOffset : this.getCorrectOffset(selection.focusNode, selection.focusOffset);\n selectionObject = {\n isBackward: backward, startNode: this.getNodeElementFromNode(selection.anchorNode).id,\n startOffset: anchorOffsetValue, endNode: this.getNodeElementFromNode(selection.focusNode).id,\n // eslint-disable-next-line max-len\n endOffset: focusOffsetValue, textContent: this.allTextContent, pageNumber: pageNumber, bound: selectionBounds, rectangleBounds: selectionRectBounds\n };\n this.pushSelectionRangeObject(selectionObject, pageNumber);\n }\n else {\n var selectionObject = this.createRangeObjectOnScroll(pageNumber, anchorPageId, focusPageId);\n if (selectionObject) {\n this.pushSelectionRangeObject(selectionObject, pageNumber);\n if (isStich) {\n this.stichSelection(backward, selection, pageNumber);\n }\n }\n }\n }\n };\n TextSelection.prototype.getCorrectOffset = function (node, offset) {\n var offsetValue = 0;\n var parentElement = this.getNodeElementFromNode(node);\n for (var i = 0; i < parentElement.childNodes.length; i++) {\n if (parentElement.childNodes[i] === node) {\n offsetValue = offsetValue + offset;\n break;\n }\n else {\n offsetValue = offsetValue + parentElement.childNodes[i].textContent.length;\n }\n }\n return offsetValue;\n };\n TextSelection.prototype.pushSelectionRangeObject = function (selectionObject, pageNumber) {\n if (this.isTouchSelection) {\n var currentObject = this.selectionRangeArray.filter(\n // eslint-disable-next-line\n function (obj) {\n return (obj.pageNumber === pageNumber);\n });\n if (currentObject.length > 0) {\n var currentObjectIndex = this.selectionRangeArray.indexOf(currentObject[0]);\n this.selectionRangeArray.splice(currentObjectIndex, 1, selectionObject);\n return;\n }\n }\n var nextPageObject = this.selectionRangeArray.filter(\n // eslint-disable-next-line\n function (obj) {\n return (obj.pageNumber === (pageNumber + 1));\n });\n if (nextPageObject.length === 0) {\n if (this.isTouchSelection && this.selectionRangeArray.length !== 0) {\n var prevPageObject = this.selectionRangeArray.filter(\n // eslint-disable-next-line\n function (obj) {\n return (obj.pageNumber === (pageNumber - 1));\n });\n if (prevPageObject.length !== 0) {\n var prevIndex = this.selectionRangeArray.indexOf(prevPageObject[0]);\n this.selectionRangeArray.splice(prevIndex + 1, 0, selectionObject);\n }\n else {\n var firstObject = this.selectionRangeArray[0];\n if (pageNumber < firstObject.pageNumber) {\n this.selectionRangeArray.splice(0, 0, selectionObject);\n }\n else {\n this.selectionRangeArray.push(selectionObject);\n }\n }\n }\n else {\n this.selectionRangeArray.push(selectionObject);\n }\n }\n else {\n var index = this.selectionRangeArray.indexOf(nextPageObject[0]);\n this.selectionRangeArray.splice(index, 0, selectionObject);\n }\n };\n TextSelection.prototype.extendCurrentSelection = function (element, offset, selection, range) {\n var currentFocusOffset = selection.focusOffset;\n var currentFocusElement = selection.focusNode.parentElement.id;\n // eslint-disable-next-line\n var focusPageId = isNaN(parseInt(currentFocusElement.split('_text_')[1])) ? parseInt(selection.focusNode.id.split('_pageDiv_')[1]) : parseInt(currentFocusElement.split('_text_')[1]);\n // eslint-disable-next-line radix\n if (isNaN(parseInt(currentFocusElement.split('_text_')[1]))) {\n // eslint-disable-next-line\n currentFocusElement = this.pdfViewerBase.getElement('_textLayer_' + (focusPageId + 1)).firstChild.id;\n }\n range.setStart(element.childNodes[0], offset);\n range.setEnd(element.childNodes[0], offset);\n selection.removeAllRanges();\n selection.addRange(range);\n selection.extend(document.getElementById(currentFocusElement).childNodes[0], currentFocusOffset);\n };\n TextSelection.prototype.stichSelection = function (backward, selection, pageNumber) {\n var range = document.createRange();\n var nextPageElement;\n if (backward) {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber - 1));\n if (nextPageElement) {\n var lastElement = nextPageElement.lastChild;\n if (lastElement) {\n this.extendCurrentSelection(lastElement, this.getTextLastLength(lastElement), selection, range);\n }\n else {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber - 2));\n lastElement = nextPageElement.lastChild;\n this.extendCurrentSelection(lastElement, this.getTextLastLength(lastElement), selection, range);\n }\n }\n else {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber + 1));\n var lastElement = nextPageElement.firstChild;\n this.extendCurrentSelection(lastElement, 0, selection, range);\n }\n }\n else {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber + 1));\n if (nextPageElement) {\n var firstElement = nextPageElement.firstChild;\n if (!firstElement) {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber + 2));\n firstElement = nextPageElement.firstChild;\n range.setStart(firstElement.childNodes[0], 0);\n }\n else {\n range.setStart(firstElement.childNodes[0], 0);\n }\n range.setEnd(selection.focusNode, selection.focusOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n };\n /**\n * @param currentPageNumber\n * @private\n */\n TextSelection.prototype.textSelectionOnMouseWheel = function (currentPageNumber) {\n this.isMouseLeaveSelection = true;\n this.stichSelectionOnScroll(currentPageNumber);\n };\n /**\n * @param currentPageNumber\n * @private\n */\n TextSelection.prototype.stichSelectionOnScroll = function (currentPageNumber) {\n var selection = window.getSelection();\n if (this.isTextSelection) {\n // eslint-disable-next-line radix\n var anchorPageId = parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1]);\n // eslint-disable-next-line radix\n var focusPageId = parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1]);\n var nextPageElement = void 0;\n if (anchorPageId !== currentPageNumber && focusPageId !== currentPageNumber) {\n var backward = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n if (!backward) {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (currentPageNumber - 1));\n if (nextPageElement) {\n var lastElement = nextPageElement.lastChild;\n if (lastElement) {\n if (lastElement.childNodes[0]) {\n this.extendSelectionStich(lastElement.childNodes[0], this.getTextLastLength(lastElement), selection);\n }\n else {\n this.extendSelectionStich(lastElement, this.getTextLastLength(lastElement), selection);\n }\n }\n else {\n nextPageElement = this.pdfViewerBase.getElement('_textLayer_' + currentPageNumber);\n var lastElement_1 = nextPageElement.firstChild;\n this.extendSelectionStich(lastElement_1.childNodes[0], 0, selection);\n }\n }\n }\n else {\n nextPageElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (currentPageNumber - 1));\n if (nextPageElement) {\n var lastElement = nextPageElement.firstChild;\n if (lastElement) {\n this.extendSelectionStich(lastElement.childNodes[0], 0, selection);\n }\n }\n }\n }\n this.maintainSelectionArray();\n }\n };\n TextSelection.prototype.extendSelectionStich = function (node, offset, selection) {\n if (selection.extend) {\n selection.extend(node, offset);\n }\n };\n /**\n * @param pageNumber\n * @param anchorPageId\n * @param focusPageId\n * @param pageNumber\n * @param anchorPageId\n * @param focusPageId\n * @private\n */\n TextSelection.prototype.createRangeObjectOnScroll = function (pageNumber, anchorPageId, focusPageId) {\n var selectionObject = null;\n var selection = window.getSelection();\n if (selection.anchorNode !== null) {\n var backward = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n var firstElement = void 0;\n var lastElement = void 0;\n var startOffset = void 0;\n var endOffset = void 0;\n var element = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n if (element.childNodes) {\n if (!backward) {\n if (pageNumber === anchorPageId) {\n firstElement = this.getNodeElementFromNode(selection.anchorNode);\n // eslint-disable-next-line max-len\n lastElement = element.lastChild;\n startOffset = this.getCorrectOffset(selection.anchorNode, selection.anchorOffset);\n endOffset = this.getTextLastLength(lastElement);\n }\n else if (pageNumber > anchorPageId && pageNumber < focusPageId) {\n // eslint-disable-next-line max-len\n firstElement = element.firstChild;\n // eslint-disable-next-line max-len\n lastElement = element.lastChild;\n startOffset = 0;\n endOffset = this.getTextLastLength(lastElement);\n }\n else if (pageNumber === focusPageId) {\n // eslint-disable-next-line max-len\n firstElement = element.firstChild;\n var pageNumberIndex = this.getNodeElementFromNode(selection.focusNode).id.indexOf(focusPageId.toString());\n if (pageNumberIndex !== -1) {\n lastElement = this.getNodeElementFromNode(selection.focusNode);\n endOffset = this.getCorrectOffset(selection.focusNode, selection.focusOffset);\n }\n else {\n // eslint-disable-next-line max-len\n lastElement = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + focusPageId).lastChild;\n endOffset = this.getTextLastLength(lastElement);\n }\n startOffset = 0;\n }\n }\n else {\n if (pageNumber === anchorPageId) {\n firstElement = this.getNodeElementFromNode(selection.anchorNode);\n // eslint-disable-next-line max-len\n lastElement = element.firstChild;\n startOffset = this.getCorrectOffset(selection.anchorNode, selection.anchorOffset);\n endOffset = 0;\n }\n else if (pageNumber < anchorPageId && pageNumber > focusPageId) {\n // eslint-disable-next-line max-len\n firstElement = element.firstChild;\n // eslint-disable-next-line max-len\n lastElement = element.lastChild;\n startOffset = 0;\n endOffset = this.getTextLastLength(lastElement);\n }\n else if (pageNumber === focusPageId) {\n firstElement = this.getNodeElementFromNode(selection.focusNode);\n // eslint-disable-next-line max-len\n lastElement = element.lastChild;\n startOffset = this.getCorrectOffset(selection.focusNode, selection.focusOffset);\n endOffset = this.getTextLastLength(lastElement);\n }\n }\n if (firstElement && lastElement) {\n // eslint-disable-next-line max-len\n var selectionRangeObject = this.getSelectionRangeObject(firstElement.id, startOffset, lastElement.id, endOffset, pageNumber);\n var selectionString = selectionRangeObject.toString();\n var selectionBound = this.getSelectionBounds(selectionRangeObject, pageNumber);\n var selectionRectBounds = this.getSelectionRectangleBounds(selectionRangeObject, pageNumber);\n // eslint-disable-next-line max-len\n return selectionObject = { isBackward: backward, startNode: firstElement.id, startOffset: startOffset, endNode: lastElement.id, endOffset: endOffset, textContent: this.allTextContent, pageNumber: pageNumber, bound: selectionBound, rectangleBounds: selectionRectBounds };\n }\n else {\n return null;\n }\n }\n }\n return null;\n };\n TextSelection.prototype.getSelectionRangeObject = function (startNode, startOffset, endNode, endOffset, pageNumber) {\n var startElement = document.getElementById(startNode);\n var endElement = document.getElementById(endNode);\n if (startElement.childNodes[0]) {\n startElement = startElement.childNodes[0];\n }\n if (endElement.childNodes[0]) {\n endElement = endElement.childNodes[0];\n }\n // eslint-disable-next-line radix\n var currentAnchorOffset = parseInt(startNode.split('_' + pageNumber + '_')[1]);\n // eslint-disable-next-line radix\n var currentFocusOffset = parseInt(endNode.split('_' + pageNumber + '_')[1]);\n var range = document.createRange();\n if (currentAnchorOffset <= currentFocusOffset) {\n range.setStart(startElement, startOffset);\n range.setEnd(endElement, endOffset);\n }\n else {\n range.setStart(endElement, endOffset);\n range.setEnd(startElement, startOffset);\n }\n return range;\n };\n TextSelection.prototype.getSelectionBounds = function (range, pageNumber) {\n var startElement = this.getNodeElementFromNode(range.startContainer);\n var endElement = this.getNodeElementFromNode(range.endContainer);\n var bounds = null;\n if (startElement !== endElement) {\n var newStartRange = document.createRange();\n // eslint-disable-next-line max-len\n var startRange = this.createRangeForSelection(range.startContainer, range.endContainer, range.startOffset, range.endOffset, newStartRange);\n bounds = this.normalizeBounds(startRange.getBoundingClientRect(), pageNumber);\n }\n else {\n bounds = this.normalizeBounds(range.getBoundingClientRect(), pageNumber);\n }\n return bounds;\n };\n TextSelection.prototype.getSelectionRectangleBounds = function (range, pageNumber) {\n var selectionBounds = [];\n var startElement = this.getNodeElementFromNode(range.startContainer);\n var endElement = this.getNodeElementFromNode(range.endContainer);\n var bounds = null;\n var selectionTexts = [];\n this.allTextContent = \"\";\n if (startElement !== endElement) {\n var startOffset = 0;\n var endOffset = 0;\n var currentId = 0;\n var anchorPageId = this.pdfViewerBase.textLayer.getPageIndex(range.startContainer);\n var anchorTextId = this.pdfViewerBase.textLayer.getTextIndex(range.startContainer, anchorPageId);\n var focusPageId = this.pdfViewerBase.textLayer.getPageIndex(range.endContainer);\n var focusTextId = this.pdfViewerBase.textLayer.getTextIndex(range.endContainer, focusPageId);\n var textDivs = this.pdfViewerBase.getElement('_textLayer_' + focusPageId).childNodes;\n if (pageNumber === anchorPageId) {\n currentId = anchorTextId;\n }\n else {\n currentId = 0;\n }\n for (var j = currentId; j < textDivs.length; j++) {\n var textElement = textDivs[j];\n if (j === anchorTextId) {\n startOffset = range.startOffset;\n }\n else {\n startOffset = 0;\n }\n if (j === focusTextId) {\n endOffset = range.endOffset;\n }\n else {\n endOffset = textElement.textContent.length;\n }\n if (startOffset !== 0 || endOffset !== 0) {\n var newRange = document.createRange();\n for (var k = 0; k < textElement.childNodes.length; k++) {\n var node = textElement.childNodes[k];\n newRange.setStart(node, startOffset);\n newRange.setEnd(node, endOffset);\n }\n var boundingRect = this.normalizeBounds(newRange.getBoundingClientRect(), pageNumber);\n selectionBounds.push(boundingRect);\n var textselection = newRange.toString();\n selectionTexts.push(textselection);\n newRange.detach();\n if (j === focusTextId) {\n break;\n }\n }\n }\n for (var i = 0; i < selectionTexts.length; i++) {\n var text = selectionTexts[i];\n // While copy and paste for space construct new line\n if ((i != 0 && text === ' ' && selectionTexts[i - 1].includes('\\r\\n')) || (i != selectionTexts.length - 1 && selectionTexts[i] === ' ' && selectionTexts[i + 1] === '\\r\\n')) {\n text = '';\n }\n if (text.slice(text.length - 2) !== '\\r\\n' || i === selectionTexts.length - 1) {\n this.allTextContent += text;\n }\n else {\n this.allTextContent += text;\n }\n }\n }\n else {\n bounds = this.normalizeBounds(range.getBoundingClientRect(), pageNumber);\n this.allTextContent = range.toString();\n selectionBounds.push(bounds);\n }\n return selectionBounds;\n };\n TextSelection.prototype.getTextId = function (elementId) {\n var index = elementId.lastIndexOf('_');\n var divId = elementId.substring(index + 1, elementId.length);\n // eslint-disable-next-line radix\n return parseInt(divId);\n };\n TextSelection.prototype.normalizeBounds = function (bound, pageNumber) {\n var newBounds = null;\n var currentPageElement = this.pdfViewerBase.getElement('_pageDiv_' + pageNumber);\n if (this.pdfViewerBase.isMixedSizeDocument) {\n var currentTextElement = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n if (currentTextElement) {\n currentPageElement = currentTextElement;\n }\n }\n var currentPageRect = currentPageElement.getBoundingClientRect();\n newBounds = {\n bottom: this.getMagnifiedValue(bound.bottom - currentPageRect.top), height: this.getMagnifiedValue(bound.height),\n left: this.getMagnifiedValue(bound.left - currentPageRect.left), top: this.getMagnifiedValue(bound.top - currentPageRect.top),\n right: this.getMagnifiedValue(bound.right - currentPageRect.left), width: this.getMagnifiedValue(bound.width)\n };\n return newBounds;\n };\n TextSelection.prototype.getMagnifiedValue = function (value) {\n return value / this.pdfViewerBase.getZoomFactor();\n };\n /**\n * @param pageNumber\n * @private\n */\n TextSelection.prototype.getCurrentSelectionBounds = function (pageNumber) {\n var bound = null;\n var ranges = this.selectionRangeArray;\n for (var i = 0; i < ranges.length; i++) {\n if (ranges[i] !== null) {\n if (pageNumber === ranges[i].pageNumber) {\n bound = ranges[i].bound;\n }\n }\n }\n return bound;\n };\n TextSelection.prototype.createRangeForSelection = function (start, end, startOffset, endOffset, range) {\n range.setStart(start, startOffset);\n range.setEnd(end, endOffset);\n return range;\n };\n TextSelection.prototype.maintainSelectionArray = function () {\n var _this = this;\n if (this.selectionRangeArray.length !== 0) {\n var selection = window.getSelection();\n var isBackward = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n // eslint-disable-next-line\n var anchorPage = isNaN(parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1])) ? parseInt(selection.anchorNode.id.split('_pageDiv_')[1]) : parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1]);\n if (isNaN(anchorPage)) {\n // eslint-disable-next-line radix\n anchorPage = parseInt(selection.anchorNode.id.split('_text_')[1]);\n }\n // eslint-disable-next-line\n var focusPage_1 = isNaN(parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1])) ? parseInt(selection.focusNode.id.split('_pageDiv_')[1]) : parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1]);\n if (isNaN(focusPage_1)) {\n // eslint-disable-next-line\n focusPage_1 = isNaN(parseInt(selection.focusNode.id.split('_text_')[1])) ? parseInt(selection.focusNode.id.split('_textLayer_')[1]) : parseInt(selection.focusNode.id.split('_text_')[1]);\n }\n var arrayObject = [];\n if (!isBackward) {\n arrayObject = this.selectionRangeArray.filter(\n // eslint-disable-next-line\n function (obj) {\n return (!((_this.selectionStartPage <= obj.pageNumber) && (obj.pageNumber < focusPage_1)));\n });\n }\n else {\n arrayObject = this.selectionRangeArray.filter(\n // eslint-disable-next-line\n function (obj) {\n return (!((focusPage_1 < obj.pageNumber) && (obj.pageNumber <= _this.selectionStartPage)));\n });\n }\n if (arrayObject.length > 0) {\n for (var i = 0; i < arrayObject.length; i++) {\n var indexInArray = this.selectionRangeArray.indexOf(arrayObject[i]);\n if (indexInArray !== -1) {\n this.selectionRangeArray.splice(indexInArray, 1);\n }\n }\n if (this.selectionRangeArray.length === 1) {\n // eslint-disable-next-line max-len\n if (this.selectionRangeArray[0].pageNumber === anchorPage || this.selectionRangeArray[0].pageNumber === focusPage_1) {\n arrayObject = [];\n }\n }\n }\n }\n };\n /**\n * @private\n */\n TextSelection.prototype.applySpanForSelection = function () {\n var selection = window.getSelection();\n // eslint-disable-next-line max-len\n if (selection.anchorNode === selection.focusNode && selection.anchorOffset === selection.focusOffset && !selection.isCollapsed) {\n selection.removeAllRanges();\n }\n // eslint-disable-next-line max-len\n if (selection.anchorNode !== null && this.pdfViewerBase.viewerContainer.contains(this.getNodeElementFromNode(selection.anchorNode))) {\n var isBackWardSelection = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n var anchorPageId = void 0;\n var focusPageId = void 0;\n var anchorOffsetDiv = void 0;\n var focusOffsetDiv = void 0;\n var anchorOffset = void 0;\n var focusOffset = void 0;\n if (isBackWardSelection) {\n // eslint-disable-next-line radix\n anchorPageId = parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1]);\n // eslint-disable-next-line radix\n focusPageId = parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1]);\n // eslint-disable-next-line radix\n anchorOffsetDiv = parseInt(this.getNodeElementFromNode(selection.focusNode).id.split('_text_')[1].split('_')[1]);\n // eslint-disable-next-line radix\n focusOffsetDiv = parseInt(this.getNodeElementFromNode(selection.anchorNode).id.split('_text_')[1].split('_')[1]);\n anchorOffset = selection.focusOffset;\n focusOffset = selection.anchorOffset;\n }\n else {\n var anchorElement = this.getNodeElementFromNode(selection.anchorNode);\n var focusElement = this.getNodeElementFromNode(selection.focusNode);\n // eslint-disable-next-line\n anchorPageId = (anchorElement.id.indexOf('text_') !== -1) ? parseInt(anchorElement.id.split('text_')[1]) : parseInt(anchorElement.id.split('_textLayer_')[1]);\n // eslint-disable-next-line\n focusPageId = (focusElement.id.indexOf('text_') !== -1) ? parseInt(focusElement.id.split('text_')[1]) : parseInt(focusElement.id.split('_textLayer_')[1]);\n var isFocusChanged = false;\n if (this.isTouchSelection) {\n if (selection.focusNode === this.pdfViewerBase.pageContainer) {\n var lastChildNode = this.pdfViewerBase.pageContainer.lastChild;\n if (lastChildNode.classList.contains('e-pv-touch-select-drop')) {\n var lastPageDiv = lastChildNode.previousSibling.previousSibling;\n // eslint-disable-next-line radix\n focusPageId = parseInt(lastPageDiv.id.split('_pageDiv_')[1]);\n focusElement = this.pdfViewerBase.getElement('_textLayer_' + focusPageId).lastChild;\n isFocusChanged = true;\n }\n else if (lastChildNode.classList.contains('e-pv-page-div')) {\n var lastPageDiv = lastChildNode;\n // eslint-disable-next-line radix\n focusPageId = parseInt(lastPageDiv.id.split('_pageDiv_')[1]);\n focusElement = this.pdfViewerBase.getElement('_textLayer_' + focusPageId).lastChild;\n isFocusChanged = true;\n }\n }\n }\n if (anchorElement.classList.contains('e-pv-maintaincontent')) {\n anchorElement = this.getNodeElementFromNode(anchorElement);\n // eslint-disable-next-line radix\n anchorPageId = parseInt(anchorElement.id.split('text_')[1]);\n }\n if (focusElement.classList.contains('e-pv-maintaincontent')) {\n focusElement = this.getNodeElementFromNode(focusElement);\n // eslint-disable-next-line radix\n focusPageId = parseInt(focusElement.id.split('text_')[1]);\n }\n if (anchorPageId === focusPageId) {\n if (anchorElement.contains(focusElement)) {\n anchorElement = focusElement;\n }\n if (focusElement.contains(anchorElement)) {\n focusElement = anchorElement;\n }\n }\n // eslint-disable-next-line radix\n anchorOffsetDiv = (anchorElement.id.split('text_')[1]) ? parseInt(anchorElement.id.split('text_')[1].split('_')[1]) : null;\n // eslint-disable-next-line radix\n focusOffsetDiv = (focusElement.id.split('text_')[1]) ? parseInt(focusElement.id.split('text_')[1].split('_')[1]) : null;\n anchorOffsetDiv = isNaN(anchorOffsetDiv) ? focusOffsetDiv : anchorOffsetDiv;\n focusOffsetDiv = isNaN(focusOffsetDiv) ? anchorOffsetDiv : focusOffsetDiv;\n anchorOffset = selection.anchorOffset;\n focusOffset = !isFocusChanged ? selection.focusOffset : focusElement.textContent.length;\n }\n if (this.pdfViewerBase.checkIsNormalText()) {\n selection.removeAllRanges();\n this.pdfViewerBase.textLayer.clearDivSelection();\n // eslint-disable-next-line max-len\n this.pdfViewerBase.textLayer.applySpanForSelection(anchorPageId, focusPageId, anchorOffsetDiv, focusOffsetDiv, anchorOffset, focusOffset);\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.searchAfterSelection();\n }\n }\n };\n /**\n * @param event\n * @param x\n * @param y\n * @private\n */\n TextSelection.prototype.initiateTouchSelection = function (event, x, y) {\n if (this.pdfViewerBase.isShapeBasedAnnotationsEnabled()) {\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.annotations[0].pageIndex);\n }\n }\n // eslint-disable-next-line\n var element = event.target;\n var belowElements = document.elementsFromPoint(event.touches[0].clientX, event.touches[0].clientY);\n if (belowElements.length !== 0) {\n if (belowElements[0].classList.contains('e-pv-hyperlink') && belowElements[1].classList.contains('e-pv-text')) {\n element = belowElements[1];\n }\n }\n var pageNumber = parseFloat(element.id.split('_')[2]);\n this.pdfViewer.fireTextSelectionStart(pageNumber + 1);\n this.selectAWord(element, x, y, true);\n this.createTouchSelectElement(event);\n this.maintainSelectionOnZoom(true, false);\n this.fireTextSelectEnd();\n this.applySpanForSelection();\n };\n // eslint-disable-next-line\n TextSelection.prototype.selectTextByTouch = function (element, x, y, isForwardSelection, target, isCloserMovement) {\n var isTextSelected = false;\n if (element.nodeType === element.TEXT_NODE) {\n var rangeObject = element.ownerDocument.createRange();\n var selection = window.getSelection();\n rangeObject.selectNodeContents(element);\n var currentPosition = 0;\n var endPosition = rangeObject.endOffset;\n while (currentPosition < endPosition) {\n rangeObject.setStart(element, currentPosition);\n rangeObject.setEnd(element, currentPosition + 1);\n var rangeBounds = rangeObject.getBoundingClientRect();\n if (rangeBounds.left <= x && rangeBounds.right >= x && rangeBounds.top <= y && rangeBounds.bottom >= y) {\n if (selection.anchorNode != null) {\n if (isForwardSelection) {\n rangeObject.setStart(selection.anchorNode, selection.anchorOffset);\n }\n // eslint-disable-next-line max-len\n rangeObject = this.setTouchSelectionStartPosition(selection, rangeObject, isForwardSelection, target, element, currentPosition, isCloserMovement);\n if (isForwardSelection) {\n selection.extend(element, currentPosition);\n }\n isTextSelected = true;\n }\n rangeObject.detach();\n return isTextSelected;\n }\n currentPosition += 1;\n }\n }\n else {\n for (var i = 0; i < element.childNodes.length; i++) {\n var range = element.childNodes[i].ownerDocument.createRange();\n range.selectNodeContents(element.childNodes[i]);\n var rangeBounds = range.getBoundingClientRect();\n if (rangeBounds.left <= x && rangeBounds.right >= x && rangeBounds.top <= y && rangeBounds.bottom >= y) {\n range.detach();\n return (this.selectTextByTouch(element.childNodes[i], x, y, isForwardSelection, target, isCloserMovement));\n }\n else {\n range.detach();\n }\n }\n }\n return isTextSelected;\n };\n // eslint-disable-next-line\n TextSelection.prototype.setTouchSelectionStartPosition = function (selection, range, isForwardSelection, target, element, currentPosition, isCloserMovement) {\n if (isForwardSelection) {\n if (target === 'left') {\n // eslint-disable-next-line\n var startNode = this.getTouchFocusElement(selection, true);\n range.setStart(startNode.focusNode, startNode.focusOffset);\n range.setEnd(element, currentPosition);\n this.selectionAnchorTouch = { anchorNode: range.endContainer.parentElement.id, anchorOffset: range.endOffset };\n }\n else if (target === 'right') {\n // eslint-disable-next-line\n var startNode = this.getTouchAnchorElement(selection, false);\n range.setStart(startNode.anchorNode, startNode.anchorOffset);\n range.setEnd(element, currentPosition);\n this.selectionFocusTouch = { focusNode: range.endContainer.parentElement.id, focusOffset: range.endOffset };\n }\n }\n else {\n if (target === 'left') {\n if (!isCloserMovement) {\n // eslint-disable-next-line\n var startNode = this.getTouchFocusElement(selection, false);\n range.setStart(element, currentPosition);\n // eslint-disable-next-line radix\n range.setEnd(startNode.focusNode, startNode.focusOffset);\n if (range.toString() === '') {\n range.setStart(element, currentPosition);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n this.selectionAnchorTouch = { anchorNode: range.startContainer.parentElement.id, anchorOffset: range.startOffset };\n }\n else {\n range.setStart(element, currentPosition);\n range.setEnd(selection.focusNode, selection.focusOffset);\n this.selectionAnchorTouch = { anchorNode: range.startContainer.parentElement.id, anchorOffset: range.startOffset };\n }\n }\n else if (target === 'right') {\n // eslint-disable-next-line\n var startNode = this.getTouchAnchorElement(selection, true);\n range.setStart(element, currentPosition);\n range.setEnd(startNode.anchorNode, startNode.anchorOffset);\n if (range.toString() === '') {\n range.setStart(startNode.anchorNode, startNode.anchorOffset);\n range.setEnd(element, currentPosition);\n }\n this.selectionFocusTouch = { focusNode: range.startContainer.parentElement.id, focusOffset: range.startOffset };\n }\n }\n selection.removeAllRanges();\n selection.addRange(range);\n return range;\n };\n TextSelection.prototype.getTouchAnchorElement = function (selection, isCurrentFocus) {\n var element = document.getElementById(this.selectionAnchorTouch.anchorNode.toString());\n var startNode = null;\n var offset = 0;\n if (element) {\n startNode = element.childNodes[0];\n // eslint-disable-next-line radix\n offset = parseInt(this.selectionAnchorTouch.anchorOffset.toString());\n }\n else {\n if (isCurrentFocus) {\n startNode = selection.focusNode;\n offset = selection.focusOffset;\n }\n else {\n startNode = selection.anchorNode;\n offset = selection.anchorOffset;\n }\n }\n return { anchorNode: startNode, anchorOffset: offset };\n };\n TextSelection.prototype.getTouchFocusElement = function (selection, isCurrentAnchor) {\n var element = document.getElementById(this.selectionFocusTouch.focusNode.toString());\n var startNode = null;\n var offset = 0;\n if (element) {\n startNode = element.childNodes[0];\n // eslint-disable-next-line radix\n offset = parseInt(this.selectionFocusTouch.focusOffset.toString());\n }\n else {\n if (isCurrentAnchor) {\n startNode = selection.anchorNode;\n offset = selection.anchorOffset;\n }\n else {\n startNode = selection.focusNode;\n offset = selection.focusOffset;\n }\n }\n return { focusNode: startNode, focusOffset: offset };\n };\n TextSelection.prototype.createTouchSelectElement = function (event) {\n var topMargin = 10;\n this.isTouchSelection = true;\n var selection = window.getSelection();\n if (selection.type === 'Range') {\n // eslint-disable-next-line max-len\n this.dropDivElementLeft = createElement('div', { id: this.pdfViewer.element.id + '_touchSelect_droplet_left', className: 'e-pv-touch-select-drop' });\n // eslint-disable-next-line max-len\n this.dropDivElementRight = createElement('div', { id: this.pdfViewer.element.id + '_touchSelect_droplet_right', className: 'e-pv-touch-select-drop' });\n this.dropElementLeft = createElement('div', { className: 'e-pv-touch-ellipse' });\n this.dropElementLeft.style.transform = 'rotate(0deg)';\n this.dropDivElementLeft.appendChild(this.dropElementLeft);\n this.dropElementRight = createElement('div', { className: 'e-pv-touch-ellipse' });\n this.dropElementRight.style.transform = 'rotate(-90deg)';\n this.dropElementRight.style.margin = '0 9px 0 0';\n this.dropDivElementRight.appendChild(this.dropElementRight);\n this.pdfViewerBase.pageContainer.appendChild(this.dropDivElementLeft);\n this.pdfViewerBase.pageContainer.appendChild(this.dropDivElementRight);\n var range = selection.getRangeAt(0);\n var rangePosition = range.getBoundingClientRect();\n var dropElementRect = this.dropDivElementLeft.getBoundingClientRect();\n // eslint-disable-next-line max-len\n var pageTopValue = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top;\n var viewerLeftPosition = this.pdfViewerBase.viewerContainer.getBoundingClientRect().left;\n var topClientValue = this.getClientValueTop(rangePosition.top, this.pdfViewerBase.currentPageNumber - 1);\n // eslint-disable-next-line max-len\n var topPositionValue = topClientValue + pageTopValue * this.pdfViewerBase.getZoomFactor() + (dropElementRect.height / 2) * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivElementLeft.style.top = topPositionValue;\n this.dropDivElementLeft.style.left = rangePosition.left - (viewerLeftPosition + (dropElementRect.width)) + 'px';\n this.dropDivElementRight.style.top = topPositionValue;\n // eslint-disable-next-line max-len\n this.dropDivElementRight.style.left = rangePosition.left + rangePosition.width - viewerLeftPosition + 'px';\n var currentPageLeft = this.pdfViewerBase.getElement('_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1)).getBoundingClientRect().left;\n var currentRangeLeft = rangePosition.left - currentPageLeft;\n // eslint-disable-next-line max-len\n this.topStoreLeft = { pageTop: pageTopValue, topClientValue: this.getMagnifiedValue(topClientValue), pageNumber: this.pdfViewerBase.currentPageNumber - 1, left: this.getMagnifiedValue(currentRangeLeft), isHeightNeeded: true };\n // eslint-disable-next-line max-len\n this.topStoreRight = { pageTop: pageTopValue, topClientValue: this.getMagnifiedValue(topClientValue), pageNumber: this.pdfViewerBase.currentPageNumber - 1, left: this.getMagnifiedValue(currentRangeLeft + rangePosition.width), isHeightNeeded: true };\n this.dropDivElementLeft.addEventListener('touchstart', this.onLeftTouchSelectElementTouchStart);\n this.dropDivElementLeft.addEventListener('touchmove', this.onLeftTouchSelectElementTouchMove);\n this.dropDivElementLeft.addEventListener('touchend', this.onLeftTouchSelectElementTouchEnd);\n this.dropDivElementRight.addEventListener('touchstart', this.onRightTouchSelectElementTouchStart);\n this.dropDivElementRight.addEventListener('touchmove', this.onRightTouchSelectElementTouchMove);\n this.dropDivElementRight.addEventListener('touchend', this.onRightTouchSelectElementTouchEnd);\n // eslint-disable-next-line max-len\n this.calculateContextMenuPosition((event.touches[0].clientY + this.dropDivElementLeft.clientHeight + topMargin), (parseInt(this.dropDivElementLeft.style.left, 10) - topMargin));\n }\n };\n /**\n * @param top\n * @param left\n * @private\n */\n // eslint-disable-next-line\n TextSelection.prototype.calculateContextMenuPosition = function (top, left) {\n var _this = this;\n var topMargin = 10;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line\n var contextTop = top - this.contextMenuHeight;\n if (contextTop < this.pdfViewerBase.toolbarHeight) {\n top = top + this.contextMenuHeight;\n }\n else {\n top = contextTop;\n }\n if ((top + this.contextMenuHeight) > window.innerHeight) {\n top = top - this.contextMenuHeight;\n }\n }\n if (this.pdfViewer.contextMenuSettings.contextMenuAction === 'MouseUp') {\n left = left - 50;\n }\n var proxy = this;\n setTimeout(function () {\n var leftValue = 35;\n var selectedContent = document.getElementsByClassName(\"e-pv-maintaincontent\")[0] ? document.getElementsByClassName(\"e-pv-maintaincontent\")[0].getBoundingClientRect() : null;\n if (selectedContent) {\n if ((selectedContent.bottom + proxy.contextMenuHeight + proxy.pdfViewerBase.toolbarHeight) > window.innerHeight) {\n top = selectedContent.top - (proxy.contextMenuHeight + proxy.pdfViewerBase.toolbarHeight - topMargin);\n }\n else {\n top = selectedContent.bottom + proxy.pdfViewerBase.toolbarHeight - topMargin;\n }\n left = selectedContent.left - leftValue;\n var toolbarModule = _this.pdfViewer.toolbarModule ? _this.pdfViewer.toolbarModule.annotationToolbarModule : 'null';\n if (!toolbarModule || !toolbarModule.textMarkupToolbarElement || toolbarModule.textMarkupToolbarElement.children.length === 0) {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.contextMenuModule.open(top, left, proxy.pdfViewerBase.viewerContainer);\n }\n }\n });\n };\n /**\n * @private\n */\n TextSelection.prototype.initiateSelectionByTouch = function () {\n this.pdfViewerBase.textLayer.clearDivSelection();\n this.pdfViewerBase.contextMenuModule.close();\n var lowerPageIndex = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageIndex = (lowerPageIndex < 0) ? 0 : lowerPageIndex;\n var higherPageIndex = this.pdfViewer.currentPageNumber + 1;\n // eslint-disable-next-line max-len\n higherPageIndex = (higherPageIndex < (this.pdfViewerBase.pageCount - 1)) ? higherPageIndex : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageIndex; i <= higherPageIndex; i++) {\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + i);\n if (textLayer) {\n if (textLayer.childNodes !== null) {\n this.applySelectionMouseScroll(i);\n }\n }\n }\n if (this.selectionRangeArray.length > 0) {\n this.pdfViewer.fireTextSelectionStart(this.selectionRangeArray[0].pageNumber + 1);\n }\n };\n // eslint-disable-next-line\n TextSelection.prototype.terminateSelectionByTouch = function (event) {\n var topMargin = 10;\n this.maintainSelectionOnZoom(true, false);\n this.applySpanForSelection();\n if (this.pdfViewerBase.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n else {\n this.fireTextSelectEnd();\n var top_4 = event.changedTouches[0].clientY + event.currentTarget.clientHeight;\n var spanBounds = this.getSpanBounds();\n if ((spanBounds.bottom + this.contextMenuHeight + this.pdfViewerBase.toolbarHeight) > window.innerHeight) {\n top_4 = spanBounds.top - (this.contextMenuHeight + this.pdfViewerBase.toolbarHeight);\n }\n else {\n top_4 = spanBounds.bottom + this.pdfViewerBase.toolbarHeight - topMargin;\n }\n this.pdfViewerBase.contextMenuModule.open(top_4, (spanBounds.right - spanBounds.left) / 2, this.pdfViewerBase.viewerContainer);\n }\n };\n TextSelection.prototype.getSpanBounds = function () {\n var spanWidth = [];\n var spanRight = [];\n var spanLeft = [];\n var spanHeight = 0;\n var selectedContent = document.getElementsByClassName(\"e-pv-maintaincontent\");\n if (selectedContent.length > 0) {\n for (var i = 0; i < selectedContent.length; i++) {\n var spanElement = selectedContent[i].getBoundingClientRect();\n spanHeight = spanHeight + spanElement.height;\n spanWidth.push(spanElement.width);\n spanRight.push(spanElement.right);\n spanLeft.push(spanElement.left);\n }\n // eslint-disable-next-line max-len\n return { top: selectedContent[0].getBoundingClientRect().top, bottom: selectedContent[selectedContent.length - 1].getBoundingClientRect().bottom, left: Math.min.apply(null, spanLeft), right: Math.max.apply(null, spanRight), width: Math.max.apply(null, spanWidth), height: spanHeight };\n }\n };\n TextSelection.prototype.getNodeElement = function (range, touchX, touchY, event, nodeElement) {\n if (document.caretRangeFromPoint) {\n range = document.caretRangeFromPoint(touchX, touchY);\n nodeElement = this.onTouchElementScroll(range, nodeElement, touchY, event);\n // eslint-disable-next-line\n }\n else if (document.caretPositionFromPoint) {\n // eslint-disable-next-line\n var start = document.caretPositionFromPoint(touchX, touchY);\n // eslint-disable-next-line\n var end = document.caretPositionFromPoint(touchX, touchY);\n range = document.createRange();\n range.setStart(start.offsetNode, start.offset);\n range.setEnd(end.offsetNode, end.offset);\n nodeElement = this.onTouchElementScroll(range, nodeElement, touchY, event);\n }\n return nodeElement;\n };\n TextSelection.prototype.isTouchedWithinContainer = function (event) {\n var elements = document.elementsFromPoint(event.touches[0].clientX, event.touches[0].clientY);\n var isTouchedWithinContainer = false;\n if (elements.length !== 0) {\n isTouchedWithinContainer = true;\n }\n return isTouchedWithinContainer;\n };\n TextSelection.prototype.onTouchElementScroll = function (range, nodeElement, touchY, event) {\n var viewerScrollTop = this.pdfViewerBase.viewerContainer.scrollTop;\n if (range != null) {\n nodeElement = range.startContainer;\n var isScrollBar = this.isScrolledOnScrollBar(event);\n if (!this.pdfViewerBase.viewerContainer.contains(nodeElement.parentElement) || isScrollBar) {\n if (touchY < this.pdfViewerBase.viewerContainer.clientHeight) {\n this.pdfViewerBase.viewerContainer.scrollTop = viewerScrollTop - 30;\n }\n else {\n this.pdfViewerBase.viewerContainer.scrollTop = viewerScrollTop + 30;\n }\n }\n }\n else {\n if (touchY < this.pdfViewerBase.viewerContainer.clientHeight) {\n this.pdfViewerBase.viewerContainer.scrollTop = viewerScrollTop - 30;\n }\n else {\n this.pdfViewerBase.viewerContainer.scrollTop = viewerScrollTop + 30;\n }\n }\n return nodeElement;\n };\n TextSelection.prototype.isCloserTouchScroll = function (currentDifference) {\n var isForwardMovement = false;\n if (this.previousScrollDifference > currentDifference) {\n isForwardMovement = true;\n }\n return isForwardMovement;\n };\n TextSelection.prototype.getClientValueTop = function (clientValue, pageNumber) {\n if (this.pdfViewerBase.getElement('_pageDiv_' + pageNumber)) {\n // eslint-disable-next-line max-len\n return clientValue - this.pdfViewerBase.getElement('_pageDiv_' + pageNumber).getBoundingClientRect().top;\n }\n else {\n return clientValue;\n }\n };\n TextSelection.prototype.isScrolledOnScrollBar = function (event) {\n var isScrollBar = false;\n // eslint-disable-next-line max-len\n if (event.touches && (this.pdfViewerBase.viewerContainer.clientHeight + this.pdfViewerBase.viewerContainer.offsetTop) < event.touches[0].clientY && event.touches[0].clientY < (this.pdfViewerBase.viewerContainer.offsetHeight + this.pdfViewerBase.viewerContainer.offsetTop)) {\n isScrollBar = true;\n }\n return isScrollBar;\n };\n TextSelection.prototype.getTextLastLength = function (element) {\n if (element) {\n return element.textContent.length;\n }\n else {\n return 0;\n }\n };\n TextSelection.prototype.getNodeElementFromNode = function (node) {\n if (node.parentElement) {\n return node.parentElement;\n }\n else {\n return node.parentNode;\n }\n };\n /**\n * Copy the selected text in the PDF Document.\n *\n * @returns void\n */\n TextSelection.prototype.copyText = function () {\n var selectionText = '';\n this.maintainSelectionOnZoom(true, false);\n if (this.selectionRangeArray.length > 0) {\n for (var i = 0; i < this.selectionRangeArray.length; i++) {\n selectionText += this.selectionRangeArray[i].textContent;\n }\n }\n if (selectionText.length > 0) {\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.isShapeCopied = false;\n }\n var textArea = document.createElement('textarea');\n textArea.contentEditable = 'true';\n textArea.textContent = selectionText;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {\n this.pdfViewer.annotation.freeTextAnnotationModule.selectedText = selectionText;\n }\n textArea.style.position = 'fixed';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('copy');\n }\n catch (ex) {\n console.warn('Copy to clipboard failed.', ex);\n }\n finally {\n if (textArea) {\n document.body.removeChild(textArea);\n }\n }\n }\n };\n /**\n * @private\n */\n TextSelection.prototype.destroy = function () {\n this.clear();\n };\n /**\n * @private\n */\n TextSelection.prototype.getModuleName = function () {\n return 'TextSelection';\n };\n return TextSelection;\n}());\nexport { TextSelection };\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, createElement, initializeCSPTemplate } from \"@syncfusion/ej2-base\";\nimport { cornersPointsBeforeRotation, Rect, splitArrayCollection, processPathData, randomId } from \"@syncfusion/ej2-drawings\";\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Dialog, Tooltip } from \"@syncfusion/ej2-popups\";\nimport { Tab } from \"@syncfusion/ej2-navigations\";\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { ColorPicker, Slider, TextBox, NumericTextBox } from \"@syncfusion/ej2-inputs\";\nimport { DropDownList } from \"@syncfusion/ej2-dropdowns\";\nimport { Button, CheckBox } from \"@syncfusion/ej2-buttons\";\nimport { DisplayMode, FontStyle } from '../base/types';\nimport { cloneObject } from '../drawing/drawing-util';\n/* eslint-disable */\n/**\n * The `FormDesigner` module is used to handle form designer actions of PDF viewer.\n */\nvar FormDesigner = /** @class */ (function () {\n /**\n * @param viewer\n * @param base\n * @private\n */\n function FormDesigner(viewer, base) {\n this.isFormFieldExistingInCollection = false;\n this.multilineCheckboxCheckedState = false;\n this.formFieldListItemCollection = [];\n this.formFieldListItemDataSource = [];\n this.isInitialField = false;\n this.isSetFormFieldMode = false;\n this.increasedSize = 5;\n this.defaultZoomValue = 1;\n this.signatureFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isVisibilityChanged: false,\n isNameChanged: false,\n isPrintChanged: false,\n isTooltipChanged: false,\n isThicknessChanged: false,\n };\n this.initialFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isVisibilityChanged: false,\n isNameChanged: false,\n isPrintChanged: false,\n isTooltipChanged: false,\n isThicknessChanged: false,\n };\n this.textFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isBackgroundColorChanged: false,\n isBorderColorChanged: false,\n isAlignmentChanged: false,\n isFontSizeChanged: false,\n isNameChanged: false,\n isToolTipChanged: false,\n isThicknessChanged: false,\n isVisibilityChanged: false,\n isPrintChanged: false,\n isSelected: false,\n isFontFamilyChanged: false,\n isFontStyle: false,\n isValueChanged: false,\n isMaXLength: false,\n isColorChanged: false,\n isMultilineChanged: false,\n };\n this.passwordFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isBackgroundColorChanged: false,\n isBorderColorChanged: false,\n isAlignmentChanged: false,\n isFontSizeChanged: false,\n isNameChanged: false,\n isToolTipChanged: false,\n isThicknessChanged: false,\n isVisibilityChanged: false,\n isPrintChanged: false,\n isSelected: false,\n isFontFamilyChanged: false,\n isFontStyle: false,\n isValueChanged: false,\n isMaXLength: false,\n isColorChanged: false,\n };\n this.checkBoxFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isBackgroundColorChanged: false,\n isBorderColorChanged: false,\n isNameChanged: false,\n isToolTipChanged: false,\n isThicknessChanged: false,\n isVisibilityChanged: false,\n isPrintChanged: false,\n isCheckedChanged: false,\n };\n this.radioButtonFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isBackgroundColorChanged: false,\n isBorderColorChanged: false,\n isNameChanged: false,\n isToolTipChanged: false,\n isThicknessChanged: false,\n isVisibilityChanged: false,\n isPrintChanged: false,\n isSelectedChanged: false,\n };\n this.dropdownFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isBackgroundColorChanged: false,\n isBorderColorChanged: false,\n isAlignmentChanged: false,\n isFontSizeChanged: false,\n isNameChanged: false,\n isToolTipChanged: false,\n isThicknessChanged: false,\n isVisibilityChanged: false,\n isPrintChanged: false,\n isSelected: false,\n isFontFamilyChanged: false,\n isFontStyle: false,\n isColorChanged: false,\n isOptionChanged: false,\n };\n this.listBoxFieldPropertyChanged = {\n isReadOnlyChanged: false,\n isRequiredChanged: false,\n isBackgroundColorChanged: false,\n isBorderColorChanged: false,\n isAlignmentChanged: false,\n isFontSizeChanged: false,\n isNameChanged: false,\n isToolTipChanged: false,\n isThicknessChanged: false,\n isVisibilityChanged: false,\n isPrintChanged: false,\n isSelected: false,\n isFontFamilyChanged: false,\n isFontStyle: false,\n isColorChanged: false,\n isOptionChanged: false,\n };\n /**\n * @private\n */\n this.disableSignatureClickEvent = false;\n /**\n * @private\n */\n this.formFieldIndex = 0;\n /**\n * @private\n */\n this.formFieldIdIndex = 0;\n /**\n * @private\n */\n this.isProgrammaticSelection = false;\n /**\n * @private\n */\n this.isShapeCopied = false;\n this.isDrawHelper = false;\n this.isFormFieldUpdated = false;\n /**\n * @private\n */\n this.isPropertyDialogOpen = false;\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @private\n */\n FormDesigner.prototype.drawHelper = function (formFieldAnnotationType, obj, event) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + this.pdfViewerBase.activeElements.activePageID);\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + this.pdfViewerBase.activeElements.activePageID);\n if (canvasElement !== null && textLayer !== null) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var htmlElement = void 0;\n var HtmlElementAttribute = {\n 'id': 'FormField_helper_html_element',\n 'class': 'foreign-object'\n };\n var bounds = this.updateFormFieldInitialSize(obj, formFieldAnnotationType);\n htmlElement = this.createHtmlElement('div', HtmlElementAttribute);\n this.isDrawHelper = true;\n if (formFieldAnnotationType === \"SignatureField\" || formFieldAnnotationType === \"InitialField\") {\n htmlElement.appendChild(this.createSignatureDialog(this.pdfViewer, obj, bounds));\n }\n else if (formFieldAnnotationType === \"DropdownList\") {\n var element = { id: \"dropdown_helper\" };\n htmlElement.appendChild(this.createDropDownList(element, obj));\n }\n else if (formFieldAnnotationType === \"ListBox\") {\n var element = { id: \"listbox_helper\" };\n htmlElement.appendChild(this.createListBox(element, obj));\n }\n else {\n htmlElement.appendChild(this.createInputElement(formFieldAnnotationType, obj, bounds));\n }\n textLayer.appendChild(htmlElement);\n var point = this.pdfViewerBase.getMousePosition(event);\n htmlElement.setAttribute('style', 'height:' + bounds.height * zoomValue + 'px; width:' + bounds.width * zoomValue + 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'position:absolute;opacity: 0.5;');\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.drawHTMLContent = function (formFieldAnnotationType, element, drawingObject, pageIndex, commandHandler, fieldId) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageIndex);\n var formFieldElement = document.getElementById(\"form_field_\" + element.id + '_html_element');\n if (formFieldElement === null && element !== null && canvasElement !== null && textLayer) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var htmlElement = void 0;\n var parentHtmlElement = void 0;\n var parentHtmlElementAttribute = {\n 'id': \"form_field_\" + element.id + '_html_element',\n 'class': 'foreign-object'\n };\n parentHtmlElement = this.createHtmlElement('div', parentHtmlElementAttribute);\n var HtmlElementAttribute = {\n 'id': element.id + '_html_element',\n 'class': 'foreign-object'\n };\n htmlElement = this.createHtmlElement('div', HtmlElementAttribute);\n if (formFieldAnnotationType === \"SignatureField\" || formFieldAnnotationType === \"InitialField\") {\n element.template = htmlElement.appendChild(this.createSignatureDialog(commandHandler, drawingObject));\n }\n else if (formFieldAnnotationType === \"DropdownList\") {\n element.template = htmlElement.appendChild(this.createDropDownList(element, drawingObject));\n }\n else if (formFieldAnnotationType === \"ListBox\") {\n element.template = htmlElement.appendChild(this.createListBox(element, drawingObject));\n }\n else {\n element.template = htmlElement.appendChild(this.createInputElement(formFieldAnnotationType, drawingObject));\n }\n this.isSetFormFieldMode = false;\n var divElement = document.createElement(\"div\");\n divElement.id = drawingObject.id + '_designer_name';\n divElement.style.fontSize = drawingObject.fontSize ? (drawingObject.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n divElement.className = \"e-pv-show-designer-name\";\n if (this.pdfViewer.designerMode) {\n divElement.innerHTML = drawingObject.name;\n divElement.style.position = 'absolute';\n }\n else {\n divElement.innerHTML = \"\";\n divElement.style.position = 'initial';\n }\n if (formFieldAnnotationType === \"Checkbox\" && (Browser.isDevice)) {\n //Creating outer div for checkbox in mobile device\n var outerDiv = void 0;\n var bounds = drawingObject.bounds;\n var outerDivHeight = bounds.height + this.increasedSize;\n var outerDivWidth = bounds.width + this.increasedSize;\n var outerDivAttribute = {\n 'id': drawingObject.id + '_outer_div',\n 'className': 'e-pv-checkbox-outer-div'\n };\n outerDiv = createElement(\"div\", outerDivAttribute);\n outerDiv.setAttribute('style', 'height:' + outerDivHeight * zoomValue + 'px; width:' + outerDivWidth * zoomValue + 'px;left:' + bounds.x * zoomValue + 'px; top:' + bounds.y * zoomValue + 'px;' +\n 'position:absolute; opacity: 1;');\n htmlElement.appendChild(divElement);\n outerDiv.addEventListener('click', this.setCheckBoxState.bind(this));\n parentHtmlElement.appendChild(htmlElement);\n textLayer.appendChild(outerDiv);\n outerDiv.appendChild(parentHtmlElement);\n }\n else {\n htmlElement.appendChild(divElement);\n parentHtmlElement.appendChild(htmlElement);\n textLayer.appendChild(parentHtmlElement);\n }\n if (formFieldAnnotationType === \"RadioButton\") {\n if (document.getElementsByClassName(\"e-pv-radiobtn-span\").length > 0) {\n var spanElement = document.getElementsByClassName(\"e-pv-radiobtn-span\");\n for (var i = 0; i < spanElement.length; i++) {\n var bounds = this.getCheckboxRadioButtonBounds(drawingObject);\n spanElement[i].style.width = (bounds.width / 2) + \"px\";\n spanElement[i].style.height = (bounds.height / 2) + \"px\";\n if (parseInt(spanElement[i].style.width, 10) <= 1 || parseInt(spanElement[i].style.height, 10) <= 1) {\n spanElement[i].style.width = \"1px\";\n spanElement[i].style.height = \"1px\";\n spanElement[i].style.margin = \"1px\";\n }\n }\n }\n }\n var point = cornersPointsBeforeRotation(element).topLeft;\n if (formFieldAnnotationType === \"Checkbox\" && (Browser.isDevice)) {\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height * zoomValue) + 'px; width:' + (element.actualSize.width * zoomValue) +\n 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + ((this.pdfViewer.designerMode) ? 'none' : 'all')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n }\n else {\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height * zoomValue) + 'px; width:' + (element.actualSize.width * zoomValue) +\n 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + ((this.pdfViewer.designerMode) ? 'none' : 'all')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n }\n this.updateFormDesignerFieldInSessionStorage(point, element, formFieldAnnotationType, drawingObject);\n if (formFieldAnnotationType === \"SignatureField\" || formFieldAnnotationType === \"InitialField\") {\n if (drawingObject.value) {\n var elementId = fieldId + \"_content\";\n var value = this.pdfViewer.nameTable[elementId].value;\n var signatureType = (value.indexOf('base64')) > -1 ? 'Image' : ((value.startsWith('M') && value.split(',')[1].split(' ')[1].startsWith('L')) ? 'Path' : 'Type');\n this.pdfViewer.formFieldsModule.drawSignature(signatureType, value, element.template, drawingObject.fontFamily);\n }\n }\n var field = {\n name: drawingObject.name, id: drawingObject.id, value: drawingObject.value, fontFamily: drawingObject.fontFamily, fontSize: drawingObject.fontSize, fontStyle: drawingObject.fontStyle,\n color: drawingObject.color, backgroundColor: drawingObject.backgroundColor, alignment: drawingObject.alignment, isReadonly: drawingObject.isReadonly, visibility: drawingObject.visibility,\n maxLength: drawingObject.maxLength, isRequired: drawingObject.isRequired, isPrint: drawingObject.isPrint, rotation: drawingObject.rotateAngle, tooltip: drawingObject.tooltip,\n borderColor: drawingObject.borderColor, thickness: drawingObject.thickness, options: drawingObject.options, pageNumber: drawingObject.pageNumber, isChecked: drawingObject.isChecked, isSelected: drawingObject.isSelected\n };\n this.pdfViewer.fireFormFieldAddEvent(\"formFieldAdd\", field, this.pdfViewerBase.activeElements.activePageID);\n }\n else {\n var point = cornersPointsBeforeRotation(element).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point, element, formFieldAnnotationType, drawingObject);\n }\n return element.template;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateFormDesignerFieldInSessionStorage = function (point, element, formFieldType, drawingObject) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var formDesignObj = {\n id: element.id, lineBound: { X: point.x * zoomValue, Y: point.y * zoomValue, Width: element.actualSize.width * zoomValue, Height: element.actualSize.height * zoomValue },\n name: drawingObject.name, zoomValue: zoomValue, pageNumber: drawingObject.pageNumber, value: drawingObject.value, formFieldAnnotationType: formFieldType, isMultiline: drawingObject.isMultiline,\n signatureType: drawingObject.signatureType, signatureBound: drawingObject.signatureBound,\n fontFamily: drawingObject.fontFamily, fontSize: drawingObject.fontSize, fontStyle: drawingObject.fontStyle, fontColor: this.getRgbCode(drawingObject.color),\n borderColor: this.getRgbCode(drawingObject.borderColor), thickness: drawingObject.thickness, backgroundColor: this.getRgbCode(drawingObject.backgroundColor),\n textAlign: drawingObject.alignment, isChecked: drawingObject.isChecked, isSelected: drawingObject.isSelected, isReadonly: drawingObject.isReadonly, font: {\n isBold: drawingObject.font.isBold, isItalic: drawingObject.font.isItalic, isStrikeout: drawingObject.font.isStrikeout, isUnderline: drawingObject.font.isUnderline\n }, selectedIndex: drawingObject.selectedIndex, radiobuttonItem: null, option: drawingObject.options ? drawingObject.options : [], visibility: drawingObject.visibility, maxLength: drawingObject.maxLength, isRequired: drawingObject.isRequired, isPrint: drawingObject.isPrint, rotation: drawingObject.rotateAngle, tooltip: drawingObject.tooltip, insertSpaces: drawingObject.insertSpaces\n };\n if (formDesignObj.formFieldAnnotationType === \"RadioButton\") {\n formDesignObj.radiobuttonItem = [];\n formDesignObj.radiobuttonItem.push({\n id: element.id, lineBound: { X: point.x * zoomValue, Y: point.y * zoomValue, Width: element.actualSize.width * zoomValue, Height: element.actualSize.height * zoomValue },\n name: drawingObject.name, zoomValue: zoomValue, pageNumber: drawingObject.pageNumber, value: drawingObject.value, formFieldAnnotationType: formFieldType,\n fontFamily: drawingObject.fontFamily, fontSize: drawingObject.fontSize, fontStyle: drawingObject.fontStyle, fontColor: this.getRgbCode(drawingObject.color),\n borderColor: this.getRgbCode(drawingObject.borderColor), thickness: drawingObject.thickness, backgroundColor: this.getRgbCode(drawingObject.backgroundColor),\n textAlign: drawingObject.alignment, isChecked: drawingObject.isChecked, isSelected: drawingObject.isSelected, isReadonly: drawingObject.isReadonly, visibility: drawingObject.visibility,\n maxLength: drawingObject.maxLength, isRequired: drawingObject.isRequired, isPrint: drawingObject.isPrint, rotation: 0, tooltip: drawingObject.tooltip\n });\n }\n var isItemAdd = this.getRadioButtonItem(formDesignObj, drawingObject);\n if (!isItemAdd) {\n for (var i = 0; i < this.pdfViewerBase.formFieldCollection.length; i++) {\n var formFieldElement = this.pdfViewerBase.formFieldCollection[i];\n if (formFieldElement[\"Key\"] === formDesignObj.id) {\n this.pdfViewerBase.formFieldCollection.splice(i, 1);\n this.pdfViewerBase.formFieldCollection.push({ Key: element.id, FormField: formDesignObj });\n this.isFormFieldExistingInCollection = true;\n }\n }\n if (!this.isFormFieldExistingInCollection) {\n this.pdfViewerBase.formFieldCollection.push({ Key: element.id, FormField: formDesignObj });\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.isFormFieldExistingInCollection = false;\n if (this.pdfViewerBase.formFieldCollection.length > 0) {\n this.pdfViewerBase.enableFormFieldButton(true);\n }\n else {\n this.pdfViewerBase.enableFormFieldButton(false);\n }\n }\n };\n FormDesigner.prototype.getRadioButtonItem = function (radiobutton, formFieldProperty) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (data) {\n var formFieldsData = JSON.parse(data);\n var isItemAdd = false;\n for (var i = 0; i < formFieldsData.length; i++) {\n var currentData = formFieldsData[i];\n var radiobuttonItem = void 0;\n if (radiobutton.formFieldAnnotationType === \"RadioButton\") {\n if (radiobutton.radiobuttonItem && currentData.FormField.radiobuttonItem) {\n for (var m = 0; m < currentData.FormField.radiobuttonItem.length; m++) {\n if (currentData.FormField.radiobuttonItem[m].id === radiobutton.id) {\n radiobuttonItem = {\n lineBound: radiobutton.lineBound, id: radiobutton.id,\n name: radiobutton.name, zoomValue: radiobutton.zoomValue, pageNumber: radiobutton.pageNumber, value: radiobutton.value, formFieldAnnotationType: radiobutton.formFieldAnnotationType,\n fontFamily: radiobutton.fontFamily, fontSize: radiobutton.fontSize, fontStyle: radiobutton.fontStyle, fontColor: this.getRgbCode(formFieldProperty.color),\n borderColor: this.getRgbCode(formFieldProperty.borderColor), thickness: formFieldProperty.thickness, backgroundColor: this.getRgbCode(formFieldProperty.backgroundColor), textAlign: radiobutton.textAlign, isChecked: radiobutton.isChecked, isSelected: radiobutton.isSelected,\n isReadonly: radiobutton.isReadonly, visibility: radiobutton.visibility, maxLength: radiobutton.maxLength, isRequired: radiobutton.isRequired, isPrint: radiobutton.isPrint, rotation: 0, tooltip: radiobutton.tooltip\n };\n currentData.FormField.radiobuttonItem.splice(m, 1);\n currentData.FormField.radiobuttonItem.push(radiobuttonItem);\n if (!isNullOrUndefined(this.pdfViewerBase.formFieldCollection[i])) {\n if (this.pdfViewerBase.formFieldCollection[i].FormField.name === currentData.FormField.name) {\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem = currentData.FormField.radiobuttonItem;\n isItemAdd = true;\n }\n }\n break;\n }\n else {\n if (radiobutton.formFieldAnnotationType === currentData.FormField.formFieldAnnotationType && radiobutton.name === currentData.FormField.name) {\n radiobuttonItem = {\n lineBound: radiobutton.lineBound, id: radiobutton.id,\n name: radiobutton.name, zoomValue: radiobutton.zoomValue, pageNumber: radiobutton.pageNumber, value: radiobutton.value, formFieldAnnotationType: radiobutton.formFieldAnnotationType,\n fontFamily: radiobutton.fontFamily, fontSize: radiobutton.fontSize, fontStyle: radiobutton.fontStyle, fontColor: this.getRgbCode(formFieldProperty.color),\n borderColor: this.getRgbCode(formFieldProperty.borderColor), thickness: formFieldProperty.thickness, backgroundColor: this.getRgbCode(formFieldProperty.backgroundColor), textAlign: radiobutton.textAlign, isChecked: radiobutton.isChecked, isSelected: radiobutton.isSelected,\n isReadonly: radiobutton.isReadonly, visibility: radiobutton.visibility, maxLength: radiobutton.maxLength, isRequired: radiobutton.isRequired, isPrint: radiobutton.isPrint, rotation: 0, tooltip: radiobutton.tooltip\n };\n var isContainsRadiobuttonItem = false;\n for (var i_1 = 0; i_1 < currentData.FormField.radiobuttonItem.length; i_1++) {\n if (currentData.FormField.radiobuttonItem[i_1].id === radiobuttonItem.id) {\n currentData.FormField.radiobuttonItem[i_1] = radiobuttonItem;\n isContainsRadiobuttonItem = true;\n break;\n }\n }\n if (!isContainsRadiobuttonItem) {\n currentData.FormField.radiobuttonItem.push(radiobuttonItem);\n }\n if (!isNullOrUndefined(this.pdfViewerBase.formFieldCollection[i])) {\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem = currentData.FormField.radiobuttonItem;\n isItemAdd = true;\n for (var l = 0; l < this.pdfViewerBase.formFieldCollection.length; l++) {\n var formFieldElement = this.pdfViewerBase.formFieldCollection[l];\n if (formFieldElement[\"Key\"] === radiobuttonItem.id) {\n this.pdfViewerBase.formFieldCollection.splice(l, 1);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (isItemAdd) {\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n return isItemAdd;\n };\n // eslint-disable-next-line\n FormDesigner.prototype.getRgbCode = function (colorString) {\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n var colorCode = this.nameToHash(colorString);\n if (colorCode != \"\")\n colorString = colorCode;\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.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 = parseFloat(stringArray[3]) * 100;\n if (isNaN(a)) {\n a = 0;\n }\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @param colour\n * @private\n */\n // eslint-disable-next-line\n FormDesigner.prototype.nameToHash = function (colour) {\n // eslint-disable-next-line\n var colours = {\n 'aliceblue': '#f0f8ff', 'antiquewhite': '#faebd7', 'aqua': '#00ffff', 'aquamarine': '#7fffd4', 'azure': '#f0ffff',\n 'beige': '#f5f5dc', 'bisque': '#ffe4c4', 'black': '#000000', 'blanchedalmond': '#ffebcd', 'blue': '#0000ff',\n 'blueviolet': '#8a2be2', 'brown': '#a52a2a', 'burlywood': '#deb887', 'yellow': '#ffff00', 'yellowgreen': '#9acd32',\n 'cadetblue': '#5f9ea0', 'chartreuse': '#7fff00', 'chocolate': '#d2691e', 'coral': '#ff7f50',\n 'cornflowerblue': '#6495ed', 'cornsilk': '#fff8dc', 'crimson': '#dc143c',\n 'cyan': '#00ffff', 'darkblue': '#00008b', 'darkcyan': '#008b8b', 'darkgoldenrod': '#b8860b', 'darkgray': '#a9a9a9',\n 'darkred': '#8b0000', 'darksalmon': '#e9967a', 'darkgreen': '#006400', 'darkkhaki': '#bdb76b',\n 'darkmagenta': '#8b008b', 'darkolivegreen': '#556b2f', 'darkorange': '#ff8c00', 'darkorchid': '#9932cc',\n 'darkseagreen': '#8fbc8f', 'darkslateblue': '#483d8b', 'darkslategray': '#2f4f4f', 'darkturquoise': '#00ced1',\n 'darkviolet': '#9400d3', 'deeppink': '#ff1493', 'deepskyblue': '#00bfff', 'dimgray': '#696969',\n 'dodgerblue': '#1e90ff', 'firebrick': '#b22222', 'floralwhite': '#fffaf0',\n 'forestgreen': '#228b22', 'fuchsia': '#ff00ff', 'gainsboro': '#dcdcdc', 'ghostwhite': '#f8f8ff',\n 'gold': '#ffd700', 'goldenrod': '#daa520', 'gray': '#808080', 'green': '#008000',\n 'greenyellow': '#adff2f', 'honeydew': '#f0fff0', 'hotpink': '#ff69b4', 'indianred ': '#cd5c5c',\n 'mediumorchid': '#ba55d3', 'mediumpurple': '#9370d8', 'indigo': '#4b0082', 'ivory': '#fffff0',\n 'navy': '#000080', 'oldlace': '#fdf5e6', 'olive': '#808000', 'khaki': '#f0e68c',\n 'lavender': '#e6e6fa', 'lavenderblush': '#fff0f5', 'lawngreen': '#7cfc00', 'lemonchiffon': '#fffacd',\n 'lightblue': '#add8e6', 'lightcoral': '#f08080', 'lightcyan': '#e0ffff',\n 'lightgoldenrodyellow': '#fafad2', 'lightgrey': '#d3d3d3', 'lightgreen': '#90ee90',\n 'lightpink': '#ffb6c1', 'lightsalmon': '#ffa07a', 'lightseagreen': '#20b2aa',\n 'lightskyblue': '#87cefa', 'lightslategray': '#778899', 'lightsteelblue': '#b0c4de',\n 'lightyellow': '#ffffe0', 'lime': '#00ff00', 'limegreen': '#32cd32', 'linen': '#faf0e6',\n 'magenta': '#ff00ff', 'maroon': '#800000', 'mediumaquamarine': '#66cdaa', 'mediumblue': '#0000cd',\n 'mediumseagreen': '#3cb371', 'mediumslateblue': '#7b68ee', 'mediumspringgreen': '#00fa9a',\n 'mediumturquoise': '#48d1cc', 'mediumvioletred': '#c71585', 'midnightblue': '#191970',\n 'mintcream': '#f5fffa', 'mistyrose': '#ffe4e1', 'moccasin': '#ffe4b5', 'navajowhite': '#ffdead',\n 'rebeccapurple': '#663399', 'red': '#ff0000', 'rosybrown': '#bc8f8f', 'royalblue': '#4169e1',\n 'olivedrab': '#6b8e23', 'orange': '#ffa500', 'orangered': '#ff4500', 'orchid': '#da70d6',\n 'palegoldenrod': '#eee8aa', 'palegreen': '#98fb98', 'paleturquoise': '#afeeee',\n 'palevioletred': '#d87093', 'papayawhip': '#ffefd5', 'peachpuff': '#ffdab9', 'peru': '#cd853f',\n 'wheat': '#f5deb3', 'white': '#ffffff', 'whitesmoke': '#f5f5f5', 'pink': '#ffc0cb', 'plum': '#dda0dd',\n 'steelblue': '#4682b4', 'violet': '#ee82ee', 'powderblue': '#b0e0e6', 'purple': '#800080',\n 'saddlebrown': '#8b4513', 'salmon': '#fa8072', 'sandybrown': '#f4a460', 'seagreen': '#2e8b57',\n 'seashell': '#fff5ee', 'sienna': '#a0522d', 'silver': '#c0c0c0', 'skyblue': '#87ceeb',\n 'slateblue': '#6a5acd', 'slategray': '#708090', 'snow': '#fffafa', 'springgreen': '#00ff7f',\n 'tan': '#d2b48c', 'teal': '#008080', 'thistle': '#d8bfd8', 'tomato': '#ff6347', 'turquoise': '#40e0d0'\n };\n if (typeof colours[colour.toLowerCase()] !== 'undefined') {\n return colours[colour.toLowerCase()];\n }\n return '';\n };\n /**\n * @param value\n * @param type\n * @param value\n * @param type\n * @private\n */\n FormDesigner.prototype.getValue = function (value, type) {\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 FormDesigner.prototype.convertRgbToNumberArray = function (value) {\n // eslint-disable-next-line max-len\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 FormDesigner.prototype.convertToRgbString = function (rgb) {\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\n };\n FormDesigner.prototype.convertToHsvString = function (hsv) {\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\n };\n FormDesigner.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 FormDesigner.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 FormDesigner.prototype.rgbToHsv = function (r, g, b, opacity) {\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 s;\n var v = max;\n var d = max - min;\n 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 FormDesigner.prototype.hsvToRgb = function (h, s, v, opacity) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\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 i = Math.floor(h);\n f = h - i;\n p = v * (1 - s);\n q = v * (1 - s * f);\n 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 FormDesigner.prototype.rgbToHex = function (rgb) {\n // eslint-disable-next-line max-len\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 /**\n * @private\n */\n FormDesigner.prototype.updateCanvas = function (pageNumber, canvas) {\n if (canvas !== null && canvas !== undefined) {\n canvas = canvas;\n }\n else {\n canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n var zoom = this.pdfViewerBase.getZoomFactor();\n var ratio = this.pdfViewerBase.getZoomRatio(zoom);\n if (canvas) {\n var width = this.pdfViewerBase.pageSize[pageNumber].width;\n var height = this.pdfViewerBase.pageSize[pageNumber].height;\n canvas.width = width * ratio;\n canvas.height = height * ratio;\n canvas.style.width = width * zoom + 'px';\n canvas.style.height = height * zoom + 'px';\n }\n }\n this.pdfViewer.drawing.refreshCanvasDiagramLayer(canvas, pageNumber);\n };\n /**\n * @private\n */\n FormDesigner.prototype.rerenderFormFields = function (pageIndex) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (data) {\n var formFieldsData = JSON.parse(data);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageIndex);\n if (formFieldsData !== null && canvasElement !== null && textLayer !== null) {\n for (var i = 0; i < formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[i].FormField;\n if (currentData.pageNumber === pageIndex + 1) {\n var domElementId = document.getElementById('form_field_' + currentData.id + '_html_element');\n if (!domElementId) {\n var signatureField = this.pdfViewer.nameTable[formFieldsData[i].Key.split(\"_\")[0]];\n var element = signatureField.wrapper.children[0];\n if (element) {\n if (currentData.formFieldAnnotationType === \"RadioButton\") {\n for (var j = 0; j < currentData.radiobuttonItem.length; j++) {\n signatureField = this.pdfViewer.nameTable[currentData.radiobuttonItem[j].id.split(\"_\")[0]];\n element = signatureField.wrapper.children[0];\n currentData.radiobuttonItem[j] = this.renderFormFieldsInZooming(element, currentData.radiobuttonItem[j], signatureField, zoomValue);\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].lineBound = currentData.radiobuttonItem[j].lineBound;\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].zoomValue = zoomValue;\n }\n }\n else {\n var zoomCurrentData = this.renderFormFieldsInZooming(element, currentData, signatureField, zoomValue);\n currentData.lineBound = zoomCurrentData.lineBound;\n if (currentData.signatureBound) {\n currentData.signatureBound = zoomCurrentData.signatureBound;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureBound = currentData.signatureBound;\n this.pdfViewer.nameTable[element.id.split('_')[0] + \"_content\"].signatureBound = currentData.signatureBound;\n }\n this.pdfViewerBase.formFieldCollection[i].FormField.lineBound = currentData.lineBound;\n this.pdfViewerBase.formFieldCollection[i].FormField.zoomValue = zoomValue;\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\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 currentField.parentElement.focus();\n }\n else {\n currentField.focus();\n }\n this.pdfViewerBase.isFocusField = false;\n this.pdfViewerBase.focusField = [];\n }\n }\n }\n }\n }\n };\n FormDesigner.prototype.renderFormFieldsInZooming = function (element, currentData, signatureField, zoomValue) {\n if (element) {\n var htmlElement = void 0;\n var parentHtmlElement = void 0;\n var parentHtmlElementAttribute = {\n 'id': \"form_field_\" + element.id + '_html_element',\n 'class': 'foreign-object'\n };\n parentHtmlElement = this.createHtmlElement('div', parentHtmlElementAttribute);\n var HtmlElementAttribute = {\n 'id': element.id + '_html_element',\n 'class': 'foreign-object'\n };\n htmlElement = this.createHtmlElement('div', HtmlElementAttribute);\n if (currentData.formFieldAnnotationType === \"SignatureField\" || currentData.formFieldAnnotationType === \"InitialField\") {\n this.disableSignatureClickEvent = true;\n signatureField.value = currentData.value;\n signatureField.signatureType = currentData.signatureType;\n signatureField.signatureBound = currentData.signatureBound;\n element.template = htmlElement.appendChild(this.createSignatureDialog(this.pdfViewer, signatureField));\n this.disableSignatureClickEvent = false;\n }\n else if (currentData.formFieldAnnotationType === \"DropdownList\") {\n element.template = htmlElement.appendChild(this.createDropDownList(element, signatureField));\n }\n else if (currentData.formFieldAnnotationType === \"ListBox\") {\n element.template = htmlElement.appendChild(this.createListBox(element, signatureField));\n }\n else {\n element.template = htmlElement.appendChild(this.createInputElement(currentData.formFieldAnnotationType, signatureField));\n }\n var divElement = document.createElement(\"div\");\n divElement.id = signatureField.id + '_designer_name';\n divElement.style.fontSize = signatureField.fontSize ? (signatureField.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n divElement.className = \"e-pv-show-designer-name\";\n if (this.pdfViewer.designerMode) {\n divElement.innerHTML = signatureField.name;\n divElement.style.position = 'absolute';\n }\n else {\n divElement.innerHTML = \"\";\n divElement.style.position = 'initial';\n }\n htmlElement.appendChild(divElement);\n parentHtmlElement.appendChild(htmlElement);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (currentData.pageNumber - 1));\n textLayer.appendChild(parentHtmlElement);\n if (signatureField.formFieldAnnotationType === \"RadioButton\") {\n if (document.getElementsByClassName(\"e-pv-radiobtn-span\").length > 0) {\n var bounds = this.getCheckboxRadioButtonBounds(signatureField);\n var spanElement = document.getElementsByClassName(\"e-pv-radiobtn-span\");\n // this.renderRadioButtonSpan(spanElement, bounds, zoomValue);\n }\n }\n var point = cornersPointsBeforeRotation(signatureField.wrapper.children[0]).topLeft;\n if (currentData.formFieldAnnotationType === \"Checkbox\" && (Browser.isDevice)) {\n //ReCreate outer div while zoom options\n var outerDiv = void 0;\n var outerDivHeight = element.actualSize.height + this.increasedSize;\n var outerDivWidth = element.actualSize.width + this.increasedSize;\n var outerDivAttribute = {\n 'id': element.id + '_outer_div',\n 'className': 'e-pv-checkbox-outer-div'\n };\n outerDiv = createElement(\"div\", outerDivAttribute);\n outerDiv.setAttribute('style', 'height:' + outerDivHeight * zoomValue + 'px; width:' + outerDivWidth * zoomValue + 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'position:absolute; opacity: 1;');\n outerDiv.appendChild(parentHtmlElement);\n outerDiv.addEventListener('click', this.setCheckBoxState.bind(this));\n textLayer.appendChild(outerDiv);\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height * zoomValue) + 'px; width:' + (element.actualSize.width * zoomValue) +\n 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + ((this.pdfViewer.designerMode) ? 'none' : 'all')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n }\n else {\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height * zoomValue) + 'px; width:' + (element.actualSize.width * zoomValue) +\n 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + ((this.pdfViewer.designerMode) ? 'none' : 'all')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n }\n currentData.lineBound = { X: point.x * zoomValue, Y: point.y * zoomValue, Width: element.actualSize.width * zoomValue, Height: element.actualSize.height * zoomValue };\n if (currentData.signatureBound && signatureField.wrapper.children[1]) {\n var signPoint = signatureField.wrapper.children[1].bounds;\n currentData.signatureBound.x = signPoint.x * zoomValue;\n currentData.signatureBound.y = signPoint.y * zoomValue;\n currentData.signatureBound.width = signPoint.width * zoomValue;\n currentData.signatureBound.height = signPoint.height * zoomValue;\n }\n }\n return currentData;\n };\n /* This method was commented for this task ID EJ2-61222, A method renderRadioButtonSpan was\n implemented and the values which was already taken from getCheckBoxRadioButtonBounds,\n are again calculated based on zoomValues and the size of the radio button was changed.\n This makes the radio button big in size. Refer previous task IDs EJ2-50668 and EJ2-57850 Where these lines were added. */\n /* private renderRadioButtonSpan(spanElement: HTMLCollectionOf, bounds: any, zoomValue: number): void {\n for (let i: number = 0; i < spanElement.length; i++) {\n (spanElement as any)[i].style.width = Math.floor(bounds.width - 10) + \"px\";\n (spanElement as any)[i].style.height = Math.floor(bounds.height - 10) + \"px\";\n if (bounds.width <= 14 && parseInt((spanElement as any)[i].style.width, 10) >= 2) {\n if (parseInt((spanElement as any)[i].style.width, 10) <= 5) {\n if (bounds.width > 10) {\n (spanElement as any)[i].style.width = Math.floor(bounds.width / (1 + zoomValue)) + \"px\";\n (spanElement as any)[i].style.height = Math.floor(bounds.height / (1 + zoomValue)) + \"px\";\n (spanElement as any)[i].style.margin = Math.round(bounds.width / 4) + \"px\";\n }\n else if (bounds.width < 10 && bounds.width > 5) {\n (spanElement as any)[i].style.width = (bounds.width / 1.85) + \"px\";\n (spanElement as any)[i].style.height = (bounds.height / 1.85) + \"px\";\n }\n else if (bounds.width <= 5) {\n (spanElement as any)[i].style.width = (bounds.width / 1.85) + \"px\";\n (spanElement as any)[i].style.height = (bounds.height / 1.85) + \"px\";\n (spanElement as any)[i].style.margin = (bounds.width / 3.5) + \"px\";\n }\n }\n }\n if (parseInt((spanElement as any)[i].style.width, 10) <= 1 || parseInt((spanElement as any)[i].style.height, 10) <= 1) {\n if ((bounds.width * zoomValue) >= 2) {\n (spanElement as any)[i].style.width = Math.round(bounds.width / 1.65) + \"px\";\n (spanElement as any)[i].style.height = Math.round(bounds.height / 1.65) + \"px\";\n (spanElement as any)[i].style.margin = bounds.width / 3.8 + \"px\";;\n } else {\n (spanElement as any)[i].style.width = \"1px\";\n (spanElement as any)[i].style.height = \"1px\";\n (spanElement as any)[i].style.margin = \"1px\";\n }\n }\n if (bounds.width > 14) {\n (spanElement as any)[i].style.width = (bounds.width / 2) + \"px\";\n (spanElement[i] as any).style.height = (bounds.height / 2) + \"px\";\n }\n if (zoomValue <= 1 && zoomValue > 0.70) {\n (spanElement as any)[i].style.width = (bounds.width / 1.85) + \"px\";\n (spanElement[i] as any).style.height = (bounds.height / 1.85) + \"px\";\n }\n\n }\n }\n */\n /**\n * @private\n */\n FormDesigner.prototype.updateFormFieldInitialSize = function (obj, formFieldAnnotationType) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n switch (formFieldAnnotationType) {\n case 'Textbox':\n obj.width = 200 * zoomValue;\n obj.height = 24 * zoomValue;\n break;\n case 'PasswordField':\n obj.width = 200 * zoomValue;\n obj.height = 24 * zoomValue;\n break;\n case 'SignatureField':\n case 'InitialField':\n obj.width = 200 * zoomValue;\n obj.height = 63 * zoomValue;\n break;\n case 'Checkbox':\n obj.width = 20 * zoomValue;\n obj.height = 20 * zoomValue;\n break;\n case 'RadioButton':\n obj.width = 20 * zoomValue;\n obj.height = 20 * zoomValue;\n break;\n case 'DropdownList':\n obj.width = 200 * zoomValue;\n obj.height = 24 * zoomValue;\n break;\n case 'ListBox':\n obj.width = 198 * zoomValue;\n obj.height = 66 * zoomValue;\n break;\n }\n return { width: obj.width, height: obj.height };\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateHTMLElement = function (actualObject) {\n var element = actualObject.wrapper.children[0];\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n if (element) {\n var htmlElement = document.getElementById(element.id + \"_html_element\");\n if (!isNullOrUndefined(htmlElement)) {\n var point = cornersPointsBeforeRotation(actualObject.wrapper.children[0]).topLeft;\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height * zoomValue) + 'px; width:' + (element.actualSize.width * zoomValue) +\n 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + ((this.pdfViewer.designerMode) ? 'none' : 'all')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (actualObject.formFieldAnnotationType === \"RadioButton\") {\n var labelContainer = htmlElement.firstElementChild.firstElementChild;\n var spanElement = htmlElement.firstElementChild.firstElementChild.lastElementChild;\n if (element.actualSize.width > element.actualSize.height) {\n htmlElement.firstElementChild.style.display = \"inherit\";\n labelContainer.style.width = labelContainer.style.height = (element.actualSize.height * zoomValue) + \"px\";\n spanElement.style.width = spanElement.style.height = (element.actualSize.height - 10) + \"px\";\n }\n else {\n htmlElement.firstElementChild.style.display = \"flex\";\n labelContainer.style.width = labelContainer.style.height = (element.actualSize.width * zoomValue) + \"px\";\n spanElement.style.width = spanElement.style.height = (element.actualSize.width - 10) + \"px\";\n }\n }\n if (actualObject.formFieldAnnotationType === \"Checkbox\") {\n var minCheckboxWidth = 20;\n var labelContainer = htmlElement.firstElementChild.firstElementChild;\n var spanElement = htmlElement.firstElementChild.firstElementChild.lastElementChild.firstElementChild;\n if (element.actualSize.width > element.actualSize.height) {\n htmlElement.firstElementChild.style.display = \"inherit\";\n labelContainer.style.width = labelContainer.style.height = (element.actualSize.height * zoomValue) + \"px\";\n spanElement.style.width = ((element.actualSize.height / 5) * zoomValue) + \"px\";\n spanElement.style.height = ((element.actualSize.height / 2.5) * zoomValue) + \"px\";\n spanElement.style.left = ((element.actualSize.height / 2.5) * zoomValue) + \"px\";\n spanElement.style.top = ((element.actualSize.height / 5) * zoomValue) + \"px\";\n }\n else {\n htmlElement.firstElementChild.style.display = \"flex\";\n labelContainer.style.width = labelContainer.style.height = (element.actualSize.width * zoomValue) + \"px\";\n spanElement.style.width = ((element.actualSize.width / 5) * zoomValue) + \"px\";\n spanElement.style.height = ((element.actualSize.width / 2.5) * zoomValue) + \"px\";\n spanElement.style.left = ((element.actualSize.width / 2.5) * zoomValue) + \"px\";\n spanElement.style.top = ((element.actualSize.width / 5) * zoomValue) + \"px\";\n }\n if (spanElement.className.indexOf(\"e-pv-cb-checked\") !== -1) {\n var checkboxWidth = parseInt(labelContainer.style.width, 10);\n if (checkboxWidth > minCheckboxWidth) {\n spanElement.style.borderWidth = \"3px\";\n }\n else if (checkboxWidth <= 15) {\n spanElement.style.borderWidth = \"1px\";\n }\n else {\n spanElement.style.borderWidth = \"2px\";\n }\n }\n }\n if (actualObject.formFieldAnnotationType === \"SignatureField\" || actualObject.formFieldAnnotationType === \"InitialField\") {\n var signatureDiv = htmlElement.firstElementChild.firstElementChild;\n var indicatorSpan = signatureDiv.nextElementSibling;\n var bounds = this.getBounds(indicatorSpan);\n var options = {\n height: element.actualSize.height,\n width: element.actualSize.width,\n signatureIndicatorSettings: {\n text: indicatorSpan.textContent,\n width: bounds.width,\n height: bounds.height,\n },\n initialIndicatorSettings: {\n text: indicatorSpan.textContent,\n width: bounds.width,\n height: bounds.height,\n }\n };\n this.updateSignatureandInitialIndicator(actualObject, options, signatureDiv);\n }\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].FormField.formFieldAnnotationType === \"RadioButton\") {\n for (var j = 0; j < formFieldsData[i].FormField.radiobuttonItem.length; j++) {\n if (element.id === formFieldsData[i].FormField.radiobuttonItem[j].id) {\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].lineBound = { X: point.x * zoomValue, Y: point.y * zoomValue, Width: element.actualSize.width * zoomValue, Height: element.actualSize.height * zoomValue };\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].zoomValue = zoomValue;\n break;\n }\n }\n }\n else {\n if (formFieldsData[i].Key === element.id) {\n formFieldsData[i].FormField.lineBound = { X: point.x * zoomValue, Y: point.y * zoomValue, Width: element.actualSize.width * zoomValue, Height: element.actualSize.height * zoomValue };\n if (formFieldsData[i].FormField.signatureBound) {\n var x = (point.x * zoomValue) + (element.actualSize.width * zoomValue) / 2;\n x = x - formFieldsData[i].FormField.signatureBound.width / 2;\n var y = (point.y * zoomValue) + (element.actualSize.height * zoomValue) / 2;\n y = y - formFieldsData[i].FormField.signatureBound.height / 2;\n formFieldsData[i].FormField.signatureBound.x = x;\n formFieldsData[i].FormField.signatureBound.y = y;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureBound = formFieldsData[i].FormField.signatureBound;\n this.pdfViewer.nameTable[element.id.split('_')[0] + \"_content\"].signatureBound = formFieldsData[i].FormField.signatureBound;\n }\n this.pdfViewerBase.formFieldCollection[i].FormField.lineBound = formFieldsData[i].FormField.lineBound;\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n };\n FormDesigner.prototype.getCheckboxRadioButtonBounds = function (drawingObject, bounds, isPrint) {\n var zoomValue = isPrint ? this.defaultZoomValue : this.pdfViewerBase.getZoomFactor();\n var width = 0;\n var height = 0;\n var display = '';\n if (bounds) {\n if (bounds.width > bounds.height) {\n width = height = bounds.height * zoomValue;\n display = \"inherit\";\n }\n else {\n width = height = bounds.width * zoomValue;\n display = \"flex\";\n }\n }\n else if (drawingObject) {\n if (drawingObject.bounds.width > drawingObject.bounds.height) {\n width = height = drawingObject.bounds.height * zoomValue;\n display = \"inherit\";\n }\n else {\n width = height = drawingObject.bounds.width * zoomValue;\n display = \"flex\";\n }\n }\n return { width: width, height: height, display: display };\n };\n FormDesigner.prototype.updateSessionFormFieldProperties = function (updatedFormFields) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var element = updatedFormFields.wrapper.children[0];\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].FormField.formFieldAnnotationType === \"RadioButton\") {\n for (var j = 0; j < formFieldsData[i].FormField.radiobuttonItem.length; j++) {\n if (element.id === formFieldsData[i].FormField.radiobuttonItem[j].id) {\n var radioButtonItemUpdate = {\n id: element.id, lineBound: { X: element.bounds.x * zoomValue, Y: element.bounds.y * zoomValue, Width: element.bounds.width * zoomValue, Height: element.bounds.height * zoomValue },\n name: updatedFormFields.name, zoomValue: zoomValue, pageNumber: updatedFormFields.pageNumber, value: updatedFormFields.value, formFieldAnnotationType: updatedFormFields.formFieldAnnotationType,\n fontFamily: updatedFormFields.fontFamily, fontSize: updatedFormFields.fontSize, fontStyle: updatedFormFields.fontStyle, fontColor: this.getRgbCode(updatedFormFields.color),\n backgroundColor: this.getRgbCode(updatedFormFields.backgroundColor), borderColor: this.getRgbCode(updatedFormFields.borderColor), thickness: updatedFormFields.thickness, textAlign: updatedFormFields.alignment, isChecked: updatedFormFields.isChecked, isSelected: updatedFormFields.isSelected,\n isReadonly: updatedFormFields.isReadonly, visibility: updatedFormFields.visibility, maxLength: updatedFormFields.maxLength, isRequired: updatedFormFields.isRequired, isPrint: updatedFormFields.isPrint, rotation: 0, tooltip: updatedFormFields.tooltip\n };\n formFieldsData[i].FormField.radiobuttonItem[j] = radioButtonItemUpdate;\n if (this.pdfViewerBase.formFieldCollection[i] && this.pdfViewerBase.formFieldCollection[i].FormField && this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j]) {\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j] = radioButtonItemUpdate;\n }\n break;\n }\n }\n }\n else if (formFieldsData[i].Key === element.id) {\n var formDesignObj = {\n id: element.id, lineBound: { X: element.bounds.x * zoomValue, Y: element.bounds.y * zoomValue, Width: element.bounds.width * zoomValue, Height: element.bounds.height * zoomValue },\n name: updatedFormFields.name, zoomValue: zoomValue, pageNumber: updatedFormFields.pageNumber, value: updatedFormFields.value, formFieldAnnotationType: updatedFormFields.formFieldAnnotationType,\n fontFamily: updatedFormFields.fontFamily, fontSize: updatedFormFields.fontSize, fontStyle: updatedFormFields.fontStyle, fontColor: this.getRgbCode(updatedFormFields.color),\n backgroundColor: this.getRgbCode(updatedFormFields.backgroundColor), borderColor: this.getRgbCode(updatedFormFields.borderColor), thickness: updatedFormFields.thickness, textAlign: updatedFormFields.alignment, isChecked: updatedFormFields.isChecked, isSelected: updatedFormFields.isSelected,\n isReadonly: updatedFormFields.isReadonly, font: { isBold: updatedFormFields.font.isBold, isItalic: updatedFormFields.font.isItalic, isStrikeout: updatedFormFields.font.isStrikeout, isUnderline: updatedFormFields.font.isUnderline }, selectedIndex: [], radiobuttonItem: null, option: updatedFormFields.options ? updatedFormFields.options : [], visibility: updatedFormFields.visibility, maxLength: updatedFormFields.maxLength, isRequired: updatedFormFields.isRequired, isPrint: updatedFormFields.isPrint, rotation: 0, tooltip: updatedFormFields.tooltip\n };\n if (formFieldsData[i].FormField.formFieldAnnotationType === \"SignatureField\" || formFieldsData[i].FormField.formFieldAnnotationType === \"InitialField\") {\n var updatedSignatureFormFields = updatedFormFields;\n var formDesignObj_1 = {\n id: element.id, lineBound: { X: element.bounds.x * zoomValue, Y: element.bounds.y * zoomValue, Width: element.bounds.width * zoomValue, Height: element.bounds.height * zoomValue },\n name: updatedFormFields.name, zoomValue: zoomValue, pageNumber: updatedFormFields.pageNumber, value: updatedFormFields.value, formFieldAnnotationType: updatedFormFields.formFieldAnnotationType,\n fontFamily: updatedFormFields.fontFamily, fontSize: updatedFormFields.fontSize, fontStyle: updatedFormFields.fontStyle, fontColor: this.getRgbCode(updatedFormFields.color),\n backgroundColor: this.getRgbCode(updatedFormFields.backgroundColor), borderColor: this.getRgbCode(updatedFormFields.borderColor), thickness: updatedFormFields.thickness, textAlign: updatedFormFields.alignment, isChecked: updatedFormFields.isChecked, isSelected: updatedFormFields.isSelected,\n isReadonly: updatedFormFields.isReadonly, font: { isBold: updatedFormFields.font.isBold, isItalic: updatedFormFields.font.isItalic, isStrikeout: updatedFormFields.font.isStrikeout, isUnderline: updatedFormFields.font.isUnderline }, selectedIndex: [], radiobuttonItem: null, option: updatedFormFields.options ? updatedFormFields.options : [], visibility: updatedFormFields.visibility, maxLength: updatedFormFields.maxLength, isRequired: updatedFormFields.isRequired, isPrint: updatedFormFields.isPrint, rotation: 0, tooltip: updatedFormFields.tooltip,\n signatureType: updatedFormFields.signatureType, signatureBound: updatedSignatureFormFields.signatureBound\n };\n formFieldsData[i].FormField = formDesignObj_1;\n this.pdfViewerBase.formFieldCollection[i].FormField = formDesignObj_1;\n }\n else {\n formFieldsData[i].FormField = formDesignObj;\n this.pdfViewerBase.formFieldCollection[i].FormField = formDesignObj;\n }\n break;\n }\n }\n if (this.pdfViewerBase.formFieldCollection.length > 0) {\n this.pdfViewerBase.enableFormFieldButton(true);\n }\n else {\n this.pdfViewerBase.enableFormFieldButton(false);\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n };\n /**\n * @private\n */\n FormDesigner.prototype.createSignatureDialog = function (commandHandler, signatureField, bounds, isPrint) {\n this.isInitialField = isNullOrUndefined(signatureField.isInitialField) ? false : signatureField.isInitialField;\n this.pdfViewerBase.isInitialField = this.isInitialField;\n this.pdfViewerBase.isInitialField = signatureField.isInitialField;\n var element = createElement(\"div\");\n element.className = \"foreign-object\";\n element.style.position = \"absolute\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n element.addEventListener('focus', this.focusFormFields.bind(this));\n element.addEventListener('blur', this.blurFormFields.bind(this));\n var divElement = createElement(\"div\");\n divElement.style.width = \"100%\";\n divElement.style.height = \"100%\";\n divElement.style.position = \"absolute\";\n divElement.style.backgroundColor = \"transparent\";\n if (!isNullOrUndefined(signatureField.thickness)) {\n divElement.className = 'e-pdfviewer-signatureformfields-signature';\n divElement.style.border = (signatureField.thickness) + 'px solid #303030';\n }\n if (!isNullOrUndefined(signatureField.value) && signatureField.value !== '') {\n divElement.className = 'e-pdfviewer-signatureformfields-signature';\n divElement.style.pointerEvents = 'none';\n }\n else {\n divElement.className = 'e-pdfviewer-signatureformfields';\n divElement.style.pointerEvents = '';\n }\n divElement.id = signatureField.id;\n divElement.disabled = signatureField.isReadonly;\n element.appendChild(divElement);\n var signatureFieldSettings = this.pdfViewer.signatureFieldSettings;\n var initialFieldSettings = this.pdfViewer.initialFieldSettings;\n if (!signatureFieldSettings.signatureIndicatorSettings) {\n signatureFieldSettings.signatureIndicatorSettings = { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' };\n }\n if (!signatureFieldSettings.signatureDialogSettings) {\n signatureFieldSettings.signatureDialogSettings = { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false };\n }\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 indicatorSettings;\n if (signatureField.isInitialField) {\n indicatorSettings = signatureField.signatureIndicatorSettings ? signatureField.signatureIndicatorSettings : initialFieldSettings.initialIndicatorSettings;\n }\n else {\n indicatorSettings = signatureField.signatureIndicatorSettings ? signatureField.signatureIndicatorSettings : signatureFieldSettings.signatureIndicatorSettings;\n }\n var defaultWidth = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width === 19 ? (signatureField.isInitialField ? 30 : 25) : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width;\n var signatureFieldIndicatorWidth = indicatorSettings.width ? indicatorSettings.width : (signatureField.signatureIndicatorSettings && signatureField.signatureIndicatorSettings.width) ? signatureField.signatureIndicatorSettings.width : defaultWidth;\n var defaultHeight = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height === 10 ? 13 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height;\n var signatureFieldIndicatorHeight = indicatorSettings.height ? indicatorSettings.height : (signatureField.signatureIndicatorSettings && signatureField.signatureIndicatorSettings.height) ? signatureField.signatureIndicatorSettings.height : defaultHeight;\n var signatureFieldIndicatorBG = indicatorSettings.backgroundColor ? (indicatorSettings.backgroundColor === 'orange' ? '#FFE48559' : indicatorSettings.backgroundColor) : (signatureField.signatureIndicatorSettings && signatureField.signatureIndicatorSettings.backgroundColor) ? signatureField.signatureIndicatorSettings.backgroundColor : '#FFE48559';\n var signIndicator = signatureField.isInitialField ? \"Initial\" : \"Sign\";\n var signatureFieldWidth = signatureField.bounds ? signatureField.bounds.width : bounds.width;\n var signatureFieldHeight = signatureField.bounds ? signatureField.bounds.height : bounds.height;\n // eslint-disable-next-line max-len\n var height = signatureFieldIndicatorHeight > signatureFieldHeight / 2 ? signatureFieldHeight / 2 : signatureFieldIndicatorHeight;\n // eslint-disable-next-line max-len\n var width = signatureFieldIndicatorWidth > signatureFieldWidth / 2 ? signatureFieldWidth / 2 : signatureFieldIndicatorWidth;\n var fontSize = 10;\n if (signatureField.signatureIndicatorSettings && signatureField.signatureIndicatorSettings.fontSize)\n // eslint-disable-next-line max-len\n fontSize = signatureField.signatureIndicatorSettings.fontSize > height / 2 ? 10 : signatureField.signatureIndicatorSettings.fontSize;\n else\n // eslint-disable-next-line max-len\n fontSize = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize > height / 2 ? 10 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize;\n var spanElement = createElement(\"span\");\n if (!initialFieldSettings.initialIndicatorSettings) {\n initialFieldSettings.initialIndicatorSettings = { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' };\n }\n if (!initialFieldSettings.initialDialogSettings) {\n initialFieldSettings.initialDialogSettings = { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false };\n }\n var fieldText = signatureField.signatureIndicatorSettings ? signatureField.signatureIndicatorSettings.text : null;\n if (signatureField.formFieldAnnotationType == \"InitialField\") {\n spanElement.id = \"initialIcon_\" + signatureField.pageIndex + \"_\" + this.setFormFieldIdIndex();\n this.setIndicatorText(spanElement, fieldText, this.pdfViewer.initialFieldSettings.initialIndicatorSettings.text, \"Initial\");\n }\n else {\n spanElement.style.height = '';\n spanElement.style.width = '';\n spanElement.id = \"signIcon_\" + signatureField.pageIndex + \"_\" + this.setFormFieldIdIndex();\n this.setIndicatorText(spanElement, fieldText, this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text, \"Sign\");\n }\n spanElement.style.overflow = \"hidden\";\n spanElement.style.whiteSpace = \"nowrap\";\n spanElement.style.padding = \"2px 3px 2px 1px\";\n spanElement.style.boxSizing = \"border-box\";\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n spanElement.style.textAlign = \"left\";\n spanElement.style.fontSize = (fontSize * zoomValue) + 'px';\n var boundsOfSpan = this.getBounds(spanElement);\n //Set spanelement indicator property\n spanElement.style.backgroundColor = signatureFieldIndicatorBG;\n spanElement.style.color = indicatorSettings.color;\n spanElement.style.opacity = indicatorSettings.opacity;\n spanElement.style.height = signatureFieldIndicatorHeight;\n spanElement.style.width = signatureFieldIndicatorWidth;\n spanElement.style.position = \"absolute\";\n var widthNew = this.setHeightWidth(signatureFieldWidth, width, boundsOfSpan.width + fontSize, zoomValue);\n spanElement.style.width = widthNew + \"px\";\n var heightNew = this.setHeightWidth(signatureFieldHeight, height, boundsOfSpan.height, zoomValue);\n spanElement.style.height = heightNew + \"px\";\n if (!isPrint) {\n element.appendChild(spanElement);\n }\n this.updateSignInitialFieldProperties(signatureField, signatureField.isInitialField, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n if (!isNullOrUndefined(signatureField.tooltip) && signatureField.tooltip != \"\") {\n this.setToolTip(signatureField.tooltip, element);\n }\n this.updateSignatureFieldProperties(signatureField, element, isPrint);\n return element;\n };\n // eslint-disable-next-line\n FormDesigner.prototype.setIndicatorText = function (spanElement, fieldText, indicatorText, defaultText) {\n spanElement.innerHTML = fieldText ? fieldText : indicatorText ? indicatorText : defaultText;\n };\n FormDesigner.prototype.getBounds = function (htmlElement) {\n var clonedElement = htmlElement.cloneNode(true);\n clonedElement.style.height = '';\n clonedElement.style.width = '';\n clonedElement.id = clonedElement.id + \"_clonedElement\";\n document.body.appendChild(clonedElement);\n var clone = document.getElementById(clonedElement.id);\n var bounds = clone.getBoundingClientRect();\n document.body.removeChild(clonedElement);\n return bounds;\n };\n FormDesigner.prototype.updateSignatureandInitialIndicator = function (formFieldObject, options, htmlElement) {\n if (htmlElement !== null) {\n var fieldBounds = htmlElement.getBoundingClientRect();\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var spanElement = htmlElement.nextElementSibling;\n var objIndicatorSettings = void 0;\n var indicatorSettings = void 0;\n if (formFieldObject.formFieldAnnotationType === 'SignatureField') {\n objIndicatorSettings = formFieldObject.signatureIndicatorSettings;\n indicatorSettings = options.signatureIndicatorSettings;\n }\n if (formFieldObject.formFieldAnnotationType === 'InitialField') {\n // eslint-disable-next-line\n objIndicatorSettings = formFieldObject.signatureIndicatorSettings ? formFieldObject.signatureIndicatorSettings : this.pdfViewer.initialFieldSettings.initialIndicatorSettings;\n indicatorSettings = options.initialIndicatorSettings;\n }\n spanElement.style.width = '';\n spanElement.style.height = '';\n if (indicatorSettings && objIndicatorSettings) {\n if (indicatorSettings.text !== undefined) {\n this.setIndicatorText(spanElement, indicatorSettings.text, indicatorSettings.text, \"Sign\");\n objIndicatorSettings.text = indicatorSettings.text;\n }\n if (indicatorSettings.fontSize) {\n spanElement.style.fontSize = indicatorSettings.fontSize > formFieldObject.height / 2 ? 10 : indicatorSettings.fontSize * zoomValue + \"px\";\n objIndicatorSettings.fontSize = indicatorSettings.fontSize;\n }\n var bounds = this.getBounds(spanElement);\n if (indicatorSettings.color) {\n spanElement.style.color = indicatorSettings.color;\n objIndicatorSettings.color = this.nameToHash(indicatorSettings.color);\n }\n if (indicatorSettings.backgroundColor) {\n spanElement.style.backgroundColor = indicatorSettings.backgroundColor;\n objIndicatorSettings.backgroundColor = this.nameToHash(indicatorSettings.backgroundColor);\n }\n if (indicatorSettings.opacity) {\n spanElement.style.opacity = indicatorSettings.opacity;\n objIndicatorSettings.opacity = indicatorSettings.opacity;\n }\n if (indicatorSettings.width || options.width || indicatorSettings.text) {\n var width = this.setHeightWidth(fieldBounds.width, indicatorSettings.width, bounds.width, zoomValue);\n spanElement.style.width = width + \"px\";\n objIndicatorSettings.width = width;\n }\n if (indicatorSettings.height || options.height || indicatorSettings.text) {\n var height = this.setHeightWidth(fieldBounds.height, indicatorSettings.height, bounds.height, zoomValue);\n spanElement.style.height = height + \"px\";\n objIndicatorSettings.height = height;\n }\n }\n this.updateSignatureFieldProperties(formFieldObject, htmlElement, formFieldObject.isPrint);\n if (formFieldObject.signatureIndicatorSettings && objIndicatorSettings) {\n formFieldObject.signatureIndicatorSettings = objIndicatorSettings;\n }\n return formFieldObject;\n }\n };\n FormDesigner.prototype.setHeightWidth = function (fieldBound, indicatorBound, referenceBound, zoomValue) {\n var heightOrWidth;\n if (fieldBound / 2 > indicatorBound && referenceBound < indicatorBound) {\n heightOrWidth = indicatorBound * zoomValue;\n }\n else if (referenceBound <= fieldBound / 2) {\n heightOrWidth = referenceBound * zoomValue;\n }\n else {\n heightOrWidth = fieldBound / 2 * zoomValue;\n }\n return heightOrWidth;\n };\n /**\n * @private\n */\n FormDesigner.prototype.createDropDownList = function (dropdownElement, drawingObject, isPrint) {\n var element = createElement(\"div\");\n element.className = \"foreign-object\";\n element.style.position = \"absolute\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n var select = document.createElement(\"select\");\n select.addEventListener('change', this.dropdownChange.bind(this));\n select.addEventListener('focus', this.focusFormFields.bind(this));\n select.addEventListener('blur', this.blurFormFields.bind(this));\n select.id = drawingObject.id;\n select.name = \"editabledropdown\" + this.pdfViewerBase.activeElements.activePageID + dropdownElement.id;\n select.setAttribute(\"aria-label\", \"editabledropdown\" + this.pdfViewerBase.activeElements.activePageID + dropdownElement.id);\n select.className = \"e-pv-formfield-dropdown\";\n select.style.width = \"100%\";\n select.style.height = \"100%\";\n select.style.position = \"absolute\";\n this.updateDropdownFieldSettingsProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n var dropDownChildren = drawingObject.options ? drawingObject.options : [];\n this.updateDropdownListProperties(drawingObject, select, isPrint);\n for (var j = 0; j < dropDownChildren.length; j++) {\n var option = document.createElement(\"option\");\n option.className = \"e-pv-formfield-dropdown\";\n option.value = dropDownChildren[j].itemValue;\n option.text = dropDownChildren[j].itemName;\n this.updateDropdownListProperties(drawingObject, option);\n select.appendChild(option);\n }\n select.selectedIndex = !isNullOrUndefined(drawingObject.selectedIndex) ? drawingObject.selectedIndex : 0;\n element.appendChild(select);\n if (!isNullOrUndefined(drawingObject.tooltip) && drawingObject.tooltip != \"\") {\n this.setToolTip(drawingObject.tooltip, element);\n }\n return element;\n };\n /**\n * @private\n */\n FormDesigner.prototype.createListBox = function (listBoxElement, drawingObject, isPrint) {\n var element = createElement(\"div\");\n element.className = \"foreign-object\";\n element.style.position = \"absolute\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n var select = document.createElement(\"select\");\n select.addEventListener('click', this.listBoxChange.bind(this));\n select.addEventListener('focus', this.focusFormFields.bind(this));\n select.addEventListener('blur', this.blurFormFields.bind(this));\n select.id = drawingObject.id;\n select.name = \"editabledropdown\" + this.pdfViewerBase.activeElements.activePageID + listBoxElement.id;\n select.setAttribute(\"aria-label\", \"editabledropdown\" + this.pdfViewerBase.activeElements.activePageID + listBoxElement.id);\n select.className = \"e-pv-formfield-listbox\";\n select.style.width = \"100%\";\n select.style.height = \"100%\";\n select.style.position = \"absolute\";\n select.multiple = true;\n this.updatelistBoxFieldSettingsProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n var dropDownChildren = drawingObject.options ? drawingObject.options : [];\n this.updateListBoxProperties(drawingObject, select, isPrint);\n for (var j = 0; j < dropDownChildren.length; j++) {\n var option = document.createElement(\"option\");\n option.className = \"e-pv-formfield-listbox\";\n option.value = dropDownChildren[j].itemValue;\n option.text = dropDownChildren[j].itemName;\n if (!isNullOrUndefined(drawingObject.selectedIndex)) {\n for (var k = 0; k < drawingObject.selectedIndex.length; k++) {\n if (j === drawingObject.selectedIndex[k]) {\n option.selected = true;\n }\n }\n }\n select.appendChild(option);\n }\n element.appendChild(select);\n if (!isNullOrUndefined(drawingObject.tooltip) && drawingObject.tooltip != \"\") {\n this.setToolTip(drawingObject.tooltip, element);\n }\n return element;\n };\n /**\n * @private\n */\n FormDesigner.prototype.createInputElement = function (formFieldAnnotationType, drawingObject, formFieldBounds, isPrint) {\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var element = createElement(\"div\");\n element.className = \"foreign-object\";\n element.style.position = \"absolute\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n var labelElement;\n var checkboxDiv;\n var innerSpan;\n var inputElement = createElement(\"input\");\n var textArea = createElement('textarea');\n inputElement.id = drawingObject.id;\n inputElement.setAttribute(\"aria-label\", this.pdfViewer.element.id + \"formfilldesigner\");\n inputElement.style.position = \"absolute\";\n if (formFieldAnnotationType === \"Textbox\") {\n if (drawingObject.isMultiline) {\n textArea = this.createTextAreaElement(inputElement.id);\n this.updateTextFieldSettingProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n this.updateTextboxProperties(drawingObject, textArea, isPrint);\n }\n else {\n inputElement = this.createTextboxElement(inputElement.id);\n this.updateTextFieldSettingProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n this.updateTextboxProperties(drawingObject, inputElement, isPrint);\n }\n }\n else if (formFieldAnnotationType == \"Checkbox\") {\n var zoomLevel = isPrint ? this.defaultZoomValue : this.pdfViewerBase.getZoomFactor();\n var minCheckboxWidth = 20;\n element.style.display = \"flex\";\n element.style.alignItems = \"center\";\n var bounds = this.getCheckboxRadioButtonBounds(drawingObject, formFieldBounds, isPrint);\n element.style.display = bounds.display;\n labelElement = createElement(\"label\", { className: \"e-pv-checkbox-container\" });\n labelElement.style.width = drawingObject.bounds ? (drawingObject.bounds.width * zoomLevel) + \"px\" : bounds.width + \"px\";\n labelElement.style.height = drawingObject.bounds ? (drawingObject.bounds.height * zoomLevel) + \"px\" : bounds.height + \"px\";\n if (this.isDrawHelper)\n labelElement.style.cursor = 'crosshair';\n else\n labelElement.style.cursor = 'pointer';\n checkboxDiv = createElement(\"div\", { className: \"e-pv-checkbox-div\" });\n if (!Browser.isDevice) {\n checkboxDiv.addEventListener('click', this.setCheckBoxState.bind(this));\n checkboxDiv.addEventListener('focus', this.focusFormFields.bind(this));\n checkboxDiv.addEventListener('blur', this.blurFormFields.bind(this));\n }\n checkboxDiv.id = drawingObject.id + \"_input\";\n if (drawingObject.isChecked) {\n innerSpan = createElement(\"span\", { className: \"e-pv-checkbox-span e-pv-cb-checked\" });\n }\n else\n innerSpan = createElement(\"span\", { className: \"e-pv-checkbox-span e-pv-cb-unchecked\" });\n innerSpan.id = drawingObject.id + \"_input_span\";\n labelElement.id = drawingObject.id + \"_input_label\";\n innerSpan.style.width = (bounds.width / 5) + \"px\";\n innerSpan.style.height = (bounds.height / 2.5) + \"px\";\n innerSpan.style.left = (bounds.width / 2.5) + \"px\";\n innerSpan.style.top = (bounds.height / 5) + \"px\";\n if (innerSpan.className.indexOf(\"e-pv-cb-checked\") !== -1) {\n var checkboxWidth_1 = parseInt(labelElement.style.width, 10);\n if (checkboxWidth_1 > minCheckboxWidth) {\n innerSpan.style.borderWidth = \"3px\";\n }\n else if (checkboxWidth_1 <= 15) {\n innerSpan.style.borderWidth = \"1px\";\n }\n else {\n innerSpan.style.borderWidth = \"2px\";\n }\n }\n if (isPrint) {\n checkboxDiv.style.backgroundColor = \"rgb(218, 234, 247)\";\n checkboxDiv.style.border = \"1px solid #303030\";\n checkboxDiv.style.visibility = \"visible\";\n checkboxDiv.style.height = \"100%\";\n checkboxDiv.style.width = \"100%\";\n checkboxDiv.style.position = \"absolute\";\n if (innerSpan.className.indexOf(\"e-pv-cb-checked\") !== -1) {\n innerSpan.style.border = \"solid #303030\";\n innerSpan.style.position = \"absolute\";\n innerSpan.style.borderLeft = \"transparent\";\n innerSpan.style.borderTop = \"transparent\";\n innerSpan.style.transform = \"rotate(45deg)\";\n var checkboxWidth = parseInt(labelElement.style.width, 10);\n if (checkboxWidth > minCheckboxWidth) {\n innerSpan.style.borderWidth = \"3px\";\n }\n else if (checkboxWidth <= 15) {\n innerSpan.style.borderWidth = \"1px\";\n }\n else {\n innerSpan.style.borderWidth = \"2px\";\n }\n }\n }\n inputElement.type = \"checkbox\";\n inputElement.style.margin = \"0px\";\n inputElement.style.width = bounds.width + \"px\";\n inputElement.style.height = bounds.height + \"px\";\n if (!isPrint) {\n this.updateCheckBoxFieldSettingsProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n }\n this.updateCheckboxProperties(drawingObject, checkboxDiv);\n inputElement.appendChild(labelElement);\n labelElement.appendChild(checkboxDiv);\n checkboxDiv.appendChild(innerSpan);\n if (isPrint) {\n inputElement.style.outlineWidth = drawingObject.thickness + 'px';\n inputElement.style.outlineColor = drawingObject.borderColor;\n inputElement.style.outlineStyle = 'solid';\n inputElement.style.background = drawingObject.backgroundColor;\n }\n }\n else if (formFieldAnnotationType == \"PasswordField\") {\n inputElement.type = \"password\";\n inputElement.className = \"e-pv-formfield-input\";\n inputElement.style.width = '100%';\n inputElement.style.height = '100%';\n inputElement.style.borderStyle = \"solid\";\n inputElement.addEventListener('click', this.inputElementClick.bind(this));\n inputElement.addEventListener('focus', this.focusFormFields.bind(this));\n inputElement.addEventListener('blur', this.blurFormFields.bind(this));\n inputElement.addEventListener('change', this.getTextboxValue.bind(this));\n this.updatePasswordFieldSettingProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n this.updatePasswordFieldProperties(drawingObject, inputElement, isPrint);\n }\n else {\n /*\n The below line have been commented for \"EJ2-59941 bug\"\n While setting the textAlign to center the radio button position moved from center to the parent element\n instead of left to the parent element\n element.style.textAlign = (Browser.info.name === \"chrome\") ? \"-webkit-center\" : \"center\";\n */\n element.style.display = \"flex\";\n element.style.alignItems = \"center\";\n var bounds = this.getCheckboxRadioButtonBounds(drawingObject, formFieldBounds, isPrint);\n element.style.display = bounds.display;\n labelElement = createElement(\"label\", { className: \"e-pv-radiobtn-container\" });\n labelElement.style.width = bounds.width + \"px\";\n labelElement.style.height = bounds.height + \"px\";\n labelElement.style.display = \"table\";\n labelElement.style.verticalAlign = \"middle\";\n labelElement.style.borderWidth = drawingObject.thickness + 'px';\n labelElement.style.boxShadow = drawingObject.borderColor + ' 0px 0px 0px ' + drawingObject.thickness + 'px';\n labelElement.style.borderRadius = '50%';\n labelElement.style.visibility = drawingObject.visibility;\n if (this.isDrawHelper)\n labelElement.style.cursor = 'crosshair';\n else\n labelElement.style.cursor = 'pointer';\n labelElement.style.background = drawingObject.backgroundColor;\n innerSpan = createElement(\"span\", { className: \"e-pv-radiobtn-span\" });\n innerSpan.id = drawingObject.id + \"_input_span\";\n innerSpan.style.width = Math.floor(bounds.width / 2) + \"px\";\n innerSpan.style.height = Math.floor(bounds.height / 2) + \"px\";\n if (zoomValue < 1 && bounds.width <= 20 && bounds.height <= 20) {\n innerSpan.style.margin = Math.round(parseInt(labelElement.style.width) / 3.5) + \"px\";\n }\n else {\n innerSpan.style.margin = Math.round(parseInt(labelElement.style.width) / 4) + \"px\";\n }\n labelElement.addEventListener('click', this.setRadioButtonState.bind(this));\n labelElement.id = drawingObject.id + \"_input_label\";\n inputElement.type = \"radio\";\n if (!isPrint)\n inputElement.className = \"e-pv-radio-btn\";\n inputElement.style.margin = \"0px\";\n inputElement.addEventListener('click', function (event) {\n event.stopPropagation();\n });\n inputElement.addEventListener('focus', this.focusFormFields.bind(this));\n inputElement.addEventListener('blur', this.blurFormFields.bind(this));\n inputElement.style.width = bounds.width + \"px\";\n inputElement.style.height = bounds.height + \"px\";\n this.updateRadioButtonFieldSettingProperties(drawingObject, this.pdfViewer.isFormDesignerToolbarVisible, this.isSetFormFieldMode);\n this.updateRadioButtonProperties(drawingObject, inputElement);\n labelElement.appendChild(inputElement);\n labelElement.appendChild(innerSpan);\n if (drawingObject.isRequired) {\n labelElement.style.boxShadow = 'red 0px 0px 0px ' + drawingObject.thickness + 'px';\n }\n // if (isPrint) {\n // inputElement.style.outlineWidth = drawingObject.thickness + 'px';\n // inputElement.style.outlineColor = drawingObject.borderColor;\n // inputElement.style.outlineStyle = 'solid';\n // inputElement.style.background = drawingObject.backgroundColor;\n // }\n }\n if ((formFieldAnnotationType === \"Checkbox\" || formFieldAnnotationType === \"RadioButton\") && !isPrint) {\n element.appendChild(labelElement);\n }\n else if (formFieldAnnotationType === \"Checkbox\" && isPrint) {\n element.appendChild(labelElement);\n }\n else {\n if (drawingObject.isMultiline) {\n element.appendChild(textArea);\n }\n else {\n element.appendChild(inputElement);\n }\n }\n if (!isNullOrUndefined(drawingObject.tooltip) && drawingObject.tooltip != \"\") {\n if (formFieldAnnotationType === 'RadioButton')\n this.setToolTip(drawingObject.tooltip, labelElement);\n else\n this.setToolTip(drawingObject.tooltip, element);\n }\n this.isDrawHelper = false;\n return element;\n };\n FormDesigner.prototype.listBoxChange = function (event) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key.split(\"_\")[0] === event.currentTarget.id.split(\"_\")[0] ||\n this.pdfViewer.nameTable[event.currentTarget.id.split(\"_\")[0]].name === formFieldsData[i].FormField.name) {\n if (formFieldsData[i].Key.split(\"_\")[0] !== event.currentTarget.id.split(\"_\")[0]) {\n var inputElement = document.getElementById((formFieldsData[i].Key.split(\"_\")[0] + \"_content_html_element\")).firstElementChild.firstElementChild;\n for (var k = 0; k < event.currentTarget.options.length; k++) {\n inputElement.options[k].selected = event.currentTarget.options[k].selected;\n }\n }\n formFieldsData[i].FormField.selectedIndex = [];\n var oldValues = this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex;\n for (var j = 0; j < event.currentTarget.selectedOptions.length; j++) {\n var selectIndex = event.currentTarget.selectedOptions[j].index;\n var oldValueIndex = 0;\n if (this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex && this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex.length !== 0) {\n if (this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex[0] >= 0) {\n oldValueIndex = this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex.pop();\n }\n this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex.push(oldValueIndex);\n }\n var oldValue = formFieldsData[i].FormField.option[oldValueIndex].itemValue;\n formFieldsData[i].FormField.selectedIndex.push(selectIndex);\n this.pdfViewer.nameTable[formFieldsData[i].Key.split(\"_\")[0]].selectedIndex = formFieldsData[i].FormField.selectedIndex;\n this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex = formFieldsData[i].FormField.selectedIndex;\n var newValue = formFieldsData[i].FormField.option[selectIndex].itemValue;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = newValue;\n this.updateFormFieldCollections(this.pdfViewerBase.formFieldCollection[i].FormField);\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsData[i].FormField, this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, null, this.pdfViewerBase.formFieldCollection[i].FormField, 'FormField Value Change', '', oldValues, this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldSessions();\n };\n FormDesigner.prototype.dropdownChange = function (event) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key.split(\"_\")[0] === event.target.id.split(\"_\")[0] ||\n this.pdfViewer.nameTable[event.target.id.split(\"_\")[0]].name === formFieldsData[i].FormField.name) {\n this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex = [];\n var selectIndex = document.getElementById(event.currentTarget.id).selectedIndex;\n var oldValueIndex = 0;\n if (formFieldsData[i].FormField.selectedIndex.length !== 0) {\n oldValueIndex = formFieldsData[i].FormField.selectedIndex.pop();\n formFieldsData[i].FormField.selectedIndex.push(oldValueIndex);\n }\n var oldValue = formFieldsData[i].FormField.option[oldValueIndex].itemValue;\n this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex.push(selectIndex);\n formFieldsData[i].FormField.selectedIndex = this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex;\n this.pdfViewer.nameTable[formFieldsData[i].Key.split(\"_\")[0]].selectedIndex = this.pdfViewerBase.formFieldCollection[i].FormField.selectedIndex;\n var newValue = formFieldsData[i].FormField.option[selectIndex].itemValue;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = newValue;\n if (formFieldsData[i].Key.split(\"_\")[0] !== event.target.id.split(\"_\")[0]) {\n var inputElement = document.getElementById((formFieldsData[i].Key.split(\"_\")[0] + \"_content_html_element\")).firstElementChild.firstElementChild;\n inputElement.selectedIndex = selectIndex;\n }\n this.updateFormFieldCollections(this.pdfViewerBase.formFieldCollection[i].FormField);\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsData[i].FormField, this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, null, this.pdfViewerBase.formFieldCollection[i].FormField, 'FormField Value Change', '', oldValueIndex, selectIndex);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldSessions();\n };\n FormDesigner.prototype.setCheckBoxState = function (event) {\n if ((Browser.isDevice) ? (event.target.className === '' || event.target.className === 'e-pv-checkbox-outer-div' || event.target.className === 'e-pv-checkbox-div') && event.currentTarget.className === 'e-pv-checkbox-outer-div' && !this.pdfViewer.designerMode : !this.pdfViewer.designerMode) {\n var minCheckboxWidth = 20;\n var isChecked = false;\n var checkTarget = void 0;\n if (Browser.isDevice) {\n checkTarget = document.getElementById(event.target.id.split(\"_\")[0] + '_input');\n }\n else {\n checkTarget = event.target;\n }\n if (event.target.id !== 'undefined_input' && !this.pdfViewer.nameTable[event.target.id.split(\"_\")[0]].isReadonly && !this.pdfViewer.designerMode) {\n if (checkTarget && checkTarget.firstElementChild && checkTarget.firstElementChild.className === \"e-pv-checkbox-span e-pv-cb-checked\") {\n checkTarget.firstElementChild.classList.remove(\"e-pv-cb-checked\");\n checkTarget.firstElementChild.classList.add(\"e-pv-checkbox-span\", \"e-pv-cb-unchecked\");\n isChecked = false;\n }\n else if (checkTarget.className === \"e-pv-checkbox-span e-pv-cb-checked\") {\n checkTarget.classList.remove(\"e-pv-cb-checked\");\n checkTarget.classList.add(\"e-pv-checkbox-span\", \"e-pv-cb-unchecked\");\n isChecked = false;\n }\n else {\n checkTarget.firstElementChild.classList.remove(\"e-pv-cb-unchecked\");\n checkTarget.firstElementChild.classList.add(\"e-pv-checkbox-span\", \"e-pv-cb-checked\");\n isChecked = true;\n }\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (isChecked) {\n if (checkTarget.firstElementChild.className.indexOf(\"e-pv-cb-checked\") !== -1) {\n var checkboxWidth = parseInt(event.target.parentElement.style.width, 10);\n if (checkboxWidth > minCheckboxWidth) {\n checkTarget.firstElementChild.style.borderWidth = \"3px\";\n }\n else if (checkboxWidth <= 15) {\n checkTarget.firstElementChild.style.borderWidth = \"1px\";\n }\n else {\n checkTarget.firstElementChild.style.borderWidth = \"2px\";\n }\n }\n }\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key.split(\"_\")[0] === event.target.id.split(\"_\")[0] ||\n this.pdfViewer.nameTable[event.target.id.split(\"_\")[0]].name === formFieldsData[i].FormField.name) {\n this.pdfViewer.nameTable[formFieldsData[i].Key.split(\"_\")[0]].isChecked = isChecked;\n var oldValue = this.pdfViewerBase.formFieldCollection[i].FormField.isChecked;\n formFieldsData[i].FormField.isChecked = isChecked;\n this.pdfViewerBase.formFieldCollection[i].FormField.isChecked = formFieldsData[i].FormField.isChecked;\n if (formFieldsData[i].Key.split(\"_\")[0] !== event.target.id.split(\"_\")[0]) {\n var checkboxElement = document.getElementById(formFieldsData[i].Key.split(\"_\")[0] + \"_input\").firstElementChild;\n if (isChecked) {\n if (checkboxElement.classList.contains('e-pv-cb-unchecked'))\n checkboxElement.classList.remove('e-pv-cb-unchecked');\n checkboxElement.classList.add(\"e-pv-cb-checked\");\n }\n else {\n if (checkboxElement.classList.contains('e-pv-cb-checked'))\n checkboxElement.classList.remove('e-pv-cb-checked');\n checkboxElement.classList.add(\"e-pv-cb-unchecked\");\n }\n }\n this.updateFormFieldCollections(this.pdfViewerBase.formFieldCollection[i].FormField);\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsData[i].FormField, this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, isChecked);\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, null, this.pdfViewerBase.formFieldCollection[i].FormField, 'FormField Value Change', '', oldValue, isChecked);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldSessions();\n }\n }\n };\n FormDesigner.prototype.setCheckedValue = function (element, isChecked) {\n if (isChecked) {\n element.firstElementChild.classList.remove(\"e-pv-cb-unchecked\");\n element.firstElementChild.classList.add(\"e-pv-checkbox-span\", \"e-pv-cb-checked\");\n }\n else {\n element.firstElementChild.classList.remove(\"e-pv-cb-checked\");\n element.firstElementChild.classList.add(\"e-pv-checkbox-span\", \"e-pv-cb-unchecked\");\n }\n };\n FormDesigner.prototype.setRadioButtonState = function (event) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].FormField.radiobuttonItem != null) {\n var oldValue = void 0;\n var undoElement = void 0;\n var redoElement = void 0;\n for (var j = 0; j < formFieldsData[i].FormField.radiobuttonItem.length; j++) {\n if (formFieldsData[i].FormField.radiobuttonItem[j].id.split(\"_\")[0] === event.currentTarget.id.split(\"_\")[0]) {\n this.pdfViewer.nameTable[event.currentTarget.id.split(\"_\")[0]].isSelected = true;\n formFieldsData[i].FormField.radiobuttonItem[j].isSelected = true;\n oldValue = this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].isSelected;\n if (!oldValue)\n undoElement = this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j];\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].isSelected = true;\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsData[i].FormField, this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true);\n }\n else {\n if (this.pdfViewer.nameTable[event.currentTarget.id.split(\"_\")[0]].name === formFieldsData[i].FormField.radiobuttonItem[j].name) {\n this.pdfViewer.nameTable[formFieldsData[i].FormField.radiobuttonItem[j].id.split(\"_\")[0]].isSelected = false;\n var oldValue_1 = this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].isSelected;\n formFieldsData[i].FormField.radiobuttonItem[j].isSelected = false;\n oldValue_1 = this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].isSelected;\n if (oldValue_1)\n redoElement = this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j];\n this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j].isSelected = formFieldsData[i].FormField.radiobuttonItem[j].isSelected;\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsData[i].FormField, this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false);\n }\n }\n this.updateFormFieldCollections(this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[j]);\n }\n if ((undoElement != null || redoElement != null) && this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, null, this.pdfViewerBase.formFieldCollection[i].FormField, 'FormField Value Change', '', undoElement, redoElement);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldSessions();\n };\n FormDesigner.prototype.getTextboxValue = function (event) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key.split(\"_\")[0] === event.target.id.split(\"_\")[0] ||\n this.pdfViewer.nameTable[event.target.id.split(\"_\")[0]].name === formFieldsData[i].FormField.name) {\n var oldValue = this.pdfViewerBase.formFieldCollection[i].FormField.value;\n formFieldsData[i].FormField.value = event.target.value;\n this.pdfViewer.nameTable[formFieldsData[i].Key.split(\"_\")[0]].value = formFieldsData[i].FormField.value;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = formFieldsData[i].FormField.value;\n if (formFieldsData[i].Key.split(\"_\")[0] !== event.target.id.split(\"_\")[0]) {\n var element = document.getElementById(formFieldsData[i].Key.split(\"_\")[0] + \"_content_html_element\");\n if (element && element.firstElementChild && element.firstElementChild.firstElementChild) {\n var inputElement = element.firstElementChild.firstElementChild;\n inputElement.value = formFieldsData[i].FormField.value;\n }\n }\n this.updateFormFieldCollections(this.pdfViewerBase.formFieldCollection[i].FormField);\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", this.pdfViewerBase.formFieldCollection[i].FormField, this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, event.target.value);\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.formFieldCollection[i].FormField.pageNumber, null, this.pdfViewerBase.formFieldCollection[i].FormField, 'FormField Value Change', '', oldValue, event.target.value);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldSessions();\n };\n FormDesigner.prototype.inputElementClick = function (event) {\n event.target.focus();\n };\n FormDesigner.prototype.updateFormFieldSessions = function () {\n var fieldData = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n var formFieldsDatas = JSON.parse(fieldData);\n if (formFieldsDatas && this.pdfViewer.formFieldCollection.length === formFieldsDatas.length) {\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formfields');\n }\n };\n FormDesigner.prototype.focusFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget || currentTarget.className === \"e-pv-checkbox-outer-div\") {\n var colorBorder = (currentTarget.style.borderColor === 'transparent' ? '#000000' : currentTarget.style.borderColor);\n currentTarget.style.boxShadow = \"0 0 5px \" + colorBorder;\n }\n if (currentTarget && (currentTarget.className === \"e-pv-radiobtn-container\" || currentTarget.className === \"e-pv-radio-btn\" || currentTarget.className === \"e-pv-radiobtn-span\") && currentTarget.style.borderColor === 'transparent') {\n var colorBorder = (currentTarget.style.borderColor === 'transparent' ? '#000000' : currentTarget.style.borderColor);\n currentTarget.parentElement.style.boxShadow = '0px 0px 5px ' + colorBorder;\n }\n if (currentTarget && (currentTarget.className === \"e-pv-radiobtn-container\" || currentTarget.className === \"e-pv-radio-btn\" || currentTarget.className === \"e-pv-radiobtn-span\")) {\n currentTarget.parentElement.style.boxShadow = currentTarget.style.borderColor + '0px 0px 5px ' + currentTarget.style.borderWidth;\n }\n };\n FormDesigner.prototype.blurFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n currentTarget.style.boxShadow = '';\n if (currentTarget.type === 'radio' && currentTarget.style.borderColor === 'transparent') {\n var colorBorder = (currentTarget.style.borderColor === 'transparent' ? '#000000' : currentTarget.style.borderColor);\n currentTarget.parentElement.style.boxShadow = '0px 0px 0px ' + colorBorder;\n }\n if (currentTarget.type === 'radio') {\n currentTarget.parentElement.style.boxShadow = currentTarget.style.borderColor + '0px 0px 0px ' + currentTarget.style.borderWidth;\n }\n };\n FormDesigner.prototype.setTextBoxFontStyle = function (fontStyle) {\n if (fontStyle === 1) {\n return { isBold: true };\n }\n else if (fontStyle === 2) {\n return { isItalic: true };\n }\n else if (fontStyle === 3) {\n return { isBold: true, isItalic: true };\n }\n else if (fontStyle === 4) {\n return { isUnderline: true };\n }\n else if (fontStyle === 5) {\n return { isBold: true, isUnderline: true };\n }\n else if (fontStyle === 6) {\n return { isUnderline: true, isItalic: true };\n }\n else if (fontStyle === 7) {\n return { isBold: true, isItalic: true, isUnderline: true };\n }\n else if (fontStyle === 8) {\n return { isStrikeout: true };\n }\n else if (fontStyle === 9) {\n return { isBold: true, isStrikeout: true };\n }\n else if (fontStyle === 10) {\n return { isItalic: true, isStrikeout: true };\n }\n else if (fontStyle === 11) {\n return { isBold: true, isItalic: true, isStrikeout: true };\n }\n else if (fontStyle === 12) {\n return { isUnderline: true, isStrikeout: true };\n }\n else if (fontStyle === 13) {\n return { isUnderline: true, isStrikeout: true, isBold: true };\n }\n else if (fontStyle === 14) {\n return { isItalic: true, isUnderline: true, isStrikeout: true };\n }\n else if (fontStyle === 15) {\n return { isBold: true, isItalic: true, isUnderline: true, isStrikeout: true };\n }\n return { isBold: false, isItalic: false, isStrikeout: false, isUnderline: false };\n };\n /**\n * Adds form field to the PDF page.\n *\n * @param formFieldType\n * @param options\n * @returns HTMLElement\n */\n FormDesigner.prototype.addFormField = function (formFieldType, options, isCollection, id) {\n var obj = {\n thickness: 1, bounds: { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height },\n fontFamily: !isNullOrUndefined(options.fontFamily) ? options.fontFamily : \"Helvetica\", fontSize: !isNullOrUndefined(options.fontSize) ? options.fontSize : 10,\n color: !isNullOrUndefined(options.color) ? options.color : \"black\", backgroundColor: !isNullOrUndefined(options.backgroundColor) ? options.backgroundColor : \"#daeaf7ff\",\n alignment: !isNullOrUndefined(options.alignment) ? options.alignment : \"left\", isReadonly: options.isReadOnly ? options.isReadOnly : false, rotateAngle: options.rotateAngle, isTransparent: options.isTransparent\n };\n obj.fontStyle = !isNullOrUndefined(options.fontStyle) ? options.fontStyle : \"None\";\n obj.visibility = !isNullOrUndefined(options.visibility) ? options.visibility : \"visible\";\n obj.value = !isNullOrUndefined(options.value) ? options.value : \"\";\n obj.isRequired = options.isRequired ? options.isRequired : false;\n obj.isPrint = options.isPrint;\n obj.pageNumber = !isNullOrUndefined(options.pageNumber) ? options.pageNumber : this.pdfViewerBase.currentPageNumber;\n obj.pageIndex = obj.pageNumber - 1;\n obj.font = options.font;\n obj.id = id;\n if (isCollection) {\n this.setFormFieldIndex();\n }\n switch (formFieldType) {\n case 'Textbox':\n obj.formFieldAnnotationType = formFieldType;\n obj.isMultiline = options.isMultiline;\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Textbox' + this.formFieldIndex;\n obj.insertSpaces = options.insertSpaces;\n obj.maxLength = options.maxLength;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.borderColor = !isNullOrUndefined(options.borderColor) ? options.borderColor : '#303030';\n if (options.font) {\n obj.font = options.font;\n }\n else if (this.pdfViewer.textFieldSettings.fontStyle) {\n obj.font = this.setTextBoxFontStyle(this.pdfViewer.textFieldSettings.fontStyle);\n }\n break;\n case 'Password':\n obj.formFieldAnnotationType = 'PasswordField';\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Password' + this.formFieldIndex;\n obj.maxLength = options.maxLength;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.borderColor = !isNullOrUndefined(options.borderColor) ? options.borderColor : '#303030';\n break;\n case 'DropDown':\n obj.formFieldAnnotationType = 'DropdownList';\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Dropdown' + this.formFieldIndex;\n obj.options = options.options ? options.options : [];\n for (var i = 0; i < this.pdfViewer.formFieldCollection.length; i++) {\n var formField = this.pdfViewer.formFieldCollection[i];\n if (formField.formFieldAnnotationType === 'DropdownList' && formField.name === obj.name) {\n obj.options = formField.options;\n break;\n }\n }\n obj.selectedIndex = !isNullOrUndefined(options.selectedIndex) ? options.selectedIndex : [0];\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.borderColor = !isNullOrUndefined(options.borderColor) ? options.borderColor : '#303030';\n break;\n case 'ListBox':\n obj.formFieldAnnotationType = formFieldType;\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'List Box' + this.formFieldIndex;\n obj.options = options.options ? options.options : [];\n for (var i = 0; i < this.pdfViewer.formFieldCollection.length; i++) {\n var formField = this.pdfViewer.formFieldCollection[i];\n if (formField.formFieldAnnotationType === formFieldType && formField.name === obj.name) {\n obj.options = formField.options;\n break;\n }\n }\n obj.selectedIndex = options.selectedIndex;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.borderColor = !isNullOrUndefined(options.borderColor) ? options.borderColor : '#303030';\n break;\n case 'CheckBox':\n obj.formFieldAnnotationType = 'Checkbox';\n obj.bounds = { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height };\n obj.backgroundColor = !isNullOrUndefined(options.backgroundColor) ? options.backgroundColor : \"#daeaf7ff\";\n obj.isReadonly = options.isReadOnly ? options.isReadOnly : false;\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Check Box' + this.formFieldIndex;\n obj.isChecked = options.isChecked ? options.isChecked : false;\n obj.visibility = options.visibility ? options.visibility : \"visible\";\n obj.isRequired = options.isRequired ? options.isRequired : false;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.borderColor = !isNullOrUndefined(options.borderColor) ? options.borderColor : '#303030';\n break;\n case 'RadioButton':\n obj.formFieldAnnotationType = formFieldType;\n obj.bounds = { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height };\n obj.backgroundColor = !isNullOrUndefined(options.backgroundColor) ? options.backgroundColor : \"#daeaf7ff\";\n obj.isReadonly = options.isReadOnly ? options.isReadOnly : false;\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Radio Button' + this.formFieldIndex;\n obj.isSelected = options.isSelected ? options.isSelected : false;\n obj.visibility = options.visibility ? options.visibility : \"visible\";\n obj.isRequired = options.isRequired ? options.isRequired : false;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.borderColor = !isNullOrUndefined(options.borderColor) ? options.borderColor : '#303030';\n break;\n case 'SignatureField':\n obj.formFieldAnnotationType = formFieldType;\n obj.bounds = { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height };\n obj.backgroundColor = !isNullOrUndefined(options.backgroundColor) ? options.backgroundColor : \"#daeaf7ff\";\n obj.fontSize = !isNullOrUndefined(options.fontSize) ? options.fontSize : 10;\n obj.fontStyle = !isNullOrUndefined(options.fontStyle) ? options.fontStyle : \"None\";\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Signature' + this.formFieldIndex;\n obj.isRequired = options.isRequired ? options.isRequired : false;\n obj.isReadonly = options.isReadOnly ? options.isReadOnly : false;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n var indicatorSettings = options.signatureIndicatorSettings ? options.signatureIndicatorSettings : options.initialIndicatorSettings;\n obj.signatureIndicatorSettings = indicatorSettings ? { opacity: indicatorSettings.opacity ? indicatorSettings.opacity : 1,\n backgroundColor: indicatorSettings.backgroundColor ? indicatorSettings.backgroundColor : 'orange', width: indicatorSettings.width ? indicatorSettings.width : 19,\n height: indicatorSettings.height ? indicatorSettings.height : 10, fontSize: indicatorSettings.fontSize ? indicatorSettings.fontSize : 10,\n text: indicatorSettings.text ? indicatorSettings.text : null, color: indicatorSettings.color ? indicatorSettings.color : 'black' } : null;\n break;\n case 'InitialField':\n obj.formFieldAnnotationType = formFieldType;\n obj.bounds = { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height };\n obj.backgroundColor = !isNullOrUndefined(options.backgroundColor) ? options.backgroundColor : \"#daeaf7ff\";\n obj.fontSize = !isNullOrUndefined(options.fontSize) ? options.fontSize : 10;\n obj.thickness = !isNullOrUndefined(options.thickness) ? options.thickness : 1;\n obj.fontStyle = !isNullOrUndefined(options.fontStyle) ? options.fontStyle : \"None\";\n obj.name = !isNullOrUndefined(options.name) ? options.name : 'Initial' + this.formFieldIndex;\n obj.isRequired = options.isRequired ? options.isRequired : false;\n obj.isReadonly = options.isReadOnly ? options.isReadOnly : false;\n obj.isInitialField = true;\n var indicatorSettingsInitial = options.initialIndicatorSettings ? options.initialIndicatorSettings : options.signatureIndicatorSettings;\n obj.signatureIndicatorSettings = indicatorSettingsInitial ? { opacity: indicatorSettingsInitial.opacity ? indicatorSettingsInitial.opacity : 1,\n backgroundColor: indicatorSettingsInitial.backgroundColor ? indicatorSettingsInitial.backgroundColor : 'orange', width: indicatorSettingsInitial.width ? indicatorSettingsInitial.width : 19,\n height: indicatorSettingsInitial.height ? indicatorSettingsInitial.height : 10, fontSize: indicatorSettingsInitial.fontSize ? indicatorSettingsInitial.fontSize : 10,\n text: indicatorSettingsInitial.text ? indicatorSettingsInitial.text : null, color: indicatorSettingsInitial.color ? indicatorSettingsInitial.color : 'black' } : null;\n break;\n }\n obj.tooltip = !isNullOrUndefined(options.tooltip) ? options.tooltip : '';\n this.setFormFieldIndex();\n var HTMLElement = null;\n if (isCollection) {\n this.addFieldCollection(obj);\n }\n else {\n this.pdfViewerBase.disableTextSelectionMode();\n HTMLElement = this.drawFormField(obj);\n }\n return HTMLElement;\n };\n FormDesigner.prototype.addFieldCollection = function (node) {\n var formField = {\n id: randomId(), name: node.name, value: node.value,\n type: node.formFieldAnnotationType, isReadOnly: node.isReadonly, fontFamily: node.fontFamily,\n fontSize: node.fontSize, fontStyle: node.fontStyle, color: node.color, backgroundColor: node.backgroundColor, isMultiline: node.isMultiline,\n alignment: node.alignment, visibility: node.visibility, maxLength: node.maxLength, isRequired: node.isRequired,\n isPrint: node.isPrint, isSelected: node.isSelected, insertSpaces: node.insertSpaces, isChecked: node.isChecked, tooltip: node.tooltip, bounds: node.bounds, thickness: node.thickness, pageIndex: node.pageIndex, borderColor: node.borderColor, signatureIndicatorSettings: node.signatureIndicatorSettings\n };\n this.pdfViewer.formFieldCollections.push(formField);\n };\n /**\n * @private\n */\n FormDesigner.prototype.drawFormField = function (obj) {\n var node = this.pdfViewer.add(obj);\n var index = this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === node.id; });\n // eslint-disable-next-line\n var data;\n if (index > -1) {\n data = this.pdfViewer.formFieldCollections[index];\n if (this.isFormFieldUpdated) {\n this.updateNodeBasedOnCollections(node, data);\n }\n }\n var formFieldIndex = this.pdfViewer.formFieldCollection.findIndex(function (el) { return el.id === node.id; });\n if (formFieldIndex < 0) {\n this.pdfViewer.formFieldCollection.push(node);\n }\n else if (formFieldIndex > -1) {\n this.pdfViewer.formFieldCollection[formFieldIndex] = node;\n }\n var formField = {\n id: node.id, name: node.name, value: node.value,\n type: node.formFieldAnnotationType, isReadOnly: node.isReadonly, fontFamily: node.fontFamily,\n fontSize: node.fontSize, fontStyle: node.fontStyle, color: node.color, backgroundColor: node.backgroundColor, isMultiline: node.isMultiline,\n alignment: node.alignment, visibility: node.visibility, maxLength: node.maxLength, isRequired: node.isRequired,\n isPrint: node.isPrint, isSelected: node.isSelected, isChecked: node.isChecked, tooltip: node.tooltip, bounds: node.bounds, pageIndex: node.pageIndex, thickness: node.thickness, borderColor: node.borderColor, signatureIndicatorSettings: node.signatureIndicatorSettings, insertSpaces: node.insertSpaces\n };\n if (index > -1) {\n this.pdfViewer.formFieldCollections[index] = formField;\n }\n else {\n this.pdfViewer.formFieldCollections.push(formField);\n }\n var HTMLElement = this.drawHTMLContent(node.formFieldAnnotationType, node.wrapper.children[0], node, obj.pageNumber - 1, this.pdfViewer);\n return HTMLElement;\n };\n /**\n * Update the node value based on the collections\n *\n * @param node\n * @param data\n * @returns void\n */\n FormDesigner.prototype.updateNodeBasedOnCollections = function (node, data) {\n node.name = data.name;\n node.value = data.value;\n node.isReadonly = data.isReadOnly;\n node.fontFamily = data.fontFamily;\n node.fontSize = data.fontSize;\n node.fontStyle = data.fontStyle.toString();\n node.color = data.color;\n node.backgroundColor = data.backgroundColor;\n node.alignment = data.alignment;\n node.visibility = data.visibility;\n node.maxLength = data.maxLength;\n node.isRequired = data.isRequired;\n node.isPrint = data.isPrint;\n node.isSelected = data.isSelected;\n node.isChecked = data.isChecked;\n node.tooltip = data.tooltip;\n node.thickness = data.thickness;\n node.borderColor = data.borderColor;\n };\n /**\n * Set the form field mode to add the form field on user interaction.\n *\n * @param formFieldId\n * @param options\n * @returns void\n */\n FormDesigner.prototype.setFormFieldMode = function (formFieldType, options) {\n if (this.pdfViewer.selectedItems && !isNullOrUndefined(this.pdfViewer.selectedItems.annotations) && this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewerBase.activeElements && !isNullOrUndefined(this.pdfViewerBase.activeElements.activePageID)) {\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n switch (formFieldType) {\n case 'Textbox':\n this.activateTextboxElement(formFieldType);\n this.isSetFormFieldMode = true;\n break;\n case 'Password':\n var passwordType = 'PasswordField';\n this.activatePasswordField(passwordType);\n this.isSetFormFieldMode = true;\n break;\n case 'CheckBox':\n var checkboxType = 'Checkbox';\n this.activateCheckboxElement(checkboxType);\n this.isSetFormFieldMode = true;\n break;\n case 'RadioButton':\n this.activateRadioButtonElement(formFieldType);\n this.isSetFormFieldMode = true;\n break;\n case 'DropDown':\n var dropdownType = 'DropdownList';\n this.activateDropDownListElement(dropdownType, options);\n this.isSetFormFieldMode = true;\n break;\n case 'ListBox':\n this.activateListboxElement(formFieldType, options);\n this.isSetFormFieldMode = true;\n break;\n case 'SignatureField':\n case 'InitialField':\n this.activateSignatureBoxElement(formFieldType);\n this.isSetFormFieldMode = true;\n }\n };\n /**\n * Reset the form fields into its original state.\n *\n * @param formFieldId\n * @returns void\n */\n FormDesigner.prototype.resetFormField = function (formFieldId) {\n var formField = this.getFormField(formFieldId);\n if (formField) {\n switch (formField.formFieldAnnotationType) {\n case 'Textbox':\n this.resetTextboxProperties(formField);\n break;\n case 'PasswordField':\n this.resetPasswordProperties(formField);\n break;\n case 'Checkbox':\n this.resetCheckboxProperties(formField);\n break;\n case 'RadioButton':\n this.resetRadioButtonProperties(formField);\n break;\n case 'DropdownList':\n this.resetDropdownListProperties(formField);\n break;\n case 'ListBox':\n this.resetListBoxProperties(formField);\n break;\n case 'SignatureField':\n case 'InitialField':\n this.resetSignatureTextboxProperties(formField);\n break;\n }\n this.updateSessionFormFieldProperties(formField);\n }\n };\n /**\n * Select the form field in the PDF Viewer.\n *\n * @param formFieldId\n * @returns void\n */\n FormDesigner.prototype.selectFormField = function (formFieldId) {\n var formField = this.getFormField(formFieldId);\n if (formField) {\n this.isProgrammaticSelection = true;\n this.pdfViewer.select([formField.id]);\n this.isProgrammaticSelection = false;\n }\n };\n /**\n * Update the form field with the given properties and value.\n *\n * @param formFieldId\n * @param options\n * @returns void\n */\n FormDesigner.prototype.updateFormField = function (formFieldId, options) {\n var formField = this.getFormField(formFieldId);\n this.isFormFieldUpdated = true;\n if (formField) {\n if (!formField.isReadonly || (!isNullOrUndefined(options.isReadOnly) && !options.isReadOnly)) {\n switch (formField.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'DropdownList':\n case 'ListBox':\n case 'SignatureField':\n case 'InitialField':\n var inputElement = document.getElementById(formField.id + \"_content_html_element\");\n if (inputElement) {\n inputElement = inputElement.firstElementChild.firstElementChild;\n this.formFieldPropertyChange(formField, options, inputElement);\n }\n else {\n this.updateFormFieldsInCollections(formFieldId, options);\n }\n break;\n case 'RadioButton':\n var radioButtonDivDivElement = document.getElementById(formField.id + \"_content_html_element\");\n if (radioButtonDivDivElement) {\n radioButtonDivDivElement = radioButtonDivDivElement.firstElementChild.firstElementChild.firstElementChild;\n this.formFieldPropertyChange(formField, options, radioButtonDivDivElement);\n }\n else {\n this.updateFormFieldsInCollections(formFieldId, options);\n }\n break;\n case 'Checkbox':\n var checkboxDivElement = document.getElementById(formField.id + \"_content_html_element\");\n if (checkboxDivElement) {\n checkboxDivElement = checkboxDivElement.firstElementChild.firstElementChild.lastElementChild;\n this.formFieldPropertyChange(formField, options, checkboxDivElement);\n }\n else {\n this.updateFormFieldsInCollections(formFieldId, options);\n }\n break;\n }\n }\n }\n else {\n this.updateFormFieldsInCollections(formFieldId, options);\n }\n };\n /**\n * Update the form field in the form field collections.\n * @param formFieldId\n * @param options\n * @returns void\n */\n FormDesigner.prototype.updateFormFieldsInCollections = function (formFieldId, options) {\n var formFieldCollection = this.pdfViewer.formFieldCollections;\n for (var i = 0; i < formFieldCollection.length; i++) {\n var currentData = formFieldCollection[i];\n if (currentData.id === formFieldId) {\n this.updateFormFieldData(currentData, options);\n var formFieldIndex = this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === formFieldId; });\n this.pdfViewer.formFieldCollections[formFieldIndex] = currentData;\n }\n }\n };\n /**\n * Update the form field data based on the value\n * @param currentData\n * @param options\n * @returns void\n */\n FormDesigner.prototype.updateFormFieldData = function (currentData, options) {\n if (options.name && currentData.name !== options.name) {\n currentData.name = options.name;\n }\n if (currentData.type !== 'SignatureField' || currentData.type !== 'InitialField') {\n if (options.thickness && currentData.thickness !== options.thickness) {\n currentData.thickness = options.thickness;\n }\n if (options.borderColor) {\n var borderColor = this.colorNametoHashValue(options.borderColor);\n if (currentData.borderColor !== borderColor) {\n currentData.borderColor = borderColor;\n }\n }\n }\n if (options.backgroundColor) {\n var backColor = this.colorNametoHashValue(options.backgroundColor);\n if (currentData.backgroundColor !== backColor) {\n currentData.backgroundColor = backColor;\n }\n }\n if (!isNullOrUndefined(options.isReadOnly) && currentData.isReadonly !== options.isReadOnly) {\n currentData.isReadOnly = options.isReadOnly;\n }\n if (!isNullOrUndefined(options.isRequired) && currentData.isRequired !== options.isRequired) {\n currentData.isRequired = options.isRequired;\n }\n if (!isNullOrUndefined(options.isPrint) && currentData.isPrint !== options.isPrint) {\n currentData.isPrint = options.isPrint;\n }\n if (options.visibility && currentData.visibility !== options.visibility) {\n currentData.visibility = options.visibility;\n }\n if (options.tooltip && currentData.tooltip !== options.tooltip) {\n currentData.tooltip = options.tooltip;\n }\n if (currentData.type === 'Checkbox' && (!isNullOrUndefined(options.isChecked) && currentData.isChecked === options.isChecked)) {\n currentData.isChecked = options.isChecked;\n }\n if (currentData.type === 'RadioButton' && (!isNullOrUndefined(options.isSelected) && currentData.isSelected === options.isSelected)) {\n currentData.isSelected = options.isSelected;\n }\n if ((currentData.type === 'DropdownList' || currentData.type === 'ListBox') && options.options) {\n currentData.options = options.options;\n }\n if (currentData.type === 'Textbox' || currentData.type === 'SignatureField' || currentData.type === 'InitialField' ||\n currentData.type === 'DropdownList' || currentData.type === 'ListBox' ||\n currentData.type === 'PasswordField') {\n if (options.value && currentData.value !== options.value) {\n currentData.value = options.value;\n }\n if (options.fontSize && currentData.fontSize !== options.fontSize) {\n currentData.fontSize = options.fontSize;\n }\n if (options.color) {\n var color = this.colorNametoHashValue(options.color);\n if (currentData.color !== color) {\n currentData.color = color;\n }\n }\n if (currentData.type !== 'SignatureField') {\n if (options.alignment && currentData.alignment !== options.alignment) {\n currentData.alignment = options.alignment;\n }\n if (options.maxLength && currentData.maxLength !== options.maxLength) {\n currentData.maxLength = options.maxLength;\n }\n }\n if (currentData.type !== 'PasswordField') {\n if (options.fontFamily && currentData.fontFamily !== options.fontFamily) {\n currentData.fontFamily = options.fontFamily;\n }\n if (options.fontStyle && currentData.fontStyle !== options.fontStyle) {\n currentData.fontStyle = options.fontStyle;\n }\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.getSignatureBackground = function (color) {\n if (color.includes('#')) {\n if (color.length > 8) {\n color = color.slice(0, -2) + '60';\n }\n else {\n color += '60';\n }\n }\n return color;\n };\n FormDesigner.prototype.formFieldPropertyChange = function (formFieldObject, options, htmlElement) {\n var isValueChanged = false, isFontFamilyChanged = false, isFontSizeChanged = false, isFontStyleChanged = false, isColorChanged = false, isBackgroundColorChanged = false, isBorderColorChanged = false, isBorderWidthChanged = false, isAlignmentChanged = false, isReadOnlyChanged = false, isVisibilityChanged = false, isMaxLengthChanged = false, isRequiredChanged = false, isPrintChanged = false, isToolTipChanged = false, isNameChanged = false;\n var oldValue, newValue;\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n if (options.name) {\n if (formFieldObject.name !== options.name) {\n isNameChanged = true;\n }\n formFieldObject.name = options.name;\n var designerName = document.getElementById(formFieldObject.id + \"_designer_name\");\n designerName.innerHTML = formFieldObject.name;\n designerName.style.fontSize = formFieldObject.fontSize ? (formFieldObject.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n htmlElement.name = options.name;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].name = formFieldObject.name;\n if (isNameChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue, isNameChanged);\n }\n }\n if (formFieldObject.formFieldAnnotationType) {\n if (!isNullOrUndefined(options.thickness)) {\n if (formFieldObject.thickness !== options.thickness) {\n isBorderWidthChanged = true;\n oldValue = formFieldObject.thickness;\n newValue = options.thickness;\n }\n htmlElement.style.borderWidth = options.thickness.toString() + 'px';\n formFieldObject.thickness = options.thickness;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].thickness = options.thickness;\n if (isBorderWidthChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, isBorderWidthChanged, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (options.borderColor) {\n var borderColor = this.colorNametoHashValue(options.borderColor);\n if (formFieldObject.borderColor !== borderColor) {\n isBorderColorChanged = true;\n oldValue = formFieldObject.borderColor;\n newValue = borderColor;\n }\n formFieldObject.borderColor = borderColor;\n htmlElement.style.borderColor = borderColor;\n if (formFieldObject.formFieldAnnotationType === 'RadioButton') {\n htmlElement.parentElement.style.boxShadow = borderColor + ' 0px 0px 0px ' + formFieldObject.thickness + 'px';\n this.setToolTip(options.tooltip, htmlElement.parentElement);\n }\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].borderColor = borderColor;\n if (isBorderColorChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, isBorderColorChanged, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n }\n if (options.backgroundColor) {\n var backColor = this.colorNametoHashValue(options.backgroundColor);\n backColor = this.getSignatureBackground(backColor);\n if (formFieldObject.backgroundColor !== backColor) {\n isBackgroundColorChanged = true;\n oldValue = formFieldObject.backgroundColor;\n newValue = backColor;\n }\n formFieldObject.backgroundColor = backColor;\n if (formFieldObject.formFieldAnnotationType === 'SignatureField' || formFieldObject.formFieldAnnotationType === 'InitialField') {\n htmlElement.parentElement.style.background = backColor;\n }\n else {\n htmlElement.style.background = backColor;\n }\n if (formFieldObject.formFieldAnnotationType === 'RadioButton') {\n htmlElement.parentElement.style.background = formFieldObject.backgroundColor;\n }\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].backgroundColor = backColor;\n if (isBackgroundColorChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, isBackgroundColorChanged, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (options.bounds) {\n formFieldObject.bounds = { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height };\n var formField_1 = this.pdfViewer.nameTable[formFieldObject.id.split(\"_\")[0]];\n formField_1.bounds = { x: options.bounds.X, y: options.bounds.Y, width: options.bounds.Width, height: options.bounds.Height };\n formField_1.wrapper.bounds = new Rect(options.bounds.X, options.bounds.Y, options.bounds.Width, options.bounds.Height);\n this.pdfViewer.drawing.nodePropertyChange(formField_1, {\n bounds: {\n x: formField_1.wrapper.bounds.x, y: formField_1.wrapper.bounds.y,\n width: formField_1.wrapper.bounds.width, height: formField_1.wrapper.bounds.height\n }\n });\n var element = formField_1.wrapper.children[0];\n var point = cornersPointsBeforeRotation(formField_1.wrapper.children[0]).topLeft;\n var hEment = document.getElementById(element.id + \"_html_element\");\n if (!isNullOrUndefined(hEment)) {\n hEment.setAttribute('style', 'height:' + (element.actualSize.height * zoomValue) + 'px; width:' + (element.actualSize.width * zoomValue) +\n 'px;left:' + point.x * zoomValue + 'px; top:' + point.y * zoomValue + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + ((this.pdfViewer.designerMode) ? 'none' : 'all')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n }\n }\n if (!isNullOrUndefined(options.isReadOnly)) {\n if (formFieldObject.isReadonly !== options.isReadOnly) {\n isReadOnlyChanged = true;\n oldValue = formFieldObject.isReadonly;\n newValue = options.isReadOnly;\n }\n formFieldObject.isReadonly = options.isReadOnly;\n this.setReadOnlyToElement(formFieldObject, htmlElement, options.isReadOnly);\n this.setReadOnlyToFormField(formFieldObject, options.isReadOnly);\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].isReadonly = options.isReadOnly;\n if (isReadOnlyChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, isReadOnlyChanged, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (!isNullOrUndefined(options.isRequired)) {\n if (formFieldObject.isRequired !== options.isRequired) {\n isRequiredChanged = true;\n oldValue = formFieldObject.isRequired;\n newValue = options.isRequired;\n }\n formFieldObject.isRequired = options.isRequired;\n this.setRequiredToElement(formFieldObject, htmlElement, options.isRequired);\n this.setRequiredToFormField(formFieldObject, options.isRequired);\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].isRequired = options.isRequired;\n if (isRequiredChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, false, false, false, isRequiredChanged, false, false, oldValue, newValue);\n }\n }\n if (options.visibility) {\n if (formFieldObject.visibility !== options.visibility) {\n isVisibilityChanged = true;\n oldValue = formFieldObject.visibility;\n newValue = options.visibility;\n }\n formFieldObject.visibility = options.visibility;\n htmlElement.style.visibility = options.visibility;\n if (formFieldObject.formFieldAnnotationType === 'RadioButton') {\n htmlElement.parentElement.style.visibility = formFieldObject.visibility;\n }\n if (formFieldObject.formFieldAnnotationType === 'SignatureField' || formFieldObject.formFieldAnnotationType === 'InitialField') {\n htmlElement.parentElement.style.visibility = formFieldObject.visibility;\n var annotation = this.pdfViewer.nameTable[formFieldObject.id.split('_')[0] + \"_content\"];\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index = this.getFormFiledIndex(formFieldObject.id.split('_')[0]);\n if (formFieldObject.visibility === \"hidden\") {\n if (annotation) {\n this.hideSignatureValue(formFieldObject, annotation, index, formFieldsData);\n }\n }\n else {\n if (annotation) {\n this.showSignatureValue(formFieldObject, oldValue, annotation, index, formFieldsData);\n }\n }\n }\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].visibility = options.visibility;\n if (isVisibilityChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, false, isVisibilityChanged, false, false, false, false, oldValue, newValue);\n }\n }\n if (!isNullOrUndefined(options.isPrint)) {\n if (formFieldObject.isPrint !== options.isPrint) {\n isPrintChanged = true;\n oldValue = formFieldObject.isPrint;\n newValue = options.isPrint;\n }\n formFieldObject.isPrint = options.isPrint;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].isPrint = options.isPrint;\n if (isPrintChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, false, false, false, false, isPrintChanged, false, oldValue, newValue);\n }\n }\n if (options.tooltip) {\n if (formFieldObject.tooltip !== options.tooltip) {\n isToolTipChanged = true;\n oldValue = formFieldObject.tooltip;\n newValue = options.tooltip;\n }\n formFieldObject.tooltip = options.tooltip;\n if (!isNullOrUndefined(options.tooltip)) {\n if (formFieldObject.formFieldAnnotationType === 'RadioButton') {\n this.setToolTip(options.tooltip, htmlElement.parentElement);\n }\n else {\n this.setToolTip(options.tooltip, htmlElement);\n }\n }\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].tooltip = options.tooltip;\n if (isToolTipChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, false, false, false, false, false, isToolTipChanged, oldValue, newValue);\n }\n }\n if (formFieldObject.formFieldAnnotationType === 'Checkbox' && (!isNullOrUndefined(options.isChecked)) || options.isChecked) {\n if (formFieldObject.isChecked !== this.checkboxCheckedState) {\n isValueChanged = true;\n oldValue = formFieldObject.isChecked;\n newValue = options.isChecked;\n }\n formFieldObject.isChecked = options.isChecked;\n htmlElement.checked = options.isChecked;\n this.setCheckedValue(htmlElement, options.isChecked);\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].isChecked = options.isChecked;\n if (isValueChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, isValueChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (formFieldObject.formFieldAnnotationType === 'RadioButton' && (!isNullOrUndefined(options.isSelected)) || options.isSelected) {\n if (formFieldObject.isSelected !== options.isSelected) {\n isValueChanged = true;\n oldValue = formFieldObject.isSelected;\n newValue = this.checkboxCheckedState;\n }\n formFieldObject.isSelected = options.isSelected;\n htmlElement.checked = options.isSelected;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].isSelected = options.isSelected;\n if (isValueChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, isValueChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (formFieldObject.formFieldAnnotationType === 'DropdownList' || formFieldObject.formFieldAnnotationType === 'ListBox') {\n if (options.options) {\n formFieldObject.options = options.options;\n this.updateDropDownListDataSource(formFieldObject, htmlElement);\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].options = formFieldObject.options;\n }\n }\n if (formFieldObject.formFieldAnnotationType === 'Textbox' || formFieldObject.formFieldAnnotationType === 'SignatureField' || formFieldObject.formFieldAnnotationType === 'InitialField' ||\n formFieldObject.formFieldAnnotationType === 'DropdownList' || formFieldObject.formFieldAnnotationType === 'ListBox'\n || formFieldObject.formFieldAnnotationType === 'PasswordField') {\n if (options.value) {\n if (formFieldObject.value !== options.value) {\n isValueChanged = true;\n oldValue = formFieldObject.value;\n newValue = options.value;\n }\n formFieldObject.value = options.value;\n if (!(formFieldObject.formFieldAnnotationType === 'DropdownList' || formFieldObject.formFieldAnnotationType === 'ListBox')) {\n htmlElement.value = options.value;\n }\n else if (formFieldObject.formFieldAnnotationType === \"DropdownList\" || formFieldObject.formFieldAnnotationType === \"ListBox\") {\n for (var i = 0; i < htmlElement.options.length; i++) {\n if (htmlElement.options[i].text === options.value) {\n htmlElement.options.selectedIndex = i;\n }\n }\n }\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].value = options.value;\n if (isValueChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, isValueChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (options.fontSize) {\n if (formFieldObject.fontSize !== options.fontSize) {\n isFontSizeChanged = true;\n oldValue = formFieldObject.fontSize;\n newValue = options.fontSize;\n }\n formFieldObject.fontSize = options.fontSize;\n htmlElement.style.fontSize = (options.fontSize * zoomValue) + 'px';\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].fontSize = options.fontSize;\n if (isFontSizeChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, isFontSizeChanged, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (options.color) {\n var color = this.colorNametoHashValue(options.color);\n if (formFieldObject.color !== color) {\n isColorChanged = true;\n oldValue = formFieldObject.color;\n newValue = color;\n }\n formFieldObject.color = color;\n htmlElement.style.color = color;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].color = color;\n if (isColorChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, isColorChanged, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (formFieldObject.formFieldAnnotationType !== 'SignatureField') {\n if (options.alignment) {\n if (formFieldObject.alignment !== options.alignment) {\n isAlignmentChanged = true;\n oldValue = formFieldObject.alignment;\n newValue = options.alignment;\n }\n formFieldObject.alignment = options.alignment;\n htmlElement.style.textAlign = options.alignment;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].alignment = options.alignment;\n if (isAlignmentChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, isAlignmentChanged, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (options.maxLength) {\n if (formFieldObject.maxLength !== options.maxLength) {\n isMaxLengthChanged = true;\n oldValue = formFieldObject.maxLength;\n newValue = options.maxLength;\n }\n formFieldObject.maxLength = options.maxLength;\n htmlElement.maxLength = options.maxLength;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].maxLength = options.maxLength;\n if (isMaxLengthChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, false, false, false, false, false, false, false, false, isMaxLengthChanged, false, false, false, oldValue, newValue);\n }\n }\n }\n if (formFieldObject.formFieldAnnotationType !== 'PasswordField') {\n if (options.fontFamily) {\n if (formFieldObject.fontFamily !== options.fontFamily) {\n isFontFamilyChanged = true;\n oldValue = formFieldObject.fontFamily;\n newValue = options.fontFamily;\n }\n formFieldObject.fontFamily = options.fontFamily;\n htmlElement.style.fontFamily = options.fontFamily;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].fontFamily = options.fontFamily;\n if (isFontFamilyChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, isFontFamilyChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n var oldFontStyle = '';\n var newFontStyle = '';\n if (options.fontStyle) {\n oldFontStyle += formFieldObject.font.isBold ? 'Bold' + \", \" : '';\n oldFontStyle += formFieldObject.font.isItalic ? 'Italic' + \", \" : '';\n oldFontStyle += formFieldObject.font.isStrikeout ? 'Strikethrough' + \", \" : '';\n oldFontStyle += formFieldObject.font.isUnderline ? 'Underline' + \", \" : '';\n if ((options.fontStyle & FontStyle.Bold) !== 0) {\n htmlElement.style.fontWeight = \"bold\";\n formFieldObject.fontStyle = \"Bold\";\n formFieldObject.font.isBold = true;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].font.isBold = true;\n }\n newFontStyle += formFieldObject.font.isBold ? 'Bold' + \", \" : '';\n if ((options.fontStyle & FontStyle.Italic) !== 0) {\n htmlElement.style.fontStyle = \"italic\";\n formFieldObject.fontStyle = \"Italic\";\n formFieldObject.font.isItalic = true;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].font.isItalic = true;\n }\n newFontStyle += formFieldObject.font.isItalic ? 'Italic' + \", \" : '';\n if ((options.fontStyle & FontStyle.Strikethrough) !== 0) {\n htmlElement.style.textDecoration = \"line-through\";\n formFieldObject.font.isStrikeout = true;\n formFieldObject.fontStyle = \"Strikethrough\";\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].font.isStrikeout = true;\n }\n newFontStyle += formFieldObject.font.isStrikeout ? 'Strikethrough' + \", \" : '';\n if ((options.fontStyle & FontStyle.Underline) !== 0) {\n htmlElement.style.textDecoration = \"underline\";\n formFieldObject.fontStyle = \"Underline\";\n formFieldObject.font.isUnderline = true;\n this.pdfViewer.nameTable[formFieldObject.id.split('_')[0]].font.isUnderline = true;\n }\n newFontStyle += formFieldObject.font.isUnderline ? 'Underline' + \", \" : '';\n isFontStyleChanged = true;\n if (isFontStyleChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldObject, false, false, false, isFontStyleChanged, false, false, false, false, false, false, false, false, false, false, false, oldFontStyle, newFontStyle);\n }\n }\n }\n }\n if ((formFieldObject.formFieldAnnotationType === 'SignatureField' && options.signatureIndicatorSettings) || (formFieldObject.formFieldAnnotationType === 'InitialField' && options.initialIndicatorSettings)) {\n formFieldObject = this.updateSignatureandInitialIndicator(formFieldObject, options, htmlElement);\n }\n this.updateSessionFormFieldProperties(formFieldObject);\n var formField = {\n id: formFieldObject.id, name: formFieldObject.name, value: formFieldObject.value,\n type: formFieldObject.formFieldAnnotationType, isReadOnly: formFieldObject.isReadonly, fontFamily: formFieldObject.fontFamily,\n fontSize: formFieldObject.fontSize, fontStyle: formFieldObject.fontStyle, color: formFieldObject.color, backgroundColor: formFieldObject.backgroundColor,\n alignment: formFieldObject.alignment, visibility: formFieldObject.visibility, maxLength: formFieldObject.maxLength, isRequired: formFieldObject.isRequired,\n isPrint: formFieldObject.isPrint, tooltip: formFieldObject.tooltip, bounds: formFieldObject.bounds, thickness: formFieldObject.thickness, borderColor: formFieldObject.borderColor, pageIndex: formFieldObject.pageIndex\n };\n this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === formField.id; })] = formField;\n };\n FormDesigner.prototype.colorNametoHashValue = function (colorString) {\n var colorCode = colorString;\n if (!colorCode.match(/#([a-z0-9]+)/gi) && !colorCode.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorCode = this.nameToHash(colorCode);\n }\n return colorCode !== '' ? colorCode : colorString;\n };\n /**\n * @private\n */\n FormDesigner.prototype.getFormField = function (formFieldId) {\n var formField;\n var formFieldCollectionObject;\n if (typeof formFieldId === 'object') {\n formFieldCollectionObject = this.getAnnotationsFromAnnotationCollections(formFieldId.id);\n if (formFieldCollectionObject)\n formField = this.pdfViewer.nameTable[formFieldCollectionObject.id];\n }\n if (typeof formFieldId === 'string') {\n formFieldCollectionObject = this.getAnnotationsFromAnnotationCollections(formFieldId);\n if (formFieldCollectionObject)\n formField = this.pdfViewer.nameTable[formFieldCollectionObject.id];\n }\n return formField;\n };\n FormDesigner.prototype.resetTextboxProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'textboxField';\n obj.value = '';\n obj.fontFamily = 'Helvetica';\n obj.fontSize = 10;\n obj.fontStyle = \"None\";\n obj.color = 'black';\n obj.backgroundColor = '#daeaf7ff';\n obj.alignment = 'left';\n obj.visibility = 'visible';\n obj.isReadonly = false;\n obj.isRequired = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.borderColor = '#303030';\n obj.thickness = 1;\n obj.maxLength = 0;\n this.updateTextboxProperties(obj, inputElement);\n }\n };\n FormDesigner.prototype.resetPasswordProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'passswordField';\n obj.value = '';\n obj.fontFamily = 'Helvetica';\n obj.fontSize = 10;\n obj.fontStyle = \"None\";\n obj.color = 'black';\n obj.backgroundColor = '#daeaf7ff';\n obj.alignment = 'left';\n obj.visibility = 'visible';\n obj.isReadonly = false;\n obj.isRequired = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.borderColor = '#303030';\n obj.thickness = 1;\n obj.maxLength = 0;\n this.updatePasswordFieldProperties(obj, inputElement);\n }\n };\n FormDesigner.prototype.resetCheckboxProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'checkboxField';\n obj.isChecked = false;\n obj.backgroundColor = '#daeaf7ff';\n obj.visibility = 'visible';\n obj.isReadonly = false;\n obj.isRequired = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.borderColor = '#303030';\n obj.thickness = 1;\n this.updateCheckboxProperties(obj, inputElement);\n }\n };\n FormDesigner.prototype.resetRadioButtonProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'RadioButtonField';\n obj.isSelected = false;\n obj.backgroundColor = '#daeaf7ff';\n obj.visibility = 'visible';\n obj.isReadonly = false;\n obj.isRequired = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.borderColor = '#303030';\n obj.thickness = 1;\n this.updateRadioButtonProperties(obj, inputElement);\n }\n };\n FormDesigner.prototype.resetDropdownListProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'dropDownField';\n obj.value = '';\n obj.fontFamily = 'Helvetica';\n obj.fontSize = 10;\n obj.fontStyle = \"None\";\n obj.color = 'black';\n obj.backgroundColor = '#daeaf7ff';\n obj.alignment = 'left';\n obj.visibility = 'visible';\n obj.isReadonly = false;\n obj.isRequired = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.borderColor = '#303030';\n obj.thickness = 1;\n obj.options = [];\n this.updateDropdownListProperties(obj, inputElement);\n if (obj.options) {\n this.updateDropDownListDataSource(obj, inputElement);\n }\n }\n };\n FormDesigner.prototype.resetListBoxProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'listBoxField';\n obj.value = '';\n obj.fontFamily = 'Helvetica';\n obj.fontSize = 10;\n obj.fontStyle = \"None\";\n obj.color = 'black';\n obj.backgroundColor = '#daeaf7ff';\n obj.alignment = 'left';\n obj.visibility = 'visible';\n obj.isReadonly = false;\n obj.isRequired = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.borderColor = '#303030';\n obj.thickness = 1;\n obj.options = [];\n this.updateListBoxProperties(obj, inputElement);\n if (obj.options) {\n this.updateDropDownListDataSource(obj, inputElement);\n }\n }\n };\n FormDesigner.prototype.resetSignatureTextboxProperties = function (obj) {\n var inputElement = document.getElementById(obj.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (inputElement) {\n obj.name = 'signatureField';\n obj.value = '';\n obj.fontFamily = 'Helvetica';\n obj.fontSize = 10;\n obj.fontStyle = \"None\";\n obj.color = 'black';\n obj.backgroundColor = '#daeaf7ff';\n obj.isRequired = false;\n obj.isReadonly = false;\n obj.tooltip = '';\n obj.isPrint = true;\n obj.visibility = 'visible';\n this.updateSignatureFieldProperties(obj, inputElement);\n }\n };\n /**\n * Deletes the form field from the PDF page.\n *\n * @param formFieldId\n * @param addAction\n * @returns void\n */\n FormDesigner.prototype.deleteFormField = function (formFieldId, addAction) {\n if (addAction === void 0) { addAction = true; }\n var formField = this.getFormField(formFieldId);\n if (formField) {\n this.clearSelection(formFieldId);\n this.pdfViewer.remove(formField);\n this.pdfViewer.renderDrawing();\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule))\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(false);\n if (this.pdfViewerBase.formFieldCollection.length > 0) {\n this.pdfViewerBase.enableFormFieldButton(true);\n }\n else {\n this.pdfViewerBase.enableFormFieldButton(false);\n }\n if (addAction && this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.currentPageNumber, null, formField, 'Delete', '', formField, formField);\n }\n }\n };\n /**\n * Clears the selection of the form field in the PDF page.\n *\n * @param formFieldId\n * @returns void\n */\n FormDesigner.prototype.clearSelection = function (formFieldId) {\n var formField;\n var formFieldCollectionObject;\n if (typeof formFieldId === 'object') {\n formFieldCollectionObject = this.getAnnotationsFromAnnotationCollections(formFieldId.id);\n formField = this.pdfViewer.nameTable[formFieldCollectionObject.id];\n }\n if (typeof formFieldId === 'string') {\n formFieldCollectionObject = this.getAnnotationsFromAnnotationCollections(formFieldId);\n formField = this.pdfViewer.nameTable[formFieldCollectionObject.id];\n }\n if (formField && (this.pdfViewer.selectedItems && !isNullOrUndefined(this.pdfViewer.selectedItems.properties.formFields) && this.pdfViewer.selectedItems.properties.formFields.length > 0 &&\n this.pdfViewer.selectedItems.properties.formFields[0].id === formField.id)) {\n var pageId = !isNullOrUndefined(this.pdfViewerBase.activeElements.activePageID) ? this.pdfViewerBase.activeElements.activePageID : formField.pageIndex;\n this.pdfViewer.clearSelection(pageId);\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.setMode = function (mode) {\n if (mode && mode.indexOf(\"designer\") !== -1) {\n this.enableDisableFormFieldsInteraction(true);\n this.pdfViewerBase.disableTextSelectionMode();\n }\n else {\n this.enableDisableFormFieldsInteraction(false);\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n }\n };\n FormDesigner.prototype.enableDisableFormFieldsInteraction = function (enableDesignerMode) {\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && collections.length > 0) {\n for (var i = 0; i < collections.length; i++) {\n var element = document.getElementById(collections[i].id + \"_content_html_element\");\n var designerName = document.getElementById(collections[i].id + \"_designer_name\");\n if (element) {\n if (enableDesignerMode) {\n this.pdfViewer.designerMode = true;\n element.style.pointerEvents = \"none\";\n designerName.innerHTML = collections[i].name;\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n designerName.style.fontSize = collections[i].fontSize ? (collections[i].fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n designerName.style.position = 'absolute';\n }\n else {\n this.pdfViewer.designerMode = false;\n element.style.pointerEvents = \"all\";\n designerName.innerHTML = \"\";\n designerName.style.position = 'initial';\n if (collections[i].formFieldAnnotationType === 'RadioButton') {\n this.updateRadioButtonDesignerProperties(collections[i], true);\n }\n if (collections[i].formFieldAnnotationType === 'Checkbox') {\n this.updateCheckboxFormDesignerProperties(collections[i], true);\n }\n this.pdfViewer.clearSelection(collections[i].pageIndex);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n FormDesigner.prototype.getAnnotationsFromAnnotationCollections = function (annotationId) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && annotationId) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].id === annotationId) {\n return collections[i];\n }\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateSignatureValue = function (formFieldId) {\n for (var i = 0; i < this.pdfViewerBase.formFieldCollection.length; i++) {\n if (formFieldId === this.pdfViewerBase.formFieldCollection[i].FormField.id) {\n this.pdfViewerBase.formFieldCollection[i].FormField.value = '';\n this.pdfViewer.nameTable[this.pdfViewerBase.formFieldCollection[i].FormField.id.split('_')[0]].value = '';\n this.pdfViewer.nameTable[this.pdfViewerBase.formFieldCollection[i].FormField.id].value = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = '';\n this.pdfViewer.nameTable[this.pdfViewerBase.formFieldCollection[i].FormField.id.split('_')[0]].signatureType = '';\n this.pdfViewer.nameTable[this.pdfViewerBase.formFieldCollection[i].FormField.id].signatureType = '';\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.removeFieldsFromAnnotationCollections = function (annotationId) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key.split(\"_\")[0] === annotationId) {\n formFieldsData.splice(i, 1);\n this.pdfViewerBase.formFieldCollection.splice(i, 1);\n break;\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, this.pdfViewerBase.currentPageNumber - 1);\n if (annotObject[index]) {\n for (var m = 0; m < annotObject[index].annotations.length; m++) {\n if (annotationId === annotObject[index].annotations[m].id) {\n annotObject[index].annotations.splice(m, 1);\n break;\n }\n }\n var annotationStringified = JSON.stringify(annotObject);\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_shape', annotationStringified);\n }\n }\n // eslint-disable-next-line\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && annotationId) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].formFieldId === annotationId) {\n this.pdfViewer.formFieldCollection.splice(i, 1);\n }\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.setFormFieldIndex = function () {\n this.formFieldIndex = this.formFieldIndex + 1;\n return this.formFieldIndex;\n };\n FormDesigner.prototype.setFormFieldIdIndex = function () {\n this.formFieldIdIndex = this.formFieldIdIndex + 1;\n return this.formFieldIdIndex;\n };\n FormDesigner.prototype.activateTextboxElement = function (formFieldType) {\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: 'Textbox' + this.setFormFieldIndex(), value: '', fontFamily: 'Helvetica', fontSize: 10 * this.pdfViewerBase.getZoomFactor(), fontStyle: 'None', color: 'black',\n backgroundColor: '#daeaf7ff', thickness: 1, borderColor: '#303030', alignment: 'left', isReadonly: false, visibility: \"visible\", isRequired: false, isPrint: true, rotateAngle: 0, tooltip: '', font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false }\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n FormDesigner.prototype.activatePasswordField = function (formFieldType) {\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: 'Password' + this.setFormFieldIndex(), value: '', fontFamily: 'Helvetica', fontSize: 10 * this.pdfViewerBase.getZoomFactor(), fontStyle: 'None', color: 'black',\n alignment: 'left', backgroundColor: '#daeaf7ff', thickness: 1, borderColor: '#303030', isReadonly: false, visibility: \"visible\", isRequired: false, isPrint: true, rotateAngle: 0, tooltip: '', font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false }\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n FormDesigner.prototype.activateCheckboxElement = function (formFieldType) {\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: 'Check Box' + this.setFormFieldIndex(), isChecked: false, fontSize: 10 * this.pdfViewerBase.getZoomFactor(), backgroundColor: '#daeaf7ff', color: 'black', thickness: 1, borderColor: '#303030', isReadonly: false, visibility: \"visible\", isPrint: true, rotateAngle: 0, tooltip: ''\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n FormDesigner.prototype.activateRadioButtonElement = function (formFieldType) {\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: 'Radio Button' + this.setFormFieldIndex(), isSelected: false, fontSize: 10 * this.pdfViewerBase.getZoomFactor(), backgroundColor: '#daeaf7ff', color: 'black', thickness: 1, borderColor: '#303030', isReadonly: false, visibility: \"visible\", isPrint: true, rotateAngle: 0, tooltip: ''\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n FormDesigner.prototype.activateDropDownListElement = function (formFieldType, dropDownOptions) {\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: 'Dropdown' + this.setFormFieldIndex(), fontFamily: 'Helvetica', fontSize: 10 * this.pdfViewerBase.getZoomFactor(), fontStyle: 'None', color: 'black', backgroundColor: '#daeaf7ff', thickness: 1, borderColor: '#303030',\n alignment: 'left', isReadonly: false, visibility: \"visible\", isRequired: false, isPrint: true, rotateAngle: 0, tooltip: '',\n options: dropDownOptions, isMultiSelect: false, font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false }\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n FormDesigner.prototype.activateListboxElement = function (formFieldType, listBoxOptions) {\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: 'List Box' + this.setFormFieldIndex(), fontFamily: 'Helvetica', fontSize: 10 * this.pdfViewerBase.getZoomFactor(), fontStyle: 'None', color: 'black', backgroundColor: '#daeaf7ff', thickness: 1, borderColor: '#303030',\n alignment: 'left', isReadonly: false, visibility: \"visible\", isRequired: false, isPrint: true, rotateAngle: 0, tooltip: '',\n options: listBoxOptions, isMultiSelect: true, font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false }\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n FormDesigner.prototype.activateSignatureBoxElement = function (formFieldType) {\n var propertyValues = { opacity: 1, backgroundColor: 'rgba(255, 228, 133, 0.35)', width: 19, height: 10, fontSize: 10, text: null, color: 'black' };\n switch (formFieldType) {\n case \"SignatureField\":\n if (!isNullOrUndefined(this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings)) {\n propertyValues = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings;\n }\n break;\n case 'InitialField':\n if (!isNullOrUndefined(this.pdfViewer.initialFieldSettings.initialIndicatorSettings)) {\n propertyValues = this.pdfViewer.initialFieldSettings.initialIndicatorSettings;\n }\n break;\n default:\n break;\n }\n this.pdfViewer.drawingObject = {\n formFieldAnnotationType: formFieldType,\n name: formFieldType === 'InitialField' || this.pdfViewer.isInitialFieldToolbarSelection ? 'Initial' + this.setFormFieldIndex() : 'Signature' + this.setFormFieldIndex(), fontFamily: 'Helvetica', fontSize: 10 * this.pdfViewerBase.getZoomFactor(), fontStyle: 'None', color: 'black', backgroundColor: '#daeaf7ff', alignment: 'left',\n isReadonly: false, visibility: \"visible\", isRequired: false, isPrint: true, rotateAngle: 0, tooltip: '', font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false },\n isInitialField: formFieldType === 'InitialField' || this.pdfViewer.isInitialFieldToolbarSelection, signatureIndicatorSettings: { opacity: propertyValues.opacity, backgroundColor: propertyValues.backgroundColor, width: propertyValues.width, height: propertyValues.height, fontSize: propertyValues.fontSize, text: propertyValues.text, color: propertyValues.color }\n };\n this.pdfViewer.tool = \"DrawTool\";\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateTextboxProperties = function (obj, inputElement, isPrint) {\n var fillColor = '#daeaf7ff';\n inputElement.name = obj.name ? obj.name : 'Textbox' + this.setFormFieldIndex();\n inputElement.value = obj.value ? obj.value : '';\n var zoomValue = isPrint ? this.defaultZoomValue : this.pdfViewerBase.getZoomFactor();\n if (obj.insertSpaces) {\n var font = ((obj.bounds.width * zoomValue / obj.maxLength) - (obj.fontSize * zoomValue / 2)) - (0.6 * zoomValue);\n inputElement.style.letterSpacing = '' + font + 'px';\n inputElement.style.fontFamily = 'monospace';\n inputElement.style.paddingLeft = (font / 2) + 'px';\n }\n else {\n inputElement.style.fontFamily = obj.fontFamily && this.getFontFamily(obj.fontFamily) ? obj.fontFamily : 'Helvetica';\n }\n inputElement.style.fontSize = obj.fontSize ? (obj.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n if (obj.font.isBold) {\n inputElement.style.fontWeight = \"bold\";\n }\n if (obj.font.isItalic) {\n inputElement.style.fontStyle = \"italic\";\n }\n if (obj.font.isUnderline && obj.font.isStrikeout) {\n inputElement.style.textDecoration = \"underline line-through\";\n }\n else if (obj.font.isStrikeout) {\n inputElement.style.textDecoration = \"line-through\";\n }\n else if (obj.font.isUnderline) {\n inputElement.style.textDecoration = \"underline\";\n }\n if (obj.isTransparent && obj.borderColor === '#ffffffff') {\n inputElement.style.backgroundColor = 'transparent';\n inputElement.style.borderColor = 'transparent';\n }\n else {\n inputElement.style.backgroundColor = obj.backgroundColor ? obj.backgroundColor : '#daeaf7ff';\n inputElement.style.borderColor = obj.borderColor ? obj.borderColor : '#303030';\n }\n inputElement.style.color = obj.color ? obj.color : 'black';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n inputElement.style.textAlign = obj.alignment ? obj.alignment.toLowerCase() : 'left';\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n inputElement.style.pointerEvents = obj.isReadonly ? (obj.isMultiline ? 'default' : 'none') : 'default';\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = obj.backgroundColor != fillColor ? obj.backgroundColor : 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n }\n if (obj.maxLength != undefined) {\n inputElement.maxLength = obj.maxLength === 0 ? 524288 : obj.maxLength;\n }\n inputElement.tabIndex = this.formFieldIndex;\n inputElement.setAttribute(\"aria-label\", this.pdfViewer.element.id + \"formfilldesigner\");\n };\n /**\n * @private\n */\n FormDesigner.prototype.updatePasswordFieldProperties = function (obj, inputElement, isPrint) {\n var fillColor = '#daeaf7ff';\n inputElement.name = obj.name ? obj.name : 'Password' + this.setFormFieldIndex();\n inputElement.value = obj.value ? obj.value : '';\n inputElement.style.fontFamily = obj.fontFamily ? obj.fontFamily : 'Helvetica';\n var zoomValue = isPrint ? this.defaultZoomValue : this.pdfViewerBase.getZoomFactor();\n inputElement.style.fontSize = obj.fontSize ? (obj.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n if (obj.font.isBold) {\n inputElement.style.fontWeight = \"bold\";\n }\n if (obj.font.isItalic) {\n inputElement.style.fontStyle = \"italic\";\n }\n if (obj.font.isStrikeout) {\n inputElement.style.textDecoration = \"line-through\";\n }\n if (obj.font.isUnderline) {\n inputElement.style.textDecoration = \"underline\";\n }\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n inputElement.style.color = obj.color ? obj.color : 'black';\n inputElement.style.backgroundColor = obj.backgroundColor ? obj.backgroundColor : '#daeaf7ff';\n inputElement.style.borderColor = obj.borderColor ? obj.borderColor : '#303030';\n inputElement.style.textAlign = obj.alignment ? obj.alignment.toLowerCase() : 'left';\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n inputElement.style.pointerEvents = obj.isReadonly ? 'none' : 'default';\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = obj.backgroundColor != fillColor ? obj.backgroundColor : 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n }\n if (obj.maxLength != undefined) {\n inputElement.maxLength = obj.maxLength === 0 ? 524288 : obj.maxLength;\n }\n inputElement.tabIndex = this.formFieldIndex;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateCheckboxProperties = function (obj, inputElement) {\n var fillColor = '#daeaf7ff';\n inputElement.name = obj.name ? obj.name : 'Check Box' + this.setFormFieldIndex();\n inputElement.checked = obj.isChecked ? true : false;\n if (obj.isTransparent && obj.borderColor === '#ffffffff') {\n inputElement.style.backgroundColor = 'transparent';\n inputElement.style.borderColor = 'transparent';\n }\n else {\n inputElement.style.backgroundColor = obj.backgroundColor ? obj.backgroundColor : '#daeaf7ff';\n inputElement.style.borderColor = obj.borderColor ? obj.borderColor : '#303030';\n }\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n inputElement.style.pointerEvents = obj.isReadonly ? 'none' : 'default';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = obj.backgroundColor != fillColor ? obj.backgroundColor : 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n }\n inputElement.tabIndex = this.formFieldIndex;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateRadioButtonProperties = function (obj, inputElement) {\n var fillColor = '#daeaf7ff';\n inputElement.name = obj.name ? obj.name : 'Radio Button' + this.setFormFieldIndex();\n inputElement.checked = obj.isSelected ? true : false;\n inputElement.style.backgroundColor = obj.backgroundColor ? obj.backgroundColor : '#daeaf7ff';\n inputElement.style.borderColor = obj.borderColor ? obj.borderColor : '#303030';\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n inputElement.style.pointerEvents = obj.isReadonly ? 'none' : 'default';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = obj.backgroundColor != fillColor ? obj.backgroundColor : 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n }\n inputElement.tabIndex = this.formFieldIndex;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateDropdownListProperties = function (obj, inputElement, isPrint) {\n var fillColor = '#daeaf7ff';\n inputElement.name = obj.name ? obj.name : 'Dropdown' + this.setFormFieldIndex();\n inputElement.value = obj.value ? obj.value : '';\n inputElement.style.fontFamily = obj.fontFamily ? obj.fontFamily : 'Helvetica';\n var zoomValue = isPrint ? this.defaultZoomValue : this.pdfViewerBase.getZoomFactor();\n inputElement.style.fontSize = obj.fontSize ? (obj.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n if (obj.font.isBold) {\n inputElement.style.fontWeight = \"bold\";\n }\n if (obj.font.isItalic) {\n inputElement.style.fontStyle = \"italic\";\n }\n if (obj.font.isStrikeout) {\n inputElement.style.textDecoration = \"line-through\";\n }\n if (obj.font.isUnderline) {\n inputElement.style.textDecoration = \"underline\";\n }\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n inputElement.style.color = obj.color ? obj.color : 'black';\n inputElement.style.backgroundColor = obj.backgroundColor ? obj.backgroundColor : '#daeaf7ff';\n inputElement.style.borderColor = obj.borderColor ? obj.borderColor : '#303030';\n inputElement.style.textAlign = obj.alignment ? obj.alignment.toLowerCase() : 'left';\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n inputElement.style.pointerEvents = obj.isReadonly ? 'none' : 'default';\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = obj.backgroundColor != fillColor ? obj.backgroundColor : 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n }\n inputElement.tabIndex = this.formFieldIndex;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateListBoxProperties = function (obj, inputElement, isPrint) {\n var fillColor = '#daeaf7ff';\n inputElement.name = obj.name ? obj.name : 'List Box' + this.setFormFieldIndex();\n inputElement.value = obj.value ? obj.value : '';\n inputElement.style.fontFamily = obj.fontFamily ? obj.fontFamily : 'Helvetica';\n var zoomValue = isPrint ? this.defaultZoomValue : this.pdfViewerBase.getZoomFactor();\n inputElement.style.fontSize = obj.fontSize ? (obj.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n if (obj.font.isBold) {\n inputElement.style.fontWeight = \"bold\";\n }\n if (obj.font.isItalic) {\n inputElement.style.fontStyle = \"italic\";\n }\n if (obj.font.isStrikeout) {\n inputElement.style.textDecoration = \"line-through\";\n }\n if (obj.font.isUnderline) {\n inputElement.style.textDecoration = \"underline\";\n }\n inputElement.style.color = obj.color ? obj.color : 'black';\n inputElement.style.backgroundColor = obj.backgroundColor ? obj.backgroundColor : '#daeaf7ff';\n inputElement.style.borderColor = obj.borderColor ? obj.borderColor : '#303030';\n inputElement.style.textAlign = obj.alignment ? obj.alignment.toLowerCase() : 'left';\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n inputElement.style.pointerEvents = obj.isReadonly ? 'none' : 'default';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = obj.backgroundColor != fillColor ? obj.backgroundColor : 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n }\n inputElement.tabIndex = this.formFieldIndex;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateSignatureFieldProperties = function (obj, inputElement, isPrint) {\n inputElement.name = obj.name ? obj.name : 'Signature' + this.setFormFieldIndex();\n inputElement.value = obj.value ? obj.value : '';\n inputElement.style.fontFamily = obj.fontFamily ? obj.fontFamily : 'Helvetica';\n inputElement.style.visibility = obj.visibility ? obj.visibility : 'visible';\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n inputElement.style.fontSize = obj.fontSize ? (obj.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n if (obj.font.isBold) {\n inputElement.style.fontWeight = \"bold\";\n }\n if (obj.font.isItalic) {\n inputElement.style.fontStyle = \"italic\";\n }\n if (obj.font.isStrikeout) {\n inputElement.style.textDecoration = \"line-through\";\n }\n if (obj.font.isUnderline) {\n inputElement.style.textDecoration = \"underline\";\n }\n inputElement.style.color = obj.color ? obj.color : 'black';\n inputElement.style.borderWidth = !isNullOrUndefined(obj.thickness) ? obj.thickness + 'px' : '1px';\n var background = obj.backgroundColor ? obj.backgroundColor : '#FFE48559';\n background = this.getSignatureBackground(background);\n inputElement.style.backgroundColor = isPrint ? 'transparent' : background;\n if (obj.isReadonly) {\n inputElement.disabled = true;\n inputElement.style.cursor = 'default';\n inputElement.style.backgroundColor = 'transparent';\n }\n if (obj.isRequired) {\n inputElement.required = true;\n if (inputElement.firstElementChild) {\n var thickness = (obj.thickness > 0) ? obj.thickness : 1;\n inputElement.firstElementChild.style.border = thickness + 'px solid red';\n }\n else {\n inputElement.style.border = '1px solid red';\n }\n inputElement.style.borderWidth = obj.thickness ? obj.thickness + 'px' : '1px';\n }\n inputElement.tabIndex = this.formFieldIndex;\n };\n /**\n * @private\n */\n FormDesigner.prototype.createHtmlElement = function (elementType, attribute) {\n var element = createElement(elementType);\n this.setAttributeHtml(element, attribute);\n return element;\n };\n FormDesigner.prototype.setAttributeHtml = function (element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n if (keys[i] !== 'style') {\n element.setAttribute(keys[i], attributes[keys[i]]);\n }\n else {\n this.applyStyleAgainstCsp(element, attributes[keys[i]]);\n }\n }\n };\n FormDesigner.prototype.applyStyleAgainstCsp = function (svg, attributes) {\n var keys = attributes.split(';');\n for (var i = 0; i < keys.length; i++) {\n var attribute = keys[i].split(':');\n if (attribute.length === 2) {\n svg.style[attribute[0].trim()] = attribute[1].trim();\n }\n }\n };\n // eslint-disable-next-line\n FormDesigner.prototype.getFieldBounds = function (bound, pageIndex) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line max-len\n bound = { X: bound.X ? bound.X : bound.x, Y: bound.Y ? bound.Y : bound.y, Width: bound.Width ? bound.Width : bound.width, Height: bound.Height ? bound.Height : bound.height };\n // eslint-disable-next-line\n var bounds;\n if (pageDetails) {\n switch (pageDetails.rotation) {\n case 0:\n bounds = bound;\n break;\n case 1:\n bounds = { X: bound.Y - (bound.Width / 2 - bound.Height / 2), Y: pageDetails.width - bound.X - bound.Height - (bound.Width / 2 - bound.Height / 2), Width: bound.Width, Height: bound.Height };\n break;\n case 2:\n bounds = { X: pageDetails.width - bound.X - bound.Width, Y: pageDetails.height - bound.Y - bound.Height, Width: bound.Width, Height: bound.Height };\n break;\n case 3:\n bounds = { X: (pageDetails.height - bound.Y - bound.Width + (bound.Width / 2 - bound.Height / 2)), Y: bound.X + (bound.Width / 2 - bound.Height / 2), Width: bound.Height, Height: bound.Width };\n break;\n }\n }\n if (!bounds) {\n bounds = bound;\n }\n return bounds;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormDesigner.prototype.downloadFormDesigner = function () {\n var _this = this;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (data) {\n var formFieldsData = JSON.parse(data);\n // Get Formfields present in non rendered pages\n if (formFieldsData.length != this.pdfViewer.formFieldCollections.length) {\n var formFieldNotContains = this.pdfViewer.formFieldCollections.filter(function (_a) {\n var id1 = _a.id;\n return !_this.pdfViewer.formFieldCollection.some(function (_a) {\n var id2 = _a.id;\n return id2 === id1;\n });\n });\n for (var k = 0; k < formFieldNotContains.length; k++) {\n var items = this.loadedFormFieldValue(formFieldNotContains[k]);\n formFieldsData.push({ Key: items.id + \"_content\", FormField: items });\n }\n }\n for (var i = 0; i < formFieldsData.length; i++) {\n var currentData = formFieldsData[i].FormField;\n currentData.Multiline = currentData.isMultiline;\n if (currentData.isRequired) {\n if (currentData.formFieldAnnotationType === 'Textbox' || currentData.formFieldAnnotationType === 'PasswordField' || currentData.Multiline) {\n if (currentData.value === null || currentData.value === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.name] = currentData.value;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.name]);\n }\n }\n else if (currentData.formFieldAnnotationType === 'RadioButton') {\n if (currentData.radiobuttonItem) {\n var isSelected = false;\n for (var j = 0; j < currentData.radiobuttonItem.length; j++) {\n if (currentData.radiobuttonItem[j].isSelected) {\n isSelected = true;\n break;\n }\n }\n if (!isSelected) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.name] = isSelected;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.name]);\n }\n }\n }\n else if (currentData.formFieldAnnotationType === 'Checkbox') {\n if (currentData.isChecked === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.name] = currentData.isChecked;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.name]);\n }\n }\n else if (currentData.formFieldAnnotationType === 'DropdownList' || currentData.formFieldAnnotationType === 'ListBox') {\n if (isNullOrUndefined(currentData.selectedIndex) || currentData.selectedIndex.length === 0) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.name] = currentData.selectedIndex;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.name]);\n }\n }\n else if (currentData.formFieldAnnotationType === 'SignatureField' || currentData.formFieldAnnotationType === 'InitialField') {\n if (currentData.value === null || currentData.value === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.name] = currentData.value;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.name]);\n }\n }\n }\n }\n return (JSON.stringify(formFieldsData));\n }\n else {\n return null;\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.loadedFormFieldValue = function (currentData) {\n var backgroundColor = this.hexToRgb(currentData.backgroundColor);\n var bounds = currentData.bounds;\n var backColor = currentData.backgroundColor ? { r: backgroundColor[0], g: backgroundColor[1], b: backgroundColor[2], a: backgroundColor[3] } : { r: 218, g: 234, b: 247, a: 100 };\n // // eslint-disable-next-line\n var fontColor = this.hexToRgb(currentData.color);\n var foreColor = currentData.color ? { r: fontColor[0], g: fontColor[1], b: fontColor[2], a: 100 } : { r: 0, g: 0, b: 0, a: 100 };\n var borderColor = this.hexToRgb(currentData.borderColor);\n var borderRGB = currentData.borderColor ? { r: borderColor[0], g: borderColor[1], b: borderColor[2], a: 100 } : { r: 48, g: 48, b: 48, a: 100 };\n var value;\n var options = [];\n var dropListoptions = [];\n var selectedIndex = [];\n var finalSignBounds;\n var signType = '';\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (!isNullOrUndefined(this.data)) {\n this.formFieldsData = JSON.parse(this.data);\n if ((currentData.type === 'DropdownList' || currentData.type === 'ListBox')) {\n var dropListData = this.formFieldsData.filter(function (fieldData) { return (currentData.name === fieldData.FieldName); });\n if (dropListData.length > 0) {\n dropListoptions = dropListData[0].TextList;\n selectedIndex.push(dropListData[0].selectedIndex);\n for (var i_2 = 0; i_2 < dropListoptions.length; i_2++) {\n options.push({ itemName: dropListoptions[i_2], itemValue: dropListoptions[i_2] });\n }\n }\n }\n if ((currentData.type === 'InitialField' || currentData.type === 'SignatureField')) {\n this.formFieldsData = JSON.parse(this.data);\n var signData_1 = this.formFieldsData.filter(function (signfieldName) { return (currentData.name === signfieldName.FieldName); });\n if (signData_1.length > 0) {\n var boundsData = this.formFieldsData.filter(function (datafieldName) { return (datafieldName.Name === 'ink' || datafieldName.Name === 'SignatureField' || datafieldName.Name === 'SignatureImage' || datafieldName.Name === 'SignatureText') && (signData_1[0].FieldName === datafieldName.FieldName.split(\"_\")[0]); });\n for (var i = 0; i < boundsData.length; i++) {\n if ((signData_1[0].FieldName !== boundsData[i].FieldName)) {\n value = boundsData[i].Value;\n currentData.fontFamily = boundsData[i].FontFamily;\n currentData.fontSize = boundsData[i].FontSize;\n if (!signData_1.Bounds) {\n var signBounds = boundsData[i].LineBounds;\n var currentLeft = void 0;\n var currentTop = void 0;\n var currentWidth = void 0;\n var currentHeight = void 0;\n var currentPage = parseFloat(boundsData[i].PageIndex);\n if (signBounds.x || signBounds.y || signBounds.width || signBounds.height) {\n currentLeft = signBounds.x;\n currentTop = signBounds.y;\n currentWidth = signBounds.width;\n currentHeight = signBounds.height;\n }\n else {\n currentLeft = this.pdfViewer.formFieldsModule.ConvertPointToPixel(signBounds.X);\n currentTop = this.pdfViewer.formFieldsModule.ConvertPointToPixel(signBounds.Y);\n currentWidth = this.pdfViewer.formFieldsModule.ConvertPointToPixel(signBounds.Width);\n currentHeight = this.pdfViewer.formFieldsModule.ConvertPointToPixel(signBounds.Height);\n }\n var bound = { left: currentLeft, top: currentTop, width: currentWidth, height: currentHeight };\n finalSignBounds = this.pdfViewer.formFieldsModule.updateSignatureBounds(bound, currentPage, false);\n }\n if (boundsData[i].Name === \"SignatureImage\") {\n signType = 'Image';\n }\n if (boundsData[i].Name === \"ink\") {\n signType = 'Path';\n }\n if (boundsData[i].Name === \"SignatureText\") {\n signType = 'Text';\n }\n if (signType === 'Path') {\n var collectionData = processPathData(boundsData[i].Value);\n var csData = splitArrayCollection(collectionData);\n value = JSON.stringify(csData);\n }\n break;\n }\n }\n }\n }\n }\n var fieldProperties = {\n lineBound: { X: bounds.x, Y: bounds.y, Width: bounds.width, Height: bounds.height },\n pageNumber: parseFloat(currentData.pageIndex) + 1, name: currentData.name, tooltip: currentData.tooltip,\n value: value ? value : currentData.value, radiobuttonItem: [],\n signatureType: currentData.signatureType ? currentData.signatureType : signType, id: currentData.id,\n insertSpaces: currentData.insertSpaces ? currentData.insertSpaces : false, isChecked: currentData.isChecked ? currentData.isChecked : false,\n isSelected: currentData.isSelected ? currentData.isSelected : false, fontFamily: currentData.fontFamily,\n fontStyle: currentData.fontStyle, backgroundColor: backColor, fontColor: foreColor, borderColor: borderRGB, thickness: currentData.thickness,\n fontSize: currentData.fontSize, isMultiline: currentData.isMultiline ? currentData.isMultiline : false, rotation: 0,\n isReadOnly: currentData.isReadOnly ? currentData.isReadOnly : false,\n isRequired: currentData.isRequired ? currentData.isRequired : false, textAlign: currentData.alignment, formFieldAnnotationType: currentData.type,\n zoomvalue: 1, option: options, maxLength: currentData.maxLength ? currentData.maxLength : 0,\n visibility: currentData.visibility, font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false }\n };\n if (finalSignBounds) {\n fieldProperties.signatureBound = finalSignBounds;\n }\n if (selectedIndex.length > 0) {\n fieldProperties.selectedIndex = selectedIndex;\n }\n if (currentData.type === 'RadioButton') {\n var field = {\n lineBound: { X: bounds.x, Y: bounds.y, Width: bounds.width, Height: bounds.height },\n pageNumber: parseFloat(currentData.pageIndex) + 1, name: currentData.name, tooltip: currentData.tooltip,\n value: currentData.value, signatureType: currentData.signatureType ? currentData.signatureType : '', id: currentData.id,\n isChecked: currentData.isChecked ? currentData.isChecked : false, isSelected: currentData.isSelected ? currentData.isSelected : false,\n fontFamily: currentData.fontFamily, fontStyle: currentData.fontStyle, backgroundColor: backColor,\n fontColor: foreColor, borderColor: borderRGB, thickness: currentData.thickness, fontSize: currentData.fontSize, rotation: 0,\n isReadOnly: currentData.isReadOnly ? currentData.isReadOnly : false, isRequired: currentData.isRequired ? currentData.isRequired : false,\n textAlign: currentData.alignment, formFieldAnnotationType: currentData.type, zoomvalue: 1,\n maxLength: currentData.maxLength ? currentData.maxLength : 0, visibility: currentData.visibility,\n font: { isItalic: false, isBold: false, isStrikeout: false, isUnderline: false }\n };\n fieldProperties.radiobuttonItem.push(field);\n }\n else {\n fieldProperties.radiobuttonItem = [];\n }\n return fieldProperties;\n };\n /**\n * @private\n */\n // eslint-disable-next-line max-len\n FormDesigner.prototype.createAnnotationLayer = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n this.updateAnnotationCanvas(canvas, pageWidth, pageHeight, pageNumber);\n return canvas;\n }\n else {\n // eslint-disable-next-line max-len\n var annotationCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_annotationCanvas_' + pageNumber, className: 'e-pv-annotation-canvas' });\n this.updateAnnotationCanvas(annotationCanvas, pageWidth, pageHeight, pageNumber);\n pageDiv.appendChild(annotationCanvas);\n return annotationCanvas;\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.resizeAnnotations = function (width, height, pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n this.pdfViewerBase.applyElementStyles(canvas, pageNumber);\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.getEventPageNumber = function (event) {\n var eventTarget = event.target;\n if (eventTarget.classList.contains('e-pv-hyperlink')) {\n eventTarget = eventTarget.parentElement;\n }\n else if (eventTarget.parentElement.classList.contains('foreign-object') || (eventTarget.parentElement.classList.contains('e-pv-radiobtn-container'))) {\n eventTarget = eventTarget.closest('.e-pv-text-layer');\n }\n // eslint-disable-next-line\n var pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];\n if (isNaN(pageString)) {\n event = this.pdfViewerBase.annotationEvent;\n if (event) {\n eventTarget = event.target;\n // eslint-disable-next-line\n pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];\n }\n }\n // eslint-disable-next-line\n return parseInt(pageString);\n };\n FormDesigner.prototype.getPropertyPanelHeaderContent = function (formFieldType) {\n switch (formFieldType) {\n case 'Textbox':\n return this.pdfViewer.localeObj.getConstant('Textbox');\n case 'PasswordField':\n return this.pdfViewer.localeObj.getConstant('Password');\n case 'Checkbox':\n return this.pdfViewer.localeObj.getConstant('Check Box');\n case 'RadioButton':\n return this.pdfViewer.localeObj.getConstant('Radio Button');\n case 'DropdownList':\n return this.pdfViewer.localeObj.getConstant('Dropdown');\n case 'ListBox':\n return this.pdfViewer.localeObj.getConstant('List Box');\n case 'InitialField':\n return this.pdfViewer.localeObj.getConstant('Initial');\n case 'SignatureField':\n return this.pdfViewer.localeObj.getConstant('Signature');\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.createPropertiesWindow = function () {\n var _this = this;\n var elementID = this.pdfViewer.element.id;\n var propertyWinMinHeight;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_properties_window', className: 'e-pv-properties-form-field-window' });\n var appearanceTab = this.createAppearanceTab();\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n if (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== 'DropdownList' && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== 'ListBox')\n propertyWinMinHeight = '430px';\n else\n propertyWinMinHeight = '505px';\n this.propertiesDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: '
    ' + this.getPropertyPanelHeaderContent(this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) + ' ' + this.pdfViewer.localeObj.getConstant('Properties') + '
    ',\n minHeight: propertyWinMinHeight, target: this.pdfViewer.element, content: appearanceTab, beforeOpen: function () {\n _this.isPropertyDialogOpen = true;\n }, allowDragging: true, close: function () {\n _this.destroyPropertiesWindow();\n _this.isPropertyDialogOpen = false;\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.propertiesDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }\n ];\n }\n else {\n this.propertiesDialog.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.propertiesDialog.enableRtl = true;\n }\n var propertySpliterBottom = createElement('div');\n propertySpliterBottom.className = 'e-pv-properties-bottom-spliter';\n dialogDiv.appendChild(propertySpliterBottom);\n this.propertiesDialog.appendTo(dialogDiv);\n };\n FormDesigner.prototype.onOkClicked = function (args) {\n var selectedItem = this.pdfViewer.selectedItems.formFields[0];\n var clonedItem = cloneObject(selectedItem);\n if (selectedItem) {\n switch (selectedItem.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n if (this.formFieldMultiline && this.formFieldMultiline.checked && selectedItem.formFieldAnnotationType === 'Textbox' && this.multilineCheckboxCheckedState) {\n this.renderMultilineText(selectedItem);\n }\n else if (selectedItem.formFieldAnnotationType === 'Textbox' && this.multilineCheckboxCheckedState) {\n this.renderTextbox(selectedItem);\n }\n if (selectedItem.formFieldAnnotationType === 'PasswordField') {\n this.updateTextboxFormDesignerProperties(selectedItem);\n }\n if (selectedItem.formFieldAnnotationType === 'Textbox') {\n var textboxCollection = this.checkTextboxName(selectedItem);\n if (textboxCollection && textboxCollection.length > 0) {\n for (var i = 0; i < textboxCollection.length; i++) {\n var item = textboxCollection[i];\n if (item.id === selectedItem.id) {\n if (selectedItem.isMultiline) {\n this.renderMultilineText(item);\n }\n else {\n this.renderTextbox(item);\n }\n document.getElementById(item.id + \"_content_html_element\") ? this.updateTextboxFormDesignerProperties(item) : this.updateFormFieldPropertiesInCollections(item);\n }\n }\n }\n }\n this.multilineCheckboxCheckedState = false;\n var point = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n break;\n case 'Checkbox':\n this.updateCheckboxFormDesignerProperties(selectedItem, false);\n var point1 = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point1, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n break;\n case 'RadioButton':\n this.updateRadioButtonDesignerProperties(selectedItem, false);\n var point2 = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point2, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n break;\n case 'SignatureField':\n case 'InitialField':\n this.updateSignatureTextboxProperties(selectedItem);\n var point3 = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point3, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n break;\n case 'DropdownList':\n this.updateDropdownFormDesignerProperties(selectedItem);\n var point4 = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point4, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n break;\n case 'ListBox':\n this.updateListBoxFormDesignerProperties(selectedItem);\n var point5 = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point5, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n break;\n }\n this.updateFormFieldCollections(selectedItem);\n var cloneChangedNode = cloneObject(selectedItem);\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(this.pdfViewerBase.currentPageNumber, null, selectedItem, 'FormDesigner Properties Change', '', clonedItem, cloneChangedNode);\n }\n }\n this.propertiesDialog.hide();\n };\n /**\n * Update the form fields properties to the collection while rendering the page\n */\n FormDesigner.prototype.updateFormFieldPropertiesInCollections = function (item) {\n var formFieldCollection = this.pdfViewer.formFieldCollections;\n for (var i = 0; i < formFieldCollection.length; i++) {\n var currentData = formFieldCollection[i];\n if (currentData.id === item.id && currentData.name === item.name) {\n this.formFieldName && this.formFieldName.value ? currentData.name = this.formFieldName.value : null;\n this.formFieldValue && (item.value !== this.formFieldValue.value) ? currentData.value = this.formFieldValue.value : null;\n this.formFieldAlign && (item.alignment !== this.formFieldAlign) ? currentData.alignment = this.formFieldAlign : null;\n this.formFieldPrinting && (item.isPrint !== this.formFieldPrinting.checked) ? currentData.isPrint = this.formFieldPrinting.checked : null;\n this.formFieldTooltip && (item.tooltip !== this.formFieldTooltip.value) ? currentData.tooltip = this.formFieldTooltip.value : null;\n this.formFieldVisibility && (item.visibility !== this.formFieldVisibility.value) ? currentData.visibility = this.formFieldVisibility : null;\n this.formFieldFontFamily && this.formFieldFontFamily.value ? currentData.fontFamily = this.formFieldFontFamily.value : null;\n this.formFieldFontSize && this.formFieldFontSize.value ? currentData.fontSize = parseInt(this.formFieldFontSize.value.toString()) : null;\n this.fontColorValue && (item.color !== this.fontColorValue) ? currentData.color = this.fontColorValue : null;\n this.backgroundColorValue && (item.backgroundColor !== this.backgroundColorValue) ? currentData.backgroundColor = this.backgroundColorValue : null;\n this.borderColorValue && (item.borderColor !== this.borderColorValue) ? currentData.borderColor = this.borderColorValue : null;\n this.formFieldBorderWidth && item.thickness !== parseInt(this.formFieldBorderWidth) ? currentData.thickness = parseInt(this.formFieldBorderWidth) : null;\n this.formFieldReadOnly && (item.isReadonly !== this.formFieldReadOnly.checked) ? currentData.isReadOnly = this.formFieldReadOnly.checked : null;\n this.formFieldRequired && (item.isRequired !== this.formFieldRequired.checked) ? currentData.isRequired = this.formFieldRequired.checked : null;\n i !== 0 && i < this.pdfViewer.formFieldCollection.length ? currentData.fontStyle = this.pdfViewer.formFieldCollection[i - 1].fontStyle : currentData.fontStyle = this.pdfViewer.formFieldCollection[i + 1].fontStyle;\n var formFieldIndex = this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === item.id; });\n this.pdfViewer.formFieldCollections[formFieldIndex] = currentData;\n }\n }\n };\n FormDesigner.prototype.checkTextboxName = function (selectedItem) {\n var textboxObjectCollection = [];\n for (var i = 0; i < this.pdfViewer.formFieldCollection.length; i++) {\n var item = this.pdfViewer.formFieldCollection[i];\n if (item.name === selectedItem.name && item.formFieldAnnotationType === 'Textbox') {\n textboxObjectCollection.push(item);\n }\n }\n return textboxObjectCollection;\n };\n FormDesigner.prototype.renderMultilineText = function (selectedItem, isUndoRedo) {\n if (isUndoRedo) {\n this.reRenderMultilineTextbox(selectedItem, \"e-pv-formfield-input\");\n }\n else {\n this.addMultilineTextbox(selectedItem, \"e-pv-formfield-input\", true);\n }\n };\n FormDesigner.prototype.renderTextbox = function (selectedItem, isUndoRedo) {\n if (isUndoRedo) {\n this.reRenderMultilineTextbox(selectedItem, \"e-pv-formfield-textarea\");\n }\n else {\n this.addMultilineTextbox(selectedItem, \"e-pv-formfield-textarea\", false);\n }\n };\n FormDesigner.prototype.addMultilineTextbox = function (selectedItem, className, isMultiline) {\n var wrapperElement = selectedItem.wrapper.children[0];\n selectedItem.isMultiline = isMultiline;\n if (document.getElementById(wrapperElement.id + '_html_element')) {\n var htmlElement = document.getElementById(wrapperElement.id + '_html_element').children[0];\n var textAreaId = htmlElement.children[0].id;\n document.getElementById(htmlElement.children[0].id).remove();\n if (className.indexOf(\"e-pv-formfield-textarea\") !== -1) {\n var inputElement = this.createTextboxElement(textAreaId);\n wrapperElement.template = htmlElement.appendChild(inputElement);\n }\n else {\n var textArea = this.createTextAreaElement(textAreaId);\n wrapperElement.template = htmlElement.appendChild(textArea);\n }\n var index = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n this.pdfViewerBase.formFieldCollection[index].FormField.isMultiline = selectedItem.isMultiline;\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isMultiline = selectedItem.isMultiline;\n }\n };\n FormDesigner.prototype.reRenderMultilineTextbox = function (selectedItem, className) {\n var wrapperElement = document.getElementById(selectedItem.id + \"_content_html_element\");\n if (wrapperElement) {\n var textareaElement = wrapperElement.firstElementChild.firstElementChild;\n var textareaId = textareaElement.id;\n textareaElement.remove();\n if (className.indexOf('e-pv-formfield-textarea') !== -1) {\n var textboxElement = this.createTextboxElement(textareaId);\n wrapperElement.firstElementChild.appendChild(textboxElement);\n }\n else {\n var textboxElement = this.createTextAreaElement(textareaId);\n wrapperElement.firstElementChild.appendChild(textboxElement);\n }\n }\n };\n FormDesigner.prototype.createTextAreaElement = function (id) {\n var textArea = createElement('textarea');\n textArea.id = id;\n textArea.className = 'e-pv-formfield-textarea';\n textArea.style.width = '100%';\n textArea.style.height = '100%';\n textArea.style.borderStyle = \"solid\";\n textArea.addEventListener('click', this.inputElementClick.bind(this));\n textArea.addEventListener('change', this.getTextboxValue.bind(this));\n return textArea;\n };\n FormDesigner.prototype.createTextboxElement = function (id) {\n var inputElement = createElement('input');\n inputElement.id = id;\n inputElement.type = \"text\";\n inputElement.className = \"e-pv-formfield-input\";\n inputElement.autocomplete = \"off\";\n inputElement.style.width = '100%';\n inputElement.style.height = '100%';\n inputElement.style.position = \"absolute\";\n inputElement.style.borderStyle = \"solid\";\n inputElement.addEventListener('click', this.inputElementClick.bind(this));\n inputElement.addEventListener('change', this.getTextboxValue.bind(this));\n inputElement.addEventListener('focus', this.focusFormFields.bind(this));\n inputElement.addEventListener('blur', this.blurFormFields.bind(this));\n return inputElement;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateFormFieldCollections = function (formFieldObject) {\n var formField = {\n id: formFieldObject.id.split('_')[0], name: formFieldObject.name, value: formFieldObject.value,\n type: formFieldObject.type ? formFieldObject.type : formFieldObject.formFieldAnnotationType, isReadOnly: formFieldObject.isReadonly, fontFamily: formFieldObject.fontFamily, isMultiline: formFieldObject.isMultiline,\n fontSize: formFieldObject.fontSize, fontStyle: formFieldObject.fontStyle, color: formFieldObject.color ? formFieldObject.color : this.getRgbToHex(formFieldObject.fontColor), backgroundColor: typeof formFieldObject.backgroundColor === 'string' ? formFieldObject.backgroundColor : this.getRgbToHex(formFieldObject.backgroundColor),\n alignment: formFieldObject.alignment ? formFieldObject.alignment : formFieldObject.textAlign, visibility: formFieldObject.visibility, maxLength: formFieldObject.maxLength, isRequired: formFieldObject.isRequired,\n isPrint: formFieldObject.isPrint, isSelected: formFieldObject.isSelected, isChecked: formFieldObject.isChecked, tooltip: formFieldObject.tooltip, bounds: formFieldObject.bounds ? formFieldObject.bounds : formFieldObject.lineBound, thickness: formFieldObject.thickness, borderColor: typeof formFieldObject.borderColor === 'string' ? formFieldObject.borderColor : this.getRgbToHex(formFieldObject.borderColor), pageIndex: !isNullOrUndefined(formFieldObject.pageNumber) ? formFieldObject.pageNumber - 1 : formFieldObject.pageIndex\n };\n this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === formField.id; })] = formField;\n };\n /**\n * Get the Hex value from the RGB value.\n */\n FormDesigner.prototype.getRgbToHex = function (color) {\n return ('#' + this.hex(color.r) + this.hex(color.g) + this.hex(color.b));\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateDropdownFormDesignerProperties = function (selectedItem, isUndoRedo) {\n var dropdownElement = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (this.pdfViewer.designerMode || isUndoRedo) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index_1 = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n selectedItem.options = this.createDropdownDataSource(selectedItem);\n this.updateDropDownListDataSource(selectedItem, dropdownElement);\n selectedItem.selectedIndex = [];\n if (index_1 > -1) {\n formFieldsData[index_1].FormField.option = selectedItem.options;\n this.pdfViewerBase.formFieldCollection[index_1].FormField.option = selectedItem.options;\n if (!isNullOrUndefined(selectedItem.options) && selectedItem.options.length > 0) {\n formFieldsData[index_1] && formFieldsData[index_1].FormField.value ? selectedItem.selectedIndex.push(selectedItem.options.findIndex(function (x) { return x.itemValue === formFieldsData[index_1].FormField.value; })) : selectedItem.selectedIndex.push(0);\n }\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].options = selectedItem.options;\n if ((this.formFieldName && this.formFieldName.value) || isUndoRedo) {\n this.updateNamePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.formFieldValue && formFieldsData[index_1] && formFieldsData[index_1].FormField.value || isUndoRedo) {\n this.updateValuePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.formFieldPrinting || isUndoRedo) {\n this.updateIsPrintPropertyChange(selectedItem, isUndoRedo, index_1, formFieldsData);\n }\n if ((this.formFieldTooltip) || isUndoRedo) {\n this.updateTooltipPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.formFieldVisibility || isUndoRedo) {\n this.updateVisibilityPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if ((this.formFieldFontFamily && this.formFieldFontFamily.value) || isUndoRedo) {\n this.updateFontFamilyPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if ((this.formFieldFontSize && this.formFieldFontSize.value) || isUndoRedo) {\n this.updateFontSizePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n this.updateFontStylePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n if (this.formFieldAlign || isUndoRedo) {\n this.updateAlignmentPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.fontColorValue || isUndoRedo) {\n this.updateColorPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.backgroundColorValue || isUndoRedo) {\n this.updateBackgroundColorPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.borderColorValue || isUndoRedo) {\n this.updateBorderColorPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (!isNullOrUndefined(this.formFieldBorderWidth) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.formFieldReadOnly || isUndoRedo) {\n this.updateIsReadOnlyPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n if (this.formFieldRequired || isUndoRedo) {\n this.updateIsRequiredPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_1, formFieldsData);\n }\n }\n if (isUndoRedo)\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateListBoxFormDesignerProperties = function (selectedItem, isUndoRedo) {\n var dropdownElement = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.firstElementChild;\n if (this.pdfViewer.designerMode || isUndoRedo) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index_2 = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n selectedItem.options = this.createDropdownDataSource(selectedItem);\n this.updateDropDownListDataSource(selectedItem, dropdownElement);\n selectedItem.selectedIndex = [];\n if (index_2 > -1) {\n formFieldsData[index_2].FormField.option = selectedItem.options;\n this.pdfViewerBase.formFieldCollection[index_2].FormField.option = selectedItem.options;\n if (!isNullOrUndefined(selectedItem.options) && selectedItem.options.length > 0) {\n formFieldsData[index_2] && formFieldsData[index_2].FormField.value ? selectedItem.selectedIndex.push(selectedItem.options.findIndex(function (x) { return x.itemValue === formFieldsData[index_2].FormField.value; })) : selectedItem.selectedIndex.push(0);\n }\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].options = selectedItem.options;\n if ((this.formFieldName && this.formFieldName.value) || isUndoRedo) {\n this.updateNamePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.formFieldPrinting || isUndoRedo) {\n this.updateIsPrintPropertyChange(selectedItem, isUndoRedo, index_2, formFieldsData);\n }\n if ((this.formFieldTooltip) || isUndoRedo) {\n this.updateTooltipPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.formFieldVisibility || isUndoRedo) {\n this.updateVisibilityPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if ((this.formFieldFontFamily && this.formFieldFontFamily.value) || isUndoRedo) {\n this.updateFontFamilyPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if ((this.formFieldFontSize && this.formFieldFontSize.value) || isUndoRedo) {\n this.updateFontSizePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n this.updateFontStylePropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n if (this.formFieldAlign || isUndoRedo) {\n this.updateAlignmentPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.fontColorValue || isUndoRedo) {\n this.updateColorPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.backgroundColorValue || isUndoRedo) {\n this.updateBackgroundColorPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.borderColorValue || isUndoRedo) {\n this.updateBorderColorPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (!isNullOrUndefined(this.formFieldBorderWidth) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.formFieldReadOnly || isUndoRedo) {\n this.updateIsReadOnlyPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n if (this.formFieldRequired || isUndoRedo) {\n this.updateIsRequiredPropertyChange(selectedItem, dropdownElement, isUndoRedo, index_2, formFieldsData);\n }\n }\n if (isUndoRedo)\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n };\n FormDesigner.prototype.updateDropDownListDataSource = function (selectedItem, dropdownElement) {\n while (dropdownElement.firstChild) {\n dropdownElement.firstChild.remove();\n }\n for (var j = 0; j < selectedItem.options.length; j++) {\n var option = document.createElement(\"option\");\n option.className = \"e-pv-formfield-dropdown\";\n option.value = selectedItem.options[j].itemValue;\n option.text = selectedItem.options[j].itemName;\n dropdownElement.appendChild(option);\n }\n };\n FormDesigner.prototype.createDropdownDataSource = function (selectedItem) {\n var ulItem = document.getElementById(this.pdfViewer.element.id + '_ul_list_item');\n this.formFieldListItemDataSource = [];\n if (ulItem && ulItem.children && ulItem.children.length > 0) {\n for (var i = 0; i < ulItem.children.length; i++) {\n var liItem = ulItem.children[i];\n this.formFieldListItemDataSource.push({ itemName: liItem.innerHTML, itemValue: liItem.innerHTML });\n }\n }\n else if (selectedItem && selectedItem.options.length > 0) {\n this.formFieldListItemDataSource = selectedItem.options;\n }\n return this.formFieldListItemDataSource;\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateSignatureTextboxProperties = function (selectedItem, isUndoRedo) {\n var inputElement = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.firstElementChild;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n if (this.pdfViewer.designerMode || isUndoRedo) {\n if ((this.formFieldName && this.formFieldName.value) || isUndoRedo) {\n this.updateNamePropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldPrinting || isUndoRedo) {\n this.updateIsPrintPropertyChange(selectedItem, isUndoRedo, index, formFieldsData);\n }\n if ((this.formFieldTooltip) || isUndoRedo) {\n this.updateTooltipPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (!isNullOrUndefined(this.formFieldBorderWidth) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldVisibility || isUndoRedo) {\n this.updateVisibilityPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldReadOnly || isUndoRedo) {\n this.updateIsReadOnlyPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldRequired || isUndoRedo) {\n this.updateIsRequiredPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n }\n if (isUndoRedo)\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateCheckboxFormDesignerProperties = function (selectedItem, updateValue, isUndoRedo) {\n var checkBoxElement = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.firstElementChild.lastElementChild;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n if ((this.formFieldName && this.formFieldName.value) || isUndoRedo) {\n this.updateNamePropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldValue || isUndoRedo) {\n this.updateValuePropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData, updateValue);\n }\n if (this.backgroundColorValue || isUndoRedo) {\n this.updateBackgroundColorPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.borderColorValue || isUndoRedo) {\n this.updateBorderColorPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (!isNullOrUndefined(this.formFieldBorderWidth) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldChecked) {\n this.checkboxCheckedState = this.formFieldChecked.checked;\n }\n if (this.formFieldPrinting || isUndoRedo) {\n this.updateIsPrintPropertyChange(selectedItem, isUndoRedo, index, formFieldsData);\n }\n if ((this.formFieldTooltip) || isUndoRedo) {\n this.updateTooltipPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldVisibility || isUndoRedo) {\n this.updateVisibilityPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.checkboxCheckedState != undefined || isUndoRedo) {\n this.updateIsCheckedPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if ((this.pdfViewer.designerMode && this.borderColorValue) || isUndoRedo) {\n this.updateBorderColorPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if ((this.pdfViewer.designerMode && this.formFieldBorderWidth) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldReadOnly || isUndoRedo) {\n this.updateIsReadOnlyPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldRequired || isUndoRedo) {\n this.updateIsRequiredPropertyChange(selectedItem, checkBoxElement, isUndoRedo, index, formFieldsData);\n }\n if (isUndoRedo)\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateRadioButtonDesignerProperties = function (selectedItem, updateValue, isUndoRedo) {\n var radioButton = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.firstElementChild.firstElementChild;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n if ((this.formFieldName && this.formFieldName.value) || isUndoRedo) {\n this.updateNamePropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldValue || isUndoRedo) {\n this.updateValuePropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData, updateValue);\n }\n if (this.formFieldChecked) {\n this.checkboxCheckedState = this.formFieldChecked.checked;\n }\n if (this.formFieldPrinting || isUndoRedo) {\n this.updateIsPrintPropertyChange(selectedItem, isUndoRedo, index, formFieldsData);\n }\n if ((this.formFieldTooltip) || isUndoRedo) {\n this.updateTooltipPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldVisibility || isUndoRedo) {\n this.updateVisibilityPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if ((this.pdfViewer.designerMode && !isNullOrUndefined(this.formFieldBorderWidth)) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.backgroundColorValue || isUndoRedo) {\n this.updateBackgroundColorPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.borderColorValue || isUndoRedo) {\n this.updateBorderColorPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.checkboxCheckedState != undefined || isUndoRedo) {\n this.updateIsSelectedPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldReadOnly || isUndoRedo) {\n this.updateIsReadOnlyPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldRequired || isUndoRedo) {\n this.updateIsRequiredPropertyChange(selectedItem, radioButton, isUndoRedo, index, formFieldsData);\n }\n if (isUndoRedo) {\n var formField = this.pdfViewer.nameTable[selectedItem.id.split('_')[0]];\n var point2 = cornersPointsBeforeRotation(formField.wrapper.children[0]).topLeft;\n this.updateFormDesignerFieldInSessionStorage(point2, formField.wrapper.children[0], formField.formFieldAnnotationType, formField);\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateTextboxFormDesignerProperties = function (selectedItem, isUndoRedo) {\n var inputElement = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.firstElementChild;\n var isMaxLengthChanged = false;\n var oldValue, newValue;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n var index = this.getFormFiledIndex(selectedItem.id.split('_')[0]);\n if (this.pdfViewer.designerMode || isUndoRedo) {\n if ((this.formFieldName && this.formFieldName.value) || isUndoRedo) {\n this.updateNamePropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldValue || isUndoRedo) {\n this.updateValuePropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldPrinting || isUndoRedo) {\n this.updateIsPrintPropertyChange(selectedItem, isUndoRedo, index, formFieldsData);\n }\n if ((this.formFieldTooltip) || isUndoRedo) {\n this.updateTooltipPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldVisibility || isUndoRedo) {\n this.updateVisibilityPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if ((this.formFieldFontFamily && this.formFieldFontFamily.value) || isUndoRedo) {\n this.updateFontFamilyPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if ((this.formFieldFontSize && this.formFieldFontSize.value) || isUndoRedo) {\n this.updateFontSizePropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n this.updateFontStylePropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n if (this.formFieldAlign || isUndoRedo || this.multilineCheckboxCheckedState) {\n this.updateAlignmentPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.maxLengthItem || isUndoRedo) {\n if (this.maxLengthItem && (selectedItem.maxLength !== this.maxLengthItem.value)) {\n isMaxLengthChanged = true;\n oldValue = selectedItem.maxLength;\n newValue = this.maxLengthItem.value;\n }\n var maxLength = this.maxLengthItem.value === 0 ? 524288 : this.maxLengthItem.value;\n if (isUndoRedo && selectedItem.maxLength !== 0) {\n inputElement.maxLength = selectedItem.maxLength;\n }\n else {\n inputElement.maxLength = maxLength;\n selectedItem.maxLength = this.maxLengthItem.value;\n }\n if (index > -1) {\n formFieldsData[index].FormField.maxLength = selectedItem.maxLength;\n this.pdfViewerBase.formFieldCollection[index].FormField.maxLength = selectedItem.maxLength;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].maxLength = selectedItem.maxLength;\n if (isMaxLengthChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, false, false, isMaxLengthChanged, false, false, false, oldValue, newValue);\n }\n }\n if (this.fontColorValue || isUndoRedo || this.multilineCheckboxCheckedState) {\n this.updateColorPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.backgroundColorValue || isUndoRedo || this.multilineCheckboxCheckedState) {\n this.updateBackgroundColorPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.borderColorValue || isUndoRedo || this.multilineCheckboxCheckedState) {\n this.updateBorderColorPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (!isNullOrUndefined(this.formFieldBorderWidth) || isUndoRedo) {\n this.updateBorderThicknessPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldReadOnly || isUndoRedo) {\n this.updateIsReadOnlyPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n if (this.formFieldRequired || isUndoRedo) {\n this.updateIsRequiredPropertyChange(selectedItem, inputElement, isUndoRedo, index, formFieldsData);\n }\n }\n if (!this.pdfViewer.designerMode) {\n if (this.formFieldVisibility && this.formFieldVisibility.value) {\n selectedItem.visibility = this.formFieldVisibility.value;\n var visibleItem = document.getElementById(selectedItem.id + '_content_html_element').firstElementChild.firstElementChild;\n visibleItem.style.visibility = selectedItem.visibility;\n }\n }\n this.updateFormFieldCollections(selectedItem);\n if (isUndoRedo)\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateIsCheckedPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n if (this.pdfViewer.designerMode || isUndoRedo) {\n var isValueChanged = false;\n var oldValue = void 0, newValue = void 0;\n if (selectedItem.isChecked !== this.checkboxCheckedState) {\n isValueChanged = true;\n oldValue = selectedItem.isChecked;\n newValue = this.checkboxCheckedState;\n }\n if (!isUndoRedo) {\n selectedItem.isChecked = this.checkboxCheckedState;\n }\n if (index > -1) {\n formFieldsData[index].FormField.isChecked = selectedItem.isChecked;\n this.pdfViewerBase.formFieldCollection[index].FormField.isChecked = selectedItem.isChecked;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isChecked = selectedItem.isChecked;\n if (isValueChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, isValueChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (!this.pdfViewer.designerMode || isUndoRedo) {\n var checkboxElement = document.getElementById(selectedItem.id + \"_input\").firstElementChild;\n if (selectedItem.isChecked) {\n if (checkboxElement.classList.contains('e-pv-cb-unchecked'))\n checkboxElement.classList.remove('e-pv-cb-unchecked');\n checkboxElement.classList.add(\"e-pv-cb-checked\");\n }\n else {\n if (checkboxElement.classList.contains('e-pv-cb-checked'))\n checkboxElement.classList.remove('e-pv-cb-checked');\n checkboxElement.classList.add(\"e-pv-cb-unchecked\");\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateIsSelectedPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n if (this.pdfViewer.designerMode || isUndoRedo) {\n var isValueChanged = false;\n var oldValue = void 0, newValue = void 0;\n if (selectedItem.isSelected !== this.checkboxCheckedState) {\n isValueChanged = true;\n oldValue = selectedItem.isSelected;\n newValue = this.checkboxCheckedState;\n }\n if (!isUndoRedo) {\n selectedItem.isSelected = this.checkboxCheckedState;\n }\n if (index > -1) {\n formFieldsData[index].FormField.isSelected = selectedItem.isSelected;\n this.pdfViewerBase.formFieldCollection[index].FormField.isSelected = selectedItem.isSelected;\n for (var i = 0; i < formFieldsData[index].FormField.radiobuttonItem.length; i++) {\n if (formFieldsData[index].FormField.radiobuttonItem[i].id.split(\"_\")[0] === selectedItem.id.split(\"_\")[0]) {\n formFieldsData[index].FormField.radiobuttonItem[i].isSelected = selectedItem.isSelected;\n this.pdfViewerBase.formFieldCollection[index].FormField.radiobuttonItem[i].isSelected = selectedItem.isSelected;\n }\n }\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isSelected = selectedItem.isSelected;\n if (isValueChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, isValueChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n }\n if (!this.pdfViewer.designerMode || isUndoRedo) {\n element.checked = selectedItem.isSelected;\n if (index > -1) {\n formFieldsData[index].FormField.isSelected = selectedItem.isSelected;\n this.pdfViewerBase.formFieldCollection[index].FormField.isSelected = selectedItem.isSelected;\n for (var i = 0; i < formFieldsData[index].FormField.radiobuttonItem.length; i++) {\n if (formFieldsData[index].FormField.radiobuttonItem[i].id.split(\"_\")[0] === selectedItem.id.split(\"_\")[0]) {\n formFieldsData[index].FormField.radiobuttonItem[i].isSelected = selectedItem.isSelected;\n this.pdfViewerBase.formFieldCollection[index].FormField.radiobuttonItem[i].isSelected = selectedItem.isSelected;\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isSelected = selectedItem.isSelected;\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateValuePropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData, updateValue) {\n var isValueChanged = false;\n var oldValue, newValue;\n if (selectedItem.formFieldAnnotationType !== \"DropdownList\" && this.formFieldValue && (selectedItem.value !== this.formFieldValue.value)) {\n isValueChanged = true;\n oldValue = selectedItem.value;\n newValue = this.formFieldValue.value;\n }\n else if (selectedItem.formFieldAnnotationType === \"DropdownList\" && this.formFieldValue && (selectedItem.value !== formFieldsData[index].FormField.value)) {\n isValueChanged = true;\n oldValue = selectedItem.value;\n newValue = formFieldsData[index].FormField.value;\n }\n if (isUndoRedo) {\n element.value = selectedItem.value;\n }\n else {\n if (updateValue) {\n isValueChanged = false;\n }\n else {\n selectedItem.formFieldAnnotationType === \"DropdownList\" ? selectedItem.value = formFieldsData[index].FormField.value : selectedItem.value = this.formFieldValue.value;\n selectedItem.formFieldAnnotationType === \"DropdownList\" ? element.value = formFieldsData[index].FormField.value : element.value = this.formFieldValue.value;\n }\n }\n if (index > -1) {\n formFieldsData[index].FormField.value = selectedItem.value;\n this.pdfViewerBase.formFieldCollection[index].FormField.value = selectedItem.value;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].value = selectedItem.value;\n if (isValueChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, isValueChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateFontStylePropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isFontStyleChanged = false;\n var oldValue = '';\n var newValue = '';\n var result = this.updateFontStyle(element, selectedItem, isUndoRedo, index, formFieldsData);\n isFontStyleChanged = result[0];\n oldValue = result[1];\n newValue = result[2];\n if (index > -1) {\n formFieldsData[index].FormField.fontStyle = selectedItem.fontStyle;\n this.pdfViewerBase.formFieldCollection[index].FormField.fontStyle = selectedItem.fontStyle;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].fontStyle = selectedItem.fontStyle;\n if (isFontStyleChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, isFontStyleChanged, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateBorderThicknessPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isBorderWidthChanged = false;\n var oldValue, newValue;\n var borderWidth = parseInt(this.formFieldBorderWidth);\n if (selectedItem.thickness !== borderWidth) {\n isBorderWidthChanged = true;\n oldValue = selectedItem.thickness;\n newValue = borderWidth ? borderWidth : selectedItem.thickness;\n }\n if (isUndoRedo) {\n element.style.borderWidth = selectedItem.thickness.toString();\n }\n else {\n element.style.borderWidth = this.formFieldBorderWidth ? this.formFieldBorderWidth + \"px\" : selectedItem.thickness + \"px\";\n selectedItem.thickness = borderWidth;\n }\n if (index > -1) {\n formFieldsData[index].FormField.thickness = selectedItem.thickness;\n this.pdfViewerBase.formFieldCollection[index].FormField.thickness = selectedItem.thickness;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].thickness = selectedItem.thickness;\n if (isBorderWidthChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, isBorderWidthChanged, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateBorderColorPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isBorderColorChanged = false;\n var oldValue, newValue;\n if (selectedItem.borderColor !== this.borderColorValue) {\n isBorderColorChanged = true;\n oldValue = selectedItem.borderColor;\n newValue = this.borderColorValue ? this.borderColorValue : selectedItem.borderColor;\n }\n if (isUndoRedo) {\n element.style.borderColor = selectedItem.borderColor;\n }\n else {\n element.style.borderColor = this.borderColorValue ? this.borderColorValue : selectedItem.borderColor;\n selectedItem.borderColor = this.borderColorValue ? this.borderColorValue : selectedItem.borderColor;\n }\n if (selectedItem.formFieldAnnotationType == \"RadioButton\")\n element.parentElement.style.boxShadow = this.borderColorValue + ' 0px 0px 0px ' + selectedItem.thickness + 'px';\n if (index > -1) {\n formFieldsData[index].FormField.borderColor = this.getRgbCode(selectedItem.borderColor);\n this.pdfViewerBase.formFieldCollection[index].FormField.borderColor = this.getRgbCode(selectedItem.borderColor);\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].borderColor = selectedItem.borderColor;\n if (isBorderColorChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, isBorderColorChanged, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateBackgroundColorPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isBackgroundColorChanged = false;\n var oldValue, newValue;\n if (selectedItem.backgroundColor !== this.backgroundColorValue) {\n isBackgroundColorChanged = true;\n oldValue = selectedItem.backgroundColor;\n newValue = this.backgroundColorValue ? this.backgroundColorValue : selectedItem.backgroundColor;\n }\n if (isUndoRedo) {\n if (selectedItem.formFieldAnnotationType == \"RadioButton\")\n element.parentElement.style.background = selectedItem.backgroundColor;\n else\n element.style.background = selectedItem.backgroundColor;\n }\n else {\n if (selectedItem.formFieldAnnotationType == \"RadioButton\")\n element.parentElement.style.background = this.backgroundColorValue ? this.backgroundColorValue : selectedItem.backgroundColor;\n else\n element.style.background = this.backgroundColorValue ? this.backgroundColorValue : selectedItem.backgroundColor;\n selectedItem.backgroundColor = this.backgroundColorValue ? this.backgroundColorValue : selectedItem.backgroundColor;\n }\n if (index > -1) {\n formFieldsData[index].FormField.backgroundColor = this.getRgbCode(selectedItem.backgroundColor);\n this.pdfViewerBase.formFieldCollection[index].FormField.backgroundColor = this.getRgbCode(selectedItem.backgroundColor);\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].backgroundColor = selectedItem.backgroundColor;\n if (isBackgroundColorChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, isBackgroundColorChanged, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateColorPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isColorChanged = false;\n var oldValue, newValue;\n if (selectedItem.color !== this.fontColorValue) {\n isColorChanged = true;\n oldValue = selectedItem.color;\n newValue = this.fontColorValue ? this.fontColorValue : selectedItem.color;\n }\n if (isUndoRedo) {\n element.style.color = selectedItem.color;\n }\n else {\n element.style.color = this.fontColorValue ? this.fontColorValue : selectedItem.color;\n selectedItem.color = this.fontColorValue ? this.fontColorValue : selectedItem.color;\n }\n if (index > -1) {\n formFieldsData[index].FormField.color = this.getRgbCode(selectedItem.color);\n this.pdfViewerBase.formFieldCollection[index].FormField.color = this.getRgbCode(selectedItem.color);\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].color = selectedItem.color;\n if (isColorChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, isColorChanged, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateAlignmentPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isAlignmentChanged = false;\n var oldValue, newValue;\n if (selectedItem.alignment !== this.formFieldAlign) {\n isAlignmentChanged = true;\n oldValue = selectedItem.alignment;\n newValue = this.formFieldAlign ? this.formFieldAlign : selectedItem.alignment;\n }\n if (isUndoRedo) {\n element.style.textAlign = selectedItem.alignment;\n if ((selectedItem.formFieldAnnotationType == \"ListBox\" || selectedItem.formFieldAnnotationType == \"DropdownList\") && element.children.length > 0) {\n element.style.textAlignLast = selectedItem.alignment;\n for (var i = 0; i < element.children.length; i++) {\n var dropDownChild = element.children[i];\n dropDownChild.style.textAlignLast = selectedItem.alignment;\n dropDownChild.style.textAlign = selectedItem.alignment;\n }\n }\n }\n else {\n element.style.textAlign = this.formFieldAlign ? this.formFieldAlign : selectedItem.alignment;\n selectedItem.alignment = this.formFieldAlign ? this.formFieldAlign : selectedItem.alignment;\n if ((selectedItem.formFieldAnnotationType == \"ListBox\" || selectedItem.formFieldAnnotationType == \"DropdownList\") && element.children.length > 0) {\n element.style.textAlignLast = this.formFieldAlign ? this.formFieldAlign : selectedItem.alignment;\n for (var i = 0; i < element.children.length; i++) {\n var dropDownChild = element.children[i];\n dropDownChild.style.textAlignLast = this.formFieldAlign ? this.formFieldAlign : selectedItem.alignment;\n dropDownChild.style.textAlign = this.formFieldAlign ? this.formFieldAlign : selectedItem.alignment;\n }\n }\n }\n if (index > -1) {\n formFieldsData[index].FormField.alignment = selectedItem.alignment;\n this.pdfViewerBase.formFieldCollection[index].FormField.alignment = selectedItem.alignment;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].alignment = selectedItem.alignment;\n if (isAlignmentChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, isAlignmentChanged, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateFontSizePropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isFontSizeChanged = false;\n var oldValue, newValue;\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n var fontSize = this.formFieldFontSize ? parseInt(this.formFieldFontSize.value.toString()) : null;\n var selectedFontSize = parseInt(selectedItem.fontSize);\n if (selectedFontSize !== fontSize) {\n isFontSizeChanged = true;\n oldValue = selectedItem.fontSize;\n newValue = fontSize;\n }\n if (isUndoRedo) {\n element.style.fontSize = (selectedItem.fontSize * zoomValue) + 'px'.toString();\n }\n else {\n selectedItem.fontSize = fontSize;\n element.style.fontSize = parseInt(this.formFieldFontSize.value.toString()) * zoomValue + 'px';\n }\n if (index > -1) {\n formFieldsData[index].FormField.fontSize = selectedItem.fontSize;\n this.pdfViewerBase.formFieldCollection[index].FormField.fontSize = selectedItem.fontSize;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].fontSize = selectedItem.fontSize;\n if (isFontSizeChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, isFontSizeChanged, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateFontFamilyPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isFontFamilyChanged = false;\n var oldValue, newValue;\n var fontFamily = this.formFieldFontFamily ? this.formFieldFontFamily.value.toString() : \"\";\n if (selectedItem.fontFamily !== fontFamily) {\n isFontFamilyChanged = true;\n oldValue = selectedItem.fontFamily;\n newValue = fontFamily;\n }\n if (isUndoRedo) {\n element.style.fontFamily = selectedItem.fontFamily;\n }\n else {\n selectedItem.fontFamily = fontFamily;\n element.style.fontFamily = fontFamily;\n }\n if (index > -1) {\n formFieldsData[index].FormField.fontFamily = selectedItem.fontFamily;\n this.pdfViewerBase.formFieldCollection[index].FormField.fontFamily = selectedItem.fontFamily;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].fontFamily = selectedItem.fontFamily;\n if (isFontFamilyChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, isFontFamilyChanged, false, false, false, false, false, false, false, false, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateVisibilityPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isVisibilityChanged = false;\n var oldValue, newValue;\n if (this.formFieldVisibility && (selectedItem.visibility !== this.formFieldVisibility.value)) {\n isVisibilityChanged = true;\n oldValue = selectedItem.visibility;\n newValue = this.formFieldVisibility.value;\n }\n if (!isUndoRedo) {\n selectedItem.visibility = this.formFieldVisibility.value;\n }\n element.style.visibility = selectedItem.visibility;\n if (selectedItem.formFieldAnnotationType === \"RadioButton\") {\n element.parentElement.style.visibility = selectedItem.visibility;\n }\n if (selectedItem.formFieldAnnotationType === \"SignatureField\" || selectedItem.formFieldAnnotationType === \"InitialField\") {\n var signElement = document.getElementById(selectedItem.id + \"_content_html_element\").firstElementChild.children[1];\n signElement.style.visibility = selectedItem.visibility;\n signElement.parentElement.style.visibility = selectedItem.visibility;\n var annotation = this.pdfViewer.nameTable[selectedItem.id.split('_')[0] + \"_content\"];\n if (selectedItem.visibility === \"hidden\") {\n if (annotation) {\n this.hideSignatureValue(selectedItem, annotation, index, formFieldsData);\n }\n }\n else {\n if (annotation) {\n this.showSignatureValue(selectedItem, oldValue, annotation, index, formFieldsData);\n }\n }\n }\n if (index > -1) {\n formFieldsData[index].FormField.visibility = selectedItem.visibility;\n this.pdfViewerBase.formFieldCollection[index].FormField.visibility = selectedItem.visibility;\n }\n // selectedItem.visibility = this.formFieldVisibility.value;\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].visibility = selectedItem.visibility;\n if (isVisibilityChanged) {\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, false, isVisibilityChanged, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.hideSignatureValue = function (selectedItem, annotation, index, formFieldsData) {\n selectedItem.wrapper.children.splice(selectedItem.wrapper.children.indexOf(annotation.wrapper.children[0]), 1);\n selectedItem.value = '';\n selectedItem.signatureType = '';\n formFieldsData[index].FormField.value = '';\n formFieldsData[index].FormField.signatureType = '';\n this.pdfViewerBase.formFieldCollection[index].FormField.value = '';\n this.pdfViewerBase.formFieldCollection[index].FormField.signatureType = '';\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderDrawing();\n };\n FormDesigner.prototype.showSignatureValue = function (selectedItem, oldValue, annotation, index, formFieldsData) {\n if (annotation.shapeAnnotationType === \"SignatureText\") {\n selectedItem.value = annotation.data;\n selectedItem.signatureType = \"Text\";\n formFieldsData[index].FormField.signatureType = \"Text\";\n formFieldsData[index].FormField.value = annotation.data;\n this.pdfViewerBase.formFieldCollection[index].FormField.value = annotation.data;\n this.pdfViewerBase.formFieldCollection[index].FormField.signatureType = \"Text\";\n }\n else if (annotation.shapeAnnotationType === \"SignatureImage\") {\n selectedItem.value = annotation.data;\n selectedItem.signatureType = \"Image\";\n formFieldsData[index].FormField.signatureType = \"Image\";\n formFieldsData[index].FormField.value = annotation.data;\n this.pdfViewerBase.formFieldCollection[index].FormField.value = annotation.data;\n this.pdfViewerBase.formFieldCollection[index].FormField.signatureType = \"Image\";\n }\n else {\n formFieldsData[index].FormField.signatureType = \"Path\";\n selectedItem.signatureType = \"Path\";\n this.pdfViewerBase.formFieldCollection[index].FormField.signatureType = \"Path\";\n var collectionData = processPathData(annotation.data);\n var csData = splitArrayCollection(collectionData);\n selectedItem.value = JSON.stringify(csData);\n formFieldsData[index].FormField.value = JSON.stringify(csData);\n this.pdfViewerBase.formFieldCollection[index].FormField.value = JSON.stringify(csData);\n }\n selectedItem.signatureBound = annotation.signatureBound;\n if (oldValue === 'hidden') {\n this.pdfViewer.add(annotation);\n selectedItem.wrapper.children.push(annotation.wrapper);\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + selectedItem.pageIndex);\n this.pdfViewer.renderDrawing(canvass, selectedItem.pageIndex);\n }\n ;\n this.pdfViewer.renderDrawing();\n };\n FormDesigner.prototype.updateTooltipPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isToolTipChanged = false;\n var oldValue, newValue;\n if (this.formFieldTooltip && (selectedItem.tooltip !== this.formFieldTooltip.value)) {\n isToolTipChanged = true;\n oldValue = selectedItem.tooltip;\n newValue = this.formFieldTooltip.value;\n }\n if (isUndoRedo) {\n this.formFieldTooltip = new TextBox();\n this.formFieldTooltip.value = selectedItem.tooltip;\n }\n else {\n selectedItem.tooltip = this.formFieldTooltip ? this.formFieldTooltip.value : selectedItem.tooltip;\n }\n if (index > -1) {\n formFieldsData[index].FormField.tooltip = selectedItem.tooltip;\n this.pdfViewerBase.formFieldCollection[index].FormField.tooltip = selectedItem.tooltip;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].tooltip = this.formFieldTooltip.value;\n if (!isNullOrUndefined(this.formFieldTooltip.value) && this.formFieldTooltip.value !== '') {\n this.setToolTip(this.formFieldTooltip.value, selectedItem.formFieldAnnotationType == \"RadioButton\" || selectedItem.formFieldAnnotationType == \"DropdownList\" ? element.parentElement : element);\n }\n if (isToolTipChanged) {\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, false, false, false, false, false, isToolTipChanged, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateNamePropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var designerName = document.getElementById(selectedItem.id + \"_designer_name\");\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n designerName.style.fontSize = selectedItem.fontSize ? (selectedItem.fontSize * zoomValue) + 'px' : (10 * zoomValue) + 'px';\n if (isUndoRedo) {\n designerName.innerHTML = selectedItem.name;\n }\n else {\n selectedItem.name = this.formFieldName ? this.formFieldName.value : selectedItem.name;\n designerName.innerHTML = selectedItem.name;\n }\n if (index > -1) {\n if (formFieldsData[index].FormField.name !== selectedItem.name) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, null, null, true, formFieldsData[index].FormField.name);\n }\n formFieldsData[index].FormField.name = selectedItem.name;\n this.pdfViewerBase.formFieldCollection[index].FormField.name = selectedItem.name;\n }\n element.name = selectedItem.name;\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].name = selectedItem.name;\n if (selectedItem.formFieldAnnotationType == \"DropdownList\" || selectedItem.formFieldAnnotationType == \"ListBox\") {\n for (var i = 0; i < this.pdfViewer.formFieldCollection.length; i++) {\n var formField = this.pdfViewer.formFieldCollection[i];\n if ((formField.formFieldAnnotationType === \"DropdownList\" || formField.formFieldAnnotationType === \"ListBox\") && formField.name === selectedItem.name && formField.id !== selectedItem.id) {\n selectedItem.options = formField.options;\n this.updateDropDownListDataSource(selectedItem, element);\n break;\n }\n }\n }\n };\n FormDesigner.prototype.updateIsReadOnlyPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isReadOnlyChanged = false;\n var oldValue, newValue;\n if (this.formFieldReadOnly && (selectedItem.isReadonly !== this.formFieldReadOnly.checked)) {\n isReadOnlyChanged = true;\n oldValue = selectedItem.isReadonly;\n newValue = this.formFieldReadOnly.checked;\n }\n if (isUndoRedo) {\n this.formFieldReadOnly = new CheckBox();\n this.formFieldReadOnly.checked = selectedItem.isReadonly;\n }\n else {\n selectedItem.isReadonly = this.formFieldReadOnly.checked;\n }\n if (index > -1) {\n formFieldsData[index].FormField.isReadonly = selectedItem.isReadonly;\n this.pdfViewerBase.formFieldCollection[index].FormField.isReadonly = selectedItem.isReadonly;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isReadonly = selectedItem.isReadonly;\n this.setReadOnlyToElement(selectedItem, element, selectedItem.isReadonly);\n this.setReadOnlyToFormField(selectedItem, selectedItem.isReadonly);\n if (isReadOnlyChanged) {\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, isReadOnlyChanged, false, false, false, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateIsRequiredPropertyChange = function (selectedItem, element, isUndoRedo, index, formFieldsData) {\n var isRequiredChanged = false;\n var oldValue, newValue;\n if (this.formFieldRequired && (selectedItem.isRequired !== this.formFieldRequired.checked)) {\n isRequiredChanged = true;\n oldValue = selectedItem.isRequired;\n newValue = this.formFieldRequired.checked;\n }\n if (isUndoRedo) {\n this.formFieldRequired = new CheckBox();\n this.formFieldRequired.checked = selectedItem.isRequired;\n }\n else {\n selectedItem.isRequired = this.formFieldRequired.checked;\n }\n if (index > -1) {\n formFieldsData[index].FormField.isRequired = selectedItem.isRequired;\n this.pdfViewerBase.formFieldCollection[index].FormField.isRequired = selectedItem.isRequired;\n if (this.pdfViewerBase.formFieldCollection[index].FormField.radiobuttonItem) {\n for (var i = 0; i < this.pdfViewerBase.formFieldCollection[index].FormField.radiobuttonItem.length; i++) {\n this.pdfViewerBase.formFieldCollection[index].FormField.radiobuttonItem[i].isRequired = selectedItem.isRequired;\n this.pdfViewer.nameTable[this.pdfViewerBase.formFieldCollection[index].FormField.radiobuttonItem[i].id.split('_')[0]].isRequired = selectedItem.isRequired;\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isRequired = selectedItem.isRequired;\n this.setRequiredToElement(selectedItem, element, selectedItem.isRequired);\n this.setRequiredToFormField(selectedItem, selectedItem.isRequired);\n if (isRequiredChanged) {\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, false, false, false, isRequiredChanged, false, false, oldValue, newValue);\n }\n };\n FormDesigner.prototype.updateIsPrintPropertyChange = function (selectedItem, isUndoRedo, index, formFieldsData) {\n var isPrintChanged = false;\n var oldValue, newValue;\n if (this.formFieldPrinting && (selectedItem.isPrint !== this.formFieldPrinting.checked)) {\n isPrintChanged = true;\n oldValue = selectedItem.isPrint;\n newValue = this.formFieldPrinting.checked;\n }\n if (isUndoRedo) {\n this.formFieldPrinting = new CheckBox();\n this.formFieldPrinting.checked = selectedItem.isPrint;\n }\n else {\n selectedItem.isPrint = this.formFieldPrinting.checked;\n }\n if (index > -1) {\n formFieldsData[index].FormField.isPrint = selectedItem.isPrint;\n this.pdfViewerBase.formFieldCollection[index].FormField.isPrint = selectedItem.isPrint;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].isPrint = selectedItem.isPrint;\n if (isPrintChanged) {\n this.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", selectedItem, false, false, false, false, false, false, false, false, false, false, false, false, false, isPrintChanged, false, oldValue, newValue);\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.getFormFiledIndex = function (id) {\n if (this.pdfViewerBase.formFieldCollection == null || this.pdfViewerBase.formFieldCollection.length == 0)\n return -1;\n var index = this.pdfViewerBase.formFieldCollection.findIndex(function (el) { return el.Key.split('_')[0] === id; });\n if (index > -1) {\n return index;\n }\n else {\n for (var i = 0; i < this.pdfViewerBase.formFieldCollection.length; i++) {\n if (this.pdfViewerBase.formFieldCollection[i].FormField.formFieldAnnotationType === 'RadioButton' && this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem) {\n for (var k = 0; k < this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem.length; k++) {\n if (this.pdfViewerBase.formFieldCollection[i].FormField.radiobuttonItem[k].id.split(\"_\")[0] === id) {\n return i;\n }\n }\n }\n }\n }\n return -1;\n };\n FormDesigner.prototype.updateFontStyle = function (inputElement, selectedItem, isUndoRedo, index, formFieldsData) {\n var isFontStyleChanged = false;\n var oldValue = '';\n var newValue = '';\n if (this.formFieldBold) {\n if (selectedItem.fontStyle !== 'Bold') {\n isFontStyleChanged = true;\n oldValue += selectedItem.font.isBold ? 'Bold' + \", \" : '';\n }\n if (isUndoRedo) {\n if (selectedItem.font.isBold) {\n this.setFontStyleValues(selectedItem, 'Bold', this.formFieldBold, inputElement, true, 'bold', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', this.formFieldBold, inputElement, false, '', index, formFieldsData);\n }\n }\n else if (this.formFieldBold === 'bold') {\n this.setFontStyleValues(selectedItem, 'Bold', this.formFieldBold, inputElement, true, 'bold', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', 'bold', inputElement, false, '', index, formFieldsData);\n }\n }\n else if (selectedItem.font.isBold) {\n this.setFontStyleValues(selectedItem, 'None', 'bold', inputElement, false, '', index, formFieldsData);\n }\n newValue += selectedItem.font.isBold ? 'Bold' + \", \" : '';\n if (this.formFieldItalic) {\n if (selectedItem.fontStyle !== 'Italic') {\n isFontStyleChanged = true;\n oldValue += selectedItem.font.isItalic ? 'Italic' + \", \" : '';\n }\n if (isUndoRedo) {\n if (selectedItem.font.isItalic) {\n this.setFontStyleValues(selectedItem, 'Italic', this.formFieldItalic, inputElement, true, 'italic', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', this.formFieldItalic, inputElement, false, '', index, formFieldsData);\n }\n }\n else if (this.formFieldItalic === 'italic') {\n this.setFontStyleValues(selectedItem, 'Italic', this.formFieldItalic, inputElement, true, 'italic', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', 'italic', inputElement, false, '', index, formFieldsData);\n }\n }\n else if (selectedItem.font.isItalic) {\n this.setFontStyleValues(selectedItem, 'None', 'italic', inputElement, false, '', index, formFieldsData);\n }\n newValue += selectedItem.font.isItalic ? 'Italic' + \", \" : '';\n if (this.formFieldUnderline) {\n if (selectedItem.fontStyle !== 'Underline') {\n isFontStyleChanged = true;\n oldValue += selectedItem.font.isUnderline ? 'Underline' + \", \" : '';\n }\n if (isUndoRedo) {\n if (selectedItem.font.isUnderline) {\n this.setFontStyleValues(selectedItem, 'Underline', this.formFieldUnderline, inputElement, true, 'underline', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', this.formFieldUnderline, inputElement, false, '', index, formFieldsData);\n }\n }\n else if (this.formFieldUnderline === 'underline') {\n this.setFontStyleValues(selectedItem, 'Underline', this.formFieldUnderline, inputElement, true, 'underline', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', 'underline', inputElement, false, '', index, formFieldsData);\n }\n }\n else if (selectedItem.font.isUnderline) {\n this.setFontStyleValues(selectedItem, 'None', 'underline', inputElement, false, '', index, formFieldsData);\n }\n newValue += selectedItem.font.isUnderline ? 'Underline' + \", \" : '';\n if (this.formFieldStrikeOut) {\n if (selectedItem.fontStyle !== 'Strikethrough') {\n isFontStyleChanged = true;\n oldValue += selectedItem.font.isStrikeout ? 'Strikethrough' + \", \" : '';\n }\n if (isUndoRedo) {\n if (selectedItem.font.isStrikeout) {\n this.setFontStyleValues(selectedItem, 'Strikethrough', this.formFieldStrikeOut, inputElement, true, 'line-through', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', this.formFieldStrikeOut, inputElement, false, '', index, formFieldsData);\n }\n }\n else if (this.formFieldStrikeOut === 'line-through') {\n this.setFontStyleValues(selectedItem, 'Strikethrough', this.formFieldStrikeOut, inputElement, true, 'line-through', index, formFieldsData);\n }\n else {\n this.setFontStyleValues(selectedItem, 'None', 'line-through', inputElement, false, '', index, formFieldsData);\n }\n }\n else if (selectedItem.font.isStrikeout) {\n this.setFontStyleValues(selectedItem, 'None', 'line-through', inputElement, false, '', index, formFieldsData);\n }\n newValue += selectedItem.font.isStrikeout ? 'Strikethrough' + \", \" : '';\n return [isFontStyleChanged, oldValue, newValue];\n };\n FormDesigner.prototype.setFontStyleValues = function (selectedItem, selectedItemFontStyle, fontStyleType, inputElement, isFontStyleEnabled, fontStyleValue, index, formFieldsData) {\n if (fontStyleType === 'bold') {\n selectedItem.fontStyle = selectedItemFontStyle;\n selectedItem.font.isBold = isFontStyleEnabled;\n inputElement.style.fontWeight = fontStyleValue;\n this.setDropdownFontStyleValue(inputElement, fontStyleType, fontStyleValue);\n if (index > -1) {\n formFieldsData[index].FormField.font.isBold = isFontStyleEnabled;\n this.pdfViewerBase.formFieldCollection[index].FormField.font.isBold = isFontStyleEnabled;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].font.isBold = isFontStyleEnabled;\n }\n else if (fontStyleType === 'italic') {\n inputElement.style.fontStyle = fontStyleValue;\n this.setDropdownFontStyleValue(inputElement, fontStyleType, fontStyleValue);\n selectedItem.fontStyle = selectedItemFontStyle;\n selectedItem.font.isItalic = isFontStyleEnabled;\n if (index > -1) {\n formFieldsData[index].FormField.font.isItalic = isFontStyleEnabled;\n this.pdfViewerBase.formFieldCollection[index].FormField.font.isItalic = isFontStyleEnabled;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].font.isItalic = isFontStyleEnabled;\n }\n else if (fontStyleType === 'underline') {\n this.setDropdownFontStyleValue(inputElement, fontStyleType, fontStyleValue);\n inputElement.style.textDecoration = fontStyleValue;\n selectedItem.fontStyle = selectedItemFontStyle;\n selectedItem.font.isUnderline = isFontStyleEnabled;\n if (index > -1) {\n formFieldsData[index].FormField.font.isUnderline = isFontStyleEnabled;\n this.pdfViewerBase.formFieldCollection[index].FormField.font.isUnderline = isFontStyleEnabled;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].font.isUnderline = isFontStyleEnabled;\n }\n else if (fontStyleType === 'line-through') {\n this.setDropdownFontStyleValue(inputElement, fontStyleType, fontStyleValue);\n inputElement.style.textDecoration = fontStyleValue;\n selectedItem.fontStyle = selectedItemFontStyle;\n selectedItem.font.isStrikeout = isFontStyleEnabled;\n if (index > -1) {\n formFieldsData[index].FormField.font.isStrikeout = isFontStyleEnabled;\n this.pdfViewerBase.formFieldCollection[index].FormField.font.isStrikeout = isFontStyleEnabled;\n }\n this.pdfViewer.nameTable[selectedItem.id.split('_')[0]].font.isStrikeout = isFontStyleEnabled;\n }\n };\n FormDesigner.prototype.setDropdownFontStyleValue = function (dropdownElement, fontStyleType, value) {\n if (dropdownElement.length > 0) {\n for (var i = 0; i < dropdownElement.length; i++) {\n if (fontStyleType === 'bold') {\n dropdownElement[i].style.fontWeight = value;\n }\n else if (fontStyleType === 'italic') {\n dropdownElement[i].style.fontStyle = value;\n }\n else if (fontStyleType === 'underline') {\n dropdownElement[i].style.textDecoration = value;\n }\n else if (fontStyleType === 'line-through') {\n dropdownElement[i].style.textDecoration = value;\n }\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateFormFieldPropertiesChanges = function (name, selectedItem, isValueChanged, isFontFamilyChanged, isFontSizeChanged, isFontStyleChanged, isColorChanged, isBackgroundColorChanged, isBorderColorChanged, isBorderWidthChanged, isAlignmentChanged, isReadOnlyChanged, isVisibilityChanged, isMaxLengthChanged, isRequiredChanged, isPrintChanged, isToolTipChanged, oldValue, newValue, isNamechanged, previousName) {\n var field = {\n name: selectedItem.name, id: selectedItem.id, value: selectedItem.value, fontFamily: selectedItem.fontFamily, fontSize: selectedItem.fontSize, fontStyle: selectedItem.fontStyle,\n color: selectedItem.color, backgroundColor: selectedItem.backgroundColor, alignment: selectedItem.alignment, isReadonly: selectedItem.isReadonly, visibility: selectedItem.visibility,\n maxLength: selectedItem.maxLength, isRequired: selectedItem.isRequired, isPrint: selectedItem.isPrint, rotation: selectedItem.rotateAngle, tooltip: selectedItem.tooltip, options: selectedItem.options,\n isChecked: selectedItem.isChecked, isSelected: selectedItem.isSelected, previousName: previousName, currentName: selectedItem.name\n };\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", field, selectedItem.pageIndex, isValueChanged, isFontFamilyChanged, isFontSizeChanged, isFontStyleChanged, isColorChanged, isBackgroundColorChanged, isBorderColorChanged, isBorderWidthChanged, isAlignmentChanged, isReadOnlyChanged, isVisibilityChanged, isMaxLengthChanged, isRequiredChanged, isPrintChanged, isToolTipChanged, oldValue, newValue, isNamechanged);\n };\n FormDesigner.prototype.onCancelClicked = function (args) {\n this.propertiesDialog.hide();\n };\n FormDesigner.prototype.createAppearanceTab = function () {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var appearanceDiv = createElement('div', { id: elementID + '_properties_appearance' });\n if (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== 'DropdownList' && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== 'ListBox') {\n appearanceDiv.style.height = '260px';\n }\n else {\n appearanceDiv.style.height = '336px';\n }\n var propertySpliter = createElement('div');\n propertySpliter.className = 'e-pv-properties-header-spliter';\n appearanceDiv.appendChild(propertySpliter);\n var tabContainer = createElement('div', { className: 'e-pv-properties-tab-style-prop' });\n appearanceDiv.appendChild(tabContainer);\n //
    \n if (this.pdfViewer.selectedItems && (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType === 'ListBox' || this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType === 'DropdownList')) {\n // eslint-disable-next-line max-len\n this.tabControl = new Tab({\n items: [\n {\n header: { 'text': '
    ' + this.pdfViewer.localeObj.getConstant('General') + '
    ' }, content: this.createGeneralProperties()\n },\n {\n header: { 'text': '
    ' + this.pdfViewer.localeObj.getConstant('Appearance') + '
    ' }, content: this.createAppearanceProperties()\n },\n {\n header: { 'text': '
    ' + this.pdfViewer.localeObj.getConstant('Options') + '
    ' }, content: this.createOptionProperties()\n },\n ],\n }, tabContainer);\n }\n else if (this.pdfViewer.selectedItems && (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField' || this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType === 'InitialField')) {\n // eslint-disable-next-line max-len\n this.tabControl = new Tab({\n items: [\n {\n header: { 'text': '
    ' + this.pdfViewer.localeObj.getConstant('General') + '
    ' }, content: this.createGeneralProperties()\n }\n ],\n }, tabContainer);\n }\n else {\n // eslint-disable-next-line max-len\n this.tabControl = new Tab({\n items: [\n {\n header: { 'text': '
    ' + this.pdfViewer.localeObj.getConstant('General') + '
    ' }, content: this.createGeneralProperties()\n },\n {\n header: { 'text': '
    ' + this.pdfViewer.localeObj.getConstant('Appearance') + '
    ' }, content: this.createAppearanceProperties()\n }\n ],\n }, tabContainer);\n }\n tabContainer.children[1].style.height = '100%';\n return appearanceDiv;\n };\n FormDesigner.prototype.createGeneralProperties = function () {\n var selectedItem = this.pdfViewer.selectedItems.formFields ? this.pdfViewer.selectedItems.formFields[0] : null;\n var visibilityItems = ['visible', 'hidden'];\n // eslint-disable-next-line max-len\n var elementID = this.pdfViewer.element.id;\n var generalPropertiesDiv = createElement('div', { id: elementID + '_general_prop_appearance' });\n var textStyleContainer = createElement('div', { className: 'e-pv-properties-text-edit-prop' });\n generalPropertiesDiv.appendChild(textStyleContainer);\n var formFieldNameMainDiv = createElement('div', { className: 'e-pv-properties-form-field-name-main-div' });\n // eslint-disable-next-line max-len\n var formFieldNameDiv = createElement('div', { className: 'e-pv-properties-name-edit-prop' });\n var formFieldNameContainer = createElement('input', { className: 'e-pv-properties-name-edit-input e-input' });\n formFieldNameDiv.appendChild(formFieldNameContainer);\n formFieldNameMainDiv.appendChild(formFieldNameDiv);\n // eslint-disable-next-line max-len\n this.formFieldName = new TextBox({ type: \"text\", floatLabelType: 'Always', placeholder: this.pdfViewer.localeObj.getConstant('Name'), value: selectedItem.name, cssClass: 'e-pv-properties-formfield-name' }, formFieldNameContainer);\n textStyleContainer.appendChild(formFieldNameMainDiv);\n var formFieldTooltipMainDiv = createElement('div', { className: 'e-pv-properties-form-field-tooltip-main-div' });\n var formFieldTooltipDiv = createElement('div', { className: 'e-pv-properties-tooltip-edit-prop' });\n var formFieldTooltipContainer = createElement('input', { className: 'e-pv-properties-tooltip-prop-input e-input' });\n formFieldTooltipDiv.appendChild(formFieldTooltipContainer);\n formFieldTooltipMainDiv.appendChild(formFieldTooltipDiv);\n // eslint-disable-next-line max-len\n this.formFieldTooltip = new TextBox({ type: \"text\", floatLabelType: 'Always', placeholder: this.pdfViewer.localeObj.getConstant('Tooltip'), value: selectedItem.tooltip, cssClass: 'e-pv-properties-formfield-tooltip' }, formFieldTooltipContainer);\n textStyleContainer.appendChild(formFieldTooltipMainDiv);\n var visibilityContainer = createElement('div', { className: 'e-pv-properties-visibility-style-prop' });\n generalPropertiesDiv.appendChild(visibilityContainer);\n var formFieldValueMainDiv = createElement('div', { className: 'e-pv-properties-form-field-value-main-div' });\n var formFieldValueDiv = createElement('div', { className: 'e-pv-properties-value-edit-prop' });\n var formFieldValueContainer = createElement('input', { className: 'e-pv-properties-value-input e-input' });\n formFieldValueDiv.appendChild(formFieldValueContainer);\n formFieldValueMainDiv.appendChild(formFieldValueDiv);\n if (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType == 'PasswordField') {\n // eslint-disable-next-line max-len\n this.formFieldValue = new TextBox({ type: \"password\", floatLabelType: 'Always', placeholder: this.pdfViewer.localeObj.getConstant('Value'), value: selectedItem.value, cssClass: 'e-pv-properties-formfield-value' }, formFieldValueContainer);\n }\n else {\n // eslint-disable-next-line max-len\n this.formFieldValue = new TextBox({ type: \"text\", floatLabelType: 'Always', placeholder: this.pdfViewer.localeObj.getConstant('Value'), value: selectedItem.value, cssClass: 'e-pv-properties-formfield-value' }, formFieldValueContainer);\n }\n if (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== 'Textbox' && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== 'PasswordField' && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== \"RadioButton\" && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType !== \"Checkbox\") {\n this.formFieldValue.enabled = false;\n this.formFieldValue.value = '';\n }\n visibilityContainer.appendChild(formFieldValueMainDiv);\n var formFieldVisibilityMainDiv = createElement('div', { className: 'e-pv-properties-form-field-visibility-main-div' });\n var formFieldVisibilityDiv = createElement('div', { className: 'e-pv-properties-visibility-edit-prop' });\n var formFieldVisibilityContainer = createElement('input', { className: 'e-pv-properties-formfield-visibility' });\n formFieldVisibilityDiv.appendChild(formFieldVisibilityContainer);\n formFieldVisibilityMainDiv.appendChild(formFieldVisibilityDiv);\n var selectedIndex = selectedItem.visibility === 'visible' ? 0 : 1;\n this.formFieldVisibility = new DropDownList({ dataSource: visibilityItems, floatLabelType: 'Always', index: selectedIndex, value: selectedItem.visibility, placeholder: this.pdfViewer.localeObj.getConstant('Form Field Visibility'), cssClass: 'e-pv-properties-formfield-visibility' }, formFieldVisibilityContainer);\n visibilityContainer.appendChild(formFieldVisibilityMainDiv);\n var checkboxMainDiv = createElement('div', { className: 'e-pv-properties-checkbox-main-div-prop' });\n var readOnly = createElement('input', { className: 'e-pv-properties-checkbox-readonly-input e-input' });\n checkboxMainDiv.appendChild(readOnly);\n this.formFieldReadOnly = new CheckBox({ label: this.pdfViewer.localeObj.getConstant('Read Only'), checked: selectedItem.isReadonly, cssClass: 'e-pv-properties-form-field-checkbox' }, readOnly);\n if (this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType === 'Checkbox' || this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType === 'RadioButton') {\n var checkedState = createElement('input', { className: 'e-pv-properties-checkbox-checked-input e-input' });\n checkboxMainDiv.appendChild(checkedState);\n this.formFieldChecked = new CheckBox({ label: this.pdfViewer.localeObj.getConstant('Checked'), cssClass: 'e-pv-properties-form-field-checkbox', checked: selectedItem.isChecked || selectedItem.isSelected, change: this.checkBoxChange.bind(this) }, checkedState);\n }\n var required = createElement('input', { className: 'e-pv-properties-checkbox-required-input e-input' });\n checkboxMainDiv.appendChild(required);\n this.formFieldRequired = new CheckBox({ label: this.pdfViewer.localeObj.getConstant('Required'), checked: selectedItem.isRequired, cssClass: 'e-pv-properties-form-field-checkbox' }, required);\n var showPrinting = createElement('input', { className: 'e-pv-properties-checkbox-printing-input e-input' });\n checkboxMainDiv.appendChild(showPrinting);\n this.formFieldPrinting = new CheckBox({ label: this.pdfViewer.localeObj.getConstant('Show Printing'), checked: selectedItem.isPrint, cssClass: 'e-pv-properties-form-field-checkbox' }, showPrinting);\n if (selectedItem.formFieldAnnotationType === 'Textbox') {\n var multilineTextbox = createElement('input', { className: 'e-pv-properties-checkbox-multiline-input e-input' });\n checkboxMainDiv.appendChild(multilineTextbox);\n this.formFieldMultiline = new CheckBox({ label: this.pdfViewer.localeObj.getConstant('Multiline'), checked: selectedItem.isMultiline, cssClass: 'e-pv-properties-form-field-checkbox', change: this.multilineCheckboxChange.bind(this) }, multilineTextbox);\n }\n generalPropertiesDiv.appendChild(checkboxMainDiv);\n return generalPropertiesDiv;\n };\n FormDesigner.prototype.checkBoxChange = function (args) {\n this.checkboxCheckedState = args.checked;\n };\n FormDesigner.prototype.multilineCheckboxChange = function (args) {\n this.multilineCheckboxCheckedState = true;\n };\n FormDesigner.prototype.setToolTip = function (tooltipContent, targetElement) {\n //initialize tooltip component\n var tooltip = new Tooltip({\n content: initializeCSPTemplate(function () { return tooltipContent; })\n });\n // render initialized tooltip\n tooltip.appendTo(targetElement);\n tooltip.beforeOpen = this.tooltipBeforeOpen.bind(this);\n };\n FormDesigner.prototype.tooltipBeforeOpen = function (args) {\n var currentFormField = this.pdfViewer.nameTable[args.target.id.split('_')[0]];\n if (!isNullOrUndefined(currentFormField)) {\n args.element.children[0].innerHTML = currentFormField.tooltip;\n }\n };\n FormDesigner.prototype.createAppearanceProperties = function () {\n var selectedItem = this.pdfViewer.selectedItems.formFields ? this.pdfViewer.selectedItems.formFields[0] : null;\n var fontFamilyItems = ['Helvetica', 'Courier', 'Times New Roman', 'Symbol', 'ZapfDingbats'];\n var fontSizeItems = ['6px', '8px', '10px', '12px', '14px', '16px', '18px', '20px', '24px', '28px', '32px', '36px', '40px'];\n var elementID = this.pdfViewer.element.id;\n var appearancePropertiesDiv = createElement('div', { id: elementID + '_formatting_text_prop_appearance' });\n var formatTextStyleContainer = createElement('div', { className: 'e-pv-properties-format-text-style-prop' });\n appearancePropertiesDiv.appendChild(formatTextStyleContainer);\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Formatting'), formatTextStyleContainer, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_formatting');\n var fontItemsContainer = createElement('div', { className: 'e-pv-properties-font-items-container' });\n var fontFamilyDropdownContainer = createElement('div', { className: 'e-pv-properties-font-family-container' });\n var formatdropdownContainer = createElement('input', { className: 'e-pv-properties-format-font-family-prop' });\n fontFamilyDropdownContainer.appendChild(formatdropdownContainer);\n fontItemsContainer.appendChild(fontFamilyDropdownContainer);\n this.formFieldFontFamily = new DropDownList({ dataSource: fontFamilyItems, value: this.getFontFamily(selectedItem.fontFamily) ? selectedItem.fontFamily : 'Helvetica', cssClass: 'e-pv-properties-formfield-fontfamily' }, formatdropdownContainer);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Font family'), fontFamilyDropdownContainer);\n var fontSizeContainer = createElement('div', { className: 'e-pv-properties-font-size-container' });\n var fontSizeDropdownContainer = createElement('input', { className: 'e-pv-properties-format-font-family-prop' });\n fontSizeContainer.appendChild(fontSizeDropdownContainer);\n fontItemsContainer.appendChild(fontSizeContainer);\n this.formFieldFontSize = new DropDownList({ dataSource: fontSizeItems, value: selectedItem.fontSize + 'px', cssClass: 'e-pv-properties-formfield-fontsize' }, fontSizeDropdownContainer);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Font size'), fontSizeContainer);\n var fontStyleContainer = createElement('div', { className: 'e-pv-properties-form-field-font-style' });\n fontStyleContainer.onclick = this.fontStyleClicked.bind(this);\n fontStyleContainer.appendChild(this.addClassFontItem('_formField_bold', 'e-pv-bold-icon', selectedItem.font.isBold));\n fontStyleContainer.appendChild(this.addClassFontItem('_formField_italic', 'e-pv-italic-icon', selectedItem.font.isItalic));\n fontStyleContainer.appendChild(this.addClassFontItem('_formField_underline_textinput', 'e-pv-underlinetext-icon', selectedItem.font.isUnderline));\n // eslint-disable-next-line max-len\n fontStyleContainer.appendChild(this.addClassFontItem('_formField_strikeout', 'e-pv-strikeout-icon', selectedItem.font.isStrikeout));\n fontItemsContainer.appendChild(fontStyleContainer);\n this.getFontStyle(selectedItem.font);\n appearancePropertiesDiv.appendChild(fontItemsContainer);\n var fontColorContainer = createElement('div', { className: 'e-pv-properties-font-color-container' });\n var fontAlignContainer = createElement('div', { className: 'e-pv-properties-form-field-font-align' });\n fontAlignContainer.onclick = this.fontAlignClicked.bind(this);\n var alignment = selectedItem.alignment.toLowerCase();\n fontAlignContainer.appendChild(this.addClassFontItem('_formField_left_align', 'e-pv-left-align-icon', alignment === 'left' ? true : false));\n fontAlignContainer.appendChild(this.addClassFontItem('_formField_center_align', 'e-pv-center-align-icon', alignment === 'center' ? true : false));\n fontAlignContainer.appendChild(this.addClassFontItem('_formField_right_align', 'e-pv-right-align-icon', alignment === 'right' ? true : false));\n this.getAlignment(alignment);\n fontColorContainer.appendChild(fontAlignContainer);\n this.fontColorElement = createElement('div', { className: 'e-pv-formfield-textcolor-icon', id: this.pdfViewer.element.id + 'formField_textColor' });\n this.fontColorElement.setAttribute('role', 'combobox');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id, selectedItem.color);\n selectedItem.color !== 'black' ? this.fontColorValue = selectedItem.color : null;\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement);\n fontColorContainer.appendChild(this.fontColorElement);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Font color'), this.fontColorDropDown.element);\n this.updateColorInIcon(this.fontColorElement, this.pdfViewer.selectedItems.formFields[0].color);\n if (selectedItem.formFieldAnnotationType === 'Checkbox' || selectedItem.formFieldAnnotationType === 'RadioButton') {\n this.fontColorPalette.disabled = true;\n this.fontColorDropDown.disabled = true;\n this.fontColorElement.style.pointerEvents = 'none';\n this.fontColorElement.style.opacity = '0.5';\n fontAlignContainer.style.pointerEvents = 'none';\n fontAlignContainer.style.opacity = '0.5';\n this.formFieldFontSize.enabled = false;\n this.formFieldFontFamily.enabled = false;\n fontFamilyDropdownContainer.style.pointerEvents = 'none';\n fontSizeContainer.style.pointerEvents = 'none';\n fontStyleContainer.style.pointerEvents = 'none';\n fontStyleContainer.style.opacity = '0.5';\n }\n var maxLengthGroup = createElement('div', { className: 'e-pv-formfield-maxlength-group', id: this.pdfViewer.element.id + 'formField_maxlength_group' });\n var maxLengthContainer = createElement('div', { className: 'e-pv-formfield-maxlength-icon', id: this.pdfViewer.element.id + 'formField_maxlength' });\n maxLengthGroup.appendChild(maxLengthContainer);\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Max Length'), maxLengthContainer, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_maxlength');\n var maxLengthDropdownContainer = createElement('div', { className: 'e-pv-formfield-maxlength', id: this.pdfViewer.element.id + 'formField_maxlength_container' });\n var maxLengthItemDropdown = createElement('input', { className: 'e-pv-formfield-maxlength-input e-input' });\n maxLengthItemDropdown.setAttribute('aria-label', 'Max Length');\n maxLengthDropdownContainer.appendChild(maxLengthItemDropdown);\n maxLengthGroup.appendChild(maxLengthDropdownContainer);\n // Render the Numeric Textbox\n this.maxLengthItem = new NumericTextBox({ format: 'n', value: selectedItem.maxLength !== 0 ? selectedItem.maxLength : 0, min: 0 }, maxLengthItemDropdown);\n fontColorContainer.appendChild(maxLengthGroup);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Max Length'), this.maxLengthItem.element);\n if (selectedItem.formFieldAnnotationType !== 'Textbox' && selectedItem.formFieldAnnotationType !== 'PasswordField') {\n this.maxLengthItem.enabled = false;\n maxLengthContainer.style.pointerEvents = 'none';\n }\n appearancePropertiesDiv.appendChild(fontColorContainer);\n var colorContainer = createElement('div', { className: 'e-pv-properties-color-container-style-prop' });\n var backgroundColorContainer = createElement('div', { className: 'e-pv-properties-fill-color-style-prop' });\n appearancePropertiesDiv.appendChild(backgroundColorContainer);\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Fill'), backgroundColorContainer, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_fontcolor');\n this.colorDropDownElement = createElement('div', { className: 'e-pv-formfield-fontcolor-icon', id: this.pdfViewer.element.id + 'formField_fontColor' });\n this.colorDropDownElement.setAttribute('role', 'combobox');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id, selectedItem.backgroundColor);\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);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Fill Color'), this.colorDropDown.element);\n backgroundColorContainer.appendChild(this.colorDropDownElement);\n colorContainer.appendChild(backgroundColorContainer);\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.selectedItems.formFields[0].backgroundColor);\n var strokeColorContainer = createElement('div', { className: 'e-pv-properties-stroke-color-style-prop' });\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Border'), strokeColorContainer, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_strokecolor');\n this.strokeDropDownElement = createElement('div', { className: 'e-pv-formfield-strokecolor-icon', id: this.pdfViewer.element.id + 'formField_strokeColor' });\n this.strokeDropDownElement.setAttribute('role', 'combobox');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id, selectedItem.borderColor);\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);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Border Color'), this.strokeDropDown.element);\n strokeColorContainer.appendChild(this.strokeDropDownElement);\n colorContainer.appendChild(strokeColorContainer);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.formFields[0].borderColor);\n var strokeThicknessContainer = createElement('div', { className: 'e-pv-properties-stroke-thickness-style-prop' });\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Thickness'), strokeThicknessContainer, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_strokethickness');\n this.thicknessElement = createElement('div', { className: 'e-pv-formfield-strokethickness-icon', id: this.pdfViewer.element.id + 'formField_strokethickness' });\n this.thicknessElement.setAttribute('role', 'combobox');\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);\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Thickness'), this.thicknessDropDown.element);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n strokeThicknessContainer.appendChild(this.thicknessElement);\n colorContainer.appendChild(strokeThicknessContainer);\n appearancePropertiesDiv.appendChild(colorContainer);\n return appearancePropertiesDiv;\n };\n FormDesigner.prototype.thicknessChange = function (args) {\n if (this.pdfViewer.selectedItems.formFields.length === 1) {\n this.formFieldBorderWidth = args.value;\n this.updateThicknessIndicator();\n }\n };\n FormDesigner.prototype.thicknessDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.formFields.length === 1) {\n this.formFieldBorderWidth = this.pdfViewer.selectedItems.formFields[0].thickness.toString();\n this.thicknessSlider.value = this.pdfViewer.selectedItems.formFields[0].thickness;\n }\n this.updateThicknessIndicator();\n };\n FormDesigner.prototype.updateThicknessIndicator = function () {\n this.thicknessIndicator.textContent = this.thicknessSlider.value + ' pt';\n };\n FormDesigner.prototype.createOptionProperties = function () {\n var _this = this;\n var elementID = this.pdfViewer.element.id;\n var optionPropertiesDiv = createElement('div', { id: elementID + '_option_prop_appearance' });\n var listItemAddContainer = createElement('div', { className: 'e-pv-properties-form-field-list-add-div' });\n var formFieldListItemMainDiv = createElement('div', { className: 'e-pv-properties-form-field-list-item-main-div' });\n // eslint-disable-next-line max-len\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('List Item'), formFieldListItemMainDiv, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_listitem');\n var formFieldListItemDiv = createElement('div', { className: 'e-pv-properties-list-item-edit-prop' });\n var formFieldListItemContainer = createElement('input', { className: 'e-pv-properties-list-item-input e-input' });\n formFieldListItemContainer.setAttribute('aria-label', 'Item Name');\n formFieldListItemContainer.addEventListener('keyup', function (args) {\n _this.formFieldAddButton.disabled = true;\n _this.formFieldListItem.value = args.target.value;\n if (args.target && args.target.value) {\n if (_this.formFieldListItemCollection.length > 0) {\n for (var i = 0; i < _this.formFieldListItemCollection.length; i++) {\n var itemName = _this.formFieldListItemCollection[i];\n if (itemName === args.target.value) {\n _this.formFieldAddButton.disabled = true;\n break;\n }\n else {\n _this.formFieldAddButton.disabled = false;\n }\n }\n }\n else {\n _this.formFieldAddButton.disabled = false;\n }\n }\n });\n formFieldListItemDiv.appendChild(formFieldListItemContainer);\n formFieldListItemMainDiv.appendChild(formFieldListItemDiv);\n // eslint-disable-next-line max-len\n this.formFieldListItem = new TextBox({ type: \"text\", cssClass: 'e-pv-properties-formfield-listitem' }, formFieldListItemContainer);\n listItemAddContainer.appendChild(formFieldListItemMainDiv);\n optionPropertiesDiv.appendChild(listItemAddContainer);\n var buttonDiv = createElement('div', { className: 'e-pv-properties-form-field-list-btn-div' });\n var buttonAddInput = createElement('button', { className: 'e-btn' });\n buttonAddInput.addEventListener('click', this.addListItemOnClick.bind(this));\n buttonDiv.appendChild(buttonAddInput);\n this.formFieldAddButton = new Button({ content: this.pdfViewer.localeObj.getConstant('Add'), disabled: true, cssClass: 'e-pv-properties-dropdown-btn' }, buttonAddInput);\n listItemAddContainer.appendChild(buttonDiv);\n var exportValueContainer = createElement('div', { className: 'e-pv-properties-form-field-export-value-div' });\n var formFieldexportValueMainDiv = createElement('div', { className: 'e-pv-properties-form-field-export-value-main-div' });\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Export Value'), formFieldexportValueMainDiv, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_exportValue');\n var formFieldExportItemDiv = createElement('div', { className: 'e-pv-properties-export-value-edit-prop' });\n var formFieldExportItemContainer = createElement('input', { className: 'e-pv-properties-export-value-input e-input' });\n formFieldExportItemContainer.setAttribute('aria-label', 'Item Value');\n formFieldExportItemDiv.appendChild(formFieldExportItemContainer);\n formFieldexportValueMainDiv.appendChild(formFieldExportItemDiv);\n // eslint-disable-next-line max-len\n this.formFieldListItem = new TextBox({ type: \"text\", cssClass: 'e-pv-properties-formfield-exportvalue' }, formFieldExportItemContainer);\n exportValueContainer.appendChild(formFieldexportValueMainDiv);\n optionPropertiesDiv.appendChild(exportValueContainer);\n var dropdownListItemContainer = createElement('div', { className: 'e-pv-properties-form-field-option-dropdown-list-div' });\n var formFieldDropdownListMainDiv = createElement('div', { className: 'e-pv-properties-form-field-option-dropdown-list-item-div' });\n var selectedElement = this.pdfViewer.selectedItems.formFields[0];\n if (selectedElement.formFieldAnnotationType === 'DropdownList') {\n // eslint-disable-next-line max-len\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('Dropdown Item List'), formFieldDropdownListMainDiv, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_dropdown_listitem');\n }\n else {\n // eslint-disable-next-line max-len\n this.createLabelElement(this.pdfViewer.localeObj.getConstant('List Box Item List'), formFieldDropdownListMainDiv, true, 'e-pv-properties-formfield-label', elementID + '_properties_formfield_dropdown_listitem');\n }\n dropdownListItemContainer.appendChild(formFieldDropdownListMainDiv);\n var btnTextAreaContainer = createElement('div', { className: 'e-pv-properties-form-field-btn-textarea-container' });\n var textAreaContainer = createElement('div', { className: 'e-pv-properties-formfield-textarea', styles: 'width:300px;height:123px;border:1px solid #E0E0E0;margin-right:15px;overflow:auto' });\n var listElement = createElement('ul', { id: this.pdfViewer.element.id + '_ul_list_item', className: 'e-pv-form-designer-ul-list-items' });\n var listCount = this.createListElement(listElement);\n textAreaContainer.appendChild(listElement);\n btnTextAreaContainer.appendChild(textAreaContainer);\n var buttonGroup = createElement('div', { className: 'e-pv-properties-form-field-group-btn-div' });\n var deleteButtonDiv = createElement('div', { className: 'e-pv-properties-form-field-delete-btn-div' });\n var buttonDeleteInput = createElement('button', { className: 'e-btn' });\n buttonDeleteInput.addEventListener('click', this.deleteListItem.bind(this));\n deleteButtonDiv.appendChild(buttonDeleteInput);\n this.formFieldDeleteButton = new Button({ content: this.pdfViewer.localeObj.getConstant('Delete Item'), disabled: listCount > 0 ? false : true, cssClass: 'e-pv-properties-dropdown-btn' }, buttonDeleteInput);\n buttonGroup.appendChild(deleteButtonDiv);\n var upButtonDiv = createElement('div', { className: 'e-pv-properties-form-field-up-btn-div' });\n var buttonUpInput = createElement('button', { className: 'e-btn' });\n buttonUpInput.addEventListener('click', this.moveUpListItem.bind(this));\n upButtonDiv.appendChild(buttonUpInput);\n this.formFieldUpButton = new Button({ content: this.pdfViewer.localeObj.getConstant('Up'), disabled: listCount > 1 ? false : true, cssClass: 'e-pv-properties-dropdown-btn' }, buttonUpInput);\n buttonGroup.appendChild(upButtonDiv);\n var downButtonDiv = createElement('div', { className: 'e-pv-properties-form-field-down-btn-div' });\n var buttonDownInput = createElement('button', { className: 'e-btn' });\n buttonDownInput.addEventListener('click', this.moveDownListItem.bind(this));\n downButtonDiv.appendChild(buttonDownInput);\n this.formFieldDownButton = new Button({ content: this.pdfViewer.localeObj.getConstant('Down'), disabled: true, cssClass: 'e-pv-properties-dropdown-btn' }, buttonDownInput);\n buttonGroup.appendChild(downButtonDiv);\n btnTextAreaContainer.appendChild(buttonGroup);\n dropdownListItemContainer.appendChild(btnTextAreaContainer);\n optionPropertiesDiv.appendChild(dropdownListItemContainer);\n return optionPropertiesDiv;\n };\n FormDesigner.prototype.addListItemOnClick = function () {\n var dropdownValue = this.formFieldListItem.value;\n this.formFieldListItemCollection.push(dropdownValue);\n var ulElement = document.getElementById(this.pdfViewer.element.id + '_ul_list_item');\n if (ulElement.children && ulElement.children.length > 0) {\n for (var i = 0; i < ulElement.children.length; i++) {\n var element = ulElement.children[i];\n if (element.classList.contains('e-pv-li-select')) {\n element.classList.remove('e-pv-li-select');\n }\n }\n }\n var createLiElement = createElement('li', { className: 'e-pv-formfield-li-element' });\n createLiElement.addEventListener('click', this.listItemOnClick.bind(this));\n createLiElement.innerHTML = dropdownValue;\n createLiElement.classList.add('e-pv-li-select');\n ulElement.appendChild(createLiElement);\n this.formFieldDeleteButton.disabled = false;\n this.formFieldAddButton.disabled = true;\n if (createLiElement.previousElementSibling) {\n this.formFieldUpButton.disabled = false;\n }\n if (!createLiElement.nextElementSibling) {\n this.formFieldDownButton.disabled = true;\n }\n };\n FormDesigner.prototype.listItemOnClick = function (args) {\n var ulElement = document.getElementById(this.pdfViewer.element.id + '_ul_list_item');\n if (ulElement.children && ulElement.children.length > 0) {\n for (var i = 0; i < ulElement.children.length; i++) {\n var element = ulElement.children[i];\n if (element.classList.contains('e-pv-li-select')) {\n element.classList.remove('e-pv-li-select');\n }\n }\n }\n if (args.target) {\n args.target.classList.add('e-pv-li-select');\n }\n if (args.target.nextElementSibling) {\n this.formFieldDownButton.disabled = false;\n }\n else {\n this.formFieldDownButton.disabled = true;\n }\n if (args.target.previousElementSibling) {\n this.formFieldUpButton.disabled = false;\n }\n else {\n this.formFieldUpButton.disabled = true;\n }\n };\n FormDesigner.prototype.deleteListItem = function () {\n var ulElement = document.getElementById(this.pdfViewer.element.id + '_ul_list_item');\n if (ulElement.children && ulElement.children.length > 0) {\n for (var i = 0; i < ulElement.children.length; i++) {\n var element = ulElement.children[i];\n if (element.classList.contains('e-pv-li-select')) {\n element.classList.remove('e-pv-li-select');\n this.formFieldListItemCollection.splice(i, 1);\n if (element.previousElementSibling) {\n element.previousElementSibling.classList.add('e-pv-li-select');\n if (!element.previousElementSibling.previousElementSibling) {\n this.formFieldUpButton.disabled = true;\n }\n }\n else if (element.nextElementSibling) {\n element.nextElementSibling.classList.add('e-pv-li-select');\n if (!element.nextElementSibling.nextElementSibling) {\n this.formFieldDownButton.disabled = true;\n }\n }\n element.remove();\n }\n }\n }\n if (ulElement.children && ulElement.children.length === 0) {\n this.formFieldDeleteButton.disabled = true;\n this.formFieldUpButton.disabled = true;\n this.formFieldDownButton.disabled = true;\n }\n if (ulElement.children && ulElement.children.length === 1) {\n this.formFieldDeleteButton.disabled = false;\n this.formFieldUpButton.disabled = true;\n this.formFieldDownButton.disabled = true;\n }\n };\n FormDesigner.prototype.moveUpListItem = function () {\n var ulElement = document.getElementById(this.pdfViewer.element.id + '_ul_list_item');\n if (ulElement.children && ulElement.children.length > 0) {\n for (var i = 0; i < ulElement.children.length; i++) {\n var element = ulElement.children[i];\n if (element.classList.contains('e-pv-li-select')) {\n if (element.previousElementSibling) {\n element.parentNode.insertBefore(element, element.previousElementSibling);\n if (!element.previousElementSibling)\n this.formFieldUpButton.disabled = true;\n }\n else {\n this.formFieldUpButton.disabled = true;\n }\n if (element.nextElementSibling) {\n this.formFieldDownButton.disabled = false;\n }\n }\n }\n }\n };\n FormDesigner.prototype.moveDownListItem = function () {\n var element;\n var ulElement = document.getElementById(this.pdfViewer.element.id + '_ul_list_item');\n if (ulElement.children && ulElement.children.length > 0) {\n for (var i = 0; i < ulElement.children.length; i++) {\n element = ulElement.children[i];\n if (element.classList.contains('e-pv-li-select')) {\n if (element.nextElementSibling) {\n element.parentNode.insertBefore(element.nextElementSibling, element);\n break;\n }\n else {\n this.formFieldDownButton.disabled = true;\n }\n }\n }\n }\n if (!element.nextElementSibling) {\n this.formFieldDownButton.disabled = true;\n }\n if (element.previousElementSibling) {\n this.formFieldUpButton.disabled = false;\n }\n };\n FormDesigner.prototype.createListElement = function (ulElement) {\n var selectedElement = this.pdfViewer.selectedItems.formFields[0];\n if (selectedElement) {\n if (selectedElement.options && selectedElement.options.length > 0) {\n for (var i = 0; i < selectedElement.options.length; i++) {\n var dropdownValue = selectedElement.options[i].itemName;\n if (this.formFieldListItemCollection[i] !== selectedElement.options[i].itemName) {\n this.formFieldListItemCollection.push(dropdownValue);\n var createLiElement = createElement('li', { className: 'e-pv-formfield-li-element' });\n createLiElement.addEventListener('click', this.listItemOnClick.bind(this));\n createLiElement.addEventListener('focus', this.focusFormFields.bind(this));\n createLiElement.addEventListener('blur', this.blurFormFields.bind(this));\n createLiElement.innerHTML = dropdownValue;\n ulElement.appendChild(createLiElement);\n }\n }\n ulElement.children[ulElement.children.length - 1].classList.add('e-pv-li-select');\n }\n }\n return ulElement.children.length;\n };\n FormDesigner.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 FormDesigner.prototype.createColorPicker = function (idString, color) {\n var inputElement = createElement('input', { id: idString + '_target' });\n document.body.appendChild(inputElement);\n var colorPicker = new ColorPicker({\n inline: true, mode: 'Palette', cssClass: 'e-show-value', enableOpacity: false,\n value: color, showButtons: false, modeSwitcher: false\n });\n if (this.pdfViewer.enableRtl) {\n colorPicker.enableRtl = true;\n }\n colorPicker.appendTo(inputElement);\n return colorPicker;\n };\n FormDesigner.prototype.fontStyleClicked = function (args) {\n if (args.target) {\n if (args.target.id.indexOf(\"formField_bold\") !== -1) {\n var item = (args.target.id.indexOf(\"formField_bold_div\") !== -1) ? args.target : args.target.parentElement;\n if (item.classList.contains('e-pv-li-select'))\n this.isBold = true;\n this.isBold = !this.isBold;\n if (this.isBold) {\n this.formFieldBold = \"bold\";\n item.classList.add('e-pv-li-select');\n }\n else {\n this.formFieldBold = \"normal\";\n item.classList.remove('e-pv-li-select');\n }\n }\n else if (args.target.id.indexOf(\"formField_italic\") !== -1) {\n var item = (args.target.id.indexOf(\"formField_italic_div\") !== -1) ? args.target : args.target.parentElement;\n if (item.classList.contains('e-pv-li-select'))\n this.isItalic = true;\n this.isItalic = !this.isItalic;\n if (this.isItalic) {\n this.formFieldItalic = \"italic\";\n item.classList.add('e-pv-li-select');\n }\n else {\n this.formFieldItalic = \"normal\";\n item.classList.remove('e-pv-li-select');\n }\n }\n else if (args.target.id.indexOf(\"formField_underline\") !== -1) {\n var item = (args.target.id.indexOf(\"formField_underline_textinput_div\") !== -1) ? args.target : args.target.parentElement;\n if (item.classList.contains('e-pv-li-select'))\n this.isUnderline = true;\n this.isUnderline = !this.isUnderline;\n if (this.isUnderline) {\n this.formFieldUnderline = \"underline\";\n this.isStrikeThrough = false;\n item.classList.add('e-pv-li-select');\n }\n else {\n this.formFieldUnderline = \"none\";\n item.classList.remove('e-pv-li-select');\n }\n }\n else if (args.target.id.indexOf(\"formField_strikeout\") !== -1) {\n var item = (args.target.id.indexOf(\"formField_strikeout_div\") !== -1) ? args.target : args.target.parentElement;\n if (item.classList.contains('e-pv-li-select'))\n this.isStrikeThrough = true;\n this.isStrikeThrough = !this.isStrikeThrough;\n if (this.isStrikeThrough) {\n this.formFieldStrikeOut = \"line-through\";\n this.isUnderline = false;\n item.classList.add('e-pv-li-select');\n }\n else {\n this.formFieldStrikeOut = \"none\";\n item.classList.remove('e-pv-li-select');\n }\n }\n }\n };\n FormDesigner.prototype.clearFontAlignIconSelection = function (currentElement) {\n for (var i = 0; i < currentElement.children.length; i++) {\n if (currentElement.children[i].classList.contains('e-pv-li-select')) {\n currentElement.children[i].classList.remove('e-pv-li-select');\n }\n }\n };\n FormDesigner.prototype.fontAlignClicked = function (args) {\n if (args.target) {\n args.target.classList.remove('e-pv-li-select');\n if (args.target.id.indexOf(\"_formField_left_align\") !== -1) {\n var item = (args.target.id.indexOf(\"_formField_left_align_div\") !== -1) ? args.target : args.target.parentElement;\n this.formFieldAlign = \"left\";\n this.clearFontAlignIconSelection(args.currentTarget);\n item.classList.add('e-pv-li-select');\n }\n else if (args.target.id.indexOf(\"_formField_right_align\") !== -1) {\n var item = (args.target.id.indexOf(\"_formField_right_align_div\") !== -1) ? args.target : args.target.parentElement;\n this.formFieldAlign = \"right\";\n this.clearFontAlignIconSelection(args.currentTarget);\n item.classList.add('e-pv-li-select');\n }\n else {\n var item = (args.target.id.indexOf(\"_formField_center_align_div\") !== -1) ? args.target : args.target.parentElement;\n this.formFieldAlign = \"center\";\n this.clearFontAlignIconSelection(args.currentTarget);\n item.classList.add('e-pv-li-select');\n }\n }\n };\n FormDesigner.prototype.onFontColorChange = function (args) {\n this.fontColorValue = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n this.updateColorInIcon(this.fontColorElement, this.fontColorValue);\n this.fontColorDropDown.toggle();\n };\n FormDesigner.prototype.onColorPickerChange = function (args) {\n this.backgroundColorValue = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n this.updateColorInIcon(this.colorDropDownElement, this.backgroundColorValue);\n this.colorDropDown.toggle();\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateColorInIcon = function (element, color) {\n element.childNodes[0].style.borderBottomColor = color;\n };\n FormDesigner.prototype.onStrokePickerChange = function (args) {\n this.borderColorValue = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n this.updateColorInIcon(this.strokeDropDownElement, this.borderColorValue);\n this.strokeDropDown.toggle();\n };\n FormDesigner.prototype.createDropDownButton = function (element, iconClass, target) {\n var popup = document.getElementById(target.id + \"-popup\");\n if (popup) {\n popup.remove();\n }\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 return dropDownButton;\n };\n /**\n * @private\n */\n FormDesigner.prototype.addClassFontItem = function (idString, className, isSelectedStyle) {\n var element = createElement('div', { id: this.pdfViewer.element.id + idString + '_div' });\n element.classList.add(className + \"-div\");\n var spanElement = createElement('span', { id: this.pdfViewer.element.id + idString + '_span' });\n spanElement.classList.add(className);\n spanElement.classList.add(\"e-pv-icon\");\n switch (className) {\n case 'e-pv-bold-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Bold'), element);\n break;\n case 'e-pv-italic-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Italic'), element);\n break;\n case 'e-pv-underlinetext-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Underlines'), element);\n break;\n case 'e-pv-strikeout-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Strikethroughs'), element);\n break;\n case 'e-pv-left-align-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Align left'), element);\n break;\n case 'e-pv-center-align-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Center'), element);\n break;\n case 'e-pv-right-align-icon':\n this.setToolTip(this.pdfViewer.localeObj.getConstant('Align right'), element);\n break;\n }\n if (isSelectedStyle)\n element.classList.add('e-pv-li-select');\n element.appendChild(spanElement);\n return element;\n };\n // eslint-disable-next-line max-len\n FormDesigner.prototype.createLabelElement = function (labelText, parentElement, isLabelNeeded, className, idString) {\n var container = createElement('div', { id: idString + '_container', className: className + '-container' });\n var label = null;\n if (isLabelNeeded) {\n label = createElement('div', { id: idString + '_label', className: className });\n label.textContent = labelText;\n container.appendChild(label);\n }\n parentElement.appendChild(label);\n };\n FormDesigner.prototype.setReadOnlyToFormField = function (selectedItem, isReadOnly) {\n for (var i = 0; i < this.pdfViewer.formFieldCollection.length; i++) {\n var formField = this.pdfViewer.formFieldCollection[i];\n if (formField.formFieldAnnotationType === selectedItem.formFieldAnnotationType && formField.name === selectedItem.name && formField.id === selectedItem.id) {\n formField.isReadonly = isReadOnly;\n switch (formField.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'DropdownList':\n case 'ListBox':\n case 'SignatureField':\n case 'InitialField':\n var inputElement = document.getElementById(formField.id + \"_content_html_element\").firstElementChild.firstElementChild;\n this.setReadOnlyToElement(formField, inputElement, isReadOnly);\n break;\n case 'RadioButton':\n var radioButtonDivDivElement = document.getElementById(formField.id + \"_content_html_element\").firstElementChild.firstElementChild.firstElementChild;\n this.setReadOnlyToElement(formField, radioButtonDivDivElement, isReadOnly);\n break;\n case 'Checkbox':\n var checkboxDivElement = document.getElementById(formField.id + \"_content_html_element\").firstElementChild.firstElementChild.lastElementChild;\n this.setReadOnlyToElement(formField, checkboxDivElement, isReadOnly);\n break;\n }\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.getFormDesignerSignField = function (signatureFieldCollection) {\n var collectiondata = this.pdfViewer.formFieldCollections;\n var dataCollection;\n for (var i = 0; i < collectiondata.length; i++) {\n dataCollection = collectiondata[i].type;\n if (dataCollection === \"SignatureField\" || dataCollection === \"InitialField\") {\n signatureFieldCollection.push(collectiondata[i]);\n }\n }\n return signatureFieldCollection;\n };\n FormDesigner.prototype.setRequiredToFormField = function (selectedItem, isRequired) {\n for (var i = 0; i < this.pdfViewer.formFieldCollection.length; i++) {\n var formField = this.pdfViewer.formFieldCollection[i];\n if (formField.formFieldAnnotationType === selectedItem.formFieldAnnotationType && formField.name === selectedItem.name && formField.id === selectedItem.id) {\n formField.isRequired = isRequired;\n switch (formField.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'DropdownList':\n case 'SignatureField':\n case 'InitialField':\n var inputElement = document.getElementById(formField.id + \"_content_html_element\").firstElementChild.firstElementChild;\n this.setRequiredToElement(formField, inputElement, isRequired);\n break;\n case 'RadioButton':\n var radioButtonDivDivElement = document.getElementById(formField.id + \"_content_html_element\").firstElementChild.firstElementChild.firstElementChild;\n this.setRequiredToElement(formField, radioButtonDivDivElement, isRequired);\n this.updateFormFieldCollections(formField);\n break;\n case 'Checkbox':\n var checkboxDivElement = document.getElementById(formField.id + \"_content_html_element\").firstElementChild.firstElementChild.lastElementChild;\n this.setRequiredToElement(formField, checkboxDivElement, isRequired);\n break;\n default:\n break;\n }\n }\n }\n };\n FormDesigner.prototype.setReadOnlyToElement = function (selectedItem, inputElement, isReadOnly) {\n var fillColor = '#daeaf7ff';\n inputElement.disabled = isReadOnly;\n if (isReadOnly) {\n if (selectedItem.formFieldAnnotationType === 'RadioButton') {\n inputElement.parentElement.style.cursor = 'default';\n }\n else if (selectedItem.formFieldAnnotationType === 'SignatureField' || selectedItem.formFieldAnnotationType === 'InitialField') {\n var thickness = !isNullOrUndefined(selectedItem.thickness) ? 1 : selectedItem.thickness;\n inputElement.parentElement.style.borderWidth = thickness;\n }\n else {\n inputElement.style.cursor = 'default';\n }\n }\n if (selectedItem.formFieldAnnotationType === 'RadioButton') {\n inputElement.parentElement.style.backgroundColor = selectedItem.backgroundColor != fillColor ? selectedItem.backgroundColor : 'transparent';\n }\n else if (selectedItem.formFieldAnnotationType === 'SignatureField' || selectedItem.formFieldAnnotationType === 'InitialField') {\n var background = selectedItem.backgroundColor ? selectedItem.backgroundColor : '#FFE48559';\n inputElement.parentElement.style.backgroundColor = this.getSignatureBackground(background);\n }\n inputElement.style.backgroundColor = selectedItem.backgroundColor != fillColor ? selectedItem.backgroundColor : 'transparent';\n inputElement.style.pointerEvents = selectedItem.isReadonly ? (selectedItem.isMultiline ? 'auto' : 'none') : 'auto';\n };\n FormDesigner.prototype.setRequiredToElement = function (selectedItem, inputElement, isRequired) {\n if (isRequired) {\n inputElement.required = true;\n inputElement.style.border = '1px solid red';\n if (selectedItem.formFieldAnnotationType === 'RadioButton') {\n var thickness = selectedItem.thickness === 0 ? 1 : selectedItem.thickness;\n inputElement.parentElement.style.boxShadow = 'red 0px 0px 0px ' + thickness + 'px';\n }\n else if (selectedItem.formFieldAnnotationType === 'SignatureField' || selectedItem.formFieldAnnotationType === 'InitialField') {\n var thickness = (selectedItem.thickness > 0) ? selectedItem.thickness : 1;\n inputElement.style.border = thickness + 'px solid red';\n }\n }\n else {\n inputElement.required = false;\n if (selectedItem.formFieldAnnotationType === 'SignatureField' || selectedItem.formFieldAnnotationType === 'InitialField') {\n inputElement.style.borderWidth = selectedItem.thickness;\n }\n else {\n inputElement.style.borderWidth = selectedItem.thickness + \"px\";\n }\n inputElement.style.borderColor = selectedItem.borderColor;\n if (selectedItem.formFieldAnnotationType === 'RadioButton') {\n inputElement.parentElement.style.boxShadow = selectedItem.borderColor + ' 0px 0px 0px ' + selectedItem.thickness + 'px';\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.destroyPropertiesWindow = function () {\n this.formFieldListItemCollection = [];\n this.formFieldListItemDataSource = [];\n this.formFieldFontFamily = null;\n this.formFieldFontSize = null;\n this.formFieldAlign = null;\n this.fontColorValue = null;\n this.backgroundColorValue = null;\n this.borderColorValue = null;\n this.formFieldBorderWidth = null;\n this.formFieldName = null;\n this.formFieldChecked = null;\n this.formFieldReadOnly = null;\n this.formFieldRequired = null;\n this.formFieldTooltip = null;\n this.formFieldPrinting = null;\n this.formFieldMultiline = null;\n this.formFieldVisibility = null;\n var dialogElement = this.pdfViewerBase.getElement('_properties_window');\n if (dialogElement) {\n dialogElement.parentElement.removeChild(dialogElement);\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.destroy = function () {\n this.destroyPropertiesWindow();\n };\n FormDesigner.prototype.hex = function (x) {\n return ('0' + x.toString(16)).slice(-2);\n };\n /**\n * @private\n */\n FormDesigner.prototype.getModuleName = function () {\n return 'FormDesigner';\n };\n FormDesigner.prototype.updateAnnotationCanvas = function (canvas, pageWidth, pageHeight, pageNumber) {\n var ratio = this.pdfViewerBase.getZoomRatio();\n canvas.width = pageWidth * ratio;\n canvas.height = pageHeight * ratio;\n canvas.style.width = pageWidth + 'px';\n canvas.style.height = pageHeight + 'px';\n canvas.style.position = 'absolute';\n canvas.style.zIndex = '1';\n this.pdfViewerBase.applyElementStyles(canvas, pageNumber);\n };\n FormDesigner.prototype.getFontFamily = function (fontFamily) {\n var fontFamilyNames = ['Helvetica', 'Courier', 'TimesRoman', 'Symbol', 'ZapfDingbats'];\n return fontFamilyNames.indexOf(fontFamily) > -1 ? true : false;\n };\n FormDesigner.prototype.updateTextFieldSettingProperties = function (drawingObject, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var textFieldSettings = this.pdfViewer.textFieldSettings;\n if (!isNullOrUndefined(textFieldSettings.isReadOnly) && this.textFieldPropertyChanged.isReadOnlyChanged) {\n drawingObject.isReadonly = textFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(textFieldSettings.isRequired) && this.textFieldPropertyChanged.isRequiredChanged) {\n drawingObject.isRequired = textFieldSettings.isRequired;\n }\n if (textFieldSettings.value && this.textFieldPropertyChanged.isValueChanged) {\n drawingObject.value = textFieldSettings.value;\n }\n if ((textFieldSettings.backgroundColor && textFieldSettings.backgroundColor !== 'white') && this.textFieldPropertyChanged.isBackgroundColorChanged) {\n drawingObject.backgroundColor = textFieldSettings.backgroundColor;\n }\n if ((textFieldSettings.borderColor && textFieldSettings.borderColor !== 'black') && this.textFieldPropertyChanged.isBorderColorChanged) {\n drawingObject.borderColor = textFieldSettings.borderColor;\n }\n if ((textFieldSettings.alignment && textFieldSettings.alignment !== 'Left') && this.textFieldPropertyChanged.isAlignmentChanged) {\n drawingObject.alignment = textFieldSettings.alignment;\n }\n if ((textFieldSettings.color && textFieldSettings.color !== 'black') && this.textFieldPropertyChanged.isColorChanged) {\n drawingObject.color = textFieldSettings.color;\n }\n if ((textFieldSettings.fontFamily && textFieldSettings.fontFamily !== 'Helvetica') && this.textFieldPropertyChanged.isFontFamilyChanged) {\n drawingObject.fontFamily = textFieldSettings.fontFamily;\n }\n if ((textFieldSettings.fontSize && textFieldSettings.fontSize !== 10) && this.textFieldPropertyChanged.isFontSizeChanged) {\n drawingObject.fontSize = textFieldSettings.fontSize;\n }\n if (textFieldSettings.fontStyle && this.textFieldPropertyChanged.isFontStyleChanged) {\n drawingObject.fontStyle = this.getFontStyleName(textFieldSettings.fontStyle, drawingObject);\n ;\n }\n if (textFieldSettings.name && this.textFieldPropertyChanged.isNameChanged) {\n drawingObject.name = textFieldSettings.name;\n }\n if (textFieldSettings.tooltip && this.textFieldPropertyChanged.isToolTipChanged) {\n drawingObject.tooltip = textFieldSettings.tooltip;\n }\n if ((textFieldSettings.thickness && textFieldSettings.thickness !== 1) && this.textFieldPropertyChanged.isThicknessChanged) {\n drawingObject.thickness = textFieldSettings.thickness;\n }\n if (textFieldSettings.maxLength && this.textFieldPropertyChanged.isMaxLengthChanged) {\n drawingObject.maxLength = textFieldSettings.maxLength;\n }\n if (textFieldSettings.visibility && this.textFieldPropertyChanged.isVisibilityChanged) {\n drawingObject.visibility = textFieldSettings.visibility;\n }\n if (!isNullOrUndefined(textFieldSettings.isPrint) && this.textFieldPropertyChanged.isPrintChanged) {\n drawingObject.isPrint = textFieldSettings.isPrint;\n }\n if (!isNullOrUndefined(textFieldSettings.isMultiline) && this.textFieldPropertyChanged.isMultilineChanged) {\n drawingObject.isMultiline = textFieldSettings.isMultiline;\n }\n };\n FormDesigner.prototype.updatePasswordFieldSettingProperties = function (drawingObject, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var passwordFieldSettings = this.pdfViewer.passwordFieldSettings;\n if (!isNullOrUndefined(passwordFieldSettings.isReadOnly) && this.passwordFieldPropertyChanged.isReadOnlyChanged) {\n drawingObject.isReadonly = passwordFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(passwordFieldSettings.isRequired) && this.passwordFieldPropertyChanged.isRequiredChanged) {\n drawingObject.isRequired = passwordFieldSettings.isRequired;\n }\n if (passwordFieldSettings.value && this.passwordFieldPropertyChanged.isValueChanged) {\n drawingObject.value = passwordFieldSettings.value;\n }\n if ((passwordFieldSettings.backgroundColor && passwordFieldSettings.backgroundColor !== 'white') && this.passwordFieldPropertyChanged.isBackgroundColorChanged) {\n drawingObject.backgroundColor = passwordFieldSettings.backgroundColor;\n }\n if ((passwordFieldSettings.borderColor && passwordFieldSettings.borderColor !== 'black') && this.passwordFieldPropertyChanged.isBorderColorChanged) {\n drawingObject.borderColor = passwordFieldSettings.borderColor;\n }\n if ((passwordFieldSettings.alignment && passwordFieldSettings.alignment !== 'Left') && this.passwordFieldPropertyChanged.isAlignmentChanged) {\n drawingObject.alignment = passwordFieldSettings.alignment;\n }\n if ((passwordFieldSettings.color && passwordFieldSettings.color !== 'black') && this.passwordFieldPropertyChanged.isColorChanged) {\n drawingObject.color = passwordFieldSettings.color;\n }\n if ((passwordFieldSettings.fontFamily && passwordFieldSettings.fontFamily !== 'Helvetica') && this.passwordFieldPropertyChanged.isFontFamilyChanged) {\n drawingObject.fontFamily = passwordFieldSettings.fontFamily;\n }\n if ((passwordFieldSettings.fontSize && passwordFieldSettings.fontSize !== 10) && this.passwordFieldPropertyChanged.isFontSizeChanged) {\n drawingObject.fontSize = passwordFieldSettings.fontSize;\n }\n if (passwordFieldSettings.fontStyle && this.passwordFieldPropertyChanged.isFontStyleChanged) {\n drawingObject.fontStyle = this.getFontStyleName(passwordFieldSettings.fontStyle, drawingObject);\n }\n if (passwordFieldSettings.name && this.passwordFieldPropertyChanged.isNameChanged) {\n drawingObject.name = passwordFieldSettings.name;\n }\n if (passwordFieldSettings.tooltip && this.passwordFieldPropertyChanged.isToolTipChanged) {\n drawingObject.tooltip = passwordFieldSettings.tooltip;\n }\n if ((passwordFieldSettings.thickness && passwordFieldSettings.thickness !== 1) && this.passwordFieldPropertyChanged.isThicknessChanged) {\n drawingObject.thickness = passwordFieldSettings.thickness;\n }\n if (passwordFieldSettings.maxLength && this.passwordFieldPropertyChanged.isMaxLengthChanged) {\n drawingObject.maxLength = passwordFieldSettings.maxLength;\n }\n if (passwordFieldSettings.visibility && this.passwordFieldPropertyChanged.isVisibilityChanged) {\n drawingObject.visibility = passwordFieldSettings.visibility;\n }\n if (!isNullOrUndefined(passwordFieldSettings.isPrint) && this.passwordFieldPropertyChanged.isPrintChanged) {\n drawingObject.isPrint = passwordFieldSettings.isPrint;\n }\n };\n FormDesigner.prototype.updateCheckBoxFieldSettingsProperties = function (drawingObject, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var checkBoxFieldSettings = this.pdfViewer.checkBoxFieldSettings;\n if (!isNullOrUndefined(checkBoxFieldSettings.isReadOnly) && this.checkBoxFieldPropertyChanged.isReadOnlyChanged) {\n drawingObject.isReadonly = checkBoxFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(checkBoxFieldSettings.isRequired) && this.checkBoxFieldPropertyChanged.isRequiredChanged) {\n drawingObject.isRequired = checkBoxFieldSettings.isRequired;\n }\n if ((checkBoxFieldSettings.backgroundColor && checkBoxFieldSettings.backgroundColor !== 'white') && this.checkBoxFieldPropertyChanged.isBackgroundColorChanged) {\n drawingObject.backgroundColor = checkBoxFieldSettings.backgroundColor;\n }\n if ((checkBoxFieldSettings.borderColor && checkBoxFieldSettings.borderColor !== 'black') && this.checkBoxFieldPropertyChanged.isBorderColorChanged) {\n drawingObject.borderColor = checkBoxFieldSettings.borderColor;\n }\n if (checkBoxFieldSettings.name && this.checkBoxFieldPropertyChanged.isNameChanged) {\n drawingObject.name = checkBoxFieldSettings.name;\n }\n if (checkBoxFieldSettings.tooltip && this.checkBoxFieldPropertyChanged.isToolTipChanged) {\n drawingObject.tooltip = checkBoxFieldSettings.tooltip;\n }\n if ((checkBoxFieldSettings.thickness && checkBoxFieldSettings.thickness !== 1) && this.checkBoxFieldPropertyChanged.isThicknessChanged) {\n drawingObject.thickness = checkBoxFieldSettings.thickness;\n }\n if (checkBoxFieldSettings.visibility && this.checkBoxFieldPropertyChanged.isVisibilityChanged) {\n drawingObject.visibility = checkBoxFieldSettings.visibility;\n }\n if (!isNullOrUndefined(checkBoxFieldSettings.isPrint) && this.checkBoxFieldPropertyChanged.isPrintChanged) {\n drawingObject.isPrint = checkBoxFieldSettings.isPrint;\n }\n if (!isNullOrUndefined(checkBoxFieldSettings.isChecked) && this.checkBoxFieldPropertyChanged.isCheckedChanged) {\n drawingObject.isChecked = checkBoxFieldSettings.isChecked;\n }\n };\n FormDesigner.prototype.updateRadioButtonFieldSettingProperties = function (drawingObject, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var radioButtonFieldSettings = this.pdfViewer.radioButtonFieldSettings;\n if (!isNullOrUndefined(radioButtonFieldSettings.isReadOnly) && this.radioButtonFieldPropertyChanged.isReadOnlyChanged) {\n drawingObject.isReadonly = radioButtonFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(radioButtonFieldSettings.isRequired) && this.radioButtonFieldPropertyChanged.isRequiredChanged) {\n drawingObject.isRequired = radioButtonFieldSettings.isRequired;\n }\n if ((radioButtonFieldSettings.backgroundColor && radioButtonFieldSettings.backgroundColor !== 'white') && this.radioButtonFieldPropertyChanged.isBackgroundColorChanged) {\n drawingObject.backgroundColor = radioButtonFieldSettings.backgroundColor;\n }\n if ((radioButtonFieldSettings.borderColor && radioButtonFieldSettings.borderColor !== 'black') && this.radioButtonFieldPropertyChanged.isBorderColorChanged) {\n drawingObject.borderColor = radioButtonFieldSettings.borderColor;\n }\n if (radioButtonFieldSettings.name && this.radioButtonFieldPropertyChanged.isNameChanged) {\n drawingObject.name = radioButtonFieldSettings.name;\n }\n if (radioButtonFieldSettings.tooltip && this.radioButtonFieldPropertyChanged.isToolTipChanged) {\n drawingObject.tooltip = radioButtonFieldSettings.tooltip;\n }\n if ((radioButtonFieldSettings.thickness && radioButtonFieldSettings.thickness !== 1) && this.radioButtonFieldPropertyChanged.isThicknessChanged) {\n drawingObject.thickness = radioButtonFieldSettings.thickness;\n }\n if (radioButtonFieldSettings.visibility && this.radioButtonFieldPropertyChanged.isVisibilityChanged) {\n drawingObject.visibility = radioButtonFieldSettings.visibility;\n }\n if (!isNullOrUndefined(radioButtonFieldSettings.isPrint) && this.radioButtonFieldPropertyChanged.isPrintChanged) {\n drawingObject.isPrint = radioButtonFieldSettings.isPrint;\n }\n if (!isNullOrUndefined(radioButtonFieldSettings.isSelected) && this.radioButtonFieldPropertyChanged.isSelectedChanged) {\n drawingObject.isSelected = radioButtonFieldSettings.isSelected;\n }\n };\n FormDesigner.prototype.updateDropdownFieldSettingsProperties = function (drawingObject, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var dropdownFieldSettings = this.pdfViewer.DropdownFieldSettings;\n if (!isNullOrUndefined(dropdownFieldSettings.isReadOnly) && this.dropdownFieldPropertyChanged.isReadOnlyChanged) {\n drawingObject.isReadonly = dropdownFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(dropdownFieldSettings.isRequired) && this.dropdownFieldPropertyChanged.isRequiredChanged) {\n drawingObject.isRequired = dropdownFieldSettings.isRequired;\n }\n if ((dropdownFieldSettings.backgroundColor && dropdownFieldSettings.backgroundColor !== 'white') && this.dropdownFieldPropertyChanged.isBackgroundColorChanged) {\n drawingObject.backgroundColor = dropdownFieldSettings.backgroundColor;\n }\n if ((dropdownFieldSettings.borderColor && dropdownFieldSettings.borderColor !== 'black') && this.dropdownFieldPropertyChanged.isBorderColorChanged) {\n drawingObject.borderColor = dropdownFieldSettings.borderColor;\n }\n if ((dropdownFieldSettings.alignment && dropdownFieldSettings.alignment !== 'Left') && this.dropdownFieldPropertyChanged.isAlignmentChanged) {\n drawingObject.alignment = dropdownFieldSettings.alignment;\n }\n if ((dropdownFieldSettings.color && dropdownFieldSettings.color !== 'black') && this.dropdownFieldPropertyChanged.isColorChanged) {\n drawingObject.color = dropdownFieldSettings.color;\n }\n if ((dropdownFieldSettings.fontFamily && dropdownFieldSettings.fontFamily !== 'Helvetica') && this.dropdownFieldPropertyChanged.isFontFamilyChanged) {\n drawingObject.fontFamily = dropdownFieldSettings.fontFamily;\n }\n if ((dropdownFieldSettings.fontSize && dropdownFieldSettings.fontSize !== 10) && this.dropdownFieldPropertyChanged.isFontSizeChanged) {\n drawingObject.fontSize = dropdownFieldSettings.fontSize;\n }\n if (dropdownFieldSettings.fontStyle && this.dropdownFieldPropertyChanged.isFontStyleChanged) {\n drawingObject.fontStyle = this.getFontStyleName(dropdownFieldSettings.fontStyle, drawingObject);\n ;\n }\n if (dropdownFieldSettings.name && this.dropdownFieldPropertyChanged.isNameChanged) {\n drawingObject.name = dropdownFieldSettings.name;\n }\n if (dropdownFieldSettings.tooltip && this.dropdownFieldPropertyChanged.isToolTipChanged) {\n drawingObject.tooltip = dropdownFieldSettings.tooltip;\n }\n if ((dropdownFieldSettings && dropdownFieldSettings.thickness !== 1) && this.dropdownFieldPropertyChanged.isThicknessChanged) {\n drawingObject.thickness = dropdownFieldSettings.thickness;\n }\n if (dropdownFieldSettings.visibility && this.dropdownFieldPropertyChanged.isVisibilityChanged) {\n drawingObject.visibility = dropdownFieldSettings.visibility;\n }\n if (!isNullOrUndefined(dropdownFieldSettings.isPrint) && this.dropdownFieldPropertyChanged.isPrintChanged) {\n drawingObject.isPrint = dropdownFieldSettings.isPrint;\n }\n if (dropdownFieldSettings.options && this.dropdownFieldPropertyChanged.isOptionChanged) {\n drawingObject.options = drawingObject.options && drawingObject.options.length > 0 ? drawingObject.options : dropdownFieldSettings.options;\n }\n };\n FormDesigner.prototype.updatelistBoxFieldSettingsProperties = function (drawingObject, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var listBoxFieldSettings = this.pdfViewer.listBoxFieldSettings;\n if (!isNullOrUndefined(listBoxFieldSettings.isReadOnly) && this.listBoxFieldPropertyChanged.isReadOnlyChanged) {\n drawingObject.isReadonly = listBoxFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(listBoxFieldSettings.isRequired) && this.listBoxFieldPropertyChanged.isRequiredChanged) {\n drawingObject.isRequired = listBoxFieldSettings.isRequired;\n }\n if ((listBoxFieldSettings.backgroundColor && listBoxFieldSettings.backgroundColor !== 'white') && this.listBoxFieldPropertyChanged.isBackgroundColorChanged) {\n drawingObject.backgroundColor = listBoxFieldSettings.backgroundColor;\n }\n if ((listBoxFieldSettings.borderColor && listBoxFieldSettings.borderColor !== 'black') && this.listBoxFieldPropertyChanged.isBorderColorChanged) {\n drawingObject.borderColor = listBoxFieldSettings.borderColor;\n }\n if ((listBoxFieldSettings.alignment && listBoxFieldSettings.alignment !== 'Left') && this.listBoxFieldPropertyChanged.isAlignmentChanged) {\n drawingObject.alignment = listBoxFieldSettings.alignment;\n }\n if ((listBoxFieldSettings.color && listBoxFieldSettings.color !== 'black') && this.listBoxFieldPropertyChanged.isColorChanged) {\n drawingObject.color = listBoxFieldSettings.color;\n }\n if ((listBoxFieldSettings.fontFamily && listBoxFieldSettings.fontFamily !== 'Helvetica') && this.listBoxFieldPropertyChanged.isFontFamilyChanged) {\n drawingObject.fontFamily = listBoxFieldSettings.fontFamily;\n }\n if ((listBoxFieldSettings.fontSize && listBoxFieldSettings.fontSize !== 10) && this.listBoxFieldPropertyChanged.isFontSizeChanged) {\n drawingObject.fontSize = listBoxFieldSettings.fontSize;\n }\n if (listBoxFieldSettings.fontStyle && this.listBoxFieldPropertyChanged.isFontStyleChanged) {\n drawingObject.fontStyle = this.getFontStyleName(listBoxFieldSettings.fontStyle, drawingObject);\n ;\n }\n if (listBoxFieldSettings.name && this.listBoxFieldPropertyChanged.isNameChanged) {\n drawingObject.name = listBoxFieldSettings.name;\n }\n if (listBoxFieldSettings.tooltip && this.listBoxFieldPropertyChanged.isToolTipChanged) {\n drawingObject.tooltip = listBoxFieldSettings.tooltip;\n }\n if ((listBoxFieldSettings.thickness && listBoxFieldSettings.thickness !== 1) && this.listBoxFieldPropertyChanged.isThicknessChanged) {\n drawingObject.thickness = listBoxFieldSettings.thickness;\n }\n if (listBoxFieldSettings.visibility && this.listBoxFieldPropertyChanged.isVisibilityChanged) {\n drawingObject.visibility = listBoxFieldSettings.visibility;\n }\n if (!isNullOrUndefined(listBoxFieldSettings.isPrint) && this.listBoxFieldPropertyChanged.isPrintChanged) {\n drawingObject.isPrint = listBoxFieldSettings.isPrint;\n }\n if (listBoxFieldSettings.options && this.listBoxFieldPropertyChanged.isOptionChanged) {\n drawingObject.options = drawingObject.options && drawingObject.options.length > 0 ? drawingObject.options : listBoxFieldSettings.options;\n }\n };\n FormDesigner.prototype.updateSignInitialFieldProperties = function (signatureField, isInitialField, isFormDesignerToolbarVisible, isSetFormFieldMode) {\n var initialFieldSettings = this.pdfViewer.initialFieldSettings;\n var signatureFieldSettings = this.pdfViewer.signatureFieldSettings;\n if (isInitialField) {\n if (!isNullOrUndefined(initialFieldSettings.isReadOnly) && this.initialFieldPropertyChanged.isReadOnlyChanged) {\n signatureField.isReadonly = initialFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(initialFieldSettings.isRequired) && this.initialFieldPropertyChanged.isRequiredChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.isRequired = initialFieldSettings.isRequired;\n }\n if (initialFieldSettings.visibility && this.initialFieldPropertyChanged.isVisibilityChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.visibility = initialFieldSettings.visibility;\n }\n if (initialFieldSettings.tooltip && this.initialFieldPropertyChanged.isTooltipChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.tooltip = initialFieldSettings.tooltip;\n }\n if ((!isNullOrUndefined(initialFieldSettings.thickness) && isSetFormFieldMode === true) && this.initialFieldPropertyChanged.isThicknessChanged) {\n signatureField.thickness = initialFieldSettings.thickness;\n }\n if (initialFieldSettings.name && this.initialFieldPropertyChanged.isNameChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.name = initialFieldSettings.name;\n }\n if (!isNullOrUndefined(initialFieldSettings.isPrint) && this.initialFieldPropertyChanged.isPrintChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.isPrint = initialFieldSettings.isPrint;\n }\n }\n else {\n if (!isNullOrUndefined(signatureFieldSettings.isReadOnly) && this.signatureFieldPropertyChanged.isReadOnlyChanged) {\n signatureField.isReadonly = signatureFieldSettings.isReadOnly;\n }\n if (!isNullOrUndefined(signatureFieldSettings.isRequired) && this.signatureFieldPropertyChanged.isRequiredChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.isRequired = signatureFieldSettings.isRequired;\n }\n if (signatureFieldSettings.visibility && this.signatureFieldPropertyChanged.isVisibilityChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.visibility = signatureFieldSettings.visibility;\n }\n if (signatureFieldSettings.tooltip && this.signatureFieldPropertyChanged.isTooltipChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.tooltip = signatureFieldSettings.tooltip;\n }\n if ((!isNullOrUndefined(signatureFieldSettings.thickness) && isSetFormFieldMode === true) && this.signatureFieldPropertyChanged.isThicknessChanged) {\n signatureField.thickness = signatureFieldSettings.thickness;\n }\n if (signatureFieldSettings.name && this.signatureFieldPropertyChanged.isNameChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.name = signatureFieldSettings.name;\n }\n if (!isNullOrUndefined(signatureFieldSettings.isPrint) && this.signatureFieldPropertyChanged.isPrintChanged && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n signatureField.isPrint = signatureFieldSettings.isPrint;\n }\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateSignatureSettings = function (newSignatureFieldSettings, isInitialField) {\n isInitialField = !isNullOrUndefined(isInitialField) ? isInitialField : false;\n if (isInitialField) {\n this.initialFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(newSignatureFieldSettings.isReadOnly);\n this.initialFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(newSignatureFieldSettings.isRequired);\n this.initialFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(newSignatureFieldSettings.visibility);\n this.initialFieldPropertyChanged.isTooltipChanged = !isNullOrUndefined(newSignatureFieldSettings.tooltip);\n this.initialFieldPropertyChanged.isNameChanged = !isNullOrUndefined(newSignatureFieldSettings.name);\n this.initialFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(newSignatureFieldSettings.isPrint);\n this.initialFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(newSignatureFieldSettings.thickness);\n }\n else {\n this.signatureFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(newSignatureFieldSettings.isReadOnly);\n this.signatureFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(newSignatureFieldSettings.isRequired);\n this.signatureFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(newSignatureFieldSettings.visibility);\n this.signatureFieldPropertyChanged.isTooltipChanged = !isNullOrUndefined(newSignatureFieldSettings.tooltip);\n this.signatureFieldPropertyChanged.isNameChanged = !isNullOrUndefined(newSignatureFieldSettings.name);\n this.signatureFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(newSignatureFieldSettings.isPrint);\n this.signatureFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(newSignatureFieldSettings.thickness);\n }\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateTextFieldSettings = function (textFieldSettings) {\n this.textFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(textFieldSettings.isReadOnly);\n this.textFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(textFieldSettings.isRequired);\n this.textFieldPropertyChanged.isValueChanged = !isNullOrUndefined(textFieldSettings.value);\n this.textFieldPropertyChanged.isBackgroundColorChanged = !isNullOrUndefined(textFieldSettings.backgroundColor);\n this.textFieldPropertyChanged.isBorderColorChanged = !isNullOrUndefined(textFieldSettings.borderColor);\n this.textFieldPropertyChanged.isAlignmentChanged = !isNullOrUndefined(textFieldSettings.alignment);\n this.textFieldPropertyChanged.isColorChanged = !isNullOrUndefined(textFieldSettings.color);\n this.textFieldPropertyChanged.isFontFamilyChanged = !isNullOrUndefined(textFieldSettings.fontFamily);\n this.textFieldPropertyChanged.isFontSizeChanged = !isNullOrUndefined(textFieldSettings.fontSize);\n this.textFieldPropertyChanged.isFontStyleChanged = !isNullOrUndefined(textFieldSettings.fontStyle);\n this.textFieldPropertyChanged.isNameChanged = !isNullOrUndefined(textFieldSettings.name);\n this.textFieldPropertyChanged.isToolTipChanged = !isNullOrUndefined(textFieldSettings.tooltip);\n this.textFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(textFieldSettings.thickness);\n this.textFieldPropertyChanged.isMaxLengthChanged = !isNullOrUndefined(textFieldSettings.maxLength);\n this.textFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(textFieldSettings.visibility);\n this.textFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(textFieldSettings.isPrint);\n this.textFieldPropertyChanged.isMultilineChanged = !isNullOrUndefined(textFieldSettings.isMultiline);\n };\n /**\n * @private\n */\n FormDesigner.prototype.updatePasswordFieldSettings = function (passwordFieldSettings) {\n this.passwordFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(passwordFieldSettings.isReadOnly);\n this.passwordFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(passwordFieldSettings.isRequired);\n this.passwordFieldPropertyChanged.isValueChanged = !isNullOrUndefined(passwordFieldSettings.value);\n this.passwordFieldPropertyChanged.isBackgroundColorChanged = !isNullOrUndefined(passwordFieldSettings.backgroundColor);\n this.passwordFieldPropertyChanged.isBorderColorChanged = !isNullOrUndefined(passwordFieldSettings.borderColor);\n this.passwordFieldPropertyChanged.isAlignmentChanged = !isNullOrUndefined(passwordFieldSettings.alignment);\n this.passwordFieldPropertyChanged.isColorChanged = !isNullOrUndefined(passwordFieldSettings.color);\n this.passwordFieldPropertyChanged.isFontFamilyChanged = !isNullOrUndefined(passwordFieldSettings.fontFamily);\n this.passwordFieldPropertyChanged.isFontSizeChanged = !isNullOrUndefined(passwordFieldSettings.fontSize);\n this.passwordFieldPropertyChanged.isFontStyleChanged = !isNullOrUndefined(passwordFieldSettings.fontStyle);\n this.passwordFieldPropertyChanged.isNameChanged = !isNullOrUndefined(passwordFieldSettings.name);\n this.passwordFieldPropertyChanged.isToolTipChanged = !isNullOrUndefined(passwordFieldSettings.tooltip);\n this.passwordFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(passwordFieldSettings.thickness);\n this.passwordFieldPropertyChanged.isMaxLengthChanged = !isNullOrUndefined(passwordFieldSettings.maxLength);\n this.passwordFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(passwordFieldSettings.visibility);\n this.passwordFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(passwordFieldSettings.isPrint);\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateCheckBoxFieldSettings = function (checkBoxFieldSettings) {\n this.checkBoxFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(checkBoxFieldSettings.isReadOnly);\n this.checkBoxFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(checkBoxFieldSettings.isRequired);\n this.checkBoxFieldPropertyChanged.isBackgroundColorChanged = !isNullOrUndefined(checkBoxFieldSettings.backgroundColor);\n this.checkBoxFieldPropertyChanged.isBorderColorChanged = !isNullOrUndefined(checkBoxFieldSettings.borderColor);\n this.checkBoxFieldPropertyChanged.isNameChanged = !isNullOrUndefined(checkBoxFieldSettings.name);\n this.checkBoxFieldPropertyChanged.isToolTipChanged = !isNullOrUndefined(checkBoxFieldSettings.tooltip);\n this.checkBoxFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(checkBoxFieldSettings.thickness);\n this.checkBoxFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(checkBoxFieldSettings.visibility);\n this.checkBoxFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(checkBoxFieldSettings.isPrint);\n this.checkBoxFieldPropertyChanged.isCheckedChanged = !isNullOrUndefined(checkBoxFieldSettings.isChecked);\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateRadioButtonFieldSettings = function (radioButtonFieldSettings) {\n this.radioButtonFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(radioButtonFieldSettings.isReadOnly);\n this.radioButtonFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(radioButtonFieldSettings.isRequired);\n this.radioButtonFieldPropertyChanged.isBackgroundColorChanged = !isNullOrUndefined(radioButtonFieldSettings.backgroundColor);\n this.radioButtonFieldPropertyChanged.isBorderColorChanged = !isNullOrUndefined(radioButtonFieldSettings.borderColor);\n this.radioButtonFieldPropertyChanged.isNameChanged = !isNullOrUndefined(radioButtonFieldSettings.name);\n this.radioButtonFieldPropertyChanged.isToolTipChanged = !isNullOrUndefined(radioButtonFieldSettings.tooltip);\n this.radioButtonFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(radioButtonFieldSettings.thickness);\n this.radioButtonFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(radioButtonFieldSettings.visibility);\n this.radioButtonFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(radioButtonFieldSettings.isPrint);\n this.radioButtonFieldPropertyChanged.isSelectedChanged = !isNullOrUndefined(radioButtonFieldSettings.isSelected);\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateDropDownFieldSettings = function (dropdownFieldSettings) {\n this.dropdownFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(dropdownFieldSettings.isReadOnly);\n this.dropdownFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(dropdownFieldSettings.isRequired);\n this.dropdownFieldPropertyChanged.isValueChanged = !isNullOrUndefined(dropdownFieldSettings.value);\n this.dropdownFieldPropertyChanged.isBackgroundColorChanged = !isNullOrUndefined(dropdownFieldSettings.backgroundColor);\n this.dropdownFieldPropertyChanged.isBorderColorChanged = !isNullOrUndefined(dropdownFieldSettings.borderColor);\n this.dropdownFieldPropertyChanged.isAlignmentChanged = !isNullOrUndefined(dropdownFieldSettings.alignment);\n this.dropdownFieldPropertyChanged.isColorChanged = !isNullOrUndefined(dropdownFieldSettings.color);\n this.dropdownFieldPropertyChanged.isFontFamilyChanged = !isNullOrUndefined(dropdownFieldSettings.fontFamily);\n this.dropdownFieldPropertyChanged.isFontSizeChanged = !isNullOrUndefined(dropdownFieldSettings.fontSize);\n this.dropdownFieldPropertyChanged.isFontStyleChanged = !isNullOrUndefined(dropdownFieldSettings.fontStyle);\n this.dropdownFieldPropertyChanged.isNameChanged = !isNullOrUndefined(dropdownFieldSettings.name);\n this.dropdownFieldPropertyChanged.isToolTipChanged = !isNullOrUndefined(dropdownFieldSettings.tooltip);\n this.dropdownFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(dropdownFieldSettings.thickness);\n this.dropdownFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(dropdownFieldSettings.visibility);\n this.dropdownFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(dropdownFieldSettings.isPrint);\n this.dropdownFieldPropertyChanged.isOptionChanged = !isNullOrUndefined(dropdownFieldSettings.options);\n };\n /**\n * @private\n */\n FormDesigner.prototype.updateListBoxFieldSettings = function (listBoxFieldSettings) {\n this.listBoxFieldPropertyChanged.isReadOnlyChanged = !isNullOrUndefined(listBoxFieldSettings.isReadOnly);\n this.listBoxFieldPropertyChanged.isRequiredChanged = !isNullOrUndefined(listBoxFieldSettings.isRequired);\n this.listBoxFieldPropertyChanged.isBackgroundColorChanged = !isNullOrUndefined(listBoxFieldSettings.backgroundColor);\n this.listBoxFieldPropertyChanged.isBorderColorChanged = !isNullOrUndefined(listBoxFieldSettings.borderColor);\n this.listBoxFieldPropertyChanged.isAlignmentChanged = !isNullOrUndefined(listBoxFieldSettings.alignment);\n this.listBoxFieldPropertyChanged.isColorChanged = !isNullOrUndefined(listBoxFieldSettings.color);\n this.listBoxFieldPropertyChanged.isFontFamilyChanged = !isNullOrUndefined(listBoxFieldSettings.fontFamily);\n this.listBoxFieldPropertyChanged.isFontSizeChanged = !isNullOrUndefined(listBoxFieldSettings.fontSize);\n this.listBoxFieldPropertyChanged.isFontStyleChanged = !isNullOrUndefined(listBoxFieldSettings.fontStyle);\n this.listBoxFieldPropertyChanged.isNameChanged = !isNullOrUndefined(listBoxFieldSettings.name);\n this.listBoxFieldPropertyChanged.isToolTipChanged = !isNullOrUndefined(listBoxFieldSettings.tooltip);\n this.listBoxFieldPropertyChanged.isThicknessChanged = !isNullOrUndefined(listBoxFieldSettings.thickness);\n this.listBoxFieldPropertyChanged.isVisibilityChanged = !isNullOrUndefined(listBoxFieldSettings.visibility);\n this.listBoxFieldPropertyChanged.isPrintChanged = !isNullOrUndefined(listBoxFieldSettings.isPrint);\n this.listBoxFieldPropertyChanged.isOptionChanged = !isNullOrUndefined(listBoxFieldSettings.options);\n };\n FormDesigner.prototype.getFontStyleName = function (fontStyle, drawingObject) {\n var fontStyleName = 'None';\n if (fontStyle === 1) {\n drawingObject.font.isBold = true;\n fontStyleName = 'Bold';\n }\n if (fontStyle === 2) {\n drawingObject.font.isItalic = true;\n fontStyleName = 'Italic';\n }\n if (fontStyle === 3) {\n drawingObject.font.isBold = true;\n drawingObject.font.isItalic = true;\n fontStyleName = 'Bold Italic';\n }\n if (fontStyle === 4) {\n drawingObject.font.isUnderline = true;\n fontStyleName = 'Underline';\n }\n if (fontStyle === 5) {\n drawingObject.font.isBold = true;\n drawingObject.font.isUnderline = true;\n fontStyleName = 'Bold Underline';\n }\n if (fontStyle === 6) {\n drawingObject.font.isUnderline = true;\n drawingObject.font.isItalic = true;\n fontStyleName = 'Underline Italic';\n }\n if (fontStyle === 7) {\n drawingObject.font.isBold = true;\n drawingObject.font.isItalic = true;\n drawingObject.font.isUnderline = true;\n fontStyleName = 'Bold Italic Underline';\n }\n if (fontStyle === 8) {\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Strikethrough';\n }\n if (fontStyle === 9) {\n drawingObject.font.isBold = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Bold Strikethrough';\n }\n if (fontStyle === 10) {\n drawingObject.font.isItalic = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Italic Strikethrough';\n }\n if (fontStyle === 11) {\n drawingObject.font.isBold = true;\n drawingObject.font.isItalic = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Bold Italic Strikethrough';\n }\n if (fontStyle === 12) {\n drawingObject.font.isUnderline = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Underline Strikethrough';\n }\n if (fontStyle === 13) {\n drawingObject.font.isBold = true;\n drawingObject.font.isUnderline = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Bold Underline Strikethrough';\n }\n if (fontStyle === 14) {\n drawingObject.font.isItalic = true;\n drawingObject.font.isUnderline = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Italic Underline Strikethrough';\n }\n if (fontStyle === 15) {\n drawingObject.font.isBold = true;\n drawingObject.font.isItalic = true;\n drawingObject.font.isUnderline = true;\n drawingObject.font.isStrikeout = true;\n fontStyleName = 'Bold Italic Underline Strikethrough';\n }\n return fontStyleName;\n };\n FormDesigner.prototype.getAlignment = function (alignment) {\n var align;\n if (alignment === 'left') {\n align = 'left';\n }\n else if (alignment === 'right') {\n align = 'right';\n }\n else if (alignment === 'center') {\n align = 'center';\n }\n this.formFieldAlign = align;\n };\n FormDesigner.prototype.getFontStyle = function (font) {\n if (font.isBold) {\n this.formFieldBold = 'bold';\n }\n if (font.isItalic) {\n this.formFieldItalic = 'italic';\n }\n if (font.isUnderline) {\n this.formFieldUnderline = 'underline';\n }\n if (font.isStrikeout) {\n this.formFieldStrikeOut = 'line-through';\n }\n };\n return FormDesigner;\n}());\nexport { FormDesigner };\n","import { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\n/**\n * The `TextMarkupAnnotation` module is used to handle text markup annotation actions of PDF viewer.\n *\n * @hidden\n */\nvar TextMarkupAnnotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function TextMarkupAnnotation(pdfViewer, viewerBase) {\n var _this = this;\n /**\n * @private\n */\n this.currentTextMarkupAddMode = '';\n /**\n * @private\n */\n this.selectTextMarkupCurrentPage = null;\n /**\n * @private\n */\n this.currentTextMarkupAnnotation = null;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n this.currentAnnotationIndex = null;\n this.isAnnotationSelect = false;\n /**\n * @private\n */\n this.isDropletClicked = false;\n /**\n * @private\n */\n this.isRightDropletClicked = false;\n /**\n * @private\n */\n this.isLeftDropletClicked = false;\n /**\n * @private\n */\n this.isSelectionMaintained = false;\n this.isExtended = false;\n this.isNewAnnotation = false;\n this.selectedTextMarkup = null;\n this.multiPageCollection = [];\n this.triggerAddEvent = false;\n /**\n * @private\n */\n this.isSelectedAnnotation = false;\n this.dropletHeight = 20;\n /**\n * @private\n */\n this.annotationClickPosition = {};\n // eslint-disable-next-line\n this.maintainSelection = function (event) {\n _this.isDropletClicked = true;\n _this.pdfViewer.textSelectionModule.initiateSelectionByTouch();\n _this.isExtended = true;\n _this.pdfViewer.textSelectionModule.selectionRangeArray = [];\n };\n // eslint-disable-next-line\n this.selectionEnd = function (event) {\n if (_this.isDropletClicked) {\n _this.isDropletClicked = false;\n }\n };\n // eslint-disable-next-line\n this.annotationLeftMove = function (event) {\n if (_this.isDropletClicked) {\n _this.isLeftDropletClicked = true;\n }\n };\n // eslint-disable-next-line\n this.annotationRightMove = function (event) {\n if (_this.isDropletClicked) {\n _this.isRightDropletClicked = true;\n }\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.createAnnotationSelectElement = function () {\n // eslint-disable-next-line max-len\n this.dropDivAnnotationLeft = createElement('div', { id: this.pdfViewer.element.id + '_droplet_left', className: 'e-pv-drop' });\n this.dropDivAnnotationLeft.style.borderRight = '2px solid';\n // eslint-disable-next-line max-len\n this.dropDivAnnotationRight = createElement('div', { id: this.pdfViewer.element.id + '_droplet_right', className: 'e-pv-drop' });\n this.dropDivAnnotationRight.style.borderLeft = '2px solid';\n this.dropElementLeft = createElement('div', { className: 'e-pv-droplet', id: this.pdfViewer.element.id + '_dropletspan_left' });\n this.dropElementLeft.style.transform = 'rotate(0deg)';\n this.dropDivAnnotationLeft.appendChild(this.dropElementLeft);\n this.dropElementRight = createElement('div', { className: 'e-pv-droplet', id: this.pdfViewer.element.id + '_dropletspan_right' });\n this.dropElementRight.style.transform = 'rotate(-90deg)';\n this.dropDivAnnotationRight.appendChild(this.dropElementRight);\n this.pdfViewerBase.pageContainer.appendChild(this.dropDivAnnotationLeft);\n this.pdfViewerBase.pageContainer.appendChild(this.dropDivAnnotationRight);\n this.dropElementLeft.style.top = '20px';\n this.dropElementRight.style.top = '20px';\n this.dropElementRight.style.left = '-8px';\n this.dropElementLeft.style.left = '-8px';\n this.dropDivAnnotationLeft.style.display = 'none';\n this.dropDivAnnotationRight.style.display = 'none';\n this.dropDivAnnotationLeft.addEventListener('mousedown', this.maintainSelection);\n this.dropDivAnnotationLeft.addEventListener('mousemove', this.annotationLeftMove);\n this.dropDivAnnotationLeft.addEventListener('mouseup', this.selectionEnd);\n this.dropDivAnnotationRight.addEventListener('mousedown', this.maintainSelection);\n this.dropDivAnnotationRight.addEventListener('mousemove', this.annotationRightMove);\n this.dropDivAnnotationRight.addEventListener('mouseup', this.selectionEnd);\n };\n /**\n * @param target\n * @param x\n * @param y\n * @param target\n * @param x\n * @param y\n * @param target\n * @param x\n * @param y\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.textSelect = function (target, x, y) {\n if (this.isLeftDropletClicked) {\n var leftElement = this.dropDivAnnotationRight.getBoundingClientRect();\n var rightElement = this.dropDivAnnotationLeft.getBoundingClientRect();\n var clientX = x;\n var clientY = y;\n if (target.classList.contains('e-pv-text')) {\n if ((rightElement.top - 25) > leftElement.top) {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, true);\n }\n else {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, false);\n }\n this.updateLeftposition(clientX, clientY);\n }\n }\n else if (this.isRightDropletClicked) {\n var leftElement = this.dropDivAnnotationLeft.getBoundingClientRect();\n var clientX = x;\n var clientY = y;\n if (target.classList.contains('e-pv-text')) {\n if ((clientY) >= leftElement.top) {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, true);\n }\n else {\n this.pdfViewer.textSelectionModule.textSelectionOnDrag(target, clientX, clientY, false);\n }\n this.updatePosition(clientX, clientY);\n }\n }\n };\n /**\n * @param hide\n * @private\n */\n TextMarkupAnnotation.prototype.showHideDropletDiv = function (hide) {\n var type = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode;\n var isEnableResizer = this.isEnableTextMarkupResizer(type);\n if (isEnableResizer && this.dropDivAnnotationLeft && this.dropDivAnnotationRight) {\n if (hide) {\n this.dropDivAnnotationLeft.style.display = 'none';\n this.dropDivAnnotationRight.style.display = 'none';\n }\n else {\n this.dropDivAnnotationLeft.style.display = '';\n this.dropDivAnnotationRight.style.display = '';\n this.updateDropletStyles(type);\n }\n }\n };\n /**\n * @param type\n * @private\n */\n TextMarkupAnnotation.prototype.isEnableTextMarkupResizer = function (type) {\n var isEnableResizer = false;\n if (type) {\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n }\n else {\n if (this.pdfViewer.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.highlightSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.underlineSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n else if (this.pdfViewer.strikethroughSettings.enableTextMarkupResizer) {\n isEnableResizer = true;\n }\n }\n return isEnableResizer;\n };\n TextMarkupAnnotation.prototype.updateDropletStyles = function (type) {\n if (this.isEnableTextMarkupResizer(type) && this.dropDivAnnotationLeft && this.dropDivAnnotationLeft.offsetWidth > 0) {\n this.dropDivAnnotationLeft.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivAnnotationRight.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementLeft.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementRight.style.width = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivAnnotationLeft.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropDivAnnotationRight.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementLeft.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementRight.style.height = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementLeft.style.top = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n this.dropElementRight.style.top = this.dropletHeight * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n };\n TextMarkupAnnotation.prototype.updateAnnotationBounds = function () {\n this.isSelectionMaintained = false;\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n if (annotation && annotation.isMultiSelect) {\n this.showHideDropletDiv(true);\n this.updateMultiAnnotBounds(annotation);\n }\n else if (annotation && annotation.bounds) {\n this.retreieveSelection(annotation, null);\n this.pdfViewer.textSelectionModule.maintainSelection(this.selectTextMarkupCurrentPage, false);\n this.isSelectionMaintained = true;\n window.getSelection().removeAllRanges();\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateMultiAnnotBounds = function (annotation) {\n if (!annotation.annotpageNumbers) {\n var annotationList = this.getAnnotations(annotation.pageNumber, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === annotation.annotName) {\n annotation = annotationList[z];\n break;\n }\n }\n }\n }\n var lowestNumber = annotation.annotpageNumbers[0];\n var highestNumber = annotation.annotpageNumbers[0];\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n if (currentPage >= highestNumber) {\n highestNumber = currentPage;\n }\n if (currentPage <= lowestNumber) {\n lowestNumber = currentPage;\n }\n }\n for (var k = lowestNumber; k <= highestNumber; k++) {\n var annotationList = this.getAnnotations(k, null);\n if (annotationList) {\n for (var j = 0; j < annotation.annotNameCollection.length; j++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[j];\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n // eslint-disable-next-line\n var newAnnotation = annotationList[z];\n this.retreieveSelection(newAnnotation, null);\n this.pdfViewer.textSelectionModule.maintainSelection(newAnnotation.pageNumber, false);\n }\n }\n }\n }\n }\n this.isSelectionMaintained = true;\n window.getSelection().removeAllRanges();\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.retreieveSelection = function (annotation, element) {\n for (var k = 0; k < annotation.bounds.length; k++) {\n // eslint-disable-next-line\n var bound = annotation.bounds[k];\n var x = (bound.left ? bound.left : bound.Left) * this.pdfViewerBase.getZoomFactor();\n var y = (bound.top ? bound.top : bound.Top) * this.pdfViewerBase.getZoomFactor();\n var width = (bound.width ? bound.width : bound.Width) * this.pdfViewerBase.getZoomFactor();\n var height = bound.height ? bound.height : bound.Height;\n // eslint-disable-next-line\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + annotation.pageNumber);\n if (textLayer) {\n // eslint-disable-next-line\n var textDivs = textLayer.childNodes;\n for (var n = 0; n < textDivs.length; n++) {\n if (textDivs[n]) {\n // eslint-disable-next-line\n var rangebounds = textDivs[n].getBoundingClientRect();\n var top_1 = this.getClientValueTop(rangebounds.top, annotation.pageNumber);\n // eslint-disable-next-line max-len\n var currentLeft = rangebounds.left - this.pdfViewerBase.getElement('_pageDiv_' + annotation.pageNumber).getBoundingClientRect().left;\n var totalLeft = currentLeft + rangebounds.width;\n // eslint-disable-next-line\n var textDiVLeft = parseInt(textDivs[n].style.left);\n // eslint-disable-next-line\n var currentTop = parseInt(textDivs[n].style.top);\n var isLeftBounds = this.pdfViewer.textSelectionModule.checkLeftBounds(currentLeft, textDiVLeft, totalLeft, x);\n var isTopBounds = this.pdfViewer.textSelectionModule.checkTopBounds(top_1, currentTop, y);\n if (isLeftBounds && isTopBounds) {\n element = textDivs[n];\n break;\n }\n }\n }\n if (element != null) {\n // eslint-disable-next-line\n var boundingRect = this.pdfViewerBase.getElement('_textLayer_' + annotation.pageNumber).getBoundingClientRect();\n this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(element, x + boundingRect.left, y + boundingRect.top, false);\n if ((annotation.bounds.length - 1) === k) {\n // eslint-disable-next-line max-len\n this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(element, x + boundingRect.left + width, y + boundingRect.top, false);\n }\n }\n }\n }\n };\n /**\n * @param x\n * @param y\n * @param isSelected\n * @private\n */\n TextMarkupAnnotation.prototype.updatePosition = function (x, y, isSelected) {\n this.showHideDropletDiv(false);\n var pageTopValue = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top;\n var topClientValue = this.getClientValueTop(y, this.pdfViewerBase.currentPageNumber - 1);\n // eslint-disable-next-line\n var rightDivElement = document.getElementById(this.pdfViewer.element.id + '_droplet_right');\n if (isSelected) {\n // eslint-disable-next-line max-len\n rightDivElement.style.top = topClientValue * this.pdfViewerBase.getZoomFactor() + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n rightDivElement.style.top = topClientValue + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n // eslint-disable-next-line max-len\n rightDivElement.style.left = x + this.pdfViewerBase.viewerContainer.scrollLeft - this.pdfViewerBase.viewerContainer.getBoundingClientRect().left + 'px';\n };\n /**\n * @param x\n * @param y\n * @param isSelected\n * @param x\n * @param y\n * @param isSelected\n * @private\n */\n TextMarkupAnnotation.prototype.updateLeftposition = function (x, y, isSelected) {\n this.showHideDropletDiv(false);\n var pageTopValue = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top;\n var topClientValue = this.getClientValueTop(y, this.pdfViewerBase.currentPageNumber - 1);\n // eslint-disable-next-line\n var leftDivElement = document.getElementById(this.pdfViewer.element.id + '_droplet_left');\n leftDivElement.style.display = '';\n if (isSelected) {\n // eslint-disable-next-line max-len\n leftDivElement.style.top = topClientValue * this.pdfViewerBase.getZoomFactor() + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n leftDivElement.style.top = topClientValue + pageTopValue * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n // eslint-disable-next-line max-len\n leftDivElement.style.left = x + this.pdfViewerBase.viewerContainer.scrollLeft - this.pdfViewerBase.viewerContainer.getBoundingClientRect().left - (this.dropletHeight * this.pdfViewerBase.getZoomFactor()) + 'px';\n };\n TextMarkupAnnotation.prototype.getClientValueTop = function (clientValue, pageNumber) {\n if (this.pdfViewerBase.getElement('_pageDiv_' + pageNumber)) {\n // eslint-disable-next-line max-len\n return clientValue - this.pdfViewerBase.getElement('_pageDiv_' + pageNumber).getBoundingClientRect().top;\n }\n else {\n return clientValue;\n }\n };\n /**\n * @param textMarkupAnnotations\n * @param pageNumber\n * @param isImportTextMarkup\n * @param textMarkupAnnotations\n * @param pageNumber\n * @param isImportTextMarkup\n * @param textMarkupAnnotations\n * @param pageNumber\n * @param isImportTextMarkup\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderTextMarkupAnnotationsInPage = function (textMarkupAnnotations, pageNumber, isImportTextMarkup, isAnnotOrderAction) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (isImportTextMarkup) {\n this.renderTextMarkupAnnotations(null, pageNumber, canvas, this.pdfViewerBase.getZoomFactor());\n this.renderTextMarkupAnnotations(textMarkupAnnotations, pageNumber, canvas, this.pdfViewerBase.getZoomFactor(), true);\n }\n else {\n this.renderTextMarkupAnnotations(textMarkupAnnotations, pageNumber, canvas, this.pdfViewerBase.getZoomFactor(), null, isAnnotOrderAction);\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderTextMarkupAnnotations = function (textMarkupAnnotations, pageNumber, canvas, factor, isImportAction, isAnnotOrderAction) {\n if (canvas) {\n var context = canvas.getContext('2d');\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.setLineDash([]);\n // eslint-disable-next-line\n var annotations = void 0;\n if (!isImportAction && !isAnnotOrderAction) {\n annotations = this.getAnnotations(pageNumber, textMarkupAnnotations);\n }\n else {\n annotations = textMarkupAnnotations;\n }\n if (annotations) {\n for (var i = 0; i < annotations.length; i++) {\n // eslint-disable-next-line\n var annotation = annotations[i];\n var annotationObject = null;\n var isAnnotationRotated = void 0;\n if (annotation.TextMarkupAnnotationType) {\n if (isImportAction) {\n if (this.pdfViewerBase.isJsonImported) {\n var newArray = [];\n for (var i_1 = 0; i_1 < annotation.Bounds.length; i_1++) {\n // eslint-disable-next-line\n annotation.Bounds[i_1] = this.pdfViewerBase.importJsonForRotatedDocuments(annotation.Rotate, pageNumber, annotation.Bounds[i_1], annotation.AnnotationRotation);\n annotation.Bounds[i_1].left = annotation.Bounds[i_1].X;\n annotation.Bounds[i_1].top = annotation.Bounds[i_1].Y;\n newArray.push(annotation.Bounds[i_1]);\n }\n annotation.Bounds = newArray;\n isAnnotationRotated = this.pdfViewerBase.isPageRotated;\n }\n }\n // eslint-disable-next-line max-len\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n if (!annotation.Author) {\n // eslint-disable-next-line max-len\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('textMarkup', annotation.TextMarkupAnnotationType);\n }\n if (!annotation.Subject) {\n annotation.Subject = annotation.TextMarkupAnnotationType;\n }\n if (annotation.AnnotationSettings && annotation.AnnotationSettings.isLock) {\n annotation.AnnotationSettings = { isLock: annotation.AnnotationSettings.isLock };\n }\n else {\n annotation.AnnotationSettings = this.getAnnotationSettings(annotation.TextMarkupAnnotationType);\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n textMarkupAnnotationType: annotation.TextMarkupAnnotationType, color: annotation.Color, allowedInteractions: annotation.allowedInteractions, opacity: annotation.Opacity, bounds: annotation.Bounds, author: annotation.Author, subject: annotation.Subject, modifiedDate: annotation.ModifiedDate, note: annotation.Note, rect: annotation.Rect,\n // eslint-disable-next-line max-len\n annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, shapeAnnotationType: 'textMarkup', pageNumber: pageNumber,\n textMarkupContent: annotation.TextMarkupContent, textMarkupStartIndex: 0, textMarkupEndIndex: 0, annotationSelectorSettings: this.getSettings(annotation),\n // eslint-disable-next-line max-len\n customData: this.pdfViewer.annotation.getCustomData(annotation), annotationAddMode: annotation.annotationAddMode, annotationSettings: annotation.AnnotationSettings, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: isAnnotationRotated, annotationRotation: annotation.AnnotationRotation\n };\n if (annotation.IsMultiSelect) {\n annotationObject.annotNameCollection = annotation.AnnotNameCollection;\n annotationObject.annotpageNumbers = annotation.AnnotpageNumbers;\n annotationObject.isMultiSelect = annotation.IsMultiSelect;\n }\n if (annotation.textMarkupContent && annotation.textMarkupContent !== '') {\n annotationObject.textMarkupContent = annotation.textMarkupContent;\n annotationObject.textMarkupStartIndex = annotation.textMarkupStartIndex;\n annotationObject.textMarkupEndIndex = annotation.textMarkupEndIndex;\n }\n if (isNullOrUndefined(annotation.TextMarkupContent) && isNullOrUndefined(annotation.textMarkupContent)) {\n var markedBounds = annotation.Bounds[0];\n var storedData = this.pdfViewerBase.getStoredData(pageNumber, true);\n if (isNullOrUndefined(storedData)) {\n this.pdfViewerBase.requestForTextExtraction(pageNumber, annotationObject);\n }\n else {\n var pageCharText = storedData.pageText.split('');\n var characterBounds = this.pdfViewerBase.textLayer.characterBound[pageNumber];\n var textMarkupContent = this.pdfViewerBase.textMarkUpContent(markedBounds, pageCharText, characterBounds);\n annotationObject.textMarkupContent = textMarkupContent;\n }\n }\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_textMarkup');\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annotationObject.opacity, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n width: annotationObject.bounds.width, height: annotationObject.bounds.height\n };\n this.pdfViewer.fireAnnotationAdd(annotationObject.pageNumber, annotationObject.annotName, annotation.TextMarkupAnnotationType, annotationObject.bounds, settings);\n }\n }\n // eslint-disable-next-line max-len\n var type = annotation.TextMarkupAnnotationType ? annotation.TextMarkupAnnotationType : annotation.textMarkupAnnotationType;\n // eslint-disable-next-line\n var annotBounds = annotation.Bounds ? annotation.Bounds : annotation.bounds;\n var opacity = annotation.Opacity ? annotation.Opacity : annotation.opacity;\n var color = annotation.Color ? annotation.Color : annotation.color;\n var annotationRotation = annotation.AnnotationRotation ? annotation.AnnotationRotation : annotation.annotationRotation;\n var isPrint = true;\n if (annotation.TextMarkupAnnotationType) {\n isPrint = annotation.IsPrint;\n }\n if (annotation.textMarkupAnnotationType) {\n isPrint = annotation.isPrint;\n }\n switch (type) {\n case 'Highlight':\n this.renderHighlightAnnotation(annotBounds, opacity, color, context, factor, isPrint, pageNumber);\n break;\n case 'Strikethrough':\n this.renderStrikeoutAnnotation(annotBounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation);\n break;\n case 'Underline':\n this.renderUnderlineAnnotation(annotBounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation);\n break;\n }\n }\n }\n var isMaintainedSelector = false;\n if (this.currentTextMarkupAnnotation && this.currentTextMarkupAnnotation.annotpageNumbers) {\n for (var m = 0; m < this.currentTextMarkupAnnotation.annotpageNumbers.length; m++) {\n if (pageNumber === this.currentTextMarkupAnnotation.annotpageNumbers[m]) {\n isMaintainedSelector = true;\n this.isAnnotationSelect = false;\n break;\n }\n }\n }\n if ((pageNumber === this.selectTextMarkupCurrentPage) || isMaintainedSelector) {\n if (!this.isAnnotationSelect) {\n this.maintainAnnotationSelection();\n }\n else {\n this.isAnnotationSelect = false;\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getSettings = function (annotation) {\n var selector;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.TextMarkupAnnotationType);\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n TextMarkupAnnotation.prototype.drawTextMarkupAnnotations = function (type) {\n this.isTextMarkupAnnotationMode = true;\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.currentTextMarkupAddMode = type;\n var isCleared = true;\n this.multiPageCollection = [];\n var selectionObject = this.pdfViewer.textSelectionModule ? this.pdfViewer.textSelectionModule.selectionRangeArray : [];\n if (selectionObject.length > 0 && !this.isSelectionMaintained) {\n this.convertSelectionToTextMarkup(type, selectionObject, this.pdfViewerBase.getZoomFactor());\n }\n var selection = window.getSelection();\n var targetElement;\n if (selection && selection.anchorNode) {\n targetElement = selection.anchorNode.parentElement;\n }\n if (this.isEnableTextMarkupResizer(type) && this.isExtended && window.getSelection().toString()) {\n var pageBounds = this.getDrawnBounds();\n if (pageBounds[0] && pageBounds[0].bounds) {\n // eslint-disable-next-line\n var currentAnnot = this.currentTextMarkupAnnotation;\n for (var k = 0; k < pageBounds.length; k++) {\n if (currentAnnot && currentAnnot.pageNumber === pageBounds[k].pageIndex) {\n this.currentTextMarkupAnnotation = currentAnnot;\n this.selectTextMarkupCurrentPage = pageBounds[k].pageIndex;\n this.updateTextMarkupAnnotationBounds(pageBounds, k);\n }\n else {\n if (currentAnnot) {\n if (type === '') {\n type = currentAnnot.textMarkupAnnotationType;\n }\n }\n if (!currentAnnot.isMultiSelect) {\n var isMultiSelect = false;\n if (this.isMultiAnnotation(type)) {\n this.multiPageCollection.push(currentAnnot);\n isMultiSelect = true;\n }\n // eslint-disable-next-line max-len\n this.drawTextMarkups(type, pageBounds[k].bounds, pageBounds[k].pageIndex, pageBounds[k].rect, this.pdfViewerBase.getZoomFactor(), pageBounds[k].textContent, pageBounds[k].startIndex, pageBounds[k].endIndex, isMultiSelect, targetElement);\n }\n else {\n if (currentAnnot.isMultiSelect && currentAnnot.annotNameCollection) {\n this.modifyCurrentAnnotation(currentAnnot, pageBounds, k);\n }\n }\n }\n }\n }\n }\n else if (window.getSelection().toString()) {\n var pageBounds = this.getDrawnBounds();\n var isMultiSelect = this.isMultiPageAnnotations(pageBounds, type);\n if (pageBounds.length > 0) {\n for (var i = 0; i < pageBounds.length; i++) {\n if (type === '') {\n isCleared = false;\n }\n // eslint-disable-next-line max-len\n this.drawTextMarkups(type, pageBounds[i].bounds, pageBounds[i].pageIndex, pageBounds[i].rect, this.pdfViewerBase.getZoomFactor(), pageBounds[i].textContent, pageBounds[i].startIndex, pageBounds[i].endIndex, isMultiSelect, targetElement);\n }\n }\n }\n if (this.multiPageCollection) {\n for (var j = 0; j < this.multiPageCollection.length; j++) {\n this.updateAnnotationNames(this.multiPageCollection[j], this.multiPageCollection[j].pageNumber);\n }\n }\n this.isExtended = false;\n this.isSelectionMaintained = false;\n // this.pdfViewerBase.annotationHelper.redoCollection = [];\n if (isCleared && this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n if (this.isEnableTextMarkupResizer(type)) {\n this.updateAnnotationBounds();\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.isMultiPageAnnotations = function (pageBounds, type) {\n var isMultiSelect = false;\n for (var n = 0; n < pageBounds.length; n++) {\n if (pageBounds[n].pageIndex !== pageBounds[0].pageIndex && this.isMultiAnnotation(type)) {\n isMultiSelect = true;\n break;\n }\n }\n return isMultiSelect;\n };\n TextMarkupAnnotation.prototype.isMultiAnnotation = function (type) {\n var isSelection = false;\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.enableMultiPageAnnotation) {\n isSelection = true;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.enableMultiPageAnnotation) {\n isSelection = true;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.enableMultiPageAnnotation) {\n isSelection = true;\n }\n else if (this.pdfViewer.enableMultiPageAnnotation) {\n isSelection = true;\n }\n return isSelection;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.modifyCurrentAnnotation = function (currentAnnot, pageBounds, index) {\n for (var c = 0; c < currentAnnot.annotNameCollection.length; c++) {\n // eslint-disable-next-line\n var currentAnnots = currentAnnot.annotNameCollection[c];\n var annotationList = this.getAnnotations(pageBounds[index].pageIndex, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnots) {\n this.currentTextMarkupAnnotation = annotationList[z];\n this.selectTextMarkupCurrentPage = pageBounds[index].pageIndex;\n this.updateTextMarkupAnnotationBounds(pageBounds, index);\n break;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.drawAnnotationSelector = function (newAnnotation, annotation, newcanvas) {\n var newBounds = [];\n var x = 0;\n var y = 0;\n var width = 0;\n var height = 0;\n var currentTop = 0;\n var nextTop = 0;\n for (var i = 0; i < newAnnotation.bounds.length; i++) {\n currentTop = newAnnotation.bounds[i].top ? newAnnotation.bounds[i].top : newAnnotation.bounds[i].Top;\n nextTop = !isNullOrUndefined(newAnnotation.bounds[i + 1]) ? newAnnotation.bounds[i + 1].top ? newAnnotation.bounds[i + 1].top : newAnnotation.bounds[i + 1].Top : 0;\n if (newAnnotation.bounds.length > 1 && i < newAnnotation.bounds.length - 1 && currentTop === nextTop) {\n newBounds.push(newAnnotation.bounds[i]);\n }\n else {\n if (i === newAnnotation.bounds.length - 1 || newAnnotation.bounds.length >= 1) {\n newBounds.push(newAnnotation.bounds[i]);\n }\n if (newBounds.length >= 1) {\n x = newBounds[0].left ? newBounds[0].left : newBounds[0].Left;\n y = newBounds[0].top ? newBounds[0].top : newBounds[0].Top;\n height = newBounds[0].height ? newBounds[0].height : newBounds[0].Height;\n for (var j = 0; j < newBounds.length; j++) {\n if ((!isNaN(newBounds[j].width) && newBounds[j].width > 0) || (!isNaN(newBounds[j].Width) && newBounds[j].Width > 0)) {\n width += newBounds[j].width ? newBounds[j].width : newBounds[j].Width;\n }\n }\n if (!newcanvas) {\n newcanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + newAnnotation.pageNumber);\n }\n // eslint-disable-next-line max-len\n this.drawAnnotationSelectRect(newcanvas, this.getMagnifiedValue(x - 0.5, this.pdfViewerBase.getZoomFactor()), this.getMagnifiedValue(y - 0.5, this.pdfViewerBase.getZoomFactor()), this.getMagnifiedValue(width + 0.5, this.pdfViewerBase.getZoomFactor()), this.getMagnifiedValue(height + 0.5, this.pdfViewerBase.getZoomFactor()), annotation);\n newBounds = [];\n width = 0;\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.selectMultiPageAnnotations = function (annotation) {\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n // eslint-disable-next-line\n var newAnnotation = annotationList[z];\n this.drawAnnotationSelector(newAnnotation, annotation);\n }\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.deletMultiPageAnnotation = function (annotation) {\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n // eslint-disable-next-line\n var newAnnotation = annotationList[z];\n var deletedAnnotation = null;\n deletedAnnotation = annotationList.splice(z, 1)[0];\n this.pdfViewer.annotationModule.addAction(currentPage, z, deletedAnnotation, 'Text Markup Deleted', null);\n this.currentAnnotationIndex = z;\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(deletedAnnotation, 'textMarkup');\n var removeDiv = document.getElementById(deletedAnnotation.annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n this.pdfViewer.annotationModule.updateAnnotationCollection(newAnnotation);\n this.manageAnnotations(annotationList, currentPage);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.updateImportAnnotationCollection(newAnnotation, newAnnotation.pageNumber, 'textMarkupAnnotation');\n var annotationId = newAnnotation.annotName;\n // eslint-disable-next-line\n var annotationBounds = newAnnotation.bounds;\n this.pdfViewer.annotationModule.renderAnnotations(currentPage, null, null, null);\n }\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.modifyMultiPageAnnotations = function (annotation, property, value) {\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n if (property === 'Color') {\n annotationList[z].color = value;\n }\n else {\n annotationList[z].opacity = value;\n }\n annotationList[z].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentAnnotationIndex = z;\n if (status === null || status === 'changed') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.addAction(annotationList[z].pageNumber, z, annotationList[z], 'Text Markup Property modified', property);\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationList[z]);\n this.manageAnnotations(annotationList, currentPage);\n this.pdfViewer.annotationModule.renderAnnotations(currentPage, null, null, null);\n }\n }\n }\n }\n }\n }\n };\n TextMarkupAnnotation.prototype.convertSelectionToTextMarkup = function (type, selectionObject, factor) {\n var isMultiSelect = false;\n this.triggerAddEvent = false;\n this.multiPageCollection = [];\n for (var i = 0; i < selectionObject.length; i++) {\n var textValue = selectionObject[i].textContent;\n // eslint-disable-next-line\n var indexes = void 0;\n if (selectionObject[i].startNode === selectionObject[i].endNode) {\n var parentText = document.getElementById(selectionObject[i].startNode).textContent;\n indexes = this.getIndexNumbers(selectionObject[i].pageNumber, textValue, parentText);\n }\n else {\n indexes = this.getIndexNumbers(selectionObject[i].pageNumber, textValue);\n }\n if (!isMultiSelect) {\n for (var n = 1; n < selectionObject.length; n++) {\n if (selectionObject[n].pageNumber !== selectionObject[0].pageNumber && this.isMultiAnnotation(type)) {\n isMultiSelect = true;\n break;\n }\n }\n }\n if (this.isMultiAnnotation(type) && (selectionObject.length - 1) === i) {\n this.triggerAddEvent = true;\n }\n // eslint-disable-next-line max-len\n this.drawTextMarkups(type, selectionObject[i].rectangleBounds, selectionObject[i].pageNumber, selectionObject[i].bound, factor, textValue, indexes.startIndex, indexes.endIndex, isMultiSelect, document.getElementById(selectionObject[i].startNode));\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateTextMarkupAnnotationBounds = function (pageBounds, currentIndex) {\n if (this.currentTextMarkupAnnotation) {\n var pageAnnotations = this.getAnnotations(pageBounds[currentIndex].pageIndex, null);\n var annotation = null;\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n pageAnnotations[i].bounds = pageBounds[currentIndex].bounds;\n pageAnnotations[i].textMarkupContent = pageBounds[currentIndex].textContent;\n pageAnnotations[i].textMarkupStartIndex = pageBounds[currentIndex].startIndex;\n pageAnnotations[i].textMarkupEndIndex = pageBounds[currentIndex].endIndex;\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n annotation = pageAnnotations[i];\n }\n }\n this.manageAnnotations(pageAnnotations, pageBounds[currentIndex].pageIndex);\n this.currentTextMarkupAnnotation = null;\n this.pdfViewer.annotationModule.renderAnnotations(pageBounds[currentIndex].pageIndex, null, null, null);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n if (annotation) {\n // eslint-disable-next-line\n var settings = { opacity: annotation.opacity, color: annotation.color, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate };\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n if ((pageBounds.length - 1) === currentIndex) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pageBounds[currentIndex].pageIndex, annotation.annotName, annotation.textMarkupAnnotationType, annotation.bounds, settings, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, null, multiPageCollection);\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pageBounds[currentIndex].pageIndex, annotation.annotName, annotation.textMarkupAnnotationType, annotation.bounds, settings, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, null);\n }\n }\n // eslint-disable-next-line max-len\n this.currentAnnotationIndex = null;\n this.selectTextMarkupCurrentPage = null;\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.multiPageCollectionList = function (annotation) {\n var multiPageCollectionList = [];\n if (annotation.isMultiSelect && annotation.annotNameCollection) {\n multiPageCollectionList.push(annotation);\n for (var k = 0; k < annotation.annotNameCollection.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotation.annotNameCollection[k];\n if (currentAnnot !== annotation.annotName) {\n for (var p = 0; p < annotation.annotpageNumbers.length; p++) {\n var currentPage = annotation.annotpageNumbers[p];\n var annotationList = this.getAnnotations(currentPage, null);\n if (annotationList) {\n for (var z = 0; z < annotationList.length; z++) {\n if (annotationList[z].annotName === currentAnnot) {\n multiPageCollectionList.push(annotationList[z]);\n }\n }\n }\n }\n }\n }\n }\n return multiPageCollectionList;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateAnnotationNames = function (annotations, pageNumber) {\n if (annotations) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n var annotation = null;\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotations.annotName === pageAnnotations[i].annotName) {\n // eslint-disable-next-line\n var annotNamesCollections = [];\n // eslint-disable-next-line\n var annotpageNumbers = [];\n for (var p = 0; p < this.multiPageCollection.length; p++) {\n annotNamesCollections.push(this.multiPageCollection[p].annotName);\n annotpageNumbers.push(this.multiPageCollection[p].pageNumber);\n }\n pageAnnotations[i].isMultiSelect = true;\n pageAnnotations[i].annotNameCollection = annotNamesCollections;\n pageAnnotations[i].annotpageNumbers = annotpageNumbers;\n annotation = pageAnnotations[i];\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateAnnotationContent = function (annotation, pageBound) {\n if (annotation) {\n var pageAnnotations = this.getAnnotations(this.selectTextMarkupCurrentPage, null);\n var annotation_1 = null;\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n pageAnnotations[i].textMarkupContent = pageBound.textContent;\n pageAnnotations[i].textMarkupStartIndex = pageBound.startIndex;\n pageAnnotations[i].textMarkupEndIndex = pageBound.endIndex;\n annotation_1 = pageAnnotations[i];\n }\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], this.selectTextMarkupCurrentPage);\n }\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.drawTextMarkups = function (type, bounds, pageNumber, rect, factor, textContent, startIndex, endIndex, isMultiSelect, targetElement) {\n var annotation = null;\n this.isNewAnnotation = false;\n var author = 'Guest';\n var subject;\n var context = this.getPageContext(pageNumber);\n var modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.highlightColor = this.highlightColor ? this.highlightColor : this.pdfViewer.highlightSettings.color;\n this.underlineColor = this.underlineColor ? this.underlineColor : this.pdfViewer.underlineSettings.color;\n this.strikethroughColor = this.strikethroughColor ? this.strikethroughColor : this.pdfViewer.strikethroughSettings.color;\n this.highlightOpacity = this.pdfViewer.highlightSettings.opacity;\n this.underlineOpacity = this.pdfViewer.underlineSettings.opacity;\n this.strikethroughOpacity = this.pdfViewer.strikethroughSettings.opacity;\n this.annotationAddMode = 'UI Drawn Annotation';\n // eslint-disable-next-line\n var allowedInteractions;\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var annotationRotate = 0;\n var pageRotation = this.getAngle(pageDetails.rotation);\n if (context) {\n context.setLineDash([]);\n switch (type) {\n case 'Highlight':\n this.isNewAnnotation = true;\n subject = 'Highlight';\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.highlightSettings.author !== 'Guest' && this.pdfViewer.highlightSettings.author) ? this.pdfViewer.highlightSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n allowedInteractions = this.pdfViewer.highlightSettings.allowedInteractions ? this.pdfViewer.highlightSettings.allowedInteractions : ['None'];\n // eslint-disable-next-line max-len\n if (isNullOrUndefined(this.highlightOpacity)) {\n this.highlightOpacity = 1;\n }\n annotation = this.getAddedAnnotation(type, this.highlightColor, this.highlightOpacity, bounds, author, subject, modifiedDate, '', false, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate);\n if (annotation) {\n // eslint-disable-next-line max-len\n this.renderHighlightAnnotation(annotation.bounds, annotation.opacity, annotation.color, context, factor, annotation.isPrint, pageNumber);\n }\n break;\n case 'Strikethrough':\n this.isNewAnnotation = true;\n subject = 'Strikethrough';\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.strikethroughSettings.author !== 'Guest' && this.pdfViewer.strikethroughSettings.author) ? this.pdfViewer.strikethroughSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n allowedInteractions = this.pdfViewer.strikethroughSettings.allowedInteractions ? this.pdfViewer.strikethroughSettings.allowedInteractions : ['None'];\n // eslint-disable-next-line max-len\n if (targetElement && targetElement.style.transform !== '') {\n if (targetElement.style.transform.startsWith('rotate(90deg)')) {\n annotationRotate = Math.abs(pageRotation - 90);\n }\n else if (targetElement.style.transform.startsWith('rotate(180deg)')) {\n annotationRotate = Math.abs(pageRotation - 180);\n }\n else if (targetElement.style.transform.startsWith('rotate(-90deg)')) {\n annotationRotate = Math.abs(pageRotation - 270);\n }\n else {\n annotationRotate = pageRotation;\n }\n }\n if (isNullOrUndefined(this.strikethroughOpacity)) {\n this.strikethroughOpacity = 1;\n }\n annotation = this.getAddedAnnotation(type, this.strikethroughColor, this.strikethroughOpacity, bounds, author, subject, modifiedDate, '', false, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate);\n if (annotation) {\n // eslint-disable-next-line max-len\n this.renderStrikeoutAnnotation(annotation.bounds, annotation.opacity, annotation.color, context, factor, pageNumber, annotation.isPrint, annotation.annotationRotation);\n }\n break;\n case 'Underline':\n this.isNewAnnotation = true;\n subject = 'Underline';\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.underlineSettings.author !== 'Guest' && this.pdfViewer.underlineSettings.author) ? this.pdfViewer.underlineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n allowedInteractions = this.pdfViewer.underlineSettings.allowedInteractions ? this.pdfViewer.underlineSettings.allowedInteractions : ['None'];\n // eslint-disable-next-line max-len\n if (targetElement && targetElement.style.transform !== '') {\n if (targetElement.style.transform.startsWith('rotate(90deg)')) {\n annotationRotate = Math.abs(pageRotation - 90);\n }\n else if (targetElement.style.transform.startsWith('rotate(180deg)')) {\n annotationRotate = Math.abs(pageRotation - 180);\n }\n else if (targetElement.style.transform.startsWith('rotate(-90deg)')) {\n annotationRotate = Math.abs(pageRotation - 270);\n }\n else {\n annotationRotate = pageRotation;\n }\n }\n if (isNullOrUndefined(this.underlineOpacity)) {\n this.underlineOpacity = 1;\n }\n annotation = this.getAddedAnnotation(type, this.underlineColor, this.underlineOpacity, bounds, author, subject, modifiedDate, '', false, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate);\n if (annotation) {\n // eslint-disable-next-line max-len\n this.renderUnderlineAnnotation(annotation.bounds, annotation.opacity, annotation.color, context, factor, pageNumber, annotation.isPrint, annotation.annotationRotation);\n }\n break;\n }\n this.isNewAnnotation = false;\n if (annotation) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var settings = { opacity: annotation.opacity, color: annotation.color, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate };\n var index = this.pdfViewer.annotationModule.actionCollection[this.pdfViewer.annotationModule.actionCollection.length - 1].index;\n // eslint-disable-next-line max-len\n if (this.isMultiAnnotation(type)) {\n if (this.triggerAddEvent) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pageNumber, annotation.annotName, type, annotation.bounds, settings, textContent, startIndex, endIndex, null, this.multiPageCollection);\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pageNumber, annotation.annotName, type, annotation.bounds, settings, textContent, startIndex, endIndex);\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(type);\n }\n }\n };\n TextMarkupAnnotation.prototype.getAngle = function (rotation) {\n // eslint-disable-next-line\n var angle = 0;\n if (rotation) {\n switch (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 // eslint-disable-next-line\n TextMarkupAnnotation.prototype.retreiveTextIndex = function (annotation) {\n if (annotation.textMarkupContent === '') {\n this.retreieveSelection(annotation, null);\n var pageBounds = this.getDrawnBounds();\n window.getSelection().removeAllRanges();\n if (pageBounds[0] && pageBounds[0].bounds) {\n this.updateAnnotationContent(annotation, pageBounds[0]);\n annotation.textMarkupContent = pageBounds[0].textContent;\n annotation.textMarkupStartIndex = pageBounds[0].startIndex;\n annotation.textMarkupEndIndex = pageBounds[0].endIndex;\n }\n }\n return annotation;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderHighlightAnnotation = function (bounds, opacity, color, context, factor, isPrint, pageIndex) {\n var zoomRatio = this.pdfViewerBase.getZoomRatio(factor);\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var bound = bounds[i];\n context.beginPath();\n var x = bound.X ? bound.X : bound.left;\n var y = bound.Y ? bound.Y : bound.top;\n var width = bound.Width ? bound.Width : bound.width;\n var height = bound.Height ? bound.Height : bound.height;\n x = x ? x : bound.x;\n y = y ? y : bound.y;\n // The highlighted position is slightly increased. So Subtract -1 from the height. \n height = height - 1;\n if (context.canvas.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex) {\n if (isPrint) {\n // eslint-disable-next-line max-len\n context.rect((x * zoomRatio), (y * zoomRatio), (width * zoomRatio), (height * zoomRatio));\n context.globalAlpha = opacity * 0.5;\n context.closePath();\n context.fillStyle = color;\n context.msFillRule = 'nonzero';\n context.fill();\n }\n }\n else {\n // eslint-disable-next-line max-len\n context.rect((x * zoomRatio), (y * zoomRatio), (width * zoomRatio), (height * zoomRatio));\n context.globalAlpha = opacity * 0.5;\n context.closePath();\n context.fillStyle = color;\n context.msFillRule = 'nonzero';\n context.fill();\n }\n }\n context.save();\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderStrikeoutAnnotation = function (bounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation) {\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var bound = this.getProperBounds(bounds[i]);\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var factorRatio = this.pdfViewerBase.getZoomRatio(factor);\n var rotation = pageDetails.rotation;\n if (annotationRotation) {\n var pageRotation = this.getAngle(rotation);\n rotation = Math.abs(annotationRotation - pageRotation) / 90;\n }\n if (context.canvas.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageNumber) {\n if (isPrint) {\n if (rotation === 1) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, (bound.x + (bound.width / 2)), bound.y, bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 2) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, bound.x, (bound.y + (bound.height / 2)), bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 3) {\n this.drawLine(opacity, bound.x, bound.y, (bound.width / 2), bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else {\n this.drawLine(opacity, bound.x, bound.y, bound.width, (bound.height / 2), color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n }\n else {\n if (rotation === 1) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, (bound.x + (bound.width / 2)), bound.y, bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 2) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, bound.x, (bound.y + (bound.height / 2)), bound.width, bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else if (rotation === 3) {\n this.drawLine(opacity, bound.x, bound.y, (bound.width / 2), bound.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n else {\n this.drawLine(opacity, bound.x, bound.y, bound.width, (bound.height / 2), color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.renderUnderlineAnnotation = function (bounds, opacity, color, context, factor, pageNumber, isPrint, annotationRotation) {\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var boundValues = this.getProperBounds(bounds[i]);\n var factorRatio = this.pdfViewerBase.getZoomRatio(factor);\n if (context.canvas.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageNumber) {\n if (isPrint) {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, boundValues.x, boundValues.y, boundValues.width, boundValues.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.drawLine(opacity, boundValues.x, boundValues.y, boundValues.width, boundValues.height, color, factorRatio, context, pageNumber, annotationRotation);\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getProperBounds = function (bound) {\n var x = bound.X ? bound.X : bound.left;\n var y = bound.Y ? bound.Y : bound.top;\n var width = bound.Width ? bound.Width : bound.width;\n var height = bound.Height ? bound.Height : bound.height;\n x = x ? x : bound.x;\n y = y ? y : bound.y;\n return { x: x, y: y, width: width, height: height };\n };\n // eslint-disable-next-line max-len\n TextMarkupAnnotation.prototype.drawLine = function (opacity, x, y, width, height, color, factor, context, pageNumber, annotationRotation) {\n context.globalAlpha = opacity;\n if (isBlazor()) {\n y = y - 1;\n }\n height = height - 1;\n context.beginPath();\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var rotation = pageDetails.rotation;\n if (annotationRotation) {\n var pageRotation = this.getAngle(rotation);\n rotation = Math.abs(annotationRotation - pageRotation) / 90;\n }\n if (rotation === 1) {\n context.moveTo((x * factor), (y * factor));\n context.lineTo((x * factor), (y + height) * factor);\n }\n else if (rotation === 2) {\n context.moveTo((x * factor), (y * factor));\n context.lineTo((width + x) * factor, (y * factor));\n }\n else if (rotation === 3) {\n context.moveTo((width + x) * factor, (y * factor));\n context.lineTo((width + x) * factor, (y + height) * factor);\n }\n else {\n context.moveTo((x * factor), (y + height) * factor);\n context.lineTo((width + x) * factor, (y + height) * factor);\n }\n context.lineWidth = 1;\n context.strokeStyle = color;\n context.closePath();\n context.msFillRule = 'nonzero';\n context.stroke();\n };\n /**\n * @param textMarkupAnnotations\n * @param pageIndex\n * @param stampData\n * @param shapeData\n * @param measureShapeData\n * @param stickyData\n * @param textMarkupAnnotations\n * @param pageIndex\n * @param stampData\n * @param shapeData\n * @param measureShapeData\n * @param stickyData\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.printTextMarkupAnnotations = function (textMarkupAnnotations, pageIndex, stampData, shapeData, measureShapeData, stickyData) {\n var canvas = createElement('canvas', { id: this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex });\n canvas.style.width = 816 + 'px';\n canvas.style.height = 1056 + 'px';\n var pageWidth = this.pdfViewerBase.pageSize[pageIndex].width;\n var pageHeight = this.pdfViewerBase.pageSize[pageIndex].height;\n var zoom = this.pdfViewerBase.getZoomFactor();\n var zoomRatio = this.pdfViewerBase.getZoomRatio(zoom);\n canvas.height = pageHeight * zoomRatio;\n canvas.width = pageWidth * zoomRatio;\n // eslint-disable-next-line\n var textMarkupannotations = this.getAnnotations(pageIndex, null, '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeAnnotation = this.getAnnotations(pageIndex, null, '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeAnnotation = this.getAnnotations(pageIndex, null, '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampAnnotation = this.getAnnotations(pageIndex, null, '_annotations_stamp');\n // eslint-disable-next-line\n var stickyNoteAnnotation = this.getAnnotations(pageIndex, null, '_annotations_sticky');\n if (stampAnnotation || shapeAnnotation || stickyNoteAnnotation || measureShapeAnnotation) {\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n this.pdfViewer.annotation.renderAnnotations(pageIndex, shapeData, measureShapeData, null, canvas);\n this.pdfViewer.annotation.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex, canvas);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.renderStickyNotesAnnotations(stickyData, pageIndex, canvas);\n }\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (textMarkupannotations) {\n this.renderTextMarkupAnnotations(null, pageIndex, canvas, zoomFactor);\n }\n else {\n this.renderTextMarkupAnnotations(textMarkupAnnotations, pageIndex, canvas, zoomFactor);\n }\n var imageSource = canvas.toDataURL();\n return imageSource;\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.saveTextMarkupAnnotations = function () {\n // eslint-disable-next-line\n var storeTextMarkupObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (this.pdfViewerBase.isStorageExceed) {\n storeTextMarkupObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'];\n }\n // eslint-disable-next-line\n var textMarkupAnnotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n textMarkupAnnotations[j] = [];\n }\n if (storeTextMarkupObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var textMarkupAnnotationCollection = JSON.parse(storeTextMarkupObject);\n for (var i = 0; i < textMarkupAnnotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = textMarkupAnnotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n if (this.pdfViewerBase.isJsonExported) {\n if (pageAnnotationObject.annotations[z].isAnnotationRotated) {\n pageAnnotationObject.annotations[z].bounds = this.getBoundsForSave(pageAnnotationObject.annotations[z].bounds, i);\n }\n else {\n var pageDetails = this.pdfViewerBase.pageSize[pageAnnotationObject.pageIndex];\n if (pageDetails) {\n pageAnnotationObject.annotations[z].annotationRotation = pageDetails.rotation;\n }\n }\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.getBoundsForSave(pageAnnotationObject.annotations[z].bounds, i));\n var colorString = pageAnnotationObject.annotations[z].color;\n pageAnnotationObject.annotations[z].color = JSON.stringify(this.getRgbCode(colorString));\n pageAnnotationObject.annotations[z].rect = JSON.stringify(pageAnnotationObject.annotations[z].rect);\n }\n newArray = pageAnnotationObject.annotations;\n }\n textMarkupAnnotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(textMarkupAnnotations);\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.deleteTextMarkupAnnotation = function () {\n if (this.currentTextMarkupAnnotation) {\n var isLock = false;\n if (this.currentTextMarkupAnnotation.annotationSettings) {\n // eslint-disable-next-line\n isLock = this.currentTextMarkupAnnotation.annotationSettings.isLock;\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', this.currentTextMarkupAnnotation)) {\n isLock = false;\n }\n }\n if (!isLock) {\n var deletedAnnotation = null;\n this.showHideDropletDiv(true);\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n if (this.currentTextMarkupAnnotation.isMultiSelect && annotation.annotNameCollection) {\n this.deletMultiPageAnnotation(annotation);\n }\n var pageAnnotations = this.getAnnotations(this.selectTextMarkupCurrentPage, null);\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (this.currentTextMarkupAnnotation.annotName === pageAnnotations[i].annotName) {\n deletedAnnotation = pageAnnotations.splice(i, 1)[0];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.addAction(this.selectTextMarkupCurrentPage, i, deletedAnnotation, 'Text Markup Deleted', null);\n this.currentAnnotationIndex = i;\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(deletedAnnotation, 'textMarkup');\n var removeDiv = document.getElementById(deletedAnnotation.annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n }\n }\n this.pdfViewer.annotationModule.updateAnnotationCollection(this.currentTextMarkupAnnotation);\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.updateImportAnnotationCollection(this.currentTextMarkupAnnotation, this.currentTextMarkupAnnotation.pageNumber, 'textMarkupAnnotation');\n var annotationId = this.currentTextMarkupAnnotation.annotName;\n // eslint-disable-next-line\n var annotationBounds = this.currentTextMarkupAnnotation.bounds;\n this.currentTextMarkupAnnotation = null;\n this.pdfViewer.annotationModule.renderAnnotations(this.selectTextMarkupCurrentPage, null, null, null);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n multiPageCollection.push(deletedAnnotation);\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationRemove(this.selectTextMarkupCurrentPage, annotationId, deletedAnnotation.textMarkupAnnotationType, annotationBounds, deletedAnnotation.textMarkupContent, deletedAnnotation.textMarkupStartIndex, deletedAnnotation.textMarkupEndIndex, multiPageCollection);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationRemove(this.selectTextMarkupCurrentPage, annotationId, deletedAnnotation.textMarkupAnnotationType, annotationBounds, deletedAnnotation.textMarkupContent, deletedAnnotation.textMarkupStartIndex, deletedAnnotation.textMarkupEndIndex);\n }\n this.currentAnnotationIndex = null;\n this.selectTextMarkupCurrentPage = null;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n }\n }\n };\n /**\n * @param color\n * @private\n */\n TextMarkupAnnotation.prototype.modifyColorProperty = function (color) {\n if (this.currentTextMarkupAnnotation) {\n var pageAnnotations = this.modifyAnnotationProperty('Color', color, null);\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n this.pdfViewer.annotationModule.renderAnnotations(this.selectTextMarkupCurrentPage, null, null, null);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, true, false, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, multiPageCollection);\n this.currentAnnotationIndex = null;\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, true, false, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex);\n this.currentAnnotationIndex = null;\n }\n }\n };\n /**\n * @param args\n * @param isOpacity\n * @private\n */\n TextMarkupAnnotation.prototype.modifyOpacityProperty = function (args, isOpacity) {\n if (this.currentTextMarkupAnnotation) {\n var pageAnnotations = void 0;\n if (isOpacity) {\n pageAnnotations = this.modifyAnnotationProperty('Opacity', isOpacity, 'changed');\n }\n else {\n pageAnnotations = this.modifyAnnotationProperty('Opacity', args.value / 100, args.name);\n }\n if (pageAnnotations) {\n this.manageAnnotations(pageAnnotations, this.selectTextMarkupCurrentPage);\n this.pdfViewer.annotationModule.renderAnnotations(this.selectTextMarkupCurrentPage, null, null, null);\n if (isOpacity || args.name === 'changed') {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n var multiPageCollection = this.multiPageCollectionList(annotation);\n if (multiPageCollection.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, false, true, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex, multiPageCollection);\n this.currentAnnotationIndex = null;\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationPropertiesChange(this.selectTextMarkupCurrentPage, annotation.annotName, annotation.textMarkupAnnotationType, false, true, false, false, annotation.textMarkupContent, annotation.textMarkupStartIndex, annotation.textMarkupEndIndex);\n this.currentAnnotationIndex = null;\n }\n }\n }\n }\n };\n /**\n * @param property\n * @param value\n * @param status\n * @param annotName\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.modifyAnnotationProperty = function (property, value, status, annotName) {\n // eslint-disable-next-line\n var annotation = this.currentTextMarkupAnnotation;\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n if (annotation.isMultiSelect && annotation.annotNameCollection) {\n this.modifyMultiPageAnnotations(annotation, property, value);\n }\n var pageAnnotations = this.getAnnotations(this.selectTextMarkupCurrentPage, null);\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n if (property === 'Color') {\n pageAnnotations[i].color = value;\n }\n else if (property === 'Opacity') {\n pageAnnotations[i].opacity = value;\n }\n else if (property === 'AnnotationSettings') {\n pageAnnotations[i].annotationSettings = { isLock: value };\n }\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentAnnotationIndex = i;\n if (status === null || status === 'changed') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.addAction(this.selectTextMarkupCurrentPage, i, this.currentTextMarkupAnnotation, 'Text Markup Property modified', property);\n }\n this.currentTextMarkupAnnotation = pageAnnotations[i];\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(pageAnnotations[i]);\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], this.selectTextMarkupCurrentPage);\n }\n }\n }\n return pageAnnotations;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param index\n * @param action\n * @private\n */\n TextMarkupAnnotation.prototype.undoTextMarkupAction = function (annotation, pageNumber, index, action) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n if (action === 'Text Markup Added') {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(pageAnnotations[index], 'textMarkup');\n // eslint-disable-next-line\n var removeDiv = document.getElementById(pageAnnotations[index].annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.parentElement.removeChild(removeDiv);\n }\n }\n pageAnnotations.splice(index, 1);\n }\n else if (action === 'Text Markup Deleted') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(pageNumber, annotation.shapeAnnotationType);\n pageAnnotations.splice(index, 0, annotation);\n }\n }\n this.clearCurrentAnnotation();\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @param annotation\n * @param pageNumber\n * @param index\n * @param property\n * @param isUndoAction\n * @private\n */\n // eslint-disable-next-line max-len\n TextMarkupAnnotation.prototype.undoRedoPropertyChange = function (annotation, pageNumber, index, property, isUndoAction) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n if (property === 'Color') {\n var tempColor = pageAnnotations[index].color;\n pageAnnotations[index].color = annotation.color;\n annotation.color = tempColor;\n }\n else {\n var tempOpacity = pageAnnotations[index].opacity;\n pageAnnotations[index].opacity = annotation.opacity;\n annotation.opacity = tempOpacity;\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotation, null, true);\n if (isUndoAction) {\n annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n }\n this.clearCurrentAnnotation();\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n return annotation;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param index\n * @param action\n * @private\n */\n TextMarkupAnnotation.prototype.redoTextMarkupAction = function (annotation, pageNumber, index, action) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n if (action === 'Text Markup Added') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(pageNumber, annotation.shapeAnnotationType);\n pageAnnotations.push(annotation);\n }\n else if (action === 'Text Markup Deleted') {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(pageAnnotations[index], 'textMarkup');\n // eslint-disable-next-line\n var removeDiv = document.getElementById(pageAnnotations[index].annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n pageAnnotations.splice(index, 1);\n }\n }\n this.clearCurrentAnnotation();\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n };\n /**\n * @param pageNumber\n * @param note\n * @param pageNumber\n * @param note\n * @private\n */\n TextMarkupAnnotation.prototype.saveNoteContent = function (pageNumber, note) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (JSON.stringify(this.currentTextMarkupAnnotation) === JSON.stringify(pageAnnotations[i])) {\n pageAnnotations[i].note = note;\n }\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n };\n TextMarkupAnnotation.prototype.clearCurrentAnnotation = function () {\n if (!this.isExtended) {\n if (this.pdfViewer.isMaintainSelection && !this.pdfViewer.textSelectionModule.isTextSelection) {\n this.selectTextMarkupCurrentPage = this.selectTextMarkupCurrentPage;\n this.currentTextMarkupAnnotation = this.currentTextMarkupAnnotation;\n }\n else {\n this.selectTextMarkupCurrentPage = null;\n this.currentTextMarkupAnnotation = null;\n }\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.isInuptBoxInFocus) {\n isSkip = true;\n }\n if (!isSkip) {\n this.enableAnnotationPropertiesTool(false);\n }\n }\n };\n /**\n * @param pageNumber\n * @param isSelect\n * @param pageNumber\n * @param isSelect\n * @private\n */\n TextMarkupAnnotation.prototype.clearCurrentAnnotationSelection = function (pageNumber, isSelect) {\n if (isSelect) {\n this.isAnnotationSelect = true;\n }\n else {\n this.isAnnotationSelect = false;\n }\n var lowerPageIndex = (pageNumber - 2) >= 0 ? (pageNumber - 2) : 0;\n // eslint-disable-next-line max-len\n var higherPageIndex = (pageNumber + 2) < this.pdfViewerBase.pageCount ? (pageNumber + 2) : this.pdfViewerBase.pageCount - 1;\n for (var k = lowerPageIndex; k <= higherPageIndex; k++) {\n this.clearAnnotationSelection(k);\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getBoundsForSave = function (bounds, pageIndex) {\n // eslint-disable-next-line\n var newArray = [];\n for (var i = 0; i < bounds.length; i++) {\n // eslint-disable-next-line\n var bound = this.getAnnotationBounds(bounds[i], pageIndex);\n newArray.push(bound);\n }\n return newArray;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getAnnotationBounds = function (bounds, pageIndex) {\n var left = bounds.left ? bounds.left : bounds.Left;\n var top = bounds.top ? bounds.top : bounds.Top;\n var height = bounds.height ? bounds.height : bounds.Height;\n var width = bounds.width ? bounds.width : bounds.Width;\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n left = left ? left : bounds.x;\n top = top ? top : bounds.y;\n if (pageDetails) {\n if (pageDetails.rotation === 1) {\n return { left: top, top: pageDetails.width - (left + width), width: height, height: width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { left: pageDetails.width - left - width, top: pageDetails.height - top - height, width: width, height: height };\n }\n else if (pageDetails.rotation === 3) {\n return { left: pageDetails.height - top - height, top: left, width: height, height: width };\n }\n else {\n return { left: left, top: top, width: width, height: height };\n }\n }\n else {\n return { left: left, top: top, width: width, height: height };\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getRgbCode = function (colorString) {\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 markupStringArray = colorString.split(',');\n if (isNullOrUndefined(markupStringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n markupStringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var textMarkupR = parseInt(markupStringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var textMarkupG = parseInt(markupStringArray[1]);\n // eslint-disable-next-line radix\n var textMarkupB = parseInt(markupStringArray[2]);\n // eslint-disable-next-line radix\n var textMarkupA = parseInt(markupStringArray[3]);\n return { a: textMarkupA, r: textMarkupR, g: textMarkupG, b: textMarkupB };\n };\n TextMarkupAnnotation.prototype.getDrawnBounds = function () {\n var pageBounds = [];\n var selection = window.getSelection();\n if (selection.anchorNode !== null) {\n var range = document.createRange();\n var isBackWardSelection = this.pdfViewerBase.textLayer.isBackWardSelection(selection);\n if (selection.anchorNode === selection.focusNode) {\n var pageId = this.pdfViewerBase.textLayer.getPageIndex(selection.anchorNode);\n var startIndex = 0;\n var endIndex = 0;\n if (!isNaN(pageId)) {\n var pageRect = this.pdfViewerBase.getElement('_pageDiv_' + pageId).getBoundingClientRect();\n if (this.pdfViewerBase.isMixedSizeDocument) {\n pageRect = this.pdfViewerBase.getElement('_textLayer_' + pageId).getBoundingClientRect();\n }\n if (isBackWardSelection) {\n range.setStart(selection.focusNode, selection.focusOffset);\n range.setEnd(selection.anchorNode, selection.anchorOffset);\n }\n else {\n if (selection.anchorOffset < selection.focusOffset) {\n startIndex = selection.anchorOffset;\n endIndex = selection.focusOffset;\n range.setStart(selection.anchorNode, selection.anchorOffset);\n range.setEnd(selection.focusNode, selection.focusOffset);\n }\n else {\n startIndex = selection.focusOffset;\n endIndex = selection.anchorOffset;\n range.setStart(selection.focusNode, selection.focusOffset);\n range.setEnd(selection.anchorNode, selection.anchorOffset);\n }\n }\n var boundingRect = range.getBoundingClientRect();\n // eslint-disable-next-line\n var indexes = this.getIndexNumbers(pageId, range.toString(), range.commonAncestorContainer.textContent.toString());\n // eslint-disable-next-line max-len\n var rectangle = { left: this.getDefaultValue(boundingRect.left - pageRect.left), top: this.getDefaultValue(boundingRect.top - pageRect.top), width: this.getDefaultValue(boundingRect.width), height: this.getDefaultValue(boundingRect.height), right: this.getDefaultValue(boundingRect.right - pageRect.left), bottom: this.getDefaultValue(boundingRect.bottom - pageRect.top) };\n var rectangleArray = [];\n rectangleArray.push(rectangle);\n // eslint-disable-next-line\n var rect = { left: rectangle.left, top: rectangle.top, right: rectangle.right, bottom: rectangle.bottom };\n pageBounds.push({ pageIndex: pageId, bounds: rectangleArray, rect: rect, startIndex: indexes.startIndex, endIndex: indexes.endIndex, textContent: range.toString() });\n }\n }\n else {\n var startNode = void 0;\n var endNode = void 0;\n var selectionStartOffset = void 0;\n var selectionEndOffset = void 0;\n if (isBackWardSelection) {\n startNode = selection.focusNode;\n selectionStartOffset = selection.focusOffset;\n endNode = selection.anchorNode;\n selectionEndOffset = selection.anchorOffset;\n }\n else {\n startNode = selection.anchorNode;\n selectionStartOffset = selection.anchorOffset;\n endNode = selection.focusNode;\n selectionEndOffset = selection.focusOffset;\n }\n var anchorPageId = this.pdfViewerBase.textLayer.getPageIndex(startNode);\n var anchorTextId = this.pdfViewerBase.textLayer.getTextIndex(startNode, anchorPageId);\n var focusPageId = this.pdfViewerBase.textLayer.getPageIndex(endNode);\n var focusTextId = this.pdfViewerBase.textLayer.getTextIndex(endNode, focusPageId);\n var startOffset = 0;\n var endOffset = 0;\n var currentId = 0;\n for (var i = anchorPageId; i <= focusPageId; i++) {\n var selectionRects = [];\n var pageStartId = void 0;\n var pageEndId = void 0;\n var pageStartOffset = void 0;\n var pageEndOffset = void 0;\n var textDivs = this.pdfViewerBase.getElement('_textLayer_' + i).childNodes;\n var pageRect = this.pdfViewerBase.getElement('_pageDiv_' + i).getBoundingClientRect();\n if (this.pdfViewerBase.isMixedSizeDocument) {\n pageRect = this.pdfViewerBase.getElement('_textLayer_' + i).getBoundingClientRect();\n }\n if (i === anchorPageId) {\n currentId = anchorTextId;\n }\n else {\n currentId = 0;\n }\n for (var j = currentId; j < textDivs.length; j++) {\n var textElement = textDivs[j];\n if (j === currentId) {\n pageStartId = currentId;\n pageStartOffset = (i === anchorPageId) ? selectionStartOffset : 0;\n }\n else {\n pageEndId = j;\n pageEndOffset = (i === focusPageId) ? selectionEndOffset : textElement.textContent.length;\n }\n if (j === anchorTextId && i === anchorPageId) {\n startOffset = selectionStartOffset;\n }\n else {\n startOffset = 0;\n }\n if (j === focusTextId && i === focusPageId) {\n endOffset = selectionEndOffset;\n }\n else {\n endOffset = textElement.textContent.length;\n }\n for (var k = 0; k < textElement.childNodes.length; k++) {\n var node = textElement.childNodes[k];\n range.setStart(node, startOffset);\n range.setEnd(node, endOffset);\n }\n var boundingRect = range.getBoundingClientRect();\n // eslint-disable-next-line max-len\n var rectangle = { left: this.getDefaultValue(boundingRect.left - pageRect.left), top: this.getDefaultValue(boundingRect.top - pageRect.top), width: this.getDefaultValue(boundingRect.width), height: this.getDefaultValue(boundingRect.height), right: this.getDefaultValue(boundingRect.right - pageRect.left), bottom: this.getDefaultValue(boundingRect.bottom - pageRect.top) };\n selectionRects.push(rectangle);\n range.detach();\n if (i === focusPageId && j === focusTextId) {\n break;\n }\n }\n if (!pageEndId) {\n pageEndId = pageStartId;\n }\n if (!pageEndOffset) {\n pageEndOffset = endOffset;\n }\n var startElementNode = this.pdfViewerBase.getElement('_text_' + i + '_' + pageStartId).childNodes[0];\n var endElementNode = this.pdfViewerBase.getElement('_text_' + i + '_' + pageEndId).childNodes[0];\n var pageRange = document.createRange();\n pageRange.setStart(startElementNode, pageStartOffset);\n pageRange.setEnd(endElementNode, pageEndOffset);\n var pageRectBounds = pageRange.getBoundingClientRect();\n var textValue = pageRange.toString();\n // eslint-disable-next-line\n var indexes = this.getIndexNumbers(i, textValue);\n // eslint-disable-next-line max-len\n var pageRectangle = { left: this.getDefaultValue(pageRectBounds.left - pageRect.left), top: this.getDefaultValue(pageRectBounds.top - pageRect.top), width: this.getDefaultValue(pageRectBounds.width), height: this.getDefaultValue(pageRectBounds.height), right: this.getDefaultValue(pageRectBounds.right - pageRect.left), bottom: this.getDefaultValue(pageRectBounds.bottom - pageRect.top) };\n // eslint-disable-next-line\n var rect = { left: pageRectangle.left, top: pageRectangle.top, right: pageRectangle.right, bottom: pageRectangle.bottom };\n pageBounds.push({ pageIndex: i, bounds: selectionRects, rect: rect, startIndex: indexes.startIndex, endIndex: indexes.endIndex, textContent: textValue });\n }\n }\n }\n selection.removeAllRanges();\n return pageBounds;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getIndexNumbers = function (pageNumber, content, parentText) {\n // eslint-disable-next-line\n var storedData = this.pdfViewerBase.getStoredData(pageNumber);\n var startIndex;\n var endIndex;\n if (storedData) {\n var previousIndex = 0;\n var pageText = storedData.pageText;\n for (var p = 0; p < pageNumber; p++) {\n if (this.pdfViewer.isExtractText) {\n // eslint-disable-next-line\n var documentIndex = this.pdfViewer.textSearchModule.documentTextCollection[p][p];\n var pageTextData = documentIndex.pageText ? documentIndex.pageText : documentIndex.PageText;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSearchModule && this.pdfViewer.textSearchModule.documentTextCollection && this.pdfViewer.textSearchModule.isTextRetrieved) {\n if (this.pdfViewer.textSearchModule.documentTextCollection[p]) {\n previousIndex = previousIndex + pageTextData.length;\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSearchModule && this.pdfViewer.textSearchModule.documentTextCollection) {\n if (pageNumber <= this.pdfViewer.textSearchModule.documentTextCollection.length) {\n if (this.pdfViewer.textSearchModule.documentTextCollection[p]) {\n // eslint-disable-next-line max-len\n previousIndex = previousIndex + pageTextData.length;\n }\n }\n else {\n previousIndex = 0;\n break;\n }\n }\n }\n }\n }\n if (!isNullOrUndefined(parentText)) {\n var parentIndex = pageText.indexOf(parentText);\n var initialIndex = parentText.indexOf(content);\n startIndex = (parentIndex + initialIndex) + previousIndex;\n }\n else {\n startIndex = (pageText.indexOf(content)) + previousIndex;\n }\n endIndex = startIndex + (content.length - 1);\n }\n return { startIndex: startIndex, endIndex: endIndex };\n };\n /**\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.rerenderAnnotationsPinch = function (pageNumber) {\n var annotCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (annotCanvas) {\n var oldAnnotCanvas = this.pdfViewerBase.getElement('_old_annotationCanvas_' + pageNumber);\n if (oldAnnotCanvas) {\n if (annotCanvas) {\n oldAnnotCanvas.id = annotCanvas.id;\n annotCanvas.parentElement.removeChild(annotCanvas);\n }\n else {\n oldAnnotCanvas.id = this.pdfViewer.element.id + '_annotationCanvas_' + pageNumber;\n }\n annotCanvas = oldAnnotCanvas;\n }\n annotCanvas.style.width = '';\n annotCanvas.style.height = '';\n if (this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n annotCanvas.style.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n annotCanvas.style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n annotCanvas.width = this.pdfViewerBase.pageSize[pageNumber].width * this.pdfViewerBase.getZoomFactor();\n annotCanvas.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor();\n }\n this.renderTextMarkupAnnotations(null, pageNumber, annotCanvas, this.pdfViewerBase.getZoomFactor());\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.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 /**\n * @param event\n * @private\n */\n TextMarkupAnnotation.prototype.onTextMarkupAnnotationMouseUp = function (event) {\n var pageNumber = this.pdfViewer.annotationModule.getEventPageNumber(event);\n if (!isNullOrUndefined(pageNumber) && !isNaN(pageNumber)) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (this.currentTextMarkupAnnotation) {\n this.selectedTextMarkup = this.currentTextMarkupAnnotation;\n }\n else {\n this.selectedTextMarkup = null;\n }\n this.clearCurrentSelectedAnnotation();\n var currentAnnot = this.getCurrentMarkupAnnotation(event.clientX, event.clientY, pageNumber, canvas);\n if (currentAnnot && !window.getSelection().toString()) {\n var isLock = false;\n var isSelection = false;\n if (currentAnnot.annotationSettings && currentAnnot.annotationSettings.isLock) {\n isLock = currentAnnot.annotationSettings.isLock;\n if (isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', currentAnnot)) {\n isLock = false;\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', currentAnnot)) {\n isSelection = false;\n }\n else {\n isSelection = true;\n }\n }\n }\n if (!isLock) {\n var canvasParentPosition = canvas.parentElement.getBoundingClientRect();\n var leftClickPosition = event.clientX - canvasParentPosition.left;\n var topClickPosition = event.clientY - canvasParentPosition.top;\n this.annotationClickPosition = { x: leftClickPosition, y: topClickPosition };\n this.selectAnnotation(currentAnnot, canvas, pageNumber, event);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(this.currentTextMarkupAnnotation.textMarkupAnnotationType);\n }\n this.currentTextMarkupAnnotation = currentAnnot;\n this.selectTextMarkupCurrentPage = pageNumber;\n if (!isSelection) {\n this.enableAnnotationPropertiesTool(true);\n }\n var commentPanelDiv = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanelDiv && commentPanelDiv.style.display === 'block') {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (pageNumber + 1));\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(currentAnnot.annotName);\n if (comments) {\n comments.firstChild.click();\n }\n }\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n }\n else {\n this.clearCurrentAnnotation();\n }\n if (this.pdfViewer.isMaintainSelection && !this.pdfViewer.textSelectionModule.isTextSelection) {\n if (currentAnnot) {\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n }\n else {\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n }\n else {\n if (!this.pdfViewerBase.isClickedOnScrollBar(event, true)) {\n this.clearCurrentAnnotation();\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n }\n };\n /**\n * @param event\n * @private\n */\n TextMarkupAnnotation.prototype.onTextMarkupAnnotationTouchEnd = function (event) {\n var pageNumber = this.pdfViewer.annotationModule.getEventPageNumber(event);\n if (!isNullOrUndefined(pageNumber) && !isNaN(pageNumber)) {\n if (this.currentTextMarkupAnnotation) {\n this.selectedTextMarkup = this.currentTextMarkupAnnotation;\n }\n else {\n this.selectedTextMarkup = null;\n }\n this.clearCurrentAnnotationSelection(pageNumber);\n var touchCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n this.clearCurrentSelectedAnnotation();\n // eslint-disable-next-line max-len\n var currentAnnot = this.getCurrentMarkupAnnotation(event.touches[0].clientX, event.touches[0].clientY, pageNumber, touchCanvas);\n if (currentAnnot) {\n var isLock = false;\n if (currentAnnot.annotationSettings && currentAnnot.annotationSettings.isLock) {\n isLock = currentAnnot.annotationSettings.isLock;\n }\n if (!isLock) {\n var canvasParentPosition = touchCanvas.parentElement.getBoundingClientRect();\n var leftClickPosition = event.touches[0].clientX - canvasParentPosition.left;\n var topClickPosition = event.touches[0].clientY - canvasParentPosition.top;\n this.annotationClickPosition = { x: leftClickPosition, y: topClickPosition };\n this.selectAnnotation(currentAnnot, touchCanvas, pageNumber, event);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(this.currentTextMarkupAnnotation.textMarkupAnnotationType);\n }\n this.currentTextMarkupAnnotation = currentAnnot;\n this.selectTextMarkupCurrentPage = pageNumber;\n this.enableAnnotationPropertiesTool(true);\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (pageNumber + 1));\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(currentAnnot.annotName);\n if (comments) {\n if (!Browser.isDevice) {\n comments.firstChild.click();\n }\n }\n }\n }\n else {\n this.clearCurrentAnnotation();\n }\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n else if (this.selectTextMarkupCurrentPage != null && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var number = this.selectTextMarkupCurrentPage;\n this.selectTextMarkupCurrentPage = null;\n this.clearAnnotationSelection(number);\n }\n else {\n this.clearCurrentAnnotation();\n this.clearCurrentAnnotationSelection(pageNumber);\n }\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.clearCurrentSelectedAnnotation = function () {\n if (this.currentTextMarkupAnnotation) {\n this.clearAnnotationSelection(this.selectTextMarkupCurrentPage);\n // eslint-disable-next-line\n var currentAnnot = this.currentTextMarkupAnnotation;\n this.pdfViewer.fireAnnotationUnSelect(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot);\n this.clearCurrentAnnotation();\n }\n };\n /**\n * @param event\n * @private\n */\n TextMarkupAnnotation.prototype.onTextMarkupAnnotationMouseMove = function (event) {\n var eventTarget = event.target;\n // eslint-disable-next-line\n var pageIndex = parseInt(eventTarget.id.split('_text_')[1]) || parseInt(eventTarget.id.split('_textLayer_')[1]) || parseInt(eventTarget.id.split('_annotationCanvas_')[1]);\n if (event.target && (eventTarget.id.indexOf('_text') > -1 || eventTarget.id.indexOf('_annotationCanvas') > -1 || eventTarget.classList.contains('e-pv-hyperlink')) && this.pdfViewer.annotation) {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n var currentAnnot = this.getCurrentMarkupAnnotation(event.clientX, event.clientY, pageIndex, canvas);\n if (currentAnnot) {\n eventTarget.style.cursor = 'pointer';\n // eslint-disable-next-line\n var currentPosition = this.pdfViewerBase.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.pdfViewerBase.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: currentAnnot.opacity, color: currentAnnot.color, author: currentAnnot.author, subject: currentAnnot.subject, modifiedDate: currentAnnot.modifiedDate };\n // eslint-disable-next-line max-len\n this.pdfViewerBase.isMousedOver = true;\n this.pdfViewer.fireAnnotationMouseover(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot.textMarkupAnnotationType, currentAnnot.bounds, annotationSettings, mousePositions, viewerPositions);\n // this.showPopupNote(event, currentAnnot);\n }\n else {\n this.pdfViewer.annotationModule.hidePopupNote();\n if (this.pdfViewerBase.isPanMode && !this.pdfViewerBase.getAnnotationToolStatus()) {\n eventTarget.style.cursor = 'grab';\n }\n if (this.pdfViewerBase.isMousedOver && !this.pdfViewerBase.isFormFieldMousedOver) {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n this.pdfViewerBase.isMousedOver = false;\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.showPopupNote = function (event, annotation) {\n if (annotation.note) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.showPopupNote(event, annotation.color, annotation.author, annotation.note, annotation.textMarkupAnnotationType);\n }\n };\n TextMarkupAnnotation.prototype.getCurrentMarkupAnnotation = function (clientX, clientY, pageNumber, canvas) {\n var currentTextMarkupAnnotations = [];\n if (canvas) {\n var canvasParentPosition = canvas.parentElement.getBoundingClientRect();\n if (canvas.clientWidth !== canvas.parentElement.clientWidth) {\n canvasParentPosition = canvas.getBoundingClientRect();\n }\n var leftClickPosition = clientX - canvasParentPosition.left;\n var topClickPosition = clientY - canvasParentPosition.top;\n var annotationList = this.getAnnotations(pageNumber, null);\n var isAnnotationGot = false;\n if (annotationList) {\n for (var i = 0; i < annotationList.length; i++) {\n var annotation = annotationList[i];\n for (var j = 0; j < annotation.bounds.length; j++) {\n // eslint-disable-next-line\n var bound = annotation.bounds[j];\n var left = bound.left ? bound.left : bound.Left;\n var top_2 = bound.top ? bound.top : bound.Top;\n var width = bound.width ? bound.width : bound.Width;\n var height = bound.height ? bound.height : bound.Height;\n // eslint-disable-next-line max-len\n if (leftClickPosition >= this.getMagnifiedValue(left, this.pdfViewerBase.getZoomFactor()) && leftClickPosition <= this.getMagnifiedValue(left + width, this.pdfViewerBase.getZoomFactor()) && topClickPosition >= this.getMagnifiedValue(top_2, this.pdfViewerBase.getZoomFactor()) && topClickPosition <= this.getMagnifiedValue(top_2 + height, this.pdfViewerBase.getZoomFactor())) {\n currentTextMarkupAnnotations.push(annotation);\n isAnnotationGot = true;\n }\n else {\n if (isAnnotationGot) {\n isAnnotationGot = false;\n break;\n }\n }\n }\n }\n }\n var currentAnnot = null;\n if (currentTextMarkupAnnotations.length > 1) {\n currentAnnot = this.compareCurrentAnnotations(currentTextMarkupAnnotations);\n }\n else if (currentTextMarkupAnnotations.length === 1) {\n currentAnnot = currentTextMarkupAnnotations[0];\n }\n return currentAnnot;\n }\n else {\n return null;\n }\n };\n TextMarkupAnnotation.prototype.compareCurrentAnnotations = function (annotations) {\n var previousX;\n var currentAnnotation = null;\n for (var i = 0; i < annotations.length; i++) {\n if (i === annotations.length - 1) {\n break;\n }\n // eslint-disable-next-line\n var firstAnnotBounds = annotations[i].bounds;\n var firstXposition = firstAnnotBounds[0].left ? firstAnnotBounds[0].left : firstAnnotBounds[0].Left;\n var firstYposition = firstAnnotBounds[0].top ? firstAnnotBounds[0].top : firstAnnotBounds[0].Top;\n // eslint-disable-next-line\n var secondAnnotBounds = annotations[i + 1].bounds;\n var secondXposition = secondAnnotBounds[0].left ? secondAnnotBounds[0].left : secondAnnotBounds[0].Left;\n var secondYposition = secondAnnotBounds[0].top ? secondAnnotBounds[0].top : secondAnnotBounds[0].Top;\n if ((firstXposition < secondXposition) || (firstYposition < secondYposition)) {\n previousX = secondXposition;\n currentAnnotation = annotations[i + 1];\n }\n else {\n previousX = firstXposition;\n currentAnnotation = annotations[i];\n }\n if (previousX && (i === (annotations.length - 2))) {\n if ((previousX === firstXposition) && (previousX === secondXposition)) {\n previousX = secondXposition;\n currentAnnotation = annotations[i + 1];\n }\n }\n }\n return currentAnnotation;\n };\n /**\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.clearAnnotationSelection = function (pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n var context = canvas.getContext('2d');\n context.setLineDash([]);\n this.pdfViewer.annotationModule.renderAnnotations(pageNumber, null, null, null);\n }\n };\n /**\n * @param annotation\n * @param canvas\n * @param pageNumber\n * @param event\n * @param isProgrammaticSelection\n * @param annotation\n * @param canvas\n * @param pageNumber\n * @param event\n * @param isProgrammaticSelection\n * @private\n */\n // eslint-disable-next-line max-len\n TextMarkupAnnotation.prototype.selectAnnotation = function (annotation, canvas, pageNumber, event, isProgrammaticSelection) {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.annotations[0].pageIndex);\n this.pdfViewer.clearSelection(this.selectTextMarkupCurrentPage);\n }\n var isLock = false;\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n isLock = annotation.annotationSettings.isLock;\n if (isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLock = false;\n }\n }\n if (!isLock) {\n var isCurrentTextMarkup = false;\n if (!this.currentTextMarkupAnnotation) {\n isCurrentTextMarkup = true;\n }\n if (this.selectedTextMarkup && annotation && !isProgrammaticSelection) {\n if (this.selectedTextMarkup.annotName === annotation.annotName) {\n isCurrentTextMarkup = false;\n }\n else {\n isCurrentTextMarkup = true;\n }\n }\n if (!isNaN(pageNumber)) {\n this.selectTextMarkupCurrentPage = pageNumber;\n this.currentTextMarkupAnnotation = annotation;\n annotation = this.retreiveTextIndex(annotation);\n this.currentTextMarkupAnnotation = annotation;\n }\n if (this.isSelectedAnnotation && this.pdfViewer.textSelectionModule) {\n this.pdfViewerBase.isSelection = true;\n this.updateAnnotationBounds();\n }\n // eslint-disable-next-line\n var currentEvent = event;\n if (this.isEnableTextMarkupResizer(annotation.textMarkupAnnotationType) && annotation && currentEvent && !currentEvent.touches) {\n this.updateCurrentResizerPosition(annotation);\n }\n this.drawAnnotationSelector(annotation, this.currentTextMarkupAnnotation, canvas);\n if (annotation.isMultiSelect && annotation.annotNameCollection) {\n this.selectMultiPageAnnotations(annotation);\n }\n if (annotation.annotName !== '' && !this.isNewAnnotation) {\n if (isCurrentTextMarkup) {\n var isSelected = false;\n if (!currentEvent) {\n isSelected = true;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.annotationSelect(annotation.annotName, this.selectTextMarkupCurrentPage, annotation, null, false, isSelected);\n this.selectedTextMarkup = null;\n }\n }\n if (annotation && this.isEnableTextMarkupResizer(annotation.textMarkupAnnotationType)) {\n this.isTextMarkupAnnotationMode = true;\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateCurrentResizerPosition = function (annotation) {\n if (!annotation) {\n annotation = this.currentTextMarkupAnnotation;\n }\n if (annotation) {\n if (this.isEnableTextMarkupResizer(annotation.textMarkupAnnotationType) && annotation) {\n // eslint-disable-next-line\n var textElement = this.pdfViewerBase.getElement('_textLayer_' + this.selectTextMarkupCurrentPage);\n if (textElement) {\n // eslint-disable-next-line\n var boundingRect = textElement.getBoundingClientRect();\n var left = annotation.bounds[0].left ? annotation.bounds[0].left : annotation.bounds[0].Left;\n var top_3 = annotation.bounds[0].top ? annotation.bounds[0].top : annotation.bounds[0].Top;\n this.updateLeftposition(left * this.pdfViewerBase.getZoomFactor() + boundingRect.left, (boundingRect.top + top_3), true);\n // eslint-disable-next-line\n var endPosition = annotation.bounds[annotation.bounds.length - 1];\n var endLeft = endPosition.left ? endPosition.left : endPosition.Left;\n var endTop = endPosition.top ? endPosition.top : endPosition.Top;\n var endWidth = endPosition.width ? endPosition.width : endPosition.Width;\n // eslint-disable-next-line max-len\n this.updatePosition((endLeft + endWidth) * this.pdfViewerBase.getZoomFactor() + boundingRect.left, (endTop + boundingRect.top), true);\n }\n }\n }\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.drawAnnotationSelectRect = function (canvas, x, y, width, height, annotation) {\n var ratio = this.pdfViewerBase.getZoomRatio();\n if (canvas) {\n var context = canvas.getContext('2d');\n context.setTransform(1, 0, 0, 1, 0, 0);\n context.beginPath();\n if (typeof (annotation).annotationSelectorSettings === 'string') {\n // eslint-disable-next-line max-len\n var lineDash = JSON.parse(annotation.annotationSelectorSettings).selectorLineDashArray.length === 0 ? [4] : JSON.parse(annotation.annotationSelectorSettings).selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n context.setLineDash(lineDash);\n context.globalAlpha = 1;\n context.rect(x * ratio, y * ratio, width * ratio, height * ratio);\n context.closePath();\n // eslint-disable-next-line max-len\n var borderColor = JSON.parse(annotation.annotationSelectorSettings).selectionBorderColor === '' ? '#0000ff' : JSON.parse(annotation.annotationSelectorSettings).selectionBorderColor;\n context.strokeStyle = borderColor;\n // eslint-disable-next-line max-len\n context.lineWidth = JSON.parse(annotation.annotationSelectorSettings).selectionBorderThickness === 1 ? 1 : (annotation.annotationSelectorSettings).selectionBorderThickness;\n context.stroke();\n context.save();\n }\n else {\n // eslint-disable-next-line max-len\n var lineDash = (annotation.annotationSelectorSettings).selectorLineDashArray.length === 0 ? [4] : (annotation.annotationSelectorSettings).selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n context.setLineDash(lineDash);\n context.globalAlpha = 1;\n context.rect(x * ratio, y * ratio, width * ratio, height * ratio);\n context.closePath();\n // eslint-disable-next-line max-len\n var borderColor = (annotation.annotationSelectorSettings).selectionBorderColor === '' ? '#0000ff' : (annotation.annotationSelectorSettings).selectionBorderColor;\n context.strokeStyle = borderColor;\n // eslint-disable-next-line max-len\n context.lineWidth = (annotation.annotationSelectorSettings).selectionBorderThickness ? 1 : (annotation.annotationSelectorSettings).selectionBorderThickness;\n context.stroke();\n context.save();\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n TextMarkupAnnotation.prototype.enableAnnotationPropertiesTool = function (isEnable) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n if (!Browser.isDevice) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createMobileAnnotationToolbar(isEnable);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule.isMobileAnnotEnabled && this.pdfViewer.selectedItems.annotations.length === 0) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(isEnable);\n var enable = isEnable;\n if (this.isTextMarkupAnnotationMode) {\n enable = true;\n }\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(enable);\n if (this.currentTextMarkupAnnotation) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElement, this.currentTextMarkupAnnotation.color);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElementInBlazor, this.currentTextMarkupAnnotation.color);\n }\n }\n else {\n if (!isNullOrUndefined(this.isTextMarkupAnnotationMode) && !this.isTextMarkupAnnotationMode) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElement, '#000000');\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.updateColorInIcon(this.pdfViewer.toolbarModule.annotationToolbarModule.colorDropDownElementInBlazor, '#000000');\n }\n }\n else {\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n }\n }\n }\n }\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.maintainAnnotationSelection = function () {\n if (this.currentTextMarkupAnnotation) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + this.selectTextMarkupCurrentPage);\n if (canvas) {\n this.selectAnnotation(this.currentTextMarkupAnnotation, canvas, this.selectTextMarkupCurrentPage);\n }\n }\n };\n // private storeAnnotations(pageNumber: number, annotation: ITextMarkupAnnotation): number {\n // eslint-disable-next-line\n // let storeObject: any = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n // let index: number = 0;\n // if (!storeObject) {\n // let markupAnnotation: IPageAnnotations = { pageIndex: pageNumber, annotations: [] };\n // markupAnnotation.annotations.push(annotation);\n // index = markupAnnotation.annotations.indexOf(annotation);\n // let annotationCollection: IPageAnnotations[] = [];\n // annotationCollection.push(markupAnnotation);\n // let annotationStringified: string = JSON.stringify(annotationCollection);\n // window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_textMarkup', annotationStringified);\n // } else {\n // let annotObject: IPageAnnotations[] = JSON.parse(storeObject);\n // window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n // let pageIndex: number = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n // if (annotObject[pageIndex]) {\n // (annotObject[pageIndex] as IPageAnnotations).annotations.push(annotation);\n // index = (annotObject[pageIndex] as IPageAnnotations).annotations.indexOf(annotation);\n // } else {\n // let markupAnnotation: IPageAnnotations = { pageIndex: pageNumber, annotations: [] };\n // markupAnnotation.annotations.push(annotation);\n // index = markupAnnotation.annotations.indexOf(annotation);\n // annotObject.push(markupAnnotation);\n // }\n // let annotationStringified: string = JSON.stringify(annotObject);\n // window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_textMarkup', annotationStringified);\n // }\n // return index;\n // }\n /**\n * @param pageAnnotations\n * @param pageNumber\n * @private\n */\n TextMarkupAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_textMarkup', annotationStringified);\n }\n }\n };\n /**\n * @param pageIndex\n * @param textMarkupAnnotations\n * @param id\n * @param pageIndex\n * @param textMarkupAnnotations\n * @param id\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getAnnotations = function (pageIndex, textMarkupAnnotations, id) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n if (id == null || id == undefined) {\n id = '_annotations_textMarkup';\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + id);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + id];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = textMarkupAnnotations;\n }\n }\n else {\n annotationCollection = textMarkupAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.getAddedAnnotation = function (type, color, opacity, bounds, author, subject, predefinedDate, note, isCommentLock, rect, pageNumber, textContent, startIndex, endIndex, isMultiSelect, allowedInteractions, annotationRotate) {\n // eslint-disable-next-line max-len\n var modifiedDate = predefinedDate ? predefinedDate : this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('textMarkup', pageNumber + 1, type);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n // eslint-disable-next-line\n var annotationSettings = this.getAnnotationSettings(type);\n var isPrint = this.getIsPrintValue(type);\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotationType: type, color: color, opacity: opacity, bounds: bounds, author: author, allowedInteractions: allowedInteractions, subject: subject, modifiedDate: modifiedDate, note: note, rect: rect,\n annotName: annotationName, comments: [], review: { state: '', stateModel: '', author: author, modifiedDate: modifiedDate }, shapeAnnotationType: 'textMarkup', pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n textMarkupContent: textContent, textMarkupStartIndex: startIndex, textMarkupEndIndex: endIndex, isMultiSelect: isMultiSelect, annotationSelectorSettings: this.getSelector(type),\n customData: this.pdfViewer.annotation.getTextMarkupData(subject), annotationAddMode: this.annotationAddMode, annotationSettings: annotationSettings, isPrint: isPrint, isCommentLock: isCommentLock, isAnnotationRotated: false, annotationRotation: annotationRotate\n };\n if (isMultiSelect) {\n this.multiPageCollection.push(annotation);\n }\n var isSkip = false;\n if (isMultiSelect && this.isExtended) {\n isSkip = true;\n }\n if (document.getElementById(annotationName) && !isSkip) {\n document.getElementById(annotationName).addEventListener('mouseup', this.annotationDivSelect(annotation, pageNumber));\n }\n var storedIndex = this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotation, '_annotations_textMarkup');\n this.pdfViewer.annotationModule.addAction(pageNumber, storedIndex, annotation, 'Text Markup Added', null);\n return annotation;\n };\n TextMarkupAnnotation.prototype.getSelector = function (type) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.highlightSettings.annotationSelectorSettings;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.underlineSettings.annotationSelectorSettings;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.strikethroughSettings.annotationSelectorSettings;\n }\n return selector;\n };\n TextMarkupAnnotation.prototype.getAnnotationSettings = function (type) {\n var annotationSettings = { isLock: false };\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n else if (this.pdfViewer.annotationSettings.isLock) {\n annotationSettings = { isLock: true };\n }\n return annotationSettings;\n };\n TextMarkupAnnotation.prototype.getIsPrintValue = function (type) {\n var isPrint = true;\n if (type === 'Highlight') {\n isPrint = this.pdfViewer.highlightSettings.isPrint;\n }\n if (type === 'Underline') {\n isPrint = this.pdfViewer.underlineSettings.isPrint;\n }\n if (type === 'Strikethrough') {\n isPrint = this.pdfViewer.strikethroughSettings.isPrint;\n }\n if (isNullOrUndefined(isPrint)) {\n isPrint = true;\n }\n return isPrint;\n };\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.annotationDivSelect = function (annotation, pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n this.selectAnnotation(annotation, canvas, pageNumber);\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearShapeMode();\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearMeasureMode();\n var isLock = false;\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n isLock = annotation.annotationSettings.isLock;\n }\n if (isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', annotation)) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n }\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);\n }\n }\n else {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n }\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n if (!isBlazor()) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n };\n TextMarkupAnnotation.prototype.getPageContext = function (pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n var context = null;\n if (canvas) {\n context = canvas.getContext('2d');\n }\n return context;\n };\n TextMarkupAnnotation.prototype.getDefaultValue = function (value) {\n return value / this.pdfViewerBase.getZoomFactor();\n };\n TextMarkupAnnotation.prototype.getMagnifiedValue = function (value, factor) {\n return value * factor;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.saveImportedTextMarkupAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('textMarkup', annotation.Subject);\n if (annotation.AnnotationSettings && annotation.AnnotationSettings.isLock) {\n annotation.AnnotationSettings = { isLock: annotation.AnnotationSettings.isLock };\n }\n else {\n annotation.AnnotationSettings = this.getAnnotationSettings(annotation.TextMarkupAnnotationType);\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n // eslint-disable-next-line max-len\n textMarkupAnnotationType: annotation.TextMarkupAnnotationType, color: annotation.Color, opacity: annotation.Opacity, allowedInteractions: annotation.allowedInteractions, bounds: annotation.Bounds, author: annotation.Author, subject: annotation.Subject, modifiedDate: annotation.ModifiedDate, note: annotation.Note, rect: annotation.Rect,\n annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n shapeAnnotationType: 'textMarkup',\n pageNumber: pageNumber, textMarkupContent: '', textMarkupStartIndex: 0,\n // eslint-disable-next-line max-len\n textMarkupEndIndex: 0, annotationSelectorSettings: this.getSettings(annotation), customData: this.pdfViewer.annotation.getCustomData(annotation),\n isMultiSelect: annotation.IsMultiSelect, annotNameCollection: annotation.AnnotNameCollection, annotpageNumbers: annotation.AnnotpageNumbers,\n // eslint-disable-next-line max-len\n annotationAddMode: this.annotationAddMode, annotationSettings: annotation.AnnotationSettings, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: false\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_textMarkup');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateTextMarkupAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n textMarkupAnnotationType: annotation.TextMarkupAnnotationType, allowedInteractions: annotation.allowedInteractions, color: annotation.Color, opacity: annotation.Opacity, bounds: annotation.Bounds, author: annotation.Author, subject: annotation.Subject, modifiedDate: annotation.ModifiedDate, note: annotation.Note, rect: annotation.Rect,\n annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, shapeAnnotationType: 'textMarkup', pageNumber: pageNumber, isMultiSelect: annotation.IsMultiSelect, annotNameCollection: annotation.AnnotNameCollection, annotpageNumbers: annotation.AnnotpageNumbers, customData: this.pdfViewer.annotation.getCustomData(annotation),\n isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock\n };\n return annotationObject;\n };\n /**\n * @param textMarkUpSettings\n * @private\n */\n // eslint-disable-next-line\n TextMarkupAnnotation.prototype.updateTextMarkupSettings = function (textMarkUpSettings) {\n if (textMarkUpSettings === 'highlightSettings') {\n // eslint-disable-next-line max-len\n this.highlightColor = this.pdfViewer.highlightSettings.color ? this.pdfViewer.highlightSettings.color : this.highlightColor;\n // eslint-disable-next-line max-len\n this.highlightOpacity = this.pdfViewer.highlightSettings.opacity ? this.pdfViewer.highlightSettings.opacity : this.highlightOpacity;\n }\n if (textMarkUpSettings === 'underlineSettings') {\n // eslint-disable-next-line max-len\n this.underlineColor = this.pdfViewer.underlineSettings.color ? this.pdfViewer.underlineSettings.color : this.underlineColor;\n // eslint-disable-next-line max-len\n this.underlineOpacity = this.pdfViewer.underlineSettings.opacity ? this.pdfViewer.underlineSettings.opacity : this.underlineOpacity;\n }\n if (textMarkUpSettings === 'strikethroughSettings') {\n // eslint-disable-next-line max-len\n this.strikethroughColor = this.pdfViewer.strikethroughSettings.color ? this.pdfViewer.strikethroughSettings.color : this.strikethroughColor;\n // eslint-disable-next-line max-len\n this.strikethroughOpacity = this.pdfViewer.strikethroughSettings.opacity ? this.pdfViewer.strikethroughSettings.opacity : this.strikethroughOpacity;\n }\n };\n /**\n * @private\n */\n TextMarkupAnnotation.prototype.clear = function () {\n this.selectTextMarkupCurrentPage = null;\n this.currentTextMarkupAnnotation = null;\n this.annotationClickPosition = null;\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n };\n /**\n * Get vertex points properties\n * @private\n */\n TextMarkupAnnotation.prototype.getOffsetPoints = function (points) {\n var offsetPoints = [];\n //Converting points model into vertex property\n for (var j = 0; j < points.length; j++) {\n offsetPoints[j] = { X: points[j].x, Y: points[j].y, Width: points[j].width, Height: points[j].height, Left: points[j].x, Top: points[j].y };\n }\n return offsetPoints;\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes the annotation type\n * @param annotationObject - It describes type of annotation object\n * @returns Object\n * @private\n */\n TextMarkupAnnotation.prototype.updateAddAnnotationDetails = function (annotationType, annotationObject) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { pageNumber: 0 };\n }\n //Initialize the annotation settings\n var annotSelectorSettings = null;\n var annotallowedInteractions = null;\n var textMarkupAnnotationType = '';\n var annotSettings = null;\n var color = '';\n var bounds = [];\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (annotationType == 'Highlight') {\n //Creating annotation settings\n annotSelectorSettings = this.pdfViewer.highlightSettings.annotationSelectorSettings ? this.pdfViewer.highlightSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.highlightSettings);\n annotallowedInteractions = this.pdfViewer.highlightSettings.allowedInteractions ? this.pdfViewer.highlightSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n textMarkupAnnotationType = 'Highlight';\n color = annotationObject.color ? annotationObject.color : '#ffff00';\n }\n else if (annotationType == 'Underline') {\n //Creating annotation settings\n annotSelectorSettings = this.pdfViewer.underlineSettings.annotationSelectorSettings ? this.pdfViewer.underlineSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.underlineSettings);\n annotallowedInteractions = this.pdfViewer.underlineSettings.allowedInteractions ? this.pdfViewer.underlineSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n textMarkupAnnotationType = 'Underline';\n color = annotationObject.color ? annotationObject.color : '#00ff00';\n }\n else if (annotationType == 'Strikethrough') {\n //Creating annotation settings\n annotSelectorSettings = this.pdfViewer.strikethroughSettings.annotationSelectorSettings ? this.pdfViewer.strikethroughSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.strikethroughSettings);\n annotallowedInteractions = this.pdfViewer.strikethroughSettings.allowedInteractions ? this.pdfViewer.strikethroughSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n textMarkupAnnotationType = 'Strikethrough';\n color = annotationObject.color ? annotationObject.color : '#ff0000';\n }\n annotSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n //Creating the offset points\n if (annotationObject.bounds) {\n bounds = this.getOffsetPoints(annotationObject.bounds);\n }\n else\n bounds = [{ X: 1, Y: 1, Width: 100, Height: 14, Left: 1, Top: 1, Location: { X: 1, Y: 1 }, Size: { Height: 14, IsEmpty: false, Width: 100 } }];\n //Creating Annotation objects with it's proper properties \n var textMarkupAnnotation = [];\n var textmarkup = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : annotallowedInteractions,\n AnnotName: annotationName,\n AnnotNameCollection: null,\n AnnotType: 'textMarkup',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotSelectorSettings,\n AnnotationSettings: annotSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Bounds: bounds,\n Color: annotationObject.color ? annotationObject.color : color,\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n EnableMultiPageAnnotation: annotationObject.enableMultiPageAnnotation ? annotationObject.enableMultiPageAnnotation : false,\n EnableTextMarkupResizer: annotationObject.enableTextMarkupResizer ? annotationObject.enableTextMarkupResizer : false,\n IsCommentLock: false,\n IsMultiSelect: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Rect: {},\n State: '',\n StateModel: '',\n Subject: textMarkupAnnotationType,\n TextMarkupAnnotationType: textMarkupAnnotationType,\n };\n //Adding the annotation object to an array and return it\n textMarkupAnnotation[0] = textmarkup;\n return { textMarkupAnnotation: textMarkupAnnotation };\n };\n return TextMarkupAnnotation;\n}());\nexport { TextMarkupAnnotation };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @hidden\n */\nvar ShapeAnnotation = /** @class */ (function () {\n function ShapeAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.shapeCount = 0;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAcion\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.renderShapeAnnotations = function (shapeAnnotations, pageNumber, isImportAcion, isAnnotOrderAction) {\n if (shapeAnnotations) {\n if (shapeAnnotations.length >= 1) {\n // eslint-disable-next-line\n var shapeAnnots = this.pdfViewer.annotation.getStoredAnnotations(pageNumber, shapeAnnotations, '_annotations_shape');\n if (!shapeAnnots || isAnnotOrderAction || isImportAcion) {\n for (var i = 0; i < shapeAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations[i];\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n var annotationObject = null;\n this.shapeCount = this.shapeCount + 1;\n var isAnnotationRotated = void 0;\n if (annotation.ShapeAnnotationType) {\n if (isImportAcion) {\n if (this.pdfViewerBase.isJsonImported) {\n annotation.Bounds = this.pdfViewerBase.importJsonForRotatedDocuments(annotation.Rotate, pageNumber, annotation.Bounds, annotation.AnnotationRotation);\n isAnnotationRotated = this.pdfViewerBase.isPageRotated;\n }\n }\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n if (isImportAcion && this.pdfViewerBase.isJsonImported) {\n vertexPoints = this.pdfViewerBase.calculateVertexPoints(annotation.Rotate, pageNumber, annotation.VertexPoints, annotation.AnnotationRotation);\n }\n else {\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var x = annotation.VertexPoints[j].X ? annotation.VertexPoints[j].X : annotation.VertexPoints[j].x;\n var y = annotation.VertexPoints[j].Y ? annotation.VertexPoints[j].Y : annotation.VertexPoints[j].y;\n var point = { x: x, y: y };\n vertexPoints.push(point);\n }\n }\n }\n // eslint-disable-next-line\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n // eslint-disable-next-line max-len\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n // eslint-disable-next-line max-len\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isPrint = true;\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = annotation.IsPrint;\n }\n else {\n isPrint = annotation.AnnotationSettings.isPrint;\n }\n var left = annotation.Bounds.X ? annotation.Bounds.X : annotation.Bounds.x;\n var top_1 = annotation.Bounds.Y ? annotation.Bounds.Y : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height; // eslint-disable-next-line max-len\n annotationObject = {\n id: 'shape' + this.shapeCount, shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n // eslint-disable-next-line max-len\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, annotName: annotation.AnnotName,\n bounds: { left: left, top: top_1, width: width, height: height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: isPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: isAnnotationRotated\n };\n var annot = void 0;\n // eslint-disable-next-line\n var vPoints = annotationObject.vertexPoints;\n if (vertexPoints == null) {\n vPoints = [];\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annot = {\n // eslint-disable-next-line max-len\n id: 'shape' + this.shapeCount, shapeAnnotationType: this.getShapeType(annotationObject), author: annotationObject.author, allowedInteractions: annotationObject.allowedInteractions, modifiedDate: annotationObject.modifiedDate, annotName: annotationObject.annotName,\n subject: annotationObject.subject, notes: annotationObject.note, fillColor: annotationObject.fillColor, strokeColor: annotationObject.strokeColor, opacity: annotationObject.opacity,\n // eslint-disable-next-line max-len\n thickness: annotationObject.thickness, borderStyle: annotationObject.borderStyle, borderDashArray: annotationObject.borderDashArray ? annotationObject.borderDashArray.toString() : '0', rotateAngle: parseFloat(annotationObject.rotateAngle.split('Angle')[1]), comments: annotationObject.comments, review: annotationObject.review, isCloudShape: annotationObject.isCloudShape, cloudIntensity: annotationObject.cloudIntensity, taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadEnd),\n // eslint-disable-next-line max-len\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadStart), vertexPoints: vPoints, bounds: { x: annotationObject.bounds.left, y: annotationObject.bounds.top, width: annotationObject.bounds.width, height: annotationObject.bounds.height },\n pageIndex: annotationObject.pageNumber,\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: annotation.AnnotationSelectorSettings,\n annotationSettings: annotationObject.annotationSettings, annotationAddMode: annotation.annotationAddMode,\n isPrint: isPrint, isCommentLock: annotationObject.isCommentLock\n };\n var addedAnnot = this.pdfViewer.add(annot);\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape');\n if (this.isAddAnnotationProgramatically) {\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, annotation.ShapeAnnotationType, annot.bounds, settings);\n }\n }\n }\n }\n }\n else if (shapeAnnotations.shapeAnnotationType) {\n var annotationObject = this.createAnnotationObject(shapeAnnotations);\n if (!isNullOrUndefined(shapeAnnotations.formFieldAnnotationType) && shapeAnnotations.formFieldAnnotationType !== \"\")\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n else\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape');\n this.pdfViewer.annotationModule.triggerAnnotationAdd(shapeAnnotations);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.ShapeAnnotationType, annotation.Subject);\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n ShapeAnnotation.prototype.setAnnotationType = function (type) {\n this.updateShapeProperties();\n this.pdfViewerBase.disableTextSelectionMode();\n var author = 'Guest';\n switch (type) {\n case 'Line':\n this.currentAnnotationMode = 'Line';\n // eslint-disable-next-line max-len\n var modifiedDateLine = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.lineSettings.author ? this.pdfViewer.lineSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: this.setShapeType('Line'), fillColor: this.lineFillColor, notes: '', strokeColor: this.lineStrokeColor, opacity: this.lineOpacity,\n thickness: this.lineThickness, modifiedDate: modifiedDateLine, borderDashArray: this.lineDashArray.toString(),\n // eslint-disable-next-line max-len\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.lineStartHead.toString()), taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.lineEndHead.toString()),\n author: author, subject: 'Line', lineHeadStart: this.lineStartHead, lineHeadEnd: this.lineEndHead, isCommentLock: false\n };\n this.pdfViewer.tool = 'Line';\n break;\n case 'Arrow':\n this.currentAnnotationMode = 'Arrow';\n // eslint-disable-next-line max-len\n var modifiedDateArrow = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.arrowSettings.author ? this.pdfViewer.arrowSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: this.setShapeType('Arrow'), opacity: this.arrowOpacity,\n // eslint-disable-next-line max-len\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.arrowStartHead.toString()),\n taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.arrowEndHead.toString()),\n // eslint-disable-next-line max-len\n fillColor: this.arrowFillColor, strokeColor: this.arrowStrokeColor, notes: '', thickness: this.arrowThickness,\n borderDashArray: this.arrowDashArray.toString(), author: author, subject: 'Arrow',\n // eslint-disable-next-line max-len\n modifiedDate: modifiedDateArrow, lineHeadStart: this.arrowStartHead, lineHeadEnd: this.arrowEndHead, isCommentLock: false\n };\n this.pdfViewer.tool = 'Line';\n break;\n case 'Rectangle':\n this.currentAnnotationMode = 'Rectangle';\n // eslint-disable-next-line max-len\n var modifiedDateRect = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.rectangleSettings.author ? this.pdfViewer.rectangleSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: this.setShapeType('Rectangle'), strokeColor: this.rectangleStrokeColor,\n fillColor: this.rectangleFillColor, opacity: this.rectangleOpacity, notes: '',\n thickness: this.rectangleThickness, borderDashArray: '0', modifiedDate: modifiedDateRect,\n author: author, subject: 'Rectangle', isCommentLock: false\n };\n this.pdfViewer.tool = 'DrawTool';\n break;\n case 'Circle':\n this.currentAnnotationMode = 'Circle';\n // eslint-disable-next-line max-len\n var modifiedDateCir = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.circleSettings.author ? this.pdfViewer.circleSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: this.setShapeType('Circle'), strokeColor: this.circleStrokeColor,\n fillColor: this.circleFillColor, opacity: this.circleOpacity, notes: '',\n thickness: this.circleThickness, borderDashArray: '0', modifiedDate: modifiedDateCir,\n author: author, subject: 'Circle', isCommentLock: false\n };\n this.pdfViewer.tool = 'DrawTool';\n break;\n case 'Polygon':\n this.currentAnnotationMode = 'Polygon';\n // eslint-disable-next-line max-len\n var modifiedDatePolygon = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.polygonSettings.author ? this.pdfViewer.polygonSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n strokeColor: this.polygonStrokeColor, fillColor: this.polygonFillColor,\n opacity: this.polygonOpacity, thickness: this.polygonThickness, borderDashArray: '0',\n notes: '', author: author, subject: 'Polygon',\n modifiedDate: modifiedDatePolygon, borderStyle: '', isCommentLock: false\n };\n this.pdfViewer.tool = 'Polygon';\n break;\n }\n };\n ShapeAnnotation.prototype.updateShapeProperties = function () {\n this.lineFillColor = this.pdfViewer.lineSettings.fillColor ? this.pdfViewer.lineSettings.fillColor : '#ffffff00';\n this.lineStrokeColor = this.pdfViewer.lineSettings.strokeColor ? this.pdfViewer.lineSettings.strokeColor : '#ff0000';\n this.lineThickness = this.pdfViewer.lineSettings.thickness ? this.pdfViewer.lineSettings.thickness : 1;\n this.lineOpacity = this.pdfViewer.lineSettings.opacity ? this.pdfViewer.lineSettings.opacity : 1;\n this.lineDashArray = this.pdfViewer.lineSettings.borderDashArray ? this.pdfViewer.lineSettings.borderDashArray : 0;\n this.lineStartHead = this.pdfViewer.lineSettings.lineHeadStartStyle ? this.pdfViewer.lineSettings.lineHeadStartStyle : 'None';\n this.lineEndHead = this.pdfViewer.lineSettings.lineHeadEndStyle ? this.pdfViewer.lineSettings.lineHeadEndStyle : 'None';\n this.arrowFillColor = this.pdfViewer.arrowSettings.fillColor ? this.pdfViewer.arrowSettings.fillColor : '#ffffff00';\n this.arrowStrokeColor = this.pdfViewer.arrowSettings.strokeColor ? this.pdfViewer.arrowSettings.strokeColor : '#ff0000';\n this.arrowThickness = this.pdfViewer.arrowSettings.thickness ? this.pdfViewer.arrowSettings.thickness : 1;\n this.arrowOpacity = this.pdfViewer.arrowSettings.opacity ? this.pdfViewer.arrowSettings.opacity : 1;\n this.arrowDashArray = this.pdfViewer.arrowSettings.borderDashArray ? this.pdfViewer.arrowSettings.borderDashArray : 0;\n this.arrowStartHead = this.pdfViewer.arrowSettings.lineHeadStartStyle ? this.pdfViewer.arrowSettings.lineHeadStartStyle : 'Closed';\n this.arrowEndHead = this.pdfViewer.arrowSettings.lineHeadEndStyle ? this.pdfViewer.arrowSettings.lineHeadEndStyle : 'Closed';\n this.rectangleFillColor = this.pdfViewer.rectangleSettings.fillColor ? this.pdfViewer.rectangleSettings.fillColor : '#ffffff00';\n this.rectangleStrokeColor = this.pdfViewer.rectangleSettings.strokeColor ? this.pdfViewer.rectangleSettings.strokeColor : '#ff0000';\n this.rectangleThickness = this.pdfViewer.rectangleSettings.thickness ? this.pdfViewer.rectangleSettings.thickness : 1;\n this.rectangleOpacity = this.pdfViewer.rectangleSettings.opacity ? this.pdfViewer.rectangleSettings.opacity : 1;\n this.circleFillColor = this.pdfViewer.circleSettings.fillColor ? this.pdfViewer.circleSettings.fillColor : '#ffffff00';\n this.circleStrokeColor = this.pdfViewer.circleSettings.strokeColor ? this.pdfViewer.circleSettings.strokeColor : '#ff0000';\n this.circleThickness = this.pdfViewer.circleSettings.thickness ? this.pdfViewer.circleSettings.thickness : 1;\n this.circleOpacity = this.pdfViewer.circleSettings.opacity ? this.pdfViewer.circleSettings.opacity : 1;\n this.polygonFillColor = this.pdfViewer.polygonSettings.fillColor ? this.pdfViewer.polygonSettings.fillColor : '#ffffff00';\n this.polygonStrokeColor = this.pdfViewer.polygonSettings.strokeColor ? this.pdfViewer.polygonSettings.strokeColor : '#ff0000';\n this.polygonThickness = this.pdfViewer.polygonSettings.thickness ? this.pdfViewer.polygonSettings.thickness : 1;\n this.polygonOpacity = this.pdfViewer.polygonSettings.opacity ? this.pdfViewer.polygonSettings.opacity : 1;\n };\n ShapeAnnotation.prototype.setShapeType = function (shape) {\n var shapeType;\n switch (shape) {\n case 'Line':\n shapeType = 'Line';\n break;\n case 'Circle':\n shapeType = 'Ellipse';\n break;\n case 'Square':\n shapeType = 'Rectangle';\n break;\n case 'Polyline':\n shapeType = 'Line';\n break;\n case 'Arrow':\n shapeType = 'LineWidthArrowHead';\n break;\n }\n return shapeType;\n };\n ShapeAnnotation.prototype.getShapeType = function (shape) {\n var shapeType;\n switch (shape.shapeAnnotationType) {\n case 'Line':\n shapeType = 'Line';\n break;\n case 'Circle':\n shapeType = 'Ellipse';\n break;\n case 'Square':\n shapeType = 'Rectangle';\n break;\n case 'Polyline':\n shapeType = 'Line';\n break;\n case 'Polygon':\n shapeType = 'Polygon';\n break;\n }\n // eslint-disable-next-line max-len\n if ((shape.shapeAnnotationType === 'Line' || shape.shapeAnnotationType === 'Polyline') && (shape.lineHeadStart !== 'None' || shape.lineHeadEnd !== 'None')) {\n shapeType = 'LineWidthArrowHead';\n }\n return shapeType;\n };\n ShapeAnnotation.prototype.getShapeAnnotType = function (shape) {\n var shapeType;\n switch (shape) {\n case 'Line':\n case 'LineWidthArrowHead':\n shapeType = 'Line';\n break;\n case 'Rectangle':\n shapeType = 'Square';\n break;\n case 'Ellipse':\n shapeType = 'Circle';\n break;\n case 'Polygon':\n shapeType = 'Polygon';\n break;\n }\n return shapeType;\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\")\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n else\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var currentAnnotObject = null;\n if (annotationBase) {\n if (property === 'bounds') {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, true);\n }\n }\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[i].id) {\n if (property === 'bounds') {\n if (pageAnnotations[i].shapeAnnotationType === 'Line') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else if (pageAnnotations[i].shapeAnnotationType === 'Polygon') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n if (pageAnnotations[i].enableShapeLabel === true && annotationBase.wrapper) {\n var labelTop = 0;\n var labelLeft = 0;\n var labelWidth = 0;\n var labelHeight = 24.6;\n var labelMaxWidth = 151;\n if (annotationBase.wrapper.bounds.width) {\n // eslint-disable-next-line max-len\n labelWidth = (annotationBase.wrapper.bounds.width / 2);\n labelWidth = (labelWidth > 0 && labelWidth < labelMaxWidth) ? labelWidth : labelMaxWidth;\n }\n if (annotationBase.wrapper.bounds.left) {\n // eslint-disable-next-line max-len\n labelLeft = (annotationBase.wrapper.bounds.left + (annotationBase.wrapper.bounds.width / 2) - (labelWidth / 2));\n }\n if (annotationBase.wrapper.bounds.top) {\n // eslint-disable-next-line max-len\n labelTop = (annotationBase.wrapper.bounds.top + (annotationBase.wrapper.bounds.height / 2) - 12.3);\n }\n // eslint-disable-next-line max-len\n pageAnnotations[i].labelBounds = { left: labelLeft, top: labelTop, width: labelWidth, height: labelHeight, right: 0, bottom: 0 };\n }\n }\n else if (property === 'fill') {\n pageAnnotations[i].fillColor = annotationBase.wrapper.children[0].style.fill;\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'dashArray') {\n pageAnnotations[i].borderDashArray = annotationBase.wrapper.children[0].style.strokeDashArray;\n pageAnnotations[i].borderStyle = annotationBase.borderStyle;\n }\n else if (property === 'startArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadStart = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.sourceDecoraterShapes);\n }\n else if (property === 'endArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadEnd = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.taregetDecoraterShapes);\n }\n else if (property === 'notes') {\n pageAnnotations[i].note = annotationBase.notes;\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n else if (property === 'labelContent') {\n pageAnnotations[i].note = annotationBase.labelContent;\n pageAnnotations[i].labelContent = annotationBase.labelContent;\n break;\n }\n else if (property === 'fontColor') {\n pageAnnotations[i].fontColor = annotationBase.fontColor;\n }\n else if (property === 'fontSize') {\n pageAnnotations[i].fontSize = annotationBase.fontSize;\n }\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n ShapeAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n };\n /**\n * @private\n */\n ShapeAnnotation.prototype.saveShapeAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n if (!this.pdfViewerBase.checkFormFieldCollection(pageAnnotationObject.annotations[z].id)) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n if (this.pdfViewerBase.isJsonExported) {\n if (pageAnnotationObject.annotations[z].isAnnotationRotated) {\n pageAnnotationObject.annotations[z].bounds = this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex);\n pageAnnotationObject.annotations[z].vertexPoints = this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex);\n }\n else {\n var pageDetails = this.pdfViewerBase.pageSize[pageAnnotationObject.pageIndex];\n if (pageDetails) {\n pageAnnotationObject.annotations[z].annotationRotation = pageDetails.rotation;\n ;\n }\n }\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n var fillColorString = pageAnnotationObject.annotations[z].fillColor;\n pageAnnotationObject.annotations[z].fillColor = JSON.stringify(this.getRgbCode(fillColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].vertexPoints = JSON.stringify(this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[z].rectangleDifference !== null) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].rectangleDifference = JSON.stringify(pageAnnotationObject.annotations[z].rectangleDifference);\n }\n if (pageAnnotationObject.annotations[z].enableShapeLabel === true) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].labelBounds = JSON.stringify(this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(JSON.parse(pageAnnotationObject.annotations[z].bounds)));\n var labelFillColorString = pageAnnotationObject.annotations[z].labelFillColor;\n pageAnnotationObject.annotations[z].labelFillColor = JSON.stringify(this.getRgbCode(labelFillColorString));\n var labelBorderColorString = pageAnnotationObject.annotations[z].labelBorderColor;\n pageAnnotationObject.annotations[z].labelBorderColor = JSON.stringify(this.getRgbCode(labelBorderColorString));\n pageAnnotationObject.annotations[z].labelSettings.fillColor = labelFillColorString;\n var fontColorString = pageAnnotationObject.annotations[z].labelSettings.fontColor;\n pageAnnotationObject.annotations[z].fontColor = JSON.stringify(this.getRgbCode(fontColorString));\n }\n }\n else {\n pageAnnotationObject.annotations[z] = \"\";\n }\n }\n pageAnnotationObject.annotations = pageAnnotationObject.annotations.filter(function (item) { return item; });\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n ShapeAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_shape', annotationStringified);\n }\n }\n };\n ShapeAnnotation.prototype.createAnnotationObject = function (annotationModel) {\n var bound;\n var labelBound;\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (!annotationModel.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('shape', (annotationModel.pageIndex + 1), annotationModel.shapeAnnotationType);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n }\n annotationModel.annotName = annotationName;\n if (annotationModel.wrapper.bounds) {\n bound = {\n // eslint-disable-next-line max-len\n left: annotationModel.wrapper.bounds.x, top: annotationModel.wrapper.bounds.y, height: annotationModel.wrapper.bounds.height, width: annotationModel.wrapper.bounds.width,\n right: annotationModel.wrapper.bounds.right, bottom: annotationModel.wrapper.bounds.bottom\n };\n labelBound = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(annotationModel.wrapper.bounds);\n }\n else {\n bound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n labelBound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n }\n if (annotationModel.subject === 'Line' && annotationModel.shapeAnnotationType === 'Polygon') {\n annotationModel.author = this.pdfViewer.annotationModule.updateAnnotationAuthor('shape', 'Polygon');\n }\n else {\n annotationModel.author = this.pdfViewer.annotationModule.updateAnnotationAuthor('shape', annotationModel.subject);\n }\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(annotationName, annotationModel.notes);\n // eslint-disable-next-line radix\n var borderDashArray = parseInt(annotationModel.borderDashArray);\n borderDashArray = isNaN(borderDashArray) ? 0 : borderDashArray;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(annotationModel, true);\n annotationModel.isPrint = annotationSettings.isPrint;\n var setting = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotationModel.strokeColor, fillColor: annotationModel.fillColor, fontColor: annotationModel.fontColor,\n fontSize: annotationModel.fontSize, labelContent: annotationModel.labelContent, labelHeight: setting.labelHeight, labelWidth: setting.labelMaxWidth, opacity: annotationModel.opacity\n };\n return {\n // eslint-disable-next-line max-len\n id: annotationModel.id, shapeAnnotationType: this.getShapeAnnotType(annotationModel.shapeAnnotationType), author: annotationModel.author, allowedInteractions: this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotationModel), subject: annotationModel.subject, note: annotationModel.notes,\n strokeColor: annotationModel.strokeColor, annotName: annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(), author: annotationModel.author },\n fillColor: annotationModel.fillColor, opacity: annotationModel.opacity, thickness: annotationModel.thickness, pageNumber: annotationModel.pageIndex,\n // eslint-disable-next-line max-len\n borderStyle: annotationModel.borderStyle, borderDashArray: borderDashArray, bounds: bound, modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(),\n rotateAngle: 'RotateAngle' + annotationModel.rotateAngle, isCloudShape: annotationModel.isCloudShape, cloudIntensity: annotationModel.cloudIntensity,\n // eslint-disable-next-line max-len\n vertexPoints: annotationModel.vertexPoints, lineHeadStart: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.sourceDecoraterShapes),\n lineHeadEnd: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.taregetDecoraterShapes), rectangleDifference: [], isLocked: annotationSettings.isLock,\n // eslint-disable-next-line max-len\n labelContent: annotationModel.labelContent, enableShapeLabel: annotationModel.enableShapeLabel, labelFillColor: annotationModel.labelFillColor,\n fontColor: annotationModel.fontColor, labelBorderColor: annotationModel.labelBorderColor, fontSize: annotationModel.fontSize,\n // eslint-disable-next-line max-len\n labelBounds: labelBound, annotationSelectorSettings: this.getSelector(annotationModel.shapeAnnotationType, annotationModel.subject), labelSettings: labelSettings, annotationSettings: annotationSettings,\n customData: this.pdfViewer.annotation.getShapeData(annotationModel.shapeAnnotationType, annotationModel.subject), isPrint: annotationModel.isPrint, isCommentLock: annotationModel.isCommentLock, isAnnotationRotated: false\n };\n };\n ShapeAnnotation.prototype.getSelector = function (type, subject) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (type === 'Line' && subject !== 'Arrow' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.lineSettings.annotationSelectorSettings;\n }\n else if ((type === 'LineWidthArrowHead' || subject === 'Arrow') && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.arrowSettings.annotationSelectorSettings;\n }\n else if ((type === 'Rectangle' || type === 'Square') && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.rectangleSettings.annotationSelectorSettings;\n }\n else if ((type === 'Ellipse' || type === 'Circle') && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.circleSettings.annotationSelectorSettings;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.polygonSettings.annotationSelectorSettings;\n }\n return selector;\n };\n // eslint-disable-next-line\n ShapeAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line\n ShapeAnnotation.prototype.getRgbCode = function (colorString) {\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 = parseFloat(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.saveImportedShapeAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n var vertexPoints = null;\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('shape', annotation.Subject);\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n // eslint-disable-next-line max-len\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n id: 'shape', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n // eslint-disable-next-line max-len\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, annotName: annotation.AnnotName,\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: false\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n ShapeAnnotation.prototype.updateShapeAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n // eslint-disable-next-line max-len\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n var settings = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotation.StrokeColor, fillColor: annotation.FillColor, fontColor: annotation.FontColor,\n fontSize: annotation.FontSize, labelContent: annotation.LabelContent, labelHeight: settings.labelHeight, labelWidth: settings.labelWidth, opacity: annotation.Opacity\n };\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : labelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line max-len\n annotationObject = {\n id: 'shape', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n // eslint-disable-next-line max-len\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n // eslint-disable-next-line max-len\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, annotationId: annotation.AnnotName,\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, pageNumber: pageNumber, labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint\n };\n return annotationObject;\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes the annotation type\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @returns Object\n * @private\n */\n ShapeAnnotation.prototype.updateAddAnnotationDetails = function (annotationType, annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Initialize the annotation settings\n var annotationSelectorSettings = null;\n var allowedInteractions = null;\n var annotationSettings = null;\n var shapeAnnotationType = '';\n var isArrow = false;\n var vertexPoints = null;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (annotationType == 'Line') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.lineSettings.annotationSelectorSettings ? this.pdfViewer.lineSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.lineSettings);\n allowedInteractions = this.pdfViewer.lineSettings.allowedInteractions ? this.pdfViewer.lineSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Line';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 100, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Arrow') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.arrowSettings.annotationSelectorSettings ? this.pdfViewer.arrowSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.arrowSettings);\n allowedInteractions = this.pdfViewer.arrowSettings.allowedInteractions ? this.pdfViewer.arrowSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Line';\n isArrow = true;\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 100, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Rectangle') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.rectangleSettings.annotationSelectorSettings ? this.pdfViewer.rectangleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.rectangleSettings);\n allowedInteractions = this.pdfViewer.rectangleSettings.allowedInteractions ? this.pdfViewer.rectangleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Square';\n annotationObject.width = annotationObject.width ? annotationObject.width : 150;\n annotationObject.height = annotationObject.height ? annotationObject.height : 75;\n }\n else if (annotationType == 'Circle') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.circleSettings.annotationSelectorSettings ? this.pdfViewer.circleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.circleSettings);\n allowedInteractions = this.pdfViewer.circleSettings.allowedInteractions ? this.pdfViewer.circleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Circle';\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 90;\n }\n else if (annotationType == 'Polygon') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.polygonSettings.annotationSelectorSettings ? this.pdfViewer.polygonSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.polygonSettings);\n allowedInteractions = this.pdfViewer.polygonSettings.allowedInteractions ? this.pdfViewer.polygonSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n shapeAnnotationType = 'Polygon';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 42, y: offset.y - 29 }, { x: offset.x + 89, y: offset.y - 1 }, { x: offset.x + 78, y: offset.y + 42 }, { x: offset.x + 11, y: offset.y + 42 }, { x: offset.x, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n //Converting points model into vertex property\n if (vertexPoints)\n vertexPoints = this.pdfViewer.annotation.getVertexPointsXY(vertexPoints);\n //Creating Annotation objects with it's proper properties\n var shapeAnnotation = [];\n var shape = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'shape',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n BorderDashArray: annotationObject.borderDashArray ? annotationObject.borderDashArray : 0,\n BorderStyle: 'Solid',\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n CloudIntensity: 0,\n Comments: null,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n CreatedDate: currentDateString,\n EnableShapeLabel: false,\n ExistingCustomData: null,\n FillColor: annotationObject.fillColor ? annotationObject.fillColor : '#ffffff00',\n FontColor: null,\n FontSize: 0,\n IsCloudShape: false,\n IsCommentLock: false,\n IsLocked: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n LabelBorderColor: null,\n LabelBounds: { X: 0, Y: 0, Width: 0, Height: 0 },\n LabelContent: null,\n LabelFillColor: null,\n LabelSettings: null,\n LineHeadEnd: annotationObject.lineHeadStartStyle ? annotationObject.lineHeadStartStyle : isArrow ? 'ClosedArrow' : 'None',\n LineHeadStart: annotationObject.lineHeadEndStyle ? annotationObject.lineHeadEndStyle : isArrow ? 'ClosedArrow' : 'None',\n ModifiedDate: '',\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n RectangleDifference: null,\n RotateAngle: 'RotateAngle0',\n ShapeAnnotationType: shapeAnnotationType,\n State: '',\n StateModel: '',\n StrokeColor: annotationObject.strokeColor ? annotationObject.strokeColor : '#ff0000',\n Subject: annotationType.toString(),\n Thickness: annotationObject.thickness ? annotationObject.thickness : 1,\n VertexPoints: vertexPoints\n };\n //Adding the annotation object to an array and return it\n shapeAnnotation[0] = shape;\n return { shapeAnnotation: shapeAnnotation };\n };\n return ShapeAnnotation;\n}());\nexport { ShapeAnnotation };\n","import { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { Point } from '@syncfusion/ej2-drawings';\n/**\n * @hidden\n */\nvar MeasureAnnotation = /** @class */ (function () {\n function MeasureAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.measureShapeCount = 0;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n Object.defineProperty(MeasureAnnotation.prototype, \"pixelToPointFactor\", {\n /**\n * @private\n */\n get: function () {\n return (72 / 96);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAction\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAction\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.renderMeasureShapeAnnotations = function (shapeAnnotations, pageNumber, isImportAction, isAnnotOrderAction) {\n if (shapeAnnotations) {\n if (shapeAnnotations.length >= 1) {\n // eslint-disable-next-line\n var measureAnnots = this.pdfViewer.annotation.getStoredAnnotations(pageNumber, shapeAnnotations, '_annotations_shape_measure');\n if (!measureAnnots || isImportAction || isAnnotOrderAction) {\n for (var i = 0; i < shapeAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations[i];\n var annotationObject = null;\n this.measureShapeCount = this.measureShapeCount + 1;\n // eslint-disable-next-line max-len\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n var isAnnotationRotated = void 0;\n if (annotation.ShapeAnnotationType) {\n if (isImportAction) {\n if (this.pdfViewerBase.isJsonImported) {\n annotation.Bounds = this.pdfViewerBase.importJsonForRotatedDocuments(annotation.Rotate, pageNumber, annotation.Bounds, annotation.AnnotationRotation);\n isAnnotationRotated = this.pdfViewerBase.isPageRotated;\n }\n }\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n if (isImportAction && this.pdfViewerBase.isJsonImported) {\n vertexPoints = this.pdfViewerBase.calculateVertexPoints(annotation.Rotate, pageNumber, annotation.VertexPoints, annotation.AnnotationRotation);\n }\n else {\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var x = annotation.VertexPoints[j].X ? annotation.VertexPoints[j].X : annotation.VertexPoints[j].x;\n var y = annotation.VertexPoints[j].Y ? annotation.VertexPoints[j].Y : annotation.VertexPoints[j].y;\n var point = { x: x, y: y };\n vertexPoints.push(point);\n }\n }\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n // eslint-disable-next-line max-len\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isPrint = annotation.AnnotationSettings.isPrint;\n var measureObject = {\n // eslint-disable-next-line max-len\n ratio: annotation.Calibrate.Ratio, x: this.getNumberFormatArray(annotation.Calibrate.X), distance: this.getNumberFormatArray(annotation.Calibrate.Distance), area: this.getNumberFormatArray(annotation.Calibrate.Area), angle: this.getNumberFormatArray(annotation.Calibrate.Angle), volume: this.getNumberFormatArray(annotation.Calibrate.Volume),\n targetUnitConversion: annotation.Calibrate.TargetUnitConversion\n };\n if (annotation.Calibrate.Depth) {\n measureObject.depth = annotation.Calibrate.Depth;\n }\n var left = annotation.Bounds.X ? annotation.Bounds.X : annotation.Bounds.x;\n var top_1 = annotation.Bounds.Y ? annotation.Bounds.Y : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n annotationObject = {\n // eslint-disable-next-line max-len\n id: 'measure' + this.measureShapeCount, shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n // eslint-disable-next-line max-len\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked,\n // eslint-disable-next-line max-len\n bounds: { left: left, top: top_1, width: width, height: height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n caption: annotation.Caption, captionPosition: annotation.CaptionPosition, calibrate: measureObject, leaderLength: annotation.LeaderLength, leaderLineExtension: annotation.LeaderLineExtension,\n // eslint-disable-next-line max-len\n leaderLineOffset: annotation.LeaderLineOffset, indent: annotation.Indent, annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: isPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: isAnnotationRotated\n };\n var annot = void 0;\n // eslint-disable-next-line\n var vPoints = annotationObject.vertexPoints;\n if (vertexPoints == null) {\n vPoints = [];\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annot = {\n // eslint-disable-next-line max-len\n id: 'measure' + this.measureShapeCount, shapeAnnotationType: this.getShapeType(annotationObject), author: annotationObject.author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotationObject.modifiedDate,\n subject: annotationObject.subject, notes: annotationObject.note, fillColor: annotationObject.fillColor, strokeColor: annotationObject.strokeColor, opacity: annotationObject.opacity,\n // eslint-disable-next-line max-len\n thickness: annotationObject.thickness, borderStyle: annotationObject.borderStyle, borderDashArray: annotationObject.borderDashArray.toString(), rotateAngle: parseFloat(annotationObject.rotateAngle.split('Angle')[1]),\n isCloudShape: annotationObject.isCloudShape, cloudIntensity: annotationObject.cloudIntensity, taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadEnd), sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(annotationObject.lineHeadStart),\n // eslint-disable-next-line max-len\n vertexPoints: vPoints, bounds: { x: annotationObject.bounds.left, y: annotationObject.bounds.top, width: annotationObject.bounds.width, height: annotationObject.bounds.height }, leaderHeight: annotationObject.leaderLength,\n pageIndex: pageNumber, annotName: annotationObject.annotName, comments: annotationObject.comments, review: annotationObject.review,\n measureType: this.getMeasureType(annotationObject),\n // eslint-disable-next-line max-len\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n fontColor: annotation.FontColor, labelBorderColor: annotation.LabelBorderColor, fontSize: annotation.FontSize,\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: annotation.AnnotationSelectorSettings,\n annotationSettings: annotationObject.annotationSettings, annotationAddMode: annotation.annotationAddMode,\n isPrint: isPrint, isCommentLock: annotationObject.isCommentLock\n };\n this.pdfViewer.annotation.storeAnnotations(pageNumber, annotationObject, '_annotations_shape_measure');\n if (this.isAddAnnotationProgramatically) {\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, annotation.ShapeAnnotationType, annot.bounds, settings);\n }\n this.pdfViewer.add(annot);\n }\n }\n }\n }\n else if (shapeAnnotations.shapeAnnotationType) {\n var annotationObject = this.createAnnotationObject(shapeAnnotations);\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape_measure');\n this.pdfViewer.annotationModule.triggerAnnotationAdd(shapeAnnotations);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.Subject);\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n MeasureAnnotation.prototype.setAnnotationType = function (type) {\n var author = 'Guest';\n this.updateMeasureproperties();\n this.pdfViewerBase.disableTextSelectionMode();\n switch (type) {\n case 'Distance':\n this.currentAnnotationMode = 'Distance';\n var modifiedDateDist = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.distanceSettings.author ? this.pdfViewer.distanceSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.distanceStartHead),\n taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.distanceEndHead), measureType: 'Distance',\n fillColor: this.distanceFillColor, notes: '', strokeColor: this.distanceStrokeColor, leaderHeight: this.leaderLength,\n opacity: this.distanceOpacity, thickness: this.distanceThickness, borderDashArray: this.distanceDashArray.toString(),\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Distance', author: author, subject: 'Distance calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Distance';\n break;\n case 'Perimeter':\n this.currentAnnotationMode = 'Perimeter';\n var modifiedDatePeri = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.perimeterSettings.author ? this.pdfViewer.perimeterSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'LineWidthArrowHead', fillColor: this.perimeterFillColor, notes: '', strokeColor: this.perimeterStrokeColor, opacity: this.perimeterOpacity,\n thickness: this.perimeterThickness, sourceDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.perimeterStartHead),\n // eslint-disable-next-line max-len\n taregetDecoraterShapes: this.pdfViewer.annotation.getArrowType(this.perimeterEndHead), measureType: 'Perimeter', borderDashArray: this.perimeterDashArray.toString(),\n author: author, subject: 'Perimeter calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Perimeter';\n break;\n case 'Area':\n this.currentAnnotationMode = 'Area';\n var modifiedDateArea = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.areaSettings.author ? this.pdfViewer.areaSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Polygon', fillColor: this.areaFillColor, notes: '', strokeColor: this.areaStrokeColor,\n thickness: this.areaThickness, opacity: this.areaOpacity, measureType: 'Area',\n modifiedDate: modifiedDateArea, borderStyle: '', borderDashArray: '0',\n author: author, subject: 'Area calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Polygon';\n break;\n case 'Radius':\n this.currentAnnotationMode = 'Radius';\n var modifiedDateRad = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.radiusSettings.author ? this.pdfViewer.radiusSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Radius', fillColor: this.radiusFillColor, notes: '', strokeColor: this.radiusStrokeColor, opacity: this.radiusOpacity,\n thickness: this.radiusThickness, measureType: 'Radius', modifiedDate: modifiedDateRad, borderStyle: '', borderDashArray: '0',\n author: author, subject: 'Radius calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'DrawTool';\n break;\n case 'Volume':\n this.currentAnnotationMode = 'Volume';\n var modifiedDateVol = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.volumeSettings.author ? this.pdfViewer.volumeSettings.author : 'Guest';\n this.pdfViewer.drawingObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Polygon', notes: '', fillColor: this.volumeFillColor, strokeColor: this.volumeStrokeColor,\n opacity: this.volumeOpacity, thickness: this.volumeThickness, measureType: 'Volume',\n modifiedDate: modifiedDateVol, borderStyle: '', borderDashArray: '0',\n author: author, subject: 'Volume calculation', isCommentLock: false\n };\n this.pdfViewer.tool = 'Polygon';\n break;\n }\n };\n MeasureAnnotation.prototype.updateMeasureproperties = function () {\n this.distanceFillColor = this.pdfViewer.distanceSettings.fillColor ? this.pdfViewer.distanceSettings.fillColor : '#ff0000';\n this.distanceStrokeColor = this.pdfViewer.distanceSettings.strokeColor ? this.pdfViewer.distanceSettings.strokeColor : '#ff0000';\n this.distanceOpacity = this.pdfViewer.distanceSettings.opacity ? this.pdfViewer.distanceSettings.opacity : 1;\n this.distanceThickness = this.pdfViewer.distanceSettings.thickness ? this.pdfViewer.distanceSettings.thickness : 1;\n this.distanceDashArray = this.pdfViewer.distanceSettings.borderDashArray ? this.pdfViewer.distanceSettings.borderDashArray : 0;\n this.leaderLength = this.pdfViewer.distanceSettings.leaderLength != null ? this.pdfViewer.distanceSettings.leaderLength : 40;\n // eslint-disable-next-line max-len\n this.distanceStartHead = this.pdfViewer.distanceSettings.lineHeadStartStyle ? this.pdfViewer.distanceSettings.lineHeadStartStyle : 'Closed';\n this.distanceEndHead = this.pdfViewer.distanceSettings.lineHeadEndStyle ? this.pdfViewer.distanceSettings.lineHeadEndStyle : 'Closed';\n this.perimeterFillColor = this.pdfViewer.perimeterSettings.fillColor ? this.pdfViewer.perimeterSettings.fillColor : '#ffffff00';\n this.perimeterStrokeColor = this.pdfViewer.perimeterSettings.strokeColor ? this.pdfViewer.perimeterSettings.strokeColor : '#ff0000';\n this.perimeterOpacity = this.pdfViewer.perimeterSettings.opacity ? this.pdfViewer.perimeterSettings.opacity : 1;\n this.perimeterThickness = this.pdfViewer.perimeterSettings.thickness ? this.pdfViewer.perimeterSettings.thickness : 1;\n this.perimeterDashArray = this.pdfViewer.perimeterSettings.borderDashArray ? this.pdfViewer.perimeterSettings.borderDashArray : 0;\n // eslint-disable-next-line max-len\n this.perimeterStartHead = this.pdfViewer.perimeterSettings.lineHeadStartStyle ? this.pdfViewer.perimeterSettings.lineHeadStartStyle : 'Open';\n this.perimeterEndHead = this.pdfViewer.perimeterSettings.lineHeadEndStyle ? this.pdfViewer.perimeterSettings.lineHeadEndStyle : 'Open';\n this.areaFillColor = this.pdfViewer.areaSettings.fillColor ? this.pdfViewer.areaSettings.fillColor : '#ffffff00';\n this.areaStrokeColor = this.pdfViewer.areaSettings.strokeColor ? this.pdfViewer.areaSettings.strokeColor : '#ff0000';\n this.areaOpacity = this.pdfViewer.areaSettings.opacity ? this.pdfViewer.areaSettings.opacity : 1;\n this.areaThickness = this.pdfViewer.areaSettings.thickness ? this.pdfViewer.areaSettings.thickness : 1;\n this.radiusFillColor = this.pdfViewer.radiusSettings.fillColor ? this.pdfViewer.radiusSettings.fillColor : '#ffffff00';\n this.radiusStrokeColor = this.pdfViewer.radiusSettings.strokeColor ? this.pdfViewer.radiusSettings.strokeColor : '#ff0000';\n this.radiusOpacity = this.pdfViewer.radiusSettings.opacity ? this.pdfViewer.radiusSettings.opacity : 1;\n this.radiusThickness = this.pdfViewer.radiusSettings.thickness ? this.pdfViewer.radiusSettings.thickness : 1;\n this.volumeFillColor = this.pdfViewer.volumeSettings.fillColor ? this.pdfViewer.volumeSettings.fillColor : '#ffffff00';\n this.volumeStrokeColor = this.pdfViewer.volumeSettings.strokeColor ? this.pdfViewer.volumeSettings.strokeColor : '#ff0000';\n this.volumeOpacity = this.pdfViewer.volumeSettings.opacity ? this.pdfViewer.volumeSettings.opacity : 1;\n this.volumeThickness = this.pdfViewer.volumeSettings.thickness ? this.pdfViewer.volumeSettings.thickness : 1;\n this.unit = this.pdfViewer.measurementSettings.conversionUnit.toLowerCase();\n this.displayUnit = this.pdfViewer.measurementSettings.displayUnit.toLowerCase();\n this.ratio = this.pdfViewer.measurementSettings.scaleRatio;\n this.volumeDepth = this.pdfViewer.measurementSettings.depth;\n this.scaleRatioString = '1 ' + this.unit + ' = ' + this.ratio.toString() + ' ' + this.displayUnit;\n };\n MeasureAnnotation.prototype.createAnnotationObject = function (annotationModel) {\n var bound;\n var labelBound;\n var annotationName = this.pdfViewer.annotation.createGUID();\n // eslint-disable-next-line max-len\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('shape_measure', (annotationModel.pageIndex + 1), annotationModel.measureType);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annotationModel.annotName = annotationName;\n annotationModel.author = this.pdfViewer.annotationModule.updateAnnotationAuthor('measure', annotationModel.subject);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(annotationName, annotationModel.notes);\n if (annotationModel.wrapper.bounds) {\n bound = {\n // eslint-disable-next-line max-len\n left: annotationModel.wrapper.bounds.x, top: annotationModel.wrapper.bounds.y, height: annotationModel.wrapper.bounds.height, width: annotationModel.wrapper.bounds.width,\n right: annotationModel.wrapper.bounds.right, bottom: annotationModel.wrapper.bounds.bottom\n };\n labelBound = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(annotationModel.wrapper.bounds);\n }\n else {\n bound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n labelBound = { left: 0, top: 0, height: 0, width: 0, right: 0, bottom: 0 };\n }\n // eslint-disable-next-line radix\n var borderDashArray = parseInt(annotationModel.borderDashArray);\n borderDashArray = isNaN(borderDashArray) ? 0 : borderDashArray;\n // eslint-disable-next-line max-len\n var measure = { ratio: this.scaleRatioString, x: [this.createNumberFormat('x')], distance: [this.createNumberFormat('d')], area: [this.createNumberFormat('a')] };\n if (annotationModel.measureType === 'Volume') {\n measure.depth = this.volumeDepth;\n }\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(annotationModel, true);\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotationModel);\n annotationModel.isPrint = annotationSettings.isPrint;\n var setting = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotationModel.strokeColor, fillColor: annotationModel.fillColor, fontColor: annotationModel.fontColor,\n fontSize: annotationModel.fontSize, labelContent: annotationModel.labelContent, labelHeight: setting.labelHeight, labelWidth: setting.labelMaxWidth, opacity: annotationModel.opacity\n };\n return {\n // eslint-disable-next-line max-len\n id: annotationModel.id, shapeAnnotationType: this.getShapeAnnotType(annotationModel.measureType), author: annotationModel.author, allowedInteractions: allowedInteractions,\n subject: annotationModel.subject, note: annotationModel.notes, strokeColor: annotationModel.strokeColor,\n fillColor: annotationModel.fillColor, opacity: annotationModel.opacity, thickness: annotationModel.thickness,\n // eslint-disable-next-line max-len\n borderStyle: annotationModel.borderStyle, borderDashArray: borderDashArray, bounds: bound,\n // eslint-disable-next-line max-len\n modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(),\n rotateAngle: 'RotateAngle' + annotationModel.rotateAngle, isCloudShape: annotationModel.isCloudShape, cloudIntensity: annotationModel.cloudIntensity,\n // eslint-disable-next-line max-len\n vertexPoints: annotationModel.vertexPoints, lineHeadStart: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.sourceDecoraterShapes),\n lineHeadEnd: this.pdfViewer.annotation.getArrowTypeForCollection(annotationModel.taregetDecoraterShapes), rectangleDifference: [], isLocked: annotationSettings.isLock,\n // eslint-disable-next-line max-len\n leaderLength: annotationModel.leaderHeight, leaderLineExtension: 2, leaderLineOffset: 0, calibrate: measure, caption: true, captionPosition: 'Top',\n indent: this.getIndent(annotationModel.measureType), annotName: annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime(), author: annotationModel.author },\n // eslint-disable-next-line max-len\n labelContent: annotationModel.labelContent, enableShapeLabel: annotationModel.enableShapeLabel, labelFillColor: annotationModel.labelFillColor,\n labelBorderColor: annotationModel.labelBorderColor, fontColor: annotationModel.fontColor, fontSize: annotationModel.fontSize,\n // eslint-disable-next-line max-len\n labelBounds: labelBound, annotationSelectorSettings: this.getSelector(annotationModel.subject), labelSettings: labelSettings, annotationSettings: annotationSettings,\n customData: this.pdfViewer.annotation.getMeasureData(annotationModel.subject), isPrint: annotationModel.isPrint, isCommentLock: annotationModel.isCommentLock, isAnnotationRotated: false\n };\n };\n MeasureAnnotation.prototype.getSelector = function (type) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if ((type === 'Distance calculation') && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.distanceSettings.annotationSelectorSettings;\n }\n else if ((type === 'Perimeter calculation') && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.perimeterSettings.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n }\n else if ((type === 'Area calculation') && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.areaSettings.annotationSelectorSettings;\n }\n else if ((type === 'Radius calculation') && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.radiusSettings.annotationSelectorSettings;\n }\n else if ((type === 'Volume calculation') && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.volumeSettings.annotationSelectorSettings;\n }\n return selector;\n };\n MeasureAnnotation.prototype.getShapeAnnotType = function (measureType) {\n var annotationType;\n switch (measureType) {\n case 'Distance':\n annotationType = 'Line';\n break;\n case 'Perimeter':\n annotationType = 'Polyline';\n break;\n case 'Area':\n case 'Volume':\n annotationType = 'Polygon';\n break;\n case 'Radius':\n annotationType = 'Circle';\n break;\n }\n return annotationType;\n };\n MeasureAnnotation.prototype.getShapeType = function (shape) {\n var shapeType;\n if (shape.shapeAnnotationType === 'Line') {\n shapeType = 'Distance';\n }\n else if (shape.shapeAnnotationType === 'Polyline') {\n shapeType = 'LineWidthArrowHead';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonDimension') {\n shapeType = 'Polygon';\n // eslint-disable-next-line max-len\n }\n else if ((shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonRadius') || shape.shapeAnnotationType === 'Circle') {\n shapeType = 'Radius';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonVolume') {\n shapeType = 'Polygon';\n }\n return shapeType;\n };\n MeasureAnnotation.prototype.getMeasureType = function (shape) {\n var measureType;\n if (shape.shapeAnnotationType === 'Line') {\n measureType = 'Distance';\n }\n else if (shape.shapeAnnotationType === 'Polyline') {\n measureType = 'Perimeter';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonDimension') {\n measureType = 'Area';\n // eslint-disable-next-line max-len\n }\n else if ((shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonRadius') || shape.shapeAnnotationType === 'Circle') {\n measureType = 'Radius';\n }\n else if (shape.shapeAnnotationType === 'Polygon' && shape.indent === 'PolygonVolume') {\n measureType = 'Volume';\n }\n return measureType;\n };\n MeasureAnnotation.prototype.getIndent = function (measureType) {\n var indent;\n switch (measureType) {\n case 'Distance':\n indent = 'LineDimension';\n break;\n case 'Perimeter':\n indent = 'PolyLineDimension';\n break;\n case 'Area':\n indent = 'PolygonDimension';\n break;\n case 'Radius':\n indent = 'PolygonRadius';\n break;\n case 'Volume':\n indent = 'PolygonVolume';\n break;\n }\n return indent;\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getNumberFormatArray = function (list) {\n // eslint-disable-next-line\n var numberFormatArray = new Array();\n if (list) {\n for (var i = 0; i < list.length; i++) {\n // eslint-disable-next-line max-len\n numberFormatArray[i] = { unit: list[i].Unit, fractionalType: list[i].FractionalType, conversionFactor: list[i].ConversionFactor, denominator: list[i].Denominator, formatDenominator: list[i].FormatDenominator };\n }\n }\n return numberFormatArray;\n };\n MeasureAnnotation.prototype.createNumberFormat = function (type) {\n var cFactor = 1;\n var unit = this.displayUnit;\n if (type === 'x') {\n cFactor = this.getFactor(this.unit);\n }\n if (type === 'a') {\n unit = 'sq ' + this.displayUnit;\n }\n // eslint-disable-next-line max-len\n var numberFormat = { unit: unit, fractionalType: 'D', conversionFactor: cFactor, denominator: 100, formatDenominator: false };\n return numberFormat;\n };\n /**\n * @private\n */\n MeasureAnnotation.prototype.saveMeasureShapeAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n if (this.pdfViewerBase.isJsonExported) {\n if (pageAnnotationObject.annotations[z].isAnnotationRotated) {\n pageAnnotationObject.annotations[z].bounds = this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex);\n pageAnnotationObject.annotations[z].vertexPoints = this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex);\n }\n else {\n var pageDetails = this.pdfViewerBase.pageSize[pageAnnotationObject.pageIndex];\n if (pageDetails) {\n pageAnnotationObject.annotations[z].annotationRotation = pageDetails.rotation;\n }\n }\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n var fillColorString = pageAnnotationObject.annotations[z].fillColor;\n pageAnnotationObject.annotations[z].fillColor = JSON.stringify(this.getRgbCode(fillColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].vertexPoints = JSON.stringify(this.pdfViewer.annotation.getVertexPoints(pageAnnotationObject.annotations[z].vertexPoints, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[z].rectangleDifference !== null) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].rectangleDifference = JSON.stringify(pageAnnotationObject.annotations[z].rectangleDifference);\n }\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].calibrate = this.getStringifiedMeasure(pageAnnotationObject.annotations[z].calibrate);\n if (pageAnnotationObject.annotations[z].enableShapeLabel === true) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].labelBounds = JSON.stringify(this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(JSON.parse(pageAnnotationObject.annotations[z].bounds), pageAnnotationObject.pageIndex));\n var labelFillColorString = pageAnnotationObject.annotations[z].labelFillColor;\n pageAnnotationObject.annotations[z].labelFillColor = JSON.stringify(this.getRgbCode(labelFillColorString));\n var labelBorderColorString = pageAnnotationObject.annotations[z].labelBorderColor;\n pageAnnotationObject.annotations[z].labelBorderColor = JSON.stringify(this.getRgbCode(labelBorderColorString));\n pageAnnotationObject.annotations[z].labelSettings.fillColor = labelFillColorString;\n var fontColorString = pageAnnotationObject.annotations[z].labelSettings.fontColor;\n pageAnnotationObject.annotations[z].fontColor = JSON.stringify(this.getRgbCode(fontColorString));\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n /**\n * @private\n */\n MeasureAnnotation.prototype.createScaleRatioWindow = function () {\n var _this = this;\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_scale_ratio_window', className: 'e-pv-scale-ratio-window' });\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n var contentElement = this.createRatioUI();\n this.scaleRatioDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('Scale Ratio'),\n target: this.pdfViewer.element, content: contentElement, close: function () {\n _this.sourceTextBox.destroy();\n _this.convertUnit.destroy();\n _this.destTextBox.destroy();\n _this.dispUnit.destroy();\n _this.scaleRatioDialog.destroy();\n var dialogElement = _this.pdfViewerBase.getElement('_scale_ratio_window');\n dialogElement.parentElement.removeChild(dialogElement);\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.scaleRatioDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) }\n ];\n }\n else {\n this.scaleRatioDialog.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.scaleRatioDialog.enableRtl = true;\n }\n this.scaleRatioDialog.appendTo(dialogDiv);\n this.convertUnit.content = this.createContent(this.pdfViewer.localeObj.getConstant(this.unit)).outerHTML;\n this.dispUnit.content = this.createContent(this.pdfViewer.localeObj.getConstant(this.displayUnit)).outerHTML;\n this.depthUnit.content = this.createContent(this.pdfViewer.localeObj.getConstant(this.displayUnit)).outerHTML;\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenScaleRatioDialog');\n }\n };\n MeasureAnnotation.prototype.createRatioUI = function () {\n var element = createElement('div');\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var items = [{ text: this.pdfViewer.localeObj.getConstant('pt'), label: 'pt' }, { text: this.pdfViewer.localeObj.getConstant('in'), label: 'in' }, { text: this.pdfViewer.localeObj.getConstant('mm'), label: 'mm' }, { text: this.pdfViewer.localeObj.getConstant('cm'), label: 'cm' }, { text: this.pdfViewer.localeObj.getConstant('p'), label: 'p' }, { text: this.pdfViewer.localeObj.getConstant('ft'), label: 'ft' }, { text: this.pdfViewer.localeObj.getConstant('ft_in'), label: 'ft_in' }, { text: this.pdfViewer.localeObj.getConstant('m'), label: 'm' }];\n var labelText = createElement('div', { id: elementID + '_scale_ratio_label', className: 'e-pv-scale-ratio-text' });\n labelText.textContent = this.pdfViewer.localeObj.getConstant('Scale Ratio');\n element.appendChild(labelText);\n var sourceContainer = createElement('div', { id: elementID + '_scale_src_container' });\n element.appendChild(sourceContainer);\n // eslint-disable-next-line max-len\n var srcInputElement = this.createInputElement('input', 'e-pv-scale-ratio-src-input', elementID + '_src_input', sourceContainer);\n this.sourceTextBox = new NumericTextBox({ value: 1, format: '##', cssClass: 'e-pv-scale-ratio-src-input', min: 1, max: 100 }, srcInputElement);\n // eslint-disable-next-line max-len\n var srcUnitElement = this.createInputElement('button', 'e-pv-scale-ratio-src-unit', elementID + '_src_unit', sourceContainer);\n this.convertUnit = new DropDownButton({ items: items, cssClass: 'e-pv-scale-ratio-src-unit' }, srcUnitElement);\n this.convertUnit.select = this.convertUnitSelect.bind(this);\n var destinationContainer = createElement('div', { id: elementID + '_scale_dest_container' });\n // eslint-disable-next-line max-len\n var destInputElement = this.createInputElement('input', 'e-pv-scale-ratio-dest-input', elementID + '_dest_input', destinationContainer);\n this.destTextBox = new NumericTextBox({ value: 1, format: '##', cssClass: 'e-pv-scale-ratio-dest-input', min: 1, max: 100 }, destInputElement);\n // eslint-disable-next-line max-len\n var destUnitElement = this.createInputElement('button', 'e-pv-scale-ratio-dest-unit', elementID + '_dest_unit', destinationContainer);\n this.dispUnit = new DropDownButton({ items: items, cssClass: 'e-pv-scale-ratio-dest-unit' }, destUnitElement);\n this.dispUnit.select = this.dispUnitSelect.bind(this);\n element.appendChild(destinationContainer);\n var depthLabelText = createElement('div', { id: elementID + '_depth_label', className: 'e-pv-depth-text' });\n depthLabelText.textContent = this.pdfViewer.localeObj.getConstant('Depth');\n element.appendChild(depthLabelText);\n var depthContainer = createElement('div', { id: elementID + '_depth_container' });\n element.appendChild(depthContainer);\n // eslint-disable-next-line max-len\n var depthInputElement = this.createInputElement('input', 'e-pv-depth-input', elementID + '_depth_input', depthContainer);\n this.depthTextBox = new NumericTextBox({ value: this.volumeDepth, format: '##', cssClass: 'e-pv-depth-input', min: 1 }, depthInputElement);\n // eslint-disable-next-line max-len\n var depthUnitElement = this.createInputElement('button', 'e-pv-depth-unit', elementID + '_depth_unit', depthContainer);\n this.depthUnit = new DropDownButton({ items: items, cssClass: 'e-pv-depth-unit' }, depthUnitElement);\n this.depthUnit.select = this.depthUnitSelect.bind(this);\n return element;\n };\n MeasureAnnotation.prototype.convertUnitSelect = function (args) {\n this.convertUnit.content = this.createContent(args.item.text).outerHTML;\n };\n MeasureAnnotation.prototype.dispUnitSelect = function (args) {\n this.dispUnit.content = this.createContent(args.item.text).outerHTML;\n this.depthUnit.content = this.createContent(args.item.text).outerHTML;\n };\n MeasureAnnotation.prototype.depthUnitSelect = function (args) {\n this.depthUnit.content = this.createContent(args.item.text).outerHTML;\n };\n MeasureAnnotation.prototype.createContent = function (text) {\n var divElement = createElement('div', { className: 'e-pv-scale-unit-content' });\n divElement.textContent = text;\n return divElement;\n };\n MeasureAnnotation.prototype.createInputElement = function (input, className, idString, parentElement) {\n var container = createElement('div', { id: idString + '_container', className: className + '-container' });\n var textBoxInput = createElement(input, { id: idString });\n if (input === 'input') {\n textBoxInput.type = 'text';\n }\n container.appendChild(textBoxInput);\n parentElement.appendChild(container);\n return textBoxInput;\n };\n /**\n * @private\n */\n MeasureAnnotation.prototype.onOkClicked = function () {\n if (isBlazor()) {\n // eslint-disable-next-line\n var unitElement = document.querySelector('#' + this.pdfViewer.element.id + '_src_unit');\n // eslint-disable-next-line\n var displayElement = document.querySelector('#' + this.pdfViewer.element.id + '_dest_unit');\n // eslint-disable-next-line\n var sourceTextBox = document.querySelector('#' + this.pdfViewer.element.id + '_ratio_input');\n // eslint-disable-next-line\n var destTextBox = document.querySelector('#' + this.pdfViewer.element.id + '_dest_input');\n // eslint-disable-next-line\n var depthTextBox = document.querySelector('#' + this.pdfViewer.element.id + '_depth_input');\n if (unitElement && displayElement && sourceTextBox && destTextBox && depthTextBox) {\n this.unit = unitElement.value;\n this.displayUnit = displayElement.value;\n // eslint-disable-next-line\n this.ratio = parseInt(destTextBox.value) / parseInt(sourceTextBox.value);\n // eslint-disable-next-line\n this.volumeDepth = parseInt(depthTextBox.value);\n }\n // eslint-disable-next-line\n this.scaleRatioString = parseInt(sourceTextBox.value) + ' ' + this.unit + ' = ' + parseInt(destTextBox.value) + ' ' + this.displayUnit;\n this.updateMeasureValues(this.scaleRatioString, this.displayUnit, this.unit, this.volumeDepth);\n }\n else {\n this.unit = this.getContent(this.convertUnit.content);\n this.displayUnit = this.getContent(this.dispUnit.content);\n this.ratio = this.destTextBox.value / this.sourceTextBox.value;\n this.volumeDepth = this.depthTextBox.value;\n this.scaleRatioString = this.sourceTextBox.value + ' ' + this.unit + ' = ' + this.destTextBox.value + ' ' + this.displayUnit;\n this.scaleRatioDialog.hide();\n var originalUnit = void 0;\n var originalDisplayUnit = void 0;\n originalUnit = this.restoreUnit(this.convertUnit);\n originalDisplayUnit = this.restoreUnit(this.dispUnit);\n this.updateMeasureValues(this.scaleRatioString, originalDisplayUnit, originalUnit, this.volumeDepth);\n }\n };\n MeasureAnnotation.prototype.restoreUnit = function (dropdownObject) {\n var calibUnit;\n for (var i = 0; i < dropdownObject.items.length; i++) {\n var convertUnitItem = dropdownObject.items[i];\n if (this.unit === convertUnitItem.text) {\n calibUnit = convertUnitItem.label;\n }\n }\n return calibUnit;\n };\n /**\n * @param ratio\n * @param displayUnit\n * @param conversionUnit\n * @param depth\n * @private\n */\n MeasureAnnotation.prototype.updateMeasureValues = function (ratio, displayUnit, conversionUnit, depth) {\n this.scaleRatioString = ratio;\n this.displayUnit = displayUnit;\n this.unit = conversionUnit;\n this.volumeDepth = depth;\n for (var i = 0; i < this.pdfViewerBase.pageCount; i++) {\n var pageAnnotations = this.getAnnotations(i, null);\n if (pageAnnotations) {\n for (var j = 0; j < pageAnnotations.length; j++) {\n pageAnnotations = this.getAnnotations(i, null);\n var measureObject = pageAnnotations[j];\n if (!measureObject.annotationSettings.isLock) {\n measureObject.calibrate.ratio = ratio;\n measureObject.calibrate.x[0].unit = displayUnit;\n measureObject.calibrate.distance[0].unit = displayUnit;\n measureObject.calibrate.area[0].unit = displayUnit;\n measureObject.calibrate.x[0].conversionFactor = this.getFactor(conversionUnit);\n if (measureObject.indent === 'PolygonVolume') {\n measureObject.calibrate.depth = depth;\n }\n pageAnnotations[j] = measureObject;\n this.manageAnnotations(pageAnnotations, i);\n this.pdfViewer.annotation.updateCalibrateValues(this.getAnnotationBaseModel(measureObject.id));\n }\n }\n }\n this.pdfViewer.annotation.renderAnnotations(i, null, null, null, null, false);\n }\n };\n MeasureAnnotation.prototype.getAnnotationBaseModel = function (id) {\n var annotationBase = null;\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n if (id === this.pdfViewer.annotations[i].id) {\n annotationBase = this.pdfViewer.annotations[i];\n break;\n }\n }\n return annotationBase;\n };\n MeasureAnnotation.prototype.getContent = function (unit) {\n return unit.split('')[0].split('\">')[1];\n };\n /**\n * @param value\n * @param currentAnnot\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.setConversion = function (value, currentAnnot) {\n // eslint-disable-next-line\n var values;\n if (currentAnnot) {\n var pageIndex = currentAnnot.pageIndex;\n if (currentAnnot.id === 'diagram_helper') {\n pageIndex = currentAnnot.pageIndex ? currentAnnot.pageIndex : this.pdfViewerBase.activeElements.activePageID;\n currentAnnot = this.getCurrentObject(pageIndex, null, currentAnnot.annotName);\n }\n if (currentAnnot) {\n values = this.getCurrentValues(currentAnnot.id, pageIndex);\n }\n else {\n values = this.getCurrentValues();\n }\n }\n else {\n values = this.getCurrentValues();\n }\n var scaledValue = value * values.ratio;\n return this.convertPointToUnits(values.factor, scaledValue, values.unit);\n };\n MeasureAnnotation.prototype.onCancelClicked = function () {\n this.scaleRatioDialog.hide();\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewlyAdded\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase, isNewlyAdded) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n if (!isNewlyAdded) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\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[i].id) {\n if (property === 'bounds') {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, true);\n if (pageAnnotations[i].shapeAnnotationType === 'Line' || pageAnnotations[i].shapeAnnotationType === 'Polyline') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else if (pageAnnotations[i].shapeAnnotationType === 'Polygon') {\n pageAnnotations[i].vertexPoints = annotationBase.vertexPoints;\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n if (pageAnnotations[i].enableShapeLabel === true && annotationBase.wrapper) {\n // eslint-disable-next-line max-len\n pageAnnotations[i].labelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBounds(annotationBase.wrapper.bounds);\n }\n }\n else if (property === 'fill') {\n pageAnnotations[i].fillColor = annotationBase.wrapper.children[0].style.fill;\n if (this.pdfViewer.enableShapeLabel) {\n pageAnnotations[i].labelFillColor = annotationBase.wrapper.children[0].style.fill;\n }\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'dashArray') {\n pageAnnotations[i].borderDashArray = annotationBase.wrapper.children[0].style.strokeDashArray;\n pageAnnotations[i].borderStyle = annotationBase.borderStyle;\n }\n else if (property === 'startArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadStart = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.sourceDecoraterShapes);\n }\n else if (property === 'endArrow') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].lineHeadEnd = this.pdfViewer.annotation.getArrowTypeForCollection(annotationBase.taregetDecoraterShapes);\n }\n else if (property === 'leaderLength') {\n pageAnnotations[i].leaderLength = annotationBase.leaderHeight;\n }\n else if (property === 'notes') {\n pageAnnotations[i].note = annotationBase.notes;\n if (pageAnnotations[i].enableShapeLabel === true) {\n pageAnnotations[i].labelContent = annotationBase.notes;\n }\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n else if (property === 'labelContent') {\n pageAnnotations[i].note = annotationBase.labelContent;\n pageAnnotations[i].labelContent = annotationBase.labelContent;\n break;\n }\n else if (property === 'fontColor') {\n pageAnnotations[i].fontColor = annotationBase.fontColor;\n }\n else if (property === 'fontSize') {\n pageAnnotations[i].fontSize = annotationBase.fontSize;\n }\n // eslint-disable-next-line max-len\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n MeasureAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n };\n MeasureAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_shape_measure', annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n MeasureAnnotation.prototype.getCurrentObject = function (pageNumber, id, annotName) {\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (id) {\n if (id === pageAnnotations[i].id) {\n currentAnnotObject = pageAnnotations[i];\n break;\n }\n }\n else if (annotName) {\n if (annotName === pageAnnotations[i].annotName) {\n currentAnnotObject = pageAnnotations[i];\n break;\n }\n }\n }\n }\n return currentAnnotObject;\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getCurrentValues = function (id, pageNumber) {\n var ratio;\n var unit;\n var factor;\n var depth;\n if (id && !isNaN(pageNumber)) {\n var currentAnnotObject = this.getCurrentObject(pageNumber, id);\n if (currentAnnotObject) {\n ratio = this.getCurrentRatio(currentAnnotObject.calibrate.ratio);\n unit = currentAnnotObject.calibrate.x[0].unit;\n factor = currentAnnotObject.calibrate.x[0].conversionFactor;\n depth = currentAnnotObject.calibrate.depth;\n }\n else {\n ratio = this.ratio;\n unit = this.displayUnit;\n factor = this.getFactor(this.unit);\n depth = this.volumeDepth;\n }\n }\n else {\n ratio = this.ratio;\n unit = this.displayUnit;\n factor = this.getFactor(this.unit);\n depth = this.volumeDepth;\n }\n return { ratio: ratio, unit: unit, factor: factor, depth: depth };\n };\n MeasureAnnotation.prototype.getCurrentRatio = function (ratioString) {\n var stringArray = ratioString.split(' ');\n if (stringArray[3] === '=') {\n return parseFloat(stringArray[4]) / parseFloat(stringArray[0]);\n }\n else {\n return parseFloat(stringArray[3]) / parseFloat(stringArray[0]);\n }\n };\n /**\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @private\n */\n MeasureAnnotation.prototype.calculateArea = function (points, id, pageNumber) {\n // eslint-disable-next-line\n var values = this.getCurrentValues(id, pageNumber);\n var area = this.getArea(points, values.factor, values.unit) * values.ratio;\n if (values.unit === 'ft_in') {\n // eslint-disable-next-line\n var calculateValue = Math.round(area * 100) / 100;\n if (calculateValue >= 12) {\n calculateValue = (Math.round(calculateValue / 12 * 100) / 100).toString();\n calculateValue = calculateValue.split('.');\n if (calculateValue[1]) {\n // eslint-disable-next-line\n var inchValue = 0;\n if (calculateValue[1].charAt(1)) {\n // eslint-disable-next-line\n inchValue = parseInt(calculateValue[1].charAt(0)) + '.' + parseInt(calculateValue[1].charAt(1));\n inchValue = Math.round(inchValue);\n }\n else {\n inchValue = calculateValue[1];\n }\n if (!inchValue) {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('ft') + ' ' + inchValue + ' ' + this.pdfViewer.localeObj.getConstant('in'));\n }\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n }\n else {\n return (Math.round(area * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n if (values.unit === 'm') {\n return ((area * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n }\n return (Math.round(area * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n };\n MeasureAnnotation.prototype.getArea = function (points, factor, unit) {\n var area = 0;\n var j = points.length - 1;\n for (var i = 0; i < points.length; i++) {\n // eslint-disable-next-line max-len\n area += (points[j].x * this.pixelToPointFactor * factor + points[i].x * this.pixelToPointFactor * factor) * (points[j].y * this.pixelToPointFactor * factor - points[i].y * this.pixelToPointFactor * factor);\n j = i;\n }\n if (unit === 'ft_in') {\n return (Math.abs((area) * 2.0));\n }\n else {\n return (Math.abs((area) / 2.0));\n }\n };\n /**\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @param points\n * @param id\n * @param pageNumber\n * @private\n */\n MeasureAnnotation.prototype.calculateVolume = function (points, id, pageNumber) {\n // eslint-disable-next-line\n var values = this.getCurrentValues(id, pageNumber);\n var depth = values.depth ? values.depth : this.volumeDepth;\n var area = this.getArea(points, values.factor, values.unit);\n var volume = area * ((depth * this.convertUnitToPoint(values.unit)) * values.factor) * values.ratio;\n if (values.unit === 'ft_in') {\n // eslint-disable-next-line\n var calculateValue = Math.round(volume * 100) / 100;\n if (calculateValue >= 12) {\n calculateValue = (Math.round(calculateValue / 12 * 100) / 100).toString();\n calculateValue = calculateValue.split('.');\n if (calculateValue[1]) {\n // eslint-disable-next-line\n var inchValue = 0;\n if (calculateValue[1].charAt(1)) {\n // eslint-disable-next-line\n inchValue = parseInt(calculateValue[1].charAt(0)) + '.' + parseInt(calculateValue[1].charAt(1));\n inchValue = Math.round(inchValue);\n }\n else {\n inchValue = calculateValue[1];\n }\n if (!inchValue) {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('ft') + ' ' + inchValue + ' ' + this.pdfViewer.localeObj.getConstant('in'));\n }\n }\n else {\n return (calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('ft'));\n }\n }\n else {\n return (Math.round(volume * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n return (Math.round(volume * 100) / 100) + ' ' + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n MeasureAnnotation.prototype.calculatePerimeter = function (pdfAnnotationBase) {\n var perimeter = Point.getLengthFromListOfPoints(pdfAnnotationBase.vertexPoints);\n return this.setConversion(perimeter * this.pixelToPointFactor, pdfAnnotationBase);\n };\n MeasureAnnotation.prototype.getFactor = function (unit) {\n var factor;\n switch (unit) {\n case 'in':\n factor = (1 / 72);\n break;\n case 'cm':\n factor = (1 / 28.346);\n break;\n case 'mm':\n factor = (1 / 2.835);\n break;\n case 'pt':\n factor = 1;\n break;\n case 'p':\n factor = 1 / 12;\n break;\n case 'ft':\n factor = 1 / 864;\n break;\n case 'ft_in':\n factor = 1 / 72;\n break;\n case 'm':\n factor = (1 / 2834.64567);\n break;\n }\n return factor;\n };\n MeasureAnnotation.prototype.convertPointToUnits = function (factor, value, unit) {\n var convertedValue;\n if (unit === 'ft_in') {\n // eslint-disable-next-line\n var calculateValue = Math.round((value * factor) * 100) / 100;\n if (calculateValue >= 12) {\n calculateValue = (Math.round(calculateValue / 12 * 100) / 100).toString();\n calculateValue = calculateValue.split('.');\n if (calculateValue[1]) {\n // eslint-disable-next-line\n var inchValue = 0;\n if (calculateValue[1].charAt(1)) {\n // eslint-disable-next-line\n inchValue = parseInt(calculateValue[1].charAt(0)) + '.' + parseInt(calculateValue[1].charAt(1));\n inchValue = Math.round(inchValue);\n }\n else {\n inchValue = calculateValue[1];\n }\n if (!inchValue) {\n convertedValue = calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('ft');\n }\n else {\n convertedValue = calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('ft') + ' ' + inchValue + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n else {\n convertedValue = calculateValue[0] + ' ' + this.pdfViewer.localeObj.getConstant('ft');\n }\n }\n else {\n convertedValue = Math.round((value * factor) * 100) / 100 + ' ' + this.pdfViewer.localeObj.getConstant('in');\n }\n }\n else {\n convertedValue = Math.round((value * factor) * 100) / 100 + ' ' + this.pdfViewer.localeObj.getConstant(unit);\n }\n return convertedValue;\n };\n MeasureAnnotation.prototype.convertUnitToPoint = function (unit) {\n var factor;\n switch (unit) {\n case 'in':\n factor = 72;\n break;\n case 'cm':\n factor = 28.346;\n break;\n case 'mm':\n factor = 2.835;\n break;\n case 'pt':\n factor = 1;\n break;\n case 'p':\n factor = 12;\n break;\n case 'ft':\n factor = 864;\n break;\n case 'ft_in':\n factor = 72;\n break;\n case 'm':\n factor = 2834.64567;\n break;\n }\n return factor;\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getStringifiedMeasure = function (measure) {\n if (!isNullOrUndefined(measure)) {\n measure.angle = JSON.stringify(measure.angle);\n measure.area = JSON.stringify(measure.area);\n measure.distance = JSON.stringify(measure.distance);\n measure.volume = JSON.stringify(measure.volume);\n }\n return JSON.stringify(measure);\n };\n // eslint-disable-next-line\n MeasureAnnotation.prototype.getRgbCode = function (colorString) {\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 * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.saveImportedMeasureAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n var measureObject = {\n // eslint-disable-next-line max-len\n ratio: annotation.Calibrate.Ratio, x: this.getNumberFormatArray(annotation.Calibrate.X), distance: this.getNumberFormatArray(annotation.Calibrate.Distance), area: this.getNumberFormatArray(annotation.Calibrate.Area), angle: this.getNumberFormatArray(annotation.Calibrate.Angle), volume: this.getNumberFormatArray(annotation.Calibrate.Volume),\n targetUnitConversion: annotation.Calibrate.TargetUnitConversion\n };\n if (annotation.Calibrate.Depth) {\n measureObject.depth = annotation.Calibrate.Depth;\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : this.pdfViewer.shapeLabelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n annotation.Author = this.pdfViewer.annotationModule.updateAnnotationAuthor('measure', annotation.Subject);\n annotationObject = {\n // eslint-disable-next-line max-len\n id: 'measure', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n // eslint-disable-next-line max-len\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n caption: annotation.Caption, captionPosition: annotation.CaptionPosition, calibrate: measureObject, leaderLength: annotation.LeaderLength, leaderLineExtension: annotation.LeaderLineExtension,\n // eslint-disable-next-line max-len\n leaderLineOffset: annotation.LeaderLineOffset, indent: annotation.Indent, annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, annotationSelectorSettings: this.getSettings(annotation), labelSettings: annotation.LabelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isAnnotationRotated: false\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_shape_measure');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n MeasureAnnotation.prototype.updateMeasureAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n var measureObject = {\n // eslint-disable-next-line max-len\n ratio: annotation.Calibrate.Ratio, x: this.getNumberFormatArray(annotation.Calibrate.X), distance: this.getNumberFormatArray(annotation.Calibrate.Distance), area: this.getNumberFormatArray(annotation.Calibrate.Area), angle: this.getNumberFormatArray(annotation.Calibrate.Angle), volume: this.getNumberFormatArray(annotation.Calibrate.Volume),\n targetUnitConversion: annotation.Calibrate.TargetUnitConversion\n };\n if (annotation.Calibrate.Depth) {\n measureObject.depth = annotation.Calibrate.Depth;\n }\n if (annotation.Bounds && annotation.EnableShapeLabel === true) {\n // eslint-disable-next-line max-len\n annotation.LabelBounds = this.pdfViewer.annotationModule.inputElementModule.calculateLabelBoundsFromLoadedDocument(annotation.Bounds);\n annotation.LabelBorderColor = annotation.LabelBorderColor ? annotation.LabelBorderColor : annotation.StrokeColor;\n annotation.FontColor = annotation.FontColor ? annotation.FontColor : annotation.StrokeColor;\n annotation.LabelFillColor = annotation.LabelFillColor ? annotation.LabelFillColor : annotation.FillColor;\n annotation.FontSize = annotation.FontSize ? annotation.FontSize : 16;\n var settings = this.pdfViewer.shapeLabelSettings;\n var labelSettings = { borderColor: annotation.StrokeColor, fillColor: annotation.FillColor, fontColor: annotation.FontColor,\n fontSize: annotation.FontSize, labelContent: annotation.LabelContent, labelHeight: settings.labelHeight, labelWidth: settings.labelWidth, opacity: annotation.Opacity\n };\n annotation.LabelSettings = annotation.LabelSettings ? annotation.LabelSettings : labelSettings;\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n id: 'measure', shapeAnnotationType: annotation.ShapeAnnotationType, author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, thickness: annotation.Thickness, rectangleDifference: annotation.RectangleDifference,\n // eslint-disable-next-line max-len\n borderStyle: annotation.BorderStyle, borderDashArray: annotation.BorderDashArray, rotateAngle: annotation.RotateAngle, isCloudShape: annotation.IsCloudShape,\n cloudIntensity: annotation.CloudIntensity, vertexPoints: vertexPoints, lineHeadStart: annotation.LineHeadStart, lineHeadEnd: annotation.LineHeadEnd, isLocked: annotation.IsLocked,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n caption: annotation.Caption, captionPosition: annotation.CaptionPosition, calibrate: measureObject, leaderLength: annotation.LeaderLength, leaderLineExtension: annotation.LeaderLineExtension,\n // eslint-disable-next-line max-len\n leaderLineOffset: annotation.LeaderLineOffset, indent: annotation.Indent, annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n labelContent: annotation.LabelContent, enableShapeLabel: annotation.EnableShapeLabel, labelFillColor: annotation.LabelFillColor,\n labelBorderColor: annotation.LabelBorderColor, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n // eslint-disable-next-line max-len\n labelBounds: annotation.LabelBounds, pageNumber: pageNumber, annotationSelectorSettings: annotation.AnnotationSelectorSettings, labelSettings: annotation.labelSettings, annotationSettings: annotation.AnnotationSettings,\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint\n };\n return annotationObject;\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes the annotation type\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @returns Object\n * @private\n */\n MeasureAnnotation.prototype.updateAddAnnotationDetails = function (annotationType, annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Initialize the annotation settings\n var annotationSelectorSettings = null;\n var allowedInteractions = null;\n var annotationSettings = null;\n var measureAnnotationType = '';\n var shapeAnnotationType = '';\n var subject = '';\n var isArrow = false;\n var vertexPoints = [];\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (annotationType == 'Distance') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.lineSettings.annotationSelectorSettings ? this.pdfViewer.lineSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.lineSettings);\n allowedInteractions = this.pdfViewer.lineSettings.allowedInteractions ? this.pdfViewer.lineSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'LineDimension';\n shapeAnnotationType = 'Line';\n subject = 'Distance calculation';\n isArrow = true;\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y }, { x: offset.x + 100, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Perimeter') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.arrowSettings.annotationSelectorSettings ? this.pdfViewer.arrowSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.arrowSettings);\n allowedInteractions = this.pdfViewer.arrowSettings.allowedInteractions ? this.pdfViewer.arrowSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolyLineDimension';\n shapeAnnotationType = 'Polyline';\n subject = 'Perimeter calculation';\n isArrow = true;\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y },\n { x: offset.x + 85, y: offset.y },\n { x: offset.x + 86, y: offset.y + 62 }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Area') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.rectangleSettings.annotationSelectorSettings ? this.pdfViewer.rectangleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.rectangleSettings);\n allowedInteractions = this.pdfViewer.rectangleSettings.allowedInteractions ? this.pdfViewer.rectangleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolygonDimension';\n shapeAnnotationType = 'Polygon';\n subject = 'Area calculation';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [{ x: offset.x, y: offset.y },\n { x: offset.x + 88, y: offset.y - 1 },\n { x: offset.x + 89, y: offset.y + 53 },\n { x: offset.x, y: offset.y }];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n else if (annotationType == 'Radius') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.circleSettings.annotationSelectorSettings ? this.pdfViewer.circleSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.circleSettings);\n allowedInteractions = this.pdfViewer.circleSettings.allowedInteractions ? this.pdfViewer.circleSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolygonRadius';\n shapeAnnotationType = 'Circle';\n subject = 'Radius calculation';\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 100;\n vertexPoints = null;\n }\n else if (annotationType == 'Volume') {\n //Creating annotation settings\n annotationSelectorSettings = this.pdfViewer.polygonSettings.annotationSelectorSettings ? this.pdfViewer.polygonSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.polygonSettings);\n allowedInteractions = this.pdfViewer.polygonSettings.allowedInteractions ? this.pdfViewer.polygonSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n measureAnnotationType = 'PolygonVolume';\n shapeAnnotationType = 'Polygon';\n subject = 'Volume calculation';\n if (annotationObject.vertexPoints)\n vertexPoints = annotationObject.vertexPoints;\n else\n vertexPoints = [\n { x: offset.x, y: offset.y },\n { x: offset.x, y: offset.y + 109 },\n { x: offset.x + 120, y: offset.y + 109 },\n { x: offset.x + 120, y: offset.y - 1 },\n { x: offset.x, y: offset.y }\n ];\n annotationObject.width = annotationObject.width ? annotationObject.width : 1;\n annotationObject.height = annotationObject.height ? annotationObject.height : 1;\n }\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n //Calculating area for all the measurements\n var values = { depth: 96,\n factor: 0.013888888888888888,\n ratio: 1,\n unit: 'in' };\n var notes = '';\n if (vertexPoints || annotationType == 'Radius' || annotationType == 'Volume') {\n if (annotationType == 'Distance' || annotationType == 'Perimeter' || annotationType == 'Radius') {\n var length_1 = 0;\n if (annotationType == 'Radius') {\n length_1 = (annotationObject.width / 2) * this.pixelToPointFactor;\n }\n else {\n for (var i_1 = 0; i_1 < vertexPoints.length - 1; i_1++) {\n length_1 += Math.sqrt(Math.pow((vertexPoints[i_1].x - vertexPoints[i_1 + 1].x), 2) + Math.pow((vertexPoints[i_1].y - vertexPoints[i_1 + 1].y), 2));\n }\n length_1 = length_1 * this.pixelToPointFactor;\n }\n var scaledValue = length_1 * values.ratio;\n notes = this.convertPointToUnits(values.factor, scaledValue, values.unit);\n }\n else if (annotationType == 'Area' || annotationType == 'Volume') {\n var area = 0;\n var j = vertexPoints.length - 1;\n for (var i = 0; i < vertexPoints.length; i++) {\n area += (vertexPoints[j].x * this.pixelToPointFactor * values.factor + vertexPoints[i].x * this.pixelToPointFactor * values.factor) * (vertexPoints[j].y * this.pixelToPointFactor * values.factor - vertexPoints[i].y * this.pixelToPointFactor * values.factor);\n j = i;\n }\n area = (Math.abs((area) / 2.0));\n if (annotationType == 'Volume') {\n area = area * ((values.depth * this.convertUnitToPoint(values.unit)) * values.factor) * values.ratio;\n notes = Math.round(area * 100) / 100 + this.pdfViewer.localeObj.getConstant('cu') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n }\n else\n notes = Math.round(area * 100) / 100 + this.pdfViewer.localeObj.getConstant('sq') + ' ' + this.pdfViewer.localeObj.getConstant(values.unit);\n }\n }\n //Converting points model into vertex property\n if (vertexPoints)\n vertexPoints = this.pdfViewer.annotation.getVertexPointsXY(vertexPoints);\n //Creating Annotation objects with it's proper properties\n var measureShapeAnnotation = [];\n var shape = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'shape_measure',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n BorderDashArray: annotationObject.borderDashArray ? annotationObject.borderDashArray : 0,\n BorderStyle: 'Solid',\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n Calibrate: {\n Area: [{ ConversionFactor: 1, Denominator: 100, FormatDenominator: false, FractionalType: 'D', Unit: 'sq in' }],\n Depth: annotationObject.depth ? annotationObject.depth : 0,\n Distance: [{ ConversionFactor: 1, Denominator: 100, FormatDenominator: false, FractionalType: 'D', Unit: 'in' }],\n Ratio: '1 in = 1 in',\n TargetUnitConversion: 0,\n Volume: null,\n X: [{ ConversionFactor: 0.013888889, Denominator: 100, FormatDenominator: false, FractionalType: 'D', Unit: 'in' }]\n },\n Caption: true,\n CaptionPosition: 'Top',\n CloudIntensity: 0,\n Comments: null,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n CreatedDate: currentDateString,\n EnableShapeLabel: false,\n ExistingCustomData: null,\n FillColor: annotationObject.fillColor ? annotationObject.fillColor : '#ffffff00',\n FontColor: null,\n FontSize: 0,\n Indent: measureAnnotationType,\n IsCloudShape: false,\n IsCommentLock: false,\n IsLocked: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n LabelBorderColor: null,\n LabelBounds: { X: 0, Y: 0, Width: 0, Height: 0 },\n LabelContent: null,\n LabelFillColor: null,\n LabelSettings: null,\n LeaderLength: 0,\n LeaderLineExtension: 0,\n LeaderLineOffset: 0,\n LineHeadEnd: annotationObject.lineHeadStartStyle ? annotationObject.lineHeadStartStyle : isArrow ? 'ClosedArrow' : 'None',\n LineHeadStart: annotationObject.lineHeadEndStyle ? annotationObject.lineHeadEndStyle : isArrow ? 'ClosedArrow' : 'None',\n ModifiedDate: '',\n Note: notes,\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n RectangleDifference: null,\n RotateAngle: 'RotateAngle0',\n ShapeAnnotationType: shapeAnnotationType,\n State: '',\n StateModel: '',\n StrokeColor: annotationObject.strokeColor ? annotationObject.strokeColor : '#ff0000',\n Subject: subject,\n Thickness: annotationObject.thickness ? annotationObject.thickness : 1,\n VertexPoints: vertexPoints\n };\n //Adding the annotation object to an array and return it\n measureShapeAnnotation[0] = shape;\n return { measureShapeAnnotation: measureShapeAnnotation };\n };\n return MeasureAnnotation;\n}());\nexport { MeasureAnnotation };\n","import { DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../../index';\nimport { splitArrayCollection, processPathData } from '@syncfusion/ej2-drawings';\nimport { Browser } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * The `StampAnnotation` module is used to handle annotation actions of PDF viewer.\n *\n * @hidden\n */\nvar StampAnnotation = /** @class */ (function () {\n function StampAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.isStampAddMode = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.stampPageNumber = [];\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.customStampName = null;\n this.dynamicText = '';\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param stampAnnotations\n * @param pageNumber\n * @param canvass\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.renderStampAnnotations = function (stampAnnotations, pageNumber, canvass, isImport, isAnnotOrderAction) {\n var isStampAdded = false;\n for (var p = 0; p < this.stampPageNumber.length; p++) {\n if (this.stampPageNumber[p] === pageNumber) {\n isStampAdded = true;\n break;\n }\n }\n if (isImport) {\n isStampAdded = false;\n }\n if (stampAnnotations && (!isStampAdded || isAnnotOrderAction)) {\n this.stampPageNumber.push(pageNumber);\n var _loop_1 = function (s) {\n // eslint-disable-next-line\n var annotation = stampAnnotations[s];\n annotation.annotationAddMode = this_1.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n // eslint-disable-next-line\n var Apperance = annotation['Apperarance'];\n // eslint-disable-next-line\n var position = annotation['Rect'];\n // eslint-disable-next-line\n var opacity = annotation['Opacity'];\n // eslint-disable-next-line\n var annotationSelectorSettings = annotation[\"AnnotationSelectorSettings\"];\n // eslint-disable-next-line\n var pageIndex = parseFloat(stampAnnotations[s]['pageNumber']);\n /* eslint-disable */\n if (isNaN(pageIndex)) {\n pageIndex = stampAnnotations[s]['PageNumber'];\n }\n // eslint-disable-next-line\n var stampName = annotation['IsDynamic'];\n var pageDiv = document.getElementById(this_1.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n // eslint-disable-next-line\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this_1.pdfViewer.annotationModule.updateSettings(this_1.pdfViewer.stampSettings);\n // eslint-disable-next-line\n var isImageStamp = this_1.stampImageData(annotation);\n if (stampName && annotation['Subject'] && annotation['Subject'] !== 'Draft' && !isImageStamp) {\n // eslint-disable-next-line\n this_1.retrieveDynamicStampAnnotation(annotation['Subject']);\n this_1.isExistingStamp = true;\n var currentLocation = this_1.calculateImagePosition(position, true);\n // eslint-disable-next-line\n var rotation = annotation['RotateAngle'];\n for (var d = 0; d < Apperance.length; d++) {\n // eslint-disable-next-line\n var stampShapes = Apperance[d];\n // eslint-disable-next-line\n var stampType = stampShapes['type'];\n // eslint-disable-next-line\n if (stampType === 'string' && stampShapes['text'] !== undefined) {\n // eslint-disable-next-line\n var text = void 0;\n if (!isImport) {\n // eslint-disable-next-line\n text = stampShapes['text'].split('(')[1].split(')')[0];\n }\n else {\n // eslint-disable-next-line\n text = stampShapes['text'];\n }\n if (text.split('(').length === 2) {\n if (text.split('(')[1].split(')')[0].toLowerCase() !== annotation['Subject'].toLowerCase()) {\n this_1.dynamicText += text.split('(')[1].split(')')[0];\n }\n }\n else if (text.toLowerCase() !== annotation['Subject'].toLowerCase()) {\n this_1.dynamicText += text;\n }\n }\n }\n // eslint-disable-next-line max-len\n this_1.renderStamp(currentLocation.left, currentLocation.top, currentLocation.width, currentLocation.height, pageIndex, opacity, rotation, canvass, annotation, true);\n }\n // eslint-disable-next-line\n else if (annotation['Subject'] && !isImageStamp) {\n // eslint-disable-next-line\n this_1.retrievestampAnnotation(annotation['Subject']);\n this_1.isExistingStamp = true;\n var currentLocation = this_1.calculateImagePosition(position, true);\n // eslint-disable-next-line\n var rotation = annotation['RotateAngle'];\n // eslint-disable-next-line max-len\n this_1.renderStamp(currentLocation.left, currentLocation.top, currentLocation.width, currentLocation.height, pageIndex, opacity, rotation, canvass, annotation);\n this_1.isExistingStamp = false;\n }\n else {\n if (Apperance) {\n var _loop_2 = function (j) {\n // eslint-disable-next-line\n var stampShapes = Apperance[j];\n // eslint-disable-next-line\n var imageData = stampShapes['imagedata'];\n // eslint-disable-next-line\n var matrix = stampShapes['matrix'];\n // eslint-disable-next-line\n var currentDate = stampShapes['CreationDate'];\n // eslint-disable-next-line\n var modifiedDate = stampShapes['ModifiedDate'];\n // eslint-disable-next-line\n var rotationAngle = stampShapes['RotateAngle'];\n if (imageData) {\n var image_1 = new Image();\n // eslint-disable-next-line\n var proxy_1 = this_1;\n image_1.onload = function () {\n // This code is no more required.Since this issue have neen fixed in server side itself. \n // refer https://syncfusion.atlassian.net/browse/EJ2-54035\n // if (position) {\n // let y: number = parseFloat(position.y ? position.y : position.Y);\n // if (y < 0) {\n // position.Y = (proxy.pdfViewerBase.pageSize[pageIndex].height + y) * (72/96);\n // }\n // }\n var currentLocation = proxy_1.calculateImagePosition(position, true);\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : proxy_1.pdfViewer.customStampSettings.annotationSettings;\n // eslint-disable-next-line max-len\n proxy_1.renderCustomImage(currentLocation, pageIndex, image_1, currentDate, modifiedDate, rotationAngle, opacity, canvass, true, annotation);\n };\n image_1.src = imageData;\n }\n };\n for (var j = 0; j < Apperance.length; j++) {\n _loop_2(j);\n }\n }\n }\n };\n var this_1 = this;\n for (var s = 0; s < stampAnnotations.length; s++) {\n _loop_1(s);\n }\n }\n };\n /**\n * @private\n */\n StampAnnotation.prototype.moveStampElement = function (X, Y, pageIndex) {\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n X = X / zoomFactor;\n Y = Y / zoomFactor;\n // eslint-disable-next-line max-len\n var author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n if (this.pdfViewerBase.isDynamicStamp) {\n if (this.pdfViewer.dateTimeFormat) {\n var dateTime = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n this.dynamicText = 'By ' + author + ' at ' + dateTime + ' ';\n }\n else {\n // eslint-disable-next-line\n var today = (new Date()).toString().split(' ').splice(1, 3).join(' ');\n // eslint-disable-next-line\n var time = (new Date()).toLocaleTimeString();\n this.dynamicText = 'By ' + author + ' at ' + time + ' , ' + today + ' ';\n }\n }\n var annot;\n // eslint-disable-next-line\n var annotation = this.currentStampAnnotation;\n if (annotation && annotation.shapeAnnotationType === 'Image') {\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data, modifiedDate: annotation.modifiedDate,\n shapeAnnotationType: 'Image', opacity: annotation.opacity, rotateAngle: annotation.RotationAngle, annotName: annotation.annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: annotation.author }\n };\n }\n else if (annotation) {\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, bounds: { x: X, y: Y, width: annotation.width, height: annotation.height }, pageIndex: pageIndex, data: annotation.pathdata,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Stamp', strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: 0.5, stampFillColor: annotation.stampFillColor, stampStrokeColor: annotation.stampStrokeColor, rotateAngle: annotation.RotateAngle, isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText, subject: annotation.iconName,\n annotationSelectorSettings: this.pdfViewer.annotationSelectorSettings\n };\n }\n if (this.pdfViewerBase.currentSignatureAnnot) {\n annotation = this.pdfViewerBase.currentSignatureAnnot;\n if (annotation.shapeAnnotationType === 'SignatureText') {\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', thickness: annotation.thickness, strokeColor: annotation.strokeColor, opacity: annotation.opacity, signatureName: annotation.signatureName, fontFamily: annotation.fontFamily, fontSize: Math.floor((annotation.bounds.height / 2))\n };\n }\n else if (annotation.shapeAnnotationType === 'SignatureImage') {\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', thickness: annotation.thickness, strokeColor: annotation.strokeColor, opacity: annotation.opacity, signatureName: annotation.signatureName,\n };\n }\n else {\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: X, y: Y, width: annotation.bounds.width, height: annotation.bounds.height }, pageIndex: pageIndex, data: annotation.data,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'HandWrittenSignature', thickness: annotation.thickness, strokeColor: annotation.strokeColor, opacity: annotation.opacity, signatureName: annotation.signatureName,\n };\n }\n }\n return annot;\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.calculateImagePosition = function (position, flags) {\n var positions = { width: 0, height: 0, left: 0, top: 0 };\n var x = parseFloat(position.x ? position.x : position.X);\n var y = parseFloat(position.y ? position.y : position.Y);\n var newWidth = parseFloat(position.width ? position.width : position.Width);\n var newHeight = parseFloat(position.height ? position.height : position.Height);\n if (flags) {\n var width = this.ConvertPointToPixel(newWidth);\n var height = this.ConvertPointToPixel(newHeight);\n var left = this.ConvertPointToPixel(x);\n var top_1 = this.ConvertPointToPixel(y);\n positions = { width: width, height: height, left: left, top: top_1 };\n }\n else {\n positions = { width: newWidth, height: newHeight, left: x, top: y };\n }\n return positions;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.createCustomStampAnnotation = function (imageSource, annotName) {\n var _this = this;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var image = new Image();\n // eslint-disable-next-line\n var proxy = this;\n image.onload = function () {\n var zoomFactor = _this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line max-len\n var stampSettings = _this.pdfViewer.customStampSettings;\n var customStampWidth = stampSettings.width > 0 ? stampSettings.width : 0;\n var customStampHeight = stampSettings.height > 0 ? stampSettings.height : 0;\n var standardImageRatio = 100;\n // eslint-disable-next-line max-len\n if (!(customStampWidth > 0 || customStampHeight > 0)) {\n if (image.naturalHeight >= image.naturalWidth) {\n customStampHeight = ((image.naturalHeight / image.naturalHeight) * standardImageRatio);\n customStampWidth = ((image.naturalWidth / image.naturalHeight) * standardImageRatio);\n }\n else {\n customStampHeight = ((image.naturalHeight / image.naturalWidth) * standardImageRatio);\n customStampWidth = ((image.naturalWidth / image.naturalWidth) * standardImageRatio);\n }\n }\n var customStampleft = 0;\n var customStamptop = 0;\n // eslint-disable-next-line max-len\n customStampleft = _this.pdfViewer.customStampSettings.left;\n // eslint-disable-next-line max-len\n customStamptop = _this.pdfViewer.customStampSettings.top;\n // eslint-disable-next-line max-len\n var positions = { width: customStampWidth, height: customStampHeight, left: customStampleft, top: customStamptop };\n // eslint-disable-next-line\n var currentDate = new Date().toLocaleDateString();\n // eslint-disable-next-line\n var modifiedDate = _this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var rotationAngle = 0;\n proxy.renderCustomImage(positions, pageIndex, image, currentDate, modifiedDate, rotationAngle, 1, null, null, null, annotName);\n };\n image.src = imageSource;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.renderStamp = function (X, Y, width, height, pageIndex, opacity, rotation, canvass, existingAnnotation, isDynamic) {\n if (Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n // eslint-disable-next-line max-len\n var author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n if (this.pdfViewerBase.isDynamicStamp) {\n // eslint-disable-next-line\n var today = (new Date()).toString().split(' ').splice(1, 3).join(' ');\n // eslint-disable-next-line\n var time = (new Date()).toLocaleTimeString();\n this.dynamicText = 'By ' + author + ' at ' + time + ' , ' + today + ' ';\n }\n if (isDynamic) {\n this.dynamicText += ' ';\n this.pdfViewerBase.isDynamicStamp = true;\n }\n var annot;\n var annotationObject = null;\n // eslint:disable-next-line\n var annotationAddMode = existingAnnotation ? existingAnnotation.annotationAddMode : 'UI Drawn Annotation';\n // eslint-disable-next-line\n var annotation = this.currentStampAnnotation;\n if (annotation) {\n if (width !== null && height !== null) {\n annotation.width = width;\n annotation.height = height;\n annotation.Opacity = opacity;\n annotation.RotateAngle = rotation;\n // eslint-disable-next-line\n var annotationName = existingAnnotation['AnnotName'];\n annotation.AnnotName = annotationName;\n // eslint-disable-next-line\n var state = existingAnnotation['State'];\n annotation.State = state;\n // eslint-disable-next-line\n var annotationSettings = existingAnnotation[\"AnnotationSettings\"];\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotationSettings ? annotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n // eslint-disable-next-line\n var annotationSelectorSettings = existingAnnotation['AnnotationSelectorSettings'];\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotationSelectorSettings ? annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line\n var modifiedDate = existingAnnotation['ModifiedDate'];\n annotation.ModifiedDate = modifiedDate;\n // eslint-disable-next-line\n var stateModel = existingAnnotation['StateNodel'];\n annotation.StateModel = stateModel;\n // eslint-disable-next-line\n var lock = existingAnnotation['IsCommentLock'];\n annotation.IsCommentLock = lock;\n // eslint-disable-next-line\n var text = existingAnnotation['Note'];\n annotation.Note = text;\n // eslint-disable-next-line\n var author_1 = existingAnnotation['Author'];\n annotation.Author = author_1;\n // eslint-disable-next-line\n var subject = existingAnnotation['Subject'];\n annotation.Subject = subject;\n // eslint-disable-next-line\n var customData = this.pdfViewer.annotation.getCustomData(existingAnnotation);\n // eslint-disable-next-line\n annotation.allowedInteractions = existingAnnotation['AllowedInteractions'] ? existingAnnotation['AllowedInteractions'] : existingAnnotation['allowedInteractions'] ? existingAnnotation['allowedInteractions'] : ['None'];\n annotation.CustomData = customData;\n // eslint-disable-next-line\n var isPrint = true;\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = existingAnnotation['IsPrint'];\n }\n else {\n isPrint = existingAnnotation.AnnotationSettings.isPrint;\n }\n annotation.isPrint = isPrint;\n if (annotation.Author === null) {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n }\n // eslint-disable-next-line\n var annotationComments = existingAnnotation['Comments'];\n annotation.Comments = this.pdfViewer.annotationModule.getAnnotationComments(annotationComments, existingAnnotation, author_1);\n }\n else {\n var annotationName = this.pdfViewer.annotation.createGUID();\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('stamp', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annotation.AnnotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n annotation.AnnotName = annotationName;\n annotation.Comments = [];\n annotation.State = '';\n annotation.StateModel = '';\n annotation.Note = '';\n annotation.Opacity = 1;\n annotation.RotateAngle = 0;\n annotation.ModifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n }\n // eslint-disable-next-line\n var collectionData = processPathData(annotation.pathdata);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n // eslint:disable-next-line\n var annotationAddMode_1 = existingAnnotation ? existingAnnotation.annotationAddMode : 'UI Drawn Annotation';\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, bounds: { x: X, y: Y, width: annotation.width, height: annotation.height }, pageIndex: pageIndex, data: annotation.pathdata, modifiedDate: annotation.ModifiedDate,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Stamp', strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.Opacity, stampFillColor: annotation.stampFillColor, stampStrokeColor: annotation.stampStrokeColor, rotateAngle: annotation.RotateAngle, isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText, annotName: annotation.AnnotName, notes: annotation.Note,\n comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, subject: annotation.iconName,\n // eslint-disable-next-line\n annotationSelectorSettings: annotation.AnnotationSelectorSettings, annotationSettings: annotation.AnnotationSettings, allowedInteractions: annotation.allowedInteractions,\n annotationAddMode: annotationAddMode_1, isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock\n };\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'path', author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.Opacity, stampFillcolor: annotation.stampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: annotation.creationDate, pageNumber: pageIndex, icon: annotation.iconName, stampAnnotationPath: csData, randomId: 'stamp' + this.pdfViewerBase.customStampCount, isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText,\n bounds: { left: X, top: Y, width: annotation.width, height: annotation.height, }, annotName: annotation.AnnotName, comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), allowedInteractions: annotation.allowedInteractions, isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock,\n isMaskedImage: annotation.IsMaskedImage, customStampName: ''\n };\n this.storeStampInSession(pageIndex, annotationObject);\n if (this.isAddAnnotationProgramatically) {\n this.triggerAnnotationAdd(annot, annotation);\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n if (canvass != undefined && canvass != null) {\n canvass = canvass;\n }\n else {\n canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, pageIndex);\n if (this.pdfViewerBase.stampAdded) {\n this.triggerAnnotationAdd(annot, annotation);\n this.pdfViewerBase.isNewStamp = true;\n this.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n }\n this.pdfViewerBase.stampAdded = false;\n if (!this.isExistingStamp) {\n annotation.creationDate = new Date().toLocaleDateString();\n // eslint-disable-next-line max-len\n annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n }\n this.resetAnnotation();\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else if (this.pdfViewer.stampSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.stampSettings.annotationSelectorSettings;\n }\n return selector;\n };\n /**\n * @private\n */\n StampAnnotation.prototype.resetAnnotation = function () {\n this.pdfViewerBase.isDynamicStamp = false;\n this.dynamicText = '';\n this.currentStampAnnotation = null;\n if (!Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.updateDeleteItems = function (pageNumber, annotation, opacity) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var annotationObject = null;\n var isStampSaved = false;\n annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n // eslint-disable-next-line max-len\n annotation.author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stampSettings.author ? this.pdfViewer.stampSettings.author : 'Guest';\n if (opacity) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('stamp', pageNumber + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annotation.annotName = annotationName;\n annotation.Comments = [];\n annotation.State = '';\n annotation.StateModel = '';\n annotation.Note = '';\n annotation.Opacity = 1;\n annotation.RotateAngle = 0;\n }\n if (annotation.shapeAnnotationType === 'Stamp') {\n annotation.isPrint = this.pdfViewer.stampSettings.isPrint;\n }\n // eslint-disable-next-line\n var annotationSelectorSettings = this.pdfViewer.stampSettings.annotationSelectorSettings ? this.pdfViewer.stampSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.stampSettings.allowedInteractions ? this.pdfViewer.stampSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n if (annotation.shapeAnnotationType === 'Image') {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.customStampSettings.author ? this.pdfViewer.customStampSettings.author : 'Guest';\n annotation.isPrint = this.pdfViewer.customStampSettings.isPrint;\n this.customStampName = this.customStampName ? this.customStampName : (this.currentStampAnnotation && this.currentStampAnnotation.signatureName) ? this.currentStampAnnotation.signatureName : annotation.id;\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: annotation.author, modifiedDate: annotation.modifiedDate, subject: '',\n note: '', strokeColor: '', fillColor: '', opacity: opacity,\n // eslint-disable-next-line max-len\n rotateAngle: '0', creationDate: annotation.currentDate, pageNumber: pageNumber, icon: '', stampAnnotationPath: annotation.data, randomId: annotation.id,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height }, stampFillcolor: '', isDynamicStamp: false, annotName: annotation.annotName, comments: [], review: { state: '', stateModel: '', author: annotation.author, modifiedDate: annotation.modifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings), customData: this.pdfViewer.annotationModule.getData('image'), isPrint: annotation.isPrint,\n allowedInteractions: allowedInteractions, isCommentLock: false, isMaskedImage: annotation.isMaskedImage, customStampName: this.customStampName\n };\n }\n else if (annotation.stampAnnotationType) {\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: annotation.stampAnnotationType, author: annotation.author, modifiedDate: annotation.modifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.opacity, stampFillcolor: annotation.stampFillcolor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.rotateAngle, creationDate: annotation.creationDate, pageNumber: annotation.pageNumber, icon: annotation.icon, stampAnnotationPath: annotation.stampAnnotationPath, randomId: annotation.randomId, isDynamicStamp: annotation.isDynamicStamp, dynamicText: annotation.dynamicText,\n bounds: { left: annotation.bounds.left, top: annotation.bounds.top, width: annotation.bounds.width, height: annotation.bounds.height }, annotName: annotation.annotName, comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings), customData: this.pdfViewer.annotationModule.getData(annotation.stampAnnotationType), isPrint: annotation.isPrint,\n allowedInteractions: allowedInteractions, isCommentLock: annotation.isCommentLock, isMaskedImage: annotation.isMaskedImage, customStampName: ''\n };\n }\n else {\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: annotation.shapeAnnotationType, author: annotation.author, modifiedDate: annotation.modifiedDate, subject: annotation.subject,\n note: annotation.notes, strokeColor: annotation.strokeColor, fillColor: annotation.fillColor, opacity: annotation.opacity, stampFillcolor: annotation.stampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.rotateAngle, creationDate: annotation.creationDate, pageNumber: annotation.pageIndex, icon: annotation.subject, stampAnnotationPath: annotation.data, randomId: annotation.id, isDynamicStamp: annotation.isDynamicStamp, dynamicText: annotation.dynamicText, shapeAnnotationType: 'stamp',\n bounds: { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height, }, annotName: annotation.annotName, comments: annotation.Comments, review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.author, modifiedDate: annotation.ModifiedDate },\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings), customData: this.pdfViewer.annotationModule.getData(annotation.shapeAnnotationType), isPrint: annotation.isPrint,\n allowedInteractions: allowedInteractions, isCommentLock: annotation.isCommentLock, isMaskedImage: annotation.isMaskedImage, customStampName: ''\n };\n }\n if (opacity) {\n if (annotation.shapeAnnotationType !== 'Image') {\n // eslint-disable-next-line\n var collectionData = processPathData(annotation.data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n annotationObject.stampAnnotationPath = csData;\n }\n annotation.creationDate = new Date().toLocaleDateString();\n if (!Browser.isDevice && annotation.wrapper) {\n annotationObject.bounds.width = annotation.wrapper.actualSize.width;\n annotationObject.bounds.height = annotation.wrapper.actualSize.height;\n annotationObject.bounds.left = annotation.wrapper.bounds.x;\n annotationObject.bounds.top = annotation.wrapper.bounds.y;\n }\n annotationObject.opacity = opacity;\n if (this.pdfViewerBase.stampAdded) {\n this.storeStampInSession(pageNumber, annotationObject);\n isStampSaved = true;\n // eslint-disable-next-line\n var bounds = { left: annotationObject.bounds.left, top: annotationObject.bounds.top, width: annotationObject.bounds.width, height: annotationObject.bounds.height };\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n var settings = { opacity: annotationObject.opacity, author: annotationObject.author, modifiedDate: annotationObject.modifiedDate };\n if (annotation.shapeAnnotationType === 'Image') {\n this.pdfViewerBase.stampAdded = false;\n this.pdfViewer.fireAnnotationAdd(annotationObject.pageNumber, annotationObject.annotName, 'Image', bounds, settings, null, null, null, null, null, this.customStampName);\n this.customStampName = null;\n }\n else {\n this.pdfViewer.fireAnnotationAdd(annotationObject.pageNumber, annotationObject.annotName, 'Stamp', bounds, settings);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageNumber, null, annotation, 'Addition', '', annotation, annotationObject);\n }\n }\n if (!isStampSaved) {\n this.storeStampInSession(pageNumber, annotationObject);\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.renderCustomImage = function (position, pageIndex, image, currentDate, modifiedDate, RotationAngle, opacity, canvas, isExistingStamp, annotation, annotName) {\n var annot;\n var annotationObject = null;\n var annotationName;\n var author;\n var isCommentsLock;\n // eslint-disable-next-line\n var isCustomStamp = this.pdfViewer.customStampSettings.left > 0 && this.pdfViewer.customStampSettings.top > 0 ? true : false;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.stampSettings.allowedInteractions ? this.pdfViewer.stampSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n if (Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n if (isExistingStamp) {\n annotationName = annotation.AnnotName;\n author = annotation.Author;\n isCommentsLock = annotation.IsCommentLock;\n // eslint-disable-next-line max-len\n annotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n // eslint-disable-next-line max-len\n allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n if (author === null) {\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.customStampSettings.author ? this.pdfViewer.customStampSettings.author : 'Guest';\n }\n }\n else {\n annotationName = this.pdfViewer.annotation.createGUID();\n // eslint-disable-next-line max-len\n author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.customStampSettings.author ? this.pdfViewer.customStampSettings.author : 'Guest';\n isCommentsLock = false;\n }\n if (!modifiedDate) {\n modifiedDate = annotation.ModifiedDate ? annotation.ModifiedDate : new Date().toLocaleString();\n }\n var annotationAddMode = annotation ? annotation.annotationAddMode : 'UI Drawn Annotation ';\n var isPrint = true;\n if (!isExistingStamp) {\n isPrint = this.pdfViewer.customStampSettings.isPrint;\n }\n else {\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = annotation.IsPrint;\n }\n else {\n isPrint = annotation.AnnotationSettings.isPrint;\n }\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'stamp' + this.pdfViewerBase.customStampCount, allowedInteractions: allowedInteractions, bounds: { x: position.left, y: position.top, width: position.width, height: position.height }, pageIndex: pageIndex, data: image.src, modifiedDate: modifiedDate,\n shapeAnnotationType: 'Image', opacity: opacity, rotateAngle: RotationAngle, annotName: annotationName, comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: author },\n // eslint-disable-next-line max-len\n annotationSettings: annotationSettings, annotationAddMode: annotationAddMode, signatureName: annotName, isPrint: isPrint, isCommentLock: isCommentsLock\n };\n this.currentStampAnnotation = annot;\n // eslint-disable-next-line\n var annotationSelectorSettings = this.pdfViewer.stampSettings.annotationSelectorSettings ? this.pdfViewer.stampSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n if (isExistingStamp || isCustomStamp) {\n if (!annotation) {\n this.isStampAnnotSelected = false;\n annotation = annot;\n // eslint-disable-next-line\n annotation.Note = '';\n // eslint-disable-next-line\n annotation.State = '';\n // eslint-disable-next-line\n annotation.StateModel = '';\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('stamp', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: author, allowedInteractions: allowedInteractions, modifiedDate: modifiedDate, subject: '',\n note: annotation.Note, strokeColor: '', fillColor: '', opacity: opacity,\n // eslint-disable-next-line max-len\n rotateAngle: '0', creationDate: currentDate, pageNumber: pageIndex, icon: '', stampAnnotationPath: image.src, randomId: 'stamp' + this.pdfViewerBase.customStampCount,\n // eslint-disable-next-line max-len\n bounds: { left: position.left, top: position.top, width: position.width, height: position.height }, stampFillcolor: '', isDynamicStamp: false,\n annotName: annotationName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: author, modifiedDate: modifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: annotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: isPrint, isCommentLock: isCommentsLock, isMaskedImage: annotation.IsMaskedImage, customStampName: annotation.CustomStampName\n };\n this.storeStampInSession(pageIndex, annotationObject);\n annot.comments = this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author);\n annot.review = { state: annotation.State, stateModel: annotation.StateModel, author: author, modifiedDate: modifiedDate };\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.customStampName = this.customStampName ? this.customStampName : this.currentStampAnnotation.signatureName ? this.currentStampAnnotation.signatureName : annotation.id;\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Image', annot.bounds, settings, null, null, null, null, null, this.customStampName);\n this.customStampName = null;\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n if (canvas != undefined && canvas != null) {\n canvas = canvas;\n }\n else {\n canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n if (this.pdfViewerBase.stampAdded) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n }\n }\n if (!Browser.isDevice) {\n this.pdfViewerBase.customStampCount += 1;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.retrieveDynamicStampAnnotation = function (icontype) {\n var stampCollection;\n if (icontype) {\n switch (icontype.trim()) {\n case 'Revised':\n {\n stampCollection = {\n iconName: 'Revised',\n // eslint-disable-next-line max-len\n pathdata: 'M19.68,21.22a3.94,3.94,0,0,1-1.1-1.9L16,11.87l-.21-.64a20.77,20.77,0,0,0,2.11-.58,7.24,7.24,0,0,0,2-1.09,5.65,5.65,0,0,0,1.72-2.12,5.4,5.4,0,0,0,.52-2.2A4.15,4.15,0,0,0,19.1,1.05a14.58,14.58,0,0,0-4.72-.6H5.31v.86a7,7,0,0,1,2,.33c.3.14.45.48.45,1a6.1,6.1,0,0,1-.14,1.08l-.21.8L3.31,19.32a3.35,3.35,0,0,1-.94,1.78,3.58,3.58,0,0,1-1.74.57v.86h9.83v-.86a6.22,6.22,0,0,1-2-.35c-.29-.15-.43-.52-.43-1.11,0-.1,0-.21,0-.31a2.36,2.36,0,0,1,0-.28l.28-1.14,1.95-6.86h.93l3.56,10.91h6.25v-.88A3.05,3.05,0,0,1,19.68,21.22ZM13.29,10.31a14,14,0,0,1-2.63.23l2-7.56a2.67,2.67,0,0,1,.52-1.17,1.4,1.4,0,0,1,1-.3,2.74,2.74,0,0,1,2.33.91,3.72,3.72,0,0,1,.69,2.3,6.4,6.4,0,0,1-.49,2.52,6.72,6.72,0,0,1-1.06,1.82A4.11,4.11,0,0,1,13.29,10.31ZM26,.45H43.74l-1.4,6.27-.88-.15a6,6,0,0,0-.78-3.4c-.84-1.12-2.54-1.69-5.11-1.69a2.9,2.9,0,0,0-1.68.32A2.34,2.34,0,0,0,33.26,3l-1.95,7.33a13.55,13.55,0,0,0,4.48-.56c.68-.32,1.44-1.3,2.27-2.92l.91.11-2.44,9-.91-.16a7.27,7.27,0,0,0,.09-.82q0-.35,0-.57a2.69,2.69,0,0,0-1-2.4A7.57,7.57,0,0,0,31,11.38l-2.17,8c0,.2-.09.38-.12.57a2.62,2.62,0,0,0,0,.43.92.92,0,0,0,.35.74,2.54,2.54,0,0,0,1.49.29,13.84,13.84,0,0,0,5.11-.84A9.85,9.85,0,0,0,40.73,16l.81.14-1.95,6.42h-18v-.9a3.43,3.43,0,0,0,1.42-.53A3.42,3.42,0,0,0,24,19.32L28,4.51c.1-.37.18-.72.25-1a4.23,4.23,0,0,0,.09-.78c0-.56-.15-.91-.44-1.06a6.85,6.85,0,0,0-2-.34ZM63.4,3.37,51,23.15H49.9L47.39,6.34a17.25,17.25,0,0,0-.93-4.24c-.25-.43-.93-.7-2.05-.79V.45h9.86v.86a5.47,5.47,0,0,0-1.72.19,1.14,1.14,0,0,0-.81,1.16,3,3,0,0,0,0,.31l0,.32L53.5,16.43l6.24-9.85c.49-.79.94-1.57,1.33-2.36a4.45,4.45,0,0,0,.6-1.85.88.88,0,0,0-.61-.9,6.11,6.11,0,0,0-1.52-.16V.45h6.34v.86a3.88,3.88,0,0,0-1.16.5A5.73,5.73,0,0,0,63.4,3.37ZM70.08,20c0,.11,0,.22,0,.31,0,.56.15.91.45,1.06a6.39,6.39,0,0,0,1.95.35v.86H62.63v-.86a3.58,3.58,0,0,0,1.74-.57,3.35,3.35,0,0,0,.94-1.78l4-14.81q.18-.63.27-1a3.78,3.78,0,0,0,.09-.75c0-.56-.16-.91-.47-1.06a7,7,0,0,0-2-.34V.45h9.83v.86a3.61,3.61,0,0,0-1.75.58,3.37,3.37,0,0,0-.91,1.78L70.4,18.48l-.26,1.14Zm19.26-7.23a6.37,6.37,0,0,1,1.07,3.62,6.58,6.58,0,0,1-2.06,4.71,7.54,7.54,0,0,1-5.65,2.1A10.15,10.15,0,0,1,80.89,23a11.42,11.42,0,0,1-1.8-.49l-.83-.3-.58-.2a2,2,0,0,0-.38,0,1,1,0,0,0-.78.26,3.89,3.89,0,0,0-.52.92H75l1.19-7.4,1,.07a14.63,14.63,0,0,0,.28,2.3,5.27,5.27,0,0,0,2.79,3.44,4.73,4.73,0,0,0,2.06.44,3.85,3.85,0,0,0,3.07-1.26,4.39,4.39,0,0,0,1.09-2.94q0-2.09-4.05-5.25c-2.7-2.22-4-4.26-4-6.14a6.31,6.31,0,0,1,1.78-4.53,6.51,6.51,0,0,1,5-1.87,9.67,9.67,0,0,1,1.82.18A6.54,6.54,0,0,1,88,.45l.84.28.56.13a2.59,2.59,0,0,0,.52.06,1.4,1.4,0,0,0,.88-.24,2.2,2.2,0,0,0,.53-.6h1L91,6.69l-.85-.12L90,5.49a6,6,0,0,0-1-2.62,3.82,3.82,0,0,0-3.38-1.73A3,3,0,0,0,82.9,2.53a3.6,3.6,0,0,0-.58,2,3.44,3.44,0,0,0,.59,2,6,6,0,0,0,1,1l2.85,2.33A12.75,12.75,0,0,1,89.34,12.72ZM110.27,16l.81.14-2,6.42H90.85v-.86a3.66,3.66,0,0,0,1.74-.57,3.42,3.42,0,0,0,.93-1.78l4-14.81c.1-.37.18-.72.25-1a4.23,4.23,0,0,0,.09-.78c0-.56-.14-.91-.44-1.06a6.85,6.85,0,0,0-2-.34V.45h17.77l-1.4,6.27L111,6.57a6,6,0,0,0-.78-3.4c-.84-1.12-2.54-1.69-5.1-1.69a2.92,2.92,0,0,0-1.69.32A2.34,2.34,0,0,0,102.8,3l-2,7.33a13.55,13.55,0,0,0,4.48-.56c.69-.32,1.44-1.3,2.27-2.92l.92.11-2.45,9-.91-.16a7.27,7.27,0,0,0,.09-.82q0-.35,0-.57a2.69,2.69,0,0,0-1-2.4,7.57,7.57,0,0,0-3.79-.64l-2.17,8c0,.2-.09.38-.12.57a2.62,2.62,0,0,0,0,.43.92.92,0,0,0,.35.74,2.54,2.54,0,0,0,1.49.29,13.84,13.84,0,0,0,5.11-.84A9.81,9.81,0,0,0,110.27,16Zm22.65-13Q130.39.45,125.52.45h-9.58v.86a7,7,0,0,1,2,.34c.31.15.47.5.47,1.06a3.61,3.61,0,0,1-.09.74c-.06.29-.15.64-.26,1.06L114,19.31a3.18,3.18,0,0,1-1.15,1.91,3.57,3.57,0,0,1-1.53.45v.86h9.47a14.87,14.87,0,0,0,10.95-4.14,12,12,0,0,0,3.75-8.77A8.94,8.94,0,0,0,132.92,2.94ZM129,15.36q-2.62,6.06-8.52,6.05a2.46,2.46,0,0,1-1.42-.29,1.05,1.05,0,0,1-.4-.93,2.24,2.24,0,0,1,0-.34,2.65,2.65,0,0,1,.08-.43l4.55-16.67a2,2,0,0,1,.54-.92,2.2,2.2,0,0,1,1.44-.35,4.74,4.74,0,0,1,4.47,2.22,7.9,7.9,0,0,1,.83,3.9A19.32,19.32,0,0,1,129,15.36Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.47, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Reviewed':\n {\n stampCollection = {\n iconName: 'Reviewed',\n // eslint-disable-next-line max-len\n pathdata: 'M17.37,18.25a3.47,3.47,0,0,1-1-1.67L14.17,10c0-.07-.1-.26-.19-.56A14.71,14.71,0,0,0,15.83,9a6.08,6.08,0,0,0,1.76-1A4.92,4.92,0,0,0,19.1,6.14a4.71,4.71,0,0,0,.46-1.93A3.65,3.65,0,0,0,16.86.52,12.83,12.83,0,0,0,12.72,0h-8V.75a6.62,6.62,0,0,1,1.72.3c.26.12.39.41.39.88a4.56,4.56,0,0,1-.13.94c0,.2-.1.44-.17.7L3,16.58a2.87,2.87,0,0,1-.82,1.56,3.15,3.15,0,0,1-1.53.51v.75H9.27v-.75a5.88,5.88,0,0,1-1.74-.31c-.25-.13-.37-.46-.37-1a2.53,2.53,0,0,1,0-.28,1.44,1.44,0,0,1,0-.24l.24-1,1.71-6H10l3.13,9.59h5.49v-.77A2.71,2.71,0,0,1,17.37,18.25ZM11.75,8.67a12.06,12.06,0,0,1-2.3.19L11.2,2.22a2.2,2.2,0,0,1,.46-1,1.19,1.19,0,0,1,.87-.27,2.41,2.41,0,0,1,2.05.8,3.29,3.29,0,0,1,.6,2A5.63,5.63,0,0,1,14.75,6a6.06,6.06,0,0,1-.93,1.59A3.65,3.65,0,0,1,11.75,8.67ZM22.9,0H38.52L37.29,5.51l-.78-.13a5.34,5.34,0,0,0-.68-3c-.74-1-2.24-1.48-4.49-1.48a2.68,2.68,0,0,0-1.49.27,2.09,2.09,0,0,0-.54,1L27.59,8.67a12.08,12.08,0,0,0,3.94-.5,5.69,5.69,0,0,0,2-2.56l.81.1-2.16,7.93-.79-.15c0-.27.06-.51.08-.71s0-.37,0-.5a2.34,2.34,0,0,0-.85-2.11A6.61,6.61,0,0,0,27.3,9.6l-1.91,7.08a4.91,4.91,0,0,0-.1.5,2,2,0,0,0,0,.38.83.83,0,0,0,.31.65,2.29,2.29,0,0,0,1.31.25,12.21,12.21,0,0,0,4.49-.73,8.69,8.69,0,0,0,4.51-4.09l.71.12L34.86,19.4H19.05v-.79a2.88,2.88,0,0,0,1.28-.47,2.94,2.94,0,0,0,.82-1.56l3.56-13q.13-.49.21-.9A3.26,3.26,0,0,0,25,2q0-.73-.39-.93A6.44,6.44,0,0,0,22.9.75ZM55.79,2.57,44.86,20h-.93L41.72,5.17a16.05,16.05,0,0,0-.81-3.73c-.22-.37-.82-.6-1.81-.69V0h8.67V.75a5,5,0,0,0-1.52.17,1,1,0,0,0-.7,1,2.53,2.53,0,0,0,0,.28l0,.27L47.09,14l5.48-8.66C53,4.69,53.4,4,53.75,3.32a4,4,0,0,0,.52-1.63.78.78,0,0,0-.54-.8A5.88,5.88,0,0,0,52.4.75V0H58V.75a3.55,3.55,0,0,0-1,.44A5.18,5.18,0,0,0,55.79,2.57ZM62,18.34a6,6,0,0,0,1.71.31v.75H55.12v-.75a3.15,3.15,0,0,0,1.53-.51,2.94,2.94,0,0,0,.82-1.56L61,3.57c.1-.37.18-.68.23-.93A2.81,2.81,0,0,0,61.34,2c0-.49-.13-.8-.41-.93a6.61,6.61,0,0,0-1.71-.3V0h8.63V.75a3.17,3.17,0,0,0-1.53.51,3,3,0,0,0-.8,1.57l-3.58,13-.22,1a2.74,2.74,0,0,0,0,.28,1.41,1.41,0,0,0,0,.28C61.64,17.9,61.78,18.21,62,18.34ZM69.13,0H84.75L83.52,5.51l-.78-.13a5.34,5.34,0,0,0-.68-3c-.74-1-2.24-1.48-4.49-1.48a2.68,2.68,0,0,0-1.49.27,2.09,2.09,0,0,0-.54,1L73.82,8.67a12.08,12.08,0,0,0,3.94-.5,5.69,5.69,0,0,0,2-2.56l.81.1L78.4,13.64l-.79-.15c0-.27.07-.51.08-.71s0-.37,0-.5a2.34,2.34,0,0,0-.85-2.11,6.61,6.61,0,0,0-3.33-.57l-1.91,7.08a4.91,4.91,0,0,0-.1.5,2,2,0,0,0,0,.38.83.83,0,0,0,.31.65,2.29,2.29,0,0,0,1.31.25,12.21,12.21,0,0,0,4.49-.73,8.69,8.69,0,0,0,4.51-4.09l.71.12L81.1,19.4H65v-.75a3.15,3.15,0,0,0,1.53-.51,2.94,2.94,0,0,0,.82-1.56l3.56-13q.14-.49.21-.9A3.26,3.26,0,0,0,71.24,2q0-.73-.39-.93a6.44,6.44,0,0,0-1.72-.3Zm39.15,2.83L100,20h-.84L97.41,5.85,90.67,20h-.84L87.58,3.13A3.83,3.83,0,0,0,87,1.23,2.84,2.84,0,0,0,85.33.71V0h8.06V.75A2.55,2.55,0,0,0,92.27,1a1.33,1.33,0,0,0-.66,1.31c0,.06,0,.13,0,.19s0,.15,0,.26l1.15,10.16,4.32-9a1,1,0,0,0,0-.27,3.33,3.33,0,0,0-.64-2.38A2.5,2.5,0,0,0,95.06.71V0h7.78V.71a2.9,2.9,0,0,0-1.4.34c-.27.19-.41.6-.41,1.24,0,.13,0,.32,0,.55,0,.4.08.88.14,1.47l1,8.47,4.51-9.42a7.12,7.12,0,0,0,.29-.74,2.48,2.48,0,0,0,.14-.79.9.9,0,0,0-.48-.93,3.25,3.25,0,0,0-1.34-.19V0h5.41V.71a2.34,2.34,0,0,0-1.1.35A4.56,4.56,0,0,0,108.28,2.83Zm16.45,10.81.71.12-1.71,5.64H107.66v-.75a3.15,3.15,0,0,0,1.53-.51,2.87,2.87,0,0,0,.82-1.56l3.57-13q.12-.49.21-.9a3.17,3.17,0,0,0,.08-.69q0-.73-.39-.93a6.44,6.44,0,0,0-1.72-.3V0h15.62l-1.23,5.51-.78-.13a5.26,5.26,0,0,0-.68-3C124,1.4,122.46.91,120.2.91a2.64,2.64,0,0,0-1.48.27,2.09,2.09,0,0,0-.55,1l-1.72,6.45a12,12,0,0,0,3.94-.5,5.62,5.62,0,0,0,2-2.56l.81.1L121,13.64l-.79-.15c0-.27.06-.51.07-.71s0-.37,0-.5a2.34,2.34,0,0,0-.86-2.11,6.57,6.57,0,0,0-3.32-.57l-1.91,7.08a5,5,0,0,0-.11.5,3.14,3.14,0,0,0,0,.38.8.8,0,0,0,.31.65,2.25,2.25,0,0,0,1.3.25,12.26,12.26,0,0,0,4.5-.73A8.67,8.67,0,0,0,124.73,13.64ZM144.64,2.19Q142.41,0,138.14,0h-8.42V.75a6.61,6.61,0,0,1,1.71.3c.28.13.41.44.41.93a2.81,2.81,0,0,1-.08.66c0,.25-.12.56-.23.93l-3.56,13a2.78,2.78,0,0,1-1,1.68,3.44,3.44,0,0,1-1.35.4v.75h8.32a13.06,13.06,0,0,0,9.63-3.64,10.49,10.49,0,0,0,3.3-7.7A7.87,7.87,0,0,0,144.64,2.19ZM141.2,13.1q-2.31,5.32-7.48,5.32a2.27,2.27,0,0,1-1.26-.25,1,1,0,0,1-.34-.82,1.62,1.62,0,0,1,0-.3,2.16,2.16,0,0,1,.08-.38l4-14.65a1.63,1.63,0,0,1,.47-.81A2,2,0,0,1,138,.91a4.16,4.16,0,0,1,3.93,1.95,7,7,0,0,1,.72,3.42A16.82,16.82,0,0,1,141.2,13.1Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.70402, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Received':\n {\n stampCollection = {\n iconName: 'Received',\n // eslint-disable-next-line max-len\n pathdata: 'M18.17,8.76a5,5,0,0,0,1.57-1.93,5,5,0,0,0,.47-2A3.76,3.76,0,0,0,17.42,1,13,13,0,0,0,13.13.48H4.89v.78a6.49,6.49,0,0,1,1.77.31c.27.12.41.43.41.91a5.87,5.87,0,0,1-.13,1c-.05.2-.12.44-.19.72L3.06,17.64a3,3,0,0,1-.84,1.61,3.36,3.36,0,0,1-1.59.53v.77H9.57v-.77a6.17,6.17,0,0,1-1.8-.32c-.26-.14-.39-.48-.39-1a2.46,2.46,0,0,1,0-.28,1.78,1.78,0,0,1,0-.26l.25-1,1.78-6.25h.84l3.24,9.92h5.66v-.8A2.76,2.76,0,0,1,18,19.36a3.57,3.57,0,0,1-1-1.72l-2.31-6.78c0-.07-.09-.27-.19-.58.87-.2,1.51-.38,1.92-.52A6.56,6.56,0,0,0,18.17,8.76Zm-2.93-2.1a6.19,6.19,0,0,1-1,1.65,3.85,3.85,0,0,1-2.14,1.14,12.92,12.92,0,0,1-2.39.2l1.81-6.87A2.5,2.5,0,0,1,12,1.72a1.27,1.27,0,0,1,.9-.27,2.5,2.5,0,0,1,2.12.83,3.35,3.35,0,0,1,.62,2.09A5.81,5.81,0,0,1,15.24,6.66ZM30.3,2.78,28.52,9.45a12.53,12.53,0,0,0,4.08-.51,5.91,5.91,0,0,0,2-2.66l.84.11-2.23,8.2-.82-.15c0-.28.07-.53.08-.74a5.17,5.17,0,0,0,0-.52A2.43,2.43,0,0,0,31.66,11a6.87,6.87,0,0,0-3.44-.58l-2,7.32a3.61,3.61,0,0,0-.11.51,2.31,2.31,0,0,0,0,.4.83.83,0,0,0,.32.67,2.32,2.32,0,0,0,1.35.26,12.58,12.58,0,0,0,4.65-.76,9,9,0,0,0,4.67-4.23l.73.13-1.77,5.83H19.8v-.83A2.83,2.83,0,0,0,21,19.25a3.09,3.09,0,0,0,.85-1.61L25.54,4.17c.09-.34.16-.65.22-.93a3.35,3.35,0,0,0,.09-.71c0-.5-.13-.82-.4-1a6.34,6.34,0,0,0-1.78-.31V.48H39.82l-1.27,5.7-.81-.13A5.44,5.44,0,0,0,37,3Q35.9,1.42,32.4,1.42a2.69,2.69,0,0,0-1.54.29A2.08,2.08,0,0,0,30.3,2.78ZM56.56,6.1c0-.07,0-.18,0-.33a4.89,4.89,0,0,0-1.12-3.53,3.75,3.75,0,0,0-2.82-1.16c-2.33,0-4.35,1.55-6.07,4.63a17.09,17.09,0,0,0-2.31,8.43c0,2.08.47,3.5,1.43,4.27a4.89,4.89,0,0,0,3.11,1.15,6.84,6.84,0,0,0,4.14-1.45A11.51,11.51,0,0,0,55,16l.91.66A10.08,10.08,0,0,1,52.26,20a9.33,9.33,0,0,1-4.34,1.11A8.56,8.56,0,0,1,42,19a7.25,7.25,0,0,1-2.35-5.67A13.53,13.53,0,0,1,43.22,4a11.19,11.19,0,0,1,8.56-4A12.34,12.34,0,0,1,55,.44,13.17,13.17,0,0,0,56.9.88a1,1,0,0,0,.71-.24A2.94,2.94,0,0,0,58.06,0H59L57.45,7l-.94-.18C56.54,6.42,56.55,6.17,56.56,6.1Zm18,8.49.74.13-1.78,5.83H56.87v-.77a3.31,3.31,0,0,0,1.58-.53,3.09,3.09,0,0,0,.85-1.61L63,4.17c.09-.34.16-.65.22-.93a3.35,3.35,0,0,0,.09-.71c0-.5-.14-.82-.4-1a6.34,6.34,0,0,0-1.78-.31V.48H77.26L76,6.18l-.81-.13A5.44,5.44,0,0,0,74.48,3q-1.14-1.54-4.64-1.54a2.69,2.69,0,0,0-1.54.29,2.08,2.08,0,0,0-.56,1.07L66,9.45A12.53,12.53,0,0,0,70,8.94a5.91,5.91,0,0,0,2-2.66l.84.11-2.23,8.2-.82-.15c0-.28.07-.53.08-.74a5.17,5.17,0,0,0,0-.52A2.43,2.43,0,0,0,69.1,11a6.87,6.87,0,0,0-3.44-.58l-2,7.32a3.61,3.61,0,0,0-.11.51,2.31,2.31,0,0,0,0,.4.83.83,0,0,0,.32.67,2.32,2.32,0,0,0,1.35.26,12.58,12.58,0,0,0,4.65-.76A8.91,8.91,0,0,0,74.52,14.59Zm31-11.45-11.31,18h-1L91,5.83A16.56,16.56,0,0,0,90.12,2c-.2-.34-.71-.56-1.51-.67a3,3,0,0,0-1.31.48,3.08,3.08,0,0,0-.82,1.62l-3.7,13.47-.24,1c0,.1,0,.2-.05.3s0,.2,0,.28c0,.51.14.83.41,1a6.21,6.21,0,0,0,1.77.32v.77H75.72v-.77a3.31,3.31,0,0,0,1.58-.53,3.09,3.09,0,0,0,.85-1.61L81.83,4.17c.11-.38.19-.7.25-.95a3.75,3.75,0,0,0,.08-.69c0-.5-.15-.82-.43-1A6.49,6.49,0,0,0,80,1.26V.48H97.22v.78a4.92,4.92,0,0,0-1.57.18,1,1,0,0,0-.73,1.05,2.81,2.81,0,0,0,0,.29l0,.28,1.56,12,5.67-9a24.21,24.21,0,0,0,1.21-2.14,4.07,4.07,0,0,0,.54-1.68.79.79,0,0,0-.55-.82A5.69,5.69,0,0,0,102,1.26V.48h5.76v.78a3.5,3.5,0,0,0-1,.46A5.16,5.16,0,0,0,105.52,3.14Zm16.83,11.45.73.13-1.77,5.83H104.69v-.77a3.31,3.31,0,0,0,1.58-.53,3,3,0,0,0,.85-1.61l3.69-13.47c.08-.34.16-.65.22-.93a4,4,0,0,0,.08-.71c0-.5-.13-.82-.4-1a6.34,6.34,0,0,0-1.78-.31V.48h16.16l-1.28,5.7-.8-.13A5.43,5.43,0,0,0,122.3,3q-1.14-1.54-4.64-1.54a2.67,2.67,0,0,0-1.53.29,2.16,2.16,0,0,0-.57,1.07l-1.78,6.67a12.53,12.53,0,0,0,4.08-.51,5.91,5.91,0,0,0,2.06-2.66l.83.11-2.22,8.2-.82-.15c0-.28.06-.53.08-.74s0-.38,0-.52a2.45,2.45,0,0,0-.88-2.18,6.9,6.9,0,0,0-3.44-.58l-2,7.32c-.05.18-.08.35-.11.51a3.58,3.58,0,0,0,0,.4.81.81,0,0,0,.32.67,2.28,2.28,0,0,0,1.35.26,12.62,12.62,0,0,0,4.65-.76A9,9,0,0,0,122.35,14.59ZM142.94,2.75Q140.63.48,136.21.48h-8.7v.78a6.66,6.66,0,0,1,1.77.31q.42.21.42,1a2.91,2.91,0,0,1-.08.68q-.08.39-.24,1L125.7,17.62a2.93,2.93,0,0,1-1,1.75,3.54,3.54,0,0,1-1.39.41v.77h8.61a13.5,13.5,0,0,0,10-3.76,10.84,10.84,0,0,0,3.41-8A8.14,8.14,0,0,0,142.94,2.75ZM139.38,14q-2.38,5.51-7.74,5.5a2.35,2.35,0,0,1-1.29-.26,1,1,0,0,1-.36-.85,1.78,1.78,0,0,1,0-.31,2.08,2.08,0,0,1,.08-.39l4.13-15.15a1.76,1.76,0,0,1,.49-.84A2,2,0,0,1,136,1.42a4.32,4.32,0,0,1,4.07,2A7.17,7.17,0,0,1,140.83,7,17.49,17.49,0,0,1,139.38,14Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.70402, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Approved':\n {\n stampCollection = {\n iconName: 'Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M19,20.22H10.55v-.71a4.26,4.26,0,0,0,1.79-.41,1.37,1.37,0,0,0,.53-1.29c0-.22,0-.75-.16-1.58,0-.17-.11-.89-.29-2.15H6.06l-1.72,3a4,4,0,0,0-.31.66,2,2,0,0,0-.14.69c0,.41.12.67.37.78a5.42,5.42,0,0,0,1.53.3v.71H0v-.71A4,4,0,0,0,1.21,19a5.68,5.68,0,0,0,1.28-1.56L13.45.07h.76L17,17a4.35,4.35,0,0,0,.7,2.08,2.4,2.4,0,0,0,1.31.44Zm-6.83-7.31L11.13,5.73,6.76,12.91Zm7.18,6.52a3,3,0,0,0,1.33-.49,3,3,0,0,0,.84-1.59L25.19,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22,9.53,9.53,0,0,1-5.69,1.58l-.85,0-1.71-.11L26,16.6l-.25,1a1,1,0,0,0-.05.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76H19.39Zm8.52-9.66.54.06h.48a5.81,5.81,0,0,0,2.3-.36,3.47,3.47,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,8.94,8.94,0,0,0,.3-2,3.29,3.29,0,0,0-.58-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.71,2.71,0,0,0-.46,1Zm8,9.69a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59L42,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22A9.53,9.53,0,0,1,47,10.87l-.85,0-1.71-.11L42.79,16.6l-.25,1a1.45,1.45,0,0,0,0,.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76h-8.7Zm8.74-9.69.54.06h.48A5.81,5.81,0,0,0,48,9.48a3.41,3.41,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,9,9,0,0,0,.31-2,3.29,3.29,0,0,0-.59-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.88,2.88,0,0,0-.46,1Zm7.95,9.69a3.27,3.27,0,0,0,1.56-.52A3.06,3.06,0,0,0,55,17.35L58.64,4.11l.18-.71a4.72,4.72,0,0,0,.13-1c0-.47-.13-.77-.4-.9a6.74,6.74,0,0,0-1.74-.3V.48h8.11A13,13,0,0,1,69.14,1a3.7,3.7,0,0,1,2.74,3.75,4.8,4.8,0,0,1-.46,2,5,5,0,0,1-1.54,1.9,6.55,6.55,0,0,1-1.79,1,19.35,19.35,0,0,1-1.89.52c.1.3.16.49.2.57l2.27,6.66a3.49,3.49,0,0,0,1,1.7,3.08,3.08,0,0,0,1.6.41v.76H65.33l-3.19-9.76h-.83L59.57,16.6l-.25,1a1.87,1.87,0,0,0,0,.25,2.64,2.64,0,0,0,0,.28q0,.8.39,1a5.88,5.88,0,0,0,1.76.32v.76H52.62ZM63.94,9.3a3.79,3.79,0,0,0,2.11-1.13A6,6,0,0,0,67,6.55a5.84,5.84,0,0,0,.44-2.26,3.31,3.31,0,0,0-.61-2,2.47,2.47,0,0,0-2.09-.81,1.25,1.25,0,0,0-.88.26,2.34,2.34,0,0,0-.47,1.05L61.59,9.5A13.42,13.42,0,0,0,63.94,9.3ZM76.39,4.53Q80.26,0,85,0a7.34,7.34,0,0,1,5.23,1.92,6.76,6.76,0,0,1,2,5.19,13.9,13.9,0,0,1-3.62,9.07q-3.86,4.61-8.88,4.6a7.06,7.06,0,0,1-5.13-1.92,6.86,6.86,0,0,1-2-5.14A14,14,0,0,1,76.39,4.53ZM77.3,18a2.56,2.56,0,0,0,2.57,1.78A4.62,4.62,0,0,0,83,18.47,14.42,14.42,0,0,0,86,13.54a27.18,27.18,0,0,0,1.52-4.83,20.67,20.67,0,0,0,.54-4.11,4.38,4.38,0,0,0-.73-2.55A2.62,2.62,0,0,0,85,1q-3.68,0-6.19,6.54a24.29,24.29,0,0,0-1.9,8.26A5.91,5.91,0,0,0,77.3,18ZM102.23.48v.76a5.19,5.19,0,0,0-1.55.17,1,1,0,0,0-.72,1,2.46,2.46,0,0,0,0,.28L100,3l1.52,11.76L107.11,6c.44-.71.84-1.41,1.2-2.11a4.06,4.06,0,0,0,.53-1.66.79.79,0,0,0-.55-.81,6.11,6.11,0,0,0-1.35-.14V.48h5.67v.76a3.31,3.31,0,0,0-1,.45,5.33,5.33,0,0,0-1.18,1.4L99.26,20.78h-.94l-2.25-15A15.49,15.49,0,0,0,95.24,2c-.22-.39-.84-.62-1.83-.71V.48Zm7.35,19a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59l3.62-13.24c.09-.34.16-.64.22-.92a3.27,3.27,0,0,0,.09-.7c0-.5-.14-.81-.4-.94a6.13,6.13,0,0,0-1.75-.31V.48h15.89l-1.25,5.6L127.6,6a5.32,5.32,0,0,0-.7-3q-1.12-1.52-4.56-1.51a2.61,2.61,0,0,0-1.51.28,2.12,2.12,0,0,0-.56,1.06L118.52,9.3a12.1,12.1,0,0,0,4-.51,5.8,5.8,0,0,0,2-2.61l.82.1-2.19,8.07-.81-.14c0-.28.07-.52.08-.73s0-.37,0-.51a2.4,2.4,0,0,0-.87-2.15,6.76,6.76,0,0,0-3.38-.57l-1.94,7.2a3.34,3.34,0,0,0-.11.51,3.67,3.67,0,0,0,0,.39.81.81,0,0,0,.32.66,2.3,2.3,0,0,0,1.33.26,12.39,12.39,0,0,0,4.57-.75A8.84,8.84,0,0,0,127,14.35l.72.13-1.74,5.74H109.58Zm18.27,0a3.27,3.27,0,0,0,1.37-.41,2.85,2.85,0,0,0,1-1.71l3.63-13.23c.1-.38.18-.69.23-1a3,3,0,0,0,.09-.67c0-.5-.15-.81-.42-.94A6.38,6.38,0,0,0,132,1.24V.48h8.57c2.9,0,5.1.74,6.62,2.22a8,8,0,0,1,2.26,6,10.72,10.72,0,0,1-3.35,7.84,13.3,13.3,0,0,1-9.8,3.7h-8.47ZM144.4,3.39a4.23,4.23,0,0,0-4-2,2,2,0,0,0-1.29.31,1.74,1.74,0,0,0-.48.83l-4.07,14.9a3.24,3.24,0,0,0-.07.39,1.69,1.69,0,0,0,0,.3,1,1,0,0,0,.36.84,2.27,2.27,0,0,0,1.27.26q5.26,0,7.62-5.42a17.25,17.25,0,0,0,1.43-6.94A7,7,0,0,0,144.4,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 127.70402, height: 55.84601, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Confidential':\n {\n stampCollection = {\n iconName: 'Confidential',\n // eslint-disable-next-line max-len\n pathdata: 'M13.71,0,12.63,6.9,12,6.73c0-.41,0-.66,0-.73s0-.18,0-.32a6.16,6.16,0,0,0-.79-3.47,2.37,2.37,0,0,0-2-1.14c-1.64,0-3.07,1.51-4.29,4.55a22,22,0,0,0-1.64,8.29c0,2,.34,3.44,1,4.2A3,3,0,0,0,6.5,19.24a4.08,4.08,0,0,0,2.93-1.43,10.47,10.47,0,0,0,1.5-2.09l.64.65A8.84,8.84,0,0,1,9,19.72a5.24,5.24,0,0,1-3.08,1.09,5.16,5.16,0,0,1-4.21-2.08A8.68,8.68,0,0,1,0,13.16,16.5,16.5,0,0,1,2.55,3.92Q5.1,0,8.61,0a6.35,6.35,0,0,1,2.25.43,6.62,6.62,0,0,0,1.38.43.55.55,0,0,0,.5-.23A2.61,2.61,0,0,0,13.06,0ZM27.49,7.11a17.19,17.19,0,0,1-2.61,9.07q-2.77,4.61-6.39,4.6a4.42,4.42,0,0,1-3.7-1.92,8.47,8.47,0,0,1-1.43-5.14A17.31,17.31,0,0,1,16,4.53C17.88,1.51,20,0,22.25,0A4.53,4.53,0,0,1,26,1.92,8.27,8.27,0,0,1,27.49,7.11ZM24.42,4.6a5.71,5.71,0,0,0-.53-2.55A1.76,1.76,0,0,0,22.24,1q-2.65,0-4.45,6.54a31.93,31.93,0,0,0-1.37,8.26A8.15,8.15,0,0,0,16.67,18c.34,1.19,1,1.78,1.85,1.78a2.9,2.9,0,0,0,2.28-1.29,15.85,15.85,0,0,0,2.13-4.93A34.08,34.08,0,0,0,24,8.71,28.5,28.5,0,0,0,24.42,4.6ZM42.75,1.3l.3-.06V.48H38.69v.76a2.55,2.55,0,0,1,1.16.33,1.8,1.8,0,0,1,.51,1.48,10.11,10.11,0,0,1-.13,1.34c-.06.41-.14.87-.24,1.39l-1.65,8.34L33.73.48H29.45v.76a2.66,2.66,0,0,1,1,.24,1.88,1.88,0,0,1,.65,1.06l.09.3L28.81,15a20.72,20.72,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.55,2.55,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,.05-.79c.06-.43.17-1.09.34-2L31.89,4.38l5.52,16.33h.52l3-15a22.58,22.58,0,0,1,.87-3.42A1.42,1.42,0,0,1,42.75,1.3ZM55.53.48H44.23v.76a3.63,3.63,0,0,1,1.26.3c.19.13.29.42.29.9a7.08,7.08,0,0,1-.09,1c0,.2-.08.44-.13.71L43,17.34a3.47,3.47,0,0,1-.59,1.58,1.91,1.91,0,0,1-1.13.54v.76h6.29v-.76a2.13,2.13,0,0,1-1-.19A1.23,1.23,0,0,1,46,18.1c0-.1,0-.21,0-.31s0-.23.05-.35l1.4-7.21a3.15,3.15,0,0,1,2.37.64A3.21,3.21,0,0,1,50.38,13c0,.11,0,.28,0,.49s0,.46-.06.75l.58.14,1.58-8.07-.59-.1a5.79,5.79,0,0,1-1.43,2.59,6.17,6.17,0,0,1-2.77.52l1.26-6.54a2.06,2.06,0,0,1,.42-1.08,1.39,1.39,0,0,1,1-.26c1.62,0,2.7.51,3.24,1.54a7.11,7.11,0,0,1,.49,3l.57.13Zm3.69,17.71c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1L62.06,3.36a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H57.44v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1L56.16,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.3,3.3,0,0,1-1.26-.32C59.32,19,59.22,18.69,59.22,18.19Zm18-9.51a13,13,0,0,1-2.42,7.84,8.31,8.31,0,0,1-7,3.7H61.6v-.76a2,2,0,0,0,1-.41,3.14,3.14,0,0,0,.73-1.71L65.93,4.11c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.17A5.52,5.52,0,0,1,75.53,2.7,9.91,9.91,0,0,1,77.17,8.68ZM74,6.87a9.22,9.22,0,0,0-.53-3.48,2.91,2.91,0,0,0-2.87-2,1.12,1.12,0,0,0-.93.31,1.81,1.81,0,0,0-.35.83l-2.93,14.9a3,3,0,0,0-.05.39c0,.11,0,.21,0,.3a1.17,1.17,0,0,0,.25.84,1.3,1.3,0,0,0,.92.26q3.8,0,5.49-5.42A23.26,23.26,0,0,0,74,6.87Zm11.3,11.65a6.72,6.72,0,0,1-3.29.75,1.3,1.3,0,0,1-1-.26,1,1,0,0,1-.23-.66,3.28,3.28,0,0,1,0-.39,4.88,4.88,0,0,1,.08-.51l1.4-7.2a3.73,3.73,0,0,1,2.43.57A2.87,2.87,0,0,1,85.43,13c0,.14,0,.31,0,.51s0,.45-.06.73l.59.14,1.57-8.07-.59-.1a5.79,5.79,0,0,1-1.46,2.61,6.5,6.5,0,0,1-2.89.51l1.26-6.56a2.41,2.41,0,0,1,.41-1.06c.16-.19.52-.28,1.08-.28,1.65,0,2.75.5,3.29,1.51a7,7,0,0,1,.5,3l.57.13.9-5.6H79.14v.76a3.35,3.35,0,0,1,1.26.31c.19.13.29.44.29.94a5,5,0,0,1-.07.7c0,.28-.09.58-.15.92L77.86,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.13.52v.76H87.91l1.25-5.74-.52-.13A7.69,7.69,0,0,1,85.34,18.52ZM105.8,1.24V.48h-4.37v.76a2.55,2.55,0,0,1,1.16.33,1.77,1.77,0,0,1,.52,1.48A10.58,10.58,0,0,1,103,4.39c-.06.41-.13.87-.23,1.39l-1.66,8.34L96.47.48H92.19v.76a2.61,2.61,0,0,1,1,.24,1.83,1.83,0,0,1,.65,1.06l.1.3L91.55,15a19,19,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.59,2.59,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,0-.79c.06-.43.17-1.09.35-2L94.63,4.38l5.52,16.33h.53l2.95-15a22.93,22.93,0,0,1,.86-3.42,1.42,1.42,0,0,1,1-1Zm11.4,4.9L118,.48H106.28l-.82,5,.55.2a8,8,0,0,1,1.87-3.16,3.7,3.7,0,0,1,2.7-1.06l-3.12,15.85a2.94,2.94,0,0,1-.87,1.85,2.48,2.48,0,0,1-1.34.26v.76h7v-.76a4.24,4.24,0,0,1-1.43-.3c-.23-.13-.34-.45-.34-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.18-1,3-15.1a2.73,2.73,0,0,1,1.79.63c.75.7,1.13,2,1.17,3.94Zm3.57,12.05c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1,2.62-13.24a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H119v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1l-2.61,13.24a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.36,3.36,0,0,1-1.26-.32C120.87,19,120.77,18.69,120.77,18.19Zm28.86-3.71-1.24,5.74H130.3v-.71a2.48,2.48,0,0,0,1.3-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.21-2.15h-4.58l-1.24,3a5.1,5.1,0,0,0-.22.66,2.45,2.45,0,0,0-.1.69c0,.41.09.67.26.78a3.05,3.05,0,0,0,1.11.3v.71h-4.17v-.71a2.66,2.66,0,0,0,.87-.53,5.79,5.79,0,0,0,.92-1.56L132.39.07h.55L135,17a5.53,5.53,0,0,0,.5,2.08,1.67,1.67,0,0,0,1.14.46v0a1.93,1.93,0,0,0,1.12-.52,3.52,3.52,0,0,0,.6-1.6l2.61-13.23c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.73v.76a3.23,3.23,0,0,0-1.49.48,3.06,3.06,0,0,0-.64,1.64l-2.77,14.08c0,.16-.05.3-.07.44s0,.29,0,.47a.79.79,0,0,0,.31.71,1.55,1.55,0,0,0,.87.21,6.83,6.83,0,0,0,3.79-1,8.42,8.42,0,0,0,2.81-3.88ZM131.5,12.91l-.78-7.18-3.14,7.18Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 127.70402, height: 55.84601, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'NotApproved':\n case 'Not Approved':\n {\n stampCollection = {\n iconName: 'Not Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M0,19.46a1.56,1.56,0,0,0,1.16-.9A19.84,19.84,0,0,0,2.1,15L4.42,2.84l-.09-.3a1.82,1.82,0,0,0-.64-1.06,2.41,2.41,0,0,0-1-.24V.48H6.88l4.49,13.64L13,5.78c.09-.52.17-1,.22-1.39a10.11,10.11,0,0,0,.13-1.34,1.83,1.83,0,0,0-.49-1.48,2.49,2.49,0,0,0-1.13-.33V.48H16v.76l-.29.06a1.42,1.42,0,0,0-1,1,23.7,23.7,0,0,0-.84,3.42L11,20.71h-.51L5.1,4.38,3,15c-.17.87-.28,1.53-.33,2a5.32,5.32,0,0,0,0,.79,1.69,1.69,0,0,0,.54,1.44,2.48,2.48,0,0,0,1.1.32v.76H0ZM17.73,4.53C19.54,1.51,21.55,0,23.79,0a4.4,4.4,0,0,1,3.66,1.92,8.52,8.52,0,0,1,1.43,5.19,17.56,17.56,0,0,1-2.53,9.07q-2.7,4.61-6.21,4.6a4.24,4.24,0,0,1-3.6-1.92,8.6,8.6,0,0,1-1.39-5.14A17.68,17.68,0,0,1,17.73,4.53ZM18.37,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29,16.41,16.41,0,0,0,2.06-4.93,35.53,35.53,0,0,0,1.06-4.83A28.26,28.26,0,0,0,25.9,4.6a5.86,5.86,0,0,0-.52-2.55A1.7,1.7,0,0,0,23.78,1Q21.2,1,19.45,7.53a33,33,0,0,0-1.33,8.26A8.15,8.15,0,0,0,18.37,18Zm11.08,1.48a2.34,2.34,0,0,0,1.3-.26,3,3,0,0,0,.85-1.85l3-15.85A3.54,3.54,0,0,0,32,2.56a8,8,0,0,0-1.82,3.16l-.53-.2.8-5H41.81l-.74,5.66-.54-.07c0-1.92-.41-3.24-1.13-3.94a2.6,2.6,0,0,0-1.74-.63L34.79,16.6l-.17,1a2.43,2.43,0,0,0,0,.33,2.26,2.26,0,0,0,0,.26c0,.5.11.82.33.95a3.94,3.94,0,0,0,1.39.3v.76H29.45Zm26.65.76H50.18v-.71a2.28,2.28,0,0,0,1.25-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.2-2.15H47l-1.2,3c-.08.2-.15.42-.22.66a2.84,2.84,0,0,0-.09.69c0,.41.08.67.25.78a2.91,2.91,0,0,0,1.08.3v.71H42.79v-.71a2.44,2.44,0,0,0,.85-.53,5.59,5.59,0,0,0,.9-1.56L52.21.07h.53l2,16.88A5.46,5.46,0,0,0,55.2,19a1.36,1.36,0,0,0,.9.43Zm-4.76-7.31-.76-7.18-3,7.18Zm4.95,6.53a1.82,1.82,0,0,0,1-.5,3.56,3.56,0,0,0,.58-1.59L60.42,4.11c.06-.3.1-.6.15-.9a5.46,5.46,0,0,0,.06-.72c0-.52-.13-.86-.4-1a2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.26.73,1.9,2.07,1.9,4a5.81,5.81,0,0,1-1.54,4.22,5.32,5.32,0,0,1-4,1.58l-.59,0-1.2-.11L61,16.6l-.17,1a2.72,2.72,0,0,0,0,.3,2.81,2.81,0,0,0,0,.29c0,.5.09.81.28.94a3.26,3.26,0,0,0,1.23.31v.76h-6Zm6-9.67.38.06H63a3,3,0,0,0,1.62-.36,2.87,2.87,0,0,0,1-1.18,7.28,7.28,0,0,0,.6-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.44,1.44,0,0,0-1.39-.79.71.71,0,0,0-.65.28,3.7,3.7,0,0,0-.32,1Zm5.61,9.69A1.86,1.86,0,0,0,69,18.94a3.54,3.54,0,0,0,.59-1.59L72.15,4.11q.09-.45.15-.9a5.73,5.73,0,0,0,.07-.72,1.1,1.1,0,0,0-.41-1,2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.27.73,1.9,2.07,1.9,4a5.77,5.77,0,0,1-1.54,4.22,5.31,5.31,0,0,1-4,1.58l-.6,0-1.2-.11L72.74,16.6l-.17,1a2.72,2.72,0,0,0,0,.3c0,.1,0,.19,0,.29,0,.5.1.81.29.94a3.15,3.15,0,0,0,1.23.31v.76h-6.1Zm6.12-9.69.38.06h.33a3,3,0,0,0,1.62-.36,3,3,0,0,0,1-1.18,7.67,7.67,0,0,0,.59-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.43,1.43,0,0,0-1.38-.79.73.73,0,0,0-.66.28,3.7,3.7,0,0,0-.32,1Zm5.57,9.69a1.9,1.9,0,0,0,1.09-.52,3.56,3.56,0,0,0,.58-1.59L83.84,4.11c0-.27.09-.51.13-.71a7.08,7.08,0,0,0,.09-1c0-.47-.1-.77-.28-.9a3.53,3.53,0,0,0-1.22-.3V.48h5.68a6.57,6.57,0,0,1,3,.53q1.92,1,1.92,3.75a6.79,6.79,0,0,1-.32,2,5.23,5.23,0,0,1-1.08,1.9,4.56,4.56,0,0,1-1.25,1,11.62,11.62,0,0,1-1.33.52c.07.3.12.49.14.57l1.59,6.66a4.07,4.07,0,0,0,.69,1.7,1.72,1.72,0,0,0,1.13.41v.76H88.52l-2.23-9.76h-.58L84.49,16.6l-.17,1a1,1,0,0,0,0,.25,2.62,2.62,0,0,0,0,.28c0,.53.09.86.26,1a3.11,3.11,0,0,0,1.24.32v.76H79.63ZM87.55,9.3A2.59,2.59,0,0,0,89,8.17a7.24,7.24,0,0,0,.66-1.62A8.18,8.18,0,0,0,90,4.29a4.32,4.32,0,0,0-.43-2,1.5,1.5,0,0,0-1.45-.81.71.71,0,0,0-.62.26,2.78,2.78,0,0,0-.33,1.05L85.91,9.5A6.63,6.63,0,0,0,87.55,9.3Zm8.72-4.77Q99,0,102.32,0A4.37,4.37,0,0,1,106,1.92a8.46,8.46,0,0,1,1.44,5.19,17.58,17.58,0,0,1-2.54,9.07q-2.7,4.61-6.21,4.6a4.27,4.27,0,0,1-3.6-1.92,8.67,8.67,0,0,1-1.38-5.14A17.68,17.68,0,0,1,96.27,4.53ZM96.9,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29A16.63,16.63,0,0,0,103,13.54a37.1,37.1,0,0,0,1.06-4.83,29.49,29.49,0,0,0,.38-4.11,5.86,5.86,0,0,0-.51-2.55A1.71,1.71,0,0,0,102.31,1C100.6,1,99.15,3.17,98,7.53a33.42,33.42,0,0,0-1.33,8.26A8.57,8.57,0,0,0,96.9,18ZM114.35.48v.76a2.57,2.57,0,0,0-1.08.17,1.07,1.07,0,0,0-.5,1,2.53,2.53,0,0,0,0,.28,2.64,2.64,0,0,0,0,.28l1.07,11.76L117.77,6c.31-.71.59-1.41.84-2.11A5.25,5.25,0,0,0,119,2.19a.85.85,0,0,0-.38-.81,3.09,3.09,0,0,0-.95-.14V.48h4v.76a2.08,2.08,0,0,0-.73.45,5.35,5.35,0,0,0-.82,1.4l-7.79,17.69h-.66L110,5.74A22,22,0,0,0,109.46,2c-.16-.39-.58-.62-1.28-.71V.48Zm5.15,19a1.83,1.83,0,0,0,1.08-.52,3.42,3.42,0,0,0,.59-1.59l2.54-13.24c.06-.34.11-.64.15-.92a4.83,4.83,0,0,0,.06-.7c0-.5-.09-.81-.28-.94a3.14,3.14,0,0,0-1.22-.31V.48h11.12l-.87,5.6L132.11,6a7,7,0,0,0-.49-3c-.52-1-1.59-1.51-3.19-1.51-.55,0-.9.09-1.06.28A2.44,2.44,0,0,0,127,2.74L125.76,9.3a6.21,6.21,0,0,0,2.81-.51A6,6,0,0,0,130,6.18l.58.1L129,14.35l-.56-.14c0-.28,0-.52,0-.73s0-.37,0-.51a2.92,2.92,0,0,0-.61-2.15,3.55,3.55,0,0,0-2.37-.57l-1.36,7.2a4.79,4.79,0,0,0-.07.51,3.28,3.28,0,0,0,0,.39,1,1,0,0,0,.22.66,1.24,1.24,0,0,0,.93.26,6.43,6.43,0,0,0,3.21-.75,7.67,7.67,0,0,0,3.21-4.17l.5.13-1.22,5.74H119.5Zm12.79,0a1.87,1.87,0,0,0,1-.41,3.23,3.23,0,0,0,.71-1.71L136.5,4.11c.07-.38.13-.69.17-1a5.89,5.89,0,0,0,.05-.67c0-.5-.1-.81-.29-.94a3.32,3.32,0,0,0-1.22-.31V.48h6a5.35,5.35,0,0,1,4.63,2.22,10.11,10.11,0,0,1,1.58,6,13.3,13.3,0,0,1-2.34,7.84,8,8,0,0,1-6.86,3.7h-5.93ZM143.87,3.39a2.84,2.84,0,0,0-2.79-2,1.08,1.08,0,0,0-.91.31,1.93,1.93,0,0,0-.34.83L137,17.44a3.1,3.1,0,0,0-.06.39c0,.11,0,.21,0,.3a1.22,1.22,0,0,0,.24.84,1.26,1.26,0,0,0,.9.26q3.67,0,5.33-5.42a23.91,23.91,0,0,0,1-6.94A9.45,9.45,0,0,0,143.87,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 127.70402, height: 55.84601, stampFillColor: '#f6dedd', stampStrokeColor: ''\n };\n }\n break;\n }\n if (stampCollection) {\n stampCollection.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentStampAnnotation = stampCollection;\n return stampCollection;\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.retrievestampAnnotation = function (icontype) {\n if (icontype) {\n var stampCollection = void 0;\n switch (icontype.trim()) {\n // eslint-disable-next-line\n case 'Approved':\n {\n stampCollection = {\n iconName: 'Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M19,20.22H10.55v-.71a4.26,4.26,0,0,0,1.79-.41,1.37,1.37,0,0,0,.53-1.29c0-.22,0-.75-.16-1.58,0-.17-.11-.89-.29-2.15H6.06l-1.72,3a4,4,0,0,0-.31.66,2,2,0,0,0-.14.69c0,.41.12.67.37.78a5.42,5.42,0,0,0,1.53.3v.71H0v-.71A4,4,0,0,0,1.21,19a5.68,5.68,0,0,0,1.28-1.56L13.45.07h.76L17,17a4.35,4.35,0,0,0,.7,2.08,2.4,2.4,0,0,0,1.31.44Zm-6.83-7.31L11.13,5.73,6.76,12.91Zm7.18,6.52a3,3,0,0,0,1.33-.49,3,3,0,0,0,.84-1.59L25.19,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22,9.53,9.53,0,0,1-5.69,1.58l-.85,0-1.71-.11L26,16.6l-.25,1a1,1,0,0,0-.05.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76H19.39Zm8.52-9.66.54.06h.48a5.81,5.81,0,0,0,2.3-.36,3.47,3.47,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,8.94,8.94,0,0,0,.3-2,3.29,3.29,0,0,0-.58-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.71,2.71,0,0,0-.46,1Zm8,9.69a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59L42,4.11c.07-.3.14-.6.2-.9a3.14,3.14,0,0,0,.1-.72,1,1,0,0,0-.58-1,5.68,5.68,0,0,0-1.57-.23V.48h8.47a9.68,9.68,0,0,1,3.57.57,4,4,0,0,1,2.71,4,4.93,4.93,0,0,1-2.2,4.22A9.53,9.53,0,0,1,47,10.87l-.85,0-1.71-.11L42.79,16.6l-.25,1a1.45,1.45,0,0,0,0,.3,2.83,2.83,0,0,0,0,.29c0,.5.14.81.4.94a6.31,6.31,0,0,0,1.76.31v.76h-8.7Zm8.74-9.69.54.06h.48A5.81,5.81,0,0,0,48,9.48a3.41,3.41,0,0,0,1.4-1.18,6.24,6.24,0,0,0,.86-2,9,9,0,0,0,.31-2,3.29,3.29,0,0,0-.59-2,2.3,2.3,0,0,0-2-.79,1.23,1.23,0,0,0-.93.28,2.88,2.88,0,0,0-.46,1Zm7.95,9.69a3.27,3.27,0,0,0,1.56-.52A3.06,3.06,0,0,0,55,17.35L58.64,4.11l.18-.71a4.72,4.72,0,0,0,.13-1c0-.47-.13-.77-.4-.9a6.74,6.74,0,0,0-1.74-.3V.48h8.11A13,13,0,0,1,69.14,1a3.7,3.7,0,0,1,2.74,3.75,4.8,4.8,0,0,1-.46,2,5,5,0,0,1-1.54,1.9,6.55,6.55,0,0,1-1.79,1,19.35,19.35,0,0,1-1.89.52c.1.3.16.49.2.57l2.27,6.66a3.49,3.49,0,0,0,1,1.7,3.08,3.08,0,0,0,1.6.41v.76H65.33l-3.19-9.76h-.83L59.57,16.6l-.25,1a1.87,1.87,0,0,0,0,.25,2.64,2.64,0,0,0,0,.28q0,.8.39,1a5.88,5.88,0,0,0,1.76.32v.76H52.62ZM63.94,9.3a3.79,3.79,0,0,0,2.11-1.13A6,6,0,0,0,67,6.55a5.84,5.84,0,0,0,.44-2.26,3.31,3.31,0,0,0-.61-2,2.47,2.47,0,0,0-2.09-.81,1.25,1.25,0,0,0-.88.26,2.34,2.34,0,0,0-.47,1.05L61.59,9.5A13.42,13.42,0,0,0,63.94,9.3ZM76.39,4.53Q80.26,0,85,0a7.34,7.34,0,0,1,5.23,1.92,6.76,6.76,0,0,1,2,5.19,13.9,13.9,0,0,1-3.62,9.07q-3.86,4.61-8.88,4.6a7.06,7.06,0,0,1-5.13-1.92,6.86,6.86,0,0,1-2-5.14A14,14,0,0,1,76.39,4.53ZM77.3,18a2.56,2.56,0,0,0,2.57,1.78A4.62,4.62,0,0,0,83,18.47,14.42,14.42,0,0,0,86,13.54a27.18,27.18,0,0,0,1.52-4.83,20.67,20.67,0,0,0,.54-4.11,4.38,4.38,0,0,0-.73-2.55A2.62,2.62,0,0,0,85,1q-3.68,0-6.19,6.54a24.29,24.29,0,0,0-1.9,8.26A5.91,5.91,0,0,0,77.3,18ZM102.23.48v.76a5.19,5.19,0,0,0-1.55.17,1,1,0,0,0-.72,1,2.46,2.46,0,0,0,0,.28L100,3l1.52,11.76L107.11,6c.44-.71.84-1.41,1.2-2.11a4.06,4.06,0,0,0,.53-1.66.79.79,0,0,0-.55-.81,6.11,6.11,0,0,0-1.35-.14V.48h5.67v.76a3.31,3.31,0,0,0-1,.45,5.33,5.33,0,0,0-1.18,1.4L99.26,20.78h-.94l-2.25-15A15.49,15.49,0,0,0,95.24,2c-.22-.39-.84-.62-1.83-.71V.48Zm7.35,19a3.19,3.19,0,0,0,1.55-.52,3,3,0,0,0,.84-1.59l3.62-13.24c.09-.34.16-.64.22-.92a3.27,3.27,0,0,0,.09-.7c0-.5-.14-.81-.4-.94a6.13,6.13,0,0,0-1.75-.31V.48h15.89l-1.25,5.6L127.6,6a5.32,5.32,0,0,0-.7-3q-1.12-1.52-4.56-1.51a2.61,2.61,0,0,0-1.51.28,2.12,2.12,0,0,0-.56,1.06L118.52,9.3a12.1,12.1,0,0,0,4-.51,5.8,5.8,0,0,0,2-2.61l.82.1-2.19,8.07-.81-.14c0-.28.07-.52.08-.73s0-.37,0-.51a2.4,2.4,0,0,0-.87-2.15,6.76,6.76,0,0,0-3.38-.57l-1.94,7.2a3.34,3.34,0,0,0-.11.51,3.67,3.67,0,0,0,0,.39.81.81,0,0,0,.32.66,2.3,2.3,0,0,0,1.33.26,12.39,12.39,0,0,0,4.57-.75A8.84,8.84,0,0,0,127,14.35l.72.13-1.74,5.74H109.58Zm18.27,0a3.27,3.27,0,0,0,1.37-.41,2.85,2.85,0,0,0,1-1.71l3.63-13.23c.1-.38.18-.69.23-1a3,3,0,0,0,.09-.67c0-.5-.15-.81-.42-.94A6.38,6.38,0,0,0,132,1.24V.48h8.57c2.9,0,5.1.74,6.62,2.22a8,8,0,0,1,2.26,6,10.72,10.72,0,0,1-3.35,7.84,13.3,13.3,0,0,1-9.8,3.7h-8.47ZM144.4,3.39a4.23,4.23,0,0,0-4-2,2,2,0,0,0-1.29.31,1.74,1.74,0,0,0-.48.83l-4.07,14.9a3.24,3.24,0,0,0-.07.39,1.69,1.69,0,0,0,0,.3,1,1,0,0,0,.36.84,2.27,2.27,0,0,0,1.27.26q5.26,0,7.62-5.42a17.25,17.25,0,0,0,1.43-6.94A7,7,0,0,0,144.4,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 149.474, height: 20.783, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Confidential':\n {\n stampCollection = {\n iconName: 'Confidential',\n // eslint-disable-next-line max-len\n pathdata: 'M13.71,0,12.63,6.9,12,6.73c0-.41,0-.66,0-.73s0-.18,0-.32a6.16,6.16,0,0,0-.79-3.47,2.37,2.37,0,0,0-2-1.14c-1.64,0-3.07,1.51-4.29,4.55a22,22,0,0,0-1.64,8.29c0,2,.34,3.44,1,4.2A3,3,0,0,0,6.5,19.24a4.08,4.08,0,0,0,2.93-1.43,10.47,10.47,0,0,0,1.5-2.09l.64.65A8.84,8.84,0,0,1,9,19.72a5.24,5.24,0,0,1-3.08,1.09,5.16,5.16,0,0,1-4.21-2.08A8.68,8.68,0,0,1,0,13.16,16.5,16.5,0,0,1,2.55,3.92Q5.1,0,8.61,0a6.35,6.35,0,0,1,2.25.43,6.62,6.62,0,0,0,1.38.43.55.55,0,0,0,.5-.23A2.61,2.61,0,0,0,13.06,0ZM27.49,7.11a17.19,17.19,0,0,1-2.61,9.07q-2.77,4.61-6.39,4.6a4.42,4.42,0,0,1-3.7-1.92,8.47,8.47,0,0,1-1.43-5.14A17.31,17.31,0,0,1,16,4.53C17.88,1.51,20,0,22.25,0A4.53,4.53,0,0,1,26,1.92,8.27,8.27,0,0,1,27.49,7.11ZM24.42,4.6a5.71,5.71,0,0,0-.53-2.55A1.76,1.76,0,0,0,22.24,1q-2.65,0-4.45,6.54a31.93,31.93,0,0,0-1.37,8.26A8.15,8.15,0,0,0,16.67,18c.34,1.19,1,1.78,1.85,1.78a2.9,2.9,0,0,0,2.28-1.29,15.85,15.85,0,0,0,2.13-4.93A34.08,34.08,0,0,0,24,8.71,28.5,28.5,0,0,0,24.42,4.6ZM42.75,1.3l.3-.06V.48H38.69v.76a2.55,2.55,0,0,1,1.16.33,1.8,1.8,0,0,1,.51,1.48,10.11,10.11,0,0,1-.13,1.34c-.06.41-.14.87-.24,1.39l-1.65,8.34L33.73.48H29.45v.76a2.66,2.66,0,0,1,1,.24,1.88,1.88,0,0,1,.65,1.06l.09.3L28.81,15a20.72,20.72,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.55,2.55,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,.05-.79c.06-.43.17-1.09.34-2L31.89,4.38l5.52,16.33h.52l3-15a22.58,22.58,0,0,1,.87-3.42A1.42,1.42,0,0,1,42.75,1.3ZM55.53.48H44.23v.76a3.63,3.63,0,0,1,1.26.3c.19.13.29.42.29.9a7.08,7.08,0,0,1-.09,1c0,.2-.08.44-.13.71L43,17.34a3.47,3.47,0,0,1-.59,1.58,1.91,1.91,0,0,1-1.13.54v.76h6.29v-.76a2.13,2.13,0,0,1-1-.19A1.23,1.23,0,0,1,46,18.1c0-.1,0-.21,0-.31s0-.23.05-.35l1.4-7.21a3.15,3.15,0,0,1,2.37.64A3.21,3.21,0,0,1,50.38,13c0,.11,0,.28,0,.49s0,.46-.06.75l.58.14,1.58-8.07-.59-.1a5.79,5.79,0,0,1-1.43,2.59,6.17,6.17,0,0,1-2.77.52l1.26-6.54a2.06,2.06,0,0,1,.42-1.08,1.39,1.39,0,0,1,1-.26c1.62,0,2.7.51,3.24,1.54a7.11,7.11,0,0,1,.49,3l.57.13Zm3.69,17.71c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1L62.06,3.36a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H57.44v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1L56.16,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.3,3.3,0,0,1-1.26-.32C59.32,19,59.22,18.69,59.22,18.19Zm18-9.51a13,13,0,0,1-2.42,7.84,8.31,8.31,0,0,1-7,3.7H61.6v-.76a2,2,0,0,0,1-.41,3.14,3.14,0,0,0,.73-1.71L65.93,4.11c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.17A5.52,5.52,0,0,1,75.53,2.7,9.91,9.91,0,0,1,77.17,8.68ZM74,6.87a9.22,9.22,0,0,0-.53-3.48,2.91,2.91,0,0,0-2.87-2,1.12,1.12,0,0,0-.93.31,1.81,1.81,0,0,0-.35.83l-2.93,14.9a3,3,0,0,0-.05.39c0,.11,0,.21,0,.3a1.17,1.17,0,0,0,.25.84,1.3,1.3,0,0,0,.92.26q3.8,0,5.49-5.42A23.26,23.26,0,0,0,74,6.87Zm11.3,11.65a6.72,6.72,0,0,1-3.29.75,1.3,1.3,0,0,1-1-.26,1,1,0,0,1-.23-.66,3.28,3.28,0,0,1,0-.39,4.88,4.88,0,0,1,.08-.51l1.4-7.2a3.73,3.73,0,0,1,2.43.57A2.87,2.87,0,0,1,85.43,13c0,.14,0,.31,0,.51s0,.45-.06.73l.59.14,1.57-8.07-.59-.1a5.79,5.79,0,0,1-1.46,2.61,6.5,6.5,0,0,1-2.89.51l1.26-6.56a2.41,2.41,0,0,1,.41-1.06c.16-.19.52-.28,1.08-.28,1.65,0,2.75.5,3.29,1.51a7,7,0,0,1,.5,3l.57.13.9-5.6H79.14v.76a3.35,3.35,0,0,1,1.26.31c.19.13.29.44.29.94a5,5,0,0,1-.07.7c0,.28-.09.58-.15.92L77.86,17.35a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.13.52v.76H87.91l1.25-5.74-.52-.13A7.69,7.69,0,0,1,85.34,18.52ZM105.8,1.24V.48h-4.37v.76a2.55,2.55,0,0,1,1.16.33,1.77,1.77,0,0,1,.52,1.48A10.58,10.58,0,0,1,103,4.39c-.06.41-.13.87-.23,1.39l-1.66,8.34L96.47.48H92.19v.76a2.61,2.61,0,0,1,1,.24,1.83,1.83,0,0,1,.65,1.06l.1.3L91.55,15a19,19,0,0,1-1,3.61,1.61,1.61,0,0,1-1.19.9v.76h4.42v-.76a2.59,2.59,0,0,1-1.13-.32,1.67,1.67,0,0,1-.56-1.44,7.13,7.13,0,0,1,0-.79c.06-.43.17-1.09.35-2L94.63,4.38l5.52,16.33h.53l2.95-15a22.93,22.93,0,0,1,.86-3.42,1.42,1.42,0,0,1,1-1Zm11.4,4.9L118,.48H106.28l-.82,5,.55.2a8,8,0,0,1,1.87-3.16,3.7,3.7,0,0,1,2.7-1.06l-3.12,15.85a2.94,2.94,0,0,1-.87,1.85,2.48,2.48,0,0,1-1.34.26v.76h7v-.76a4.24,4.24,0,0,1-1.43-.3c-.23-.13-.34-.45-.34-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.18-1,3-15.1a2.73,2.73,0,0,1,1.79.63c.75.7,1.13,2,1.17,3.94Zm3.57,12.05c0-.08,0-.17,0-.27s0-.2,0-.3l.17-1,2.62-13.24a3.44,3.44,0,0,1,.59-1.6,2,2,0,0,1,1.12-.52V.48H119v.76a3.47,3.47,0,0,1,1.26.31c.2.13.3.44.3.94a4.25,4.25,0,0,1-.06.67c0,.26-.09.57-.17,1l-2.61,13.24a3.52,3.52,0,0,1-.6,1.59,2,2,0,0,1-1.12.52v.76h6.33v-.76a3.36,3.36,0,0,1-1.26-.32C120.87,19,120.77,18.69,120.77,18.19Zm28.86-3.71-1.24,5.74H130.3v-.71a2.48,2.48,0,0,0,1.3-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.21-2.15h-4.58l-1.24,3a5.1,5.1,0,0,0-.22.66,2.45,2.45,0,0,0-.1.69c0,.41.09.67.26.78a3.05,3.05,0,0,0,1.11.3v.71h-4.17v-.71a2.66,2.66,0,0,0,.87-.53,5.79,5.79,0,0,0,.92-1.56L132.39.07h.55L135,17a5.53,5.53,0,0,0,.5,2.08,1.67,1.67,0,0,0,1.14.46v0a1.93,1.93,0,0,0,1.12-.52,3.52,3.52,0,0,0,.6-1.6l2.61-13.23c.08-.38.13-.69.17-1a4.36,4.36,0,0,0,.06-.67c0-.5-.1-.81-.3-.94a3.47,3.47,0,0,0-1.26-.31V.48h6.73v.76a3.23,3.23,0,0,0-1.49.48,3.06,3.06,0,0,0-.64,1.64l-2.77,14.08c0,.16-.05.3-.07.44s0,.29,0,.47a.79.79,0,0,0,.31.71,1.55,1.55,0,0,0,.87.21,6.83,6.83,0,0,0,3.79-1,8.42,8.42,0,0,0,2.81-3.88ZM131.5,12.91l-.78-7.18-3.14,7.18Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 149.633, height: 20.811, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Witness':\n {\n stampCollection = {\n iconName: 'Witness',\n // eslint-disable-next-line max-len\n pathdata: 'M19.63,2.67,12.77,16.84h-.69L10.63,5.17,5.05,16.84H4.36L2.5,2.92A3.13,3.13,0,0,0,2,1.35,2.38,2.38,0,0,0,.63.91V.33H7.3V1a2.27,2.27,0,0,0-.92.17A1.11,1.11,0,0,0,5.84,2.2v.16c0,.05,0,.13,0,.22L6.81,11l3.57-7.48a.79.79,0,0,0,0-.23,2.78,2.78,0,0,0-.53-2A2.23,2.23,0,0,0,8.68.91V.33h6.45V.91A2.42,2.42,0,0,0,14,1.2c-.23.16-.34.5-.34,1,0,.11,0,.26,0,.46s.07.73.12,1.21l.8,7L18.3,3.11c.09-.19.17-.4.25-.62a2.11,2.11,0,0,0,.11-.65.73.73,0,0,0-.4-.76,2.73,2.73,0,0,0-1.1-.17V.33h4.47V.91a1.92,1.92,0,0,0-.91.3A3.66,3.66,0,0,0,19.63,2.67ZM29.76.33H22.62V1A5.07,5.07,0,0,1,24,1.2c.23.11.34.36.34.77a2.86,2.86,0,0,1-.06.54c0,.21-.11.47-.19.77L21.17,14.05a2.47,2.47,0,0,1-.68,1.29,2.62,2.62,0,0,1-1.27.42v.62h7.15v-.62A5.09,5.09,0,0,1,25,15.51c-.22-.11-.33-.37-.33-.77a2,2,0,0,1,0-.23c0-.08,0-.16,0-.24l.19-.83,3-10.77a2.5,2.5,0,0,1,.66-1.3A2.76,2.76,0,0,1,29.76,1ZM41.9,4.88l.63,0,.86-4.6H30.2l-.93,4.1.62.16A6.6,6.6,0,0,1,32,2a5.22,5.22,0,0,1,3.06-.86L31.53,14.05a2.24,2.24,0,0,1-1,1.5,3.67,3.67,0,0,1-1.51.21v.62H37v-.62a6,6,0,0,1-1.62-.24c-.26-.1-.39-.36-.39-.77,0-.07,0-.14,0-.21s0-.16.05-.27l.2-.83L38.57,1.16a3.76,3.76,0,0,1,2,.52A3.69,3.69,0,0,1,41.9,4.88ZM59.24,1,59.58,1V.33H54.65V1A3.78,3.78,0,0,1,56,1.22a1.25,1.25,0,0,1,.58,1.2,6.26,6.26,0,0,1-.15,1.09c-.07.33-.16.71-.27,1.13l-1.87,6.79L49.05.33H44.21V1a3.51,3.51,0,0,1,1.13.2,1.51,1.51,0,0,1,.74.85l.1.25L43.49,12.1A13.5,13.5,0,0,1,42.4,15a1.87,1.87,0,0,1-1.35.72v.62h5v-.62a3.62,3.62,0,0,1-1.28-.26,1.19,1.19,0,0,1-.64-1.17,3.55,3.55,0,0,1,.06-.64q.11-.53.39-1.59L47,3.5,53.2,16.78h.59L57.13,4.6a15.29,15.29,0,0,1,1-2.78A1.51,1.51,0,0,1,59.24,1Zm7.26.31a2.11,2.11,0,0,1,1.23-.23c1.87,0,3.1.41,3.71,1.23A4.39,4.39,0,0,1,72,4.78l.64.11,1-4.56H60.75V1a5,5,0,0,1,1.42.25c.22.11.32.36.32.77a2.73,2.73,0,0,1-.07.57c0,.22-.1.47-.17.74l-3,10.77a2.47,2.47,0,0,1-.68,1.29,2.62,2.62,0,0,1-1.27.42v.62h13.3l1.42-4.66-.59-.11A7.1,7.1,0,0,1,67.75,15a10,10,0,0,1-3.72.61A1.86,1.86,0,0,1,63,15.4a.67.67,0,0,1-.26-.54,2.36,2.36,0,0,1,0-.32,3.38,3.38,0,0,1,.09-.41l1.58-5.86a5.48,5.48,0,0,1,2.75.47,2,2,0,0,1,.71,1.75c0,.11,0,.25,0,.41s0,.37-.06.6l.65.11L70.2,5.05,69.54,5a4.69,4.69,0,0,1-1.65,2.12,10.06,10.06,0,0,1-3.26.41l1.42-5.33A1.75,1.75,0,0,1,66.5,1.31ZM80.88.83a2.77,2.77,0,0,1,2.46,1.26A4.36,4.36,0,0,1,84,4l.08.78.62.08,1-4.8H85a1.77,1.77,0,0,1-.38.43A1,1,0,0,1,84,.67a2.76,2.76,0,0,1-.37,0l-.41-.1-.61-.2a4.78,4.78,0,0,0-.79-.2A6.71,6.71,0,0,0,80.46,0a4.76,4.76,0,0,0-3.62,1.36,4.61,4.61,0,0,0-1.29,3.29q0,2.05,2.94,4.47t2.94,3.82a3.19,3.19,0,0,1-.79,2.14,2.8,2.8,0,0,1-2.23.92,3.43,3.43,0,0,1-1.5-.33,3.82,3.82,0,0,1-2-2.5,10.33,10.33,0,0,1-.2-1.67L74,11.45l-.87,5.38h.73a2.85,2.85,0,0,1,.38-.67A.75.75,0,0,1,74.8,16a1.12,1.12,0,0,1,.27,0l.42.15.61.22a8.62,8.62,0,0,0,1.3.35,7.53,7.53,0,0,0,1.32.12,5.48,5.48,0,0,0,4.11-1.53,4.77,4.77,0,0,0,1.49-3.43,4.59,4.59,0,0,0-.77-2.63,9.31,9.31,0,0,0-1.87-2L79.61,5.5a4.31,4.31,0,0,1-.74-.77,2.55,2.55,0,0,1-.43-1.45,2.68,2.68,0,0,1,.42-1.44A2.23,2.23,0,0,1,80.88.83Zm12.31,0a2.8,2.8,0,0,1,2.47,1.26A4.49,4.49,0,0,1,96.35,4l.08.78.62.08,1-4.8h-.71a1.62,1.62,0,0,1-.39.43,1,1,0,0,1-.64.18,2.9,2.9,0,0,1-.38,0l-.41-.1-.61-.2a4.65,4.65,0,0,0-.78-.2A6.88,6.88,0,0,0,92.77,0a4.73,4.73,0,0,0-3.61,1.36,4.57,4.57,0,0,0-1.3,3.29q0,2.05,2.94,4.47c2,1.54,3,2.81,3,3.82a3.2,3.2,0,0,1-.8,2.14,2.78,2.78,0,0,1-2.23.92,3.36,3.36,0,0,1-1.49-.33A3.68,3.68,0,0,1,88,14.73a3.76,3.76,0,0,1-.81-1.56A10.6,10.6,0,0,1,87,11.5l-.7-.05-.86,5.38h.72a2.85,2.85,0,0,1,.38-.67.78.78,0,0,1,.57-.19,1.12,1.12,0,0,1,.27,0l.42.15.61.22a8.74,8.74,0,0,0,1.31.35,7.37,7.37,0,0,0,1.32.12,5.49,5.49,0,0,0,4.11-1.53,4.81,4.81,0,0,0,1.49-3.43,4.67,4.67,0,0,0-.77-2.63A9.57,9.57,0,0,0,94,7.2L91.93,5.5a4,4,0,0,1-.74-.77,2.48,2.48,0,0,1-.43-1.45,2.68,2.68,0,0,1,.42-1.44A2.2,2.2,0,0,1,93.19.83Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 97.39, height: 16.84, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'InitialHere':\n case 'Initial Here':\n {\n stampCollection = {\n iconName: 'Initial Here',\n // eslint-disable-next-line max-len\n pathdata: 'M6.36,15.51a5.09,5.09,0,0,0,1.42.25v.62H.63v-.62a2.62,2.62,0,0,0,1.27-.42,2.47,2.47,0,0,0,.68-1.29l3-10.77c.08-.3.15-.56.19-.77A2.86,2.86,0,0,0,5.78,2c0-.41-.11-.66-.34-.77A5.07,5.07,0,0,0,4,1V.33h7.14V1a2.76,2.76,0,0,0-1.27.42,2.5,2.5,0,0,0-.66,1.3l-3,10.77-.19.83c0,.08,0,.16,0,.24a2,2,0,0,0,0,.23C6,15.14,6.14,15.4,6.36,15.51ZM27,1,27.36,1V.33H22.43V1a3.78,3.78,0,0,1,1.31.27,1.25,1.25,0,0,1,.58,1.2,6.26,6.26,0,0,1-.15,1.09c-.07.33-.16.71-.27,1.13L22,11.43,16.83.33H12V1a3.49,3.49,0,0,1,1.12.2,1.51,1.51,0,0,1,.74.85l.11.25-2.7,9.85A13,13,0,0,1,10.18,15a1.85,1.85,0,0,1-1.35.72v.62h5v-.62a3.62,3.62,0,0,1-1.28-.26,1.19,1.19,0,0,1-.63-1.17,4.72,4.72,0,0,1,.05-.64q.1-.53.39-1.59l2.39-8.6L21,16.78h.6L24.91,4.6a15.29,15.29,0,0,1,1-2.78A1.51,1.51,0,0,1,27,1ZM35.78.33H28.64V1a5.16,5.16,0,0,1,1.41.25c.23.11.34.36.34.77a2.86,2.86,0,0,1-.06.54c0,.21-.11.47-.19.77L27.19,14.05a2.47,2.47,0,0,1-.68,1.29,2.66,2.66,0,0,1-1.27.42v.62h7.15v-.62A5.09,5.09,0,0,1,31,15.51c-.22-.11-.33-.37-.33-.77a2,2,0,0,1,0-.23,2,2,0,0,1,0-.24l.19-.83,3-10.77a2.5,2.5,0,0,1,.66-1.3A2.76,2.76,0,0,1,35.78,1Zm12.76,4.6.87-4.6H36.22l-.93,4.1.62.16A6.52,6.52,0,0,1,38,2a5.21,5.21,0,0,1,3-.86L37.55,14.05a2.24,2.24,0,0,1-1,1.5,3.7,3.7,0,0,1-1.51.21v.62H43v-.62a5.79,5.79,0,0,1-1.61-.24c-.26-.1-.39-.36-.39-.77a1.48,1.48,0,0,1,0-.21,2,2,0,0,1,0-.27l.2-.83L44.58,1.16a3.77,3.77,0,0,1,2,.52,3.74,3.74,0,0,1,1.31,3.2Zm4,9.81a.93.93,0,0,1,0-.23,2,2,0,0,1,0-.24l.18-.83,3-10.77a2.42,2.42,0,0,1,.67-1.3A2.72,2.72,0,0,1,57.72,1V.33H50.57V1A5.26,5.26,0,0,1,52,1.2c.23.11.34.36.34.77a2.28,2.28,0,0,1-.07.54,7.71,7.71,0,0,1-.19.77l-3,10.77a2.4,2.4,0,0,1-.68,1.29,2.58,2.58,0,0,1-1.26.42v.62h7.14v-.62a5.07,5.07,0,0,1-1.41-.25C52.69,15.4,52.58,15.14,52.58,14.74Zm32-3.13.57.11-1.4,4.66H63.34v-.57a3.65,3.65,0,0,0,1.46-.34c.29-.16.43-.51.43-1,0-.18,0-.61-.13-1.29,0-.14-.09-.73-.23-1.75H59.69l-1.4,2.44a3.38,3.38,0,0,0-.25.54,1.64,1.64,0,0,0-.11.56q0,.5.3.63a4.41,4.41,0,0,0,1.25.25v.57H54.76v-.57a3.36,3.36,0,0,0,1-.43,4.58,4.58,0,0,0,1-1.27L65.7,0h.62l2.3,13.72a3.49,3.49,0,0,0,.56,1.7,2.34,2.34,0,0,0,1.29.37v0a2.58,2.58,0,0,0,1.26-.42,2.46,2.46,0,0,0,.68-1.3L75.35,3.28c.09-.3.16-.56.2-.77A2.86,2.86,0,0,0,75.61,2c0-.41-.11-.66-.34-.77A5.17,5.17,0,0,0,73.85,1V.33h7.61V1a4.77,4.77,0,0,0-1.69.39A2.27,2.27,0,0,0,79,2.67L75.92,14.12c0,.13,0,.25-.07.36a2.21,2.21,0,0,0,0,.39.59.59,0,0,0,.35.57,2.33,2.33,0,0,0,1,.17,10.06,10.06,0,0,0,4.28-.84A7.67,7.67,0,0,0,84.6,11.61ZM64.7,10.44,63.81,4.6l-3.55,5.84Zm38,4.32a.71.71,0,0,1,0-.16s0-.16.07-.34l.2-.83L106,2.67a2.43,2.43,0,0,1,.79-1.39A2.78,2.78,0,0,1,107.9,1V.33h-7.15V1a4.45,4.45,0,0,1,1.27.19.81.81,0,0,1,.47.83,2.73,2.73,0,0,1-.07.57c0,.22-.1.47-.17.74l-1.14,4.16h-5.7L96.7,2.67a2.27,2.27,0,0,1,.73-1.33A4.77,4.77,0,0,1,99.12,1V.33H91.51V1a5.09,5.09,0,0,1,1.42.25c.22.11.33.36.33.77a2.93,2.93,0,0,1-.08.58c-.05.24-.1.48-.17.73L90.07,14a2.73,2.73,0,0,1-.65,1.29,2.47,2.47,0,0,1-1.3.43v.62h7.15v-.62a5.13,5.13,0,0,1-1.42-.24c-.21-.1-.31-.34-.31-.72a3.11,3.11,0,0,1,0-.57c0-.16.1-.43.19-.8L95.12,8.5h5.7L99.31,14a2.21,2.21,0,0,1-.74,1.33,4.36,4.36,0,0,1-1.69.39v.62h7.63v-.62a4.72,4.72,0,0,1-1.25-.17A.8.8,0,0,1,102.73,14.76Zm13.38.24a10.07,10.07,0,0,1-3.72.61,1.86,1.86,0,0,1-1.08-.21.67.67,0,0,1-.26-.54,2.36,2.36,0,0,1,0-.32,3.38,3.38,0,0,1,.09-.41l1.58-5.86a5.51,5.51,0,0,1,2.75.47,2,2,0,0,1,.7,1.75c0,.11,0,.25,0,.41s0,.37-.07.6l.66.11,1.78-6.56L117.89,5a4.63,4.63,0,0,1-1.65,2.12A10,10,0,0,1,113,7.5l1.43-5.33a1.6,1.6,0,0,1,.45-.86,2.07,2.07,0,0,1,1.23-.23c1.86,0,3.1.41,3.71,1.23a4.32,4.32,0,0,1,.56,2.47l.65.11,1-4.56H109.1V1a5.1,5.1,0,0,1,1.43.25c.21.11.32.36.32.77a3.63,3.63,0,0,1-.07.57c0,.22-.11.47-.18.74l-2.95,10.77a2.4,2.4,0,0,1-.68,1.29,2.58,2.58,0,0,1-1.26.42v.62H119l1.42-4.66-.58-.11A7.17,7.17,0,0,1,116.11,15ZM144.36,2.17,142.93,7.5a10.13,10.13,0,0,0,3.27-.41A4.69,4.69,0,0,0,147.84,5l.67.08-1.78,6.56-.66-.11c0-.23.06-.43.07-.6s0-.3,0-.41a2,2,0,0,0-.7-1.75,5.51,5.51,0,0,0-2.75-.47l-1.58,5.86a3.38,3.38,0,0,0-.09.41,2.36,2.36,0,0,0,0,.32.67.67,0,0,0,.26.54,1.86,1.86,0,0,0,1.08.21,10.07,10.07,0,0,0,3.72-.61,7.14,7.14,0,0,0,3.73-3.39l.58.11L149,16.38H131l-2.59-7.93h-.68l-1.42,5-.2.83,0,.2a1.77,1.77,0,0,0,0,.23c0,.43.1.7.31.81a4.87,4.87,0,0,0,1.43.25v.62h-7.14v-.62a2.58,2.58,0,0,0,1.26-.42,2.4,2.4,0,0,0,.68-1.29l3-10.77.15-.57a4.09,4.09,0,0,0,.1-.79c0-.38-.11-.62-.32-.72A4.8,4.8,0,0,0,124,1V.33h6.6a10.58,10.58,0,0,1,3.42.43,3,3,0,0,1,2.24,3.05,4,4,0,0,1-.38,1.6A4,4,0,0,1,134.66,7a5.47,5.47,0,0,1-1.45.8c-.33.11-.85.25-1.54.42a4.73,4.73,0,0,0,.16.46l1.85,5.42a2.81,2.81,0,0,0,.8,1.38,2.42,2.42,0,0,0,1.23.32,2.53,2.53,0,0,0,1.22-.41,2.47,2.47,0,0,0,.68-1.29l2.94-10.77c.07-.27.13-.52.18-.74A2.73,2.73,0,0,0,140.8,2c0-.41-.11-.66-.32-.77A5.1,5.1,0,0,0,139.05,1V.33H152l-1,4.56-.65-.11a4.32,4.32,0,0,0-.56-2.47c-.61-.82-1.85-1.23-3.71-1.23a2.07,2.07,0,0,0-1.23.23A1.67,1.67,0,0,0,144.36,2.17ZM131.54,6.59a5,5,0,0,0,.77-1.32,4.68,4.68,0,0,0,.36-1.84,2.74,2.74,0,0,0-.5-1.67,2,2,0,0,0-1.7-.66,1,1,0,0,0-.72.22,2,2,0,0,0-.38.85l-1.45,5.49a10.33,10.33,0,0,0,1.91-.16A3.07,3.07,0,0,0,131.54,6.59Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 151.345, height: 16.781, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'SignHere':\n case 'Sign Here':\n {\n stampCollection = {\n iconName: 'Sign Here',\n // eslint-disable-next-line max-len\n pathdata: 'M6.38,1.9A2.56,2.56,0,0,0,6,3.34a2.49,2.49,0,0,0,.44,1.45,3.9,3.9,0,0,0,.73.76l2.07,1.7a9.34,9.34,0,0,1,1.87,2.06,4.6,4.6,0,0,1,.78,2.63,4.78,4.78,0,0,1-1.5,3.43A5.46,5.46,0,0,1,6.23,16.9a7.34,7.34,0,0,1-1.31-.12,7.48,7.48,0,0,1-1.31-.36L3,16.2l-.42-.14a1.12,1.12,0,0,0-.27,0,.71.71,0,0,0-.57.19,2.85,2.85,0,0,0-.38.67H.63l.87-5.38.69,0a10.34,10.34,0,0,0,.2,1.68,3.82,3.82,0,0,0,2,2.5,3.42,3.42,0,0,0,1.5.32,2.76,2.76,0,0,0,2.23-.92A3.14,3.14,0,0,0,8.94,13c0-1-1-2.29-2.94-3.82S3.06,6.08,3.06,4.71A4.59,4.59,0,0,1,4.35,1.42,4.76,4.76,0,0,1,8,.06,6.71,6.71,0,0,1,9.29.19a4.78,4.78,0,0,1,.79.2l.61.2.41.1a2.76,2.76,0,0,0,.37,0,1,1,0,0,0,.65-.18A1.75,1.75,0,0,0,12.5.12h.72l-1,4.8-.62-.08-.09-.79a4.45,4.45,0,0,0-.69-1.91A2.78,2.78,0,0,0,8.39.89,2.2,2.2,0,0,0,6.38,1.9ZM22.8.39H15.66V1a4.71,4.71,0,0,1,1.41.25c.23.11.34.36.34.77a2.86,2.86,0,0,1-.06.54c0,.21-.11.47-.19.77L14.21,14.11a2.47,2.47,0,0,1-.68,1.29,2.62,2.62,0,0,1-1.27.42v.62h7.15v-.62A4.63,4.63,0,0,1,18,15.56c-.22-.1-.33-.36-.33-.77a1.8,1.8,0,0,1,0-.22c0-.08,0-.16,0-.24l.19-.83,3-10.77a2.5,2.5,0,0,1,.66-1.3A2.76,2.76,0,0,1,22.8,1ZM38.09,9.14V8.52H31.18v.62a5.05,5.05,0,0,1,1.44.28c.22.1.32.35.32.75a13.35,13.35,0,0,1-.54,2.54,19.13,19.13,0,0,1-.54,1.87A1.85,1.85,0,0,1,31,15.66a3.77,3.77,0,0,1-1.78.35A3.71,3.71,0,0,1,27,15.38c-1.09-.77-1.64-2.13-1.64-4.08a13.74,13.74,0,0,1,1.78-6.69q2.05-3.72,5-3.72a2.93,2.93,0,0,1,3,1.86,6.09,6.09,0,0,1,.4,2.48l.69.08L37.44,0h-.71a2.44,2.44,0,0,1-.41.53.82.82,0,0,1-.58.2A9.14,9.14,0,0,1,34.33.36,9.23,9.23,0,0,0,31.73,0a9.4,9.4,0,0,0-7.46,3.42,10.46,10.46,0,0,0-2.65,7,5.88,5.88,0,0,0,2.2,4.83,7.77,7.77,0,0,0,5,1.64A13.06,13.06,0,0,0,32,16.52a14.26,14.26,0,0,0,2.33-.75l.67-.3,1.2-4.36a4.15,4.15,0,0,1,.62-1.59A2.28,2.28,0,0,1,38.09,9.14ZM50.36,1a3.36,3.36,0,0,1,1.31.27,1.25,1.25,0,0,1,.58,1.2,6.26,6.26,0,0,1-.15,1.09c-.07.33-.16.7-.27,1.13L50,11.48,44.76.39H39.93V1a3.49,3.49,0,0,1,1.12.2,1.51,1.51,0,0,1,.74.85l.1.25L39.2,12.16a12.62,12.62,0,0,1-1.09,2.93,1.86,1.86,0,0,1-1.35.73v.62h5v-.62a3.62,3.62,0,0,1-1.28-.26,1.21,1.21,0,0,1-.63-1.17,4.72,4.72,0,0,1,0-.64q.1-.52.39-1.59l2.39-8.6,6.23,13.28h.6L52.84,4.66a15.29,15.29,0,0,1,1-2.78A1.52,1.52,0,0,1,55,1.05l.34,0V.39H50.36Zm22.33,13.8a.66.66,0,0,1,0-.15c0-.05,0-.16.07-.34l.2-.83L75.91,2.73a2.43,2.43,0,0,1,.79-1.39A2.78,2.78,0,0,1,77.86,1V.39H70.71V1A4.45,4.45,0,0,1,72,1.2a.81.81,0,0,1,.47.83,2.73,2.73,0,0,1-.07.57c0,.22-.1.47-.17.74L71.07,7.5h-5.7l1.29-4.77a2.27,2.27,0,0,1,.73-1.33A4.36,4.36,0,0,1,69.08,1V.39H61.47V1a4.73,4.73,0,0,1,1.42.25c.22.11.33.36.33.77a2.93,2.93,0,0,1-.08.58c0,.24-.1.48-.17.73L60,14.1a2.73,2.73,0,0,1-.65,1.29,2.47,2.47,0,0,1-1.3.43v.62h7.15v-.62a5.13,5.13,0,0,1-1.42-.24c-.21-.1-.31-.34-.31-.72a3,3,0,0,1,0-.57c0-.16.1-.43.19-.8l1.35-4.94h5.7L69.27,14.1a2.21,2.21,0,0,1-.74,1.33,4.77,4.77,0,0,1-1.69.39v.62h7.63v-.62a4.72,4.72,0,0,1-1.25-.17A.82.82,0,0,1,72.69,14.81Zm13.38.25a10.28,10.28,0,0,1-3.72.61,1.86,1.86,0,0,1-1.08-.21.67.67,0,0,1-.26-.54,2.23,2.23,0,0,1,0-.32,3.38,3.38,0,0,1,.09-.41l1.58-5.86a5.51,5.51,0,0,1,2.75.47,2,2,0,0,1,.7,1.75c0,.11,0,.24,0,.41s0,.37-.07.59l.66.12,1.78-6.56L87.85,5a4.75,4.75,0,0,1-1.64,2.12,10.13,10.13,0,0,1-3.27.41l1.43-5.33a1.56,1.56,0,0,1,.45-.86,2.07,2.07,0,0,1,1.23-.23c1.86,0,3.1.41,3.71,1.23a4.32,4.32,0,0,1,.56,2.47L91,5,92,.39H79.06V1a4.75,4.75,0,0,1,1.43.25c.21.11.32.36.32.77a2.73,2.73,0,0,1-.07.57c0,.22-.11.47-.18.74l-3,10.77a2.4,2.4,0,0,1-.68,1.29,2.58,2.58,0,0,1-1.26.42v.62H89l1.41-4.66-.58-.11A7.22,7.22,0,0,1,86.07,15.06ZM114.32,2.23l-1.43,5.33a10.13,10.13,0,0,0,3.27-.41A4.75,4.75,0,0,0,117.8,5l.67.08-1.78,6.56-.66-.12c0-.22.06-.42.07-.59s0-.3,0-.41a2,2,0,0,0-.71-1.75,5.51,5.51,0,0,0-2.75-.47l-1.58,5.86a3.38,3.38,0,0,0-.09.41,2.23,2.23,0,0,0,0,.32.67.67,0,0,0,.26.54,1.86,1.86,0,0,0,1.08.21,10.28,10.28,0,0,0,3.72-.61,7.22,7.22,0,0,0,3.73-3.39l.58.11-1.41,4.66h-18L98.33,8.51h-.68l-1.42,5-.2.83,0,.2a1.77,1.77,0,0,0,0,.23c0,.43.1.7.31.8a4.51,4.51,0,0,0,1.43.26v.62H90.59v-.62a2.58,2.58,0,0,0,1.26-.42,2.4,2.4,0,0,0,.68-1.29l3-10.77.15-.57a4.09,4.09,0,0,0,.1-.79c0-.38-.11-.62-.32-.73A5.3,5.3,0,0,0,94,1V.39h6.6A10.58,10.58,0,0,1,104,.82a3,3,0,0,1,2.24,3.05,4,4,0,0,1-.38,1.6A4.06,4.06,0,0,1,104.62,7a5.32,5.32,0,0,1-1.45.8c-.33.11-.84.25-1.54.42.08.24.13.4.16.46l1.85,5.42a2.81,2.81,0,0,0,.8,1.38,2.42,2.42,0,0,0,1.23.32,2.64,2.64,0,0,0,1.22-.41,2.47,2.47,0,0,0,.68-1.29l2.94-10.77c.07-.27.13-.52.18-.74a2.73,2.73,0,0,0,.07-.57c0-.41-.11-.66-.32-.77A4.75,4.75,0,0,0,109,1V.39h12.93l-1,4.56-.64-.11a4.39,4.39,0,0,0-.57-2.47c-.61-.82-1.85-1.23-3.71-1.23a2.07,2.07,0,0,0-1.23.23A1.7,1.7,0,0,0,114.32,2.23ZM101.5,6.64a4.76,4.76,0,0,0,.77-1.31,4.68,4.68,0,0,0,.36-1.84,2.72,2.72,0,0,0-.5-1.67,2,2,0,0,0-1.7-.66.94.94,0,0,0-.71.22,1.81,1.81,0,0,0-.39.85L97.88,7.72a10.33,10.33,0,0,0,1.91-.16A3,3,0,0,0,101.5,6.64Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 121.306, height: 16.899, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Accepted':\n {\n stampCollection = {\n iconName: 'Accepted',\n // eslint-disable-next-line max-len\n pathdata: 'M22.409294,0.00021190348 C22.64747,0.0056831966 22.875833,0.11701412 23.023336,0.32638185 23.631345,1.1873664 25.36437,2.8183636 27.4584,4.1123583 28.000408,4.4483535 28.015407,5.227338 27.477398,5.5713293 23.803344,7.9272954 12.881201,15.464245 9.4751583,23.800168 9.2091556,24.452168 8.3321453,24.542164 7.9521352,23.95016 6.0691143,21.014182 1.8990528,14.526234 0.095028103,11.832258 -0.13796928,11.485277 0.081027784,11.023275 0.49603404,10.97927 1.9670546,10.824272 4.8490969,10.421291,6.5811144,9.5293013 6.9811216,9.3233086 7.4691268,9.5782811 7.5601316,10.019287 7.847138,11.400286 8.4021459,13.83224 8.952148,14.781236 8.952148,14.781236 16.385246,3.2303471 21.985326,0.10638282 22.119951,0.031756414 22.266389,-0.003070501 22.409294,0.00021190348 z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 27.873, height: 24.346, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Rejected':\n {\n stampCollection = {\n iconName: 'Rejected',\n // eslint-disable-next-line max-len\n pathdata: 'M3.8779989,0 L11.294,7.4140023 18.710001,0 22.588001,3.8779911 15.172998,11.293032 22.588001,18.707033 18.710001,22.586 11.294,15.169985 3.8779989,22.586 0,18.707033 7.4150017,11.293032 0,3.8779911 z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 22.588, height: 22.586, stampFillColor: '#f6dedd', stampStrokeColor: '',\n };\n }\n break;\n case 'Rejected_with_border':\n {\n stampCollection = {\n iconName: 'Rejected_with_border',\n // eslint-disable-next-line max-len\n pathdata: 'M3.8779989,0 L11.294,7.4140023 18.710001,0 22.588001,3.8779911 15.172998,11.293032 22.588001,18.707033 18.710001,22.586 11.294,15.169985 3.8779989,22.586 0,18.707033 7.4150017,11.293032 0,3.8779911 z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 22.588, height: 24.346, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'NotApproved':\n case 'Not Approved':\n {\n stampCollection = {\n iconName: 'Not Approved',\n // eslint-disable-next-line max-len\n pathdata: 'M0,19.46a1.56,1.56,0,0,0,1.16-.9A19.84,19.84,0,0,0,2.1,15L4.42,2.84l-.09-.3a1.82,1.82,0,0,0-.64-1.06,2.41,2.41,0,0,0-1-.24V.48H6.88l4.49,13.64L13,5.78c.09-.52.17-1,.22-1.39a10.11,10.11,0,0,0,.13-1.34,1.83,1.83,0,0,0-.49-1.48,2.49,2.49,0,0,0-1.13-.33V.48H16v.76l-.29.06a1.42,1.42,0,0,0-1,1,23.7,23.7,0,0,0-.84,3.42L11,20.71h-.51L5.1,4.38,3,15c-.17.87-.28,1.53-.33,2a5.32,5.32,0,0,0,0,.79,1.69,1.69,0,0,0,.54,1.44,2.48,2.48,0,0,0,1.1.32v.76H0ZM17.73,4.53C19.54,1.51,21.55,0,23.79,0a4.4,4.4,0,0,1,3.66,1.92,8.52,8.52,0,0,1,1.43,5.19,17.56,17.56,0,0,1-2.53,9.07q-2.7,4.61-6.21,4.6a4.24,4.24,0,0,1-3.6-1.92,8.6,8.6,0,0,1-1.39-5.14A17.68,17.68,0,0,1,17.73,4.53ZM18.37,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29,16.41,16.41,0,0,0,2.06-4.93,35.53,35.53,0,0,0,1.06-4.83A28.26,28.26,0,0,0,25.9,4.6a5.86,5.86,0,0,0-.52-2.55A1.7,1.7,0,0,0,23.78,1Q21.2,1,19.45,7.53a33,33,0,0,0-1.33,8.26A8.15,8.15,0,0,0,18.37,18Zm11.08,1.48a2.34,2.34,0,0,0,1.3-.26,3,3,0,0,0,.85-1.85l3-15.85A3.54,3.54,0,0,0,32,2.56a8,8,0,0,0-1.82,3.16l-.53-.2.8-5H41.81l-.74,5.66-.54-.07c0-1.92-.41-3.24-1.13-3.94a2.6,2.6,0,0,0-1.74-.63L34.79,16.6l-.17,1a2.43,2.43,0,0,0,0,.33,2.26,2.26,0,0,0,0,.26c0,.5.11.82.33.95a3.94,3.94,0,0,0,1.39.3v.76H29.45Zm26.65.76H50.18v-.71a2.28,2.28,0,0,0,1.25-.41,1.64,1.64,0,0,0,.37-1.29c0-.22,0-.75-.11-1.58,0-.17-.08-.89-.2-2.15H47l-1.2,3c-.08.2-.15.42-.22.66a2.84,2.84,0,0,0-.09.69c0,.41.08.67.25.78a2.91,2.91,0,0,0,1.08.3v.71H42.79v-.71a2.44,2.44,0,0,0,.85-.53,5.59,5.59,0,0,0,.9-1.56L52.21.07h.53l2,16.88A5.46,5.46,0,0,0,55.2,19a1.36,1.36,0,0,0,.9.43Zm-4.76-7.31-.76-7.18-3,7.18Zm4.95,6.53a1.82,1.82,0,0,0,1-.5,3.56,3.56,0,0,0,.58-1.59L60.42,4.11c.06-.3.1-.6.15-.9a5.46,5.46,0,0,0,.06-.72c0-.52-.13-.86-.4-1a2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.26.73,1.9,2.07,1.9,4a5.81,5.81,0,0,1-1.54,4.22,5.32,5.32,0,0,1-4,1.58l-.59,0-1.2-.11L61,16.6l-.17,1a2.72,2.72,0,0,0,0,.3,2.81,2.81,0,0,0,0,.29c0,.5.09.81.28.94a3.26,3.26,0,0,0,1.23.31v.76h-6Zm6-9.67.38.06H63a3,3,0,0,0,1.62-.36,2.87,2.87,0,0,0,1-1.18,7.28,7.28,0,0,0,.6-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.44,1.44,0,0,0-1.39-.79.71.71,0,0,0-.65.28,3.7,3.7,0,0,0-.32,1Zm5.61,9.69A1.86,1.86,0,0,0,69,18.94a3.54,3.54,0,0,0,.59-1.59L72.15,4.11q.09-.45.15-.9a5.73,5.73,0,0,0,.07-.72,1.1,1.1,0,0,0-.41-1,2.88,2.88,0,0,0-1.1-.23V.48h5.93a5,5,0,0,1,2.5.57c1.27.73,1.9,2.07,1.9,4a5.77,5.77,0,0,1-1.54,4.22,5.31,5.31,0,0,1-4,1.58l-.6,0-1.2-.11L72.74,16.6l-.17,1a2.72,2.72,0,0,0,0,.3c0,.1,0,.19,0,.29,0,.5.1.81.29.94a3.15,3.15,0,0,0,1.23.31v.76h-6.1Zm6.12-9.69.38.06h.33a3,3,0,0,0,1.62-.36,3,3,0,0,0,1-1.18,7.67,7.67,0,0,0,.59-2,11.67,11.67,0,0,0,.22-2,4.4,4.4,0,0,0-.41-2,1.43,1.43,0,0,0-1.38-.79.73.73,0,0,0-.66.28,3.7,3.7,0,0,0-.32,1Zm5.57,9.69a1.9,1.9,0,0,0,1.09-.52,3.56,3.56,0,0,0,.58-1.59L83.84,4.11c0-.27.09-.51.13-.71a7.08,7.08,0,0,0,.09-1c0-.47-.1-.77-.28-.9a3.53,3.53,0,0,0-1.22-.3V.48h5.68a6.57,6.57,0,0,1,3,.53q1.92,1,1.92,3.75a6.79,6.79,0,0,1-.32,2,5.23,5.23,0,0,1-1.08,1.9,4.56,4.56,0,0,1-1.25,1,11.62,11.62,0,0,1-1.33.52c.07.3.12.49.14.57l1.59,6.66a4.07,4.07,0,0,0,.69,1.7,1.72,1.72,0,0,0,1.13.41v.76H88.52l-2.23-9.76h-.58L84.49,16.6l-.17,1a1,1,0,0,0,0,.25,2.62,2.62,0,0,0,0,.28c0,.53.09.86.26,1a3.11,3.11,0,0,0,1.24.32v.76H79.63ZM87.55,9.3A2.59,2.59,0,0,0,89,8.17a7.24,7.24,0,0,0,.66-1.62A8.18,8.18,0,0,0,90,4.29a4.32,4.32,0,0,0-.43-2,1.5,1.5,0,0,0-1.45-.81.71.71,0,0,0-.62.26,2.78,2.78,0,0,0-.33,1.05L85.91,9.5A6.63,6.63,0,0,0,87.55,9.3Zm8.72-4.77Q99,0,102.32,0A4.37,4.37,0,0,1,106,1.92a8.46,8.46,0,0,1,1.44,5.19,17.58,17.58,0,0,1-2.54,9.07q-2.7,4.61-6.21,4.6a4.27,4.27,0,0,1-3.6-1.92,8.67,8.67,0,0,1-1.38-5.14A17.68,17.68,0,0,1,96.27,4.53ZM96.9,18c.33,1.19.93,1.78,1.8,1.78a2.83,2.83,0,0,0,2.22-1.29A16.63,16.63,0,0,0,103,13.54a37.1,37.1,0,0,0,1.06-4.83,29.49,29.49,0,0,0,.38-4.11,5.86,5.86,0,0,0-.51-2.55A1.71,1.71,0,0,0,102.31,1C100.6,1,99.15,3.17,98,7.53a33.42,33.42,0,0,0-1.33,8.26A8.57,8.57,0,0,0,96.9,18ZM114.35.48v.76a2.57,2.57,0,0,0-1.08.17,1.07,1.07,0,0,0-.5,1,2.53,2.53,0,0,0,0,.28,2.64,2.64,0,0,0,0,.28l1.07,11.76L117.77,6c.31-.71.59-1.41.84-2.11A5.25,5.25,0,0,0,119,2.19a.85.85,0,0,0-.38-.81,3.09,3.09,0,0,0-.95-.14V.48h4v.76a2.08,2.08,0,0,0-.73.45,5.35,5.35,0,0,0-.82,1.4l-7.79,17.69h-.66L110,5.74A22,22,0,0,0,109.46,2c-.16-.39-.58-.62-1.28-.71V.48Zm5.15,19a1.83,1.83,0,0,0,1.08-.52,3.42,3.42,0,0,0,.59-1.59l2.54-13.24c.06-.34.11-.64.15-.92a4.83,4.83,0,0,0,.06-.7c0-.5-.09-.81-.28-.94a3.14,3.14,0,0,0-1.22-.31V.48h11.12l-.87,5.6L132.11,6a7,7,0,0,0-.49-3c-.52-1-1.59-1.51-3.19-1.51-.55,0-.9.09-1.06.28A2.44,2.44,0,0,0,127,2.74L125.76,9.3a6.21,6.21,0,0,0,2.81-.51A6,6,0,0,0,130,6.18l.58.1L129,14.35l-.56-.14c0-.28,0-.52,0-.73s0-.37,0-.51a2.92,2.92,0,0,0-.61-2.15,3.55,3.55,0,0,0-2.37-.57l-1.36,7.2a4.79,4.79,0,0,0-.07.51,3.28,3.28,0,0,0,0,.39,1,1,0,0,0,.22.66,1.24,1.24,0,0,0,.93.26,6.43,6.43,0,0,0,3.21-.75,7.67,7.67,0,0,0,3.21-4.17l.5.13-1.22,5.74H119.5Zm12.79,0a1.87,1.87,0,0,0,1-.41,3.23,3.23,0,0,0,.71-1.71L136.5,4.11c.07-.38.13-.69.17-1a5.89,5.89,0,0,0,.05-.67c0-.5-.1-.81-.29-.94a3.32,3.32,0,0,0-1.22-.31V.48h6a5.35,5.35,0,0,1,4.63,2.22,10.11,10.11,0,0,1,1.58,6,13.3,13.3,0,0,1-2.34,7.84,8,8,0,0,1-6.86,3.7h-5.93ZM143.87,3.39a2.84,2.84,0,0,0-2.79-2,1.08,1.08,0,0,0-.91.31,1.93,1.93,0,0,0-.34.83L137,17.44a3.1,3.1,0,0,0-.06.39c0,.11,0,.21,0,.3a1.22,1.22,0,0,0,.24.84,1.26,1.26,0,0,0,.9.26q3.67,0,5.33-5.42a23.91,23.91,0,0,0,1-6.94A9.45,9.45,0,0,0,143.87,3.39Z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 147.425, height: 20.783, stampFillColor: '#f6dedd', stampStrokeColor: ''\n };\n }\n break;\n case 'Draft':\n {\n stampCollection = {\n iconName: 'Draft',\n // eslint-disable-next-line max-len\n pathdata: 'M24.92,3Q22,.46,16.4.46h-11v.87a9.38,9.38,0,0,1,2.24.35q.54.23.54,1.08a3.24,3.24,0,0,1-.1.76c-.07.29-.17.65-.31,1.08L3.08,19.69a3.26,3.26,0,0,1-1.32,1.95A4.67,4.67,0,0,1,0,22.1V23H10.91q7.8,0,12.61-4.22a11.56,11.56,0,0,0,4.32-8.94A8.58,8.58,0,0,0,24.92,3ZM20.41,15.66a10.18,10.18,0,0,1-9.8,6.18A3.18,3.18,0,0,1,9,21.54a1,1,0,0,1-.46-.95,2.47,2.47,0,0,1,0-.35,3,3,0,0,1,.1-.44l5.24-17a1.91,1.91,0,0,1,.62-.95,2.81,2.81,0,0,1,1.66-.35c2.44,0,4.15.76,5.15,2.27a7.29,7.29,0,0,1,.94,4A17.63,17.63,0,0,1,20.41,15.66ZM49.75,9.74a5.84,5.84,0,0,0,2-2.16,5.1,5.1,0,0,0,.59-2.24c0-2.1-1.18-3.53-3.54-4.27A18.67,18.67,0,0,0,43.36.46H32.92v.87a8.79,8.79,0,0,1,2.24.35c.35.14.52.48.52,1a5.36,5.36,0,0,1-.17,1.11c-.06.23-.14.5-.23.8L30.61,19.7a3.26,3.26,0,0,1-1.08,1.81,4.44,4.44,0,0,1-2,.59V23H38.85V22.1a8.54,8.54,0,0,1-2.28-.36c-.32-.15-.49-.53-.49-1.13,0-.11,0-.21,0-.32a1.15,1.15,0,0,1,.06-.28l.31-1.16,2.25-7h1.07L43.89,23h7.64V22.1a4.27,4.27,0,0,1-2.07-.47,3.91,3.91,0,0,1-1.27-1.93l-2.92-7.6a4.67,4.67,0,0,1-.25-.65c1.1-.23,1.91-.42,2.43-.59A8.49,8.49,0,0,0,49.75,9.74ZM46,7.39a6.73,6.73,0,0,1-1.21,1.84,5,5,0,0,1-2.72,1.29,19.56,19.56,0,0,1-3,.23L41.38,3A2.54,2.54,0,0,1,42,1.85a1.76,1.76,0,0,1,1.14-.31,3.38,3.38,0,0,1,2.69.93,3.52,3.52,0,0,1,.79,2.34A5.94,5.94,0,0,1,46,7.39Zm27.9,11.85L70.29,0h-1L55.21,19.78a6.61,6.61,0,0,1-1.66,1.78,5.3,5.3,0,0,1-1.55.6V23h7.45v-.81a8,8,0,0,1-2-.34.85.85,0,0,1-.47-.89,2,2,0,0,1,.17-.79,5.32,5.32,0,0,1,.4-.75L59.8,16H68c.22,1.44.35,2.25.37,2.45a16,16,0,0,1,.2,1.81,1.51,1.51,0,0,1-.67,1.47,6.38,6.38,0,0,1-2.31.46V23H77.1v-.81a4.28,4.28,0,0,1-2.28-.55A4.47,4.47,0,0,1,73.93,19.24ZM60.7,14.64l5.62-8.19,1.4,8.19ZM84,.46h20.2l-1.61,6.39-1-.15a5.61,5.61,0,0,0-.88-3.43Q99.2,1.52,94.86,1.51a3.56,3.56,0,0,0-1.76.3A2.05,2.05,0,0,0,92.34,3L90.1,10.5A16.53,16.53,0,0,0,95,9.91c.77-.33,1.62-1.32,2.56-3l1.06.12-2.82,9.2-1-.17c0-.33.08-.61.1-.85s0-.43,0-.56a2.76,2.76,0,0,0-1-2.38c-.66-.49-2.07-.73-4.23-.73l-2.5,8.22a3.56,3.56,0,0,0-.09.39,1.55,1.55,0,0,0,0,.37,1.32,1.32,0,0,0,1,1.33,5.52,5.52,0,0,0,1.78.21V23H78.58V22.1a4.35,4.35,0,0,0,2-.61,3.33,3.33,0,0,0,1.06-1.8L86.32,4.6c.09-.31.16-.58.23-.81a5.05,5.05,0,0,0,.16-1.1c0-.53-.17-.87-.52-1A8.7,8.7,0,0,0,84,1.33Zm24.1,0h20.89l-1.37,6.46-1-.08c-.07-2.2-.76-3.69-2.09-4.49a6.61,6.61,0,0,0-3.2-.72L116,18.84,115.7,20a2.63,2.63,0,0,0-.07.38,1.51,1.51,0,0,0,0,.3c0,.57.2.94.61,1.08a11.19,11.19,0,0,0,2.56.34V23H106.2V22.1a6.49,6.49,0,0,0,2.4-.3,3.19,3.19,0,0,0,1.56-2.1l5.58-18.07a9.07,9.07,0,0,0-4.83,1.2,9.52,9.52,0,0,0-3.34,3.61l-1-.23Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 128.941, height: 22.97, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Final':\n {\n stampCollection = {\n iconName: 'Final',\n // eslint-disable-next-line max-len\n pathdata: 'M24.94,6l-1.06-.13a4.37,4.37,0,0,0-.91-3q-1.51-1.54-6-1.54a4.28,4.28,0,0,0-1.83.26,1.8,1.8,0,0,0-.78,1.08L12,9.21a20.26,20.26,0,0,0,5.15-.52A6.49,6.49,0,0,0,19.8,6.1l1.1.1L18,14.27l-1.09-.15a6.34,6.34,0,0,0,.11-.74c0-.22,0-.38,0-.5a2.26,2.26,0,0,0-1-2.09c-.68-.42-2.15-.63-4.39-.63L9,17.37a3.09,3.09,0,0,0-.1.34,1.22,1.22,0,0,0,0,.32,1.18,1.18,0,0,0,1,1.17,7,7,0,0,0,1.86.18v.77H0v-.77a5.14,5.14,0,0,0,2.11-.53,3,3,0,0,0,1.1-1.58L8.06,4c.09-.27.17-.5.23-.7a3.74,3.74,0,0,0,.18-1,.83.83,0,0,0-.55-.89,10.94,10.94,0,0,0-2.33-.3V.4h21Zm8.54,12.11a1.49,1.49,0,0,1,0-.28,2.46,2.46,0,0,1,.07-.29l.3-1L38.76,3.29a2.93,2.93,0,0,1,1.09-1.6A5.42,5.42,0,0,1,42,1.17V.4H30.17v.77a10.52,10.52,0,0,1,2.34.31.88.88,0,0,1,.56.94,2.58,2.58,0,0,1-.11.67c-.07.26-.18.57-.32,1L27.79,17.28a2.94,2.94,0,0,1-1.12,1.59,5.28,5.28,0,0,1-2.09.51v.77H36.36v-.77A10.22,10.22,0,0,1,34,19.07.89.89,0,0,1,33.48,18.12ZM66.19,2.24a2.53,2.53,0,0,1,1.87-1l.56-.06V.4H60.5v.77a8,8,0,0,1,2.16.33,1.47,1.47,0,0,1,1,1.48,5.61,5.61,0,0,1-.25,1.34c-.11.4-.25.87-.43,1.38l-3.08,8.35L51.26.4h-8v.77a8.44,8.44,0,0,1,1.86.24,2.26,2.26,0,0,1,1.22,1.05l.17.31L42.11,14.88a13.74,13.74,0,0,1-1.8,3.61,3.36,3.36,0,0,1-2.22.89v.77h8.23v-.77a7.75,7.75,0,0,1-2.1-.31,1.45,1.45,0,0,1-1-1.44,3.56,3.56,0,0,1,.1-.79,16.15,16.15,0,0,1,.64-2L47.85,4.31,58.11,20.64h1l5.5-15A15.48,15.48,0,0,1,66.19,2.24Zm23,17.13v.78H78.08v-.71A7.47,7.47,0,0,0,80.49,19a1.25,1.25,0,0,0,.7-1.29A13.26,13.26,0,0,0,81,16.16c0-.18-.16-.89-.39-2.15H72.06l-2.3,3a3.7,3.7,0,0,0-.42.66,1.54,1.54,0,0,0-.18.69.74.74,0,0,0,.49.78,10.28,10.28,0,0,0,2.06.3v.71H63.94v-.71a6.43,6.43,0,0,0,1.63-.53,6.63,6.63,0,0,0,1.72-1.56L82,0h1l3.78,16.88A3.69,3.69,0,0,0,87.7,19,3.53,3.53,0,0,0,89.24,19.37Zm-8.93-6.53L78.86,5.65,73,12.84Zm32.8,1.44a11.51,11.51,0,0,1-5.23,3.88,21.36,21.36,0,0,1-7,1A4.88,4.88,0,0,1,99.22,19a.74.74,0,0,1-.58-.71,2.33,2.33,0,0,1,0-.48c0-.13.08-.28.13-.43L104,3.29a2.72,2.72,0,0,1,1.19-1.64,9.4,9.4,0,0,1,2.79-.48V.4H95.4v.77a10.42,10.42,0,0,1,2.34.31.88.88,0,0,1,.56.94,2.58,2.58,0,0,1-.11.67c-.07.25-.17.57-.31.94L93,17.27a2.92,2.92,0,0,1-1.12,1.6,4.59,4.59,0,0,1-1.71.47v.81h21.55l2.32-5.74Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 114.058, height: 20.639, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'Completed':\n {\n stampCollection = {\n iconName: 'Completed',\n // eslint-disable-next-line max-len\n pathdata: 'M16.37,0,15.08,6.9l-.79-.17c0-.41,0-.66,0-.73a2.73,2.73,0,0,0,0-.32,5.33,5.33,0,0,0-.94-3.47A3,3,0,0,0,11,1.07c-2,0-3.68,1.51-5.13,4.55a18.84,18.84,0,0,0-2,8.29q0,3.06,1.2,4.2a3.82,3.82,0,0,0,2.64,1.13,5.3,5.3,0,0,0,3.51-1.43,10.75,10.75,0,0,0,1.78-2.09l.77.65a9.32,9.32,0,0,1-3.12,3.35A7,7,0,0,1,7,20.81a6.66,6.66,0,0,1-5-2.08,7.72,7.72,0,0,1-2-5.57A14.57,14.57,0,0,1,3.05,3.92Q6.1,0,10.29,0A8.92,8.92,0,0,1,13,.43a9.09,9.09,0,0,0,1.65.43.72.72,0,0,0,.6-.23A2.55,2.55,0,0,0,15.6,0ZM32.83,7.11a15.24,15.24,0,0,1-3.11,9.07q-3.31,4.61-7.63,4.6a5.63,5.63,0,0,1-4.42-1.92A7.47,7.47,0,0,1,16,13.72a15.27,15.27,0,0,1,3.18-9.19Q22.46,0,26.57,0a5.82,5.82,0,0,1,4.5,1.92A7.35,7.35,0,0,1,32.83,7.11ZM29.16,4.6a4.92,4.92,0,0,0-.63-2.55,2.14,2.14,0,0,0-2-1.06Q23.4,1,21.24,7.53a27.45,27.45,0,0,0-1.63,8.26A6.68,6.68,0,0,0,19.92,18a2.24,2.24,0,0,0,2.2,1.78,3.71,3.71,0,0,0,2.73-1.29,15,15,0,0,0,2.54-4.93,30.56,30.56,0,0,0,1.3-4.83A23,23,0,0,0,29.16,4.6Zm21.2,13.62a3.83,3.83,0,0,1,.08-.75,8.6,8.6,0,0,1,.19-.88L53.75,3.31a3,3,0,0,1,.85-1.67,2.72,2.72,0,0,1,1.21-.4V.48H50.42L42.66,14.39,41.21.48h-5.8v.76a4.65,4.65,0,0,1,1.45.21c.26.11.38.37.38.78a4.57,4.57,0,0,1-.08.75c-.06.28-.13.61-.23,1L34.34,15a16.85,16.85,0,0,1-1.16,3.65,1.9,1.9,0,0,1-1.42.86v.76h5.3v-.76a3.22,3.22,0,0,1-1.32-.29A1.48,1.48,0,0,1,35,17.74a8.32,8.32,0,0,1,.17-1.42c.07-.37.17-.82.3-1.37L38.06,4.23l1.71,16.38h.71L50,3.76l-3.2,13.58A2.84,2.84,0,0,1,46,19a4.06,4.06,0,0,1-1.76.49v.76h7.93v-.76a4.79,4.79,0,0,1-1.49-.31Q50.36,19,50.36,18.22ZM67.69,9.29a7.39,7.39,0,0,1-4.89,1.58l-.73,0-1.48-.11L59.21,16.6l-.21,1a1,1,0,0,0,0,.3,2.83,2.83,0,0,0,0,.29c0,.5.12.81.35.94a4.74,4.74,0,0,0,1.51.31v.76H53.31v-.76a2.52,2.52,0,0,0,1.33-.52,3.18,3.18,0,0,0,.72-1.59L58.48,4.11q.1-.45.18-.9a4.48,4.48,0,0,0,.08-.72,1,1,0,0,0-.49-1,4.36,4.36,0,0,0-1.36-.23V.48h7.29a7.29,7.29,0,0,1,3.07.57,4,4,0,0,1,2.33,4A5.22,5.22,0,0,1,67.69,9.29Zm-1.8-5a3.65,3.65,0,0,0-.51-2,1.85,1.85,0,0,0-1.7-.79,1,1,0,0,0-.8.28,3.27,3.27,0,0,0-.4,1l-1.66,7,.47.06h.41a4.37,4.37,0,0,0,2-.36,3.14,3.14,0,0,0,1.2-1.18,6.51,6.51,0,0,0,.74-2A9.87,9.87,0,0,0,65.89,4.25Zm16.9,10.1a8.71,8.71,0,0,1-3.35,3.88,9.36,9.36,0,0,1-4.53,1,2.15,2.15,0,0,1-1-.21.75.75,0,0,1-.37-.71,3.18,3.18,0,0,1,0-.47c0-.14,0-.28.08-.44l3.3-14.08a2.94,2.94,0,0,1,.77-1.64,4.47,4.47,0,0,1,1.79-.48V.48h-8v.76a4.8,4.8,0,0,1,1.5.31c.23.13.35.44.35.94a4.36,4.36,0,0,1-.06.67c0,.26-.12.57-.21,1L69.9,17.34a3.18,3.18,0,0,1-.72,1.6,2.53,2.53,0,0,1-1.34.52v.76H81.91l1.49-5.74ZM85.73,1.24a4.59,4.59,0,0,1,1.5.31c.23.13.34.44.34.94a3.84,3.84,0,0,1-.07.7c0,.28-.11.58-.19.92L84.2,17.35a3.18,3.18,0,0,1-.72,1.59,2.27,2.27,0,0,1-1.06.47h-.07v.8H96.2l1.5-5.74-.62-.13a8.14,8.14,0,0,1-3.94,4.17,9.39,9.39,0,0,1-3.94.75A1.75,1.75,0,0,1,88.06,19a.87.87,0,0,1-.27-.66,3.28,3.28,0,0,1,0-.39,5,5,0,0,1,.09-.51l1.67-7.2a5.16,5.16,0,0,1,2.91.57A2.58,2.58,0,0,1,93.24,13c0,.14,0,.31,0,.51s0,.45-.07.73l.7.14,1.88-8.07L95,6.18a5.62,5.62,0,0,1-1.74,2.61,9.05,9.05,0,0,1-3.45.51l1.51-6.56a2.23,2.23,0,0,1,.47-1.06,2,2,0,0,1,1.3-.28c2,0,3.29.5,3.93,1.51a6.13,6.13,0,0,1,.6,3l.68.13L99.4.48H85.73ZM114,6.14l.92-5.66h-14l-1,5,.66.2a7.81,7.81,0,0,1,2.23-3.16,4.91,4.91,0,0,1,3.23-1.06l-3.73,15.85a2.84,2.84,0,0,1-1,1.85,3.48,3.48,0,0,1-1.6.26v.76h8.4v-.76a5.82,5.82,0,0,1-1.71-.3c-.27-.13-.41-.45-.41-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.21-1,3.53-15.1a3.65,3.65,0,0,1,2.14.63c.89.7,1.35,2,1.39,3.94Zm9.44,12.38a9.39,9.39,0,0,1-3.94.75,1.77,1.77,0,0,1-1.14-.26.87.87,0,0,1-.27-.66,3.28,3.28,0,0,1,0-.39,5,5,0,0,1,.09-.51l1.67-7.2a5.12,5.12,0,0,1,2.91.57,2.58,2.58,0,0,1,.75,2.15c0,.14,0,.31,0,.51s0,.45-.07.73l.7.14L126,6.28l-.7-.1a5.78,5.78,0,0,1-1.74,2.61,9.16,9.16,0,0,1-3.46.51l1.51-6.56a2.14,2.14,0,0,1,.48-1.06,2,2,0,0,1,1.3-.28c2,0,3.28.5,3.92,1.51a6,6,0,0,1,.6,3l.68.13,1.08-5.6H116v.76a4.67,4.67,0,0,1,1.51.31c.22.13.34.44.34.94a4,4,0,0,1-.08.7c0,.28-.11.58-.18.92l-3.12,13.24a3.18,3.18,0,0,1-.72,1.59,2.56,2.56,0,0,1-1.34.52v.76h14.06l1.5-5.74-.62-.13A8.14,8.14,0,0,1,123.39,18.52Zm23.32-9.84a11.62,11.62,0,0,1-2.89,7.84,10.6,10.6,0,0,1-8.42,3.7h-7.29v-.76a2.58,2.58,0,0,0,1.18-.41,2.94,2.94,0,0,0,.88-1.71l3.11-13.23c.09-.38.16-.69.21-1a4.49,4.49,0,0,0,.07-.67c0-.5-.12-.81-.36-.94a4.8,4.8,0,0,0-1.5-.31V.48h7.36a7.16,7.16,0,0,1,5.69,2.22A8.72,8.72,0,0,1,146.71,8.68ZM143,6.87a8,8,0,0,0-.64-3.48,3.52,3.52,0,0,0-3.44-2,1.52,1.52,0,0,0-1.11.31,1.75,1.75,0,0,0-.41.83l-3.5,14.9c0,.14,0,.27-.07.39s0,.21,0,.3a1.06,1.06,0,0,0,.3.84,1.75,1.75,0,0,0,1.1.26q4.53,0,6.55-5.42A19.84,19.84,0,0,0,143,6.87Z',\n opacity: 1, strokeColor: '', fillColor: '#516c30', width: 146.706, height: 20.811, stampFillColor: '#e6eddf', stampStrokeColor: '',\n };\n }\n break;\n case 'ForPublicRelease':\n case 'For Public Release':\n {\n stampCollection = {\n iconName: 'For Public Release',\n // eslint-disable-next-line max-len\n pathdata: 'M10.33.48l-.65,5.6L9.27,6a9.74,9.74,0,0,0-.36-3A2.27,2.27,0,0,0,6.57,1.4a.85.85,0,0,0-.71.26,2.67,2.67,0,0,0-.3,1.08L4.65,9.28a3.45,3.45,0,0,0,2-.52,6.65,6.65,0,0,0,1-2.59l.43.1L7,14.34l-.42-.14c0-.29,0-.54,0-.75s0-.38,0-.49a4.17,4.17,0,0,0-.39-2.09,1.91,1.91,0,0,0-1.71-.64l-1,7.21c0,.13,0,.24,0,.35s0,.21,0,.31a1.45,1.45,0,0,0,.38,1.17,1.17,1.17,0,0,0,.72.19v.76H0v-.76a1.31,1.31,0,0,0,.82-.54,4.39,4.39,0,0,0,.42-1.58L3.13,4.11c0-.27.06-.51.09-.71,0-.41.07-.73.07-1a1.34,1.34,0,0,0-.21-.9,2.13,2.13,0,0,0-.91-.3V.48ZM20.5,7.11a22.43,22.43,0,0,1-1.88,9.07q-2,4.61-4.62,4.6a3,3,0,0,1-2.67-1.92,10.91,10.91,0,0,1-1-5.14,22.46,22.46,0,0,1,1.92-9.19Q14.23,0,16.71,0a3.11,3.11,0,0,1,2.72,1.92A10.72,10.72,0,0,1,20.5,7.11ZM18.28,4.6a7.7,7.7,0,0,0-.38-2.55c-.26-.7-.65-1-1.19-1-1.28,0-2.35,2.17-3.22,6.53a43.69,43.69,0,0,0-1,8.26,10.72,10.72,0,0,0,.19,2.2c.24,1.18.69,1.77,1.33,1.77s1.16-.43,1.65-1.29a19.35,19.35,0,0,0,1.54-4.93A48.7,48.7,0,0,0,18,8.71,38.21,38.21,0,0,0,18.28,4.6Zm11.59.16a8.73,8.73,0,0,1-.24,2,5.64,5.64,0,0,1-.8,1.9,3.49,3.49,0,0,1-.93,1,7.31,7.31,0,0,1-1,.52c0,.3.08.49.1.57l1.18,6.66a4.54,4.54,0,0,0,.52,1.7,1.1,1.1,0,0,0,.83.41v.76H26.46l-1.65-9.76h-.43l-.91,6.14-.13,1a2,2,0,0,0,0,.25,2.62,2.62,0,0,0,0,.28,1.57,1.57,0,0,0,.2,1,1.77,1.77,0,0,0,.92.32v.76H19.86v-.76a1.33,1.33,0,0,0,.81-.52,4.35,4.35,0,0,0,.43-1.59L23,4.11c0-.27.07-.51.09-.71a8.23,8.23,0,0,0,.07-1,1.3,1.3,0,0,0-.21-.9,2.08,2.08,0,0,0-.91-.3V.48h4.22A3.79,3.79,0,0,1,28.44,1C29.4,1.66,29.87,2.91,29.87,4.76Zm-2.31-.47a5.77,5.77,0,0,0-.32-2,1.12,1.12,0,0,0-1.09-.81.5.5,0,0,0-.46.26,3.87,3.87,0,0,0-.24,1.05L24.52,9.5a3.73,3.73,0,0,0,1.22-.2,2.1,2.1,0,0,0,1.1-1.13,8.41,8.41,0,0,0,.49-1.62A10.75,10.75,0,0,0,27.56,4.29Zm14.92.78a7.06,7.06,0,0,1-1.14,4.22,3.5,3.5,0,0,1-3,1.58l-.44,0-.89-.11-.84,5.86-.12,1a1.45,1.45,0,0,0,0,.3,2.81,2.81,0,0,0,0,.29,1.38,1.38,0,0,0,.21.94,1.93,1.93,0,0,0,.91.31v.76H32.65v-.76a1.28,1.28,0,0,0,.8-.52,4.3,4.3,0,0,0,.44-1.59L35.77,4.11c0-.3.08-.6.11-.9a5.21,5.21,0,0,0,0-.72,1.29,1.29,0,0,0-.3-1,1.82,1.82,0,0,0-.81-.23V.48h4.4a3,3,0,0,1,1.86.57C42,1.78,42.48,3.12,42.48,5.07Zm-2.23-.82a5.74,5.74,0,0,0-.3-2,1.07,1.07,0,0,0-1-.79.5.5,0,0,0-.49.28,5.11,5.11,0,0,0-.24,1l-1,7,.28.06h.25a1.79,1.79,0,0,0,1.2-.36,2.88,2.88,0,0,0,.73-1.18,10.56,10.56,0,0,0,.44-2A15.74,15.74,0,0,0,40.25,4.25Zm12.91-3V.48H50v.76a1.46,1.46,0,0,1,.82.32A2,2,0,0,1,51.24,3a15,15,0,0,1-.14,1.57q0-.17-.15,1.17l-.89,6.16a29.63,29.63,0,0,1-1,4.77c-.55,1.63-1.31,2.44-2.28,2.44a1.59,1.59,0,0,1-1.38-.77,4.16,4.16,0,0,1-.5-2.23q0-.63.15-2c.06-.5.15-1.14.27-1.93l1.26-8.84a4.13,4.13,0,0,1,.46-1.66,1.66,1.66,0,0,1,1-.46V.48H43.34v.76a2,2,0,0,1,.9.3,1.3,1.3,0,0,1,.21.9,7.27,7.27,0,0,1,0,.75c0,.29-.07.59-.11.92l-1,7.24c-.16,1.14-.27,1.93-.32,2.38a19.16,19.16,0,0,0-.12,2,6.13,6.13,0,0,0,1,3.71,2.93,2.93,0,0,0,2.43,1.33c1.39,0,2.45-.9,3.17-2.69a29.58,29.58,0,0,0,1.23-5.61l1-6.74A24.45,24.45,0,0,1,52.3,2.1,1.22,1.22,0,0,1,53.16,1.24Zm7.14,9.82a5.87,5.87,0,0,1,.68,3,8.55,8.55,0,0,1-1,4.27,3.68,3.68,0,0,1-3.48,1.84H51.82v-.76a1.3,1.3,0,0,0,.72-.4,3.94,3.94,0,0,0,.52-1.71L55,4.1c0-.39.09-.72.12-1s0-.46,0-.6c0-.53-.07-.86-.23-1A1.64,1.64,0,0,0,54,1.24V.48h4.17a3.4,3.4,0,0,1,2.67,1,4.91,4.91,0,0,1,1,3.38,5.33,5.33,0,0,1-1.17,3.61,4.8,4.8,0,0,1-1.68,1.22A4.84,4.84,0,0,1,60.3,11.06Zm-1.66,2.45a3.81,3.81,0,0,0-.73-2.74,2.63,2.63,0,0,0-1.58-.52l-1,7.2a4,4,0,0,0-.05.4c0,.15,0,.32,0,.51a.9.9,0,0,0,.33.82,1.13,1.13,0,0,0,.59.12c1,0,1.67-.87,2.1-2.59A13.54,13.54,0,0,0,58.64,13.51Zm.12-5.29A5.92,5.92,0,0,0,59.4,6.1a12.74,12.74,0,0,0,.13-1.74,6.54,6.54,0,0,0-.29-2.11,1.11,1.11,0,0,0-1.13-.81.49.49,0,0,0-.49.32,3.52,3.52,0,0,0-.23,1l-.94,6.62A7.45,7.45,0,0,0,58,9,1.8,1.8,0,0,0,58.76,8.22Zm11.71,6.14a8.78,8.78,0,0,1-2,3.87,4,4,0,0,1-2.74,1,.89.89,0,0,1-.63-.21.93.93,0,0,1-.22-.7,3.4,3.4,0,0,1,0-.48c0-.14,0-.28,0-.44l2-14.08a3.8,3.8,0,0,1,.47-1.64,1.94,1.94,0,0,1,1.08-.48V.48H63.6v.76a2,2,0,0,1,.91.31,1.36,1.36,0,0,1,.22.94c0,.2,0,.42,0,.67s-.07.57-.13,1L62.68,17.34a4.31,4.31,0,0,1-.44,1.6,1.28,1.28,0,0,1-.8.52v.76h8.5l.9-5.74ZM76.89.48H72.32v.76a1.92,1.92,0,0,1,.9.31c.15.13.22.44.22.94a5.56,5.56,0,0,1,0,.67c0,.26-.07.57-.12,1L71.39,17.35A4.35,4.35,0,0,1,71,18.94a1.33,1.33,0,0,1-.81.52v.76h4.57v-.76a1.81,1.81,0,0,1-.91-.32,1.39,1.39,0,0,1-.21-.94c0-.09,0-.18,0-.28l0-.3.12-1L75.65,3.36a4.43,4.43,0,0,1,.43-1.6,1.3,1.3,0,0,1,.81-.52Zm8.46.15A.38.38,0,0,1,85,.87a4.12,4.12,0,0,1-1-.44A3.51,3.51,0,0,0,82.37,0Q79.84,0,78,3.92a21.42,21.42,0,0,0-1.84,9.24,11.15,11.15,0,0,0,1.2,5.57,3.51,3.51,0,0,0,3.05,2.08,3.15,3.15,0,0,0,2.21-1.09,8.92,8.92,0,0,0,1.89-3.35L84,15.72A11.08,11.08,0,0,1,83,17.81a2.71,2.71,0,0,1-2.12,1.43,2,2,0,0,1-1.59-1.13,8.33,8.33,0,0,1-.74-4.2A29.46,29.46,0,0,1,79.7,5.62Q81,1.08,82.8,1.07c.59,0,1.07.38,1.45,1.14a8,8,0,0,1,.57,3.47,2.73,2.73,0,0,1,0,.32c0,.08,0,.32,0,.73l.48.17L86.05,0h-.47A2.93,2.93,0,0,1,85.35.63Zm21.41,13.73.37.12-.9,5.74H94.72l-1.66-9.76h-.43l-.91,6.14-.13,1c0,.08,0,.16,0,.25s0,.19,0,.28a1.57,1.57,0,0,0,.2,1,1.81,1.81,0,0,0,.92.32v.76H88.11v-.76a1.3,1.3,0,0,0,.81-.52,4.35,4.35,0,0,0,.43-1.59L91.24,4.11c0-.27.07-.51.09-.71a8.23,8.23,0,0,0,.07-1,1.3,1.3,0,0,0-.21-.9,2.08,2.08,0,0,0-.91-.3V.48h4.23A3.81,3.81,0,0,1,96.7,1c1,.65,1.43,1.9,1.43,3.75a8.73,8.73,0,0,1-.24,2,5.66,5.66,0,0,1-.81,1.9,3.49,3.49,0,0,1-.93,1,6.73,6.73,0,0,1-1,.52c0,.3.09.49.1.57l1.18,6.66a4.74,4.74,0,0,0,.52,1.7,1,1,0,0,0,.78.39,1.23,1.23,0,0,0,.78-.5A4.3,4.3,0,0,0,99,17.35l1.88-13.24c.05-.34.09-.64.12-.92a6.28,6.28,0,0,0,0-.7,1.45,1.45,0,0,0-.2-.94,2,2,0,0,0-.91-.31V.48h8.26l-.65,5.6L107.1,6a9.57,9.57,0,0,0-.36-3,2.3,2.3,0,0,0-2.38-1.51c-.41,0-.67.09-.78.28a2.87,2.87,0,0,0-.29,1.06l-.91,6.56a3.57,3.57,0,0,0,2.08-.51,6.59,6.59,0,0,0,1.06-2.61l.42.1-1.14,8.08-.42-.15c0-.28,0-.52.05-.73s0-.37,0-.51a3.6,3.6,0,0,0-.46-2.15,2.14,2.14,0,0,0-1.75-.57l-1,7.2a4.7,4.7,0,0,0-.06.51c0,.16,0,.29,0,.39a1.12,1.12,0,0,0,.17.66.77.77,0,0,0,.69.26,3.77,3.77,0,0,0,2.37-.75A7.71,7.71,0,0,0,106.76,14.36ZM95.09,8.17a7.75,7.75,0,0,0,.49-1.62,10.75,10.75,0,0,0,.23-2.26,5.77,5.77,0,0,0-.32-2,1.11,1.11,0,0,0-1.08-.81.48.48,0,0,0-.46.26,3.44,3.44,0,0,0-.25,1.05L92.78,9.5A3.78,3.78,0,0,0,94,9.3,2.08,2.08,0,0,0,95.09,8.17Zm21.32,6.19a8.67,8.67,0,0,1-2,3.87,4,4,0,0,1-2.73,1,.89.89,0,0,1-.63-.21.93.93,0,0,1-.23-.7c0-.19,0-.35,0-.48s0-.28,0-.44l2-14.08a3.84,3.84,0,0,1,.46-1.64,2,2,0,0,1,1.08-.48V.48h-4.86v.76a2,2,0,0,1,.91.31,1.38,1.38,0,0,1,.21.94,5.56,5.56,0,0,1,0,.67c0,.26-.07.57-.12,1l-1.89,13.23a4.16,4.16,0,0,1-.43,1.6,1.27,1.27,0,0,1-.81.52v.76h8.51l.9-5.74Zm8.64,0a7.71,7.71,0,0,1-2.38,4.16,3.82,3.82,0,0,1-2.38.75.77.77,0,0,1-.69-.26,1.2,1.2,0,0,1-.17-.66c0-.1,0-.23,0-.39a4.7,4.7,0,0,1,.06-.51l1-7.2a2.17,2.17,0,0,1,1.76.57,3.69,3.69,0,0,1,.45,2.15c0,.14,0,.31,0,.51s0,.45,0,.73l.42.15,1.13-8.08-.42-.1a6.79,6.79,0,0,1-1,2.61,3.63,3.63,0,0,1-2.09.51l.91-6.56a2.87,2.87,0,0,1,.29-1.06c.12-.19.38-.28.78-.28A2.3,2.3,0,0,1,125,2.91a9.57,9.57,0,0,1,.36,3l.41.13.65-5.6h-8.26v.76a1.93,1.93,0,0,1,.91.31,1.45,1.45,0,0,1,.2.94,6.28,6.28,0,0,1,0,.7c0,.28-.07.58-.11.92l-1.89,13.24a4.35,4.35,0,0,1-.43,1.59,1.33,1.33,0,0,1-.81.52v.76h8.5l.91-5.74Zm10.29,5.15v.71h-4.65v-.71a1.44,1.44,0,0,0,.93-.41,2.08,2.08,0,0,0,.27-1.29c0-.22,0-.75-.08-1.58,0-.17-.06-.89-.15-2.15h-3.31l-.89,3a5.32,5.32,0,0,0-.16.66,3.4,3.4,0,0,0-.08.69,1.06,1.06,0,0,0,.2.78,1.68,1.68,0,0,0,.79.3v.71h-3v-.71a1.8,1.8,0,0,0,.63-.53,6.45,6.45,0,0,0,.67-1.56L132.19.07h.4L134.06,17a7.15,7.15,0,0,0,.36,2.08A1.13,1.13,0,0,0,135.34,19.51Zm-3.79-6.6L131,5.73l-2.27,7.18Zm9.6-4-1.32-2.09a4.57,4.57,0,0,1-.47-.94,5.12,5.12,0,0,1-.28-1.78,5.57,5.57,0,0,1,.27-1.77c.27-.83.7-1.24,1.29-1.24s1.21.51,1.57,1.54A8.78,8.78,0,0,1,142.65,5l.06,1,.39.1.63-5.91h-.46a2.09,2.09,0,0,1-.25.54.46.46,0,0,1-.41.21.57.57,0,0,1-.24-.05,1.23,1.23,0,0,1-.26-.12l-.39-.24a2.34,2.34,0,0,0-.5-.25,2.41,2.41,0,0,0-.85-.16,2.55,2.55,0,0,0-2.31,1.67,9.11,9.11,0,0,0-.83,4.05,10.47,10.47,0,0,0,1.88,5.5A9.21,9.21,0,0,1,141,16a6.49,6.49,0,0,1-.5,2.63,1.59,1.59,0,0,1-1.43,1.14,1.42,1.42,0,0,1-1-.4,3.55,3.55,0,0,1-.78-1.16,7.09,7.09,0,0,1-.52-1.92c-.05-.43-.1-1.12-.13-2.06l-.44-.06-.55,6.62h.46a4.11,4.11,0,0,1,.25-.82.36.36,0,0,1,.36-.23.47.47,0,0,1,.17,0,2.38,2.38,0,0,1,.27.18l.39.27a3.52,3.52,0,0,0,.84.43,2.48,2.48,0,0,0,.84.15,2.91,2.91,0,0,0,2.63-1.88,9.24,9.24,0,0,0,1-4.21,9.85,9.85,0,0,0-.49-3.24A12.1,12.1,0,0,0,141.15,8.92Zm7.75-7.24c.12-.19.38-.28.78-.28a2.3,2.3,0,0,1,2.38,1.51,9.57,9.57,0,0,1,.36,3l.41.13.65-5.6h-8.26v.76a1.93,1.93,0,0,1,.91.31c.14.13.2.44.2.94a6.28,6.28,0,0,1,0,.7c0,.28-.07.58-.11.92l-1.89,13.24a4.35,4.35,0,0,1-.43,1.59,1.33,1.33,0,0,1-.81.52v.76h8.5l.91-5.74-.38-.12a7.71,7.71,0,0,1-2.38,4.16,3.82,3.82,0,0,1-2.38.75.77.77,0,0,1-.69-.26,1.2,1.2,0,0,1-.17-.66c0-.1,0-.23,0-.39a4.7,4.7,0,0,1,.06-.51l1-7.2a2.17,2.17,0,0,1,1.76.57,3.69,3.69,0,0,1,.45,2.15c0,.14,0,.31,0,.51s0,.45,0,.73l.42.15,1.14-8.08-.43-.1a6.79,6.79,0,0,1-1.05,2.61,3.63,3.63,0,0,1-2.09.51l.91-6.56A2.87,2.87,0,0,1,148.9,1.68Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 153.485, height: 20.812, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'NotForPublicRelease':\n case 'Not For Public Release':\n {\n stampCollection = {\n iconName: 'Not For Public Release',\n // eslint-disable-next-line max-len\n pathdata: 'M9,2.35q-.21.9-.51,3.48L6.69,21.05H6.38L3.11,4.45,1.85,15.19c-.1.89-.17,1.56-.2,2s0,.55,0,.81A2.39,2.39,0,0,0,2,19.45a1.09,1.09,0,0,0,.67.33v.77H0v-.77a1.22,1.22,0,0,0,.71-.91,33.91,33.91,0,0,0,.57-3.68L2.7,2.88l-.06-.3a2.09,2.09,0,0,0-.39-1.07,1,1,0,0,0-.59-.25V.48H4.2L6.93,14.36l1-8.49c.06-.53.11-1,.14-1.4.06-.63.08-1.08.08-1.37a2.67,2.67,0,0,0-.3-1.5,1.07,1.07,0,0,0-.69-.34V.48H9.73v.78l-.18.06C9.29,1.41,9.09,1.75,9,2.35ZM16.74,2a13.19,13.19,0,0,1,.87,5.28,27.45,27.45,0,0,1-1.54,9.22q-1.65,4.66-3.79,4.67-1.35,0-2.19-1.95a13.31,13.31,0,0,1-.85-5.23A27.59,27.59,0,0,1,10.82,4.6C11.91,1.53,13.15,0,14.51,0,15.41,0,16.16.65,16.74,2Zm-.95,2.73a9.33,9.33,0,0,0-.31-2.59c-.21-.72-.54-1.08-1-1.08-1.05,0-1.92,2.21-2.64,6.64a54.69,54.69,0,0,0-.81,8.4,14.21,14.21,0,0,0,.15,2.23c.2,1.2.57,1.8,1.1,1.8s.95-.43,1.35-1.31a22.84,22.84,0,0,0,1.26-5c.28-1.55.49-3.19.65-4.91S15.79,5.74,15.79,4.68Zm2.3.93.32.21A10.7,10.7,0,0,1,19.52,2.6a1.87,1.87,0,0,1,1.6-1.08L19.27,17.63a4,4,0,0,1-.52,1.88,1,1,0,0,1-.79.27v.77h4.17v-.77a1.72,1.72,0,0,1-.85-.3,1.56,1.56,0,0,1-.2-1,2.44,2.44,0,0,1,0-.27c0-.08,0-.2,0-.33l.11-1L23,1.52A1.31,1.31,0,0,1,24,2.17a8.49,8.49,0,0,1,.69,4l.33.07L25.5.48H18.57ZM28.75.48v.78a1.39,1.39,0,0,1,.74.31,1.44,1.44,0,0,1,.18.9q0,.36-.06,1c0,.2-.05.44-.07.71L28,17.62a5.34,5.34,0,0,1-.35,1.61,1.05,1.05,0,0,1-.67.55v.77H30.7v-.77a.82.82,0,0,1-.6-.2,1.69,1.69,0,0,1-.31-1.18c0-.11,0-.22,0-.32l0-.35.83-7.33a1.42,1.42,0,0,1,1.4.64,5,5,0,0,1,.33,2.13c0,.12,0,.28,0,.5s0,.47,0,.76l.34.15.94-8.21-.35-.1a8.12,8.12,0,0,1-.85,2.64,2.42,2.42,0,0,1-1.64.52l.74-6.65a3.34,3.34,0,0,1,.25-1.1.64.64,0,0,1,.59-.26A1.91,1.91,0,0,1,34.28,3a11.32,11.32,0,0,1,.29,3.06l.34.13.54-5.7Zm15,6.75a27.46,27.46,0,0,1-1.55,9.22q-1.65,4.66-3.79,4.67-1.35,0-2.19-1.95a13.49,13.49,0,0,1-.85-5.23A27.59,27.59,0,0,1,37,4.6Q38.65,0,40.69,0c.91,0,1.65.65,2.23,2A13.17,13.17,0,0,1,43.8,7.23ZM42,4.68a9.3,9.3,0,0,0-.32-2.59c-.21-.72-.53-1.08-1-1.08Q39.12,1,38,7.65a54.69,54.69,0,0,0-.81,8.4,13,13,0,0,0,.16,2.23c.2,1.2.56,1.8,1.09,1.8s1-.43,1.35-1.31a23.28,23.28,0,0,0,1.27-5c.27-1.55.49-3.19.64-4.91S42,5.74,42,4.68ZM50.32,1c.78.66,1.17,1.93,1.17,3.8a11,11,0,0,1-.19,2,7.2,7.2,0,0,1-.66,1.93,3.45,3.45,0,0,1-.77,1,5.58,5.58,0,0,1-.8.52c0,.31.07.51.08.58l1,6.78a5.63,5.63,0,0,0,.42,1.72.85.85,0,0,0,.69.42v.77H48.69l-1.36-9.92H47l-.75,6.25-.1,1c0,.08,0,.16,0,.26v.28a1.94,1.94,0,0,0,.16,1,1.39,1.39,0,0,0,.75.32v.77H43.27v-.77a1.07,1.07,0,0,0,.66-.53,4.83,4.83,0,0,0,.36-1.61L45.84,4.18c0-.28.06-.52.08-.72,0-.42,0-.75,0-1a1.48,1.48,0,0,0-.17-.91,1.39,1.39,0,0,0-.74-.31V.48h3.46A2.67,2.67,0,0,1,50.32,1Zm-.73,3.34a7.2,7.2,0,0,0-.26-2.09c-.18-.55-.47-.83-.89-.83a.4.4,0,0,0-.38.27,4.46,4.46,0,0,0-.2,1.06L47.1,9.65a2.39,2.39,0,0,0,1-.2A2,2,0,0,0,49,8.31a10,10,0,0,0,.4-1.65A12.71,12.71,0,0,0,49.59,4.37Zm11.1-3.3c.77.74,1.16,2.1,1.16,4.09a8.51,8.51,0,0,1-.94,4.28A2.78,2.78,0,0,1,58.48,11h-.36l-.73-.12-.69,6-.11,1c0,.1,0,.2,0,.3s0,.2,0,.3a1.7,1.7,0,0,0,.17.95,1.47,1.47,0,0,0,.75.32v.77H53.77v-.77a1.07,1.07,0,0,0,.66-.53,4.83,4.83,0,0,0,.36-1.61L56.34,4.17l.09-.9c0-.31,0-.55,0-.74a1.58,1.58,0,0,0-.25-1,1.33,1.33,0,0,0-.67-.23V.48h3.62A2.11,2.11,0,0,1,60.69,1.07ZM60,4.32a7,7,0,0,0-.25-2.06c-.17-.53-.45-.8-.84-.8a.4.4,0,0,0-.4.29,6.14,6.14,0,0,0-.2,1L57.5,9.93l.23.06h.21a1.3,1.3,0,0,0,1-.36,3.17,3.17,0,0,0,.6-1.2,12.69,12.69,0,0,0,.36-2A19.64,19.64,0,0,0,60,4.32Zm10.6-3.06V.48H68v.78a1.17,1.17,0,0,1,.68.32A2.43,2.43,0,0,1,69,3.05c0,.32,0,.85-.11,1.6,0-.12,0,.27-.12,1.18l-.73,6.26a36.28,36.28,0,0,1-.8,4.86c-.45,1.65-1.07,2.47-1.87,2.47a1.27,1.27,0,0,1-1.13-.78,5.05,5.05,0,0,1-.41-2.27c0-.43,0-1.1.13-2,.05-.51.12-1.17.21-2l1-9a4.69,4.69,0,0,1,.38-1.69,1.24,1.24,0,0,1,.8-.47V.48H62.55v.78a1.39,1.39,0,0,1,.74.31,1.56,1.56,0,0,1,.17.91c0,.21,0,.47,0,.76s-.06.6-.1.94l-.85,7.36c-.14,1.15-.23,2-.27,2.42-.06.76-.1,1.44-.1,2a7.4,7.4,0,0,0,.81,3.78,2.35,2.35,0,0,0,2,1.35c1.14,0,2-.91,2.6-2.74a35.69,35.69,0,0,0,1-5.7l.79-6.85a30.83,30.83,0,0,1,.58-3.7A1.15,1.15,0,0,1,70.61,1.26Zm5.86,10a7.16,7.16,0,0,1,.56,3.1,10.31,10.31,0,0,1-.86,4.34,2.93,2.93,0,0,1-2.86,1.87h-3.8v-.77a1.07,1.07,0,0,0,.59-.41,4.64,4.64,0,0,0,.43-1.73L72.08,4.17c0-.4.08-.73.1-1s0-.46,0-.61a1.83,1.83,0,0,0-.19-1,1.22,1.22,0,0,0-.73-.28V.48h3.43a2.58,2.58,0,0,1,2.19,1.06A5.92,5.92,0,0,1,77.69,5a6.3,6.3,0,0,1-1,3.67,4.18,4.18,0,0,1-1.39,1.24A4.36,4.36,0,0,1,76.47,11.24Zm-1.36,2.49a4.59,4.59,0,0,0-.6-2.79,2,2,0,0,0-1.3-.52l-.84,7.32c0,.12,0,.25,0,.4s0,.33,0,.52a1.06,1.06,0,0,0,.27.84.77.77,0,0,0,.48.11c.8,0,1.38-.87,1.73-2.63A17.3,17.3,0,0,0,75.11,13.73Zm.1-5.38a7.33,7.33,0,0,0,.52-2.15,15,15,0,0,0,.11-1.77,7.89,7.89,0,0,0-.24-2.14c-.16-.55-.46-.83-.93-.83a.42.42,0,0,0-.4.33,4.42,4.42,0,0,0-.19,1l-.77,6.73a5.23,5.23,0,0,0,1.27-.36A1.77,1.77,0,0,0,75.21,8.35Zm9.61,6.24a9.73,9.73,0,0,1-1.66,3.94,2.93,2.93,0,0,1-2.25,1,.64.64,0,0,1-.51-.21,1,1,0,0,1-.19-.71c0-.19,0-.35,0-.49s0-.29,0-.44L81.91,3.41a4.53,4.53,0,0,1,.38-1.66,1.47,1.47,0,0,1,.88-.49V.48h-4v.78a1.39,1.39,0,0,1,.75.32,1.59,1.59,0,0,1,.18.95c0,.2,0,.43,0,.68s0,.58-.1,1L78.42,17.62a5.28,5.28,0,0,1-.35,1.63,1.12,1.12,0,0,1-.67.53v.77h7l.73-5.83ZM90.09,1.26V.48H86.34v.78a1.38,1.38,0,0,1,.74.32,1.59,1.59,0,0,1,.18.95q0,.3,0,.69c0,.25-.06.57-.11.95L85.58,17.64a5.41,5.41,0,0,1-.36,1.61,1.07,1.07,0,0,1-.66.53v.77h3.75v-.77a1.47,1.47,0,0,1-.75-.32,1.78,1.78,0,0,1-.17-1c0-.08,0-.18,0-.28s0-.2,0-.3l.1-1L89.07,3.41a5.68,5.68,0,0,1,.35-1.62A1.1,1.1,0,0,1,90.09,1.26Zm7-.62a.33.33,0,0,1-.3.24,3.1,3.1,0,0,1-.82-.44A2.5,2.5,0,0,0,94.59,0Q92.51,0,91,4a26.57,26.57,0,0,0-1.51,9.39,13.57,13.57,0,0,0,1,5.67c.66,1.41,1.49,2.11,2.5,2.11A2.46,2.46,0,0,0,94.79,20a9.66,9.66,0,0,0,1.55-3.4L96,16a12.68,12.68,0,0,1-.89,2.13c-.54,1-1.12,1.45-1.74,1.45-.47,0-.91-.39-1.31-1.15a10.33,10.33,0,0,1-.6-4.27,36.59,36.59,0,0,1,1-8.43c.72-3.08,1.57-4.63,2.54-4.63.48,0,.88.39,1.19,1.16a10,10,0,0,1,.47,3.53V6.1c0,.07,0,.32,0,.74L97,7l.64-7h-.38A4.28,4.28,0,0,1,97,.64Zm17.57,14,.31.13-.75,5.83h-9.45l-1.35-9.92H103l-.74,6.25-.11,1c0,.08,0,.16,0,.26v.28a1.94,1.94,0,0,0,.16,1,1.39,1.39,0,0,0,.75.32v.77H99.3v-.77a1.12,1.12,0,0,0,.67-.53,5.18,5.18,0,0,0,.35-1.61l1.55-13.46c0-.28.06-.52.08-.72,0-.42,0-.75,0-1a1.48,1.48,0,0,0-.17-.91,1.39,1.39,0,0,0-.74-.31V.48h3.46a2.64,2.64,0,0,1,1.8.55c.78.66,1.17,1.93,1.17,3.8a11,11,0,0,1-.19,2,6.57,6.57,0,0,1-.66,1.93,3.61,3.61,0,0,1-.76,1,6.48,6.48,0,0,1-.81.52c0,.31.07.51.08.58l1,6.78a5.63,5.63,0,0,0,.42,1.72.84.84,0,0,0,.65.4,1.06,1.06,0,0,0,.64-.51,5.41,5.41,0,0,0,.36-1.61l1.54-13.47c0-.34.07-.65.1-.92s0-.52,0-.72a1.61,1.61,0,0,0-.17-.95,1.31,1.31,0,0,0-.74-.32V.48h6.78l-.53,5.7-.34-.13a11.8,11.8,0,0,0-.3-3.09,1.92,1.92,0,0,0-2-1.54c-.33,0-.55.1-.64.29a3.46,3.46,0,0,0-.24,1.07L111,9.45a2.6,2.6,0,0,0,1.72-.51,7.79,7.79,0,0,0,.86-2.66l.35.11-.93,8.2-.35-.15c0-.28,0-.53,0-.74v-.52a4.42,4.42,0,0,0-.37-2.18,1.56,1.56,0,0,0-1.44-.58l-.83,7.32c0,.18,0,.35,0,.51s0,.3,0,.4a1.45,1.45,0,0,0,.13.67c.09.18.28.26.57.26a2.72,2.72,0,0,0,2-.76A8.33,8.33,0,0,0,114.61,14.59ZM105,8.31a9.81,9.81,0,0,0,.41-1.65,13.72,13.72,0,0,0,.18-2.29,6.87,6.87,0,0,0-.26-2.09c-.17-.55-.47-.83-.89-.83a.4.4,0,0,0-.38.27,5.05,5.05,0,0,0-.2,1.06l-.76,6.87a2.39,2.39,0,0,0,1-.2A2,2,0,0,0,105,8.31Zm17.51,6.28a9.86,9.86,0,0,1-1.67,3.94,2.93,2.93,0,0,1-2.25,1,.64.64,0,0,1-.51-.21,1.1,1.1,0,0,1-.19-.71c0-.19,0-.35,0-.49s0-.29,0-.44l1.64-14.32A4.53,4.53,0,0,1,120,1.75a1.47,1.47,0,0,1,.89-.49V.48h-4v.78a1.39,1.39,0,0,1,.75.32,1.59,1.59,0,0,1,.18.95c0,.2,0,.43,0,.68s0,.58-.1,1l-1.55,13.45a5.28,5.28,0,0,1-.35,1.63,1.1,1.1,0,0,1-.66.53v.77h7l.74-5.83Zm7.09,0a8.33,8.33,0,0,1-2,4.23,2.73,2.73,0,0,1-2,.76c-.29,0-.48-.08-.57-.26a1.45,1.45,0,0,1-.13-.67c0-.1,0-.23,0-.4s0-.33,0-.51l.83-7.32a1.58,1.58,0,0,1,1.44.58,4.42,4.42,0,0,1,.37,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.34.15.94-8.2-.35-.11a7.71,7.71,0,0,1-.87,2.66,2.56,2.56,0,0,1-1.71.51l.75-6.67A3.46,3.46,0,0,1,127,1.71c.09-.19.31-.29.64-.29a1.92,1.92,0,0,1,2,1.54,11.8,11.8,0,0,1,.3,3.09l.33.13.54-5.7H124v.78a1.31,1.31,0,0,1,.75.32,1.7,1.7,0,0,1,.17.95,6.75,6.75,0,0,1,0,.72c0,.27-.05.58-.09.92l-1.55,13.47a5.18,5.18,0,0,1-.35,1.61,1.12,1.12,0,0,1-.67.53v.77h7l.75-5.83Zm8.45,5.24v.72h-3.83v-.72a1.11,1.11,0,0,0,.77-.41,2.52,2.52,0,0,0,.23-1.31c0-.23,0-.77-.07-1.62,0-.17-.05-.9-.13-2.18h-2.71l-.74,3c0,.2-.09.43-.13.67a4.44,4.44,0,0,0-.06.71,1.27,1.27,0,0,0,.16.79,1.35,1.35,0,0,0,.65.3v.72h-2.47v-.72a1.66,1.66,0,0,0,.52-.54,7.25,7.25,0,0,0,.55-1.58L135.49.07h.33L137,17.23a8.87,8.87,0,0,0,.3,2.11A.9.9,0,0,0,138.08,19.83ZM135,13.12l-.47-7.3-1.86,7.3Zm7.88-4-1.09-2.13a6.38,6.38,0,0,1-.39-1,6.65,6.65,0,0,1-.23-1.82,6.93,6.93,0,0,1,.23-1.8q.33-1.26,1-1.26c.57,0,1,.53,1.3,1.57a10.87,10.87,0,0,1,.36,2.39l0,1,.33.1.51-6h-.38a2.26,2.26,0,0,1-.2.54.38.38,0,0,1-.34.22.54.54,0,0,1-.19-.05l-.22-.13-.32-.25a2.36,2.36,0,0,0-.41-.25,1.82,1.82,0,0,0-.7-.16c-.81,0-1.44.57-1.9,1.7a11.21,11.21,0,0,0-.68,4.12,12.36,12.36,0,0,0,1.55,5.58,10.74,10.74,0,0,1,1.54,4.78,7.8,7.8,0,0,1-.41,2.67c-.28.76-.67,1.15-1.17,1.15a1.07,1.07,0,0,1-.79-.4,3.78,3.78,0,0,1-.64-1.18,7.79,7.79,0,0,1-.42-1.95c-.05-.44-.08-1.14-.11-2.1l-.36-.06-.46,6.73h.38a6.32,6.32,0,0,1,.2-.83.31.31,0,0,1,.3-.24.21.21,0,0,1,.14,0,1.06,1.06,0,0,1,.22.18l.32.27a3,3,0,0,0,.69.44,1.72,1.72,0,0,0,.69.15c.92,0,1.64-.63,2.16-1.91a11.22,11.22,0,0,0,.78-4.28,12.2,12.2,0,0,0-.4-3.29A14.21,14.21,0,0,0,142.85,9.07Zm6.36-7.36c.09-.19.31-.29.64-.29a1.92,1.92,0,0,1,2,1.54,11.8,11.8,0,0,1,.3,3.09l.33.13L153,.48h-6.79v.78a1.31,1.31,0,0,1,.75.32,1.7,1.7,0,0,1,.17.95,6.75,6.75,0,0,1,0,.72c0,.27-.05.58-.09.92l-1.55,13.47a5.18,5.18,0,0,1-.35,1.61,1.12,1.12,0,0,1-.67.53v.77h7l.75-5.83-.31-.13a8.33,8.33,0,0,1-2,4.23,2.73,2.73,0,0,1-2,.76c-.29,0-.48-.08-.57-.26a1.45,1.45,0,0,1-.13-.67c0-.1,0-.23,0-.4s0-.33.05-.51l.83-7.32a1.58,1.58,0,0,1,1.44.58,4.42,4.42,0,0,1,.37,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.34.15.94-8.2-.35-.11a7.71,7.71,0,0,1-.87,2.66,2.56,2.56,0,0,1-1.71.51L149,2.78A3.46,3.46,0,0,1,149.21,1.71Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 152.969, height: 21.152, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'ForComment':\n case 'For Comment':\n {\n stampCollection = {\n iconName: 'For Comment',\n // eslint-disable-next-line max-len\n pathdata: 'M14.1.48l-.89,5.6L12.65,6a7.14,7.14,0,0,0-.48-3c-.54-1-1.6-1.54-3.19-1.54a1.37,1.37,0,0,0-1,.26,2.06,2.06,0,0,0-.42,1.08L6.35,9.28a6,6,0,0,0,2.73-.52,5.92,5.92,0,0,0,1.41-2.59l.58.1L9.52,14.34,9,14.2c0-.29,0-.54.05-.75s0-.38,0-.49a3.15,3.15,0,0,0-.55-2.09,3.07,3.07,0,0,0-2.32-.64L4.77,17.44c0,.13,0,.24-.06.35s0,.21,0,.31a1.23,1.23,0,0,0,.53,1.17,2,2,0,0,0,1,.19v.76H0v-.76a1.91,1.91,0,0,0,1.12-.54,3.56,3.56,0,0,0,.58-1.58L4.27,4.11c.05-.27.09-.51.12-.71a7.42,7.42,0,0,0,.1-1c0-.48-.1-.77-.29-.9A3.54,3.54,0,0,0,3,1.24V.48ZM28,7.11a17.42,17.42,0,0,1-2.57,9.07q-2.75,4.61-6.3,4.6a4.33,4.33,0,0,1-3.65-1.92,8.53,8.53,0,0,1-1.41-5.14,17.56,17.56,0,0,1,2.62-9.19Q19.43,0,22.82,0a4.48,4.48,0,0,1,3.72,1.92A8.46,8.46,0,0,1,28,7.11ZM25,4.6a5.72,5.72,0,0,0-.52-2.55,1.72,1.72,0,0,0-1.63-1c-1.74,0-3.2,2.17-4.39,6.53a32.66,32.66,0,0,0-1.35,8.26,8.24,8.24,0,0,0,.26,2.2c.33,1.18.94,1.77,1.82,1.77a2.88,2.88,0,0,0,2.25-1.29,16.48,16.48,0,0,0,2.1-4.93,37.09,37.09,0,0,0,1.07-4.83A28.26,28.26,0,0,0,25,4.6Zm15.83.16a6.49,6.49,0,0,1-.33,2,5.12,5.12,0,0,1-1.09,1.9,4.65,4.65,0,0,1-1.27,1,11.5,11.5,0,0,1-1.35.52c.07.3.12.49.14.57l1.62,6.66a3.79,3.79,0,0,0,.7,1.7,1.75,1.75,0,0,0,1.14.41v.76H36.13l-2.26-9.76h-.59L32,16.6l-.17,1,0,.25a2.62,2.62,0,0,0,0,.28q0,.8.27,1a3,3,0,0,0,1.25.32v.76H27.11v-.76a1.93,1.93,0,0,0,1.11-.52,3.54,3.54,0,0,0,.59-1.59L31.38,4.11c.06-.27.1-.51.13-.71a6,6,0,0,0,.1-1c0-.47-.1-.77-.29-.9a3.54,3.54,0,0,0-1.24-.3V.48h5.76a6.77,6.77,0,0,1,3,.53Q40.79,2,40.79,4.76Zm-3.16-.47a4.35,4.35,0,0,0-.44-2,1.54,1.54,0,0,0-1.48-.81.75.75,0,0,0-.63.26,2.78,2.78,0,0,0-.33,1.05L33.48,9.5a6.85,6.85,0,0,0,1.67-.2,2.55,2.55,0,0,0,1.49-1.13,6.37,6.37,0,0,0,.67-1.62A7.81,7.81,0,0,0,37.63,4.29ZM58.49,0a2.61,2.61,0,0,1-.32.63.55.55,0,0,1-.49.24A7,7,0,0,1,56.31.43,6.15,6.15,0,0,0,54.1,0q-3.47,0-6,3.92a16.73,16.73,0,0,0-2.51,9.24,8.73,8.73,0,0,0,1.64,5.57,5,5,0,0,0,7.19,1A8.89,8.89,0,0,0,57,16.37l-.64-.65a10.47,10.47,0,0,1-1.47,2.09A4,4,0,0,1,52,19.24a2.89,2.89,0,0,1-2.17-1.13c-.67-.75-1-2.15-1-4.2a22.2,22.2,0,0,1,1.62-8.29q1.8-4.54,4.23-4.55a2.33,2.33,0,0,1,2,1.14,6.16,6.16,0,0,1,.78,3.47c0,.14,0,.25,0,.32s0,.32,0,.73l.66.17L59.12,0ZM72.71,7.11a17.33,17.33,0,0,1-2.57,9.07c-1.82,3.07-3.93,4.6-6.3,4.6a4.34,4.34,0,0,1-3.65-1.92,8.53,8.53,0,0,1-1.4-5.14A17.55,17.55,0,0,1,61.4,4.53Q64.15,0,67.54,0a4.48,4.48,0,0,1,3.72,1.92A8.39,8.39,0,0,1,72.71,7.11Zm-3-2.51a5.72,5.72,0,0,0-.52-2.55,1.72,1.72,0,0,0-1.63-1c-1.74,0-3.2,2.17-4.39,6.53a32.66,32.66,0,0,0-1.35,8.26,8.24,8.24,0,0,0,.26,2.2c.33,1.18.94,1.77,1.82,1.77a2.85,2.85,0,0,0,2.25-1.29,16,16,0,0,0,2.1-4.93,34.08,34.08,0,0,0,1.07-4.83A28.26,28.26,0,0,0,69.68,4.6Zm17.5,13.62a4.63,4.63,0,0,1,.07-.75c0-.3.09-.59.15-.88L90,3.31a3.32,3.32,0,0,1,.7-1.67,2,2,0,0,1,1-.4V.48H87.23l-6.4,13.91L79.63.48H74.84v.76a3.29,3.29,0,0,1,1.2.21c.21.11.31.37.31.78a4.35,4.35,0,0,1-.07.75c0,.28-.11.61-.18,1L74,15a19.63,19.63,0,0,1-1,3.65,1.54,1.54,0,0,1-1.17.86v.76H76.2v-.76a2.31,2.31,0,0,1-1.09-.29,1.6,1.6,0,0,1-.58-1.43,8.8,8.8,0,0,1,.14-1.42c0-.37.14-.82.24-1.37L77,4.24l1.41,16.37H79L86.89,3.76,84.25,17.34A2.94,2.94,0,0,1,83.61,19a2.87,2.87,0,0,1-1.44.49v.76h6.54v-.76a3.39,3.39,0,0,1-1.23-.31Q87.18,19,87.18,18.22Zm17.73,0a4.63,4.63,0,0,1,.07-.75c0-.3.1-.59.16-.88l2.58-13.28a3.24,3.24,0,0,1,.69-1.67,2,2,0,0,1,1-.4V.48H105l-6.4,13.91L97.36.48H92.57v.76a3.29,3.29,0,0,1,1.2.21c.21.11.32.37.32.78A5.65,5.65,0,0,1,94,3c0,.28-.11.61-.19,1L91.69,15a19.63,19.63,0,0,1-1,3.65,1.54,1.54,0,0,1-1.17.86v.76h4.38v-.76a2.33,2.33,0,0,1-1.1-.29,1.6,1.6,0,0,1-.58-1.43,10.12,10.12,0,0,1,.14-1.42c.06-.37.14-.82.25-1.37L94.76,4.24l1.41,16.37h.59l7.86-16.85L102,17.34a3.1,3.1,0,0,1-.64,1.63,3,3,0,0,1-1.45.49v.76h6.55v-.76a3.46,3.46,0,0,1-1.24-.31Q104.91,19,104.91,18.22Zm11.52.3a6.56,6.56,0,0,1-3.25.75,1.27,1.27,0,0,1-.94-.26,1,1,0,0,1-.22-.66,3,3,0,0,1,0-.39,4.88,4.88,0,0,1,.08-.51l1.38-7.2a3.65,3.65,0,0,1,2.4.57,2.92,2.92,0,0,1,.62,2.15c0,.14,0,.31,0,.51s0,.45-.06.73l.58.15,1.55-8.08-.58-.1a5.92,5.92,0,0,1-1.44,2.61,6.32,6.32,0,0,1-2.85.51L115,2.74a2.44,2.44,0,0,1,.39-1.06,1.43,1.43,0,0,1,1.07-.28c1.63,0,2.71.5,3.25,1.51a7.37,7.37,0,0,1,.49,3l.56.13.89-5.6H110.31v.76a3.28,3.28,0,0,1,1.25.31c.19.13.28.44.28.94a4.83,4.83,0,0,1-.06.7c0,.28-.09.58-.16.92l-2.57,13.24a3.54,3.54,0,0,1-.59,1.59,1.93,1.93,0,0,1-1.11.52v.76H119l1.24-5.74-.51-.12A7.7,7.7,0,0,1,116.43,18.52ZM136.6,1.24V.48h-4.3v.76a2.5,2.5,0,0,1,1.14.33A1.8,1.8,0,0,1,134,3.05a10.58,10.58,0,0,1-.14,1.34c-.05.41-.13.87-.22,1.39L132,14.12,127.41.48h-4.22v.76a2.53,2.53,0,0,1,1,.24,1.82,1.82,0,0,1,.64,1.06l.1.3L122.55,15a19.54,19.54,0,0,1-1,3.61,1.59,1.59,0,0,1-1.18.9v.76h4.37v-.76a2.5,2.5,0,0,1-1.12-.32,1.67,1.67,0,0,1-.55-1.44,5.32,5.32,0,0,1,0-.79c0-.43.17-1.09.34-2l2.08-10.57L131,20.71h.52l2.91-15a24.72,24.72,0,0,1,.85-3.42,1.42,1.42,0,0,1,1-1Zm.48-.76-.81,5,.54.2a8.1,8.1,0,0,1,1.85-3.16,3.63,3.63,0,0,1,2.66-1.06l-3.08,15.85a3,3,0,0,1-.86,1.85,2.42,2.42,0,0,1-1.32.26v.76H143v-.76a4,4,0,0,1-1.41-.3c-.23-.13-.34-.45-.34-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.17-1,2.92-15.1a2.64,2.64,0,0,1,1.76.63c.74.7,1.12,2,1.15,3.94l.55.07L148.6.48Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 148.603, height: 20.812, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'Void':\n {\n stampCollection = {\n iconName: 'Void',\n // eslint-disable-next-line max-len\n pathdata: 'M27.88,1.72a6.53,6.53,0,0,0-1.81,1.42L9,21.12H7.54L4.09,5.83A11.83,11.83,0,0,0,2.82,2Q2.3,1.4,0,1.26V.48H13.54v.78a11,11,0,0,0-2.37.18q-1.11.27-1.11,1.05a1.43,1.43,0,0,0,0,.29c0,.09,0,.19,0,.28l2.35,12,8.56-9a25.11,25.11,0,0,0,1.83-2.14,3.15,3.15,0,0,0,.82-1.68c0-.41-.28-.69-.84-.82a12.57,12.57,0,0,0-2.08-.15V.48h8.7v.78A7.11,7.11,0,0,0,27.88,1.72ZM57.37,7.23q0,4.85-5.56,9.22a21.41,21.41,0,0,1-13.62,4.67,14.41,14.41,0,0,1-7.89-1.95,6,6,0,0,1-3-5.23q0-4.92,5.66-9.34A21.12,21.12,0,0,1,46.2,0a15,15,0,0,1,8,2A6,6,0,0,1,57.37,7.23ZM50.82,4.68a3.46,3.46,0,0,0-1.13-2.59A4.93,4.93,0,0,0,46.17,1q-5.64,0-9.49,6.64c-1.94,3.36-2.92,6.16-2.92,8.4a4.27,4.27,0,0,0,.56,2.23q1.08,1.8,3.93,1.8a9.24,9.24,0,0,0,4.87-1.31,15.24,15.24,0,0,0,4.54-5A21.81,21.81,0,0,0,50,8.85,14.23,14.23,0,0,0,50.82,4.68ZM66,18.49a1.49,1.49,0,0,1,0-.28c0-.1,0-.2.08-.3l.35-1L72,3.41a2.94,2.94,0,0,1,1.25-1.62,6.79,6.79,0,0,1,2.4-.53V.48H62.19v.78a13.27,13.27,0,0,1,2.67.32.88.88,0,0,1,.64.95,2.38,2.38,0,0,1-.12.69c-.08.25-.2.57-.36.95L59.45,17.64a3,3,0,0,1-1.28,1.61,6.84,6.84,0,0,1-2.39.53v.77H69.27v-.77a13.72,13.72,0,0,1-2.67-.32A.9.9,0,0,1,66,18.49Zm38.25-9.67q0,4.59-5.15,8-5.73,3.77-15,3.76h-13v-.77a7.4,7.4,0,0,0,2.1-.41,3.08,3.08,0,0,0,1.57-1.75L80.28,4.17c.16-.38.28-.7.37-1a2.27,2.27,0,0,0,.12-.68.89.89,0,0,0-.64-.95,13.41,13.41,0,0,0-2.68-.32V.48H90.6q6.68,0,10.15,2.27A6.92,6.92,0,0,1,104.23,8.82ZM97.58,7a5.28,5.28,0,0,0-1.13-3.54q-1.77-2-6.14-2a4.24,4.24,0,0,0-2,.32,1.77,1.77,0,0,0-.74.84L81.35,17.73a1.72,1.72,0,0,0-.12.39,1.89,1.89,0,0,0,0,.31.89.89,0,0,0,.54.85,5.1,5.1,0,0,0,2,.26q8.07,0,11.68-5.5A12.61,12.61,0,0,0,97.58,7Z',\n opacity: 1, strokeColor: '', fillColor: '#8a251a', width: 104.233, height: 21.123, stampFillColor: '#f6dedd', stampStrokeColor: '',\n };\n }\n break;\n case 'PreliminaryResults':\n case 'Preliminary Results':\n {\n stampCollection = {\n iconName: 'Preliminary Results',\n // eslint-disable-next-line max-len\n pathdata: 'M9.23,5.08q0-3-1.32-4.08A2.6,2.6,0,0,0,6.17.41H2v.78a1.5,1.5,0,0,1,.76.23,1.39,1.39,0,0,1,.28,1c0,.19,0,.43,0,.73s-.07.61-.1.91L1.17,17.56a4.76,4.76,0,0,1-.41,1.62A1.18,1.18,0,0,1,0,19.7v.78H4.25V19.7a1.77,1.77,0,0,1-.86-.31,1.5,1.5,0,0,1-.2-1c0-.09,0-.19,0-.3a1.36,1.36,0,0,1,0-.29l.12-1,.78-6L5,11h.41a3.21,3.21,0,0,0,2.78-1.6A7.57,7.57,0,0,0,9.23,5.08ZM7,6.32a10,10,0,0,1-.42,2,3,3,0,0,1-.68,1.21,1.63,1.63,0,0,1-1.13.36H4.53l-.27-.06,1-7.15a4.75,4.75,0,0,1,.22-1,.45.45,0,0,1,.46-.29,1,1,0,0,1,1,.8,6.22,6.22,0,0,1,.29,2.06A18,18,0,0,1,7,6.32ZM23.4,18.75a3.35,3.35,0,0,1-2.23.76.68.68,0,0,1-.64-.26,1.27,1.27,0,0,1-.16-.68c0-.09,0-.23,0-.39s0-.34.05-.51l.95-7.33a1.92,1.92,0,0,1,1.65.59,4,4,0,0,1,.42,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.4.15,1.07-8.21-.4-.1a7,7,0,0,1-1,2.65,3.15,3.15,0,0,1-2,.52l.85-6.67a3,3,0,0,1,.28-1.08c.11-.19.35-.28.73-.28a2.16,2.16,0,0,1,2.23,1.54A10.27,10.27,0,0,1,26,6l.39.13L27,.41H19.2v.78a1.67,1.67,0,0,1,.86.31,1.52,1.52,0,0,1,.19,1,6.58,6.58,0,0,1,0,.71c0,.28-.07.59-.11.93L18.33,17.56a4.59,4.59,0,0,1-.4,1.62,1.22,1.22,0,0,1-.74.51,1,1,0,0,1-.73-.4A5.08,5.08,0,0,1,16,17.56l-1.1-6.77c0-.08,0-.27-.1-.58a5.14,5.14,0,0,0,.92-.53,3.23,3.23,0,0,0,.87-1,6,6,0,0,0,.76-1.93,9.63,9.63,0,0,0,.22-2c0-1.87-.44-3.14-1.34-3.81a3.4,3.4,0,0,0-2-.54h-4v.78a1.78,1.78,0,0,1,.85.3,1.4,1.4,0,0,1,.19.91c0,.24,0,.56-.06,1,0,.21-.05.45-.09.73L9.31,17.56a4.53,4.53,0,0,1-.41,1.62,1.15,1.15,0,0,1-.75.52v.78h4.28V19.7a1.62,1.62,0,0,1-.86-.32,1.72,1.72,0,0,1-.18-1v-.29c0-.09,0-.18,0-.25l.12-1,.86-6.24h.4l1.55,9.92h10.8L26,14.65l-.35-.13A7.9,7.9,0,0,1,23.4,18.75ZM13.67,9.38a3.35,3.35,0,0,1-1.15.2l.87-6.87a4,4,0,0,1,.23-1.06.45.45,0,0,1,.43-.27,1.05,1.05,0,0,1,1,.83,6.14,6.14,0,0,1,.3,2.08,11.74,11.74,0,0,1-.21,2.29,9,9,0,0,1-.47,1.65A2,2,0,0,1,13.67,9.38ZM35,14.65l-.84,5.83h-8V19.7a1.24,1.24,0,0,0,.76-.52,4.73,4.73,0,0,0,.4-1.63L29.15,4.1q.08-.57.12-1c0-.26,0-.48,0-.68a1.42,1.42,0,0,0-.21-1,1.67,1.67,0,0,0-.85-.31V.41h4.56v.78a1.67,1.67,0,0,0-1,.49,4.17,4.17,0,0,0-.44,1.66L29.49,17.65c0,.16,0,.31,0,.45a3.47,3.47,0,0,0,0,.48,1,1,0,0,0,.21.72.8.8,0,0,0,.59.21,3.54,3.54,0,0,0,2.56-1.05,9.24,9.24,0,0,0,1.91-3.94Zm2.79,4.73a1.61,1.61,0,0,0,.85.32v.78H34.39V19.7a1.18,1.18,0,0,0,.76-.52,4.76,4.76,0,0,0,.41-1.62L37.33,4.1c.05-.38.09-.7.11-1a5.83,5.83,0,0,0,0-.68,1.5,1.5,0,0,0-.2-1,1.71,1.71,0,0,0-.85-.31V.41h4.29v.78a1.22,1.22,0,0,0-.77.52,4.9,4.9,0,0,0-.39,1.63L37.78,16.8l-.11,1,0,.29c0,.11,0,.2,0,.29A1.52,1.52,0,0,0,37.83,19.38Zm12.2,0a1.81,1.81,0,0,0,.85.31v.78h-4.5V19.7a1.64,1.64,0,0,0,1-.49,4,4,0,0,0,.44-1.66l1.81-13.8-5.4,17.12h-.4l-1-16.64L41.39,15.12c-.07.56-.13,1-.17,1.39-.06.61-.09,1.09-.09,1.45a2,2,0,0,0,.4,1.45,1.19,1.19,0,0,0,.75.29v.78h-3V19.7a1.21,1.21,0,0,0,.81-.87,29.47,29.47,0,0,0,.66-3.71L42.21,4c0-.38.09-.71.12-1a5.41,5.41,0,0,0,.05-.75c0-.42-.07-.69-.21-.8a1.69,1.69,0,0,0-.83-.21V.41h3.29l.83,14.14L49.85.41h3.07v.78a1.12,1.12,0,0,0-.69.41,4.08,4.08,0,0,0-.48,1.69L50,16.79c0,.29-.08.59-.11.89s0,.56,0,.76A1.41,1.41,0,0,0,50,19.39Zm5,0a1.61,1.61,0,0,0,.85.32v.78H51.56V19.7a1.18,1.18,0,0,0,.76-.52,4.76,4.76,0,0,0,.41-1.62L54.5,4.1c0-.38.09-.7.11-1a5.83,5.83,0,0,0,0-.68,1.5,1.5,0,0,0-.2-1,1.71,1.71,0,0,0-.85-.31V.41h4.29v.78a1.22,1.22,0,0,0-.77.52,4.9,4.9,0,0,0-.39,1.63L55,16.8l-.11,1,0,.29c0,.11,0,.2,0,.29A1.52,1.52,0,0,0,55,19.38ZM66.13,5.75,64.13,21h-.36L60,4.38,58.6,15.12c-.12.89-.2,1.55-.23,2a7.32,7.32,0,0,0,0,.81,2.17,2.17,0,0,0,.38,1.46,1.32,1.32,0,0,0,.77.32v.78h-3V19.7a1.26,1.26,0,0,0,.81-.91,29,29,0,0,0,.65-3.67L59.56,2.81,59.5,2.5a2,2,0,0,0-.45-1.06,1.21,1.21,0,0,0-.67-.25V.41h2.9L64.4,14.28,65.52,5.8c.07-.53.12-1,.16-1.41.06-.62.09-1.08.09-1.36a2.45,2.45,0,0,0-.34-1.51,1.39,1.39,0,0,0-.79-.33V.41h3v.78l-.21.06c-.29.08-.52.43-.68,1A34.22,34.22,0,0,0,66.13,5.75ZM83.27,1A3.41,3.41,0,0,0,81.21.41h-4v.78a1.74,1.74,0,0,1,.85.3c.14.13.2.43.2.91,0,.24,0,.56-.06,1,0,.21-.06.45-.09.73L76.38,17.56A4.53,4.53,0,0,1,76,19.18a1.18,1.18,0,0,1-.76.52v0a1,1,0,0,1-.67-.45,8.11,8.11,0,0,1-.34-2.12L72.83,0h-.38L67.11,17.64a6.42,6.42,0,0,1-.63,1.58,1.84,1.84,0,0,1-.59.54v.72h2.83v-.72a1.68,1.68,0,0,1-.75-.31,1.16,1.16,0,0,1-.18-.79,3.46,3.46,0,0,1,.07-.7,5.16,5.16,0,0,1,.15-.67l.84-3H72c.08,1.28.13,2,.13,2.18.06.85.08,1.39.08,1.61a2.26,2.26,0,0,1-.25,1.31,1.43,1.43,0,0,1-.88.42v.72H79.5V19.7a1.58,1.58,0,0,1-.86-.32,1.7,1.7,0,0,1-.19-1c0-.1,0-.2,0-.29a1.81,1.81,0,0,1,0-.25l.12-1,.85-6.24h.41l1.55,9.92h2.9V19.7a1,1,0,0,1-.79-.41A5.15,5.15,0,0,1,83,17.56l-1.11-6.77c0-.08,0-.27-.09-.58a5.53,5.53,0,0,0,.92-.53,3.52,3.52,0,0,0,.87-1,6.16,6.16,0,0,0,.75-1.93,9.67,9.67,0,0,0,.23-2C84.61,2.89,84.16,1.62,83.27,1ZM69.19,13.05l2.13-7.3.53,7.3Zm13-6.47a8.39,8.39,0,0,1-.46,1.65,2,2,0,0,1-1,1.15,3.29,3.29,0,0,1-1.14.2l.87-6.87a3.61,3.61,0,0,1,.23-1.06.45.45,0,0,1,.43-.27,1.05,1.05,0,0,1,1,.83,6.14,6.14,0,0,1,.3,2.08A11,11,0,0,1,82.22,6.58ZM90.48.41h3v.78a1.07,1.07,0,0,0-.55.41,6.13,6.13,0,0,0-.77,1.62l-2.72,8-.72,5.55c0,.22-.07.51-.1.86a7.29,7.29,0,0,0-.06.73,1.46,1.46,0,0,0,.29,1.07,1.61,1.61,0,0,0,.83.25v.78H85V19.7a1.56,1.56,0,0,0,.93-.39,3.7,3.7,0,0,0,.53-1.76l.85-6.45-1.26-8a6.07,6.07,0,0,0-.36-1.47.81.81,0,0,0-.7-.4V.41h4v.78a1.32,1.32,0,0,0-.76.23c-.15.12-.23.4-.23.84a4.46,4.46,0,0,0,0,.48c0,.19,0,.39.07.6l1,6.54,1.88-5.55c.1-.29.18-.55.24-.79a4.68,4.68,0,0,0,.14-1.11,1.35,1.35,0,0,0-.31-1,1.14,1.14,0,0,0-.66-.2Zm18.61,1.22c.1-.19.35-.28.73-.28a2.16,2.16,0,0,1,2.23,1.54A10.27,10.27,0,0,1,112.39,6l.38.13.62-5.7h-7.76v.78a1.67,1.67,0,0,1,.86.31,1.59,1.59,0,0,1,.19,1,6.58,6.58,0,0,1,0,.71c0,.28-.07.59-.11.93l-1.77,13.46a4.53,4.53,0,0,1-.41,1.62,1.17,1.17,0,0,1-.73.51,1,1,0,0,1-.73-.4,5.08,5.08,0,0,1-.49-1.73l-1.1-6.77c0-.08,0-.27-.1-.58a5.14,5.14,0,0,0,.92-.53,3.4,3.4,0,0,0,.88-1,6.16,6.16,0,0,0,.75-1.93,9.63,9.63,0,0,0,.22-2c0-1.87-.44-3.14-1.34-3.81a3.38,3.38,0,0,0-2-.54h-4v.78a1.78,1.78,0,0,1,.85.3,1.4,1.4,0,0,1,.19.91c0,.24,0,.56-.06,1,0,.21,0,.45-.09.73L95.74,17.56a4.53,4.53,0,0,1-.41,1.62,1.15,1.15,0,0,1-.75.52v.78h4.28V19.7a1.62,1.62,0,0,1-.86-.32,1.72,1.72,0,0,1-.18-1v-.29c0-.09,0-.18,0-.25l.12-1,.86-6.24h.4l1.55,9.92h10.8l.85-5.83-.35-.13a7.9,7.9,0,0,1-2.24,4.23,3.35,3.35,0,0,1-2.23.76.71.71,0,0,1-.65-.26,1.37,1.37,0,0,1-.15-.68c0-.09,0-.23,0-.39s0-.34.05-.51l.95-7.33a1.92,1.92,0,0,1,1.65.59,4,4,0,0,1,.42,2.18c0,.14,0,.31,0,.52s0,.46,0,.74l.4.15,1.07-8.21-.41-.1a7,7,0,0,1-1,2.65,3.15,3.15,0,0,1-2,.52l.85-6.67A3,3,0,0,1,109.09,1.63Zm-9,7.75a3.35,3.35,0,0,1-1.15.2l.87-6.87a4,4,0,0,1,.23-1.06.45.45,0,0,1,.43-.27,1.05,1.05,0,0,1,1,.83,6.14,6.14,0,0,1,.3,2.08,11.74,11.74,0,0,1-.21,2.29,9,9,0,0,1-.47,1.65A2,2,0,0,1,100.1,9.38ZM120.18.07h.43l-.59,6-.37-.1-.05-1a10.11,10.11,0,0,0-.41-2.39c-.34-1-.83-1.57-1.48-1.57s-.95.42-1.21,1.26a6.17,6.17,0,0,0-.25,1.8,5.92,5.92,0,0,0,.26,1.82,5.23,5.23,0,0,0,.44,1L118.19,9a12.6,12.6,0,0,1,1.12,2.57,10.75,10.75,0,0,1,.47,3.29,10,10,0,0,1-.9,4.29,2.76,2.76,0,0,1-2.46,1.91,2.17,2.17,0,0,1-.79-.15,3.28,3.28,0,0,1-.79-.44l-.36-.28-.26-.18a.38.38,0,0,0-.16,0,.34.34,0,0,0-.34.23,5.5,5.5,0,0,0-.23.84h-.43l.52-6.73.41.06c0,1,.07,1.66.12,2.09a7.13,7.13,0,0,0,.49,1.95,3.52,3.52,0,0,0,.73,1.18,1.25,1.25,0,0,0,.9.41c.57,0,1-.39,1.34-1.15a7.13,7.13,0,0,0,.47-2.68,9.86,9.86,0,0,0-1.76-4.77,11.23,11.23,0,0,1-1.77-5.58,9.8,9.8,0,0,1,.78-4.12A2.41,2.41,0,0,1,117.46,0a2.06,2.06,0,0,1,.79.16,1.9,1.9,0,0,1,.47.25l.37.25a1.15,1.15,0,0,0,.25.12.47.47,0,0,0,.22,0A.44.44,0,0,0,120,.62,2.6,2.6,0,0,0,120.18.07Zm10,2a26.67,26.67,0,0,0-.66,3.7l-.9,6.85a32.12,32.12,0,0,1-1.16,5.7c-.68,1.83-1.67,2.74-3,2.74a2.7,2.7,0,0,1-2.28-1.36,6.67,6.67,0,0,1-.92-3.77,19.46,19.46,0,0,1,.11-2c0-.46.15-1.26.3-2.42l1-7.36c0-.33.08-.64.11-.93s0-.55,0-.77a1.38,1.38,0,0,0-.2-.91,1.74,1.74,0,0,0-.85-.3V.41h4.43v.78a1.39,1.39,0,0,0-.91.47,4.25,4.25,0,0,0-.44,1.68l-1.18,9c-.11.8-.19,1.46-.25,2q-.15,1.37-.15,2a4.41,4.41,0,0,0,.48,2.27,1.44,1.44,0,0,0,1.29.78c.91,0,1.62-.82,2.13-2.48a30.62,30.62,0,0,0,.91-4.85L129,5.76c.1-.91.14-1.3.13-1.19a14.64,14.64,0,0,0,.13-1.6,2.12,2.12,0,0,0-.38-1.46,1.35,1.35,0,0,0-.77-.32V.41H131v.78A1.18,1.18,0,0,0,130.23,2.06Zm8.41,12.59-.84,5.83h-8V19.7a1.24,1.24,0,0,0,.76-.52,4.73,4.73,0,0,0,.4-1.63L132.75,4.1q.08-.57.12-1c0-.26,0-.48,0-.68,0-.51-.06-.83-.2-1a1.67,1.67,0,0,0-.85-.31V.41h4.56v.78a1.67,1.67,0,0,0-1,.49A4.17,4.17,0,0,0,135,3.34l-1.87,14.31c0,.16,0,.31-.05.45s0,.3,0,.48a1,1,0,0,0,.21.72.8.8,0,0,0,.59.21,3.54,3.54,0,0,0,2.56-1.05,9.24,9.24,0,0,0,1.91-3.94Zm7.72-8.56a7.63,7.63,0,0,0-.79-4,1.53,1.53,0,0,0-1.21-.64l-2,15.35-.12,1a2.47,2.47,0,0,0,0,.34,2.35,2.35,0,0,0,0,.26c0,.52.08.84.23,1a2,2,0,0,0,1,.3v.78h-4.76V19.7a1.18,1.18,0,0,0,.9-.26,3.75,3.75,0,0,0,.6-1.88l2.11-16.11a2.17,2.17,0,0,0-1.83,1.08,9.57,9.57,0,0,0-1.27,3.21l-.37-.2.56-5.13h7.91l-.52,5.76Zm3.41-3.79a6.17,6.17,0,0,0-.25,1.8,5.63,5.63,0,0,0,.26,1.82,5.23,5.23,0,0,0,.44,1L151.46,9a13.19,13.19,0,0,1,1.13,2.57,11.08,11.08,0,0,1,.46,3.29,10,10,0,0,1-.9,4.29,2.76,2.76,0,0,1-2.46,1.91,2.21,2.21,0,0,1-.79-.15,3.28,3.28,0,0,1-.79-.44l-.36-.28-.26-.18a.38.38,0,0,0-.16,0,.34.34,0,0,0-.34.23,5.5,5.5,0,0,0-.23.84h-.43l.52-6.73.41.06c0,1,.07,1.66.12,2.09a7.13,7.13,0,0,0,.49,1.95,3.52,3.52,0,0,0,.73,1.18,1.25,1.25,0,0,0,.9.41c.57,0,1-.39,1.34-1.15a7.13,7.13,0,0,0,.47-2.68,9.86,9.86,0,0,0-1.76-4.77,11.23,11.23,0,0,1-1.77-5.58,9.8,9.8,0,0,1,.78-4.12A2.41,2.41,0,0,1,150.73,0a2.06,2.06,0,0,1,.79.16,1.9,1.9,0,0,1,.47.25l.37.25a1.34,1.34,0,0,0,.24.12.56.56,0,0,0,.23,0,.44.44,0,0,0,.39-.21,2.6,2.6,0,0,0,.23-.55h.43l-.59,6-.37-.1,0-1a10.11,10.11,0,0,0-.41-2.39c-.34-1-.83-1.57-1.48-1.57S150,1.46,149.77,2.3Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 153.879, height: 21.051, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n case 'InformationOnly':\n case 'Information Only':\n {\n stampCollection = {\n iconName: 'Information Only',\n // eslint-disable-next-line max-len\n pathdata: 'M4,19.14a2,2,0,0,0,1,.32v.76H0v-.76a1.42,1.42,0,0,0,.87-.52,4,4,0,0,0,.47-1.59l2-13.24c.06-.38.1-.69.13-1a5.73,5.73,0,0,0,0-.67c0-.5-.08-.81-.24-.94a2.2,2.2,0,0,0-1-.31V.48H7.26v.76a1.48,1.48,0,0,0-.88.52,4.14,4.14,0,0,0-.45,1.6l-2,13.24-.13,1c0,.1,0,.19,0,.3a2.72,2.72,0,0,0,0,.28A1.32,1.32,0,0,0,4,19.14ZM18.17,1.3l.24-.06V.48H15v.76a1.66,1.66,0,0,1,.9.33,2.08,2.08,0,0,1,.4,1.48,12.85,12.85,0,0,1-.1,1.34c-.05.41-.11.87-.18,1.39l-1.29,8.34L11.15.48H7.83v.76a1.69,1.69,0,0,1,.77.24,1.9,1.9,0,0,1,.51,1.06l.07.3L7.33,15a24.86,24.86,0,0,1-.76,3.61,1.32,1.32,0,0,1-.92.9v.76H9.09v-.76a1.67,1.67,0,0,1-.88-.32,1.92,1.92,0,0,1-.44-1.44,7.09,7.09,0,0,1,0-.79c0-.43.13-1.09.27-2L9.72,4.38,14,20.71h.41l2.3-15a28.78,28.78,0,0,1,.67-3.42C17.57,1.72,17.83,1.38,18.17,1.3ZM19.33.48v.76a2.32,2.32,0,0,1,1,.3c.15.13.23.42.23.9,0,.23,0,.55-.07,1,0,.2-.06.44-.1.71l-2,13.23a4,4,0,0,1-.46,1.58,1.39,1.39,0,0,1-.88.54v.76h4.89v-.76a1.36,1.36,0,0,1-.78-.19,1.39,1.39,0,0,1-.41-1.17c0-.1,0-.21,0-.31s0-.22,0-.35l1.09-7.21a2.09,2.09,0,0,1,1.83.64A3.81,3.81,0,0,1,24.1,13c0,.11,0,.28,0,.49s0,.46,0,.75l.45.14,1.22-8.07-.46-.1a6.19,6.19,0,0,1-1.11,2.59A3.89,3.89,0,0,1,22,9.28l1-6.54a2.43,2.43,0,0,1,.33-1.08.93.93,0,0,1,.76-.26,2.45,2.45,0,0,1,2.52,1.54A9,9,0,0,1,27,6l.44.13.7-5.6ZM39.06,7.11a21,21,0,0,1-2,9.07q-2.16,4.61-5,4.6a3.28,3.28,0,0,1-2.88-1.92,10.29,10.29,0,0,1-1.11-5.14,21.08,21.08,0,0,1,2.07-9.19Q32.31,0,35,0a3.37,3.37,0,0,1,2.93,1.92A10.14,10.14,0,0,1,39.06,7.11ZM36.68,4.6a7,7,0,0,0-.42-2.55A1.37,1.37,0,0,0,35,1c-1.37,0-2.52,2.17-3.46,6.53a40.81,40.81,0,0,0-1.07,8.26,10,10,0,0,0,.21,2.2c.26,1.18.74,1.77,1.43,1.77s1.24-.43,1.78-1.29a18.75,18.75,0,0,0,1.65-4.93,43.28,43.28,0,0,0,.85-4.83A36.93,36.93,0,0,0,36.68,4.6ZM61,19.15a2.25,2.25,0,0,0,1,.31v.76H56.84v-.76A2,2,0,0,0,58,19a3.6,3.6,0,0,0,.5-1.63L60.56,3.76l-6.2,16.85H53.9L52.78,4.24,51.12,15c-.09.55-.15,1-.2,1.37a13,13,0,0,0-.11,1.42,1.8,1.8,0,0,0,.46,1.43,1.54,1.54,0,0,0,.86.29v.76H45.49l-1.78-9.76h-.47l-1,6.14-.13,1,0,.25c0,.09,0,.19,0,.28a1.47,1.47,0,0,0,.22,1,2,2,0,0,0,1,.32v.76H38.37v-.76a1.42,1.42,0,0,0,.88-.52,4.21,4.21,0,0,0,.46-1.59l2-13.24c0-.27.08-.51.11-.71a8.23,8.23,0,0,0,.07-1,1.23,1.23,0,0,0-.23-.9,2.32,2.32,0,0,0-1-.3V.48h4.54A4.34,4.34,0,0,1,47.62,1c1,.65,1.54,1.9,1.54,3.75a7.78,7.78,0,0,1-.26,2A5.56,5.56,0,0,1,48,8.62a3.87,3.87,0,0,1-1,1,8.06,8.06,0,0,1-1.06.52c.05.3.09.49.11.57l1.27,6.66a4.58,4.58,0,0,0,.55,1.7,1.23,1.23,0,0,0,.83.39,1.31,1.31,0,0,0,.86-.84A23,23,0,0,0,50.36,15L52.05,4c.06-.37.11-.7.15-1a7.42,7.42,0,0,0,0-.75c0-.41-.08-.67-.25-.78a2.09,2.09,0,0,0-.94-.21V.48h3.77l1,13.91,5-13.91h3.51v.76a1.46,1.46,0,0,0-.79.4A3.71,3.71,0,0,0,63,3.31L61,16.59c0,.29-.09.58-.13.88s-.05.55-.05.75Q60.79,19,61,19.15Zm-15.14-11a7.46,7.46,0,0,0,.53-1.62,9.54,9.54,0,0,0,.25-2.26,5.31,5.31,0,0,0-.35-2,1.18,1.18,0,0,0-1.16-.81.54.54,0,0,0-.5.26,3.37,3.37,0,0,0-.26,1.05l-1,6.76a4.28,4.28,0,0,0,1.31-.2A2.17,2.17,0,0,0,45.89,8.17ZM73.21,19.51v.71h-5v-.71a1.61,1.61,0,0,0,1-.41,1.92,1.92,0,0,0,.3-1.29c0-.22,0-.75-.09-1.58,0-.17-.06-.89-.16-2.15H65.68l-1,3c-.06.2-.12.42-.17.66a3.4,3.4,0,0,0-.08.69q0,.62.21.78a1.9,1.9,0,0,0,.86.3v.71H62.29v-.71A2,2,0,0,0,63,19a6.47,6.47,0,0,0,.72-1.56L69.82.07h.43L71.83,17A6.77,6.77,0,0,0,72.22,19,1.23,1.23,0,0,0,73.21,19.51Zm-4.08-6.6-.61-7.18-2.44,7.18ZM82.52,6.14l.6-5.66H74l-.63,5,.42.2a8.71,8.71,0,0,1,1.46-3.16,2.57,2.57,0,0,1,2.1-1.06L75,17.35a3.36,3.36,0,0,1-.68,1.85,1.57,1.57,0,0,1-1,.26v.76H78.7v-.76a2.69,2.69,0,0,1-1.11-.3c-.18-.13-.27-.45-.27-.95a2.26,2.26,0,0,1,0-.26c0-.09,0-.2,0-.33l.14-1L79.8,1.5a1.87,1.87,0,0,1,1.39.63c.58.7.88,2,.91,3.94ZM88.84.48H83.92v.76a2.31,2.31,0,0,1,1,.31c.15.13.23.44.23.94a5.56,5.56,0,0,1,0,.67c0,.26-.08.57-.14,1l-2,13.24a4,4,0,0,1-.47,1.59,1.36,1.36,0,0,1-.87.52v.76H86.5v-.76a2,2,0,0,1-1-.32,1.32,1.32,0,0,1-.23-.94c0-.09,0-.18,0-.28s0-.2,0-.3l.13-1,2-13.24A4.09,4.09,0,0,1,88,1.76a1.45,1.45,0,0,1,.87-.52ZM99.11,7.11a21,21,0,0,1-2,9.07q-2.16,4.61-5,4.6a3.28,3.28,0,0,1-2.88-1.92,10.29,10.29,0,0,1-1.11-5.14,21.08,21.08,0,0,1,2.07-9.19C91.63,1.51,93.25,0,95,0A3.36,3.36,0,0,1,98,1.92,10,10,0,0,1,99.11,7.11ZM96.72,4.6a7.18,7.18,0,0,0-.41-2.55c-.28-.7-.7-1-1.29-1-1.37,0-2.52,2.17-3.46,6.53a40.7,40.7,0,0,0-1.06,8.26,10,10,0,0,0,.2,2.2c.26,1.18.74,1.77,1.43,1.77a2.2,2.2,0,0,0,1.78-1.29,18.75,18.75,0,0,0,1.65-4.93,41.1,41.1,0,0,0,.85-4.83A34.65,34.65,0,0,0,96.72,4.6Zm11.1-3.36a1.66,1.66,0,0,1,.9.33,2.08,2.08,0,0,1,.4,1.48,12.85,12.85,0,0,1-.1,1.34c0,.41-.11.87-.18,1.39l-1.29,8.34L104,.48h-3.33v.76a1.7,1.7,0,0,1,.78.24,2,2,0,0,1,.51,1.06l.07.3L100.13,15a24,24,0,0,1-.75,3.61,1.35,1.35,0,0,1-.93.9v.76h3.45v-.76a1.67,1.67,0,0,1-.88-.32,1.88,1.88,0,0,1-.44-1.44,7.09,7.09,0,0,1,0-.79c0-.43.13-1.09.27-2l1.64-10.57,4.29,16.33h.41l2.3-15a28.78,28.78,0,0,1,.67-3.42c.18-.59.44-.93.78-1l.23-.06V.48h-3.39ZM125,7.11a21,21,0,0,1-2,9.07c-1.45,3.07-3.1,4.6-5,4.6a3.28,3.28,0,0,1-2.87-1.92A10.29,10.29,0,0,1,114,13.72a21.22,21.22,0,0,1,2.06-9.19Q118.22,0,120.91,0a3.36,3.36,0,0,1,2.92,1.92A10,10,0,0,1,125,7.11ZM122.59,4.6a7,7,0,0,0-.41-2.55,1.37,1.37,0,0,0-1.28-1c-1.37,0-2.53,2.17-3.46,6.53a40.11,40.11,0,0,0-1.07,8.26,10.65,10.65,0,0,0,.2,2.2q.39,1.77,1.44,1.77a2.2,2.2,0,0,0,1.77-1.29,18.29,18.29,0,0,0,1.66-4.93,45.71,45.71,0,0,0,.85-4.83A36.53,36.53,0,0,0,122.59,4.6Zm14.26-3.3.24-.06V.48h-3.4v.76a1.74,1.74,0,0,1,.91.33,2.13,2.13,0,0,1,.4,1.48c0,.28,0,.73-.11,1.34,0,.41-.11.87-.18,1.39l-1.29,8.34L129.83.48h-3.32v.76a1.69,1.69,0,0,1,.77.24,1.9,1.9,0,0,1,.51,1.06l.07.3L126,15a27,27,0,0,1-.75,3.61,1.35,1.35,0,0,1-.93.9v.76h3.44v-.76a1.67,1.67,0,0,1-.88-.32,1.92,1.92,0,0,1-.44-1.44c0-.26,0-.52,0-.79.05-.43.13-1.09.27-2l1.65-10.57,4.29,16.33h.41l2.29-15a31.07,31.07,0,0,1,.67-3.42C136.25,1.72,136.52,1.38,136.85,1.3Zm8.52,13.06a8.55,8.55,0,0,1-2.19,3.87,4.44,4.44,0,0,1-2.94,1,1,1,0,0,1-.68-.21.9.9,0,0,1-.24-.7,3.4,3.4,0,0,1,0-.48c0-.14,0-.28,0-.44l2.15-14.08a3.69,3.69,0,0,1,.5-1.64,2.22,2.22,0,0,1,1.16-.48V.48H138v.76a2.2,2.2,0,0,1,1,.31c.16.13.24.44.24.94a5.73,5.73,0,0,1-.05.67c0,.26-.07.57-.13,1l-2,13.23a4,4,0,0,1-.47,1.6,1.36,1.36,0,0,1-.87.52v.76h9.16l1-5.74ZM151.79.48v.76a1.52,1.52,0,0,1,.76.2,1.21,1.21,0,0,1,.37,1,4.09,4.09,0,0,1-.17,1.09c-.07.24-.16.5-.27.79L150.32,9.8l-1.18-6.44a4.51,4.51,0,0,1-.08-.6,4.37,4.37,0,0,1,0-.46c0-.43.09-.71.27-.83a1.75,1.75,0,0,1,.87-.23V.48h-4.63v.76a.94.94,0,0,1,.8.4,5.08,5.08,0,0,1,.42,1.44L148.2,11l-1,6.35a3.35,3.35,0,0,1-.61,1.73,1.91,1.91,0,0,1-1.06.39v.76h5.32v-.76a2,2,0,0,1-.95-.25,1.29,1.29,0,0,1-.33-1.05,7.29,7.29,0,0,1,.06-.73q.06-.51.12-.84l.82-5.46,3.12-7.89a5.54,5.54,0,0,1,.89-1.59,1.28,1.28,0,0,1,.63-.41V.48Z',\n opacity: 1, strokeColor: '', fillColor: '#192760', width: 155.237, height: 20.783, stampFillColor: '#dce3ef', stampStrokeColor: '',\n };\n }\n break;\n }\n if (stampCollection) {\n stampCollection.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.currentStampAnnotation = stampCollection;\n return stampCollection;\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.saveStampAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n if (this.pdfViewer.nameTable[pageAnnotationObject.annotations[z].randomId]) {\n pageAnnotationObject.annotations[z].wrapperBounds = this.pdfViewer.nameTable[pageAnnotationObject.annotations[z].randomId].wrapper.bounds;\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.storeStampInSession = function (pageNumber, annotation) {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var currentAnnotation = Math.round(JSON.stringify(annotation).length / 1024);\n this.pdfViewer.annotationModule.isFormFieldShape = false;\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_stamp');\n var index = 0;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (!storeObject) {\n this.pdfViewer.annotationModule.storeAnnotationCollections(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_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n }\n else {\n this.pdfViewer.annotationModule.storeAnnotationCollections(annotation, pageNumber);\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n }\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[pageIndex]) {\n annotObject[pageIndex].annotations.push(annotation);\n index = annotObject[pageIndex].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_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n }\n return index;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.updateSessionStorage = function (annotation, id, type) {\n if (id != null) {\n for (var p = 0; p < annotation.annotations.length; p++) {\n if (annotation.annotations[p].id === id) {\n annotation = annotation.annotations[p];\n break;\n }\n }\n }\n if (type === 'Rotate') {\n annotation = annotation.annotations[0];\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n // eslint-disable-next-line\n var bounds = annotation.bounds;\n var annotObject = JSON.parse(storeObject);\n for (var k = 0; k < annotObject.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotObject[k];\n for (var j = 0; j < currentAnnot.annotations.length; j++) {\n if (annotObject[k].annotations[j] != null && annotObject[k].annotations[j].randomId === annotation.id) {\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n }\n // eslint-disable-next-line max-len\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, annotObject[k].annotations[j].pageNumber);\n if (type !== 'delete') {\n if (annotObject[pageIndex]) {\n // eslint-disable-next-line max-len\n //annotObject[k].annotations[j].modifiedDate = new Date().toLocaleString();\n if (annotation.wrapper.children[1]) {\n annotObject[k].annotations[j].opacity = annotation.wrapper.children[1].style.opacity;\n }\n else {\n annotObject[k].annotations[j].opacity = annotation.wrapper.children[0].style.opacity;\n }\n annotObject[k].annotations[j].rotateAngle = annotation.rotateAngle;\n // eslint-disable-next-line max-len\n annotObject[k].annotations[j].bounds = { left: bounds.x, top: bounds.y, width: annotation.wrapper.actualSize.width, height: annotation.wrapper.actualSize.height, right: bounds.right, bottom: bounds.bottom };\n }\n }\n else {\n annotObject[k].annotations.splice(j, 1);\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n break;\n }\n }\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.saveImportedStampAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n var isDynamic = false;\n // eslint-disable-next-line\n var stampAnnotation;\n // eslint-disable-next-line\n var stampName = annotation['IsDynamic'];\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n annotation.allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n if (annotation.Subject && stampName) {\n stampAnnotation = this.retrieveDynamicStampAnnotation(annotation.Subject);\n isDynamic = true;\n }\n else if (annotation.Subject) {\n stampAnnotation = this.retrievestampAnnotation(annotation.Subject);\n if (annotation.Subject === 'Accepted' || annotation.Subject === 'Rejected') {\n // eslint-disable-next-line\n var collectionData = processPathData(stampAnnotation.pathdata);\n stampAnnotation.pathdata = splitArrayCollection(collectionData);\n isDynamic = true;\n }\n }\n else {\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, allowedInteractions: annotation.allowedInteractions,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: annotation.FillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: annotation.ModifiedDate, pageNumber: pageNumber, icon: '', stampAnnotationPath: this.findImageData(annotation.Apperarance), randomId: 'image', isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: ' ',\n bounds: this.calculateImagePosition(annotation.Rect, true), annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.annotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock, isMaskedImage: annotation.IsMaskedImage, customStampName: annotation.CustomStampName\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_stamp');\n }\n if (stampAnnotation) {\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'path', author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: stampAnnotation.stampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: annotation.ModifiedDate, pageNumber: pageNumber, icon: stampAnnotation.iconName, stampAnnotationPath: stampAnnotation.pathdata, randomId: 'stamp', isDynamicStamp: false, dynamicText: this.dynamicText,\n // eslint-disable-next-line max-len\n bounds: this.calculateImagePosition(annotation.Rect, true), annotName: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp',\n // eslint-disable-next-line max-len\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.isPrint, isCommentLock: annotation.IsCommentLock, isMaskedImage: annotation.IsMaskedImage, customStampName: ''\n };\n if (isDynamic) {\n annotationObject.dynamicText = this.findDynamicText(annotation.Apperarance, annotation.Subject);\n annotationObject.isDynamicStamp = true;\n }\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_stamp');\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.updateStampAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n // eslint-disable-next-line\n var stampAnnotation;\n // eslint-disable-next-line\n var stampName = annotation['IsDynamic'];\n // eslint-disable-next-line\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isImageStamp = this.stampImageData(annotation);\n if (annotation.Subject && stampName && annotation.Subject !== 'Draft' && !isImageStamp) {\n stampAnnotation = this.retrieveDynamicStampAnnotation(annotation.Subject);\n }\n else if (annotation.Subject && !isImageStamp) {\n stampAnnotation = this.retrievestampAnnotation(annotation.Subject);\n }\n else {\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.customStampSettings);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'image', author: annotation.Author, modifiedDate: annotation.ModifiedDate, allowedInteractions: annotation.allowedInteractions,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: annotation.StampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, pageNumber: pageNumber, randomId: 'stamp', isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText,\n // eslint-disable-next-line max-len\n annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp', annotationSettings: annotation.AnnotationSettings, customData: this.pdfViewer.annotation.getCustomData(annotation),\n isPrint: annotation.isPrint, isMaskedImage: annotation.IsMaskedImage, customStampName: annotation.CustomStampName\n };\n return annotationObject;\n }\n if (stampAnnotation) {\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n stampAnnotationType: 'path', author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject,\n note: annotation.Note, strokeColor: annotation.StrokeColor, fillColor: annotation.FillColor, opacity: annotation.Opacity, stampFillcolor: annotation.StampFillColor,\n // eslint-disable-next-line max-len\n rotateAngle: annotation.RotateAngle, creationDate: stampAnnotation.creationDate, pageNumber: pageNumber, icon: stampAnnotation.iconName, stampAnnotationPath: stampAnnotation.pathdata, randomId: 'stamp', isDynamicStamp: this.pdfViewerBase.isDynamicStamp, dynamicText: this.dynamicText,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Rect.X, top: annotation.Rect.Y, width: annotation.Rect.Width, height: annotation.Rect.Height }, annotationId: annotation.AnnotName, comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, author: annotation.Author, modifiedDate: annotation.ModifiedDate }, shapeAnnotationType: 'stamp', customData: this.pdfViewer.annotation.getCustomData(annotation),\n isPrint: annotation.isPrint, isMaskedImage: annotation.IsMaskedImage, customStampName: ''\n };\n return annotationObject;\n }\n };\n StampAnnotation.prototype.stampImageData = function (annot) {\n var isStampImage = false;\n if (annot && annot.Apperarance) {\n for (var j = 0; j < annot.Apperarance.length; j++) {\n if (annot.Apperarance[j].imagedata) {\n isStampImage = true;\n break;\n }\n }\n }\n return isStampImage;\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.findImageData = function (Apperance) {\n if (Apperance) {\n for (var j = 0; j < Apperance.length; j++) {\n // eslint-disable-next-line\n var stampShapes = Apperance[j];\n // eslint-disable-next-line\n var imageData = stampShapes['imagedata'];\n if (imageData) {\n return imageData;\n }\n }\n }\n return '';\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.findDynamicText = function (apperance, subject) {\n var dynamicText = '';\n if (apperance) {\n for (var d = 0; d < apperance.length; d++) {\n // eslint-disable-next-line\n var stampShapes = apperance[d];\n // eslint-disable-next-line\n var stampType = stampShapes['type'];\n // eslint-disable-next-line\n var isImport = stampShapes['isImport'];\n // eslint-disable-next-line\n if (stampType === 'string' && stampShapes['text'] !== undefined) {\n // eslint-disable-next-line\n var text = void 0;\n if (!isImport) {\n // eslint-disable-next-line\n var stampText = stampShapes['text'].split('(');\n if (stampText[1]) {\n // eslint-disable-next-line\n text = stampText[1].split(')')[0];\n }\n else {\n // eslint-disable-next-line\n text = stampShapes['text'];\n }\n }\n else {\n // eslint-disable-next-line\n text = stampShapes['text'];\n }\n // eslint-disable-next-line\n if (text.toLowerCase() !== subject.toLowerCase()) {\n dynamicText += text;\n }\n }\n }\n return dynamicText;\n }\n return dynamicText;\n };\n // eslint-disable-next-line\n StampAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n StampAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\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.annotName === pageAnnotations[i].annotName) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.wrapper.bounds.x, top: annotationBase.wrapper.bounds.y, width: annotationBase.wrapper.bounds.width, height: annotationBase.wrapper.bounds.height };\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n StampAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_stamp'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_stamp', annotationStringified);\n }\n }\n };\n /**\n * This method used to add annotations with using programmatically.\n *\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @param pageNumber - It describes about the annotation page number\n * @param dynamicStampItem - It describe which type of dynamic stamp\n * @param signStampItem - It describe which type of sign stamp\n * @param standardBusinessStampItem - It describe which type of standard business stamp\n * @returns Object\n * @private\n */\n StampAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Checking the all stamps are present\n if (!dynamicStampItem && !signStampItem && !standardBusinessStampItem) {\n dynamicStampItem = DynamicStampItem.Approved;\n }\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n var page = pageNumber;\n //Creating annotation settings\n var stampAnnotations = [];\n var stampName = '';\n var stampAnnotationtype = 'Stamp';\n var apperarance = [];\n var isDynamic = false;\n var author = annotationObject.author ? annotationObject.author : 'Guest';\n var annotationSelectorSettings = this.pdfViewer.stampSettings.annotationSelectorSettings ? this.pdfViewer.stampSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stampSettings);\n var allowedInteractions = this.pdfViewer.stampSettings.allowedInteractions ? this.pdfViewer.stampSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n //checking the stamp is custom and Updating the string and datetime values for dynamic stamp\n if (annotationObject.customStamps && annotationObject.customStamps[0].customStampName) {\n apperarance[0] = {\n imagedata: annotationObject.customStamps[0].customStampImageSource,\n isImport: true\n };\n this.customStampName = annotationObject.customStamps[0].customStampName;\n this.pdfViewerBase.customStampCollection.push(annotationObject.customStamps[0]);\n stampAnnotationtype = 'Image';\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 100;\n }\n else if (dynamicStampItem) {\n var dateTime = [];\n dateTime = currentDateString.split(' ');\n stampName = dynamicStampItem.toString();\n apperarance[0] = { baseFontName: 'Helvetica-BoldOblique', currentFontname: '95b303ab-d397-438a-83af-e2ff8a9900f1', fontSize: 10, isImport: true, text: 'By ' + author + ' at ' + dateTime[1] + dateTime[2] + ' , ' + dateTime[0], type: 'string' };\n isDynamic = true;\n annotationObject.width = annotationObject.width ? annotationObject.width : 140;\n annotationObject.height = annotationObject.height ? annotationObject.height : 55;\n }\n else if (signStampItem) {\n stampName = signStampItem.toString();\n if (signStampItem == SignStampItem.Accepted || signStampItem == SignStampItem.Rejected) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 35;\n annotationObject.height = annotationObject.height ? annotationObject.height : 35;\n }\n else if (signStampItem == SignStampItem.SignHere) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 110;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else if (signStampItem == SignStampItem.Witness) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 130;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else if (signStampItem == SignStampItem.InitialHere) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 90;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n }\n else if (standardBusinessStampItem) {\n stampName = standardBusinessStampItem.toString();\n if (standardBusinessStampItem == StandardBusinessStampItem.Final || standardBusinessStampItem == StandardBusinessStampItem.Draft) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 110;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else if (standardBusinessStampItem == StandardBusinessStampItem.Void) {\n annotationObject.width = annotationObject.width ? annotationObject.width : 100;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n else {\n annotationObject.width = annotationObject.width ? annotationObject.width : 130;\n annotationObject.height = annotationObject.height ? annotationObject.height : 30;\n }\n }\n //Creating Annotation objects with it's proper properties\n var stickyNotes = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'stamp',\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Apperarance: apperarance ? apperarance : null,\n Author: author,\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n FillColor: '#192760',\n Icon: 0,\n IsCommentLock: false,\n IsDynamic: isDynamic,\n IsLocked: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Name: null,\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Rect: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n RotateAngle: 0,\n StampAnnotationtype: stampAnnotationtype,\n State: '',\n StateModel: '',\n StrokeColor: '#dce3ef',\n Subject: stampName,\n matrix: null,\n CustomStampName: this.customStampName ? this.customStampName : '',\n pageNumber: page\n };\n //Adding the annotation object to an array and return it\n stampAnnotations[0] = stickyNotes;\n return { stampAnnotations: stampAnnotations };\n };\n /**\n * @private\n */\n StampAnnotation.prototype.triggerAnnotationAdd = function (annot, annotation) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Stamp', annot.bounds, settings);\n };\n return StampAnnotation;\n}());\nexport { StampAnnotation };\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, KeyboardEvents, rippleEffect } from '@syncfusion/ej2-base';\nimport { getUniqueID, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { isVisible, closest, attributes, detach, select, addClass, removeClass, append } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Collection, Animation } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, formatUnit, selectAll, SanitizeHtmlHelper, isRippleEnabled } from '@syncfusion/ej2-base';\nvar CLS_ACRDN_ROOT = 'e-acrdn-root';\nvar CLS_ROOT = 'e-accordion';\nvar CLS_ITEM = 'e-acrdn-item';\nvar CLS_ITEMFOCUS = 'e-item-focus';\nvar CLS_ITEMHIDE = 'e-hide';\nvar CLS_HEADER = 'e-acrdn-header';\nvar CLS_HEADERICN = 'e-acrdn-header-icon';\nvar CLS_HEADERCTN = 'e-acrdn-header-content';\nvar CLS_CONTENT = 'e-acrdn-panel';\nvar CLS_CTENT = 'e-acrdn-content';\nvar CLS_TOOGLEICN = 'e-toggle-icon';\nvar CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons';\nvar CLS_EXPANDICN = 'e-expand-icon';\nvar CLS_RTL = 'e-rtl';\nvar CLS_CTNHIDE = 'e-content-hide';\nvar CLS_SLCT = 'e-select';\nvar CLS_SLCTED = 'e-selected';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_ANIMATE = 'e-animate';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_TOGANIMATE = 'e-toggle-animation';\nvar CLS_NEST = 'e-nested';\nvar CLS_EXPANDSTATE = 'e-expand-state';\nvar CLS_CONTAINER = 'e-accordion-container';\n/**\n * Objects used for configuring the Accordion expanding item action properties.\n */\nvar AccordionActionSettings = /** @class */ (function (_super) {\n __extends(AccordionActionSettings, _super);\n function AccordionActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], AccordionActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AccordionActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], AccordionActionSettings.prototype, \"easing\", void 0);\n return AccordionActionSettings;\n}(ChildProperty));\nexport { AccordionActionSettings };\n/**\n * Objects used for configuring the Accordion animation properties.\n */\nvar AccordionAnimationSettings = /** @class */ (function (_super) {\n __extends(AccordionAnimationSettings, _super);\n function AccordionAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"expand\", void 0);\n return AccordionAnimationSettings;\n}(ChildProperty));\nexport { AccordionAnimationSettings };\n/**\n * An item object that is used to configure Accordion items.\n */\nvar AccordionItem = /** @class */ (function (_super) {\n __extends(AccordionItem, _super);\n function AccordionItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"content\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"expanded\", void 0);\n __decorate([\n Property(true)\n ], AccordionItem.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"disabled\", void 0);\n __decorate([\n Property()\n ], AccordionItem.prototype, \"id\", void 0);\n return AccordionItem;\n}(ChildProperty));\nexport { AccordionItem };\n/**\n * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space.\n * ```html\n *
    \n * \n * ```\n */\nvar Accordion = /** @class */ (function (_super) {\n __extends(Accordion, _super);\n /**\n * Initializes a new instance of the Accordion class.\n *\n * @param {AccordionModel} options - Specifies Accordion model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion.\n */\n function Accordion(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Contains the keyboard configuration of the Accordion.\n */\n _this.keyConfigs = {\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n enter: 'enter',\n space: 'space',\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 Accordion.prototype.destroy = function () {\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n var ele = this.element;\n _super.prototype.destroy.call(this);\n this.unwireEvents();\n this.isDestroy = true;\n this.restoreContent(null);\n [].slice.call(ele.children).forEach(function (el) {\n ele.removeChild(el);\n });\n if (this.trgtEle) {\n this.trgtEle = null;\n while (this.ctrlTem.firstElementChild) {\n ele.appendChild(this.ctrlTem.firstElementChild);\n }\n this.ctrlTem = null;\n }\n ele.classList.remove(CLS_ACRDN_ROOT);\n ele.removeAttribute('style');\n this.element.removeAttribute('data-ripple');\n if (!this.isNested && isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n Accordion.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.isNested = false;\n this.templateEle = [];\n if (!this.isDestroy) {\n this.isDestroy = false;\n }\n if (nested && nested.firstElementChild && nested.firstElementChild.firstElementChild) {\n if (nested.firstElementChild.firstElementChild.classList.contains(CLS_ROOT)) {\n nested.classList.add(CLS_NEST);\n this.isNested = true;\n }\n }\n else {\n this.element.classList.add(CLS_ACRDN_ROOT);\n }\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Accordion.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Accordion.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n /**\n * To initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Accordion.prototype.render = function () {\n this.initializeHeaderTemplate();\n this.initializeItemTemplate();\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Accordion.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n setStyle(this.element, { 'width': width, 'height': height });\n if (isNOU(this.initExpand)) {\n this.initExpand = [];\n }\n if (this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n };\n Accordion.prototype.renderControl = function () {\n this.trgtEle = (this.element.children.length > 0) ? select('div', this.element) : null;\n this.renderItems();\n this.initItemExpand();\n };\n Accordion.prototype.wireFocusEvents = function () {\n var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM));\n for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) {\n var item = acrdItem_1[_i];\n var headerEle = item.querySelector('.' + CLS_HEADER);\n if (item.childElementCount > 0 && headerEle) {\n EventHandler.clearEvents(headerEle);\n EventHandler.add(headerEle, 'focus', this.focusIn, this);\n EventHandler.add(headerEle, 'blur', this.focusOut, this);\n }\n }\n };\n Accordion.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n };\n Accordion.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n if (!this.isNested && !this.isDestroy) {\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });\n }\n if (!this.isNested) {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n }\n };\n Accordion.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return templateCompiler(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n Accordion.prototype.initializeHeaderTemplate = function () {\n if (this.headerTemplate) {\n this.headerTemplateFn = this.templateParser(this.headerTemplate);\n }\n };\n Accordion.prototype.initializeItemTemplate = function () {\n if (this.itemTemplate) {\n this.itemTemplateFn = this.templateParser(this.itemTemplate);\n }\n };\n Accordion.prototype.getHeaderTemplate = function () {\n return this.headerTemplateFn;\n };\n Accordion.prototype.getItemTemplate = function () {\n return this.itemTemplateFn;\n };\n Accordion.prototype.focusIn = function (e) {\n e.target.parentElement.classList.add(CLS_ITEMFOCUS);\n };\n Accordion.prototype.focusOut = function (e) {\n e.target.parentElement.classList.remove(CLS_ITEMFOCUS);\n };\n Accordion.prototype.ctrlTemplate = function () {\n this.ctrlTem = this.element.cloneNode(true);\n var innerEles;\n var rootEle = select('.' + CLS_CONTAINER, this.element);\n if (rootEle) {\n innerEles = rootEle.children;\n }\n else {\n innerEles = this.element.children;\n }\n var items = [];\n [].slice.call(innerEles).forEach(function (el) {\n items.push({\n header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',\n content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : ''\n });\n el.parentNode.removeChild(el);\n });\n if (rootEle) {\n this.element.removeChild(rootEle);\n }\n this.setProperties({ items: items }, true);\n };\n Accordion.prototype.toggleIconGenerate = function () {\n var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN });\n var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN });\n tglIcon.appendChild(hdrColIcon);\n return tglIcon;\n };\n Accordion.prototype.initItemExpand = function () {\n var len = this.initExpand.length;\n if (len === 0) {\n return;\n }\n if (this.expandMode === 'Single') {\n this.expandItem(true, this.initExpand[len - 1]);\n }\n else {\n for (var i = 0; i < len; i++) {\n this.expandItem(true, this.initExpand[parseInt(i.toString(), 10)]);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.renderItems = function () {\n var _this = this;\n var ele = this.element;\n var innerItem;\n var innerDataSourceItem;\n if (!isNOU(this.trgtEle)) {\n this.ctrlTemplate();\n }\n if (this.dataSource.length > 0) {\n this.dataSource.forEach(function (item, index) {\n innerDataSourceItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerDataSourceItem);\n if (innerDataSourceItem.childElementCount > 0) {\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n else {\n var items = this.items;\n if (ele && items.length > 0) {\n items.forEach(function (item, index) {\n innerItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerItem);\n if (innerItem.childElementCount > 0) {\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clickHandler = function (e) {\n var trgt = e.target;\n var items = this.getItems();\n var eventArgs = {};\n var tglIcon;\n var acrdEle = closest(trgt, '.' + CLS_ROOT);\n if (acrdEle !== this.element) {\n return;\n }\n trgt.classList.add('e-target');\n var acrdnItem = closest(trgt, '.' + CLS_ITEM);\n var acrdnHdr = closest(trgt, '.' + CLS_HEADER);\n var acrdnCtn = closest(trgt, '.' + CLS_CONTENT);\n if (acrdnItem && (isNOU(acrdnHdr) || isNOU(acrdnCtn))) {\n acrdnHdr = acrdnItem.children[0];\n acrdnCtn = acrdnItem.children[1];\n }\n if (acrdnHdr) {\n tglIcon = select('.' + CLS_TOOGLEICN, acrdnHdr);\n }\n var acrdnCtnItem;\n if (acrdnHdr) {\n acrdnCtnItem = closest(acrdnHdr, '.' + CLS_ITEM);\n }\n else if (acrdnCtn) {\n acrdnCtnItem = closest(acrdnCtn, '.' + CLS_ITEM);\n }\n var index = this.getIndexByItem(acrdnItem);\n if (acrdnCtnItem) {\n eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)];\n }\n eventArgs.originalEvent = e;\n var ctnCheck = !isNOU(tglIcon) && acrdnItem.childElementCount <= 1;\n if (ctnCheck && (isNOU(acrdnCtn) || !isNOU(select('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) {\n acrdnItem.appendChild(this.contentRendering(index));\n this.ariaAttrUpdate(acrdnItem);\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n else {\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {\n var _this = this;\n var acrdActive = [];\n this.trigger('clicked', eventArgs);\n var cntclkCheck = (acrdnCtn && !isNOU(select('.e-target', acrdnCtn)));\n var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT;\n var inlineEleAcrdn = acrdnCtn && !isNOU(select('.' + CLS_ROOT, acrdnCtn)) && isNOU(closest(trgt, inlineAcrdnSel));\n var nestContCheck = acrdnCtn && isNOU(select('.' + CLS_ROOT, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT) === this.element);\n cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);\n trgt.classList.remove('e-target');\n if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {\n return;\n }\n var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);\n var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;\n [].slice.call(acrdnchild).forEach(function (el) {\n if (el.classList.contains(CLS_ACTIVE)) {\n acrdActive.push(el);\n }\n });\n var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']'));\n if (acrdAniEle.length > 0) {\n for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {\n var el = acrdAniEle_1[_i];\n acrdActive.push(el.parentElement);\n }\n }\n var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';\n var sameHeader = false;\n if (!isNOU(acrdnItem) && !isNOU(acrdnHdr)) {\n var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);\n var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n if (isNOU(acrdnCtn_1)) {\n return;\n }\n sameHeader = (expandState === acrdnItem);\n if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {\n this.collapse(acrdnCtn_1);\n }\n else {\n if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {\n acrdActive.forEach(function (el) {\n _this.collapse(select('.' + CLS_CONTENT, el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n }\n this.expand(acrdnCtn_1);\n }\n if (!isNOU(expandState) && !sameHeader) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n }\n };\n Accordion.prototype.eleMoveFocus = function (action, root, trgt) {\n var clst;\n var clstItem = closest(trgt, '.' + CLS_ITEM);\n if (trgt === root) {\n clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER));\n }\n else if (trgt.classList.contains(CLS_HEADER)) {\n clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling);\n if (clstItem) {\n clst = select('.' + CLS_HEADER, clstItem);\n }\n }\n if (clst) {\n clst.focus();\n }\n };\n Accordion.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n var header = closest(e.target, CLS_HEADER);\n if (isNOU(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) {\n return;\n }\n var clst;\n var root = this.element;\n var content;\n switch (e.action) {\n case 'moveUp':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'moveDown':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'space':\n case 'enter':\n content = trgt.nextElementSibling;\n if (!isNOU(content) && content.classList.contains(CLS_CONTENT)) {\n if (content.getAttribute('e-animate') !== 'true') {\n trgt.click();\n }\n }\n else {\n trgt.click();\n }\n e.preventDefault();\n break;\n case 'home':\n case 'end':\n clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0];\n clst.focus();\n e.preventDefault();\n break;\n }\n };\n Accordion.prototype.headerEleGenerate = function () {\n var header = this.createElement('div', { className: CLS_HEADER, id: getUniqueID('acrdn_header') });\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-disabled': 'false', 'aria-expanded': 'false'\n };\n attributes(header, ariaAttr);\n return header;\n };\n Accordion.prototype.renderInnerItem = function (item, index) {\n var innerEle = this.createElement('div', {\n className: CLS_ITEM, id: item.id || getUniqueID('acrdn_item')\n });\n if (this.headerTemplate) {\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n append(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle);\n innerEle.appendChild(ctnEle);\n ctnEle.appendChild(this.toggleIconGenerate());\n this.add(innerEle, CLS_SLCT);\n return innerEle;\n }\n if (item.header && this.angularnativeCondiCheck(item, 'header')) {\n if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {\n item.header = SanitizeHtmlHelper.sanitize(item.header);\n }\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n ctnEle.appendChild(this.fetchElement(hdrEle, item.header, index, true));\n innerEle.appendChild(ctnEle);\n }\n var hdr = select('.' + CLS_HEADER, innerEle);\n if (item.expanded && !isNOU(index) && (!this.enablePersistence)) {\n if (this.initExpand.indexOf(index) === -1) {\n this.initExpand.push(index);\n }\n }\n if (item.cssClass) {\n addClass([innerEle], item.cssClass.split(' '));\n }\n if (item.disabled) {\n addClass([innerEle], CLS_DISABLE);\n }\n if (item.visible === false) {\n addClass([innerEle], CLS_ITEMHIDE);\n }\n if (item.iconCss) {\n var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN });\n var icon = this.createElement('span', { className: item.iconCss + ' e-icons' });\n hdrIcnEle.appendChild(icon);\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n hdr.appendChild(hdrIcnEle);\n innerEle.appendChild(hdr);\n }\n else {\n hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);\n }\n }\n if (item.content && this.angularnativeCondiCheck(item, 'content')) {\n var hdrIcon = this.toggleIconGenerate();\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n innerEle.appendChild(hdr);\n }\n hdr.appendChild(hdrIcon);\n this.add(innerEle, CLS_SLCT);\n }\n return innerEle;\n };\n Accordion.prototype.angularnativeCondiCheck = function (item, prop) {\n var property = prop === 'content' ? item.content : item.header;\n var content = property;\n if (this.isAngular && !isNOU(content.elementRef)) {\n var data = content.elementRef.nativeElement.data;\n if (isNOU(data) || data === '' || (data.indexOf('bindings=') === -1)) {\n return true;\n }\n var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', ''));\n if (!isNOU(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n return true;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Accordion.prototype.fetchElement = function (ele, value, index, isHeader) {\n var templateFn;\n var temString;\n try {\n if (document.querySelectorAll(value).length && value !== 'Button') {\n var eleVal = document.querySelector(value);\n temString = eleVal.outerHTML.trim();\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n if (typeof (value) === 'string') {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\n }\n else if (!isNOU(this.trgtEle) && (value instanceof (HTMLElement))) {\n ele.appendChild(value);\n ele.firstElementChild.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n var tempArray;\n if (!isNOU(templateFn)) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var templateProps = void 0;\n var templateName = void 0;\n if (ele.classList.contains(CLS_HEADERCTN)) {\n templateProps = this.element.id + index + '_header';\n templateName = 'header';\n }\n else if (ele.classList.contains(CLS_CTENT)) {\n templateProps = this.element.id + index + '_content';\n templateName = 'content';\n }\n tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0 && !(isNOU(tempArray[0].tagName) && tempArray.length === 1)) {\n [].slice.call(tempArray).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 = SanitizeHtmlHelper.sanitize(value);\n }\n if (!isNOU(temString)) {\n if (this.templateEle.indexOf(value) === -1) {\n this.templateEle.push(value);\n }\n }\n return ele;\n };\n Accordion.prototype.ariaAttrUpdate = function (itemEle) {\n var header = select('.' + CLS_HEADER, itemEle);\n var content = select('.' + CLS_CONTENT, itemEle);\n header.setAttribute('aria-controls', content.id);\n content.setAttribute('aria-labelledby', header.id);\n content.setAttribute('role', 'region');\n };\n Accordion.prototype.contentRendering = function (index) {\n var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: getUniqueID('acrdn_panel') });\n attributes(itemcnt, { 'aria-hidden': 'true' });\n var ctn = this.createElement('div', { className: CLS_CTENT });\n if (this.dataSource.length > 0) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n append(this.getItemTemplate()(this.dataSource[parseInt(index.toString(), 10)], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn);\n itemcnt.appendChild(ctn);\n }\n else {\n if (this.enableHtmlSanitizer && typeof (this.items[parseInt(index.toString(), 10)].content)) {\n this.items[parseInt(index.toString(), 10)].content =\n SanitizeHtmlHelper.sanitize(this.items[parseInt(index.toString(), 10)].content);\n }\n itemcnt.appendChild(this.fetchElement(ctn, this.items[parseInt(index.toString(), 10)].content, index, false));\n }\n return itemcnt;\n };\n Accordion.prototype.expand = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || (isVisible(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var acrdnRoot = closest(trgtItemEle, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n var animation = {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: true\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n icon.classList.add(CLS_TOGANIMATE);\n _this.expandedItemsPush(trgtItemEle);\n if (!isNOU(expandState)) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\n if ((animation.name === 'None')) {\n _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) {\n var _this = this;\n var height;\n this.lastActiveItemId = trgtItemEle.id;\n if (ef === 'SlideDown') {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n trgt.style.position = 'absolute';\n height = trgtItemEle.offsetHeight;\n trgt.style.maxHeight = (trgt.offsetHeight) + 'px';\n trgtItemEle.style.maxHeight = '';\n };\n animate.progress = function () {\n trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px';\n };\n animate.end = function () {\n setStyle(trgt, { 'position': '', 'maxHeight': '' });\n trgtItemEle.style.minHeight = '';\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n else {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n };\n animate.end = function () {\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(trgt, CLS_CTNHIDE);\n this.add(trgtItemEle, CLS_SLCTED);\n this.add(icon, CLS_EXPANDICN);\n if (progress === 'end') {\n this.add(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'false');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'true' });\n icon.classList.remove(CLS_TOGANIMATE);\n this.trigger('expanded', eventArgs);\n }\n };\n Accordion.prototype.expandedItemsPush = function (item) {\n var index = this.getIndexByItem(item);\n if (this.expandedIndices.indexOf(index) === -1) {\n var temp = [].slice.call(this.expandedIndices);\n temp.push(index);\n this.setProperties({ expandedIndices: temp }, true);\n }\n };\n Accordion.prototype.getIndexByItem = function (item) {\n var itemEle = this.getItemElements();\n return [].slice.call(itemEle).indexOf(item);\n };\n Accordion.prototype.getItemElements = function () {\n var itemEle = [];\n var itemCollection = this.element.children;\n [].slice.call(itemCollection).forEach(function (el) {\n if (el.classList.contains(CLS_ITEM)) {\n itemEle.push(el);\n }\n });\n return itemEle;\n };\n Accordion.prototype.expandedItemsPop = function (item) {\n var index = this.getIndexByItem(item);\n var temp = [].slice.call(this.expandedIndices);\n temp.splice(temp.indexOf(index), 1);\n this.setProperties({ expandedIndices: temp }, true);\n };\n Accordion.prototype.collapse = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var animation = {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: false\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n _this.expandedItemsPop(trgtItemEle);\n trgtItemEle.classList.remove(CLS_EXPANDSTATE);\n icon.classList.add(CLS_TOGANIMATE);\n if ((animation.name === 'None')) {\n _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) {\n var _this = this;\n var height;\n var trgtHeight;\n var itemHeight;\n var remain;\n this.lastActiveItemId = trgtItEl.id;\n if (ef === 'SlideUp') {\n animate.begin = function () {\n itemHeight = trgtItEl.offsetHeight;\n trgtItEl.style.minHeight = itemHeight + 'px';\n trgt.style.position = 'absolute';\n height = trgtItEl.offsetHeight;\n trgtHeight = trgt.offsetHeight;\n trgt.style.maxHeight = trgtHeight + 'px';\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.progress = function () {\n remain = ((height - (trgtHeight - trgt.offsetHeight)));\n if (remain < itemHeight) {\n trgtItEl.style.minHeight = remain + 'px';\n }\n };\n animate.end = function () {\n trgt.style.display = 'none';\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n trgtItEl.style.minHeight = '';\n setStyle(trgt, { 'position': '', 'maxHeight': '', 'display': '' });\n };\n }\n else {\n animate.begin = function () {\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.end = function () {\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(icon, CLS_EXPANDICN);\n this.remove(trgtItemEle, CLS_SLCTED);\n if (progress === 'end') {\n this.add(trgt, CLS_CTNHIDE);\n icon.classList.remove(CLS_TOGANIMATE);\n this.remove(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'true');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'false' });\n this.trigger('expanded', eventArgs);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Accordion.prototype.getModuleName = function () {\n return 'accordion';\n };\n Accordion.prototype.getItems = function () {\n var items;\n if (this.itemTemplate && this.headerTemplate) {\n items = this.dataSource;\n }\n else {\n items = this.items;\n }\n return items;\n };\n /**\n * Adds new item to the Accordion with the specified index of the Accordion.\n *\n * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion.\n * @param {number} index - Number value that determines where the item should be added.\n * By default, item is added at the last index if the index is not specified.\n * @returns {void}\n */\n Accordion.prototype.addItem = function (item, index) {\n var _this = this;\n var ele = this.element;\n var itemEle = this.getItemElements();\n var items = this.getItems();\n if (isNOU(index)) {\n index = items.length;\n }\n if (ele.childElementCount >= index) {\n var addItems = (item instanceof Array) ? item : [item];\n addItems.forEach(function (addItem, i) {\n var itemIndex = index + i;\n items.splice(itemIndex, 0, addItem);\n var innerItemEle = _this.renderInnerItem(addItem, itemIndex);\n if (ele.childElementCount === itemIndex) {\n ele.appendChild(innerItemEle);\n }\n else {\n ele.insertBefore(innerItemEle, itemEle[parseInt(itemIndex.toString(), 10)]);\n }\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n _this.expandedIndices = [];\n _this.expandedItemRefresh(ele);\n if (addItem && addItem.expanded) {\n _this.expandItem(true, itemIndex);\n }\n });\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Accordion.prototype.expandedItemRefresh = function (ele) {\n var _this = this;\n var itemEle = this.getItemElements();\n [].slice.call(itemEle).forEach(function (el) {\n if (el.classList.contains(CLS_SLCTED)) {\n _this.expandedItemsPush(el);\n }\n });\n };\n /**\n * Dynamically removes item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be removed.\n * @returns {void}.\n */\n Accordion.prototype.removeItem = function (index) {\n if (this.isReact) {\n this.clearTemplate(['headerTemplate', 'itemTemplate'], index);\n }\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n var items = this.getItems();\n if (isNOU(ele)) {\n return;\n }\n this.restoreContent(index);\n detach(ele);\n items.splice(index, 1);\n this.expandedIndices = [];\n this.expandedItemRefresh(this.element);\n };\n /**\n * Sets focus to the specified index item header in Accordion.\n *\n * @param {number} index - Number value that determines which item should be focused.\n * @returns {void}.\n */\n Accordion.prototype.select = function (index) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || isNOU(select('.' + CLS_HEADER, ele))) {\n return;\n }\n ele.children[0].focus();\n };\n /**\n * Shows or hides the specified item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be hidden/shown.\n * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false.\n * If the `isHidden` value is false, the item is shown or else item it is hidden.\n * @returns {void}.\n */\n Accordion.prototype.hideItem = function (index, isHidden) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n if (isNOU(isHidden)) {\n isHidden = true;\n }\n if (isHidden) {\n this.add(ele, CLS_ITEMHIDE);\n }\n else {\n this.remove(ele, CLS_ITEMHIDE);\n }\n };\n /**\n * Enables/Disables the specified Accordion item.\n *\n * @param {number} index - Number value that determines which item should be enabled/disabled.\n * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false).\n * If the `isEnable` value is true, the item is enabled or else it is disabled.\n * @returns {void}.\n */\n Accordion.prototype.enableItem = function (index, isEnable) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n var eleHeader = ele.firstElementChild;\n if (isEnable) {\n this.remove(ele, CLS_DISABLE);\n attributes(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' });\n eleHeader.focus();\n }\n else {\n if (ele.classList.contains(CLS_ACTIVE)) {\n this.expandItem(false, index);\n this.eleMoveFocus('movedown', this.element, eleHeader);\n }\n this.add(ele, CLS_DISABLE);\n eleHeader.setAttribute('aria-disabled', 'true');\n eleHeader.removeAttribute('tabindex');\n }\n };\n /**\n * Expands/Collapses the specified Accordion item.\n *\n * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse.\n * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter.\n * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed.\n * @returns {void}.\n */\n Accordion.prototype.expandItem = function (isExpand, index) {\n var _this = this;\n var itemEle = this.getItemElements();\n if (isNOU(index)) {\n if (this.expandMode === 'Single' && isExpand) {\n var ele = itemEle[itemEle.length - 1];\n this.itemExpand(isExpand, ele, this.getIndexByItem(ele));\n }\n else {\n var item = select('#' + this.lastActiveItemId, this.element);\n [].slice.call(itemEle).forEach(function (el) {\n _this.itemExpand(isExpand, el, _this.getIndexByItem(el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n var expandedItem = select('.' + CLS_EXPANDSTATE, this.element);\n if (expandedItem) {\n expandedItem.classList.remove(CLS_EXPANDSTATE);\n }\n if (item) {\n item.classList.add(CLS_EXPANDSTATE);\n }\n }\n }\n else {\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) {\n return;\n }\n else {\n if (this.expandMode === 'Single') {\n this.expandItem(false);\n }\n this.itemExpand(isExpand, ele, index);\n }\n }\n };\n Accordion.prototype.itemExpand = function (isExpand, ele, index) {\n var ctn = ele.children[1];\n if (ele.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (isNOU(ctn) && isExpand) {\n ctn = this.contentRendering(index);\n ele.appendChild(ctn);\n this.ariaAttrUpdate(ele);\n this.expand(ctn);\n }\n else if (!isNOU(ctn)) {\n if (isExpand) {\n this.expand(ctn);\n }\n else {\n this.collapse(ctn);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.destroyItems = function () {\n this.restoreContent(null);\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) {\n detach(el);\n });\n };\n Accordion.prototype.restoreContent = function (index) {\n var ctnElePos;\n if (isNOU(index)) {\n ctnElePos = this.element;\n }\n else {\n ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[parseInt(index.toString(), 10)];\n }\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(ctnElePos.querySelector(eleStr))) {\n document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Accordion.prototype.updateItem = function (item, index) {\n if (!isNOU(item)) {\n var items = this.getItems();\n var itemObj = items[parseInt(index.toString(), 10)];\n items.splice(index, 1);\n this.restoreContent(index);\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n if (this.isReact || this.isAngular) {\n this.clearAccordionTemplate(header, 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, 'content', CLS_CTENT);\n }\n detach(item);\n this.addItem(itemObj, index);\n }\n };\n Accordion.prototype.setTemplate = function (template, toElement, index) {\n toElement.innerHTML = '';\n this.templateCompile(toElement, template, index);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.templateCompile = function (ele, cnt, index) {\n var tempEle = this.createElement('div');\n this.fetchElement(tempEle, cnt, index, false);\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Accordion.prototype.clearAccordionTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[\"\" + templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[\"\" + templateName].length; index++) {\n var registeredItem = registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)].rootNodes[0];\n var closestItem = closest(registeredItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], [registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[parseInt(index.toString(), 10)];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\n }\n }\n };\n Accordion.prototype.getPersistData = function () {\n var keyEntity = ['expandedIndices'];\n return this.addOnPersist(keyEntity);\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 {AccordionModel} newProp - It contains the new value of data.\n * @param {AccordionModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Accordion.prototype.onPropertyChanged = function (newProp, oldProp) {\n var acrdn = this.element;\n var isRefresh = false;\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 changedProp = Object.keys(newProp.items);\n for (var j = 0; j < changedProp.length; j++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(j.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)]);\n for (var k = 0; k < property.length; k++) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var oldVal = Object(oldProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var newVal = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var temp = property[parseInt(k.toString(), 10)];\n var content = select('.' + CLS_CTENT, item);\n if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) {\n this.updateItem(item, index);\n }\n if (property[parseInt(k.toString(), 10)] === 'cssClass' && !isNOU(item)) {\n if (oldVal) {\n removeClass([item], oldVal.split(' '));\n }\n if (newVal) {\n addClass([item], newVal.split(' '));\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'visible' && !isNOU(item)) {\n if (Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]] === false) {\n item.classList.add(CLS_ITEMHIDE);\n }\n else {\n item.classList.remove(CLS_ITEMHIDE);\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'disabled' && !isNOU(item)) {\n this.enableItem(index, !newVal);\n }\n if (property[parseInt(k.toString(), 10)] === 'content' && !isNOU(item) && item.children.length === 2) {\n if (typeof newVal === 'function') {\n if (this.isAngular || this.isReact) {\n this.clearAccordionTemplate(content, property[parseInt(k.toString(), 10)], CLS_CTENT);\n }\n var activeContent = item.querySelector('.' + CLS_CTENT);\n activeContent.innerHTML = '';\n this.setTemplate(newVal, activeContent, index);\n }\n else {\n if (item.classList.contains(CLS_SLCTED)) {\n this.expandItem(false, index);\n }\n detach(item.querySelector('.' + CLS_CONTENT));\n }\n }\n }\n }\n }\n else {\n isRefresh = true;\n }\n break;\n case 'dataSource':\n case 'expandedIndices':\n if (this.expandedIndices === null) {\n this.expandedIndices = [];\n }\n isRefresh = true;\n break;\n case 'headerTemplate':\n this.initializeHeaderTemplate();\n isRefresh = true;\n break;\n case 'itemTemplate':\n this.initializeItemTemplate();\n isRefresh = true;\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(acrdn, CLS_RTL);\n }\n else {\n this.remove(acrdn, CLS_RTL);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyle(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'expandMode':\n if (newProp.expandMode === 'Single' && this.expandedIndices.length > 1) {\n this.expandItem(false);\n }\n break;\n }\n }\n if (isRefresh) {\n this.initExpand = [];\n if (this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n this.destroyItems();\n this.renderItems();\n this.initItemExpand();\n }\n };\n __decorate([\n Collection([], AccordionItem)\n ], Accordion.prototype, \"items\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('100%')\n ], Accordion.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Accordion.prototype, \"height\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"expandedIndices\", void 0);\n __decorate([\n Property('Multiple')\n ], Accordion.prototype, \"expandMode\", void 0);\n __decorate([\n Property(false)\n ], Accordion.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, AccordionAnimationSettings)\n ], Accordion.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanding\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanded\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"destroyed\", void 0);\n Accordion = __decorate([\n NotifyPropertyChanges\n ], Accordion);\n return Accordion;\n}(Component));\nexport { Accordion };\n","var instances = 'ej2_instances';\nvar uid = 0;\nvar isBlazorPlatform = false;\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function disableBlazorMode() {\n isBlazorPlatform = false;\n}\n/**\n * Create Instance from constructor function with desired parameters.\n *\n * @param {Function} classFunction - Class function to which need to create instance\n * @param {any[]} params - Parameters need to passed while creating instance\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function createInstance(classFunction, params) {\n var arrayParam = params;\n arrayParam.unshift(undefined);\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\n}\n/**\n * To run a callback function immediately after the browser has completed other operations.\n *\n * @param {Function} handler - callback function to be triggered.\n * @returns {Function} ?\n * @private\n */\nexport function setImmediate(handler) {\n var unbind;\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n intCrypto.getRandomValues(num);\n var secret = 'ej2' + combineArray(num);\n // eslint-disable-next-line\n var messageHandler = function (event) {\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\n handler();\n unbind();\n }\n };\n window.addEventListener('message', messageHandler, false);\n window.postMessage(secret, '*');\n return unbind = function () {\n window.removeEventListener('message', messageHandler);\n handler = messageHandler = secret = undefined;\n };\n}\n/**\n * To get nameSpace value from the desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getValue(nameSpace, obj) {\n // eslint-disable-next-line\n var value = obj;\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n }\n return value;\n}\n/**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function setValue(nameSpace, value, obj) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n // eslint-disable-next-line\n var start = obj || {};\n // eslint-disable-next-line\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[parseInt(i.toString(), 10)];\n if (i + 1 === length) {\n fromObj[\"\" + key] = value === undefined ? {} : value;\n }\n else if (isNullOrUndefined(fromObj[\"\" + key])) {\n fromObj[\"\" + key] = {};\n }\n fromObj = fromObj[\"\" + key];\n }\n return start;\n}\n/**\n * Delete an item from Object\n *\n * @param {any} obj - Object in which we need to delete an item.\n * @param {string} key - String value to the get the inner object\n * @returns {void} ?\n * @private\n */\n// eslint-disable-next-line\nexport function deleteObject(obj, key) {\n delete obj[\"\" + key];\n}\n/**\n *@private\n */\n// eslint-disable-next-line\nexport var containerObject = typeof window !== 'undefined' ? window : {};\n/**\n * Check weather the given argument is only object.\n *\n * @param {any} obj - Object which is need to check.\n * @returns {boolean} ?\n * @private\n */\n// eslint-disable-next-line\nexport function isObject(obj) {\n var objCon = {};\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\n}\n/**\n * To get enum value by giving the string.\n *\n * @param {any} enumObject - Enum object.\n * @param {string} enumValue - Enum value to be searched\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getEnumValue(enumObject, enumValue) {\n // eslint-disable-next-line\n return enumObject[enumValue];\n}\n/**\n * Merge the source object into destination object.\n *\n * @param {any} source - source object which is going to merge with destination object\n * @param {any} destination - object need to be merged\n * @returns {void} ?\n * @private\n */\nexport function merge(source, destination) {\n if (!isNullOrUndefined(destination)) {\n var temrObj = source;\n var tempProp = destination;\n var keys = Object.keys(destination);\n var deepmerge = 'deepMerge';\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!isNullOrUndefined(temrObj[\"\" + deepmerge]) && (temrObj[\"\" + deepmerge].indexOf(key) !== -1) &&\n (isObject(tempProp[\"\" + key]) || Array.isArray(tempProp[\"\" + key]))) {\n extend(temrObj[\"\" + key], temrObj[\"\" + key], tempProp[\"\" + key], true);\n }\n else {\n temrObj[\"\" + key] = tempProp[\"\" + key];\n }\n }\n }\n}\n/**\n * Extend the two object with newer one.\n *\n * @param {any} copied - Resultant object after merged\n * @param {Object} first - First object need to merge\n * @param {Object} second - Second object need to merge\n * @param {boolean} deep ?\n * @returns {Object} ?\n * @private\n */\nexport function extend(copied, first, second, deep) {\n var result = copied && typeof copied === 'object' ? copied : {};\n var length = arguments.length;\n if (deep) {\n length = length - 1;\n }\n var _loop_1 = function (i) {\n // eslint-disable-next-line\n if (!arguments_1[i]) {\n return \"continue\";\n }\n // eslint-disable-next-line\n var obj1 = arguments_1[i];\n Object.keys(obj1).forEach(function (key) {\n var src = result[\"\" + key];\n var copy = obj1[\"\" + key];\n var clone;\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\n // eslint-disable-next-line\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\n if (isObject(copy)) {\n clone = src ? src : {};\n // eslint-disable-next-line\n if (Array.isArray(clone) && clone.hasOwnProperty('isComplexArray')) {\n extend(clone, {}, copy, deep);\n }\n else {\n result[\"\" + key] = extend(clone, {}, copy, deep);\n }\n }\n else {\n /* istanbul ignore next */\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\n // eslint-disable-next-line\n result[\"\" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));\n }\n }\n else {\n result[\"\" + key] = copy;\n }\n });\n };\n var arguments_1 = arguments;\n for (var i = 1; i < length; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * To check whether the object is null or undefined.\n *\n * @param {Object} value - To check the object is null or undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n/**\n * To check whether the object is undefined.\n *\n * @param {Object} value - To check the object is undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isUndefined(value) {\n return ('undefined' === typeof value);\n}\n/**\n * To return the generated unique name\n *\n * @param {string} definedName - To concatenate the unique id to provided name\n * @returns {string} ?\n * @private\n */\nexport function getUniqueID(definedName) {\n return definedName + '_' + uid++;\n}\n/**\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\n *\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\n * @returns {Function} ?\n * @private\n */\nexport function debounce(eventFunction, delay) {\n // eslint-disable-next-line\n var out;\n return function () {\n var _this = this;\n // eslint-disable-next-line\n var args = arguments;\n var later = function () {\n out = null;\n return eventFunction.apply(_this, args);\n };\n clearTimeout(out);\n out = setTimeout(later, delay);\n };\n}\n/**\n * To convert the object to string for query url\n *\n * @param {Object} data ?\n * @returns {string} ?\n * @private\n */\n// eslint-disable-next-line\nexport function queryParams(data) {\n var array = [];\n var keys = Object.keys(data);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[\"\" + key]));\n }\n return array.join('&');\n}\n/**\n * To check whether the given array contains object.\n *\n * @param {any} value - Specifies the T type array to be checked.\n * @returns {boolean} ?\n * @private\n */\nexport function isObjectArray(value) {\n var parser = Object.prototype.toString;\n if (parser.call(value) === '[object Array]') {\n if (parser.call(value[0]) === '[object Object]') {\n return true;\n }\n }\n return false;\n}\n/**\n * To check whether the child element is descendant to parent element or parent and child are same element.\n *\n * @param {Element} child - Specifies the child element to compare with parent.\n * @param {Element} parent - Specifies the parent element.\n * @returns {boolean} ?\n * @private\n */\nexport function compareElementParent(child, parent) {\n var node = child;\n if (node === parent) {\n return true;\n }\n else if (node === document || !node) {\n return false;\n }\n else {\n return compareElementParent(node.parentNode, parent);\n }\n}\n/**\n * To throw custom error message.\n *\n * @param {string} message - Specifies the error message to be thrown.\n * @returns {void} ?\n * @private\n */\nexport function throwError(message) {\n try {\n throw new Error(message);\n }\n catch (e) {\n // eslint-disable-next-line\n throw e.message + '\\n' + e.stack;\n }\n}\n/**\n * This function is used to print given element\n *\n * @param {Element} element - Specifies the print content element.\n * @param {Window} printWindow - Specifies the print window.\n * @returns {Window} ?\n * @private\n */\nexport function print(element, printWindow) {\n var div = document.createElement('div');\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\n if (blinks.length) {\n for (var l = 0, len = blinks.length; l < len; l++) {\n links.push(blinks[parseInt(l.toString(), 10)]);\n }\n }\n var reference = '';\n if (isNullOrUndefined(printWindow)) {\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\n }\n div.appendChild(element.cloneNode(true));\n for (var i = 0, len = links.length; i < len; i++) {\n reference += links[parseInt(i.toString(), 10)].outerHTML;\n }\n printWindow.document.write(' ' + reference + '' + div.innerHTML +\n '' + '');\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 var regExp = RegExp;\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 var regExp = RegExp;\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 if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[\"\" + i] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\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 var regExp = RegExp;\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 regExp = RegExp;\nvar parseRegex = new regExp('^([^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';\nvar regExp = RegExp;\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 /* eslint-disable */\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 = new regExp(\"(^[ncpae]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.currencyFormatRegex = new regExp(\"(^[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 dOptions.isCustomFormat = true;\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 // eslint-disable-next-line\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 * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\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 var regExp = RegExp;\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 if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\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","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', '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 = '21.1';\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=MjEuMQ==\";\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","/**\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 { 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 var regExp = RegExp;\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.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchstart' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : 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 var isDialogEle = this.helperElement.classList.contains('e-dialog');\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 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n 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.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : 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.classList.contains(\"e-dialog\") && !this.element.classList.contains(\"e-card\") && 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.isSafari() ? 'touchend' : 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.isSafari() ? 'touchend' : 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","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","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","/**\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","/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\n/**\n * MaskedTextBox base module\n */\nimport { EventHandler, isNullOrUndefined, merge, attributes, addClass, removeClass, Browser, extend } from '@syncfusion/ej2-base';\nimport { Input } from '../../input/input';\nvar ERROR = 'e-error';\nvar INPUTGROUP = 'e-input-group';\nvar FLOATINPUT = 'e-float-input';\nvar UTILMASK = 'e-utility-mask';\nvar TOPLABEL = 'e-label-top';\nvar BOTTOMLABEL = 'e-label-bottom';\n/**\n * @hidden\n * Built-in masking elements collection.\n */\nexport var regularExpressions = {\n '0': '[0-9]',\n '9': '[0-9 ]',\n '#': '[0-9 +-]',\n 'L': '[A-Za-z]',\n '?': '[A-Za-z ]',\n '&': '[^\\x7f ]+',\n 'C': '[^\\x7f]+',\n 'A': '[A-Za-z0-9]',\n 'a': '[A-Za-z0-9 ]'\n};\n/**\n * Generate required masking elements to the MaskedTextBox from user mask input.\n *\n * @hidden\n */\nexport function createMask() {\n attributes(this.element, {\n 'role': 'textbox', 'autocomplete': 'off', 'autocapitalize': 'off',\n 'spellcheck': 'false', 'aria-live': 'assertive'\n });\n if (this.mask) {\n var splitMask = this.mask.split(']');\n for (var i = 0; i < splitMask.length; i++) {\n if (splitMask[i][splitMask[i].length - 1] === '\\\\') {\n splitMask[i] = splitMask[i] + ']';\n var splitInnerMask = splitMask[i].split('[');\n for (var j = 0; j < splitInnerMask.length; j++) {\n if (splitInnerMask[j][splitInnerMask[j].length - 1] === '\\\\') {\n splitInnerMask[j] = splitInnerMask[j] + '[';\n }\n pushIntoRegExpCollec.call(this, splitInnerMask[j]);\n }\n }\n else {\n var splitInnerMask = splitMask[i].split('[');\n if (splitInnerMask.length > 1) {\n var chkSpace = false;\n for (var j = 0; j < splitInnerMask.length; j++) {\n if (splitInnerMask[j] === '\\\\') {\n this.customRegExpCollec.push('[');\n this.hiddenMask += splitInnerMask[j] + '[';\n }\n else if (splitInnerMask[j] === '') {\n chkSpace = true;\n }\n else if ((splitInnerMask[j] !== '' && chkSpace) || j === splitInnerMask.length - 1) {\n this.customRegExpCollec.push('[' + splitInnerMask[j] + ']');\n this.hiddenMask += this.promptChar;\n chkSpace = false;\n }\n else {\n pushIntoRegExpCollec.call(this, splitInnerMask[j]);\n }\n }\n }\n else {\n pushIntoRegExpCollec.call(this, splitInnerMask[0]);\n }\n }\n }\n this.escapeMaskValue = this.hiddenMask;\n this.promptMask = this.hiddenMask.replace(/[09?LCAa#&]/g, this.promptChar);\n if (!isNullOrUndefined(this.customCharacters)) {\n for (var i = 0; i < this.promptMask.length; i++) {\n if (!isNullOrUndefined(this.customCharacters[this.promptMask[i]])) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n this.promptMask = this.promptMask.replace(new RegExp(this.promptMask[i], 'g'), this.promptChar);\n }\n }\n }\n var escapeNumber = 0;\n if (this.hiddenMask.match(new RegExp(/\\\\/))) {\n for (var i = 0; i < this.hiddenMask.length; i++) {\n var j = 0;\n if (i >= 1) {\n j = i;\n }\n escapeNumber = this.hiddenMask.length - this.promptMask.length;\n j = j - escapeNumber;\n if ((i > 0 && this.hiddenMask[i - 1] !== '\\\\') && (this.hiddenMask[i] === '>' ||\n this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|')) {\n this.promptMask = this.promptMask.substring(0, j) +\n this.promptMask.substring((i + 1) - escapeNumber, this.promptMask.length);\n this.escapeMaskValue = this.escapeMaskValue.substring(0, j) +\n this.escapeMaskValue.substring((i + 1) - escapeNumber, this.escapeMaskValue.length);\n }\n if (this.hiddenMask[i] === '\\\\') {\n this.promptMask = this.promptMask.substring(0, j) + this.hiddenMask[i + 1] +\n this.promptMask.substring((i + 2) - escapeNumber, this.promptMask.length);\n this.escapeMaskValue = this.escapeMaskValue.substring(0, j) + this.escapeMaskValue[i + 1] +\n this.escapeMaskValue.substring((i + 2) - escapeNumber, this.escapeMaskValue.length);\n }\n }\n }\n else {\n this.promptMask = this.promptMask.replace(/[>|<]/g, '');\n this.escapeMaskValue = this.hiddenMask.replace(/[>|<]/g, '');\n }\n attributes(this.element, { 'aria-invalid': 'false' });\n }\n}\n/**\n * Apply mask ability with masking elements to the MaskedTextBox.\n *\n * @hidden\n */\nexport function applyMask() {\n setElementValue.call(this, this.promptMask);\n setMaskValue.call(this, this.value);\n}\n/**\n * To wire required events to the MaskedTextBox.\n *\n * @hidden\n */\nexport function wireEvents() {\n EventHandler.add(this.element, 'keydown', maskInputKeyDownHandler, this);\n EventHandler.add(this.element, 'keypress', maskInputKeyPressHandler, this);\n EventHandler.add(this.element, 'keyup', maskInputKeyUpHandler, this);\n EventHandler.add(this.element, 'input', maskInputHandler, this);\n EventHandler.add(this.element, 'focus', maskInputFocusHandler, this);\n EventHandler.add(this.element, 'blur', maskInputBlurHandler, this);\n EventHandler.add(this.element, 'paste', maskInputPasteHandler, this);\n EventHandler.add(this.element, 'cut', maskInputCutHandler, this);\n EventHandler.add(this.element, 'drop', maskInputDropHandler, this);\n EventHandler.add(this.element, 'mousedown', maskInputMouseDownHandler, this);\n EventHandler.add(this.element, 'mouseup', maskInputMouseUpHandler, this);\n if (this.enabled) {\n bindClearEvent.call(this);\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', resetFormHandler, this);\n }\n }\n}\n/**\n * To unwire events attached to the MaskedTextBox.\n *\n * @hidden\n */\nexport function unwireEvents() {\n EventHandler.remove(this.element, 'keydown', maskInputKeyDownHandler);\n EventHandler.remove(this.element, 'keypress', maskInputKeyPressHandler);\n EventHandler.remove(this.element, 'keyup', maskInputKeyUpHandler);\n EventHandler.remove(this.element, 'input', maskInputHandler);\n EventHandler.remove(this.element, 'focus', maskInputFocusHandler);\n EventHandler.remove(this.element, 'blur', maskInputBlurHandler);\n EventHandler.remove(this.element, 'paste', maskInputPasteHandler);\n EventHandler.remove(this.element, 'cut', maskInputCutHandler);\n EventHandler.remove(this.element, 'mousedown', maskInputMouseDownHandler);\n EventHandler.remove(this.element, 'mouseup', maskInputMouseUpHandler);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', resetFormHandler);\n }\n}\n/**\n * To bind required events to the MaskedTextBox clearButton.\n *\n * @hidden\n */\nexport function bindClearEvent() {\n if (this.showClearButton) {\n EventHandler.add(this.inputObj.clearButton, 'mousedown touchstart', resetHandler, this);\n }\n}\nfunction resetHandler(e) {\n e.preventDefault();\n if (!this.inputObj.clearButton.classList.contains('e-clear-icon-hide') || (this.inputObj.container.classList.contains('e-static-clear'))) {\n clear.call(this, e);\n this.value = '';\n }\n}\nfunction clear(event) {\n var value = this.element.value;\n setElementValue.call(this, this.promptMask);\n this.redoCollec.unshift({\n value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n triggerMaskChangeEvent.call(this, event, value);\n this.element.setSelectionRange(0, 0);\n}\nfunction resetFormHandler() {\n if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {\n setElementValue.call(this, this.promptMask);\n }\n else {\n this.value = this.initInputValue;\n }\n}\n/**\n * To get masked value from the MaskedTextBox.\n *\n * @hidden\n */\nexport function unstrippedValue(element) {\n return element.value;\n}\n/**\n * To extract raw value from the MaskedTextBox.\n *\n * @hidden\n */\nexport function strippedValue(element, maskValues) {\n var value = '';\n var k = 0;\n var checkMask = false;\n var maskValue = (!isNullOrUndefined(maskValues)) ? maskValues : (!isNullOrUndefined(element) &&\n !isNullOrUndefined(this)) ? element.value : maskValues;\n if (maskValue !== this.promptMask) {\n for (var i = 0; i < this.customRegExpCollec.length; i++) {\n if (checkMask) {\n checkMask = false;\n }\n if (this.customRegExpCollec[k] === '>' || this.customRegExpCollec[k] === '<' ||\n this.customRegExpCollec[k] === '|' || this.customRegExpCollec[k] === '\\\\') {\n --i;\n checkMask = true;\n }\n if (!checkMask) {\n if ((maskValue[i] !== this.promptChar) && (!isNullOrUndefined(this.customRegExpCollec[k]) &&\n ((this._callPasteHandler || !isNullOrUndefined(this.regExpCollec[this.customRegExpCollec[k]])) ||\n (this.customRegExpCollec[k].length > 2 && this.customRegExpCollec[k][0] === '[' &&\n this.customRegExpCollec[k][this.customRegExpCollec[k].length - 1] === ']') ||\n (!isNullOrUndefined(this.customCharacters) &&\n (!isNullOrUndefined(this.customCharacters[this.customRegExpCollec[k]]))))) && (maskValue !== '')) {\n value += maskValue[i];\n }\n }\n ++k;\n }\n }\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\n value = maskValue;\n }\n return value;\n}\nfunction pushIntoRegExpCollec(value) {\n for (var k = 0; k < value.length; k++) {\n this.hiddenMask += value[k];\n if (value[k] !== '\\\\') {\n this.customRegExpCollec.push(value[k]);\n }\n }\n}\nexport function maskInputMouseDownHandler() {\n this.isClicked = true;\n}\nexport function maskInputMouseUpHandler() {\n this.isClicked = false;\n}\nexport function maskInputFocusHandler(event) {\n var _this = this;\n var inputElement = this.element;\n var startIndex = 0;\n var modelValue = strippedValue.call(this, inputElement);\n var toAllowForward = false;\n var toAllowBackward = false;\n var eventArgs = {\n selectionStart: inputElement.selectionStart,\n event: event,\n value: this.value,\n maskedValue: inputElement.value,\n container: !isNullOrUndefined(this.inputObj) ? this.inputObj.container : this.inputObj,\n selectionEnd: inputElement.selectionEnd\n };\n if (!this.isClicked) {\n triggerFocus.call(this, eventArgs, inputElement);\n }\n if (this.mask) {\n if (!(!(modelValue === null || modelValue === '') || this.floatLabelType === 'Always' ||\n this.placeholder === null || this.placeholder === '')) {\n inputElement.value = this.promptMask;\n }\n setTimeout(function () {\n if (inputElement.selectionStart === _this.promptMask.length ||\n inputElement.value[inputElement.selectionStart] === _this.promptChar) {\n toAllowForward = true;\n }\n else {\n for (var i = inputElement.selectionStart; i < _this.promptMask.length; i++) {\n if (inputElement.value[i] !== _this.promptChar) {\n if ((inputElement.value[i] !== _this.promptMask[i])) {\n toAllowForward = false;\n break;\n }\n }\n else {\n toAllowForward = true;\n break;\n }\n }\n }\n });\n setTimeout(function () {\n var backSelectionStart = inputElement.selectionStart - 1;\n if (backSelectionStart === _this.promptMask.length - 1 ||\n inputElement.value[backSelectionStart] === _this.promptChar) {\n toAllowBackward = true;\n }\n else {\n for (var i = backSelectionStart; i >= 0; i--) {\n if (inputElement.value[i] !== _this.promptChar) {\n if ((inputElement.value[i] !== _this.promptMask[i])) {\n toAllowBackward = false;\n break;\n }\n }\n else {\n toAllowBackward = true;\n break;\n }\n }\n }\n });\n if ((this.isClicked || (this.floatLabelType !== 'Always' &&\n ((modelValue === null || modelValue === '') &&\n (this.placeholder !== null && this.placeholder !== ''))))) {\n for (startIndex = 0; startIndex < this.promptMask.length; startIndex++) {\n if (inputElement.value[startIndex] === this.promptChar) {\n setTimeout(function () {\n if (toAllowForward || toAllowBackward) {\n inputElement.selectionEnd = startIndex;\n inputElement.selectionStart = startIndex;\n }\n eventArgs = {\n selectionStart: inputElement.selectionStart,\n event: event,\n value: _this.value,\n maskedValue: inputElement.value,\n container: !isNullOrUndefined(_this.inputObj) ? _this.inputObj.container : _this.inputObj,\n selectionEnd: inputElement.selectionEnd\n };\n triggerFocus.call(_this, eventArgs, inputElement);\n }, 110);\n break;\n }\n }\n if (isNullOrUndefined(inputElement.value.match(escapeRegExp(this.promptChar)))) {\n eventArgs = {\n selectionStart: inputElement.selectionStart,\n event: event,\n value: this.value,\n maskedValue: inputElement.value,\n container: !isNullOrUndefined(this.inputObj) ? this.inputObj.container : this.inputObj,\n selectionEnd: inputElement.selectionEnd\n };\n triggerFocus.call(this, eventArgs, inputElement);\n }\n this.isClicked = false;\n }\n }\n}\nexport function triggerFocus(eventArgs, inputElement) {\n this.trigger('focus', eventArgs, function (eventArgs) {\n inputElement.selectionStart = eventArgs.selectionStart;\n inputElement.selectionEnd = eventArgs.selectionEnd;\n });\n}\nexport function escapeRegExp(text) {\n return !isNullOrUndefined(text) ? text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&') : text;\n}\nexport function maskInputBlurHandler(event) {\n this.blurEventArgs = {\n event: event,\n value: this.value,\n maskedValue: this.element.value,\n container: !isNullOrUndefined(this.inputObj) ? this.inputObj.container : this.inputObj\n };\n this.trigger('blur', this.blurEventArgs);\n if (this.mask) {\n this.isFocus = false;\n if (this.placeholder && this.element.value === this.promptMask && this.floatLabelType !== 'Always') {\n setElementValue.call(this, '');\n var labelElement = this.element.parentNode.querySelector('.e-float-text');\n if (this.floatLabelType === 'Auto' && !isNullOrUndefined(labelElement) && labelElement.classList.contains(TOPLABEL)) {\n removeClass([labelElement], TOPLABEL);\n }\n }\n }\n}\nfunction maskInputPasteHandler(event) {\n var _this = this;\n if (this.mask && !this.readonly) {\n var sIndex_1 = this.element.selectionStart;\n var eIndex_1 = this.element.selectionEnd;\n var oldValue_1 = this.element.value;\n setElementValue.call(this, '');\n this._callPasteHandler = true;\n setTimeout(function () {\n var value = _this.element.value.replace(/ /g, '');\n if (_this.redoCollec.length > 0 && _this.redoCollec[0].value === _this.element.value) {\n value = strippedValue.call(_this, _this.element);\n }\n setElementValue.call(_this, oldValue_1);\n _this.element.selectionStart = sIndex_1;\n _this.element.selectionEnd = eIndex_1;\n var i = 0;\n _this.maskKeyPress = true;\n do {\n validateValue.call(_this, value[i], false, null);\n ++i;\n } while (i < value.length);\n _this.maskKeyPress = false;\n _this._callPasteHandler = false;\n if (_this.element.value === oldValue_1) {\n var i_1 = 0;\n _this.maskKeyPress = true;\n do {\n validateValue.call(_this, value[i_1], false, null);\n ++i_1;\n } while (i_1 < value.length);\n _this.maskKeyPress = false;\n }\n else {\n triggerMaskChangeEvent.call(_this, event, oldValue_1);\n }\n }, 1);\n }\n}\nfunction maskInputCutHandler(event) {\n var _this = this;\n if (this.mask && !this.readonly) {\n var preValue_1 = this.element.value;\n var sIndex_2 = this.element.selectionStart;\n var eIndex = this.element.selectionEnd;\n this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd });\n var value_1 = this.element.value.substring(0, sIndex_2) + this.promptMask.substring(sIndex_2, eIndex) +\n this.element.value.substring(eIndex);\n setTimeout(function () {\n setElementValue.call(_this, value_1);\n _this.element.selectionStart = _this.element.selectionEnd = sIndex_2;\n if (_this.element.value !== preValue_1) {\n triggerMaskChangeEvent.call(_this, event, null);\n }\n }, 0);\n }\n}\nexport function maskInputDropHandler(event) {\n event.preventDefault();\n}\nfunction maskInputHandler(event) {\n if (Browser.isIE === true && this.element.value === '' && this.floatLabelType === 'Never') {\n return;\n }\n var eventArgs = { ctrlKey: false, keyCode: 229 };\n extend(event, eventArgs);\n if (this.mask) {\n if (this.element.value === '') {\n this.redoCollec.unshift({\n value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n }\n if (this.element.value.length === 1) {\n this.element.value = this.element.value + this.promptMask;\n this.element.setSelectionRange(1, 1);\n }\n if (!this._callPasteHandler) {\n removeMaskInputValues.call(this, event);\n }\n if (this.element.value.length > this.promptMask.length) {\n var startIndex = this.element.selectionStart;\n var addedValues = this.element.value.length - this.promptMask.length;\n var value = this.element.value.substring(startIndex - addedValues, startIndex);\n this.maskKeyPress = false;\n var i = 0;\n do {\n validateValue.call(this, value[i], event.ctrlKey, event);\n ++i;\n } while (i < value.length);\n if (this.element.value !== this.preEleVal) {\n triggerMaskChangeEvent.call(this, event, null);\n }\n }\n var val = strippedValue.call(this, this.element);\n this.prevValue = val;\n this.value = val;\n if (val === '') {\n setElementValue.call(this, this.promptMask);\n this.element.setSelectionRange(0, 0);\n }\n }\n}\nfunction maskInputKeyDownHandler(event) {\n if (this.mask && !this.readonly) {\n if (event.keyCode !== 229) {\n if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) {\n event.preventDefault();\n }\n removeMaskInputValues.call(this, event);\n }\n var startValue = this.element.value;\n if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) {\n var collec = void 0;\n if (event.keyCode === 90 && this.undoCollec.length > 0 && startValue !== this.undoCollec[this.undoCollec.length - 1].value) {\n collec = this.undoCollec[this.undoCollec.length - 1];\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart,\n endIndex: this.element.selectionEnd\n });\n setElementValue.call(this, collec.value);\n this.element.selectionStart = collec.startIndex;\n this.element.selectionEnd = collec.endIndex;\n this.undoCollec.splice(this.undoCollec.length - 1, 1);\n }\n else if (event.keyCode === 89 && this.redoCollec.length > 0 && startValue !== this.redoCollec[0].value) {\n collec = this.redoCollec[0];\n this.undoCollec.push({\n value: this.element.value, startIndex: this.element.selectionStart,\n endIndex: this.element.selectionEnd\n });\n setElementValue.call(this, collec.value);\n this.element.selectionStart = collec.startIndex;\n this.element.selectionEnd = collec.endIndex;\n this.redoCollec.splice(0, 1);\n }\n }\n }\n}\nexport function mobileRemoveFunction() {\n var collec;\n var sIndex = this.element.selectionStart;\n var eIndex = this.element.selectionEnd;\n if (this.redoCollec.length > 0) {\n collec = this.redoCollec[0];\n setElementValue.call(this, collec.value);\n if ((collec.startIndex - sIndex) === 1) {\n this.element.selectionStart = collec.startIndex;\n this.element.selectionEnd = collec.endIndex;\n }\n else {\n this.element.selectionStart = sIndex + 1;\n this.element.selectionEnd = eIndex + 1;\n }\n }\n else {\n setElementValue.call(this, this.promptMask);\n this.element.selectionStart = this.element.selectionEnd = sIndex;\n }\n}\nfunction autoFillMaskInputValues(isRemove, oldEventVal, event) {\n if (event.type === 'input') {\n isRemove = false;\n oldEventVal = this.element.value;\n setElementValue.call(this, this.promptMask);\n setMaskValue.call(this, oldEventVal);\n }\n return isRemove;\n}\nfunction removeMaskInputValues(event) {\n var isRemove = false;\n var oldEventVal;\n var isDeleted = false;\n if (this.element.value.length < this.promptMask.length) {\n isRemove = true;\n oldEventVal = this.element.value;\n isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event);\n mobileRemoveFunction.call(this);\n }\n if (this.element.value.length >= this.promptMask.length && event.type === 'input') {\n isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event);\n }\n var initStartIndex = this.element.selectionStart;\n var initEndIndex = this.element.selectionEnd;\n var startIndex = this.element.selectionStart;\n var endIndex = this.element.selectionEnd;\n var maskValue = this.hiddenMask.replace(/[>|\\\\<]/g, '');\n var curMask = maskValue[startIndex - 1];\n var deleteEndIndex = this.element.selectionEnd;\n if (isRemove || event.keyCode === 8 || event.keyCode === 46) {\n this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: endIndex });\n var multipleDel = false;\n var preValue = this.element.value;\n if (startIndex > 0 || ((event.keyCode === 8 || event.keyCode === 46) && startIndex < this.element.value.length\n && ((this.element.selectionEnd - startIndex) !== this.element.value.length))) {\n var index = startIndex;\n if (startIndex !== endIndex) {\n startIndex = endIndex;\n if (event.keyCode === 46) {\n multipleDel = true;\n }\n }\n else if (event.keyCode === 46) {\n ++index;\n }\n else {\n --index;\n }\n for (var k = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? k > index : k < index; (event.keyCode === 8 || isRemove || multipleDel) ? k-- : k++) {\n for (var i = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? i > 0 : i < this.element.value.length; (event.keyCode === 8 || isRemove || multipleDel) ? i-- : i++) {\n var sIndex = void 0;\n if (((event.keyCode === 8 || multipleDel) && ((initStartIndex !== initEndIndex && initStartIndex !== startIndex) ||\n (initStartIndex === initEndIndex))) || isRemove) {\n curMask = maskValue[i - 1];\n sIndex = startIndex - 1;\n }\n else {\n curMask = maskValue[i];\n sIndex = startIndex;\n ++startIndex;\n }\n var oldValue = this.element.value[sIndex];\n if ((isNullOrUndefined(this.regExpCollec[\"\" + curMask]) && (!isNullOrUndefined(this.customCharacters)\n && isNullOrUndefined(this.customCharacters[\"\" + curMask]))\n && ((this.hiddenMask[sIndex] !== this.promptChar && this.customRegExpCollec[sIndex][0] !== '['\n && this.customRegExpCollec[sIndex][this.customRegExpCollec[sIndex].length - 1] !== ']')))\n || (this.promptMask[sIndex] !== this.promptChar && isNullOrUndefined(this.customCharacters))) {\n this.element.selectionStart = this.element.selectionEnd = sIndex;\n event.preventDefault();\n if (event.keyCode === 46 && !multipleDel) {\n ++this.element.selectionStart;\n }\n }\n else {\n var value = this.element.value;\n var prompt_1 = this.promptChar;\n var elementValue = value.substring(0, sIndex) + prompt_1 + value.substring(startIndex, value.length);\n setElementValue.call(this, elementValue);\n event.preventDefault();\n if (event.keyCode === 46 && !multipleDel) {\n sIndex++;\n }\n this.element.selectionStart = this.element.selectionEnd = sIndex;\n isDeleted = true;\n }\n startIndex = this.element.selectionStart;\n if ((!isDeleted && event.keyCode === 8) || multipleDel || (!isDeleted && !(event.keyCode === 46))) {\n sIndex = startIndex - 1;\n }\n else {\n sIndex = startIndex;\n isDeleted = false;\n }\n oldValue = this.element.value[sIndex];\n if (((initStartIndex !== initEndIndex) && (this.element.selectionStart === initStartIndex))\n || (this.promptMask[sIndex] === this.promptChar) || ((oldValue !== this.promptMask[sIndex]) &&\n (this.promptMask[sIndex] !== this.promptChar) && !isNullOrUndefined(this.customCharacters))) {\n break;\n }\n }\n }\n }\n if (event.keyCode === 46 && multipleDel && isDeleted) {\n this.element.selectionStart = this.element.selectionEnd = deleteEndIndex;\n }\n if (this.element.selectionStart === 0 && (this.element.selectionEnd === this.element.value.length)) {\n setElementValue.call(this, this.promptMask);\n event.preventDefault();\n this.element.selectionStart = this.element.selectionEnd = startIndex;\n }\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart,\n endIndex: this.element.selectionEnd\n });\n if (this.element.value !== preValue) {\n triggerMaskChangeEvent.call(this, event, oldEventVal);\n }\n }\n}\nfunction maskInputKeyPressHandler(event) {\n if (this.mask && !this.readonly) {\n var oldValue = this.element.value;\n if (!(event.ctrlKey || event.metaKey) || ((event.ctrlKey || event.metaKey) && event.code !== 'KeyA' && event.code !== 'KeyY'\n && event.code !== 'KeyZ' && event.code !== 'KeyX' && event.code !== 'KeyC' && event.code !== 'KeyV')) {\n this.maskKeyPress = true;\n var key = event.key;\n if (key === 'Spacebar') {\n key = String.fromCharCode(event.keyCode);\n }\n if (!key) {\n this.isIosInvalid = true;\n validateValue.call(this, String.fromCharCode(event.keyCode), event.ctrlKey, event);\n event.preventDefault();\n this.isIosInvalid = false;\n }\n else if (key && key.length === 1) {\n validateValue.call(this, key, event.ctrlKey, event);\n event.preventDefault();\n }\n if (event.keyCode === 32 && key === ' ' && this.promptChar === ' ') {\n this.element.selectionStart = this.element.selectionEnd = this.element.selectionStart - key.length;\n }\n }\n if (this.element.value !== oldValue) {\n triggerMaskChangeEvent.call(this, event, oldValue);\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction triggerMaskChangeEvent(event, oldValue) {\n var prevOnChange = this.isProtectedOnChange;\n if (!isNullOrUndefined(this.changeEventArgs) && !this.isInitial) {\n var eventArgs = {};\n this.changeEventArgs = { value: this.element.value, maskedValue: this.element.value, isInteraction: false, isInteracted: false };\n if (this.mask) {\n this.changeEventArgs.value = strippedValue.call(this, this.element);\n }\n if (!isNullOrUndefined(event)) {\n this.changeEventArgs.isInteracted = true;\n this.changeEventArgs.isInteraction = true;\n this.changeEventArgs.event = event;\n }\n this.isProtectedOnChange = true;\n this.value = this.changeEventArgs.value;\n this.isProtectedOnChange = prevOnChange;\n merge(eventArgs, this.changeEventArgs);\n /* istanbul ignore next */\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n }\n this.preEleVal = this.element.value;\n this.prevValue = strippedValue.call(this, this.element);\n}\nfunction maskInputKeyUpHandler(event) {\n if (this.mask && !this.readonly) {\n var collec = void 0;\n if (!this.maskKeyPress && event.keyCode === 229) {\n var oldEventVal = void 0;\n if (this.element.value.length === 1) {\n this.element.value = this.element.value + this.promptMask;\n this.element.setSelectionRange(1, 1);\n }\n if (this.element.value.length > this.promptMask.length) {\n var startIndex = this.element.selectionStart;\n var addedValues = this.element.value.length - this.promptMask.length;\n var val_1 = this.element.value.substring(startIndex - addedValues, startIndex);\n if (this.undoCollec.length > 0) {\n collec = this.undoCollec[this.undoCollec.length - 1];\n var startIndex_1 = this.element.selectionStart;\n oldEventVal = collec.value;\n var oldVal = collec.value.substring(startIndex_1 - addedValues, startIndex_1);\n collec = this.redoCollec[0];\n val_1 = val_1.trim();\n var isSpace = Browser.isAndroid && val_1 === '';\n if (!isSpace && oldVal !== val_1 && collec.value.substring(startIndex_1 - addedValues, startIndex_1) !== val_1) {\n validateValue.call(this, val_1, event.ctrlKey, event);\n }\n else if (isSpace) {\n preventUnsupportedValues.call(this, event, startIndex_1 - 1, this.element.selectionEnd - 1, val_1, event.ctrlKey, false);\n }\n }\n else {\n oldEventVal = this.promptMask;\n validateValue.call(this, val_1, event.ctrlKey, event);\n }\n this.maskKeyPress = false;\n triggerMaskChangeEvent.call(this, event, oldEventVal);\n }\n }\n else {\n removeMaskError.call(this);\n }\n var val = strippedValue.call(this, this.element);\n if (!((this.element.selectionStart === 0) && (this.promptMask === this.element.value) && val === '')\n || (val === '' && this.value !== val)) {\n this.prevValue = val;\n this.value = val;\n }\n }\n else {\n triggerMaskChangeEvent.call(this, event);\n }\n if (this.element.selectionStart === 0 && this.element.selectionEnd === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var temp_1 = this.element;\n setTimeout(function () {\n temp_1.setSelectionRange(0, 0);\n }, 0);\n }\n}\nfunction mobileSwipeCheck(key) {\n if (key.length > 1 && ((this.promptMask.length + key.length) < this.element.value.length)) {\n var elementValue = this.redoCollec[0].value.substring(0, this.redoCollec[0].startIndex) + key +\n this.redoCollec[0].value.substring(this.redoCollec[0].startIndex, this.redoCollec[0].value.length);\n setElementValue.call(this, elementValue);\n this.element.selectionStart = this.element.selectionEnd = this.redoCollec[0].startIndex + key.length;\n }\n this.element.selectionStart = this.element.selectionStart - key.length;\n this.element.selectionEnd = this.element.selectionEnd - key.length;\n}\nfunction mobileValidation(key) {\n if (!this.maskKeyPress) {\n mobileSwipeCheck.call(this, key);\n }\n}\nfunction validateValue(key, isCtrlKey, event) {\n mobileValidation.call(this, key);\n if (isNullOrUndefined(this) || isNullOrUndefined(key)) {\n return;\n }\n var startIndex = this.element.selectionStart;\n var initStartIndex = startIndex;\n var curMask;\n var allowText = false;\n var value = this.element.value;\n var eventOldVal;\n var prevSupport = false;\n var isEqualVal = false;\n for (var k = 0; k < key.length; k++) {\n var keyValue = key[k];\n startIndex = this.element.selectionStart;\n if (!this.maskKeyPress && initStartIndex === startIndex) {\n startIndex = startIndex + k;\n }\n if ((!this.maskKeyPress || startIndex < this.promptMask.length)) {\n for (var i = startIndex; i < this.promptMask.length; i++) {\n var maskValue = this.escapeMaskValue;\n curMask = maskValue[startIndex];\n if (this.hiddenMask[startIndex] === '\\\\' && this.hiddenMask[startIndex + 1] === key) {\n isEqualVal = true;\n }\n if ((isNullOrUndefined(this.regExpCollec[\"\" + curMask]) && (isNullOrUndefined(this.customCharacters)\n || (!isNullOrUndefined(this.customCharacters) && isNullOrUndefined(this.customCharacters[\"\" + curMask])))\n && ((this.hiddenMask[startIndex] !== this.promptChar && this.customRegExpCollec[startIndex][0] !== '['\n && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] !== ']')))\n || ((this.promptMask[startIndex] !== this.promptChar) && isNullOrUndefined(this.customCharacters))\n || (this.promptChar === curMask && this.escapeMaskValue === this.mask)) {\n this.element.selectionStart = this.element.selectionEnd = startIndex + 1;\n startIndex = this.element.selectionStart;\n curMask = this.hiddenMask[startIndex];\n }\n }\n if (!isNullOrUndefined(this.customCharacters) && !isNullOrUndefined(this.customCharacters[\"\" + curMask])) {\n var customValStr = this.customCharacters[\"\" + curMask];\n var customValArr = customValStr.split(',');\n for (var i = 0; i < customValArr.length; i++) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n if (keyValue.match(new RegExp('[' + customValArr[i] + ']'))) {\n allowText = true;\n break;\n }\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n }\n else if (!isNullOrUndefined(this.regExpCollec[\"\" + curMask]) && keyValue.match(new RegExp(this.regExpCollec[\"\" + curMask]))\n && this.promptMask[startIndex] === this.promptChar) {\n allowText = true;\n }\n else if (this.promptMask[startIndex] === this.promptChar && this.customRegExpCollec[startIndex][0] === '['\n && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] === ']'\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n && keyValue.match(new RegExp(this.customRegExpCollec[startIndex]))) {\n allowText = true;\n }\n if ((!this.maskKeyPress || startIndex < this.hiddenMask.length) && allowText) {\n if (k === 0) {\n if (this.maskKeyPress) {\n this.undoCollec.push({ value: value, startIndex: startIndex, endIndex: startIndex });\n }\n else {\n var sIndex = this.element.selectionStart;\n var eIndex = this.element.selectionEnd;\n if (this.redoCollec.length > 0) {\n eventOldVal = this.redoCollec[0].value;\n setElementValue.call(this, eventOldVal);\n this.undoCollec.push(this.redoCollec[0]);\n }\n else {\n this.undoCollec.push({ value: this.promptMask, startIndex: startIndex, endIndex: startIndex });\n eventOldVal = this.promptMask;\n setElementValue.call(this, eventOldVal);\n }\n this.element.selectionStart = sIndex;\n this.element.selectionEnd = eIndex;\n }\n }\n startIndex = this.element.selectionStart;\n applySupportedValues.call(this, event, startIndex, keyValue, eventOldVal, isEqualVal);\n prevSupport = true;\n if (k === key.length - 1) {\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n }\n allowText = false;\n }\n else {\n startIndex = this.element.selectionStart;\n preventUnsupportedValues.call(this, event, startIndex, initStartIndex, key, isCtrlKey, prevSupport);\n }\n if (k === key.length - 1 && !allowText) {\n if (!Browser.isAndroid || (Browser.isAndroid && startIndex < this.promptMask.length)) {\n this.redoCollec.unshift({\n value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\n });\n }\n }\n }\n else {\n if (key.length === 1 && !isCtrlKey && !isNullOrUndefined(event)) {\n addMaskErrorClass.call(this);\n }\n }\n }\n}\nfunction applySupportedValues(event, startIndex, keyValue, eventOldVal, isEqualVal) {\n if (this.hiddenMask.length > this.promptMask.length) {\n keyValue = changeToLowerUpperCase.call(this, keyValue, this.element.value);\n }\n if (!isEqualVal) {\n var value = this.element.value;\n var elementValue = value.substring(0, startIndex) + keyValue + value.substring(startIndex + 1, value.length);\n setElementValue.call(this, elementValue);\n this.element.selectionStart = this.element.selectionEnd = startIndex + 1;\n }\n}\nfunction preventUnsupportedValues(event, sIdx, idx, key, ctrl, chkSupport) {\n if (!this.maskKeyPress) {\n var value = this.element.value;\n if (sIdx >= this.promptMask.length) {\n setElementValue.call(this, value.substring(0, sIdx));\n }\n else {\n if (idx === sIdx) {\n setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx + 1, value.length));\n }\n else {\n if (this.promptMask.length === this.element.value.length) {\n setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx, value.length));\n }\n else {\n setElementValue.call(this, value.substring(0, idx) + value.substring(idx + 1, value.length));\n }\n }\n this.element.selectionStart = this.element.selectionEnd = (chkSupport ||\n this.element.value[idx] !== this.promptChar) ? sIdx : idx;\n }\n addMaskErrorClass.call(this);\n }\n if (key.length === 1 && !ctrl && !isNullOrUndefined(event)) {\n addMaskErrorClass.call(this);\n }\n}\nfunction addMaskErrorClass() {\n var _this = this;\n var parentElement = this.element.parentNode;\n var timer = 200;\n if (parentElement.classList.contains(INPUTGROUP) || parentElement.classList.contains(FLOATINPUT)) {\n addClass([parentElement], ERROR);\n }\n else {\n addClass([this.element], ERROR);\n }\n if (this.isIosInvalid === true) {\n timer = 400;\n }\n attributes(this.element, { 'aria-invalid': 'true' });\n setTimeout(function () {\n if (!_this.maskKeyPress) {\n removeMaskError.call(_this);\n }\n }, timer);\n}\nfunction removeMaskError() {\n var parentElement = this.element.parentNode;\n if (!isNullOrUndefined(parentElement)) {\n removeClass([parentElement], ERROR);\n }\n removeClass([this.element], ERROR);\n attributes(this.element, { 'aria-invalid': 'false' });\n}\n/**\n * Validates user input using masking elements '<' , '>' and '|'.\n *\n * @hidden\n */\nfunction changeToLowerUpperCase(key, value) {\n var promptMask;\n var i;\n var curVal = value;\n var caseCount = 0;\n for (i = 0; i < this.hiddenMask.length; i++) {\n if (this.hiddenMask[i] === '\\\\') {\n promptMask = curVal.substring(0, i) + '\\\\' + curVal.substring(i, curVal.length);\n }\n if (this.hiddenMask[i] === '>' || this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|') {\n if (this.hiddenMask[i] !== curVal[i]) {\n promptMask = curVal.substring(0, i) + this.hiddenMask[i] + curVal.substring(i, curVal.length);\n }\n ++caseCount;\n }\n if (promptMask) {\n if (((promptMask[i] === this.promptChar) && (i > this.element.selectionStart)) ||\n (this.element.value.indexOf(this.promptChar) < 0 && (this.element.selectionStart + caseCount) === i)) {\n caseCount = 0;\n break;\n }\n curVal = promptMask;\n }\n }\n while (i >= 0 && promptMask) {\n if (i === 0 || promptMask[i - 1] !== '\\\\') {\n if (promptMask[i] === '>') {\n key = key.toUpperCase();\n break;\n }\n else if (promptMask[i] === '<') {\n key = key.toLowerCase();\n break;\n }\n else if (promptMask[i] === '|') {\n break;\n }\n }\n --i;\n }\n return key;\n}\n/**\n * To set updated values in the MaskedTextBox.\n *\n * @hidden\n */\nexport function setMaskValue(val) {\n if (this.mask && val !== undefined && (this.prevValue === undefined || this.prevValue !== val)) {\n this.maskKeyPress = true;\n setElementValue.call(this, this.promptMask);\n if (val !== '' && !(val === null && this.floatLabelType === 'Never' && this.placeholder)) {\n this.element.selectionStart = 0;\n this.element.selectionEnd = 0;\n }\n if (val !== null) {\n for (var i = 0; i < val.length; i++) {\n validateValue.call(this, val[i], false, null);\n }\n }\n var newVal = strippedValue.call(this, this.element);\n this.prevValue = newVal;\n this.value = newVal;\n triggerMaskChangeEvent.call(this, null, null);\n this.maskKeyPress = false;\n var labelElement = this.element.parentNode.querySelector('.e-float-text');\n if (this.element.value === this.promptMask && this.floatLabelType === 'Auto' && this.placeholder &&\n !isNullOrUndefined(labelElement) && labelElement.classList.contains(TOPLABEL) && !this.isFocus) {\n removeClass([labelElement], TOPLABEL);\n addClass([labelElement], BOTTOMLABEL);\n setElementValue.call(this, '');\n }\n }\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\n setElementValue.call(this, this.value);\n }\n}\n/**\n * To set updated values in the input element.\n *\n * @hidden\n */\nexport function setElementValue(val, element) {\n if (!this.isFocus && this.floatLabelType === 'Auto' && this.placeholder && isNullOrUndefined(this.value)) {\n val = '';\n }\n var value = strippedValue.call(this, (element ? element : this.element), val);\n if (value === null || value === '') {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, false);\n if (this.showClearButton) {\n this.inputObj.clearButton.classList.add('e-clear-icon-hide');\n }\n }\n else {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\n }\n}\n/**\n * Provide mask support to input textbox through utility method.\n *\n * @hidden\n */\nexport function maskInput(args) {\n var inputEle = getMaskInput(args);\n applyMask.call(inputEle);\n var val = strippedValue.call(this, this.element);\n this.prevValue = val;\n this.value = val;\n if (args.mask) {\n unwireEvents.call(inputEle);\n wireEvents.call(inputEle);\n }\n}\nfunction getMaskInput(args) {\n addClass([args.element], UTILMASK);\n var inputEle = {\n element: args.element,\n mask: args.mask,\n promptMask: '',\n hiddenMask: '',\n escapeMaskValue: '',\n promptChar: args.promptChar ? (args.promptChar.length > 1) ? args.promptChar = args.promptChar[0]\n : args.promptChar : '_',\n value: args.value ? args.value : null,\n regExpCollec: regularExpressions,\n customRegExpCollec: [],\n customCharacters: args.customCharacters,\n undoCollec: [],\n redoCollec: [],\n maskKeyPress: false,\n prevValue: ''\n };\n createMask.call(inputEle);\n return inputEle;\n}\n/**\n * Gets raw value of the textbox which has been masked through utility method.\n *\n * @hidden\n */\nexport function getVal(args) {\n return strippedValue.call(getUtilMaskEle(args), args.element);\n}\n/**\n * Gets masked value of the textbox which has been masked through utility method.\n *\n * @hidden\n */\nexport function getMaskedVal(args) {\n return unstrippedValue.call(getUtilMaskEle(args), args.element);\n}\nfunction getUtilMaskEle(args) {\n var inputEle;\n if (!isNullOrUndefined(args) && args.element.classList.contains(UTILMASK)) {\n inputEle = getMaskInput(args);\n }\n return inputEle;\n}\n/**\n * Arguments to perform undo and redo functionalities.\n *\n * @hidden\n */\nvar MaskUndo = /** @class */ (function () {\n function MaskUndo() {\n }\n return MaskUndo;\n}());\nexport { MaskUndo };\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nvar maskUndo = new MaskUndo();\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 { selectAll, select, createElement, Base, detach } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base';\nimport { Property, NotifyPropertyChanges, Event, onIntlChange } from '@syncfusion/ej2-base';\nimport { Internationalization, L10n } from '@syncfusion/ej2-base';\n/**\n * global declarations\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport var regex = {\n /* eslint-disable no-useless-escape */\n EMAIL: new RegExp('^[A-Za-z0-9._%+-]{1,}@[A-Za-z0-9._%+-]{1,}([.]{1}[a-zA-Z0-9]{2,}' +\n '|[.]{1}[a-zA-Z0-9]{2,4}[.]{1}[a-zA-Z0-9]{2,4})$'),\n /* eslint-disable-next-line security/detect-unsafe-regex */\n URL: /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/m,\n DATE_ISO: new RegExp('^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$'),\n DIGITS: new RegExp('^[0-9]*$'),\n PHONE: new RegExp('^[+]?[0-9]{9,13}$'),\n CREDITCARD: new RegExp('^\\\\d{13,16}$')\n /* eslint-enable no-useless-escape */\n};\n/**\n * ErrorOption values\n *\n * @private\n */\nexport var ErrorOption;\n(function (ErrorOption) {\n /**\n * Defines the error message.\n */\n ErrorOption[ErrorOption[\"Message\"] = 0] = \"Message\";\n /**\n * Defines the error element type.\n */\n ErrorOption[ErrorOption[\"Label\"] = 1] = \"Label\";\n})(ErrorOption || (ErrorOption = {}));\n/**\n * FormValidator class enables you to validate the form fields based on your defined rules\n * ```html\n *
    \n * \n * \n *
    \n * \n * ```\n */\nvar FormValidator = /** @class */ (function (_super) {\n __extends(FormValidator, _super);\n /**\n * Initializes the FormValidator.\n *\n * @param {string | HTMLFormElement} element - Specifies the element to render as component.\n * @param {FormValidatorModel} options - Specifies the FormValidator model.\n * @private\n */\n function FormValidator(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.validated = [];\n _this.errorRules = [];\n _this.allowSubmit = false;\n _this.required = 'required';\n _this.infoElement = null;\n _this.inputElement = null;\n _this.selectQuery = 'input:not([type=reset]):not([type=button]), select, textarea';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.localyMessage = {};\n /**\n * Specifies the default messages for validation rules.\n *\n * @default { List of validation message }\n */\n _this.defaultMessages = {\n required: 'This field is required.',\n email: 'Please enter a valid email address.',\n url: 'Please enter a valid URL.',\n date: 'Please enter a valid date.',\n dateIso: 'Please enter a valid date ( ISO ).',\n creditcard: 'Please enter valid card number',\n number: 'Please enter a valid number.',\n digits: 'Please enter only digits.',\n maxLength: 'Please enter no more than {0} characters.',\n minLength: 'Please enter at least {0} characters.',\n rangeLength: 'Please enter a value between {0} and {1} characters long.',\n range: 'Please enter a value between {0} and {1}.',\n max: 'Please enter a value less than or equal to {0}.',\n min: 'Please enter a value greater than or equal to {0}.',\n regex: 'Please enter a correct value.',\n tel: 'Please enter a valid phone number.',\n pattern: 'Please enter a correct pattern value.',\n equalTo: 'Please enter the valid match text'\n };\n if (typeof _this.rules === 'undefined') {\n _this.rules = {};\n }\n _this.l10n = new L10n('formValidator', _this.defaultMessages, _this.locale);\n if (_this.locale) {\n _this.localeFunc();\n }\n onIntlChange.on('notifyExternalChange', _this.afterLocalization, _this);\n element = typeof element === 'string' ? select(element, document) : element;\n // Set novalidate to prevent default HTML5 form validation\n if (_this.element != null) {\n _this.element.setAttribute('novalidate', '');\n _this.inputElements = selectAll(_this.selectQuery, _this.element);\n _this.createHTML5Rules();\n _this.wireEvents();\n }\n else {\n return undefined;\n }\n return _this;\n }\n FormValidator_1 = FormValidator;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n /**\n * Add validation rules to the corresponding input element based on `name` attribute.\n *\n * @param {string} name `name` of form field.\n * @param {Object} rules Validation rules for the corresponding element.\n * @returns {void}\n */\n FormValidator.prototype.addRules = function (name, rules) {\n if (name) {\n // eslint-disable-next-line no-prototype-builtins\n if (this.rules.hasOwnProperty(name)) {\n extend(this.rules[\"\" + name], rules, {});\n }\n else {\n this.rules[\"\" + name] = rules;\n }\n }\n };\n /**\n * Remove validation to the corresponding field based on name attribute.\n * When no parameter is passed, remove all the validations in the form.\n *\n * @param {string} name Input name attribute value.\n * @param {string[]} rules List of validation rules need to be remove from the corresponding element.\n * @returns {void}\n */\n FormValidator.prototype.removeRules = function (name, rules) {\n if (!name && !rules) {\n this.rules = {};\n }\n else if (this.rules[\"\" + name] && !rules) {\n delete this.rules[\"\" + name];\n }\n else if (!isNullOrUndefined(this.rules[\"\" + name] && rules)) {\n for (var i = 0; i < rules.length; i++) {\n delete this.rules[\"\" + name][rules[parseInt(i.toString())]];\n }\n }\n else {\n return;\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Validate the current form values using defined rules.\n * Returns `true` when the form is valid otherwise `false`\n *\n * @param {string} selected - Optional parameter to validate specified element.\n * @returns {boolean}\n */\n FormValidator.prototype.validate = function (selected) {\n var rules = Object.keys(this.rules);\n if (selected && rules.length) {\n this.validateRules(selected);\n //filter the selected element it don't have any valid input element\n return rules.indexOf(selected) !== -1 && this.errorRules.filter(function (data) {\n return data.name === selected;\n }).length === 0;\n }\n else {\n this.errorRules = [];\n for (var _i = 0, rules_1 = rules; _i < rules_1.length; _i++) {\n var name_1 = rules_1[_i];\n this.validateRules(name_1);\n }\n return this.errorRules.length === 0;\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Reset the value of all the fields in form.\n *\n * @returns {void}\n */\n FormValidator.prototype.reset = function () {\n this.element.reset();\n this.clearForm();\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Get input element by name.\n *\n * @param {string} name - Input element name attribute value.\n * @returns {HTMLInputElement}\n */\n FormValidator.prototype.getInputElement = function (name) {\n this.inputElement = (select('[name=\"' + name + '\"]', this.element));\n return this.inputElement;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Destroy the form validator object and error elements.\n *\n * @returns {void}\n */\n FormValidator.prototype.destroy = function () {\n this.reset();\n this.unwireEvents();\n this.rules = {};\n var elements = selectAll('.' + this.errorClass + ', .' + this.validClass, this.element);\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element = elements_1[_i];\n detach(element);\n }\n _super.prototype.destroy.call(this);\n onIntlChange.off('notifyExternalChange', this.afterLocalization);\n };\n /**\n * @param {FormValidatorModel} newProp - Returns the dynamic property value of the component.\n * @param {FormValidatorModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n FormValidator.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 'locale':\n this.localeFunc();\n break;\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n FormValidator.prototype.localeFunc = function () {\n for (var _i = 0, _a = Object.keys(this.defaultMessages); _i < _a.length; _i++) {\n var key = _a[_i];\n this.l10n.setLocale(this.locale);\n var value = this.l10n.getConstant(key);\n this.localyMessage[\"\" + key] = value;\n }\n };\n /**\n * @private\n * @returns {string} - Returns the component name.\n */\n FormValidator.prototype.getModuleName = function () {\n return 'formValidator';\n };\n /**\n * @param {any} args - Specifies the culture name.\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n FormValidator.prototype.afterLocalization = function (args) {\n this.locale = args.locale;\n this.localeFunc();\n };\n /**\n * Allows you to refresh the form validator base events to the elements inside the form.\n *\n * @returns {void}\n */\n FormValidator.prototype.refresh = function () {\n this.unwireEvents();\n this.inputElements = selectAll(this.selectQuery, this.element);\n this.wireEvents();\n };\n FormValidator.prototype.clearForm = function () {\n this.errorRules = [];\n this.validated = [];\n var elements = selectAll(this.selectQuery, this.element);\n for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) {\n var element = elements_2[_i];\n var input = element;\n input.removeAttribute('aria-invalid');\n input.classList.remove(this.errorClass);\n if (input.name.length > 0) {\n this.getInputElement(input.name);\n this.getErrorElement(input.name);\n this.hideMessage(input.name);\n }\n input.classList.remove(this.validClass);\n }\n };\n FormValidator.prototype.createHTML5Rules = function () {\n var defRules = ['required', 'validateHidden', 'regex', 'rangeLength', 'maxLength', 'minLength', 'dateIso', 'digits',\n 'pattern', 'data-val-required', 'type', 'data-validation', 'min', 'max', 'range', 'equalTo', 'data-val-minlength-min',\n 'data-val-equalto-other', 'data-val-maxlength-max', 'data-val-range-min', 'data-val-regex-pattern', 'data-val-length-max',\n 'data-val-creditcard', 'data-val-phone'];\n var acceptedTypes = ['hidden', 'email', 'url', 'date', 'number', 'tel'];\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\n var input = _a[_i];\n // Default attribute rules\n var allRule = {};\n for (var _b = 0, defRules_1 = defRules; _b < defRules_1.length; _b++) {\n var rule = defRules_1[_b];\n if (input.getAttribute(rule) !== null) {\n switch (rule) {\n case 'required':\n this.defRule(input, allRule, rule, input.required);\n break;\n case 'data-validation':\n rule = input.getAttribute(rule);\n this.defRule(input, allRule, rule, true);\n break;\n case 'type':\n if (acceptedTypes.indexOf(input.type) !== -1) {\n this.defRule(input, allRule, input.type, true);\n }\n break;\n case 'rangeLength':\n case 'range':\n this.defRule(input, allRule, rule, JSON.parse(input.getAttribute(rule)));\n break;\n case 'equalTo':\n {\n var id = input.getAttribute(rule);\n this.defRule(input, allRule, rule, id);\n }\n break;\n default:\n if (input.getAttribute('data-val') === 'true') {\n this.annotationRule(input, allRule, rule, input.getAttribute(rule));\n }\n else {\n this.defRule(input, allRule, rule, input.getAttribute(rule));\n }\n }\n }\n }\n //adding pattern type validation\n if (Object.keys(allRule).length !== 0) {\n this.addRules(input.name, allRule);\n }\n }\n };\n FormValidator.prototype.annotationRule = function (input, ruleCon, ruleName, value) {\n var annotationRule = ruleName.split('-');\n var rulesList = ['required', 'creditcard', 'phone', 'maxlength', 'minlength', 'range', 'regex', 'equalto'];\n var ruleFirstName = annotationRule[annotationRule.length - 1];\n var ruleSecondName = annotationRule[annotationRule.length - 2];\n if (rulesList.indexOf(ruleFirstName) !== -1) {\n switch (ruleFirstName) {\n case 'required':\n this.defRule(input, ruleCon, 'required', value);\n break;\n case 'creditcard':\n this.defRule(input, ruleCon, 'creditcard', value);\n break;\n case 'phone':\n this.defRule(input, ruleCon, 'tel', value);\n break;\n }\n }\n else if (rulesList.indexOf(ruleSecondName) !== -1) {\n switch (ruleSecondName) {\n case 'maxlength':\n this.defRule(input, ruleCon, 'maxLength', value);\n break;\n case 'minlength':\n this.defRule(input, ruleCon, 'minLength', value);\n break;\n case 'range':\n {\n var minvalue = input.getAttribute('data-val-range-min');\n var maxvalue = input.getAttribute('data-val-range-max');\n this.defRule(input, ruleCon, 'range', [minvalue, maxvalue]);\n }\n break;\n case 'equalto':\n {\n var id = input.getAttribute(ruleName).split('.');\n this.defRule(input, ruleCon, 'equalTo', id[id.length - 1]);\n }\n break;\n case 'regex':\n this.defRule(input, ruleCon, 'regex', value);\n break;\n }\n }\n };\n FormValidator.prototype.defRule = function (input, ruleCon, ruleName, value) {\n var message = input.getAttribute('data-' + ruleName + '-message');\n var annotationMessage = input.getAttribute('data-val-' + ruleName);\n var customMessage;\n if (this.rules[input.name] && ruleName !== 'validateHidden' && ruleName !== 'hidden') {\n this.getInputElement(input.name);\n customMessage = this.getErrorMessage(this.rules[input.name][\"\" + ruleName], ruleName);\n }\n if (message) {\n value = [value, message];\n }\n else if (annotationMessage) {\n value = [value, annotationMessage];\n }\n else if (customMessage) {\n value = [value, customMessage];\n }\n ruleCon[\"\" + ruleName] = value;\n };\n // Wire events to the form elements\n FormValidator.prototype.wireEvents = function () {\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\n var input = _a[_i];\n if (FormValidator_1.isCheckable(input)) {\n EventHandler.add(input, 'click', this.clickHandler, this);\n }\n else if (input.tagName === 'SELECT') {\n EventHandler.add(input, 'change', this.changeHandler, this);\n }\n else {\n EventHandler.add(input, 'focusout', this.focusOutHandler, this);\n EventHandler.add(input, 'keyup', this.keyUpHandler, this);\n }\n }\n EventHandler.add(this.element, 'submit', this.submitHandler, this);\n EventHandler.add(this.element, 'reset', this.resetHandler, this);\n };\n // UnWire events to the form elements\n FormValidator.prototype.unwireEvents = function () {\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\n var input = _a[_i];\n EventHandler.clearEvents(input);\n }\n EventHandler.remove(this.element, 'submit', this.submitHandler);\n EventHandler.remove(this.element, 'reset', this.resetHandler);\n };\n // Handle input element focusout event\n FormValidator.prototype.focusOutHandler = function (e) {\n this.trigger('focusout', e);\n //FormValidator.triggerCallback(this.focusout, e);\n var element = e.target;\n if (this.rules[element.name]) {\n if (this.rules[element.name][this.required] || element.value.length > 0) {\n this.validate(element.name);\n }\n else if (this.validated.indexOf(element.name) === -1) {\n this.validated.push(element.name);\n }\n }\n };\n // Handle input element keyup event\n FormValidator.prototype.keyUpHandler = function (e) {\n this.trigger('keyup', e);\n var element = e.target;\n // List of keys need to prevent while validation\n var excludeKeys = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225];\n if (e.which === 9 && (!this.rules[element.name] || (this.rules[element.name] && !this.rules[element.name][this.required]))) {\n return;\n }\n if (this.validated.indexOf(element.name) !== -1 && this.rules[element.name] && excludeKeys.indexOf(e.which) === -1) {\n this.validate(element.name);\n }\n };\n // Handle input click event\n FormValidator.prototype.clickHandler = function (e) {\n this.trigger('click', e);\n var element = e.target;\n // If element type is not submit allow validation\n if (element.type !== 'submit') {\n this.validate(element.name);\n }\n else if (element.getAttribute('formnovalidate') !== null) {\n // Prevent form validation, if submit button has formnovalidate attribute\n this.allowSubmit = true;\n }\n };\n // Handle input change event\n FormValidator.prototype.changeHandler = function (e) {\n this.trigger('change', e);\n var element = e.target;\n this.validate(element.name);\n };\n // Handle form submit event\n FormValidator.prototype.submitHandler = function (e) {\n this.trigger('submit', e);\n //FormValidator.triggerCallback(this.submit, e);\n // Prevent form submit if validation failed\n if (!this.allowSubmit && !this.validate()) {\n e.preventDefault();\n }\n else {\n this.allowSubmit = false;\n }\n };\n // Handle form reset\n FormValidator.prototype.resetHandler = function () {\n this.clearForm();\n };\n // Validate each rule based on input element name\n FormValidator.prototype.validateRules = function (name) {\n if (!this.rules[\"\" + name]) {\n return;\n }\n var rules = Object.keys(this.rules[\"\" + name]);\n var hiddenType = false;\n var validateHiddenType = false;\n var vhPos = rules.indexOf('validateHidden');\n var hPos = rules.indexOf('hidden');\n this.getInputElement(name);\n if (hPos !== -1) {\n hiddenType = true;\n }\n if (vhPos !== -1) {\n validateHiddenType = true;\n }\n if (!hiddenType || (hiddenType && validateHiddenType)) {\n if (vhPos !== -1) {\n rules.splice(vhPos, 1);\n }\n if (hPos !== -1) {\n rules.splice((hPos - 1), 1);\n }\n this.getErrorElement(name);\n for (var _i = 0, rules_2 = rules; _i < rules_2.length; _i++) {\n var rule = rules_2[_i];\n var errorMessage = this.getErrorMessage(this.rules[\"\" + name][\"\" + rule], rule);\n var errorRule = { name: name, message: errorMessage };\n var eventArgs = {\n inputName: name,\n element: this.inputElement,\n message: errorMessage\n };\n if (!this.isValid(name, rule) && !this.inputElement.classList.contains(this.ignore)) {\n this.removeErrorRules(name);\n this.errorRules.push(errorRule);\n // Set aria attributes to invalid elements\n this.inputElement.setAttribute('aria-invalid', 'true');\n this.inputElement.setAttribute('aria-describedby', this.inputElement.id + '-info');\n this.inputElement.classList.add(this.errorClass);\n this.inputElement.classList.remove(this.validClass);\n if (!this.infoElement) {\n this.createErrorElement(name, errorRule.message, this.inputElement);\n }\n else {\n this.showMessage(errorRule);\n }\n eventArgs.errorElement = this.infoElement;\n eventArgs.status = 'failure';\n this.inputElement.classList.add(this.errorClass);\n this.inputElement.classList.remove(this.validClass);\n this.optionalValidationStatus(name, eventArgs);\n this.trigger('validationComplete', eventArgs);\n // Set aria-required to required rule elements\n if (rule === 'required') {\n this.inputElement.setAttribute('aria-required', 'true');\n }\n break;\n }\n else {\n this.hideMessage(name);\n eventArgs.status = 'success';\n this.trigger('validationComplete', eventArgs);\n }\n }\n }\n else {\n return;\n }\n };\n // Update the optional validation status\n FormValidator.prototype.optionalValidationStatus = function (name, refer) {\n if (!this.rules[\"\" + name][this.required] && !this.inputElement.value.length && !isNullOrUndefined(this.infoElement)) {\n this.infoElement.innerHTML = this.inputElement.value;\n this.infoElement.setAttribute('aria-invalid', 'false');\n refer.status = '';\n this.hideMessage(name);\n }\n };\n // Check the input element whether it's value satisfy the validation rule or not\n FormValidator.prototype.isValid = function (name, rule) {\n var params = this.rules[\"\" + name][\"\" + rule];\n var param = (params instanceof Array && typeof params[1] === 'string') ? params[0] : params;\n var currentRule = this.rules[\"\" + name][\"\" + rule];\n var args = { value: this.inputElement.value, param: param, element: this.inputElement, formElement: this.element };\n this.trigger('validationBegin', args);\n if (!args.param && rule === 'required') {\n return true;\n }\n if (currentRule && typeof currentRule[0] === 'function') {\n var fn = currentRule[0];\n return fn.call(this, { element: this.inputElement, value: this.inputElement.value });\n }\n else if (FormValidator_1.isCheckable(this.inputElement)) {\n if (rule !== 'required') {\n return true;\n }\n return selectAll('input[name=\"' + name + '\"]:checked', this.element).length > 0;\n }\n else {\n return FormValidator_1.checkValidator[\"\" + rule](args);\n }\n };\n // Return default error message or custom error message\n FormValidator.prototype.getErrorMessage = function (ruleValue, rule) {\n var message = this.inputElement.getAttribute('data-' + rule + '-message') ?\n this.inputElement.getAttribute('data-' + rule + '-message') :\n (ruleValue instanceof Array && typeof ruleValue[1] === 'string') ? ruleValue[1] :\n (Object.keys(this.localyMessage).length !== 0) ? this.localyMessage[\"\" + rule] : this.defaultMessages[\"\" + rule];\n var formats = message.match(/{(\\d)}/g);\n if (!isNullOrUndefined(formats)) {\n for (var i = 0; i < formats.length; i++) {\n var value = ruleValue instanceof Array ? ruleValue[parseInt(i.toString())] : ruleValue;\n message = message.replace(formats[parseInt(i.toString())], value);\n }\n }\n return message;\n };\n // Create error element based on name and error message\n FormValidator.prototype.createErrorElement = function (name, message, input) {\n var errorElement = createElement(this.errorElement, {\n className: this.errorClass,\n innerHTML: message,\n attrs: { for: name }\n });\n // Create message design if errorOption is message\n if (this.errorOption === ErrorOption.Message) {\n errorElement.classList.remove(this.errorClass);\n errorElement.classList.add('e-message');\n errorElement = createElement(this.errorContainer, { className: this.errorClass, innerHTML: errorElement.outerHTML });\n }\n errorElement.id = this.inputElement.name + '-info';\n // Append error message into MVC error message element\n if (this.element.querySelector('[data-valmsg-for=\"' + input.id + '\"]')) {\n this.element.querySelector('[data-valmsg-for=\"' + input.id + '\"]').appendChild(errorElement);\n }\n else if (input.hasAttribute('data-msg-containerid') === true) {\n // Append error message into custom div element\n var containerId = input.getAttribute('data-msg-containerid');\n var divElement = select('#' + containerId, this.element);\n divElement.appendChild(errorElement);\n }\n else if (this.customPlacement != null) {\n // Call custom placement function if customPlacement is not null\n this.customPlacement.call(this, this.inputElement, errorElement);\n }\n else {\n var inputParent = this.inputElement.parentElement;\n var grandParent = inputParent.parentElement;\n if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) {\n grandParent.insertBefore(errorElement, inputParent.nextSibling);\n }\n else if (grandParent.classList.contains('e-control-wrapper') || grandParent.classList.contains('e-wrapper')) {\n grandParent.parentElement.insertBefore(errorElement, grandParent.nextSibling);\n }\n else {\n inputParent.insertBefore(errorElement, this.inputElement.nextSibling);\n }\n }\n errorElement.style.display = 'block';\n this.getErrorElement(name);\n this.validated.push(name);\n this.checkRequired(name);\n };\n // Get error element by name\n FormValidator.prototype.getErrorElement = function (name) {\n this.infoElement = select(this.errorElement + '.' + this.errorClass, this.inputElement.parentElement);\n if (!this.infoElement) {\n this.infoElement = select(this.errorElement + '.' + this.errorClass + '[for=\"' + name + '\"]', this.element);\n }\n return this.infoElement;\n };\n // Remove existing rule from errorRules object\n FormValidator.prototype.removeErrorRules = function (name) {\n for (var i = 0; i < this.errorRules.length; i++) {\n var rule = this.errorRules[parseInt(i.toString())];\n if (rule.name === name) {\n this.errorRules.splice(i, 1);\n }\n }\n };\n // Show error message to the input element\n FormValidator.prototype.showMessage = function (errorRule) {\n this.infoElement.style.display = 'block';\n this.infoElement.innerHTML = errorRule.message;\n this.checkRequired(errorRule.name);\n };\n // Hide error message based on input name\n FormValidator.prototype.hideMessage = function (name) {\n if (this.infoElement) {\n this.infoElement.style.display = 'none';\n this.removeErrorRules(name);\n this.inputElement.classList.add(this.validClass);\n this.inputElement.classList.remove(this.errorClass);\n this.inputElement.setAttribute('aria-invalid', 'false');\n }\n };\n // Check whether the input element have required rule and its value is not empty\n FormValidator.prototype.checkRequired = function (name) {\n if (!this.rules[\"\" + name][this.required] && !this.inputElement.value.length && !isNullOrUndefined(this.infoElement)) {\n this.infoElement.innerHTML = this.inputElement.value;\n this.infoElement.setAttribute('aria-invalid', 'false');\n this.hideMessage(name);\n }\n };\n // Return boolean result if the input have chekcable or submit types\n FormValidator.isCheckable = function (input) {\n var inputType = input.getAttribute('type');\n return inputType && (inputType === 'checkbox' || inputType === 'radio' || inputType === 'submit');\n };\n var FormValidator_1;\n // List of function to validate the rules\n FormValidator.checkValidator = {\n required: function (option) {\n return !isNaN(Date.parse(option.value)) ? !isNaN(new Date(option.value).getTime()) : option.value.toString().length > 0;\n },\n email: function (option) {\n return regex.EMAIL.test(option.value);\n },\n url: function (option) {\n return regex.URL.test(option.value);\n },\n dateIso: function (option) {\n return regex.DATE_ISO.test(option.value);\n },\n tel: function (option) {\n return regex.PHONE.test(option.value);\n },\n creditcard: function (option) {\n return regex.CREDITCARD.test(option.value);\n },\n number: function (option) {\n return !isNaN(Number(option.value)) && option.value.indexOf(' ') === -1;\n },\n digits: function (option) {\n return regex.DIGITS.test(option.value);\n },\n maxLength: function (option) {\n return option.value.length <= option.param;\n },\n minLength: function (option) {\n return option.value.length >= option.param;\n },\n rangeLength: function (option) {\n var param = option.param;\n return option.value.length >= param[0] && option.value.length <= param[1];\n },\n range: function (option) {\n var param = option.param;\n return !isNaN(Number(option.value)) && Number(option.value) >= param[0] && Number(option.value) <= param[1];\n },\n date: function (option) {\n if (!isNullOrUndefined(option.param) && (typeof (option.param) === 'string' && option.param !== '')) {\n var globalize = new Internationalization;\n var dateOptions = { format: option.param.toString(), type: 'dateTime', skeleton: 'yMd' };\n var dateValue = globalize.parseDate(option.value, dateOptions);\n return (!isNullOrUndefined(dateValue) && dateValue instanceof Date && !isNaN(+dateValue));\n }\n else {\n return !isNaN(new Date(option.value).getTime());\n }\n },\n max: function (option) {\n if (!isNaN(Number(option.value))) {\n // Maximum rule validation for number\n return +option.value <= option.param;\n }\n // Maximum rule validation for date\n return new Date(option.value).getTime() <= new Date(JSON.parse(JSON.stringify(option.param))).getTime();\n },\n min: function (option) {\n if (!isNaN(Number(option.value))) {\n // Minimum rule validation for number\n return +option.value >= option.param;\n }\n else if ((option.value).indexOf(',') !== -1) {\n var uNum = (option.value).replace(/,/g, '');\n return parseFloat(uNum) >= option.param;\n }\n else {\n // Minimum rule validation for date\n return new Date(option.value).getTime() >= new Date(JSON.parse(JSON.stringify(option.param))).getTime();\n }\n },\n regex: function (option) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n return new RegExp(option.param).test(option.value);\n },\n equalTo: function (option) {\n var compareTo = option.formElement.querySelector('#' + option.param);\n option.param = compareTo.value;\n return option.param === option.value;\n }\n };\n __decorate([\n Property('')\n ], FormValidator.prototype, \"locale\", void 0);\n __decorate([\n Property('e-hidden')\n ], FormValidator.prototype, \"ignore\", void 0);\n __decorate([\n Property()\n ], FormValidator.prototype, \"rules\", void 0);\n __decorate([\n Property('e-error')\n ], FormValidator.prototype, \"errorClass\", void 0);\n __decorate([\n Property('e-valid')\n ], FormValidator.prototype, \"validClass\", void 0);\n __decorate([\n Property('label')\n ], FormValidator.prototype, \"errorElement\", void 0);\n __decorate([\n Property('div')\n ], FormValidator.prototype, \"errorContainer\", void 0);\n __decorate([\n Property(ErrorOption.Label)\n ], FormValidator.prototype, \"errorOption\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"focusout\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"keyup\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"submit\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"validationBegin\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"validationComplete\", void 0);\n __decorate([\n Event()\n ], FormValidator.prototype, \"customPlacement\", void 0);\n FormValidator = FormValidator_1 = __decorate([\n NotifyPropertyChanges\n ], FormValidator);\n return FormValidator;\n}(Base));\nexport { FormValidator };\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, Event, Property, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, getValue, setValue, addClass, detach } from '@syncfusion/ej2-base';\nimport { removeClass, Browser, closest } from '@syncfusion/ej2-base';\nimport { Input } from '../../input/input';\nimport { regularExpressions, createMask, applyMask, wireEvents, unwireEvents, unstrippedValue, strippedValue } from '../base/index';\nimport { setMaskValue, setElementValue, bindClearEvent } from '../base/index';\nvar ROOT = 'e-control-wrapper e-mask';\nvar INPUT = 'e-input';\nvar COMPONENT = 'e-maskedtextbox';\nvar CONTROL = 'e-control';\nvar MASKINPUT_FOCUS = 'e-input-focus';\nvar wrapperAttr = ['title', 'style', 'class'];\n/**\n * The MaskedTextBox allows the user to enter the valid input only based on the provided mask.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar MaskedTextBox = /** @class */ (function (_super) {\n __extends(MaskedTextBox, _super);\n /**\n *\n * @param {MaskedTextBoxModel} options - Specifies the MaskedTextBox model.\n * @param {string | HTMLElement | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function MaskedTextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.initInputValue = '';\n _this.isAngular = false;\n _this.preventChange = false;\n _this.isClicked = false;\n _this.maskOptions = options;\n return _this;\n }\n /**\n * Gets the component name.\n *\n * @returns {string} Returns the component name.\n * @private\n */\n MaskedTextBox.prototype.getModuleName = function () {\n return 'maskedtextbox';\n };\n /**\n * Initializes the event handler\n *\n * @returns {void}\n * @private\n */\n MaskedTextBox.prototype.preRender = function () {\n this.promptMask = '';\n this.hiddenMask = '';\n this.escapeMaskValue = '';\n this.regExpCollec = regularExpressions;\n this.customRegExpCollec = [];\n this.undoCollec = [];\n this.redoCollec = [];\n this.changeEventArgs = {};\n this.focusEventArgs = {};\n this.blurEventArgs = {};\n this.maskKeyPress = false;\n this.isFocus = false;\n this.isInitial = false;\n this.isIosInvalid = 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.formElement = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {\n this.angularTagName = this.element.tagName;\n var input = this.createElement('input');\n for (var i = 0; i < this.element.attributes.length; i++) {\n input.setAttribute(this.element.attributes[i].nodeName, this.element.attributes[i].nodeValue);\n input.innerHTML = this.element.innerHTML;\n }\n if (this.element.hasAttribute('id')) {\n this.element.removeAttribute('id');\n }\n this.element.classList.remove('e-control', 'e-maskedtextbox');\n this.element.classList.add('e-mask-container');\n this.element.appendChild(input);\n this.element = input;\n setValue('ej2_instances', ejInstance, this.element);\n }\n this.updateHTMLAttrToElement();\n this.checkHtmlAttributes(false);\n if (this.formElement) {\n this.initInputValue = this.value;\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 MaskedTextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Initializes the component rendering.\n *\n * @returns {void}\n * @private\n */\n MaskedTextBox.prototype.render = function () {\n if (this.element.tagName.toLowerCase() === 'input') {\n if (this.floatLabelType === 'Never') {\n addClass([this.element], INPUT);\n }\n this.createWrapper();\n this.updateHTMLAttrToWrapper();\n if (this.element.name === '') {\n this.element.setAttribute('name', this.element.id);\n }\n this.isInitial = true;\n this.resetMaskedTextBox();\n this.isInitial = false;\n this.setMaskPlaceholder(true, false);\n this.setWidth(this.width);\n this.preEleVal = this.element.value;\n if (!Browser.isDevice && (Browser.info.version === '11.0' || Browser.info.name === 'edge')) {\n this.element.blur();\n }\n if (Browser.isDevice && Browser.isIos) {\n this.element.blur();\n }\n if (this.element.getAttribute('value') || this.value) {\n this.element.setAttribute('value', this.element.value);\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n }\n };\n MaskedTextBox.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 (wrapperAttr.indexOf(key) < 0) {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n MaskedTextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getValidClassList(newClass), [this.inputObj.container], this.getValidClassList(oldClass));\n };\n MaskedTextBox.prototype.getValidClassList = function (maskClassName) {\n var result = maskClassName;\n if (!isNullOrUndefined(maskClassName) && maskClassName !== '') {\n result = (maskClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n MaskedTextBox.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 (wrapperAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValues !== '') {\n addClass([this.inputObj.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var maskStyle = this.inputObj.container.getAttribute(key);\n maskStyle = !isNullOrUndefined(maskStyle) ? (maskStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.inputObj.container.setAttribute(key, maskStyle);\n }\n else {\n this.inputObj.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n MaskedTextBox.prototype.resetMaskedTextBox = function () {\n this.promptMask = '';\n this.hiddenMask = '';\n this.escapeMaskValue = '';\n this.customRegExpCollec = [];\n this.undoCollec = [];\n this.redoCollec = [];\n if (this.promptChar.length > 1) {\n this.promptChar = this.promptChar[0];\n }\n createMask.call(this);\n applyMask.call(this);\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\n setElementValue.call(this, this.value);\n }\n var val = strippedValue.call(this, this.element);\n this.prevValue = val;\n this.value = val;\n if (!this.isInitial) {\n unwireEvents.call(this);\n }\n wireEvents.call(this);\n };\n MaskedTextBox.prototype.setMaskPlaceholder = function (setVal, dynamicPlaceholder) {\n if (dynamicPlaceholder || this.placeholder) {\n Input.setPlaceholder(this.placeholder, this.element);\n if ((this.element.value === this.promptMask && setVal && this.floatLabelType !== 'Always') ||\n this.element.value === this.promptMask && this.floatLabelType === 'Never') {\n setElementValue.call(this, '');\n }\n }\n };\n MaskedTextBox.prototype.setWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.inputObj.container.style.width = formatUnit(width);\n this.element.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n var elementWidth = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n this.inputObj.container.style.width = elementWidth;\n this.element.style.width = elementWidth;\n }\n }\n };\n MaskedTextBox.prototype.checkHtmlAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes)\n : ['placeholder', 'disabled', 'value', 'readonly'];\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var key = attributes_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\n switch (key) {\n case 'placeholder':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'disabled':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['enabled'] === undefined)) || isDynamic) {\n var isEnabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\n this.element.getAttribute(key) === 'true' ? false : true;\n this.setProperties({ enabled: isEnabled }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['value'] === undefined)) || isDynamic) {\n this.setProperties({ value: this.element.value }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['readonly'] === undefined)) || isDynamic) {\n var isReadonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\n || this.element.getAttribute(key) === 'true' ? true : false;\n this.setProperties({ readonly: isReadonly }, !isDynamic);\n }\n break;\n }\n }\n }\n };\n MaskedTextBox.prototype.createWrapper = function () {\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = this.getValidClassList(this.cssClass);\n }\n this.inputObj = Input.createInput({\n element: this.element,\n floatLabelType: this.floatLabelType,\n properties: {\n enableRtl: this.enableRtl,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n readonly: this.readonly,\n placeholder: this.placeholder,\n showClearButton: this.showClearButton\n }\n }, this.createElement);\n this.inputObj.container.setAttribute('class', ROOT + ' ' + this.inputObj.container.getAttribute('class'));\n };\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {MaskedTextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {MaskedTextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @hidden\n */\n MaskedTextBox.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 'value':\n setMaskValue.call(this, this.value);\n if (this.placeholder && !this.isFocus) {\n this.setMaskPlaceholder(false, false);\n }\n if (this.value === \"\") {\n this.element.selectionStart = 0;\n this.element.selectionEnd = 0;\n }\n break;\n case 'placeholder':\n this.setMaskPlaceholder(true, true);\n break;\n case 'width':\n this.setWidth(newProp.width);\n Input.calculateWidth(this.element, this.inputObj.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, this.floatLabelType, this.inputObj.container);\n break;\n case 'readonly':\n Input.setReadonly(newProp.readonly, this.element);\n break;\n case 'enableRtl':\n Input.setEnableRtl(newProp.enableRtl, [this.inputObj.container]);\n break;\n case 'customCharacters':\n this.customCharacters = newProp.customCharacters;\n this.resetMaskedTextBox();\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this.element, this.inputObj, undefined, this.createElement);\n bindClearEvent.call(this);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputObj);\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\n break;\n case 'htmlAttributes':\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.checkHtmlAttributes(true);\n break;\n case 'mask':\n {\n var strippedValue_1 = this.value;\n this.mask = newProp.mask;\n this.updateValue(strippedValue_1);\n }\n break;\n case 'promptChar': {\n if (newProp.promptChar.length > 1) {\n newProp.promptChar = newProp.promptChar[0];\n }\n if (newProp.promptChar) {\n this.promptChar = newProp.promptChar;\n }\n else {\n this.promptChar = '_';\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n var value = this.element.value.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\n if (this.promptMask === this.element.value) {\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n value = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\n }\n /* eslint-disable-next-line security/detect-non-literal-regexp */\n this.promptMask = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\n this.undoCollec = this.redoCollec = [];\n setElementValue.call(this, value);\n break;\n }\n }\n }\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\n };\n MaskedTextBox.prototype.updateValue = function (strippedVal) {\n this.resetMaskedTextBox();\n setMaskValue.call(this, strippedVal);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the value of the MaskedTextBox with the masked format.\n * By using `value` property, you can get the raw value of maskedtextbox without literals and prompt characters.\n *\n * @returns {string}\n */\n MaskedTextBox.prototype.getMaskedValue = function () {\n return unstrippedValue.call(this, this.element);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n MaskedTextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.element && this.enabled) {\n this.isFocus = true;\n this.element.focus();\n addClass([this.inputObj.container], [MASKINPUT_FOCUS]);\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n MaskedTextBox.prototype.focusOut = function () {\n if (document.activeElement === this.element && this.enabled) {\n this.isFocus = false;\n this.element.blur();\n removeClass([this.inputObj.container], [MASKINPUT_FOCUS]);\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 MaskedTextBox.prototype.destroy = function () {\n unwireEvents.call(this);\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\n 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', '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 if (this.inputObj) {\n this.inputObj.container.insertAdjacentElement('afterend', this.element);\n detach(this.inputObj.container);\n }\n this.blurEventArgs = null;\n Input.destroy();\n this.changeEventArgs = null;\n this.inputObj = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('Never')\n ], MaskedTextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property({})\n ], MaskedTextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], MaskedTextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], MaskedTextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(false)\n ], MaskedTextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], MaskedTextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"mask\", void 0);\n __decorate([\n Property('_')\n ], MaskedTextBox.prototype, \"promptChar\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], MaskedTextBox.prototype, \"customCharacters\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], MaskedTextBox.prototype, \"blur\", void 0);\n MaskedTextBox = __decorate([\n NotifyPropertyChanges\n ], MaskedTextBox);\n return MaskedTextBox;\n}(Component));\nexport { MaskedTextBox };\n","/**\n * In-place Editor events defined here.\n */\n/** @hidden */\nexport var render = 'render';\n/** @hidden */\nexport var update = 'update';\n/** @hidden */\nexport var destroy = 'destroy';\n/** @hidden */\nexport var setFocus = 'set-focus';\n/** @hidden */\nexport var accessValue = 'access-value';\n/** @hidden */\nexport var destroyModules = 'destroy-modules';\n/** @hidden */\nexport var showPopup = 'show-popup';\n","/**\n * In-place Editor classes defined here.\n */\n/** @hidden */\nexport var ROOT = 'e-inplaceeditor';\n/** @hidden */\nexport var ROOT_TIP = 'e-inplaceeditor-tip';\n/** @hidden */\nexport var VALUE_WRAPPER = 'e-editable-value-wrapper';\n/** @hidden */\nexport var VALUE = 'e-editable-value';\n/** @hidden */\nexport var OVERLAY_ICON = 'e-editable-overlay-icon';\n/** @hidden */\nexport var TIP_TITLE = 'e-editable-tip-title';\n/** @hidden */\nexport var TITLE = 'e-editable-title';\n/** @hidden */\nexport var INLINE = 'e-editable-inline';\n/** @hidden */\nexport var POPUP = 'e-editable-popup';\n/** @hidden */\nexport var WRAPPER = 'e-editable-wrapper';\n/** @hidden */\nexport var LOADING = 'e-editable-loading';\n/** @hidden */\nexport var FORM = 'e-editable-form';\n/** @hidden */\nexport var CTRL_GROUP = 'e-component-group';\n/** @hidden */\nexport var INPUT = 'e-editable-component';\n/** @hidden */\nexport var BUTTONS = 'e-editable-action-buttons';\n/** @hidden */\nexport var EDITABLE_ERROR = 'e-editable-error';\n/** @hidden */\nexport var ELEMENTS = 'e-editable-elements';\n/** @hidden */\nexport var OPEN = 'e-editable-open';\n/** @hidden */\nexport var BTN_SAVE = 'e-btn-save';\n/** @hidden */\nexport var BTN_CANCEL = 'e-btn-cancel';\n/** @hidden */\nexport var RTE_SPIN_WRAP = 'e-rte-spin-wrap';\n/** @hidden */\nexport var CTRL_OVERLAY = 'e-control-overlay';\n/** @hidden */\nexport var DISABLE = 'e-disable';\n/** @hidden */\nexport var ICONS = 'e-icons';\n/** @hidden */\nexport var PRIMARY = 'e-primary';\n/** @hidden */\nexport var SHOW = 'e-show';\n/** @hidden */\nexport var HIDE = 'e-hide';\n/** @hidden */\nexport var RTL = 'e-rtl';\n/** @hidden */\nexport var ERROR = 'e-error';\n/** @hidden */\nexport var LOAD = 'e-loading';\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 } from '@syncfusion/ej2-base';\n/**\n * Configures the popup settings of the In-place editor.\n */\nvar PopupSettings = /** @class */ (function (_super) {\n __extends(PopupSettings, _super);\n function PopupSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], PopupSettings.prototype, \"title\", void 0);\n __decorate([\n Property(null)\n ], PopupSettings.prototype, \"model\", void 0);\n return PopupSettings;\n}(ChildProperty));\nexport { PopupSettings };\n/**\n * @hidden\n */\nexport var modulesList = {\n 'AutoComplete': 'auto-complete',\n 'Color': 'color-picker',\n 'ComboBox': 'combo-box',\n 'DateRange': 'date-range-picker',\n 'MultiSelect': 'multi-select',\n 'RTE': 'rte',\n 'Slider': 'slider',\n 'Time': 'time-picker'\n /* eslint-enable */\n};\n/**\n * @hidden\n */\n// eslint-disable-next-line\nexport var localeConstant = {\n 'Click': { 'editAreaClick': 'Click to edit' },\n 'DblClick': { 'editAreaDoubleClick': 'Double click to edit' },\n 'EditIconClick': { 'editAreaClick': 'Click to edit' }\n /* eslint-enable */\n};\n","import { isNullOrUndefined as isNOU, Internationalization, isBlazor } from '@syncfusion/ej2-base';\n/**\n * Exports util methods used by In-place editor.\n */\nvar intl = new Internationalization();\n/**\n * @param {string} type - specifies the string type\n * @param {valueType} val - specifies the value type\n * @param {modelType} model - specifies the model type\n * @returns {string} - returns the string\n */\nexport function parseValue(type, val, model) {\n if (isNOU(val) || val === '') {\n return '';\n }\n var result;\n var tempFormat;\n switch (type) {\n case 'Color': {\n var hex = val;\n result = (hex.length > 7) ? hex.slice(0, -2) : hex;\n break;\n }\n case 'Date':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n case 'DateRange': {\n tempFormat = model.format;\n var date = val;\n result = intl.formatDate(date[0], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' - '\n + intl.formatDate(date[1], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n }\n case 'DateTime':\n tempFormat = model.format;\n if (isNOU(tempFormat) || tempFormat === '') {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' '\n + intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n }\n else {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n }\n break;\n case 'Time':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n break;\n case 'Numeric': {\n tempFormat = isNOU(model.format) ? 'n2' :\n model.format;\n var tempVal = isNOU(val) ? null : (typeof (val) === 'number' ? val : intl.parseNumber(val));\n result = intl.formatNumber(tempVal, { format: tempFormat });\n break;\n }\n default:\n result = val.toString();\n break;\n }\n return result;\n}\n/**\n * @param {string} type - specifies the string value\n * @param {valueType} val - specifies the value type\n * @returns {valueType} - returns the value type\n */\nexport function getCompValue(type, val) {\n if (isNOU(val) || val === '') {\n return val;\n }\n if ((type === 'Date' || type === 'Time' || type === 'DateTime') && typeof (val) === 'string') {\n val = new Date(val);\n }\n else if (type === 'DateRange') {\n if (typeof (val) === 'object' && typeof (val[0]) === 'string') {\n val = [new Date(val[0]), new Date(val[1])];\n }\n else if (typeof (val) === 'string') {\n var temp = val.split('-');\n val = [new Date(temp[0]), new Date(temp[1])];\n }\n }\n return val;\n}\n/**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\nexport function encode(value) {\n var data = [];\n for (var i = value.length - 1; i >= 0; i--) {\n data.unshift(['&#', value[i].charCodeAt(0), ';'].join(''));\n }\n return data.join('');\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, Event, select } from '@syncfusion/ej2-base';\nimport { detach, addClass, removeClass, EventHandler, setStyleAttribute, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, closest, extend, L10n, compile, Browser, Touch } from '@syncfusion/ej2-base';\nimport { updateBlazorTemplate, resetBlazorTemplate, SanitizeHtmlHelper, getValue, isBlazor } from '@syncfusion/ej2-base';\nimport { DataManager, UrlAdaptor, Query, WebApiAdaptor, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { NumericTextBox, TextBox } from '@syncfusion/ej2-inputs';\nimport { FormValidator, MaskedTextBox } from '@syncfusion/ej2-inputs';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\n/* Helper modules */\nimport * as events from './events';\nimport * as classes from './classes';\n/* Models */\nimport { PopupSettings, modulesList, localeConstant } from './models';\n/* Interface */\nimport { parseValue, getCompValue, encode } from './util';\n/**\n * ```html\n * * The In-place editor control is used to edit an element in a place and to update the value in server.\n *
    \n * \n * ```\n */\nvar InPlaceEditor = /** @class */ (function (_super) {\n __extends(InPlaceEditor, _super);\n /**\n * Initializes a new instance of the In-place editor class.\n *\n * @param {InPlaceEditorModel} options - Specifies In-place editor model properties as options.\n * @param {string} element - Specifies the element for which In-place editor applies.\n */\n function InPlaceEditor(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n InPlaceEditor.prototype.initializeValue = function () {\n this.initRender = true;\n this.isTemplate = false;\n this.isVue = false;\n this.isExtModule = false;\n this.submitBtn = undefined;\n this.cancelBtn = undefined;\n this.isClearTarget = false;\n this.btnElements = undefined;\n this.dataManager = undefined;\n this.oldValue = undefined;\n this.divComponents = ['RTE', 'Slider'];\n this.clearComponents = ['AutoComplete', 'Mask', 'Text'];\n this.dateType = ['Date', 'DateTime', 'Time'];\n this.inputDataEle = ['Date', 'DateTime', 'DateRange', 'Time', 'Numeric'];\n this.dropDownEle = ['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'];\n this.moduleList = ['AutoComplete', 'Color', 'ComboBox', 'DateRange', 'MultiSelect', 'RTE', 'Slider', 'Time'];\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n InPlaceEditor.prototype.preRender = function () {\n this.initializeValue();\n this.onScrollResizeHandler = this.scrollResizeHandler.bind(this);\n if (isNOU(this.model)) {\n this.setProperties({ model: {} }, true);\n }\n this.titleEle = this.createElement('div', { className: classes.TITLE });\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.afterOpenEvent = this.popupSettings.model.afterOpen;\n }\n };\n /**\n * To Initialize the In-place editor rendering\n *\n * @returns {void}\n * @private\n */\n InPlaceEditor.prototype.render = function () {\n if (isNOU(this.element.getAttribute('tabindex'))) {\n this.element.setAttribute('tabindex', '0');\n }\n this.checkIsTemplate();\n this.disable(this.disabled);\n this.updateAdaptor();\n this.appendValueElement();\n this.updateValue();\n this.textOption === 'Never' ?\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n this.wireEvents();\n this.setRtl(this.enableRtl);\n this.enableEditor(this.enableEditMode, true);\n this.setClass('add', this.cssClass);\n this.renderComplete();\n };\n InPlaceEditor.prototype.setClass = function (action, val) {\n if (!this.isEmpty(val)) {\n var allClassName = val.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n action === 'add' ? addClass([this.element], [allClassName[i]]) : removeClass([this.element], [allClassName[i]]);\n }\n }\n }\n };\n InPlaceEditor.prototype.appendValueElement = function () {\n this.valueWrap = this.createElement('div', { id: this.element.id + '_wrap', className: classes.VALUE_WRAPPER });\n if (!isBlazor()) {\n this.element.innerHTML = '';\n }\n this.valueEle = this.createElement('span', { className: classes.VALUE });\n this.editIcon = this.createElement('span', {\n className: classes.OVERLAY_ICON + ' ' + classes.ICONS,\n attrs: { 'title': this.getLocale({ editIcon: 'Click to edit' }, 'editIcon') }\n });\n this.valueWrap.appendChild(this.valueEle);\n this.valueWrap.appendChild(this.editIcon);\n this.element.appendChild(this.valueWrap);\n };\n InPlaceEditor.prototype.renderInitialValue = function () {\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1\n && !isNOU(this.value) && !this.isEmpty(this.value.toString()) && !isNOU(this.model.fields)\n && !isNOU(this.model.dataSource)) {\n this.renderValue(this.getLocale({ loadingText: 'Loading...' }, 'loadingText'));\n this.valueWrap.classList.add(classes.LOAD);\n createSpinner({ target: this.valueWrap, width: 10 });\n showSpinner(this.valueWrap);\n this.getInitFieldMapValue();\n }\n else {\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)));\n }\n };\n InPlaceEditor.prototype.getInitFieldMapValue = function () {\n var _this = this;\n var model = this.model;\n var mText = model.fields.text;\n var mVal = model.fields.value;\n var query = isNOU(model.query) ? new Query() : model.query;\n if (model.dataSource instanceof DataManager) {\n model.dataSource.executeQuery(this.getInitQuery(model, query)).then(function (e) {\n _this.updateInitValue(mText, mVal, e.result);\n });\n }\n else {\n this.updateInitValue(mText, mVal, new DataManager(model.dataSource).executeLocal(this.getInitQuery(model, query)));\n }\n };\n InPlaceEditor.prototype.getInitQuery = function (model, query) {\n var predicate;\n var mVal = model.fields.value;\n var value = this.value;\n if (this.type !== 'MultiSelect' || typeof (this.value) !== 'object') {\n predicate = new Predicate(mVal, 'equal', this.value);\n }\n else {\n var i = 0;\n for (var _i = 0, value_1 = value; _i < value_1.length; _i++) {\n var val = value_1[_i];\n predicate = ((i === 0) ? predicate = new Predicate(mVal, 'equal', val) : predicate.or(mVal, 'equal', val));\n i++;\n }\n }\n return query.where(predicate);\n };\n InPlaceEditor.prototype.updateInitValue = function (mText, mVal, result) {\n if (result.length <= 0) {\n return;\n }\n if (result.length === 1) {\n this.valueEle.innerHTML = this.checkValue(getValue((isNOU(mText) ? mVal : mText), result[0]));\n }\n else {\n var val = [];\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var obj = result_1[_i];\n val.push(getValue((isNOU(mText) ? mVal : mText), obj));\n }\n this.valueEle.innerHTML = this.checkValue(val.toString());\n }\n hideSpinner(this.valueWrap);\n this.valueWrap.classList.remove(classes.LOAD);\n };\n InPlaceEditor.prototype.renderValue = function (val) {\n this.enableHtmlSanitizer && this.type !== 'RTE' && this.type !== 'MultiSelect' ? this.valueEle.innerText = val :\n (this.valueEle.innerHTML = this.enableHtmlParse ? val : encode(val));\n if (this.type === 'Color') {\n setStyleAttribute(this.valueEle, { 'color': val });\n }\n if (this.mode === 'Inline') {\n if (this.isEditorOpen()) {\n removeClass([this.valueWrap], [classes.HIDE]);\n }\n }\n };\n InPlaceEditor.prototype.isEditorOpen = function () {\n if (this.isVue && (this.enableEditMode || (!isNOU(this.valueWrap) &&\n !(this.valueWrap.classList.contains(classes.HIDE) || this.valueWrap.classList.contains('e-tooltip'))))) {\n return false;\n }\n else {\n return true;\n }\n };\n InPlaceEditor.prototype.renderEditor = function () {\n this.prevValue = this.value;\n this.beginEditArgs = { mode: this.mode, cancelFocus: false, cancel: false };\n this.trigger('beginEdit', this.beginEditArgs);\n if (this.beginEditArgs.cancel) {\n return;\n }\n var tipOptions = undefined;\n var target = select('.' + classes.VALUE_WRAPPER, this.element);\n if (this.editableOn !== 'EditIconClick') {\n target.parentElement.removeAttribute('title');\n }\n if (this.valueWrap.classList.contains(classes.OPEN)) {\n return;\n }\n if (this.mode === 'Inline') {\n addClass([this.valueWrap], [classes.HIDE]);\n this.inlineWrapper = this.createElement('div', { className: classes.INLINE });\n this.element.appendChild(this.inlineWrapper);\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1) {\n this.checkRemoteData(this.model);\n }\n else {\n this.renderAndOpen();\n }\n }\n else {\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.popupSettings.model.afterOpen = this.afterOpenHandler.bind(this);\n }\n var content = this.createElement('div', { className: classes.POPUP });\n if (!this.isEmpty(this.popupSettings.title)) {\n this.titleEle.innerHTML = this.popupSettings.title;\n content.appendChild(this.titleEle);\n }\n tipOptions = {\n content: content, opensOn: 'Custom',\n enableRtl: this.enableRtl, cssClass: classes.ROOT_TIP,\n afterOpen: this.afterOpenHandler.bind(this)\n };\n content.appendChild(this.renderControl(document.body));\n extend(tipOptions, this.popupSettings.model, tipOptions, true);\n this.tipObj = new Tooltip(tipOptions);\n this.tipObj.appendTo(target);\n this.tipObj.open(target);\n }\n if (this.actionOnBlur !== 'Ignore') {\n this.wireDocEvent();\n }\n addClass([this.valueWrap], [classes.OPEN]);\n this.setProperties({ enableEditMode: true }, true);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n InPlaceEditor.prototype.renderAndOpen = function () {\n this.renderControl(this.inlineWrapper);\n this.afterOpenHandler(null);\n };\n InPlaceEditor.prototype.checkRemoteData = function (model) {\n var _this = this;\n if (model.dataSource instanceof DataManager) {\n model.dataBound = function () {\n _this.afterOpenHandler(null);\n };\n this.renderControl(this.inlineWrapper);\n if ((isNOU(model.value) && isNOU(this.value)) || (model.value === this.value\n && (!isNOU(model.value) && model.value.length === 0))) {\n this.showDropDownPopup();\n }\n }\n else {\n this.renderAndOpen();\n }\n };\n InPlaceEditor.prototype.showDropDownPopup = function () {\n if (this.type === 'DropDownList') {\n if (!this.model.allowFiltering) {\n this.componentObj.focusIn();\n }\n this.componentObj.showPopup();\n }\n else {\n if (this.isExtModule) {\n this.notify(((this.type === 'MultiSelect') ? events.setFocus : events.showPopup), {});\n }\n }\n };\n InPlaceEditor.prototype.setAttribute = function (ele, attr) {\n var value = this.name && this.name.length !== 0 ? this.name : this.element.id;\n attr.forEach(function (val) {\n ele.setAttribute(val, ((val === 'id') ? (value + '_editor') : value));\n });\n };\n InPlaceEditor.prototype.renderControl = function (target) {\n var ele;\n this.containerEle = this.createElement('div', { className: classes.WRAPPER });\n this.loader = this.createElement('div', { className: classes.LOADING });\n this.formEle = this.createElement('form', { className: classes.FORM });\n var ctrlGroupEle = this.createElement('div', { className: classes.CTRL_GROUP });\n var inputWrap = this.createElement('div', { className: classes.INPUT });\n target.appendChild(this.containerEle);\n this.loadSpinner();\n this.containerEle.appendChild(this.formEle);\n this.formEle.appendChild(ctrlGroupEle);\n if (this.isTemplate) {\n this.appendTemplate(inputWrap, this.template);\n }\n else {\n if (Array.prototype.indexOf.call(this.divComponents, this.type) > -1) {\n ele = this.createElement('div');\n this.setAttribute(ele, ['id']);\n }\n else {\n ele = this.createElement('input');\n this.setAttribute(ele, ['id', 'name']);\n }\n this.componentRoot = ele;\n inputWrap.appendChild(ele);\n inputWrap.appendChild(this.loader);\n }\n ctrlGroupEle.appendChild(inputWrap);\n ctrlGroupEle.appendChild(this.createElement('div', { className: classes.EDITABLE_ERROR }));\n this.appendButtons(this.formEle);\n if (!this.isTemplate) {\n this.renderComponent(ele);\n }\n this.removeSpinner();\n if (this.submitOnEnter) {\n this.wireEditorKeyDownEvent(this.containerEle);\n }\n return this.containerEle;\n };\n InPlaceEditor.prototype.appendButtons = function (trg) {\n if (this.showButtons && trg) {\n this.btnElements = this.renderButtons();\n trg.appendChild(this.btnElements);\n this.wireBtnEvents();\n }\n };\n InPlaceEditor.prototype.renderButtons = function () {\n var btnWrap = this.createElement('div', { className: classes.BUTTONS });\n var primary = (!isNOU(this.saveButton.content) && this.saveButton.content.length !== 0) ? (' ' + classes.PRIMARY) : '';\n this.submitBtn = this.createButtons({\n constant: 'save', type: 'submit', container: btnWrap,\n title: { save: 'Save' }, model: this.saveButton,\n className: classes.BTN_SAVE + primary\n });\n this.cancelBtn = this.createButtons({\n type: 'button', constant: 'cancel', title: { cancel: 'Cancel' },\n container: btnWrap, model: this.cancelButton,\n className: classes.BTN_CANCEL\n });\n return btnWrap;\n };\n InPlaceEditor.prototype.createButtons = function (args) {\n var btnObj = undefined;\n if (Object.keys(args.model).length > 0) {\n var btnEle = this.createElement('button', {\n className: args.className,\n attrs: { 'type': args.type, 'title': (args.constant == \"save\") ? (isNOU(this.saveButton.content) ? this.getLocale(args.title, args.constant) : this.saveButton.content) : (isNOU(this.cancelButton.content) ? this.getLocale(args.title, args.constant) : this.cancelButton.content) }\n });\n args.container.appendChild(btnEle);\n btnObj = new Button(args.model, btnEle);\n }\n return btnObj;\n };\n InPlaceEditor.prototype.renderComponent = function (ele) {\n this.isExtModule = (Array.prototype.indexOf.call(this.moduleList, this.type) > -1) ? true : false;\n var classProp;\n if (!isNOU(this.model.cssClass)) {\n classProp = this.model.cssClass.indexOf(classes.ELEMENTS) < 0 ?\n this.model.cssClass === '' ? classes.ELEMENTS : this.model.cssClass + ' ' + classes.ELEMENTS :\n this.model.cssClass;\n }\n else {\n classProp = classes.ELEMENTS;\n }\n extend(this.model, this.model, {\n cssClass: classProp, enableRtl: this.enableRtl, locale: this.locale, change: this.changeHandler.bind(this)\n });\n if (!isNOU(this.value)) {\n this.updateModelValue(false);\n }\n if (this.isExtModule) {\n this.notify(events.render, { module: modulesList[this.type], target: ele, type: this.type });\n }\n else {\n if (isNOU(this.model.showClearButton) && !isBlazor()) {\n this.model.showClearButton = true;\n }\n switch (this.type) {\n case 'Date':\n this.componentObj = new DatePicker(this.model);\n break;\n case 'DateTime':\n this.componentObj = new DateTimePicker(this.model);\n break;\n case 'DropDownList':\n this.componentObj = new DropDownList(this.model);\n break;\n case 'Mask':\n this.componentObj = new MaskedTextBox(this.model);\n break;\n case 'Numeric':\n if (this.model.value) {\n var expRegex = new RegExp('[eE][\\-+]?([0-9]+)');\n if (expRegex.test(this.model.value)) {\n this.model.value = this.model.value;\n }\n else {\n this.model.value = this.model.value.toString().replace(/[`~!@#$%^&*()_|\\=?;:'\",<>\\{\\}\\[\\]\\\\\\/]/gi, '');\n }\n }\n this.componentObj = new NumericTextBox(this.model);\n break;\n case 'Text':\n this.componentObj = new TextBox(this.model);\n break;\n }\n this.componentObj.appendTo(ele);\n }\n };\n InPlaceEditor.prototype.updateAdaptor = function () {\n switch (this.adaptor) {\n case 'UrlAdaptor':\n this.dataAdaptor = new UrlAdaptor;\n break;\n case 'WebApiAdaptor':\n this.dataAdaptor = new WebApiAdaptor;\n break;\n case 'ODataV4Adaptor':\n this.dataAdaptor = new ODataV4Adaptor;\n break;\n }\n };\n InPlaceEditor.prototype.loadSpinner = function (callType) {\n addClass([this.loader], [classes.SHOW]);\n if (callType === 'validate' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n addClass([this.loader], [classes.RTE_SPIN_WRAP]);\n addClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n this.spinObj = { target: this.loader };\n }\n else {\n this.spinObj = { target: this.loader, width: Browser.isDevice ? '16px' : '14px' };\n }\n if (this.formEle) {\n addClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n addClass([this.btnElements], [classes.HIDE]);\n }\n setStyleAttribute(this.loader, { 'width': '100%' });\n createSpinner(this.spinObj);\n showSpinner(this.spinObj.target);\n };\n InPlaceEditor.prototype.removeSpinner = function (callType) {\n this.loader.removeAttribute('style');\n hideSpinner(this.spinObj.target);\n detach(this.spinObj.target.firstChild);\n if (callType === 'submit' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n removeClass([this.loader], [classes.RTE_SPIN_WRAP]);\n removeClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n }\n if (this.formEle) {\n removeClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n removeClass([this.btnElements], [classes.HIDE]);\n }\n removeClass([this.loader], [classes.SHOW]);\n };\n InPlaceEditor.prototype.getEditElement = function () {\n return select('.' + classes.ELEMENTS, this.formEle);\n };\n InPlaceEditor.prototype.getLocale = function (prop, val) {\n return new L10n('inplace-editor', prop, this.locale).getConstant(val);\n };\n InPlaceEditor.prototype.checkValue = function (val) {\n return (!this.isEmpty(val)) ? val : this.emptyText;\n };\n InPlaceEditor.prototype.extendModelValue = function (val) {\n var model = this.model;\n extend(model, { value: val });\n this.setProperties({ model: model }, true);\n };\n InPlaceEditor.prototype.updateValue = function () {\n this.oldValue = this.value;\n if (this.enableHtmlSanitizer && typeof (this.value) === 'string') {\n this.oldValue = this.sanitizeHelper(this.value);\n }\n if (!isNOU(this.value)) {\n this.setProperties({ value: getCompValue(this.type, this.oldValue) }, true);\n this.extendModelValue(getCompValue(this.type, this.oldValue));\n }\n };\n InPlaceEditor.prototype.updateModelValue = function (updateOldValue) {\n if (this.type === 'MultiSelect' && !this.isEmpty(this.value)) {\n this.model.value = !updateOldValue ? this.value.slice() : this.oldValue.slice();\n }\n else {\n this.model.value = !updateOldValue ? this.value : this.oldValue;\n }\n };\n InPlaceEditor.prototype.setValue = function () {\n if (this.isExtModule) {\n this.notify(events.update, { type: this.type });\n }\n else if (this.componentObj) {\n if (this.type === 'Numeric' && this.componentObj.value === null) {\n this.componentObj.setProperties({ value: null }, true);\n }\n this.setProperties({ value: this.componentObj.value }, true);\n this.extendModelValue(this.componentObj.value);\n }\n };\n InPlaceEditor.prototype.getDropDownsValue = function (display) {\n var value;\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1 && this.type !== 'MultiSelect') {\n value = display ? select('.e-' + this.type.toLocaleLowerCase(), this.containerEle).value :\n this.value.toString();\n }\n else if (this.type === 'MultiSelect') {\n this.notify(events.accessValue, { type: this.type });\n value = display ? this.printValue : this.value.join();\n }\n return value;\n };\n InPlaceEditor.prototype.getSendValue = function () {\n if (this.isEmpty(this.value)) {\n return '';\n }\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(false);\n }\n else if (Array.prototype.indexOf.call(this.dateType, this.type) > -1) {\n return this.value.toISOString();\n }\n else if (this.type === 'DateRange') {\n return this.value[0].toISOString() + ' - ' + this.value[1].toISOString();\n }\n else {\n return this.value.toString();\n }\n };\n InPlaceEditor.prototype.getRenderValue = function () {\n if (this.type === 'Mask' && this.componentObj.value.length !== 0) {\n return this.componentObj.getMaskedValue();\n }\n else if (Array.prototype.indexOf.call(this.inputDataEle, this.type) > -1) {\n return this.componentRoot.value;\n }\n else if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(true);\n }\n else {\n return parseValue(this.type, this.value, this.model);\n }\n };\n InPlaceEditor.prototype.setRtl = function (value) {\n value ? addClass([this.element], [classes.RTL]) : removeClass([this.element], [classes.RTL]);\n };\n InPlaceEditor.prototype.setFocus = function () {\n if (this.isTemplate) {\n return;\n }\n this.isExtModule ? this.notify(events.setFocus, {}) : this.componentObj.element.focus();\n };\n InPlaceEditor.prototype.removeEditor = function (isBlazorDestroy) {\n var blazorContain = Object.keys(window);\n if (isBlazor() && !this.isStringTemplate) {\n resetBlazorTemplate(this.element.id + 'template', 'Template');\n }\n var tipEle;\n if (this.tipObj && this.formEle) {\n tipEle = closest(this.formEle, '.' + classes.ROOT_TIP);\n tipEle.classList.add(classes.HIDE);\n }\n this.unWireDocEvent();\n this.destroyComponents();\n this.formEle = undefined;\n if (!isNOU(select('.' + classes.INLINE, this.element))) {\n detach(this.inlineWrapper);\n this.inlineWrapper = undefined;\n }\n else if (this.tipObj) {\n if (this.type === 'MultiSelect') {\n EventHandler.remove(this.containerEle, 'mousedown', this.popMouseDown);\n EventHandler.remove(this.containerEle, 'click', this.popClickHandler);\n }\n this.tipObj.close();\n this.tipObj.destroy();\n this.tipObj = undefined;\n }\n this.containerEle = undefined;\n removeClass([this.valueWrap], [classes.OPEN, classes.HIDE]);\n if (!isBlazorDestroy) {\n this.setProperties({ enableEditMode: false }, true);\n }\n if (this.editableOn !== 'EditIconClick') {\n var titleConstant = (this.editableOn === 'DblClick') ? 'editAreaDoubleClick' : 'editAreaClick';\n if (!isNOU(this.valueWrap.parentElement)) {\n this.valueWrap.parentElement.setAttribute('title', this.getLocale(localeConstant[this.editableOn], titleConstant));\n }\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n InPlaceEditor.prototype.destroyComponents = function () {\n if (this.showButtons) {\n this.destroyButtons();\n }\n if (this.isExtModule) {\n this.notify(events.destroyModules, {});\n }\n else {\n if (this.templateEle) {\n document.body.appendChild(this.templateEle);\n this.templateEle.style.display = 'none';\n this.templateEle = undefined;\n }\n if (!isNOU(this.componentObj)) {\n this.componentObj.destroy();\n this.componentObj = undefined;\n }\n }\n if (this.formValidate) {\n this.formValidate = undefined;\n }\n if (this.submitOnEnter && this.containerEle) {\n this.unWireEditorKeyDownEvent(this.containerEle);\n }\n };\n InPlaceEditor.prototype.destroyButtons = function () {\n if (!isNOU(this.submitBtn)) {\n EventHandler.remove(this.submitBtn.element, 'mousedown', this.submitHandler);\n EventHandler.remove(this.submitBtn.element, 'click', this.submitPrevent);\n EventHandler.remove(this.submitBtn.element, 'keydown', this.btnKeyDownHandler);\n this.submitBtn.destroy();\n this.submitBtn = undefined;\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.remove(this.cancelBtn.element, 'mouseup', this.cancelBtnClick);\n EventHandler.remove(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler);\n this.cancelBtn.destroy();\n this.cancelBtn = undefined;\n }\n this.btnElements = undefined;\n };\n InPlaceEditor.prototype.getQuery = function (params) {\n var query = new Query();\n Object.keys(params).forEach(function (key) {\n query.addParams(key, params[key]);\n });\n return query;\n };\n InPlaceEditor.prototype.sendValue = function () {\n var _this = this;\n var eventArgs = { data: { name: this.name, primaryKey: this.primaryKey, value: this.getSendValue() } };\n this.trigger('actionBegin', eventArgs, function (actionBeginArgs) {\n if (actionBeginArgs.cancel) {\n _this.removeSpinner('submit');\n if (_this.mode === 'Popup') {\n _this.updateArrow();\n }\n }\n else {\n if (!_this.isEmpty(_this.url) && !_this.isEmpty(_this.primaryKey)\n && (_this.initRender || (!_this.initRender && _this.prevValue !== _this.value))) {\n _this.dataManager = new DataManager({ url: _this.url, adaptor: _this.dataAdaptor });\n if (_this.adaptor === 'UrlAdaptor') {\n _this.dataManager.executeQuery(_this.getQuery(actionBeginArgs.data), _this.successHandler.bind(_this), _this.failureHandler.bind(_this));\n }\n else {\n var crud = _this.dataManager.insert(actionBeginArgs.data);\n crud.then(function (e) { return _this.successHandler(e); }).catch(function (e) { return _this.failureHandler(e); });\n }\n }\n else {\n var eventArg = { data: {}, value: actionBeginArgs.data.value };\n _this.triggerSuccess(eventArg);\n }\n _this.dataManager = undefined;\n }\n });\n };\n InPlaceEditor.prototype.isEmpty = function (value) {\n return (!isNOU(value) && value.length !== 0) ? false : true;\n };\n InPlaceEditor.prototype.checkIsTemplate = function () {\n this.isTemplate = (!isNOU(this.template) && this.template !== '') ? true : false;\n };\n InPlaceEditor.prototype.templateCompile = function (trgEle, tempStr) {\n var tempEle;\n var blazorContain = Object.keys(window);\n if (typeof tempStr === 'string') {\n tempStr = tempStr.trim();\n }\n var compiler = compile(tempStr);\n if (!isNOU(compiler)) {\n var isString = (isBlazor() && typeof tempStr !== 'function' &&\n !this.isStringTemplate && (tempStr).indexOf('
    Blazor') === 0) ?\n this.isStringTemplate : true;\n tempEle = compiler({}, this, 'template', this.element.id + 'template', isString);\n }\n if (!isNOU(compiler) && tempEle.length > 0) {\n [].slice.call(tempEle).forEach(function (el) {\n trgEle.appendChild(el);\n });\n if (isBlazor() && !this.isStringTemplate && typeof tempStr !== 'function' &&\n (tempStr).indexOf('
    Blazor') === 0) {\n updateBlazorTemplate(this.element.id + 'template', 'Template', this);\n }\n }\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\n InPlaceEditor.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item_1 = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item_1, item_1, beforeEvent);\n this.trigger('beforeSanitizeHtml', item_1, function (args) {\n if (item_1.cancel && !isNOU(item_1.helper)) {\n value = item_1.helper(value);\n }\n else if (!item_1.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item_1, value);\n }\n });\n }\n return value;\n };\n InPlaceEditor.prototype.appendTemplate = function (trgEle, tempStr) {\n tempStr = typeof (tempStr) === 'string' ? this.sanitizeHelper(tempStr) : tempStr;\n this.setProperties({ template: tempStr }, true);\n if (typeof tempStr === 'function') {\n this.templateCompile(trgEle, tempStr);\n }\n else if (typeof tempStr === 'string' || isNOU(tempStr.innerHTML)) {\n if (tempStr[0] === '.' || tempStr[0] === '#') {\n if (document.querySelectorAll(tempStr).length) {\n this.templateEle = document.querySelector(tempStr);\n trgEle.appendChild(this.templateEle);\n this.templateEle.style.display = '';\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateEle = tempStr;\n trgEle.appendChild(this.templateEle);\n }\n };\n InPlaceEditor.prototype.disable = function (value) {\n value ? addClass([this.element], [classes.DISABLE]) : removeClass([this.element], [classes.DISABLE]);\n };\n InPlaceEditor.prototype.enableEditor = function (val, isInit) {\n if (isInit && !val) {\n return;\n }\n (val) ? this.renderEditor() : this.cancelHandler('cancel');\n };\n InPlaceEditor.prototype.checkValidation = function (fromSubmit, isValidate) {\n var _this = this;\n var args;\n if (this.validationRules) {\n var rules = Object.keys(this.validationRules);\n var validationLength_1 = Object.keys(this.validationRules[rules[0]]).length;\n validationLength_1 = 'validateHidden' in this.validationRules[rules[0]] ? validationLength_1 - 1 : validationLength_1;\n var count_1 = 0;\n this.formValidate = new FormValidator(this.formEle, {\n rules: this.validationRules,\n validationBegin: function (e) {\n if (_this.type === 'RTE') {\n var ele = document.createElement('div');\n ele.innerHTML = e.value;\n e.value = ele.innerText;\n }\n },\n validationComplete: function (e) {\n count_1 = count_1 + 1;\n args = {\n errorMessage: e.message,\n data: { name: _this.name, primaryKey: _this.primaryKey, value: _this.checkValue(_this.getSendValue()) }\n };\n _this.trigger('validating', args, function (validateArgs) {\n if (e.status === 'failure') {\n e.errorElement.innerText = validateArgs.errorMessage;\n _this.toggleErrorClass(true);\n }\n else {\n _this.toggleErrorClass(false);\n }\n if (!isNOU(fromSubmit) && fromSubmit && (validationLength_1 === count_1 || e.status === 'failure')) {\n fromSubmit = false;\n _this.afterValidation(isValidate);\n count_1 = 0;\n }\n });\n },\n customPlacement: function (inputElement, errorElement) {\n if (_this.formEle) {\n select('.' + classes.EDITABLE_ERROR, _this.formEle).appendChild(errorElement);\n }\n }\n });\n count_1 = 0;\n this.formValidate.validate();\n }\n else if (this.template !== '') {\n args = {\n errorMessage: '',\n data: { name: this.name, primaryKey: this.primaryKey, value: this.checkValue(this.getSendValue()) }\n };\n this.trigger('validating', args, function (validateArgs) {\n if (validateArgs.errorMessage) {\n select('.' + classes.EDITABLE_ERROR, _this.formEle).innerHTML = validateArgs.errorMessage;\n _this.toggleErrorClass(true);\n }\n else {\n _this.toggleErrorClass(false);\n }\n _this.afterValidation(isValidate);\n });\n }\n else {\n this.afterValidation(isValidate);\n }\n };\n InPlaceEditor.prototype.afterValidation = function (isValidate) {\n if (!this.formEle.classList.contains(classes.ERROR) && isValidate) {\n this.loadSpinner('validate');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n this.sendValue();\n }\n };\n InPlaceEditor.prototype.toggleErrorClass = function (value) {\n if (isNOU(this.formEle)) {\n return;\n }\n var inputEle = select('.e-input-group', this.formEle);\n var errorClass = function (element, val, action) {\n [].slice.call(element).forEach(function (ele) {\n if (ele) {\n action === 'add' ? addClass([ele], [val]) : removeClass([ele], [val]);\n }\n });\n };\n errorClass([this.formEle, inputEle], classes.ERROR, value ? 'add' : 'remove');\n };\n InPlaceEditor.prototype.updateArrow = function () {\n var pos = this.tipObj.tipPointerPosition;\n this.tipObj.tipPointerPosition = (pos === 'Middle') ? 'Auto' : 'Middle';\n this.tipObj.tipPointerPosition = pos;\n this.tipObj.dataBind();\n };\n InPlaceEditor.prototype.triggerSuccess = function (args) {\n var _this = this;\n var val = args.value;\n this.trigger('actionSuccess', args, function (actionArgs) {\n _this.oldValue = val;\n _this.removeSpinner('submit');\n if (!actionArgs.cancel) {\n _this.renderValue(_this.checkValue((actionArgs.value !== val) ? actionArgs.value : _this.getRenderValue()));\n }\n if (actionArgs.cancel && _this.mode === 'Inline') {\n removeClass([_this.valueWrap], [classes.HIDE]);\n }\n _this.removeEditor();\n });\n };\n InPlaceEditor.prototype.triggerEndEdit = function (closeBeginBy) {\n var _this = this;\n var endEditArgs = { cancel: false, mode: this.mode, action: closeBeginBy };\n this.trigger('endEdit', endEditArgs, function (args) {\n if (!args.cancel) {\n if (_this.formEle && _this.formEle.classList.contains(classes.ERROR)) {\n _this.updateModelValue(true);\n _this.setProperties({ value: _this.oldValue }, true);\n }\n _this.removeEditor();\n }\n });\n };\n InPlaceEditor.prototype.wireEvents = function () {\n this.wireEditEvent(this.editableOn);\n EventHandler.add(this.editIcon, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.valueKeyDownHandler, this);\n document.addEventListener('scroll', this.onScrollResizeHandler);\n window.addEventListener('resize', this.onScrollResizeHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\n }\n };\n InPlaceEditor.prototype.wireDocEvent = function () {\n EventHandler.add(document, 'mousedown', this.docClickHandler, this);\n };\n InPlaceEditor.prototype.wireEditEvent = function (event) {\n if (event === 'EditIconClick') {\n return;\n }\n var titleConstant = (event === 'Click') ? 'editAreaClick' : 'editAreaDoubleClick';\n this.element.setAttribute('title', this.getLocale(localeConstant[event], titleConstant));\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule = new Touch(this.valueWrap, { tap: this.doubleTapHandler.bind(this) });\n }\n else {\n EventHandler.add(this.valueWrap, event.toLowerCase(), this.clickHandler, this);\n }\n };\n InPlaceEditor.prototype.wireEditorKeyDownEvent = function (ele) {\n EventHandler.add(ele, 'keydown', this.enterKeyDownHandler, this);\n };\n InPlaceEditor.prototype.wireBtnEvents = function () {\n if (!isNOU(this.submitBtn)) {\n EventHandler.add(this.submitBtn.element, 'mousedown', this.submitHandler, this);\n EventHandler.add(this.submitBtn.element, 'click', this.submitPrevent, this);\n EventHandler.add(this.submitBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.add(this.cancelBtn.element, 'mouseup', this.cancelBtnClick, this);\n EventHandler.add(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n };\n InPlaceEditor.prototype.cancelBtnClick = function (e) {\n this.cancelHandler('cancel');\n this.trigger('cancelClick', e);\n };\n InPlaceEditor.prototype.unWireEvents = function () {\n this.unWireEditEvent(this.editableOn);\n EventHandler.remove(this.editIcon, 'click', this.clickHandler);\n document.removeEventListener('scroll', this.onScrollResizeHandler);\n window.removeEventListener('resize', this.onScrollResizeHandler);\n EventHandler.remove(this.element, 'keydown', this.valueKeyDownHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\n }\n };\n InPlaceEditor.prototype.unWireDocEvent = function () {\n EventHandler.remove(document, 'mousedown', this.docClickHandler);\n };\n InPlaceEditor.prototype.unWireEditEvent = function (event) {\n if (event === 'EditIconClick') {\n return;\n }\n this.element.removeAttribute('title');\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule.destroy();\n this.touchModule = undefined;\n }\n else {\n EventHandler.remove(this.valueWrap, event.toLowerCase(), this.clickHandler);\n }\n };\n InPlaceEditor.prototype.unWireEditorKeyDownEvent = function (ele) {\n EventHandler.remove(ele, 'keydown', this.enterKeyDownHandler);\n };\n InPlaceEditor.prototype.submitPrevent = function (e) {\n e.preventDefault();\n };\n InPlaceEditor.prototype.btnKeyDownHandler = function (e) {\n var trg = e.target;\n if ((e.keyCode === 13 && e.which === 13) || (e.keyCode === 32 && e.which === 32)) {\n if (trg.classList.contains(classes.BTN_SAVE)) {\n this.save();\n }\n else if (trg.classList.contains(classes.BTN_CANCEL)) {\n this.cancelHandler('cancel');\n }\n }\n if (e.keyCode === 9 && e.shiftKey === false &&\n (isNOU(e.target.nextElementSibling) ||\n e.target.nextElementSibling.tagName !== 'BUTTON')) {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n };\n InPlaceEditor.prototype.afterOpenHandler = function (e) {\n if (this.mode === 'Popup' && this.type === 'MultiSelect') {\n EventHandler.add(this.containerEle, 'mousedown', this.popMouseDown, this);\n EventHandler.add(this.containerEle, 'click', this.popClickHandler, this);\n }\n if (this.mode === 'Popup' && !this.isEmpty(this.titleEle.innerHTML)) {\n e.element.classList.add(classes.TIP_TITLE);\n }\n if (this.type === 'RTE') {\n this.rteModule.refresh();\n this.setAttribute(select('.e-richtexteditor textarea', this.containerEle), ['name']);\n }\n else if (this.type === 'Slider') {\n this.sliderModule.refresh();\n this.setAttribute(select('.e-slider-input', this.containerEle), ['name']);\n }\n if (!this.beginEditArgs.cancelFocus) {\n if (this.mode === 'Inline' && (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1)\n && this.model.dataSource instanceof DataManager) {\n this.showDropDownPopup();\n }\n else {\n this.setFocus();\n }\n }\n if (this.afterOpenEvent) {\n this.tipObj.setProperties({ afterOpen: this.afterOpenEvent }, true);\n this.tipObj.trigger('afterOpen', e);\n }\n };\n InPlaceEditor.prototype.popMouseDown = function (e) {\n var trgClass = e.target.classList;\n if (trgClass.contains('e-chips-close') && !trgClass.contains('e-close-hooker')) {\n this.updateArrow();\n }\n };\n InPlaceEditor.prototype.doubleTapHandler = function (e) {\n if (e.tapCount > 1) {\n this.clickHandler(e.originalEvent);\n }\n };\n InPlaceEditor.prototype.clickHandler = function (e) {\n if (this.editableOn !== 'EditIconClick') {\n e.stopPropagation();\n }\n this.renderEditor();\n };\n InPlaceEditor.prototype.submitHandler = function (e) {\n e.preventDefault();\n this.save();\n this.trigger('submitClick', e);\n };\n InPlaceEditor.prototype.cancelHandler = function (action) {\n this.triggerEndEdit(action);\n };\n InPlaceEditor.prototype.popClickHandler = function (e) {\n var tipTarget = select('.' + classes.VALUE_WRAPPER, this.element);\n if (e.target.classList.contains('e-chips-close')) {\n this.tipObj.refresh(tipTarget);\n }\n };\n InPlaceEditor.prototype.successHandler = function (e) {\n this.initRender = false;\n var eventArgs = { data: e, value: this.getSendValue() };\n this.triggerSuccess(eventArgs);\n };\n InPlaceEditor.prototype.failureHandler = function (e) {\n var _this = this;\n var eventArgs = { data: e, value: this.getSendValue() };\n this.trigger('actionFailure', eventArgs, function (args) {\n _this.removeSpinner('submit');\n if (_this.mode === 'Popup') {\n _this.updateArrow();\n }\n });\n };\n InPlaceEditor.prototype.enterKeyDownHandler = function (e) {\n if (!closest(e.target, '.' + classes.INPUT + ' .e-richtexteditor') && (!e.currentTarget.getElementsByTagName(\"textarea\")[0])) {\n if ((e.keyCode === 13 && e.which === 13) && closest(e.target, '.' + classes.INPUT)) {\n this.save();\n this.trigger('submitClick', e);\n }\n else if (e.keyCode === 27 && e.which === 27) {\n this.cancelHandler('cancel');\n }\n }\n };\n InPlaceEditor.prototype.valueKeyDownHandler = function (e) {\n if (e.keyCode === 9 && e.shiftKey === true && e.target.tagName !== 'BUTTON') {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n if ((e.keyCode === 13 && e.which === 13) && e.target.classList.contains(classes.ROOT) &&\n !this.valueWrap.classList.contains(classes.OPEN) && !this.element.classList.contains(classes.DISABLE)) {\n e.preventDefault();\n this.renderEditor();\n }\n };\n InPlaceEditor.prototype.mouseDownHandler = function (e) {\n if (e.target.classList.contains('e-clear-icon')) {\n this.isClearTarget = true;\n }\n };\n InPlaceEditor.prototype.scrollResizeHandler = function () {\n if (this.mode === 'Popup' && this.tipObj && !(Browser.isDevice)) {\n this.triggerEndEdit('cancel');\n }\n };\n InPlaceEditor.prototype.docClickHandler = function (e) {\n var trg = e.target;\n if (this.isClearTarget) {\n this.isClearTarget = false;\n return;\n }\n var relateRoot = closest(trg, '.' + classes.ROOT);\n var relateTipRoot = closest(trg, '.' + classes.ROOT_TIP);\n var relateElements = closest(trg, '.' + classes.ELEMENTS);\n var relateRTEElements = closest(trg, '.e-rte-elements');\n if ((!isNOU(relateRoot) && relateRoot.isEqualNode(this.element)) ||\n (!isNOU(relateTipRoot) && this.tipObj && (relateTipRoot.id.indexOf(this.valueWrap.id) > -1)) ||\n !isNOU(relateElements) || !isNOU(relateRTEElements) || trg.classList.contains('e-chips-close')) {\n return;\n }\n else {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n };\n InPlaceEditor.prototype.changeHandler = function (e) {\n var eventArgs = {\n previousValue: this.compPrevValue === undefined ? this.value : this.compPrevValue,\n value: e.value\n };\n if (this.type === 'AutoComplete' || this.type === 'ComboBox' || this.type === 'DropDownList') {\n eventArgs.itemData = e.itemData;\n eventArgs.previousItemData = e.previousItemData;\n }\n this.compPrevValue = eventArgs.value;\n this.trigger('change', eventArgs);\n };\n /**\n * Validate current editor value.\n *\n * @returns {void}\n */\n InPlaceEditor.prototype.validate = function () {\n this.checkValidation(true, false);\n };\n /**\n * Submit the edited input value to the server.\n *\n * @returns {void}\n */\n InPlaceEditor.prototype.save = function () {\n var _this = this;\n if (!this.formEle) {\n return;\n }\n this.element.focus();\n this.editEle = select('.' + classes.INPUT, this.formEle);\n var errEle = null;\n errEle = select('.' + classes.ERROR, this.editEle);\n if (!this.isTemplate) {\n this.setValue();\n }\n var endEditArgs = { cancel: false, mode: this.mode, action: 'submit' };\n this.trigger('endEdit', endEditArgs, function (args) {\n if (!args.cancel) {\n _this.checkValidation(true, true);\n }\n });\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n InPlaceEditor.prototype.destroy = function () {\n var _this = this;\n this.removeEditor(isBlazor());\n if (this.isExtModule) {\n this.notify(events.destroy, {});\n }\n this.unWireEvents();\n var classList = [classes.DISABLE, classes.RTL];\n classList.forEach(function (val) {\n removeClass([_this.element], [val]);\n });\n while (this.element.firstElementChild) {\n this.element.removeChild(this.element.firstElementChild);\n }\n if (!(isBlazor() && this.isServerRendered)) {\n _super.prototype.destroy.call(this);\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - returns the string\n */\n InPlaceEditor.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} - returns the module declaration\n * @hidden\n */\n InPlaceEditor.prototype.requiredModules = function () {\n var modules = [];\n modules.push({ member: modulesList[this.type], args: [this] });\n return modules;\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - returrns the string\n * @private\n */\n InPlaceEditor.prototype.getModuleName = function () {\n return 'inplaceeditor';\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 {InPlaceEditorModel} newProp - specifies the new property\n * @param {InPlaceEditorModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n InPlaceEditor.prototype.onPropertyChanged = function (newProp, oldProp) {\n var checkValidation = this.validationRules ? !isNOU(this.element.querySelectorAll('.' + classes.ERROR)) &&\n this.element.querySelectorAll('.' + classes.ERROR).length > 0 ? false : true : true;\n if (checkValidation) {\n if (this.isEditorOpen()) {\n var editModeChanged = 'enableEditMode' in newProp;\n if ((editModeChanged && oldProp.enableEditMode && !newProp.enableEditMode) || (!editModeChanged && this.enableEditMode)) {\n this.triggerEndEdit('cancel');\n }\n else {\n this.removeEditor();\n }\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'showButtons':\n (newProp.showButtons) ? this.appendButtons(this.formEle) : this.destroyButtons();\n break;\n case 'value':\n this.updateValue();\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'emptyText':\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'template':\n this.checkIsTemplate();\n break;\n case 'disabled':\n this.disable(newProp.disabled);\n break;\n case 'enableRtl':\n this.setRtl(newProp.enableRtl);\n break;\n case 'cssClass':\n this.setClass('remove', oldProp.cssClass);\n this.setClass('add', newProp.cssClass);\n break;\n case 'mode':\n this.enableEditor(this.enableEditMode);\n break;\n case 'enableEditMode':\n this.enableEditor(newProp.enableEditMode);\n break;\n case 'editableOn':\n this.unWireEditEvent(oldProp.editableOn);\n if (newProp.editableOn !== 'EditIconClick') {\n this.wireEditEvent(newProp.editableOn);\n }\n break;\n }\n }\n }\n };\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"name\", void 0);\n __decorate([\n Property(null)\n ], InPlaceEditor.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"primaryKey\", void 0);\n __decorate([\n Property('Empty')\n ], InPlaceEditor.prototype, \"emptyText\", void 0);\n __decorate([\n Property('')\n ], InPlaceEditor.prototype, \"url\", void 0);\n __decorate([\n Property('Popup')\n ], InPlaceEditor.prototype, \"mode\", void 0);\n __decorate([\n Property('UrlAdaptor')\n ], InPlaceEditor.prototype, \"adaptor\", void 0);\n __decorate([\n Property('Text')\n ], InPlaceEditor.prototype, \"type\", void 0);\n __decorate([\n Property('Click')\n ], InPlaceEditor.prototype, \"editableOn\", void 0);\n __decorate([\n Property('Never')\n ], InPlaceEditor.prototype, \"textOption\", void 0);\n __decorate([\n Property('Submit')\n ], InPlaceEditor.prototype, \"actionOnBlur\", void 0);\n __decorate([\n Property(false)\n ], InPlaceEditor.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], InPlaceEditor.prototype, \"disabled\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"showButtons\", void 0);\n __decorate([\n Property(false)\n ], InPlaceEditor.prototype, \"enableEditMode\", void 0);\n __decorate([\n Property(true)\n ], InPlaceEditor.prototype, \"submitOnEnter\", void 0);\n __decorate([\n Complex({}, PopupSettings)\n ], InPlaceEditor.prototype, \"popupSettings\", void 0);\n __decorate([\n Property(null)\n ], InPlaceEditor.prototype, \"model\", void 0);\n __decorate([\n Property({ iconCss: 'e-icons e-save-icon' })\n ], InPlaceEditor.prototype, \"saveButton\", void 0);\n __decorate([\n Property({ iconCss: 'e-icons e-cancel-icon' })\n ], InPlaceEditor.prototype, \"cancelButton\", void 0);\n __decorate([\n Property(null)\n ], InPlaceEditor.prototype, \"validationRules\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"actionSuccess\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"validating\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"beginEdit\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"endEdit\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"submitClick\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"cancelClick\", void 0);\n __decorate([\n Event()\n ], InPlaceEditor.prototype, \"destroyed\", void 0);\n InPlaceEditor = __decorate([\n NotifyPropertyChanges\n ], InPlaceEditor);\n return InPlaceEditor;\n}(Component));\nexport { InPlaceEditor };\n","import { AjaxHandler } from '../index';\nimport { createElement, Browser, Internationalization, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Accordion, ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { InPlaceEditor } from '@syncfusion/ej2-inplace-editor';\nimport { cloneObject } from '../drawing/drawing-util';\n/**\n * StickyNotes module\n */\nvar StickyNotesAnnotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function StickyNotesAnnotation(pdfViewer, pdfViewerBase) {\n this.moreButtonId = '';\n this.commentsCount = 0;\n this.commentsreplyCount = 0;\n this.commentContextMenu = [];\n this.isAccordionContainer = true;\n this.isCreateContextMenu = false;\n this.isCommentsSelected = false;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.isEditableElement = false;\n this.isPageCommentsRendered = false;\n this.isCommentsRendered = false;\n /**\n * @private\n */\n this.isAnnotationRendered = false;\n /**\n * @private\n */\n this.textFromCommentPanel = false;\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n this.opacity = this.pdfViewer.stickyNotesSettings.opacity ? this.pdfViewer.stickyNotesSettings.opacity : 1;\n }\n /**\n * @param stickyAnnotations\n * @param pageNumber\n * @param canvas\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderStickyNotesAnnotations = function (stickyAnnotations, pageNumber, canvas) {\n if (stickyAnnotations) {\n if (stickyAnnotations.length > 0) {\n for (var i = 0; i < stickyAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = stickyAnnotations[i];\n var isAdded = false;\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null, 'sticky');\n if (pageAnnotations !== null) {\n for (var k = 0; k < pageAnnotations.length; k++) {\n var annotationName = annotation.annotName ? annotation.annotName : annotation.AnnotName;\n var pageAnnotationName = pageAnnotations[k].annotName ? pageAnnotations[k].annotName : pageAnnotations[k].AnnotName;\n if (pageAnnotationName && annotationName && pageAnnotationName === annotationName) {\n isAdded = true;\n break;\n }\n }\n }\n if (!isAdded) {\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n var annotationObject = null;\n // eslint-disable-next-line\n var position = annotation.Bounds;\n var author = annotation.Author;\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n annotation.allowedInteractions = annotation.AllowedInteraction ? annotation.AllowedInteraction : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isPrint = true;\n if (annotation.annotationAddMode === 'Imported Annotation') {\n isPrint = annotation.IsPrint;\n }\n else {\n isPrint = annotation.AnnotationSettings.isPrint;\n }\n if (annotation.IsLock) {\n annotation.AnnotationSettings.isLock = annotation.IsLock;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, note: annotation.Note, opacity: annotation.Opacity, state: annotation.State, stateModel: annotation.StateModel,\n pathData: '', comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: author }, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n annotName: annotation.AnnotName, color: annotation.color,\n annotationSelectorSettings: this.getSettings(annotation),\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n annotationSettings: annotation.AnnotationSettings, allowedInteractions: annotation.allowedInteractions,\n isPrint: isPrint, isCommentLock: annotation.IsCommentLock\n };\n var annot = void 0;\n // eslint-disable-next-line max-len\n annotation.AnnotationSelectorSettings = annotation.AnnotationSelectorSettings ? annotation.AnnotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n annot = {\n // eslint-disable-next-line max-len\n author: author, modifiedDate: annotationObject.modifiedDate, annotName: annotationObject.annotName, pageIndex: pageNumber, bounds: { x: position.Left, y: position.Top, width: position.Width, height: position.Height }, strokeColor: 'transparent', stampStrokeColor: '', data: this.setImageSource(), shapeAnnotationType: 'StickyNotes',\n subject: annotationObject.subject, notes: annotationObject.note, opacity: annotationObject.opacity, id: annotationObject.annotName, fillColor: annotationObject.color,\n annotationSelectorSettings: annotation.AnnotationSelectorSettings,\n annotationSettings: annotationObject.annotationSettings,\n // eslint-disable-next-line max-len\n annotationAddMode: annotation.annotationAddMode, isPrint: isPrint, isCommentLock: annotationObject.isCommentLock\n };\n if (canvas) {\n this.drawStickyNotes(position.Left, position.Top, position.Width, position.Height, pageNumber, annot, canvas);\n }\n else {\n this.pdfViewer.add(annot);\n this.drawStickyNotes(position.Left, position.Top, position.Width, position.Height, pageNumber, annot);\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_sticky');\n }\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'StickyNotes', annot.bounds, settings);\n }\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else if (this.pdfViewer.stickyNotesSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.stickyNotesSettings.annotationSelectorSettings;\n }\n return selector;\n };\n /**\n * @param X\n * @param Y\n * @param width\n * @param height\n * @param pageIndex\n * @param annotation\n * @param canvas\n * @param X\n * @param Y\n * @param width\n * @param height\n * @param pageIndex\n * @param annotation\n * @param canvas\n * @param X\n * @param Y\n * @param width\n * @param height\n * @param pageIndex\n * @param annotation\n * @param canvas\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.drawStickyNotes = function (X, Y, width, height, pageIndex, annotation, canvas) {\n var _this = this;\n var annot;\n var annotationObject = null;\n var image = new Image();\n // eslint-disable-next-line\n var proxy = this;\n image.onload = function () {\n var commentsDivid;\n var annotationName;\n // eslint-disable-next-line max-len\n var author = (_this.pdfViewer.annotationSettings.author !== 'Guest') ? _this.pdfViewer.annotationSettings.author : _this.pdfViewer.stickyNotesSettings.author;\n if (annotation) {\n annot = {\n // eslint-disable-next-line max-len\n author: annotation.author, modifiedDate: annotation.modifiedDate, annotName: annotation.annotName, data: image.src, bounds: { x: X, y: Y, width: width, height: height }, subject: annotation.subject,\n notes: annotation.notes, opacity: annotation.opacity, id: annotation.annotName, shapeAnnotationType: 'StickyNotes', strokeColor: 'transparent', stampStrokeColor: '', pageIndex: annotation.pageIndex, isPrint: annotation.isPrint\n };\n }\n else {\n annotationName = _this.pdfViewer.annotation.createGUID();\n commentsDivid = proxy.addComments('sticky', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n // eslint-disable-next-line\n var annotationSelectorSettings = _this.pdfViewer.stickyNotesSettings.annotationSelectorSettings ? _this.pdfViewer.stickyNotesSettings.annotationSelectorSettings : _this.pdfViewer.annotationSelectorSettings;\n var isPrint = _this.pdfViewer.stickyNotesSettings.isPrint;\n annot = {\n // eslint-disable-next-line max-len\n bounds: { x: X, y: Y, width: width, height: height }, pageIndex: pageIndex, data: image.src, modifiedDate: _this.getDateAndTime(),\n shapeAnnotationType: 'StickyNotes', strokeColor: 'transparent', stampStrokeColor: '', annotName: annotationName, id: annotationName, opacity: _this.opacity, isPrint: isPrint\n };\n // eslint-disable-next-line max-len\n var isLock = _this.pdfViewer.stickyNotesSettings.isLock ? _this.pdfViewer.stickyNotesSettings.isLock : _this.pdfViewer.annotationSettings.isLock;\n // eslint-disable-next-line\n var allowedInteractions = _this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n author: author, allowedInteractions: allowedInteractions, modifiedDate: _this.getDateAndTime(), subject: 'Sticky Note', shapeAnnotationType: 'sticky', pageNumber: pageIndex,\n // eslint-disable-next-line max-len\n note: '', opacity: _this.opacity, pathData: '', state: '', stateModel: '', color: 'rgba(255,255,0)', comments: [], annotName: annotationName,\n // eslint-disable-next-line max-len\n bounds: { left: X, top: Y, width: width, height: height }, review: { state: '', stateModel: '', modifiedDate: '', author: author },\n annotationSelectorSettings: annotationSelectorSettings,\n // eslint-disable-next-line max-len\n customData: _this.pdfViewer.annotationModule.getData('sticky'), annotationSettings: { isLock: isLock }, isPrint: isPrint, isCommentLock: false\n };\n }\n if (!annotation) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n proxy.pdfViewer.add(annot);\n proxy.pdfViewer.annotationModule.storeAnnotations(pageIndex, annotationObject, '_annotations_sticky');\n }\n if (proxy.pdfViewerBase.isAddComment) {\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n var bounds = { left: annot.bounds.x, top: annot.bounds.y, width: annot.bounds.width, height: annot.bounds.height };\n _this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var settings = { opacity: annot.opacity, author: author, modifiedDate: annot.modifiedDate, subject: annot.shapeAnnotationType };\n _this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'StickyNotes', bounds, settings);\n }\n if (canvas) {\n // eslint-disable-next-line\n proxy.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n // eslint-disable-next-line\n var canvass = document.getElementById(proxy.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n proxy.pdfViewer.renderDrawing(canvass, pageIndex);\n }\n if (Browser.isDevice) {\n proxy.pdfViewer.select([annot.id], annot.annotationSelectorSettings);\n }\n proxy.pdfViewerBase.isAddComment = false;\n };\n image.src = this.setImageSource();\n };\n StickyNotesAnnotation.prototype.setImageSource = function () {\n // eslint-disable-next-line max-len\n var imageSource = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgd2lkdGg9IjE2IgogICBoZWlnaHQ9IjE1IgogICB2aWV3Qm94PSIwIDAgNC4yMzMzMzMxIDMuOTY4NzQ5NyIKICAgdmVyc2lvbj0iMS4xIj4KICA8ZyBpZD0ibGF5ZXIxIj4KICAgIDxwYXRoCiAgICAgICBkPSJNIDMuODM4OSwwLjk0MTY3IEMgMy42NTM5LDAuNzAzNjcgMy40MTU5LDAuNTE3NjcgMy4xMjQ5LDAuMzg1NjcgMi44MDc5LDAuMjUzNjcgMi40ODk5LDAuMTczNjcgMi4xMTk5LDAuMTczNjcgMS43NDg5LDAuMTczNjcgMS40MzE5LDAuMjUzNjcgMS4xMTQyLDAuMzg1NjcgMC44MjMxNiwwLjUxNzY3IDAuNTg1MTYsMC43MDM2NyAwLjQwMDE2LDAuOTQxNjcgMC4yMTUxNiwxLjE3OTcgMC4xMzUxNiwxLjQxNzcgMC4xMzUxNiwxLjcwODcgMC4xMzUxNiwxLjk0NjcgMC4xODgxNiwyLjE1ODcgMC4zMjAxNiwyLjM0MzcgMC40NTMxNiwyLjU1NTcgMC42MTExNiwyLjcxMzcgMC44MjMxNiwyLjg0NjcgMC43OTIxNiwzLjE1NDcgMC42NTAxNiwzLjM4MjcgMC40NzkxNiwzLjU4NzcgMC40MjgxNiwzLjY2NzcgMC41MTcxNiwzLjc0MTcgMC42OTExNiwzLjcxOTcgMS4wODgyLDMuNjM5NyAxLjQwNDksMy40NTQ3IDEuNjQyOSwzLjE2MzcgMS44MDE5LDMuMTkwNyAxLjk2MDksMy4yMTY3IDIuMTE5OSwzLjIxNjcgMi40ODk5LDMuMjE2NyAyLjgwNzksMy4xMzc3IDMuMTI0OSwzLjAwNTcgMy40MTU5LDIuODcyNyAzLjY4MDksMi42ODc3IDMuODM4OSwyLjQ0OTcgNC4wMjQ5LDIuMjExNyA0LjEwMzksMS45NzM3IDQuMTAzOSwxLjY4MjcgNC4xMDM5LDEuNDE3NyA0LjAyNDksMS4xNTI3IDMuODM4OSwwLjk0MTY3IFoiCiAgICAgICBpZD0icGF0aDE1MjQiCiAgICAgICBzdHlsZT0iZmlsbDojZmZmNzAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjI2NDU4MztzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMy4wNDI5LDEuNDE2NyBIIDEuMTkxMiBDIDEuMTExMiwxLjQxNjcgMS4wNTkyLDEuMzYzNyAxLjA1OTIsMS4yODM3IDEuMDU5MiwxLjIwNDcgMS4xMTEyLDEuMTUxNyAxLjE5MTIsMS4xNTE3IEggMy4wNDI5IEMgMy4xMjE5LDEuMTUxNyAzLjE3NDksMS4yMDQ3IDMuMTc0OSwxLjI4MzcgMy4xNzQ5LDEuMzYzNyAzLjEyMTksMS40MTY3IDMuMDQyOSwxLjQxNjcgWiIKICAgICAgIGlkPSJwYXRoMTUzNiIKICAgICAgIHN0eWxlPSJzdHJva2Utd2lkdGg6MC4yNjQ1ODMiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSAzLjA0MjksMS45NDU3IEggMS4xOTEyIEMgMS4xMTEyLDEuOTQ1NyAxLjA1OTIsMS44OTI3IDEuMDU5MiwxLjgxMjcgMS4wNTkyLDEuNzMzNyAxLjExMTIsMS42ODA3IDEuMTkxMiwxLjY4MDcgSCAzLjA0MjkgQyAzLjEyMTksMS42ODA3IDMuMTc0OSwxLjczMzcgMy4xNzQ5LDEuODEyNyAzLjE3NDksMS44OTI3IDMuMTIxOSwxLjk0NTcgMy4wNDI5LDEuOTQ1NyBaIgogICAgICAgaWQ9InBhdGgxNTQwIgogICAgICAgc3R5bGU9InN0cm9rZS13aWR0aDowLjI2NDU4MyIgLz4KICA8L2c+Cjwvc3ZnPgo=';\n return imageSource;\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.createRequestForComments = function () {\n var jsonObject;\n var proxy = this;\n var startIndex = 0;\n var pageLimit = 20;\n var pageCount = proxy.pdfViewerBase.pageCount;\n if (!proxy.isCommentsRendered) {\n if (pageLimit < pageCount) {\n pageCount = pageLimit;\n }\n else {\n proxy.isPageCommentsRendered = true;\n }\n }\n if (!this.isCommentsRendered) {\n // eslint-disable-next-line max-len\n jsonObject = { pageStartIndex: startIndex.toString(), pageEndIndex: pageCount.toString(), hashId: this.pdfViewerBase.hashId, action: 'RenderAnnotationComments', elementId: this.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId };\n proxy.isCommentsRendered = true;\n }\n else {\n // eslint-disable-next-line max-len\n jsonObject = { pageStartIndex: pageLimit.toString(), pageEndIndex: pageCount.toString(), hashId: this.pdfViewerBase.hashId, action: 'RenderAnnotationComments', elementId: this.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId };\n }\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n var url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderComments;\n proxy.commentsRequestHandler = new AjaxHandler(proxy.pdfViewer);\n proxy.commentsRequestHandler.url = url;\n proxy.commentsRequestHandler.mode = true;\n proxy.commentsRequestHandler.responseType = 'text';\n proxy.commentsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.commentsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n var redirect = proxy.pdfViewerBase.checkRedirection(data);\n if (!redirect) {\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (typeof data !== 'object') {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderComments);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderComments);\n data = null;\n }\n }\n if (data) {\n var isInitialRender = false;\n if (proxy.pdfViewerBase.annotationComments) {\n // eslint-disable-next-line\n proxy.pdfViewerBase.annotationComments = data.annotationDetails;\n }\n else {\n proxy.pdfViewerBase.annotationComments = data.annotationDetails;\n isInitialRender = true;\n }\n if (data.annotationDetails && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderComments, data);\n proxy.isAnnotationRendered = true;\n // eslint-disable-next-line\n var annotationCollections = void 0;\n if (proxy.pdfViewerBase.documentAnnotationCollections) {\n // eslint-disable-next-line max-len\n annotationCollections = proxy.updateAnnotationsInDocumentCollections(proxy.pdfViewerBase.annotationComments, proxy.pdfViewerBase.documentAnnotationCollections);\n }\n else {\n // eslint-disable-next-line\n var newCollection = proxy.pdfViewerBase.createAnnotationsCollection();\n // eslint-disable-next-line max-len\n annotationCollections = proxy.updateAnnotationsInDocumentCollections(proxy.pdfViewerBase.annotationComments, newCollection);\n }\n proxy.pdfViewerBase.annotationComments = annotationCollections;\n proxy.pdfViewerBase.documentAnnotationCollections = annotationCollections;\n for (var i = data.startPageIndex; i < data.endPageIndex; i++) {\n var newData = data.annotationDetails[i];\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"annotationOrder\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n proxy.pdfViewerBase.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n for (var j = data.startPageIndex; j < data.endPageIndex; j++) {\n if (data.annotationDetails[j]) {\n proxy.renderAnnotationCollections(data.annotationDetails[j], j, isInitialRender);\n }\n }\n if (!proxy.isPageCommentsRendered) {\n proxy.isPageCommentsRendered = true;\n proxy.createRequestForComments();\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.commentsRequestHandler.onFailure = function (result) {\n this.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n // eslint-disable-next-line\n proxy.commentsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderComments);\n };\n };\n /**\n * @param excistingAnnotation\n * @param newAnnotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateAnnotationsInDocumentCollections = function (excistingAnnotation, newAnnotation) {\n for (var i = 0; i < this.pdfViewerBase.pageCount; i++) {\n if (excistingAnnotation[i] && newAnnotation[i]) {\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].textMarkupAnnotation && excistingAnnotation[i].textMarkupAnnotation.length !== 0 && newAnnotation[i].textMarkupAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].textMarkupAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].textMarkupAnnotation[j], newAnnotation[i].textMarkupAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].shapeAnnotation && excistingAnnotation[i].shapeAnnotation.length !== 0 && newAnnotation[i].shapeAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].shapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].shapeAnnotation[j], newAnnotation[i].shapeAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].measureShapeAnnotation && excistingAnnotation[i].measureShapeAnnotation.length !== 0 && newAnnotation[i].measureShapeAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].measureShapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].measureShapeAnnotation[j], newAnnotation[i].measureShapeAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].stampAnnotations && excistingAnnotation[i].stampAnnotations.length !== 0 && newAnnotation[i].stampAnnotations) {\n for (var j = 0; j < excistingAnnotation[i].stampAnnotations.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].stampAnnotations[j], newAnnotation[i].stampAnnotations);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].stickyNotesAnnotation && excistingAnnotation[i].stickyNotesAnnotation.length !== 0 && newAnnotation[i].stickyNotesAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].stickyNotesAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].stickyNotesAnnotation[j], newAnnotation[i].stickyNotesAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].freeTextAnnotation && excistingAnnotation[i].freeTextAnnotation.length !== 0 && newAnnotation[i].freeTextAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].freeTextAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].freeTextAnnotation[j], newAnnotation[i].freeTextAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].signatureAnnotation && excistingAnnotation[i].signatureAnnotation.length !== 0 && newAnnotation[i].signatureAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].signatureAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].signatureAnnotation[j], newAnnotation[i].signatureAnnotation);\n }\n }\n // eslint-disable-next-line max-len\n if (excistingAnnotation[i].signatureInkAnnotation && excistingAnnotation[i].signatureInkAnnotation.length !== 0 && newAnnotation[i].signatureInkAnnotation) {\n for (var j = 0; j < excistingAnnotation[i].signatureInkAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.updateDocumentAnnotationCollections(excistingAnnotation[i].signatureInkAnnotation[j], newAnnotation[i].signatureInkAnnotation);\n }\n }\n }\n }\n return newAnnotation;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateDocumentAnnotationCollections = function (excistingAnnotation, newAnnotation) {\n if (newAnnotation.length === 0) {\n newAnnotation.push(excistingAnnotation);\n }\n else {\n var isAdded = false;\n for (var i = 0; i < newAnnotation.length; i++) {\n // eslint-disable-next-line max-len\n if ((excistingAnnotation.AnnotName && newAnnotation[i].AnnotName) && (excistingAnnotation.AnnotName === newAnnotation[i].AnnotName)) {\n isAdded = true;\n break;\n }\n }\n if (!isAdded) {\n newAnnotation.push(excistingAnnotation);\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderAnnotationCollections = function (pageAnnotations, pageNumber, isInitialRender) {\n // eslint-disable-next-line\n var pageCollections = [];\n var collection = pageAnnotations.annotationOrder;\n for (var l = 0; l < collection.length; l++) {\n var annotation = collection[parseInt(l.toString(), 10)];\n var type = annotation.AnnotType ? annotation.AnnotType : annotation.AnnotationType;\n if (this.pdfViewer.dateTimeFormat) {\n annotation.ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(annotation.ModifiedDate);\n }\n pageCollections.push(annotation);\n switch (type) {\n case \"textMarkup\":\n this.updateCollections(this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateTextMarkupAnnotationCollections(annotation, pageNumber));\n break;\n case \"shape_measure\":\n this.updateCollections(this.pdfViewer.annotationModule.measureAnnotationModule.updateMeasureAnnotationCollections(annotation, pageNumber));\n break;\n case \"shape\":\n this.updateCollections(this.pdfViewer.annotationModule.shapeAnnotationModule.updateShapeAnnotationCollections(annotation, pageNumber));\n break;\n case \"sticky\":\n this.updateCollections(this.updateStickyNotesAnnotationCollections(annotation, pageNumber));\n break;\n case \"stamp\":\n this.updateCollections(this.pdfViewer.annotationModule.stampAnnotationModule.updateStampAnnotationCollections(annotation, pageNumber));\n break;\n case \"Ink\":\n this.updateCollections(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkCollections(annotation, pageNumber));\n break;\n case \"Text Box\":\n this.updateCollections(this.pdfViewer.annotationModule.freeTextAnnotationModule.updateFreeTextAnnotationCollections(annotation, pageNumber));\n break;\n default:\n break;\n }\n }\n if (pageAnnotations.signatureAnnotation && pageAnnotations.signatureAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.signatureAnnotation.length; i++) {\n if (this.pdfViewer.dateTimeFormat) {\n // eslint-disable-next-line max-len\n pageAnnotations.signatureAnnotation[i].ModifiedDate = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.getDateAndTime(pageAnnotations.signatureAnnotation[i].ModifiedDate);\n }\n // eslint-disable-next-line max-len\n this.updateCollections(this.pdfViewerBase.signatureModule.updateSignatureCollections(pageAnnotations.signatureAnnotation[i], pageNumber), true);\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.renderAnnotationComments(pageCollections, pageNumber);\n }\n if (isInitialRender) {\n for (var i = 0; i < this.pdfViewerBase.renderedPagesList.length; i++) {\n if (this.pdfViewerBase.renderedPagesList[i] === pageNumber) {\n this.pdfViewerBase.renderAnnotations(pageNumber, pageAnnotations, false);\n }\n }\n }\n };\n /**\n * @param annotation\n * @param isSignature\n * @param annotation\n * @param isSignature\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateCollections = function (annotation, isSignature) {\n var isAdded = false;\n // eslint-disable-next-line\n var collections;\n if (isSignature) {\n collections = this.pdfViewer.signatureCollection;\n }\n else {\n collections = this.pdfViewer.annotationCollection;\n }\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (isSignature) {\n if (collections[i].signatureName === annotation.signatureName) {\n isAdded = true;\n break;\n }\n }\n else {\n if (collections[i].annotationId === annotation.annotationId) {\n isAdded = true;\n break;\n }\n }\n }\n }\n if (!isAdded && annotation) {\n if (isSignature) {\n this.pdfViewer.signatureCollection.push(annotation);\n }\n else {\n this.pdfViewer.annotationCollection.push(annotation);\n }\n }\n };\n /**\n * @param data\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderAnnotationComments = function (data, pageIndex) {\n pageIndex = pageIndex + 1;\n if (data) {\n if (data.length !== 0) {\n this.createPageAccordion(pageIndex);\n for (var i = 0; i < data.length; i++) {\n if (data[i].AnnotName && (data[i].AnnotName.split('freeText').length === 1)) {\n this.createCommentControlPanel(data[i], pageIndex);\n }\n }\n // eslint-disable-next-line\n var newCommentsDiv = document.querySelectorAll('.e-pv-new-comments-div');\n if (newCommentsDiv) {\n for (var j = 0; j < newCommentsDiv.length; j++) {\n newCommentsDiv[j].style.display = 'none';\n }\n }\n }\n }\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.initializeAcccordionContainer = function () {\n // eslint-disable-next-line max-len\n var commentPanelText = createElement('div', { id: this.pdfViewer.element.id + '_commentsPanelText', className: 'e-pv-comments-panel-text' });\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_NoCommentsYet');\n promise.then(function (value) {\n commentPanelText.textContent = value;\n });\n }\n else {\n commentPanelText.textContent = this.pdfViewer.localeObj.getConstant('No Comments Yet');\n }\n this.updateCommentPanelTextTop();\n this.pdfViewerBase.navigationPane.commentsContentContainer.appendChild(commentPanelText);\n // eslint-disable-next-line max-len\n this.accordionContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_accordionContentContainer', className: 'e-pv-accordion-content-container' });\n this.pdfViewerBase.navigationPane.commentsContentContainer.appendChild(this.accordionContentContainer);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], false);\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.updateCommentPanelTextTop = function () {\n var commentPanelText = document.getElementById(this.pdfViewer.element.id + '_commentsPanelText');\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane.commentPanelContainer && this.pdfViewerBase.navigationPane.commentPanelContainer.clientHeight && commentPanelText.style.display !== 'none') {\n commentPanelText.style.paddingTop = (this.pdfViewerBase.navigationPane.commentPanelContainer.clientHeight / 2) - 47 + 'px';\n commentPanelText.style.paddingLeft = (this.pdfViewerBase.navigationPane.commentPanelContainer.clientWidth) / 3 + 'px';\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createPageAccordion = function (pageIndex) {\n var pageAccordionContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageIndex);\n if (pageAccordionContainer === null) {\n this.accordionContent = createElement('div', { id: this.pdfViewer.element.id + '_accordioncontent' + pageIndex });\n this.accordionContent.style.zIndex = '1000';\n // eslint-disable-next-line max-len\n this.accordionPageContainer = createElement('div', { id: this.pdfViewer.element.id + '_accordionPageContainer' + pageIndex, className: 'e-pv-accordion-page-container' });\n this.accordionPageContainer.appendChild(this.accordionContent);\n this.pdfViewerBase.viewerMainContainer.appendChild(this.accordionPageContainer);\n // eslint-disable-next-line max-len\n this.accordionContainer = createElement('div', { id: this.pdfViewer.element.id + '_accordionContainer' + pageIndex, className: 'e-pv-accordion-container' });\n var pageAccordion = new Accordion({\n items: [\n // eslint-disable-next-line max-len\n { header: this.pdfViewer.localeObj.getConstant('Page') + ' ' + (pageIndex), expanded: true, content: '#' + this.pdfViewer.element.id + '_accordioncontent' + pageIndex + '' }\n ]\n });\n pageAccordion.appendTo(this.accordionContainer);\n this.accordionContainer.style.order = 'pageIndex';\n this.alignAccordionContainer(this.accordionContainer, pageIndex);\n if (document.getElementById(this.pdfViewer.element.id + '_commentsPanelText')) {\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 document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'none';\n }\n if (document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer')) {\n document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer').style.display = 'block';\n }\n return this.accordionContainer;\n }\n };\n StickyNotesAnnotation.prototype.alignAccordionContainer = function (accordionDiv, pageIndex) {\n var isAdded = true;\n if (this.accordionContentContainer) {\n if (this.isAccordionContainer) {\n this.accordionContentContainer.appendChild(accordionDiv);\n isAdded = false;\n }\n else {\n for (var i = 1; i <= this.pdfViewerBase.pageCount; i++) {\n var nextElement = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + i);\n if (nextElement) {\n if (pageIndex < i) {\n this.accordionContentContainer.insertBefore(accordionDiv, nextElement);\n isAdded = false;\n break;\n }\n }\n }\n }\n if (isAdded) {\n this.accordionContentContainer.appendChild(accordionDiv);\n isAdded = false;\n }\n this.isAccordionContainer = false;\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n StickyNotesAnnotation.prototype.updateCommentPanelScrollTop = function (pageNumber) {\n var accordionDiv = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordionDiv) {\n var scrollValue = accordionDiv.offsetTop + accordionDiv.clientTop - 35;\n this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop = scrollValue;\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getButtonState = function (editObj, commentTextBox) {\n commentTextBox.addEventListener('keyup', function (event) {\n if (editObj.element.querySelector('.e-btn-save')) {\n if ((event.srcElement.value !== '' || event.srcElement.defaultValue != '') && event.srcElement.defaultValue !== event.srcElement.value) {\n editObj.element.querySelector('.e-btn-save').ej2_instances[0].disabled = false;\n }\n }\n });\n };\n /**\n * @param data\n * @param pageIndex\n * @param type\n * @param annotationSubType\n * @param data\n * @param pageIndex\n * @param type\n * @param annotationSubType\n * @param data\n * @param pageIndex\n * @param type\n * @param annotationSubType\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createCommentControlPanel = function (data, pageIndex, type, annotationSubType, isReRender) {\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordioncontent' + pageIndex);\n if (accordionContent) {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageIndex);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line max-len\n this.commentsContainer = createElement('div', { id: this.pdfViewer.element.id + 'commentscontainer_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-container' });\n this.commentsContainer.accessKey = pageIndex.toString() + '_' + this.commentsCount;\n var isCommentsAdded = false;\n if (data) {\n this.commentsContainer.id = data.AnnotName;\n if (data.AnnotName) {\n for (var j = 0; j < accordionContent.childElementCount; j++) {\n if (accordionContent.children[j].id === data.AnnotName) {\n isCommentsAdded = true;\n if (isReRender) {\n // To remove the existing div element in the comment panel while importing the annotation with the same name. (EJ2-62092)\n var id = document.getElementById(accordionContent.children[j].id);\n id.remove();\n isCommentsAdded = false;\n }\n break;\n }\n }\n }\n if (data.Name && data.Name === 'freeText') {\n this.commentsContainer.setAttribute('name', 'freeText');\n }\n else {\n this.commentsContainer.setAttribute('name', data.AnnotType);\n }\n }\n if (type) {\n this.commentsContainer.setAttribute('name', type);\n }\n this.commentsContainer.addEventListener('mousedown', this.commentsAnnotationSelect.bind(this));\n // eslint-disable-next-line max-len\n var commentDiv = createElement('div', { id: this.pdfViewer.element.id + '_commentdiv_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-div' });\n this.commentsCount = this.commentsCount + 1;\n this.commentsContainer.appendChild(commentDiv);\n this.updateCommentPanelScrollTop(pageIndex);\n if (!isCommentsAdded) {\n accordionContent.appendChild(this.commentsContainer);\n }\n var title = void 0;\n if (data) {\n title = this.commentsContainer.getAttribute('name');\n if (title === 'null') {\n title = data.AnnotationType;\n }\n this.createTitleContainer(commentDiv, title, pageIndex, data.Subject, data.ModifiedDate, data.Author);\n }\n else {\n title = this.commentsContainer.getAttribute('name');\n this.createTitleContainer(commentDiv, title, pageIndex, annotationSubType);\n }\n // eslint-disable-next-line max-len\n var commentTextBox = createElement('div', { id: this.pdfViewer.element.id + '_commenttextbox_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-textbox' });\n // eslint-disable-next-line\n var editObj_1 = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a comment') + '..' },\n emptyText: '',\n editableOn: 'EditIconClick',\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n },\n submitOnEnter: true\n });\n if (data && (!isNullOrUndefined(data.Note) || !isNullOrUndefined(data.Text))) {\n editObj_1.created = function () {\n setTimeout(function () {\n editObj_1.element.querySelector('.e-editable-value').innerText = !isNullOrUndefined(data.Note) ? data.Note : !isNullOrUndefined(data.Text) ? data.Text : '';\n });\n };\n editObj_1.beginEdit = function () {\n editObj_1.value = editObj_1.valueEle.innerText;\n };\n }\n editObj_1.appendTo(commentTextBox);\n // eslint-disable-next-line\n var textBox = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < textBox.length; j++) {\n textBox[j].style.display = 'none';\n }\n if (!data && type !== 'freeText') {\n editObj_1.enableEditMode = true;\n }\n this.getButtonState(editObj_1, commentTextBox);\n editObj_1.actionSuccess = this.createCommentDiv.bind(this, editObj_1);\n commentDiv.appendChild(commentTextBox);\n if (data) {\n editObj_1.value = !isNullOrUndefined(data.Note) ? data.Note : !isNullOrUndefined(data.Text) ? data.Text : '';\n var isCommentLocked = this.checkIslockProperty(data);\n if (isCommentLocked && data.Comments == null) {\n this.createCommentDiv(this.commentsContainer);\n }\n if (data.Name === 'freeText') {\n editObj_1.value = data.MarkupText;\n }\n if (data.State) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n commentDiv.appendChild(statusContainer);\n this.updateStatusContainer(data.State, statusSpan, statusDiv, statusContainer);\n }\n if (data.Comments) {\n for (var j = 0; j < data.Comments.length; j++) {\n this.renderComments(data.Comments[j], this.commentsContainer);\n }\n if (data.Note !== ' ' && data.Note !== '' && data.Note !== null) {\n this.createCommentDiv(this.commentsContainer);\n }\n }\n }\n this.isNewcommentAdded = true;\n commentDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n commentDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n commentDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('mouseout', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('focusout', this.commentDivMouseLeave.bind(this));\n commentTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n commentTextBox.addEventListener('focusin', this.commentDivFocus.bind(this));\n return (this.commentsContainer.id);\n }\n return '';\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivFocus = function (args) {\n // eslint-disable-next-line\n if (!isNullOrUndefined(args.target) && !isNullOrUndefined(this.pdfViewer.freeTextSettings.defaultText) && this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText' && args.target.value === this.pdfViewer.freeTextSettings.defaultText) {\n args.target.select();\n }\n // eslint-disable-next-line\n if (!this.isNewcommentAdded) {\n if (args.relatedTarget !== null && args.relatedTarget.id === this.pdfViewer.element.id + '_viewerContainer') {\n args.preventDefault();\n args.target.blur();\n }\n }\n else {\n var proxy_1 = this;\n var pageNumber_1 = this.pdfViewerBase.currentPageNumber;\n setTimeout(function () {\n proxy_1.updateScrollPosition(pageNumber_1);\n }, 500);\n }\n };\n StickyNotesAnnotation.prototype.updateScrollPosition = function (pageNumber) {\n var accordionDiv = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordionDiv && this.isNewcommentAdded) {\n var commentHeight = 0;\n // eslint-disable-next-line\n var textBox = document.querySelectorAll('.e-editable-inline');\n if (textBox[0]) {\n commentHeight = textBox[0].getBoundingClientRect().height;\n }\n var scrollValue = accordionDiv.offsetTop + accordionDiv.clientTop + commentHeight;\n if (this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop < scrollValue) {\n this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop = scrollValue;\n }\n this.isNewcommentAdded = false;\n }\n };\n StickyNotesAnnotation.prototype.updateCommentsScrollTop = function (isCommentsAdded) {\n // eslint-disable-next-line max-len\n var accordionDiv = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewerBase.currentPageNumber);\n // eslint-disable-next-line\n var commentsContainer = document.querySelector('.e-pv-comments-border');\n var commentsHeight = 0;\n if (accordionDiv && commentsContainer) {\n commentsHeight = commentsContainer.getBoundingClientRect().height;\n var scrollValue = void 0;\n if (isCommentsAdded) {\n scrollValue = accordionDiv.offsetTop + commentsContainer.offsetTop + (commentsHeight / 4);\n }\n else {\n scrollValue = accordionDiv.offsetTop + commentsContainer.offsetTop - 70;\n }\n this.pdfViewerBase.navigationPane.commentsContentContainer.scrollTop = scrollValue;\n }\n };\n /**\n * @param args\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createCommentDiv = function (args) {\n var _this = this;\n var commentsContainer;\n var titleContainer;\n // eslint-disable-next-line\n var newCommentDiv = createElement('div', { id: this.pdfViewer.element.id + '_newcommentdiv_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-new-comments-div' });\n if (args.localName) {\n commentsContainer = args;\n }\n else {\n commentsContainer = args.valueEle.parentElement.parentElement.parentElement.parentElement;\n titleContainer = args.valueEle.parentElement.parentElement.previousSibling.childNodes[1];\n }\n // eslint-disable-next-line\n var commentObj = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n value: '',\n editableOn: 'Click',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a reply') + '..' },\n emptyText: this.pdfViewer.localeObj.getConstant('Add a reply'),\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n },\n submitOnEnter: true\n });\n commentObj.appendTo(newCommentDiv);\n newCommentDiv.lastChild.firstChild.click();\n // eslint-disable-next-line\n this.getButtonState(commentObj, newCommentDiv);\n if (args.valueEle) {\n if (args.value != null && args.value !== ' ') {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n this.modifyTextProperty(args.value, args.prevValue, args.valueEle.parentNode.parentNode.parentNode.parentNode.id);\n }\n else {\n try {\n this.modifyTextProperty(args.value, args.prevValue, args.valueEle.parentNode.parentNode.parentNode.parentNode.id);\n }\n catch (error) {\n this.modifyTextProperty(args.value, args.prevValue);\n }\n }\n this.updateModifiedDate(titleContainer);\n }\n if (args.valueEle.parentElement.parentElement.parentElement.parentElement.childElementCount === 1) {\n if (args.value != null && args.value !== '' && args.value !== ' ') {\n commentsContainer.appendChild(newCommentDiv);\n setTimeout(function () {\n _this.updateCommentsScrollTop(true);\n }, 50);\n }\n }\n }\n else {\n commentsContainer.appendChild(newCommentDiv);\n setTimeout(function () {\n _this.updateCommentsScrollTop(true);\n }, 50);\n }\n commentObj.actionSuccess = this.saveCommentDiv.bind(this, commentObj);\n };\n /**\n * @param args\n * @param comment\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.saveCommentDiv = function (args, comment) {\n var commentsContainer;\n var annotationAuthor;\n // eslint-disable-next-line\n var lastElement;\n var commentValue;\n if (comment.name && args.value !== '') {\n commentsContainer = args.valueEle.parentElement.parentElement.parentElement;\n lastElement = args.valueEle.parentElement.parentElement;\n commentValue = args.value;\n }\n else {\n commentsContainer = args;\n lastElement = commentsContainer.lastChild;\n commentValue = comment;\n }\n if (commentsContainer && lastElement) {\n commentsContainer.removeChild(lastElement);\n var replyTextBox = createElement('div', { id: this.pdfViewer.element.id + '_replytextbox_' + this.commentsCount + '_' + this.commentsreplyCount });\n this.commentsreplyCount = this.commentsreplyCount + 1;\n // eslint-disable-next-line\n var replyCommentDiv = createElement('div', { id: this.pdfViewer.element.id + 'replyDiv_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-div' });\n replyCommentDiv.id = this.pdfViewer.annotation.createGUID();\n annotationAuthor = this.getAuthorName(this.pdfViewer.selectedItems.annotations[0], commentsContainer);\n this.createReplyDivTitleContainer(replyCommentDiv, null, annotationAuthor);\n replyCommentDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n replyCommentDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n replyCommentDiv.addEventListener('click', this.commentDivOnSelect.bind(this));\n replyTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n replyCommentDiv.style.border = 1 + 'px';\n replyCommentDiv.style.borderColor = 'black';\n replyCommentDiv.style.zIndex = 1002;\n // eslint-disable-next-line\n var saveObj_1 = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n emptyText: '',\n editableOn: 'EditIconClick',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a reply') + '..' },\n value: commentValue,\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n }\n });\n saveObj_1.created = function () {\n setTimeout(function () {\n saveObj_1.element.querySelector('.e-editable-value').innerText = commentValue;\n });\n };\n saveObj_1.beginEdit = function () {\n saveObj_1.value = saveObj_1.valueEle.innerText;\n };\n saveObj_1.appendTo(replyTextBox);\n saveObj_1.actionSuccess = this.modifyProperty.bind(this, saveObj_1);\n replyCommentDiv.appendChild(replyTextBox);\n replyCommentDiv.style.paddingLeft = 24 + 'px';\n commentsContainer.appendChild(replyCommentDiv);\n // eslint-disable-next-line\n this.getButtonState(saveObj_1, replyTextBox);\n replyCommentDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n replyCommentDiv.addEventListener('dblclick', this.commentsDivDoubleClickEvent.bind(this));\n this.createCommentDiv(replyCommentDiv.parentElement);\n this.modifyCommentsProperty(commentValue, replyCommentDiv.id, commentsContainer.id);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.renderComments = function (data, commentDiv, undoRedoAction, id, isCommentAction) {\n var annotationAuthor;\n var replyTextBox = createElement('div', { id: this.pdfViewer.element.id + '_replytextbox_' + this.commentsCount + '_' + this.commentsreplyCount });\n this.commentsreplyCount = this.commentsreplyCount + 1;\n var replyDiv = createElement('div', { id: 'replyDiv_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-div' });\n if (undoRedoAction) {\n replyDiv.id = data.annotName;\n annotationAuthor = data.author;\n }\n else {\n replyDiv.id = data.AnnotName;\n annotationAuthor = data.Author;\n }\n replyDiv.style.border = 1 + 'px';\n replyDiv.style.borderColor = 'black';\n if (!annotationAuthor) {\n annotationAuthor = commentDiv.getAttribute('author');\n }\n if (undoRedoAction) {\n if (data.modifiedDate !== undefined) {\n this.createReplyDivTitleContainer(replyDiv, data.modifiedDate, annotationAuthor);\n }\n else {\n this.createReplyDivTitleContainer(replyDiv, null, annotationAuthor);\n }\n }\n else {\n this.createReplyDivTitleContainer(replyDiv, data.ModifiedDate, annotationAuthor);\n }\n replyDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n replyDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n replyDiv.addEventListener('click', this.commentDivOnSelect.bind(this));\n replyTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n // eslint-disable-next-line\n var saveObj = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n emptyText: '',\n editableOn: 'EditIconClick',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a reply') + '..' },\n value: '',\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n }\n });\n if (undoRedoAction) {\n saveObj.value = data.note;\n }\n else {\n saveObj.value = data.Note;\n }\n saveObj.created = function () {\n setTimeout(function () {\n saveObj.element.querySelector('.e-editable-value').innerText = undoRedoAction ? data ? data.note : '' : data ? data.Note : '';\n });\n };\n saveObj.beginEdit = function () {\n saveObj.value = saveObj.valueEle.innerText;\n };\n saveObj.appendTo(replyTextBox);\n replyDiv.appendChild(replyTextBox);\n if (undoRedoAction) {\n data.State = data.state;\n }\n if (data.State) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n replyDiv.appendChild(statusContainer);\n this.updateStatusContainer(data.State, statusSpan, statusDiv, statusContainer);\n }\n replyDiv.style.paddingLeft = 24 + 'px';\n // eslint-disable-next-line\n this.getButtonState(saveObj, replyTextBox);\n if (undoRedoAction) {\n if (isCommentAction) {\n commentDiv.appendChild(replyDiv);\n }\n else {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(id);\n if (data.position) {\n commentsDiv.insertBefore(replyDiv, commentsDiv.childNodes[data.position]);\n }\n else {\n // eslint-disable-next-line\n if (commentsDiv) {\n if (commentsDiv.childElementCount > 1) {\n commentsDiv.insertBefore(replyDiv, commentsDiv.childNodes[commentsDiv.childElementCount - 1]);\n }\n else {\n commentDiv.appendChild(replyDiv);\n }\n }\n }\n }\n }\n else {\n commentDiv.appendChild(replyDiv);\n }\n replyDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n replyDiv.addEventListener('dblclick', this.commentsDivDoubleClickEvent.bind(this));\n saveObj.actionSuccess = this.modifyProperty.bind(this, saveObj);\n };\n /**\n * @param data\n * @param pageIndex\n * @param isCopy\n * @param data\n * @param pageIndex\n * @param isCopy\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createCommentsContainer = function (data, pageIndex, isCopy) {\n // eslint-disable-next-line\n var accordionContentContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageIndex);\n if (!accordionContentContainer) {\n // eslint-disable-next-line max-len\n var accordionPageContainer = document.getElementById(this.pdfViewer.element.id + '_accordionPageContainer' + pageIndex);\n if (accordionPageContainer) {\n accordionPageContainer.parentElement.removeChild(accordionPageContainer);\n }\n accordionContentContainer = this.createPageAccordion(pageIndex);\n if (accordionContentContainer) {\n accordionContentContainer.ej2_instances[0].expandItem(true);\n }\n }\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordioncontent' + pageIndex);\n // eslint-disable-next-line max-len\n this.commentsContainer = createElement('div', { id: this.pdfViewer.element.id + 'commentscontainer_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-container' });\n this.commentsContainer.accessKey = pageIndex.toString() + '_' + this.commentsCount;\n if (data) {\n this.commentsContainer.id = data.annotName ? data.annotName : data.annotationId;\n }\n this.commentsContainer.addEventListener('mousedown', this.commentsAnnotationSelect.bind(this));\n // eslint-disable-next-line max-len\n var commentDiv = createElement('div', { id: this.pdfViewer.element.id + '_commentdiv_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comments-div' });\n this.commentsCount = this.commentsCount + 1;\n this.commentsContainer.appendChild(commentDiv);\n this.updateCommentPanelScrollTop(pageIndex);\n if (data && accordionContent) {\n if (data.position || data.position === 0) {\n accordionContent.insertBefore(this.commentsContainer, accordionContent.children[data.position]);\n }\n else {\n accordionContent.appendChild(this.commentsContainer);\n }\n }\n if (data && accordionContent) {\n if (data.indent) {\n this.commentsContainer.setAttribute('name', 'shape_measure');\n this.createTitleContainer(commentDiv, 'shape_measure', pageIndex, data.subject, data.modifiedDate, data.author);\n }\n else if (data.shapeAnnotationType === 'sticky' || data.shapeAnnotationType === 'stamp') {\n // eslint-disable-next-line max-len\n var annotType = this.createTitleContainer(commentDiv, data.shapeAnnotationType, pageIndex, null, data.modifiedDate, data.author);\n this.commentsContainer.setAttribute('name', annotType);\n if (annotType === 'sticky') {\n if (!isCopy) {\n this.addStickyNotesAnnotations((pageIndex - 1), data);\n }\n }\n }\n else if (data.shapeAnnotationType === 'textMarkup') {\n this.commentsContainer.setAttribute('name', 'textMarkup');\n this.createTitleContainer(commentDiv, 'textMarkup', pageIndex, data.subject, data.modifiedDate, data.author);\n }\n else if (data.shapeAnnotationType === 'FreeText') {\n data.note = data.dynamicText;\n this.commentsContainer.setAttribute('name', 'freetext');\n this.createTitleContainer(commentDiv, 'freeText', pageIndex, data.subject, data.modifiedDate);\n }\n else if (data.shapeAnnotationType === 'Ink') {\n data.note = data.dynamicText;\n this.commentsContainer.setAttribute('name', 'ink');\n this.createTitleContainer(commentDiv, 'ink', pageIndex, data.subject, data.modifiedDate);\n }\n else {\n this.commentsContainer.setAttribute('name', 'shape');\n if (data.shapeAnnotationType === 'Line') {\n this.createTitleContainer(commentDiv, 'shape', pageIndex, data.subject, data.modifiedDate, data.author);\n }\n else {\n this.createTitleContainer(commentDiv, 'shape', pageIndex, data.shapeAnnotationType, data.modifiedDate, data.author);\n }\n }\n }\n // eslint-disable-next-line max-len\n var commentTextBox = createElement('div', { id: this.pdfViewer.element.id + '_commenttextbox_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-textbox' });\n // eslint-disable-next-line\n var editObj = new InPlaceEditor({\n mode: 'Inline',\n type: 'Text',\n model: { placeholder: this.pdfViewer.localeObj.getConstant('Add a comment') + '..' },\n emptyText: '',\n editableOn: 'EditIconClick',\n saveButton: {\n content: this.pdfViewer.localeObj.getConstant('Post'),\n cssClass: 'e-outline',\n disabled: true\n },\n cancelButton: {\n content: this.pdfViewer.localeObj.getConstant('Cancel'),\n cssClass: 'e-outline'\n },\n submitOnEnter: true\n });\n editObj.appendTo(commentTextBox);\n // eslint-disable-next-line\n var textBox = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < textBox.length; j++) {\n textBox[j].style.display = 'none';\n }\n // eslint-disable-next-line\n commentTextBox.addEventListener('keydown', function (event) {\n if (editObj.element.querySelector('.e-btn-save')) {\n if (event.srcElement.value !== '') {\n editObj.element.querySelector('.e-btn-save').ej2_instances[0].disabled = false;\n }\n else {\n editObj.element.querySelector('.e-btn-save').ej2_instances[0].disabled = true;\n }\n }\n });\n editObj.actionSuccess = this.createCommentDiv.bind(this, editObj);\n commentDiv.appendChild(commentTextBox);\n if (data) {\n editObj.value = data.note;\n if (data.state) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n commentDiv.appendChild(statusContainer);\n this.updateStatusContainer(data.state, statusSpan, statusDiv, statusContainer);\n }\n if (data.comments) {\n for (var j = 0; j < data.comments.length; j++) {\n this.renderComments(data.comments[j], this.commentsContainer, true, null, true);\n }\n if (data.comments.length > 0) {\n this.createCommentDiv(this.commentsContainer);\n }\n }\n }\n commentDiv.addEventListener('click', this.commentsDivClickEvent.bind(this));\n commentDiv.addEventListener('mouseover', this.commentDivMouseOver.bind(this));\n commentDiv.addEventListener('mouseleave', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('mouseout', this.commentDivMouseLeave.bind(this));\n commentDiv.addEventListener('focusout', this.commentDivMouseLeave.bind(this));\n commentTextBox.addEventListener('dblclick', this.openEditorElement.bind(this));\n return (this.commentsContainer.id);\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyProperty = function (args) {\n var commentElement = args.element.parentElement.id;\n var parentElement = args.element.parentElement.parentElement.id;\n var titleElement = args.element.previousSibling.firstChild;\n this.updateModifiedDate(titleElement);\n this.modifyCommentsProperty(args.value, commentElement, parentElement, args.prevValue);\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createTitleContainer = function (commentsDivElement, type, pageIndex, subType, modifiedDate, author, note) {\n var annotationType = this.getAnnotationType(type);\n // eslint-disable-next-line max-len\n var commentTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentTitleConatiner_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-title-container' });\n // eslint-disable-next-line max-len\n var commentTypeSpan = createElement('span', { id: this.pdfViewer.element.id + '_commenttype' + '_icon' + pageIndex + '_' + this.commentsCount });\n commentTypeSpan.style.opacity = '0.6';\n this.updateCommentIcon(commentTypeSpan, annotationType, subType);\n var annotationAuthor;\n if (!author) {\n annotationAuthor = this.pdfViewer.annotationModule.updateAnnotationAuthor(annotationType, subType);\n }\n else {\n annotationAuthor = author;\n }\n commentTypeSpan.style.padding = 8 + 'px';\n commentTypeSpan.style.cssFloat = 'left';\n commentTitleContainer.appendChild(commentTypeSpan);\n // eslint-disable-next-line max-len\n var commentsTitle = createElement('div', { id: this.pdfViewer.element.id + '_commentTitle_' + pageIndex + '_' + this.commentsCount, className: 'e-pv-comment-title' });\n if (!modifiedDate) {\n commentsTitle.textContent = annotationAuthor + ' - ' + this.setModifiedDate();\n }\n else {\n commentsTitle.textContent = annotationAuthor + ' - ' + this.convertUTCDateToLocalDate(modifiedDate);\n }\n commentTitleContainer.appendChild(commentsTitle);\n this.moreButtonId = this.pdfViewer.element.id + '_more-options_' + this.commentsCount + '_' + this.commentsreplyCount;\n // eslint-disable-next-line max-len\n var moreOptionsButton = createElement('button', { id: this.moreButtonId, className: 'e-pv-more-options-button e-btn', attrs: { 'tabindex': '-1' } });\n moreOptionsButton.style.visibility = 'hidden';\n moreOptionsButton.style.zIndex = '1001';\n moreOptionsButton.setAttribute('type', 'button');\n moreOptionsButton.setAttribute('aria-label', 'more button');\n // eslint-disable-next-line max-len\n var moreOptionsButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_more-options_icon', className: 'e-pv-more-icon e-pv-icon' });\n moreOptionsButton.appendChild(moreOptionsButtonSpan);\n moreOptionsButtonSpan.style.opacity = '0.87';\n commentTitleContainer.appendChild(moreOptionsButton);\n commentsDivElement.appendChild(commentTitleContainer);\n // eslint-disable-next-line\n var commentsContainer = commentsDivElement.parentElement;\n if (commentsContainer) {\n var author_1 = this.pdfViewer.annotationModule.updateAnnotationAuthor(annotationType, subType);\n commentsContainer.setAttribute('author', author_1);\n }\n if (!this.isCreateContextMenu) {\n this.createCommentContextMenu();\n }\n this.isCreateContextMenu = true;\n commentTitleContainer.addEventListener('dblclick', this.openTextEditor.bind(this));\n moreOptionsButton.addEventListener('mouseup', this.moreOptionsClick.bind(this));\n return annotationType;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.createReplyDivTitleContainer = function (commentsDivElement, modifiedDate, annotationAuthor) {\n // eslint-disable-next-line max-len\n var replyTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_replyTitleConatiner_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-title-container' });\n // eslint-disable-next-line max-len\n var replyTitle = createElement('div', { id: this.pdfViewer.element.id + '_replyTitle_' + this.commentsCount + '_' + this.commentsreplyCount, className: 'e-pv-reply-title' });\n if (!modifiedDate) {\n replyTitle.textContent = annotationAuthor + ' - ' + this.setModifiedDate();\n }\n else {\n replyTitle.textContent = annotationAuthor + ' - ' + this.setExistingAnnotationModifiedDate(modifiedDate);\n }\n replyTitleContainer.appendChild(replyTitle);\n this.moreButtonId = this.pdfViewer.element.id + '_more-options_' + this.commentsCount + '_' + this.commentsreplyCount;\n // eslint-disable-next-line max-len\n var moreButton = createElement('button', { id: this.moreButtonId, className: 'e-pv-more-options-button e-btn', attrs: { 'tabindex': '-1' } });\n moreButton.style.visibility = 'hidden';\n moreButton.style.zIndex = '1001';\n moreButton.setAttribute('type', 'button');\n moreButton.setAttribute('aria-label', 'more button');\n // eslint-disable-next-line max-len\n var moreButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_more-options_icon', className: 'e-pv-more-icon e-pv-icon' });\n moreButton.appendChild(moreButtonSpan);\n moreButtonSpan.style.opacity = '0.87';\n replyTitleContainer.appendChild(moreButton);\n commentsDivElement.appendChild(replyTitleContainer);\n replyTitleContainer.addEventListener('dblclick', this.openTextEditor.bind(this));\n moreButton.addEventListener('mouseup', this.moreOptionsClick.bind(this));\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateCommentIcon = function (commentSpan, annotationType, annotationSubType) {\n if (annotationType === 'sticky') {\n commentSpan.className = 'e-pv-comment-icon e-pv-icon';\n }\n else if (annotationType === 'stamp') {\n commentSpan.className = 'e-pv-stamp-icon e-pv-icon';\n }\n else if (annotationType === 'shape') {\n if (annotationSubType === 'Line') {\n commentSpan.className = 'e-pv-shape-line-icon e-pv-icon';\n }\n else if (annotationSubType === 'LineWidthArrowHead' || annotationSubType === 'Arrow') {\n commentSpan.className = 'e-pv-shape-arrow-icon e-pv-icon';\n }\n else if (annotationSubType === 'Circle' || annotationSubType === 'Ellipse' || annotationSubType === 'Oval') {\n commentSpan.className = 'e-pv-shape-circle-icon e-pv-icon';\n }\n else if (annotationSubType === 'Rectangle' || annotationSubType === 'Square') {\n commentSpan.className = 'e-pv-shape-rectangle-icon e-pv-icon';\n }\n else if (annotationSubType === 'Polygon') {\n commentSpan.className = 'e-pv-shape-pentagon-icon e-pv-icon';\n }\n else {\n commentSpan.className = 'e-pv-annotation-shape-icon e-pv-icon';\n }\n }\n else if (annotationType === 'measure') {\n if (annotationSubType === 'Distance' || annotationSubType === 'Distance calculation') {\n commentSpan.className = 'e-pv-calibrate-distance-icon e-pv-icon';\n }\n else if (annotationSubType === 'Perimeter' || annotationSubType === 'Perimeter calculation') {\n commentSpan.className = 'e-pv-calibrate-perimeter-icon e-pv-icon';\n }\n else if (annotationSubType === 'Radius' || annotationSubType === 'Radius calculation') {\n commentSpan.className = 'e-pv-calibrate-radius-icon e-pv-icon';\n }\n else if (annotationSubType === 'Area' || annotationSubType === 'Area calculation') {\n commentSpan.className = 'e-pv-calibrate-area-icon e-pv-icon';\n }\n else if (annotationSubType === 'Volume' || annotationSubType === 'Volume calculation') {\n commentSpan.className = 'e-pv-calibrate-volume-icon e-pv-icon';\n }\n else {\n commentSpan.className = 'e-pv-annotation-calibrate-icon e-pv-icon';\n }\n }\n else if (annotationType === 'textMarkup') {\n if (annotationSubType === 'Highlight') {\n commentSpan.className = 'e-pv-highlight-icon e-pv-icon';\n }\n else if (annotationSubType === 'Underline') {\n commentSpan.className = 'e-pv-underline-icon e-pv-icon';\n }\n else if (annotationSubType === 'Strikethrough') {\n commentSpan.className = 'e-pv-strikethrough-icon e-pv-icon';\n }\n else {\n commentSpan.className = 'e-pv-annotation-icon e-pv-icon';\n }\n }\n else if (annotationType === 'freeText') {\n commentSpan.className = 'e-pv-freetext-icon e-pv-icon';\n }\n else if (annotationType === 'ink' || annotationSubType === 'Ink') {\n commentSpan.className = 'e-pv-inkannotation-icon e-pv-icon';\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateStatusContainer = function (state, statusSpan, statusDiv, statusContainer) {\n if (state === 'Accepted') {\n statusDiv.style.backgroundColor = 'rgb(24,169,85)';\n statusSpan.className = 'e-pv-accepted-icon';\n }\n else if (state === 'Completed') {\n statusDiv.style.backgroundColor = 'rgb(0,122,255)';\n statusSpan.className = 'e-pv-completed-icon';\n }\n else if (state === 'Cancelled') {\n statusDiv.style.backgroundColor = 'rgb(245,103,0)';\n statusSpan.className = 'e-pv-cancelled-icon';\n }\n else if (state === 'Rejected') {\n statusDiv.style.backgroundColor = 'rgb(255,59,48)';\n statusSpan.className = 'e-pv-rejected-icon';\n }\n else {\n statusSpan.className = '';\n statusContainer.parentElement.removeChild(statusContainer);\n }\n };\n /**\n * @param removeDiv\n * @private\n */\n StickyNotesAnnotation.prototype.updateAccordionContainer = function (removeDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(removeDiv.accessKey.split('_')[0]);\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordionContent) {\n accordionContent.parentElement.removeChild(accordionContent);\n }\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.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], false);\n document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'block';\n this.updateCommentPanelTextTop();\n }\n }\n }\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.createCommentContextMenu = function () {\n // eslint-disable-next-line max-len\n this.commentContextMenu = [\n { text: this.pdfViewer.localeObj.getConstant('Edit') },\n { text: this.pdfViewer.localeObj.getConstant('Delete Context') },\n {\n // eslint-disable-next-line max-len\n text: this.pdfViewer.localeObj.getConstant('Set Status'), items: [{ text: this.pdfViewer.localeObj.getConstant('None') }, { text: this.pdfViewer.localeObj.getConstant('Accepted') }, { text: this.pdfViewer.localeObj.getConstant('Cancelled') }, { text: this.pdfViewer.localeObj.getConstant('Completed') }, { text: this.pdfViewer.localeObj.getConstant('Rejected') }]\n }\n ];\n var commentMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_comment_context_menu' });\n this.pdfViewer.element.appendChild(commentMenuElement);\n this.commentMenuObj = new Context({\n target: '#' + this.moreButtonId, items: this.commentContextMenu,\n beforeOpen: this.contextMenuBeforeOpen.bind(this),\n select: this.commentMenuItemSelect.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.commentMenuObj.enableRtl = true;\n }\n this.commentMenuObj.appendTo(commentMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.commentMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.commentMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n StickyNotesAnnotation.prototype.contextMenuBeforeOpen = function (args) {\n // eslint-disable-next-line\n var contextActiveDiv;\n // eslint-disable-next-line\n var contextDiv = document.querySelectorAll('.e-pv-more-options-button');\n if (contextDiv) {\n for (var i = 0; i < contextDiv.length; i++) {\n if (contextDiv[i].style.visibility === 'visible') {\n contextActiveDiv = contextDiv[i].parentElement.nextSibling;\n }\n }\n }\n var isCommentLocked = this.checkIslockProperty(contextActiveDiv);\n if (isCommentLocked) {\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Edit')], false);\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], false);\n }\n else {\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Edit')], true);\n this.commentMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentMenuItemSelect = function (args) {\n // eslint-disable-next-line\n var contextActiveDiv;\n // eslint-disable-next-line\n var contextDiv = document.querySelectorAll('.e-pv-more-options-button');\n if (contextDiv) {\n for (var i = 0; i < contextDiv.length; i++) {\n if (contextDiv[i].style.visibility === 'visible') {\n contextActiveDiv = contextDiv[i].parentElement.nextSibling;\n }\n }\n if (args.item) {\n switch (args.item.text) {\n case this.pdfViewer.localeObj.getConstant('Edit'):\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n contextActiveDiv.ej2_instances[0].enableEditMode = true;\n break;\n case this.pdfViewer.localeObj.getConstant('Delete Context'):\n if (contextActiveDiv.parentElement.parentElement.firstChild === contextActiveDiv.parentElement) {\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n else {\n // eslint-disable-next-line max-len\n this.modifyCommentDeleteProperty(contextActiveDiv.parentElement.parentElement, contextActiveDiv.parentElement);\n }\n break;\n case this.pdfViewer.localeObj.getConstant('Set Status'):\n break;\n case this.pdfViewer.localeObj.getConstant('Accepted'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var acceptedStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-accepted-icon' });\n statusDiv.style.backgroundColor = 'rgb(24,169,85)';\n statusDiv.appendChild(statusSpan);\n acceptedStatusDiv.appendChild(statusDiv);\n contextActiveDiv.parentElement.appendChild(acceptedStatusDiv);\n this.modifyStatusProperty('Accepted', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('Completed'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var completedStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusElement = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n // eslint-disable-next-line max-len\n var statusOptionSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-completed-icon' });\n statusElement.style.backgroundColor = 'rgb(0,122,255)';\n statusElement.appendChild(statusOptionSpan);\n completedStatusDiv.appendChild(statusElement);\n contextActiveDiv.parentElement.appendChild(completedStatusDiv);\n this.modifyStatusProperty('Completed', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('Cancelled'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var cancelStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var cancelStatusElement = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n // eslint-disable-next-line max-len\n var cancelStatusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-cancelled-icon' });\n cancelStatusElement.style.backgroundColor = 'rgb(245,103,0)';\n cancelStatusElement.appendChild(cancelStatusSpan);\n cancelStatusDiv.appendChild(cancelStatusElement);\n contextActiveDiv.parentElement.appendChild(cancelStatusDiv);\n this.modifyStatusProperty('Cancelled', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('Rejected'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n // eslint-disable-next-line max-len\n var rejectedStatusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var rejectedStatusElement = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n // eslint-disable-next-line max-len\n var rejectedStatusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon', className: 'e-pv-rejected-icon' });\n rejectedStatusElement.style.backgroundColor = 'rgb(255,59,48)';\n rejectedStatusElement.appendChild(rejectedStatusSpan);\n rejectedStatusDiv.appendChild(rejectedStatusElement);\n contextActiveDiv.parentElement.appendChild(rejectedStatusDiv);\n this.modifyStatusProperty('Rejected', contextActiveDiv.parentElement);\n break;\n case this.pdfViewer.localeObj.getConstant('None'):\n if (contextActiveDiv.parentElement.lastChild.id === this.pdfViewer.element.id + 'status_container') {\n contextActiveDiv.parentElement.lastChild.remove();\n }\n this.modifyStatusProperty('None', contextActiveDiv.parentElement);\n break;\n default:\n break;\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.moreOptionsClick = function (event, isMoreOptionClick) {\n if (document.getElementById(this.pdfViewer.element.id + '_comment_context_menu').style.display !== 'block') {\n this.pdfViewer.annotationModule.checkContextMenuDeleteItem(this.commentMenuObj);\n this.commentMenuObj.open(event.clientY, event.clientX, event.currentTarget);\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 // eslint-disable-next-line\n StickyNotesAnnotation.prototype.openTextEditor = function (event) {\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n var isCommentLocked = this.checkIslockProperty(event.currentTarget.nextSibling);\n if (isCommentLocked) {\n event.currentTarget.nextSibling.ej2_instances[0].enableEditMode = false;\n }\n else if (event.currentTarget.parentElement.parentElement) {\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.parentElement.id);\n if (isLocked) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(event.currentTarget.parentElement.parentElement.id);\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n event.currentTarget.nextSibling.ej2_instances[0].enableEditMode = true;\n }\n }\n else {\n event.currentTarget.nextSibling.ej2_instances[0].enableEditMode = true;\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.checkIslockProperty = function (commentEvent) {\n // eslint-disable-next-line\n var annotCollection = this.pdfViewer.annotationCollection;\n // eslint-disable-next-line\n var annotation;\n if (commentEvent.IsCommentLock) {\n return true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n annotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else if (this.pdfViewer.selectedItems.annotations[0]) {\n annotation = this.pdfViewer.selectedItems.annotations[0];\n }\n for (var i = 0; i < annotCollection.length; i++) {\n // eslint-disable-next-line max-len\n var note = annotCollection[i].note ? annotCollection[i].note : annotCollection[i].notes;\n if (annotCollection[i].isCommentLock === true && (commentEvent.textContent === note || annotCollection[i].dynamicText === commentEvent.textContent)) {\n return true;\n }\n for (var j = 0; j < annotCollection[i].comments.length; j++) {\n if (annotation && annotCollection[i].annotationId === annotation.annotName) {\n // eslint-disable-next-line max-len\n if (annotCollection[i].comments[j].isLock === true && commentEvent.textContent === annotCollection[i].comments[j].note) {\n return true;\n }\n }\n }\n }\n return false;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.openEditorElement = function (event) {\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n var isCommentLocked = this.checkIslockProperty(event.currentTarget);\n if (isCommentLocked) {\n event.currentTarget.ej2_instances[0].enableEditMode = false;\n }\n else if (event.currentTarget.parentElement.parentElement) {\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.parentElement.id);\n if (isLocked) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(event.currentTarget.parentElement.parentElement.id);\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n if (!isNullOrUndefined(this.pdfViewer.selectedItems) && this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].isReadonly) {\n event.currentTarget.ej2_instances[0].enableEditMode = false;\n }\n else {\n event.currentTarget.ej2_instances[0].enableEditMode = true;\n }\n }\n }\n else {\n event.currentTarget.ej2_instances[0].enableEditMode = true;\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentsDivClickEvent = function (event) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(event.currentTarget.parentElement.id);\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.id);\n if (isLocked) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n var isCommentsSelect = false;\n if (event.clientX === 0 && event.clientY === 0) {\n this.isSetAnnotationType = true;\n }\n else {\n this.isSetAnnotationType = false;\n }\n if (event.target.className === 'e-pv-more-icon e-pv-icon') {\n return null;\n }\n // eslint-disable-next-line\n var x = document.querySelectorAll('.e-pv-more-options-button');\n for (var i = 0; i < x.length; i++) {\n x[i].style.visibility = 'hidden';\n }\n if (document.getElementById(this.pdfViewer.element.id + '_commantPanel').style.display === 'none') {\n this.pdfViewer.annotationModule.showCommentsPanel();\n }\n if (event.currentTarget.parentElement.classList.contains('e-pv-comments-border')) {\n isCommentsSelect = true;\n }\n event.currentTarget.firstChild.lastChild.style.visibility = 'visible';\n // eslint-disable-next-line\n var commentsContainer = document.querySelectorAll('.e-pv-comments-border');\n if (commentsContainer) {\n for (var j = 0; j < commentsContainer.length; j++) {\n commentsContainer[j].classList.remove('e-pv-comments-border');\n }\n }\n event.currentTarget.parentElement.classList.add('e-pv-comments-border');\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n // eslint-disable-next-line\n var editElement = event.currentTarget.parentElement.lastChild;\n // eslint-disable-next-line\n var commentsElement = event.currentTarget.parentElement;\n if (editElement) {\n editElement.style.display = 'block';\n if (editElement.querySelector('.e-editable-inline')) {\n if (!this.isEditableElement) {\n editElement.querySelector('.e-editable-inline').style.display = 'block';\n }\n for (var i = 0; i < commentsElement.childElementCount; i++) {\n // eslint-disable-next-line\n var activeElement = commentsElement.childNodes[i];\n // eslint-disable-next-line\n var textElement = activeElement.querySelector('.e-editable-inline');\n if (textElement) {\n if (textElement.style.display === '') {\n editElement.style.display = 'none';\n editElement.querySelector('.e-editable-inline').style.display = 'none';\n }\n }\n }\n }\n if (this.isSetAnnotationType) {\n if (!isCommentsSelect) {\n this.updateCommentsScrollTop();\n }\n }\n }\n if (event.currentTarget.parentElement.childElementCount === 1) {\n if (!this.pdfViewer.enableShapeLabel) {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n else {\n var type = event.currentTarget.parentElement.getAttribute('name');\n if (this.isSetAnnotationType && type === 'shape') {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = false;\n }\n else {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n }\n }\n var editModule = void 0;\n if (event && event.currentTarget && event.currentTarget.childNodes[1]) {\n editModule = event.currentTarget.childNodes[1].ej2_instances[0];\n }\n if (event.currentTarget && event.currentTarget.id && editModule) {\n // eslint-disable-next-line\n if (annotation && annotation.isCommentLock) {\n editModule.enableEditMode = false;\n this.createCommentDiv(event.currentTarget);\n }\n this.pdfViewer.fireCommentSelect(event.currentTarget.id, event.currentTarget.childNodes[1].ej2_instances[0].value, annotation);\n }\n this.commentDivOnSelect(event);\n event.preventDefault();\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentsDivDoubleClickEvent = function (event) {\n // eslint-disable-next-line\n var commentShow = document.querySelectorAll('.e-pv-new-comments-div');\n for (var i = 0; i < commentShow.length; i++) {\n commentShow[i].style.display = 'none';\n }\n var isCommentLocked = this.checkIslockProperty(event.currentTarget.children[1]);\n if (isCommentLocked) {\n if (event.currentTarget.childElementCount === 2) {\n event.currentTarget.lastChild.ej2_instances[0].enableEditMode = false;\n }\n else {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = false;\n }\n }\n else if (event.currentTarget) {\n var isLocked = this.checkAnnotationSettings(event.currentTarget.parentElement.id);\n if (!isLocked) {\n if (event.currentTarget.childElementCount === 2) {\n event.currentTarget.lastChild.ej2_instances[0].enableEditMode = true;\n }\n else {\n event.currentTarget.childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivOnSelect = function (event) {\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[z].classList.remove('e-pv-comments-select');\n }\n var activeElement = document.getElementById(event.currentTarget.id);\n if (activeElement) {\n activeElement.classList.remove('e-pv-comments-hover');\n activeElement.classList.remove('e-pv-comments-leave');\n activeElement.classList.add('e-pv-comments-select');\n if (event.currentTarget.nextSibling) {\n if (event.currentTarget.nextSibling.classList.contains('e-pv-new-comments-div')) {\n var activeSiblingElement = document.getElementById(event.currentTarget.nextSibling.id);\n activeSiblingElement.classList.remove('e-pv-comments-hover');\n activeSiblingElement.classList.remove('e-pv-comments-leave');\n activeSiblingElement.classList.add('e-pv-comments-select');\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivMouseOver = function (event) {\n var activeElement = document.getElementById(event.currentTarget.id);\n if (activeElement) {\n activeElement.classList.remove('e-pv-comments-select');\n activeElement.classList.remove('e-pv-comments-leave');\n activeElement.classList.add('e-pv-comments-hover');\n if (event.currentTarget.nextSibling) {\n if (event.currentTarget.nextSibling.classList.contains('e-pv-new-comments-div')) {\n var activeSiblingElement = document.getElementById(event.currentTarget.nextSibling.id);\n activeSiblingElement.classList.remove('e-pv-comments-select');\n activeSiblingElement.classList.remove('e-pv-comments-leave');\n activeSiblingElement.classList.add('e-pv-comments-hover');\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentDivMouseLeave = function (event) {\n var activeElement = document.getElementById(event.currentTarget.id);\n if (activeElement) {\n activeElement.classList.remove('e-pv-comments-hover');\n activeElement.classList.remove('e-pv-comments-select');\n activeElement.classList.add('e-pv-comments-leave');\n if (event.currentTarget.nextSibling) {\n if (event.currentTarget.nextSibling.classList.contains('e-pv-new-comments-div')) {\n var activeSiblingElement = document.getElementById(event.currentTarget.nextSibling.id);\n activeSiblingElement.classList.remove('e-pv-comments-hover');\n activeSiblingElement.classList.remove('e-pv-comments-select');\n activeSiblingElement.classList.add('e-pv-comments-leave');\n }\n }\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.drawIcons = function (event) {\n // eslint-disable-next-line\n if (this.pdfViewerBase.isCommentIconAdded) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var pageCurrentRect = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex).getBoundingClientRect();\n var zoomValue = this.pdfViewerBase.getZoomFactor();\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.drawStickyNotes((event.clientX - pageCurrentRect.left) / zoomValue, (event.clientY - pageCurrentRect.top) / zoomValue, 30, 30, pageIndex, null);\n this.pdfViewerBase.isCommentIconAdded = false;\n var commentsButton = document.getElementById(this.pdfViewer.element.id + '_comment');\n if (isBlazor()) {\n commentsButton = commentsButton.children[0];\n }\n if (commentsButton && commentsButton.classList.contains('e-pv-select')) {\n commentsButton.classList.remove('e-pv-select');\n }\n else {\n var commentsIcon = document.getElementById(this.pdfViewer.element.id + '_commentIcon');\n if (commentsIcon) {\n this.pdfViewer.enableRtl ? commentsIcon.className = 'e-pv-comment-icon e-pv-icon e-icon-left e-right' : commentsIcon.className = 'e-pv-comment-icon e-pv-icon e-icon-left';\n }\n }\n }\n };\n /**\n * @param annotationType\n * @param pageNumber\n * @param annotationSubType\n * @param annotationType\n * @param pageNumber\n * @param annotationSubType\n * @param annotationType\n * @param pageNumber\n * @param annotationSubType\n * @private\n */\n StickyNotesAnnotation.prototype.addComments = function (annotationType, pageNumber, annotationSubType) {\n var commentsDivid;\n // eslint-disable-next-line max-len\n var accordion = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + pageNumber);\n if (accordion) {\n // eslint-disable-next-line max-len\n commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.createCommentControlPanel(null, pageNumber, annotationType, annotationSubType);\n }\n else {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.createPageAccordion(pageNumber);\n // eslint-disable-next-line max-len\n commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.createCommentControlPanel(null, pageNumber, annotationType, annotationSubType);\n }\n return commentsDivid;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.commentsAnnotationSelect = function (event) {\n var element = event.currentTarget;\n var isLocked = this.checkAnnotationSettings(element.id);\n if (isLocked) {\n // eslint-disable-next-line\n var annotation = this.findAnnotationObject(element.id);\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Select', annotation)) {\n isLocked = false;\n }\n }\n if (!isLocked) {\n if (element.classList.contains('e-pv-comments-border')) {\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[j].style.minHeight = 60 + 'px';\n }\n if (event.currentTarget.childElementCount === 1) {\n if (event.currentTarget.childNodes[0].querySelector('.e-editable-inline')) {\n event.currentTarget.childNodes[0].style.minHeight = event.currentTarget.childNodes[0].clientHeight;\n }\n }\n }\n if (event.target.className === 'e-pv-more-icon e-pv-icon' || event.target.className === 'e-pv-more-options-button e-btn') {\n event.preventDefault();\n return null;\n }\n // eslint-disable-next-line\n var pageNumber = parseInt(element.accessKey.split('_')[0]);\n if (!element.classList.contains('e-pv-comments-border')) {\n // eslint-disable-next-line\n var commentsContainer = document.querySelectorAll('.e-pv-comments-border');\n if (commentsContainer) {\n for (var j = 0; j < commentsContainer.length; j++) {\n commentsContainer[j].classList.remove('e-pv-comments-border');\n }\n }\n var commentsDiv = document.getElementById(element.id);\n if (commentsDiv) {\n // eslint-disable-next-line\n document.querySelectorAll('.e-pv-more-options-button[style*=\"visibility: visible\"]').forEach(function (moreButton) { return moreButton.style.visibility = 'hidden'; });\n if (event.target.className === 'e-editable-value-wrapper') {\n event.target.parentElement.parentElement.firstChild.lastChild.style.visibility = 'visible';\n }\n else if (event.target.className === 'e-pv-reply-title' || event.target.className === 'e-pv-comment-title') {\n event.target.parentElement.lastChild.style.visibility = 'visible';\n }\n else if (event.target.className === 'e-editable-value') {\n event.target.parentElement.parentElement.parentElement.firstChild.lastChild.style.visibility = 'visible';\n }\n commentsDiv.classList.add('e-pv-comments-border');\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[j].style.display = 'none';\n }\n if (commentsDiv) {\n // eslint-disable-next-line\n var currentTextBox = commentsDiv.querySelector('.e-pv-new-comments-div');\n if (currentTextBox) {\n currentTextBox.style.display = 'block';\n }\n }\n // eslint-disable-next-line\n var textDiv = element.lastChild;\n this.isEditableElement = false;\n if (textDiv.querySelector('.e-editable-inline')) {\n textDiv.style.display = 'block';\n textDiv.querySelector('.e-editable-inline').style.display = 'block';\n for (var i = 0; i < element.childElementCount; i++) {\n // eslint-disable-next-line\n var activeElement = element.childNodes[i];\n // eslint-disable-next-line\n var textElement = activeElement.querySelector('.e-editable-inline');\n if (textElement) {\n if (textElement.style.display === '') {\n if (textDiv.classList.contains('e-pv-new-comments-div')) {\n this.isEditableElement = true;\n textDiv.style.display = 'none';\n textDiv.querySelector('.e-editable-inline').style.display = 'none';\n }\n }\n }\n }\n }\n this.isSetAnnotationType = false;\n if (event.currentTarget.childElementCount === 1) {\n event.currentTarget.childNodes[0].childNodes[1].ej2_instances[0].enableEditMode = true;\n }\n }\n else {\n this.isSetAnnotationType = true;\n }\n if (!this.isSetAnnotationType) {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigationModule.goToPage(pageNumber);\n }\n var annotType = element.getAttribute('name');\n if (annotType === 'null' || annotType === 'Ink') {\n annotType = 'ink';\n }\n this.isCommentsSelected = false;\n this.setAnnotationType(element.id, annotType, pageNumber);\n if (!this.isCommentsSelected) {\n this.selectAnnotationObj = { id: element.id, annotType: annotType, pageNumber: pageNumber };\n }\n }\n }\n this.isSetAnnotationType = false;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.findAnnotationObject = function (id) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else if (this.pdfViewer.selectedItems.annotations[0]) {\n return this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line\n var annotationCollection = this.pdfViewer.annotationCollection;\n if (annotationCollection) {\n for (var i = 0; i < annotationCollection.length; i++) {\n if (annotationCollection[i].annotationId && (annotationCollection[i].annotationId === id)) {\n if (annotationCollection[i].shapeAnnotationType === 'textMarkup') {\n return annotationCollection[i];\n }\n else {\n annotationCollection = this.pdfViewer.annotations;\n for (var j = 0; j < annotationCollection.length; j++) {\n if (annotationCollection[j].annotName && (annotationCollection[j].annotName === id)) {\n return annotationCollection[j];\n }\n }\n }\n }\n }\n }\n };\n StickyNotesAnnotation.prototype.checkAnnotationSettings = function (id) {\n // eslint-disable-next-line\n var annotationCollection = this.pdfViewer.annotationCollection;\n if (annotationCollection) {\n for (var i = 0; i < annotationCollection.length; i++) {\n if (annotationCollection[i].annotationId && (annotationCollection[i].annotationId === id)) {\n if (annotationCollection[i].annotationSettings && annotationCollection[i].annotationSettings.isLock) {\n return true;\n }\n else {\n return false;\n }\n }\n }\n return false;\n }\n else {\n return false;\n }\n };\n StickyNotesAnnotation.prototype.updateCommentsContainerWidth = function () {\n var accordionContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer');\n var commentsContentContainer = document.getElementById(this.pdfViewer.element.id + '_commentscontentcontainer');\n accordionContainer.style.width = commentsContentContainer.clientWidth + 'px';\n };\n /**\n * @param pageIndex\n * @private\n */\n StickyNotesAnnotation.prototype.selectCommentsAnnotation = function (pageIndex) {\n if (this.selectAnnotationObj && !this.isCommentsSelected) {\n if ((this.selectAnnotationObj.pageNumber - 1) === pageIndex) {\n // eslint-disable-next-line max-len\n this.setAnnotationType(this.selectAnnotationObj.id, this.selectAnnotationObj.annotType, this.selectAnnotationObj.pageNumber);\n this.selectAnnotationObj = null;\n this.isCommentsSelected = true;\n }\n }\n };\n StickyNotesAnnotation.prototype.setAnnotationType = function (id, type, pageNumber) {\n var typeString = (type === 'measure') ? 'shape_measure' : type;\n if (typeString === 'freeText') {\n typeString = 'freetext';\n }\n // eslint-disable-next-line\n var storeCommentObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + typeString);\n if (this.pdfViewerBase.isStorageExceed) {\n storeCommentObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + typeString];\n }\n if (storeCommentObject) {\n var annotationCommentObject = JSON.parse(storeCommentObject);\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n var index = this.pdfViewer.annotationModule.\n getPageCollection(annotationCommentObject, (pageNumber - 1));\n if (annotationCommentObject[index]) {\n // eslint-disable-next-line\n var pageCollections = annotationCommentObject[index].annotations;\n for (var i = 0; i < pageCollections.length; i++) {\n var currentSelector = pageCollections[i].annotationSelectorSettings;\n if (pageCollections[i].annotName === id) {\n if (annotation) {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n this.pdfViewer.clearSelection(pageNumber - 1);\n if (type === 'textMarkup') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageNumber - 1, true);\n // eslint-disable-next-line max-len\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + (pageNumber - 1));\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectAnnotation(pageCollections[i], canvas, (pageNumber - 1));\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAnnotation = pageCollections[i];\n this.pdfViewer.annotation.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageNumber - 1;\n this.pdfViewer.annotation.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n else if (type === 'stamp') {\n this.pdfViewer.select([pageCollections[i].randomId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (type === 'sticky') {\n this.pdfViewer.select([pageCollections[i].annotName], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (type === 'ink') {\n this.pdfViewer.select([pageCollections[i].id], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else {\n this.pdfViewer.select([pageCollections[i].id], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (type === 'textMarkup') {\n if (pageCollections[i].rect || pageCollections[i].bounds) {\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageNumber - 1].top * this.pdfViewerBase.getZoomFactor() + (this.pdfViewer.annotationModule.getAnnotationTop(pageCollections[i]) * this.pdfViewerBase.getZoomFactor());\n if (scrollValue) {\n var scroll_1 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_1);\n }\n }\n }\n else {\n var top_1 = pageCollections[i].bounds.top;\n if (type === 'ink') {\n top_1 = pageCollections[i].bounds.y;\n }\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageNumber - 1].top * this.pdfViewerBase.getZoomFactor() + ((top_1) * this.pdfViewerBase.getZoomFactor());\n var scroll_2 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_2);\n }\n this.isCommentsSelected = true;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyTextProperty = function (text, previousValue, annotationName) {\n // eslint-disable-next-line\n var currentAnnotation;\n var module = this.pdfViewer.annotationModule.textMarkupAnnotationModule;\n if (module && module.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n if (currentAnnotation) {\n if (currentAnnotation.annotName !== annotationName) {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n if (isNullOrUndefined(currentAnnotation) && annotationName) {\n currentAnnotation = this.pdfViewer.annotationCollection.filter(function (annot) { return annot.annotationId === annotationName; })[0];\n }\n if (annotationName && (currentAnnotation.annotName !== annotationName)) {\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n if (annotationName === this.pdfViewer.annotations[i].annotName) {\n currentAnnotation = this.pdfViewer.annotations[i];\n break;\n }\n }\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = void 0;\n if (commentsDiv.accessKey.split('_')[0]) {\n // eslint-disable-next-line\n pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n }\n else {\n pageNumber = this.pdfViewerBase.currentPageNumber;\n }\n var type = commentsDiv.getAttribute('name');\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var pageAnnotations = void 0;\n var isMeasure = false;\n // eslint-disable-next-line max-len\n if (currentAnnotation.shapeAnnotationType === 'FreeText' || (this.pdfViewer.enableShapeLabel && (type === 'shape' || type === 'shape_measure'))) {\n var isTextAdded = false;\n if (annotationName) {\n if (currentAnnotation.annotName !== annotationName) {\n this.pdfViewer.annotation.modifyDynamicTextValue(text, annotationName);\n isTextAdded = true;\n }\n }\n if (!isTextAdded) {\n if (currentAnnotation.shapeAnnotationType === 'FreeText') {\n if (currentAnnotation.dynamicText !== text) {\n this.textFromCommentPanel = true;\n this.pdfViewer.annotation.modifyDynamicTextValue(text, currentAnnotation.annotName);\n }\n currentAnnotation.dynamicText = text;\n }\n else {\n this.pdfViewer.annotation.modifyDynamicTextValue(text, currentAnnotation.annotName);\n currentAnnotation.labelContent = text;\n currentAnnotation.notes = text;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, {});\n }\n }\n if (currentAnnotation.measureType && currentAnnotation.measureType !== '') {\n pageAnnotations = this.getAnnotations(pageIndex, null, 'shape_measure');\n isMeasure = true;\n }\n else {\n pageAnnotations = this.getAnnotations(pageIndex, null, currentAnnotation.shapeAnnotationType);\n }\n if (pageAnnotations !== null && currentAnnotation.shapeAnnotationType !== 'FreeText') {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === currentAnnotation.annotName) {\n // eslint-disable-next-line\n var clonedObject = cloneObject(pageAnnotations[i]);\n if (text !== null) {\n if (pageAnnotations[i].note !== text) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, i, pageAnnotations[i], 'Text Property Added', '', clonedObject, pageAnnotations[i]);\n currentAnnotation = pageAnnotations[i];\n currentAnnotation.note = text;\n if (currentAnnotation.enableShapeLabel) {\n currentAnnotation.labelContent = text;\n }\n // eslint-disable-next-line max-len\n currentAnnotation.modifiedDate = this.getDateAndTime();\n if (!isMeasure) {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n else {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex, 'shape_measure');\n }\n if (!previousValue || previousValue === '') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireCommentAdd(currentAnnotation.annotName, currentAnnotation.note, currentAnnotation);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireCommentEdit(currentAnnotation.annotName, currentAnnotation.note, currentAnnotation);\n }\n return currentAnnotation;\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param date\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getDateAndTime = function (date) {\n if (!date) {\n date = new Date();\n }\n this.globalize = new Internationalization();\n var dateOptions = { format: this.pdfViewer.dateTimeFormat, type: 'dateTime' };\n // eslint-disable-next-line\n var dateTime = this.globalize.formatDate(new Date(date), dateOptions);\n return dateTime;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyCommentsProperty = function (text, annotName, parentElement, previousValue) {\n // eslint-disable-next-line\n var currentAnnotation;\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 if (currentAnnotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var pageAnnotations = void 0;\n var isMeasure = false;\n var author = this.getAuthorName(currentAnnotation, commentsDiv);\n if (currentAnnotation.measureType && currentAnnotation.measureType !== '') {\n pageAnnotations = this.getAnnotations(pageIndex, null, 'shape_measure');\n isMeasure = true;\n }\n else {\n pageAnnotations = this.getAnnotations(pageIndex, null, currentAnnotation.shapeAnnotationType);\n }\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === currentAnnotation.annotName) {\n currentAnnotation = pageAnnotations[i];\n }\n }\n }\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n if (currentAnnotation.comments.length > 0) {\n var isComment = false;\n for (var j = 0; j < currentAnnotation.comments.length; j++) {\n if (currentAnnotation.comments[j].annotName === annotName) {\n isComment = true;\n currentAnnotation.comments[j].note = text;\n // eslint-disable-next-line max-len\n currentAnnotation.comments[j].modifiedDate = this.getDateAndTime();\n }\n }\n // eslint-disable-next-line max-len\n var newArray = { annotName: annotName, parentId: parentElement, subject: 'Comments', comments: [], author: author, note: text, shapeAnnotationType: '', state: '', stateModel: '', modifiedDate: this.getDateAndTime(), review: { state: '', stateModel: '', modifiedDate: this.getDateAndTime(), author: author }, isLock: false };\n if (!isComment) {\n currentAnnotation.comments[currentAnnotation.comments.length] = newArray;\n }\n }\n else {\n // eslint-disable-next-line max-len\n var newArray = { annotName: annotName, parentId: parentElement, subject: 'Comments', comments: [], author: author, note: text, shapeAnnotationType: '', state: '', stateModel: '', modifiedDate: this.getDateAndTime(), review: { state: '', stateModel: '', modifiedDate: this.getDateAndTime(), author: author }, isLock: false };\n currentAnnotation.comments[currentAnnotation.comments.length] = newArray;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, currentAnnotation, 'Comments Property Added', '', clonedObject, currentAnnotation);\n if (!isMeasure) {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n else {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex, 'shape_measure');\n }\n }\n if (previousValue !== undefined) {\n this.pdfViewer.fireCommentEdit(annotName, text, currentAnnotation);\n }\n else {\n this.pdfViewer.fireCommentAdd(annotName, text, currentAnnotation);\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyStatusProperty = function (text, statusElement) {\n // eslint-disable-next-line\n var currentAnnotation;\n if (this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var pageAnnotations = void 0;\n var isMeasure = false;\n var author = commentsDiv.getAttribute('author');\n if (currentAnnotation.measureType && currentAnnotation.measureType !== '') {\n pageAnnotations = this.getAnnotations(pageIndex, null, 'shape_measure');\n isMeasure = true;\n }\n else {\n pageAnnotations = this.getAnnotations(pageIndex, null, currentAnnotation.shapeAnnotationType);\n }\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === currentAnnotation.annotName) {\n currentAnnotation = pageAnnotations[i];\n }\n }\n }\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n if (statusElement.parentElement.firstChild.id === statusElement.id) {\n // eslint-disable-next-line max-len\n currentAnnotation.review = { state: text, stateModel: 'Review', author: author, modifiedDate: this.getDateAndTime(), annotId: statusElement.id };\n currentAnnotation.state = text;\n currentAnnotation.stateModel = 'Review';\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, currentAnnotation, 'Status Property Added', '', clonedObject, currentAnnotation);\n this.pdfViewer.fireCommentStatusChanged(statusElement.id, currentAnnotation.note, currentAnnotation, currentAnnotation.state);\n }\n else {\n for (var j = 0; j < currentAnnotation.comments.length; j++) {\n if (currentAnnotation.comments[j].annotName === statusElement.id) {\n // eslint-disable-next-line\n var clonedObj = cloneObject(currentAnnotation.comments[j]);\n currentAnnotation.comments[j].state = text;\n currentAnnotation.comments[j].stateModel = 'Review';\n // eslint-disable-next-line max-len\n currentAnnotation.comments[j].review = { state: text, stateModel: 'Review', author: author, modifiedDate: this.getDateAndTime(), annotId: statusElement.id };\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, currentAnnotation, 'Status Property Added', '', clonedObj, currentAnnotation.comments[j]);\n this.pdfViewer.fireCommentStatusChanged(currentAnnotation.comments[j].annotName, currentAnnotation.comments[j].note, currentAnnotation, currentAnnotation.comments[j].state);\n }\n }\n }\n if (!isMeasure) {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n else {\n this.updateUndoRedoCollections(currentAnnotation, pageIndex, 'shape_measure');\n }\n }\n };\n /**\n * @param commentsElement\n * @param replyElement\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.modifyCommentDeleteProperty = function (commentsElement, replyElement) {\n // eslint-disable-next-line\n var clonedObject;\n // eslint-disable-next-line\n var clonedAnnotation;\n // eslint-disable-next-line\n var currentAnnotation;\n // eslint-disable-next-line\n var commentsParentElement = document.getElementById(commentsElement.id);\n if (commentsParentElement) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsParentElement.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n var annotType = commentsElement.getAttribute('name');\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageIndex, null, annotType);\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === commentsElement.id) {\n currentAnnotation = pageAnnotations[i];\n }\n }\n }\n for (var i = 1; i < commentsParentElement.childElementCount; i++) {\n if (commentsParentElement.childNodes[i].id === replyElement.id) {\n clonedAnnotation = cloneObject(currentAnnotation);\n var positionValue = (i - 1);\n currentAnnotation.comments[positionValue].position = i;\n clonedObject = cloneObject(currentAnnotation.comments[positionValue]);\n // eslint-disable-next-line max-len\n this.pdfViewer.fireCommentDelete(currentAnnotation.comments[positionValue].annotName, currentAnnotation.comments[positionValue].note, currentAnnotation);\n currentAnnotation.comments.splice(positionValue, 1);\n replyElement.remove();\n }\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, clonedAnnotation, 'Comments Reply Deleted', '', clonedObject, currentAnnotation);\n this.updateUndoRedoCollections(currentAnnotation, pageIndex);\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateOpacityValue = function (annotation) {\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(annotation.pageIndex, null, annotation.shapeAnnotationType);\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === annotation.annotName) {\n pageAnnotations[i].opacity = annotation.opacity;\n this.updateUndoRedoCollections(pageAnnotations[i], annotation.pageIndex);\n }\n }\n }\n };\n /**\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.undoAction = function (annotation, isAction, undoAnnotation) {\n if (isAction === 'Text Property Added') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsMainDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = undoAnnotation.note;\n var value = undoAnnotation.note;\n annotation.note = value;\n if (commentsMainDiv.childElementCount === 2) {\n commentsMainDiv.lastChild.style.display = 'block';\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n }\n }\n else if (isAction === 'Comments Property Added') {\n if (annotation.comments.length > 0) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n // eslint-disable-next-line\n var comment = annotation.comments[annotation.comments.length - 1];\n // eslint-disable-next-line\n var removeDiv = document.getElementById(comment.annotName);\n if (removeDiv) {\n removeDiv.remove();\n }\n annotation = undoAnnotation;\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n }\n else if (isAction === 'Status Property Added') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n if (annotation.annotName === undoAnnotation.annotName) {\n annotation.review = undoAnnotation.review;\n annotation.state = undoAnnotation.state;\n annotation.stateModel = undoAnnotation.stateModel;\n this.pdfViewer.annotation.redoCommentsElement.push(annotation);\n }\n else {\n for (var j = 0; j < annotation.comments.length; j++) {\n if (annotation.comments[j].annotName === undoAnnotation.annotName) {\n annotation.comments[j].state = undoAnnotation.state;\n annotation.comments[j].stateModel = undoAnnotation.stateModel;\n annotation.comments[j].review = undoAnnotation.review;\n this.pdfViewer.annotation.redoCommentsElement.push(annotation.comments[j]);\n break;\n }\n }\n }\n // eslint-disable-next-line\n var activeDiv = document.getElementById(undoAnnotation.annotName);\n if (activeDiv.lastChild.id === this.pdfViewer.element.id + 'status' + '_container') {\n activeDiv.lastChild.remove();\n }\n else {\n if (activeDiv.firstChild.lastChild.id === this.pdfViewer.element.id + 'status' + '_container') {\n activeDiv.firstChild.lastChild.remove();\n }\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n }\n else if (isAction === 'Comments Reply Deleted') {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n this.renderComments(undoAnnotation, commentsDiv, true, annotation.annotName);\n this.pdfViewer.annotation.redoCommentsElement.push(undoAnnotation);\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n }\n else if (isAction === 'dynamicText Change') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = undoAnnotation.dynamicText;\n return annotation;\n }\n }\n }\n };\n /**\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @param annotation\n * @param isAction\n * @param undoAnnotation\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.redoAction = function (annotation, isAction, undoAnnotation) {\n if (isAction === 'Text Property Added') {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsMainDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = annotation.note;\n commentsMainDiv.lastChild.style.display = 'block';\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n }\n else if (isAction === 'Comments Property Added') {\n // eslint-disable-next-line\n var comment = annotation.comments[annotation.comments.length - 1];\n var commentsDiv = document.getElementById(annotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n this.renderComments(comment, commentsDiv, true, annotation.annotName);\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n }\n else if (isAction === 'Status Property Added') {\n // eslint-disable-next-line\n var poppedItem = this.pdfViewer.annotation.redoCommentsElement.pop();\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n if (poppedItem) {\n // eslint-disable-next-line max-len\n var statusContainer = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_container', className: 'e-pv-status-container' });\n // eslint-disable-next-line max-len\n var statusDiv = createElement('div', { id: this.pdfViewer.element.id + 'status' + '_div', className: 'e-pv-status-div' });\n var statusSpan = createElement('span', { id: this.pdfViewer.element.id + 'status' + '_icon' });\n statusDiv.appendChild(statusSpan);\n statusContainer.appendChild(statusDiv);\n // eslint-disable-next-line\n var activeDiv = document.getElementById(annotation.annotName);\n if (activeDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(activeDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n if (annotation.annotName === poppedItem.annotName) {\n this.updateStatusContainer(annotation.state, statusSpan, statusDiv, statusContainer);\n for (var i = 0; i < activeDiv.firstChild.children.length; i++) {\n if (activeDiv.firstChild.children[i].id === this.pdfViewer.element.id + 'status_container') {\n activeDiv.firstChild.children[i].parentElement.removeChild(activeDiv.firstChild.children[i]);\n }\n }\n activeDiv.firstChild.appendChild(statusContainer);\n }\n else {\n for (var i = 0; i < annotation.comments.length; i++) {\n if (annotation.comments[i].annotName === poppedItem.annotName) {\n this.updateStatusContainer(annotation.comments[i].state, statusSpan, statusDiv, statusContainer);\n var statusElement = document.getElementById(poppedItem.annotName);\n for (var i_1 = 0; i_1 < statusElement.children.length; i_1++) {\n if (statusElement.children[i_1].id === this.pdfViewer.element.id + 'status_container') {\n statusElement.children[i_1].parentElement.removeChild(statusElement.children[i_1]);\n }\n }\n if (statusElement) {\n statusElement.appendChild(statusContainer);\n }\n }\n }\n }\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return annotation;\n }\n else if (isAction === 'Comments Reply Deleted') {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n // eslint-disable-next-line\n var activeDiv = document.getElementById(annotation.annotName);\n if (activeDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(activeDiv.accessKey.split('_')[0]);\n pageIndex = pageNumber - 1;\n }\n // eslint-disable-next-line\n var poppedItem = this.pdfViewer.annotation.redoCommentsElement.pop();\n // eslint-disable-next-line\n var clonedAnnotationObject = cloneObject(annotation);\n for (var i = 0; i < annotation.comments.length; i++) {\n if (annotation.comments[i].annotName === poppedItem.annotName) {\n // eslint-disable-next-line\n var replyElement = document.getElementById(poppedItem.annotName);\n annotation.comments.splice(i, 1);\n replyElement.remove();\n }\n }\n this.updateUndoRedoCollections(annotation, pageIndex);\n return clonedAnnotationObject;\n }\n else if (isAction === 'dynamicText Change') {\n if (annotation) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotation.annotName);\n if (commentsMainDiv) {\n // eslint-disable-next-line\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = annotation.dynamicText;\n return annotation;\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateUndoRedoCollections = function (annotationBase, pageNumber, shapeType, action) {\n var annotationType = (!shapeType) ? annotationBase.shapeAnnotationType : shapeType;\n if (annotationBase.indent && annotationBase.indent !== '') {\n annotationType = 'shape_measure';\n }\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null, annotationType);\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.annotName === pageAnnotations[i].annotName) {\n pageAnnotations[i] = annotationBase;\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n if (action) {\n pageAnnotations.splice(i, 1);\n this.deleteStickyNotesAnnotations(pageAnnotations, pageNumber);\n }\n }\n }\n if (annotationType === 'shape_measure') {\n this.manageAnnotations(pageAnnotations, pageNumber, 'shape_measure');\n }\n else {\n this.manageAnnotations(pageAnnotations, pageNumber, annotationBase.shapeAnnotationType);\n }\n }\n };\n /**\n * @param pageIndex\n * @param type\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.addAnnotationComments = function (pageIndex, type) {\n var pageNumber = pageIndex + 1;\n // eslint-disable-next-line\n var poppedItem = this.pdfViewer.annotation.undoCommentsElement.pop();\n if (poppedItem) {\n this.createCommentsContainer(poppedItem, pageNumber);\n this.updateUndoRedoCollections(poppedItem, pageIndex, type);\n }\n };\n /**\n * @param annotation\n * @param type\n * @param action\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.findPosition = function (annotation, type, action) {\n var index;\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotation.annotName);\n if (commentsDiv) {\n // eslint-disable-next-line\n var pageNumber = parseInt(commentsDiv.accessKey.split('_')[0]);\n var pageIndex = pageNumber - 1;\n // eslint-disable-next-line\n var parentDiv = commentsDiv.parentElement;\n for (var i = 0; i < parentDiv.childElementCount; i++) {\n if (parentDiv.childNodes[i].id === annotation.annotName) {\n index = i;\n }\n }\n if (type === 'Stamp' || type === 'Image') {\n type = 'stamp';\n }\n else if (type === 'FreeText') {\n type = 'freetext';\n }\n else if (type === 'StickyNotes' || type === 'sticky') {\n type = 'sticky';\n }\n else if (type === 'Ink') {\n type = 'ink';\n }\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageIndex, null, type);\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].annotName === annotation.annotName) {\n // eslint-disable-next-line\n var clonedObject = cloneObject(pageAnnotations[i]);\n pageAnnotations[i].position = index;\n this.pdfViewer.annotation.undoCommentsElement.push(pageAnnotations[i]);\n if (type === 'sticky') {\n this.updateUndoRedoCollections(clonedObject, pageIndex, null, action);\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations, type) {\n // eslint-disable-next-line\n var annotationCollection;\n if (type === 'Stamp' || type === 'stamp' || type === 'Image') {\n type = 'stamp';\n }\n else if (type === 'StickyNotes' || type === 'sticky') {\n type = 'sticky';\n }\n else if (type === 'textMarkup') {\n type = 'textMarkup';\n }\n else if (type === 'shape' || type === 'Line' || type === 'Radius' || type === 'Rectangle' || type === 'Ellipse'\n || type === 'Polygon' || type === 'LineWidthArrowHead' || type === 'Square' || type === 'Circle') {\n type = 'shape';\n }\n else if (type === 'FreeText' || type === 'freetext' || type === 'freeText') {\n type = 'freetext';\n }\n else if (type === 'ink' || type === 'Ink') {\n type = 'ink';\n }\n else {\n type = 'shape_measure';\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + type);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + type];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber, type) {\n if (type === 'Stamp' || type === 'stamp') {\n type = 'stamp';\n }\n else if (type === 'Sticky' || type === 'sticky') {\n type = 'sticky';\n }\n else if (type === 'textMarkup') {\n type = 'textMarkup';\n }\n else if (type === 'shape' || type === 'Line' || type === 'Radius' || type === 'Rectangle' || type === 'Ellipse'\n || type === 'Polygon' || type === 'LineWidthArrowHead' || type === 'Square' || type === 'Circle') {\n type = 'shape';\n }\n else if (type === 'FreeText') {\n type = 'freetext';\n }\n else if (type === 'ink' || type === 'Ink') {\n type = 'ink';\n }\n else {\n type = 'shape_measure';\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + type);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + type];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_' + type);\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + type] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_' + type, annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateStickyNotes = function (annotation, id) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n // eslint-disable-next-line\n var bounds = annotation.bounds;\n var annotObject = JSON.parse(storeObject);\n for (var k = 0; k < annotObject.length; k++) {\n // eslint-disable-next-line\n var currentAnnot = annotObject[k];\n for (var j = 0; j < currentAnnot.annotations.length; j++) {\n if (annotObject[k].annotations[j].annotName === annotation.annotName) {\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n }\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, 0);\n if (annotObject[pageIndex]) {\n // eslint-disable-next-line max-len\n annotObject[k].annotations[j].bounds = { left: bounds.x, top: bounds.y, width: bounds.width, height: bounds.height, right: bounds.right, bottom: bounds.bottom };\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sticky', annotationStringified);\n }\n break;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.saveStickyAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.deleteStickyNotesAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sticky'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sticky', annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.addStickyNotesAnnotations = function (pageNumber, annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null, 'sticky');\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber, 'sticky');\n };\n /**\n * @param annotName\n * @param text\n * @private\n */\n StickyNotesAnnotation.prototype.addTextToComments = function (annotName, text) {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(annotName);\n if (commentsMainDiv) {\n commentsMainDiv.firstChild.firstChild.nextSibling.ej2_instances[0].value = text;\n }\n };\n /**\n * @param newAnnotation\n * @param annotation\n * @param isCut\n * @param newAnnotation\n * @param annotation\n * @param isCut\n * @param newAnnotation\n * @param annotation\n * @param isCut\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateAnnotationCollection = function (newAnnotation, annotation, isCut) {\n var type = this.findAnnotationType(annotation);\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(annotation.pageIndex, null, type);\n if (isCut) {\n pageAnnotations = this.pdfViewer.annotationModule.removedAnnotationCollection;\n }\n if (pageAnnotations !== null) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (isCut && !pageAnnotations[i].annotName) {\n pageAnnotations[i].annotName = pageAnnotations[i].annotationId;\n }\n if (pageAnnotations[i].annotName === annotation.annotName) {\n // eslint-disable-next-line\n var updateAnnotation = cloneObject(pageAnnotations[i]);\n updateAnnotation.annotName = newAnnotation.annotName;\n if (type === 'shape' || type === 'shape_measure' || type === 'freetext' || type === 'ink') {\n updateAnnotation.id = newAnnotation.id;\n }\n if (type === 'stamp') {\n updateAnnotation.randomId = newAnnotation.id;\n }\n if (type === 'ink') {\n updateAnnotation.bounds.x = newAnnotation.bounds.x;\n updateAnnotation.bounds.y = newAnnotation.bounds.y;\n }\n else {\n updateAnnotation.bounds.left = newAnnotation.bounds.x;\n updateAnnotation.bounds.top = newAnnotation.bounds.y;\n updateAnnotation.vertexPoints = newAnnotation.vertexPoints;\n }\n updateAnnotation.note = updateAnnotation.note ? updateAnnotation.note : '';\n updateAnnotation.comments = [];\n // eslint-disable-next-line max-len\n updateAnnotation.review = { state: '', stateModel: '', modifiedDate: updateAnnotation.ModifiedDate, author: updateAnnotation.author };\n updateAnnotation.state = '';\n updateAnnotation.stateModel = '';\n updateAnnotation.pageNumber = annotation.pageIndex;\n this.pdfViewer.annotationModule.storeAnnotations(annotation.pageIndex, updateAnnotation, '_annotations_' + type);\n this.createCommentsContainer(updateAnnotation, annotation.pageIndex + 1, true);\n if (isCut) {\n this.pdfViewer.annotationModule.removedAnnotationCollection = [];\n }\n break;\n }\n }\n }\n };\n StickyNotesAnnotation.prototype.findAnnotationType = function (annotation) {\n var annotType;\n if (annotation.measureType !== '') {\n annotType = 'shape_measure';\n }\n else {\n if (annotation.shapeAnnotationType === 'StickyNotes') {\n annotType = 'sticky';\n }\n else if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n annotType = 'stamp';\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n annotType = 'freetext';\n }\n else if (annotation.shapeAnnotationType === 'Ink') {\n annotType = 'ink';\n }\n else {\n annotType = 'shape';\n }\n }\n return annotType;\n };\n StickyNotesAnnotation.prototype.setExistingAnnotationModifiedDate = function (date) {\n var modifiedDateTime;\n if (date !== '') {\n modifiedDateTime = this.setModifiedDate(date);\n }\n else {\n modifiedDateTime = this.setModifiedDate();\n }\n return modifiedDateTime;\n };\n StickyNotesAnnotation.prototype.updateModifiedTime = function (time, minutes) {\n var modifiedTime;\n if (time >= 12) {\n if (time === 12) {\n modifiedTime = time + ':' + minutes + ' PM';\n }\n else {\n modifiedTime = (time - 12) + ':' + minutes + ' PM';\n }\n }\n else {\n modifiedTime = time + ':' + minutes + ' AM';\n }\n return modifiedTime;\n };\n StickyNotesAnnotation.prototype.setModifiedDate = function (data) {\n var dateTime;\n if (data) {\n dateTime = this.getDateAndTime(data);\n }\n else {\n dateTime = this.getDateAndTime();\n }\n var date = new Date(dateTime);\n var modifiedTime;\n var modifiedDate = date.toString().split(' ').splice(1, 2).join(' ');\n if (date.toLocaleTimeString().split(' ').length === 2) {\n // eslint-disable-next-line max-len\n modifiedTime = date.toLocaleTimeString().split(' ')[0].split(':').splice(0, 2).join(':') + ' ' + date.toLocaleTimeString().split(' ')[1];\n }\n else {\n // eslint-disable-next-line\n var time = parseInt(date.toLocaleTimeString().split(':')[0]);\n var minutes = date.toLocaleTimeString().split(':')[1];\n modifiedTime = this.updateModifiedTime(time, minutes);\n }\n var modifiedDateTime = modifiedDate + ', ' + modifiedTime;\n return modifiedDateTime;\n };\n StickyNotesAnnotation.prototype.convertUTCDateToLocalDate = function (date) {\n var dateTime = new Date(Date.parse(date));\n this.globalize = new Internationalization(this.pdfViewer.locale);\n var timeValue = dateTime.toLocaleTimeString(this.globalize.culture);\n var newTime;\n if (!isNullOrUndefined(timeValue.split(' ')[1])) {\n newTime = (timeValue.split(':').splice(0, 2).join(':')) + ' ' + timeValue.split(' ')[1];\n }\n else {\n newTime = (timeValue.split(':').splice(0, 2).join(':'));\n }\n var newDate = dateTime.toString().split(' ').splice(1, 2).join(' ');\n var dateTimeValue = newDate + ',' + ' ' + newTime;\n return dateTimeValue;\n };\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateModifiedDate = function (titleContainer) {\n if (titleContainer.id === this.pdfViewer.element.id + '_commenttype_icon') {\n titleContainer = titleContainer.nextSibling;\n }\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setModifiedDate();\n };\n /**\n * @param annotation\n * @param isBounds\n * @param isUndoRedoAction\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateAnnotationModifiedDate = function (annotation, isBounds, isUndoRedoAction) {\n // eslint-disable-next-line\n var titleContainer;\n if (annotation) {\n // eslint-disable-next-line\n var commentsContainer = document.getElementById(annotation.annotName);\n if (commentsContainer) {\n if (!isBounds) {\n titleContainer = commentsContainer.firstChild.firstChild.childNodes[1];\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setModifiedDate();\n }\n else {\n var type = this.findAnnotationType(annotation);\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(annotation.pageIndex, null, type);\n if (pageAnnotations != null && annotation) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotation.annotName === pageAnnotations[i].annotName) {\n // eslint-disable-next-line max-len\n if (annotation.bounds.x !== pageAnnotations[i].bounds.left || annotation.bounds.y !== pageAnnotations[i].bounds.top || annotation.bounds.height !== pageAnnotations[i].bounds.height || annotation.bounds.width !== pageAnnotations[i].bounds.width) {\n titleContainer = commentsContainer.firstChild.firstChild.childNodes[1];\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setModifiedDate();\n }\n }\n if (pageAnnotations[i].shapeAnnotationType === 'sticky') {\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], annotation.pageIndex);\n }\n }\n }\n }\n if (isUndoRedoAction) {\n titleContainer = commentsContainer.firstChild.firstChild.childNodes[1];\n if (annotation.modifiedDate !== undefined) {\n var author = titleContainer.textContent.split('-')[0];\n titleContainer.textContent = author + ' - ' + this.setExistingAnnotationModifiedDate(annotation.modifiedDate);\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.saveImportedStickyNotesAnnotations = function (annotation, pageNumber) {\n var annotationObject = null;\n if (!annotation.Author) {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stickyNotesSettings.author;\n }\n // eslint-disable-next-line max-len\n var isLock = this.pdfViewer.stickyNotesSettings.isLock ? this.pdfViewer.stickyNotesSettings.isLock : this.pdfViewer.annotationSettings.isLock;\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: annotation.Author, allowedInteractions: allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, note: annotation.Note, opacity: annotation.Opacity, state: annotation.State, stateModel: annotation.StateModel,\n pathData: '', comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author }, pageNumber: pageNumber,\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n annotName: annotation.AnnotName, color: annotation.color,\n annotationSelectorSettings: this.getSettings(annotation),\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n annotationSettings: { isLock: isLock }, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_sticky');\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n StickyNotesAnnotation.prototype.updateStickyNotesAnnotationCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var annotationObject = null;\n if (!annotation.Author) {\n // eslint-disable-next-line max-len\n annotation.Author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.stickyNotesSettings.author;\n }\n // eslint-disable-next-line max-len\n var isLock = this.pdfViewer.stickyNotesSettings.isLock ? this.pdfViewer.stickyNotesSettings.isLock : this.pdfViewer.annotationSettings.isLock;\n // eslint-disable-next-line\n var allowedInteractions = annotation.AllowedInteraction ? annotation.AllowedInteraction : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n if (annotation.IsLock) {\n isLock = annotation.isLock;\n }\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: annotation.Author, allowedInteractions: allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, note: annotation.Note, opacity: annotation.Opacity, state: annotation.State, stateModel: annotation.StateModel,\n pathData: '', comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n // eslint-disable-next-line max-len\n bounds: { left: annotation.Bounds.X, top: annotation.Bounds.Y, width: annotation.Bounds.Width, height: annotation.Bounds.Height, right: annotation.Bounds.Right, bottom: annotation.Bounds.Bottom },\n annotationId: annotation.AnnotName, color: annotation.color, pageNumber: pageNumber,\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n annotationSettings: { isLock: isLock }, isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock\n };\n return annotationObject;\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.clear = function () {\n this.commentsCount = 0;\n this.commentsreplyCount = 0;\n this.isAccordionContainer = true;\n this.isEditableElement = false;\n this.isCreateContextMenu = false;\n this.isPageCommentsRendered = false;\n this.isCommentsRendered = false;\n this.isAnnotationRendered = false;\n if (this.commentMenuObj) {\n this.commentMenuObj.destroy();\n }\n // eslint-disable-next-line\n var accordionPages = document.querySelectorAll('.e-pv-accordion-page-container');\n if (accordionPages) {\n for (var j = 0; j < accordionPages.length; j++) {\n // eslint-disable-next-line\n accordionPages[j].remove();\n }\n }\n if (this.commentsRequestHandler) {\n this.commentsRequestHandler.clear();\n }\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.getModuleName = function () {\n return 'StickyNotesAnnotation';\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @returns Object\n * @private\n */\n StickyNotesAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 1, y: 1 }, pageNumber: 0 };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 1, y: 1 };\n else\n offset = annotationObject.offset;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n //Creating annotation settings\n var annotationSelectorSettings = this.pdfViewer.stickyNotesSettings.annotationSelectorSettings ? this.pdfViewer.stickyNotesSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.stickyNotesSettings);\n var allowedInteractions = this.pdfViewer.stickyNotesSettings.allowedInteractions ? this.pdfViewer.stickyNotesSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n //Creating Annotation objects with it's proper properties\n var stickyNotesAnnotation = [];\n var stickyNotes = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'sticky',\n AnnotationFlags: null,\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Bounds: { X: offset.x, Y: offset.y, Width: 30, Height: 30, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: 30, IsEmpty: false, Width: 30 } },\n Color: { IsEmpty: false, B: 51, Blue: 0.2, C: 0, G: 255 },\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n Icon: 'Comment',\n IsCommentLock: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Note: \"\",\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Reference: null,\n Size: { IsEmpty: true, Width: 0, Height: 0 },\n State: \"\",\n StateModel: \"\",\n StrokeColor: null,\n SubType: null,\n Subject: 'Sticky Note',\n Type: null\n };\n //Adding the annotation object to an array and return it\n stickyNotesAnnotation[0] = stickyNotes;\n return { stickyNotesAnnotation: stickyNotesAnnotation };\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.getAnnotationType = function (type) {\n var annotationType;\n if (type === 'stamp' || type === 'Stamp') {\n annotationType = 'stamp';\n }\n else if (type === 'shape' || type === 'Line' || type === 'Radius' || type === 'Rectangle' || type === 'Ellipse'\n || type === 'Polygon' || type === 'LineWidthArrowHead' || type === 'Square' || type === 'Circle') {\n annotationType = 'shape';\n }\n else if (type === 'textMarkup') {\n annotationType = 'textMarkup';\n }\n else if (type === 'freeText' || type === 'FreeText') {\n annotationType = 'freeText';\n }\n else if (type === 'sticky' || type === 'StickyNotes') {\n annotationType = 'sticky';\n }\n else if (type === 'measure' || type === 'shape_measure') {\n annotationType = 'measure';\n }\n else if (type === 'ink' || type === 'Ink') {\n annotationType = 'ink';\n }\n return annotationType;\n };\n /**\n * @private\n */\n StickyNotesAnnotation.prototype.getAuthorName = function (annotation, commonDiv) {\n var author;\n if (annotation) {\n var type = annotation.shapeAnnotationType;\n var annotationType = this.getAnnotationType(type);\n author = this.pdfViewer.annotationModule.updateAnnotationAuthor(annotationType, type);\n }\n else {\n author = commonDiv.getAttribute('author');\n }\n return author;\n };\n return StickyNotesAnnotation;\n}());\nexport { StickyNotesAnnotation };\n","import { splitArrayCollection, processPathData, getPathString } from '@syncfusion/ej2-drawings';\nimport { Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar InkAnnotation = /** @class */ (function () {\n function InkAnnotation(pdfViewer, pdfViewerBase) {\n // eslint-disable-next-line\n this.newObject = [];\n /**\n * @private\n */\n this.outputString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.inkAnnotationindex = [];\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.currentPageNumber = '';\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n InkAnnotation.prototype.drawInk = function () {\n this.pdfViewerBase.disableTextSelectionMode();\n this.pdfViewer.tool = 'Ink';\n };\n InkAnnotation.prototype.drawInkAnnotation = function (pageNumber) {\n if (this.pdfViewerBase.isToolbarInkClicked) {\n this.pdfViewerBase.isInkAdded = true;\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n var pageIndex = !isNaN(pageNumber) ? pageNumber : this.pdfViewerBase.currentPageNumber - 1;\n if (this.outputString && this.outputString !== '') {\n var currentAnnot = this.addInk(pageIndex);\n this.pdfViewer.renderDrawing(undefined, pageIndex);\n this.pdfViewer.clearSelection(pageIndex);\n this.pdfViewer.select([currentAnnot.id], currentAnnot.annotationSelectorSettings);\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode && this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(\"Ink\");\n }\n }\n else {\n this.outputString = '';\n this.newObject = [];\n this.pdfViewerBase.isToolbarInkClicked = false;\n this.pdfViewer.tool = '';\n }\n this.pdfViewerBase.isInkAdded = false;\n }\n };\n /**\n * @private\n */\n InkAnnotation.prototype.storePathData = function () {\n this.convertToPath(this.newObject);\n this.newObject = [];\n };\n /**\n * @param position\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.drawInkInCanvas = function (position, pageIndex) {\n // eslint-disable-next-line\n if (this.currentPageNumber !== '' && parseInt(this.currentPageNumber) !== pageIndex) {\n // eslint-disable-next-line\n this.drawInkAnnotation(parseInt(this.currentPageNumber));\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.tool = 'Ink';\n }\n var zoom = this.pdfViewerBase.getZoomFactor();\n var ratio = this.pdfViewerBase.getWindowDevicePixelRatio();\n ;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n var thickness = this.pdfViewer.inkAnnotationSettings.thickness ? this.pdfViewer.inkAnnotationSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.inkAnnotationSettings.opacity ? this.pdfViewer.inkAnnotationSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.inkAnnotationSettings.strokeColor ? this.pdfViewer.inkAnnotationSettings.strokeColor : '#ff0000';\n if (!Browser.isDevice || (Browser.isDevice && zoom <= 0.7)) {\n context.setTransform(ratio, 0, 0, ratio, 0, 0);\n }\n context.beginPath();\n context.lineJoin = 'round';\n context.lineCap = 'round';\n context.moveTo(position.prevPosition.x, position.prevPosition.y);\n context.lineTo(position.currentPosition.x, position.currentPosition.y);\n context.lineWidth = thickness * zoom > 1 ? thickness * zoom : thickness;\n context.strokeStyle = strokeColor;\n context.globalAlpha = opacity;\n context.stroke();\n // context.lineWidth = 2;\n context.arc(position.prevPosition.x, position.prevPosition.y, 2 / 2, 0, Math.PI * 2, true);\n context.closePath();\n this.pdfViewerBase.prevPosition = position.currentPosition;\n this.newObject.push(position.currentPosition.x, position.currentPosition.y);\n this.currentPageNumber = pageIndex.toString();\n };\n // eslint-disable-next-line\n InkAnnotation.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[n], newObject[n + 1]);\n }\n };\n InkAnnotation.prototype.linePath = function (x, y) {\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y)) {\n this.outputString += 'L' + x + ',' + y + ' ';\n }\n };\n InkAnnotation.prototype.movePath = function (x, y) {\n if (!isNullOrUndefined(x) && !isNullOrUndefined(y)) {\n this.outputString += 'M' + x + ',' + y + ' ';\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.addInk = function (pageNumber) {\n // eslint-disable-next-line\n var currentBounds = this.calculateInkSize();\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot;\n if (this.pdfViewerBase.isToolbarInkClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n var modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var pageIndex = !isNaN(pageNumber) ? pageNumber : this.pdfViewerBase.currentPageNumber - 1;\n var thickness = this.pdfViewer.inkAnnotationSettings.thickness ? this.pdfViewer.inkAnnotationSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.inkAnnotationSettings.opacity ? this.pdfViewer.inkAnnotationSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.inkAnnotationSettings.strokeColor ? this.pdfViewer.inkAnnotationSettings.strokeColor : '#ff0000';\n // eslint-disable-next-line\n var isLock = this.pdfViewer.inkAnnotationSettings.isLock ? this.pdfViewer.inkAnnotationSettings.isLock : this.pdfViewer.annotationSettings.isLock;\n var author = (this.pdfViewer.annotationSettings.author !== 'Guest') ? this.pdfViewer.annotationSettings.author : this.pdfViewer.inkAnnotationSettings.author ? this.pdfViewer.inkAnnotationSettings.author : 'Guest';\n var customData = this.pdfViewer.inkAnnotationSettings.customData;\n var isPrint = this.pdfViewer.inkAnnotationSettings.isPrint;\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.inkAnnotationSettings.allowedInteractions ? this.pdfViewer.inkAnnotationSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.inkAnnotationSettings ? this.pdfViewer.inkAnnotationSettings : this.pdfViewer.annotationSettings;\n annot = {\n // eslint-disable-next-line max-len\n id: 'ink' + this.pdfViewerBase.inkCount, bounds: { x: currentBounds.x, y: currentBounds.y, width: currentBounds.width, height: currentBounds.height }, pageIndex: pageIndex, data: this.outputString, customData: customData,\n shapeAnnotationType: 'Ink', opacity: opacity, strokeColor: strokeColor, thickness: thickness, annotName: annotationName, comments: [],\n author: author, subject: 'Ink', notes: '',\n review: { state: '', stateModel: '', modifiedDate: modifiedDate, author: author },\n annotationSelectorSettings: this.getSelector('Ink', ''), modifiedDate: modifiedDate, annotationSettings: annotationSettings,\n isPrint: isPrint, allowedInteractions: allowedInteractions, isCommentLock: false, isLocked: isLock\n };\n var annotation = this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var bounds = { left: annot.bounds.x, top: annot.bounds.y, width: annot.bounds.width, height: annot.bounds.height };\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height, data: this.outputString\n };\n this.pdfViewerBase.inkCount++;\n // eslint-disable-next-line max-len\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('ink', (annot.pageIndex + 1), annot.shapeAnnotationType);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n annot.annotName = annotationName;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageIndex, null, annotation, 'Addition', '', annotation, annotation);\n this.pdfViewer.annotationModule.storeAnnotations(pageIndex, annot, '_annotations_ink');\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Ink', bounds, settings);\n if (this.pdfViewerBase.isInkAdded) {\n this.outputString = '';\n this.newObject = [];\n }\n this.pdfViewerBase.isToolbarInkClicked = false;\n this.pdfViewer.tool = '';\n }\n return annot;\n };\n /**\n * @private\n */\n InkAnnotation.prototype.setAnnotationMode = function () {\n if (this.pdfViewerBase.isToolbarInkClicked) {\n this.drawInkAnnotation();\n }\n else {\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.drawInk();\n }\n };\n InkAnnotation.prototype.saveInkSignature = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n // eslint-disable-next-line\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.pdfViewerBase.signatureModule.getRgbCode(strokeColorString));\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getInkBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n // eslint-disable-next-line\n var collectionData = processPathData(pageAnnotationObject.annotations[z].data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n pageAnnotationObject.annotations[z].data = JSON.stringify(csData);\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n if (annotationBase) {\n // eslint-disable-next-line\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageInkAnnotations(pageAnnotations, pageNumber);\n }\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.calculateInkSize = function () {\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 var zoomvalue = this.pdfViewerBase.getZoomFactor();\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 // eslint-disable-next-line max-len\n return { x: (minimumX / zoomvalue), y: (minimumY / zoomvalue), width: (newdifferenceX / zoomvalue), height: (newdifferenceY / zoomvalue) };\n };\n /**\n * @param annotationCollection\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.renderExistingInkSignature = function (annotationCollection, pageIndex, isImport, isAnnotOrderAction) {\n var annot;\n var isinkAnnotationAdded = false;\n if (!isImport) {\n for (var p = 0; p < this.inkAnnotationindex.length; p++) {\n if (this.inkAnnotationindex[p] === pageIndex) {\n isinkAnnotationAdded = true;\n break;\n }\n }\n }\n if (annotationCollection && (!isinkAnnotationAdded || isAnnotOrderAction)) {\n if (annotationCollection.length > 0 && this.inkAnnotationindex.indexOf(pageIndex) === -1) {\n this.inkAnnotationindex.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 && data) {\n if (typeof (data) === 'object' && data.length > 1) {\n data = getPathString(data);\n }\n else {\n if (currentAnnotation.IsPathData || (data.split('command').length <= 1)) {\n data = data;\n }\n else {\n data = getPathString(JSON.parse(data));\n }\n }\n }\n this.outputString = data;\n // eslint-disable-next-line\n var calculateInkPosition = this.calculateInkSize();\n this.outputString = '';\n var rectDiff = 0;\n var rectDifference = 1;\n // eslint-disable-next-line\n var bounds = currentAnnotation.Bounds;\n if (calculateInkPosition) {\n if (calculateInkPosition.height < 1) {\n rectDiff = bounds.Height ? bounds.Height : bounds.height;\n rectDifference = bounds.Height ? bounds.Height : bounds.height;\n }\n else if (calculateInkPosition.width < 1) {\n rectDiff = bounds.Width ? bounds.Width : bounds.width;\n rectDifference = bounds.Width ? bounds.Width : bounds.width;\n }\n }\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 var isLock = currentAnnotation.AnnotationSettings ? currentAnnotation.AnnotationSettings.isLock : false;\n // eslint-disable-next-line\n var selectorSettings = currentAnnotation.AnnotationSelectorSettings ? currentAnnotation.AnnotationSelectorSettings : this.getSelector(currentAnnotation, 'Ink');\n var customData = this.pdfViewer.annotation.getCustomData(currentAnnotation);\n var isPrint = true;\n if (currentAnnotation.AnnotationSettings) {\n isPrint = currentAnnotation.AnnotationSettings.isPrint;\n }\n else {\n isPrint = this.pdfViewer.inkAnnotationSettings.isPrint;\n }\n if (currentAnnotation.IsLocked) {\n isLock = currentAnnotation.IsLocked;\n }\n if (currentAnnotation.Subject === 'Highlight' && currentAnnotation.Opacity === 1) {\n currentAnnotation.Opacity = currentAnnotation.Opacity / 2;\n }\n // eslint-disable-next-line max-len\n currentAnnotation.allowedInteractions = currentAnnotation.AllowedInteractions ? currentAnnotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(currentAnnotation);\n annot = {\n // eslint-disable-next-line max-len\n id: 'ink' + this.pdfViewerBase.inkCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n shapeAnnotationType: 'Ink', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, annotName: currentAnnotation.AnnotName,\n // eslint-disable-next-line max-len\n comments: this.pdfViewer.annotationModule.getAnnotationComments(currentAnnotation.Comments, currentAnnotation, currentAnnotation.Author), author: currentAnnotation.Author, allowedInteractions: currentAnnotation.allowedInteractions, subject: currentAnnotation.Subject, modifiedDate: currentAnnotation.ModifiedDate,\n // eslint-disable-next-line max-len\n review: { state: '', stateModel: '', modifiedDate: currentAnnotation.ModifiedDate, author: currentAnnotation.Author }, notes: currentAnnotation.Note, annotationSettings: { isLock: isLock },\n annotationSelectorSettings: selectorSettings, customData: customData, isPrint: isPrint, isCommentLock: currentAnnotation.IsCommentLock\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.pdfViewer.annotationModule.storeAnnotations(annot.pageIndex, annot, '_annotations_ink');\n if (this.isAddAnnotationProgramatically) {\n var settings = {\n opacity: annot.opacity, strokeColor: annot.strokeColor, thickness: annot.thickness, modifiedDate: annot.modifiedDate,\n width: annot.bounds.width, height: annot.bounds.height, data: this.outputString\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'Ink', bounds, settings);\n }\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n this.pdfViewerBase.inkCount++;\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 // To save the imported annotations while downloading or exporting for the page above 10 without a scroll (EJ2-63924)\n /**\n * @private\n */\n InkAnnotation.prototype.saveImportedInkAnnotation = function (annotation, pageNumber) {\n var annotationObject = null;\n var currentBounds = annotation.Bounds;\n var bounds = { x: currentBounds.X, y: currentBounds.Y, width: currentBounds.Width, height: currentBounds.Height };\n var allowedInteractions = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var customData = this.pdfViewer.annotation.getCustomData(annotation);\n var comments = this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author);\n var review = { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author };\n var annotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateAnnotationSettings(annotation);\n var annotationSelectorSettings = this.getSettings(annotation);\n var data = annotation.PathData;\n if (typeof (data) === 'object' && data.length > 1) {\n data = getPathString(data);\n }\n else {\n if (annotation.IsPathData || (data.split('command').length <= 1)) {\n data = data;\n }\n else {\n data = getPathString(JSON.parse(data));\n }\n }\n annotationObject = {\n allowedInteractions: allowedInteractions, annotName: annotation.AnnotName, annotationSelectorSettings: annotationSelectorSettings,\n annotationSettings: annotationSettings, author: annotation.Author, bounds: bounds, customData: customData, comments: comments, data: data,\n id: \"Ink\", isCommentLock: annotation.IsCommentLock, isLocked: annotation.IsLocked, isPrint: annotation.IsPrint, modifiedDate: annotation.ModifiedDate,\n note: annotation.Note, opacity: annotation.Opacity, pageIndex: pageNumber, review: review, shapeAnnotationType: annotation.AnnotationType,\n strokeColor: annotation.StrokeColor, subject: annotation.Subject, thickness: annotation.Thickness\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annotationObject, '_annotations_ink');\n };\n // To get the annotation selector settings \n InkAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else {\n selector = this.getSelector(annotation.ShapeAnnotationType, annotation.Subject);\n }\n return selector;\n };\n /**\n * @param pageNumber\n * @param annotations\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.storeInkSignatureData = function (pageNumber, annotations) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotations.pageIndex, null, annotations, 'Addition', '', annotations, annotations);\n // eslint-disable-next-line\n var annotation = null;\n var left = annotations.bounds.left ? annotations.bounds.left : annotations.bounds.x;\n var top = annotations.bounds.top ? annotations.bounds.top : annotations.bounds.y;\n if (annotations.wrapper && annotations.wrapper.bounds) {\n left = annotations.wrapper.bounds.left;\n top = annotations.wrapper.bounds.top;\n }\n annotation = {\n // eslint-disable-next-line max-len\n id: annotations.id, bounds: { x: left, y: top, width: annotations.bounds.width, height: annotations.bounds.height },\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Ink', opacity: annotations.opacity, thickness: annotations.thickness, strokeColor: annotations.strokeColor, pageIndex: annotations.pageIndex, data: annotations.data,\n annotName: annotations.annotName,\n // eslint-disable-next-line max-len\n comments: annotations.comments, author: annotations.author, subject: annotations.subject, modifiedDate: annotations.modifiedDate,\n // eslint-disable-next-line max-len\n review: { state: '', stateModel: '', modifiedDate: annotations.modifiedDate, author: annotations.author }, notes: annotations.notes,\n annotationSelectorSettings: this.getSelector(annotations, 'Ink'), isCommentLock: annotations.isCommentLock\n };\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n var index = 0;\n if (!storeObject) {\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 window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_ink', annotationStringified);\n }\n else {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_ink');\n var pageIndex = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[pageIndex]) {\n annotObject[pageIndex].annotations.push(annotation);\n index = annotObject[pageIndex].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 window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_ink', annotationStringified);\n }\n };\n InkAnnotation.prototype.getSelector = function (type, subject) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings;\n }\n return selector;\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.modifySignatureInkCollection = function (property, pageNumber, annotationBase) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var currentAnnotObject = null;\n // eslint-disable-next-line\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[i].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { x: annotationBase.wrapper.bounds.left, y: annotationBase.wrapper.bounds.top, width: annotationBase.bounds.width, height: annotationBase.bounds.height };\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'notes') {\n pageAnnotations[i].notes = annotationBase.notes;\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageInkAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n // eslint-disable-next-line\n InkAnnotation.prototype.manageInkAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_ink');\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_ink', annotationStringified);\n }\n };\n /**\n * @param currentAnnotation\n * @param pageIndex\n * @param isImport\n * @param currentAnnotation\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n InkAnnotation.prototype.updateInkCollections = function (currentAnnotation, pageIndex, isImport) {\n // eslint-disable-next-line\n var annot;\n // eslint-disable-next-line\n if (currentAnnotation) {\n // eslint-disable-next-line\n var bounds = currentAnnotation.Bounds;\n var currentLeft = (bounds.X);\n var currentTop = (bounds.Y);\n var currentWidth = (bounds.Width);\n var currentHeight = (bounds.Height);\n var customData = currentAnnotation.customData;\n var isPrint = currentAnnotation.isPrint;\n // eslint-disable-next-line\n var allowedInteractions = currentAnnotation.AllowedInteractions ? currentAnnotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(currentAnnotation);\n // eslint-disable-next-line\n var annotationSettings = currentAnnotation.AnnotationSettings ? currentAnnotation.AnnotationSettings : this.pdfViewer.inkAnnotationSettings ? this.pdfViewer.inkAnnotationSettings : this.pdfViewer.annotationSettings;\n if (currentAnnotation.IsLocked) {\n annotationSettings.isLock = currentAnnotation.IsLocked;\n }\n // eslint-disable-next-line\n var data = currentAnnotation.PathData;\n if (isImport) {\n data = getPathString(JSON.parse(currentAnnotation.PathData));\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'ink' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'Ink', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, annotationId: currentAnnotation.AnnotName,\n // eslint-disable-next-line max-len\n customData: customData, comments: this.pdfViewer.annotationModule.getAnnotationComments(currentAnnotation.Comments, currentAnnotation, currentAnnotation.Author), author: currentAnnotation.Author, allowedInteractions: allowedInteractions, subject: currentAnnotation.Subject, modifiedDate: currentAnnotation.ModifiedDate,\n review: { state: '', stateModel: '', modifiedDate: currentAnnotation.ModifiedDate, author: currentAnnotation.Author }, notes: currentAnnotation.Note, isPrint: isPrint, isCommentLock: currentAnnotation.IsCommentLock, annotationSettings: annotationSettings, isLocked: annotationSettings.isLock\n };\n return annot;\n }\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationObject - It describes type of annotation object\n * @param offset - It describes about the annotation bounds or location\n * @param pageNumber - It describes about the annotation page number\n * @returns Object\n * @private\n */\n InkAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset, pageNumber) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 10, y: 10 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 10, y: 10 };\n else\n offset = annotationObject.offset;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n //Creating annotation settings\n var annotationSelectorSettings = this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings ? this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.inkAnnotationSettings);\n var allowedInteractions = this.pdfViewer.inkAnnotationSettings.allowedInteractions ? this.pdfViewer.inkAnnotationSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationObject.width = annotationObject.width ? annotationObject.width : 150;\n annotationObject.height = annotationObject.height ? annotationObject.height : 60;\n var pathData = annotationObject.path ? annotationObject.path : '';\n if (!isNullOrUndefined(pathData)) {\n // Check whether the given path of the ink annotation is starts with Move path or Line path. \n if (pathData[0] === 'M' || pathData[0] === 'L') {\n var collectionData = processPathData(pathData);\n var csData = splitArrayCollection(collectionData);\n pathData = JSON.stringify(csData);\n }\n else {\n pathData = getPathString(JSON.parse(pathData));\n }\n }\n annotationObject.path = pathData;\n //Creating Annotation objects with it's proper properties\n var signatureInkAnnotation = [];\n var ink = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'ink',\n AnnotationFlags: null,\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n AnnotationType: 'Ink',\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Location: { X: offset.x, Y: offset.y }, Size: { Height: annotationObject.height, IsEmpty: false, Width: annotationObject.width } },\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n IsCommentLock: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: annotationObject.isPrint ? annotationObject.isPrint : true,\n ModifiedDate: '',\n Note: '',\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n PathData: annotationObject.path,\n PageNumber: pageNumber,\n State: '',\n StateModel: '',\n StrokeColor: annotationObject.strokeColor ? annotationObject.strokeColor : 'rgba(255,0,0,1)',\n SubType: null,\n Subject: 'Ink',\n Type: null,\n Thickness: annotationObject.thickness ? annotationObject.thickness : 1\n };\n //Adding the annotation object to an array and return it\n signatureInkAnnotation[0] = ink;\n return { signatureInkAnnotation: signatureInkAnnotation };\n };\n return InkAnnotation;\n}());\nexport { InkAnnotation };\n","/* eslint-disable */\nimport { FontStyle } from './../base/types';\nimport { isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @hidden\n */\nvar FreeTextAnnotation = /** @class */ (function () {\n function FreeTextAnnotation(pdfviewer, pdfViewerBase) {\n /**\n * @private\n */\n this.inputBoxCount = 0;\n /**\n * @private\n */\n this.isFreeTextValueChange = false;\n /**\n * @private\n */\n this.isAddAnnotationProgramatically = false;\n /**\n * @private\n */\n this.isInuptBoxInFocus = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.freeTextPageNumbers = [];\n /**\n * @private\n */\n this.selectedText = '';\n /**\n * @private\n */\n this.isTextSelected = false;\n this.selectionStart = 0;\n this.selectionEnd = 0;\n /**\n * @private\n */\n this.isBold = false;\n /**\n * @private\n */\n this.isItalic = false;\n /**\n * @private\n */\n this.isUnderline = false;\n /**\n * @private\n */\n this.isStrikethrough = false;\n this.isReadonly = false;\n this.isMaximumWidthReached = false;\n this.freeTextPaddingLeft = 4;\n this.freeTextPaddingTop = 5;\n this.defaultFontSize = 16;\n /**\n * @private\n */\n this.previousText = 'Type Here';\n /**\n * @private\n */\n this.currentPosition = [];\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.updateTextProperties();\n this.inputBoxElement = document.createElement('textarea');\n this.inputBoxElement.style.position = 'absolute';\n this.inputBoxElement.style.Width = this.defautWidth;\n this.inputBoxElement.style.Height = this.defaultHeight;\n this.inputBoxElement.style.zIndex = '5';\n this.inputBoxElement.style.fontSize = this.fontSize + 'px';\n this.inputBoxElement.className = 'free-text-input';\n this.inputBoxElement.style.resize = 'none';\n this.inputBoxElement.style.borderColor = this.borderColor;\n this.inputBoxElement.style.background = this.fillColor;\n this.inputBoxElement.style.borderStyle = this.borderStyle;\n this.inputBoxElement.style.borderWidth = this.borderWidth + 'px';\n this.inputBoxElement.style.padding = this.padding;\n this.inputBoxElement.style.paddingLeft = this.freeTextPaddingLeft + 'px';\n this.inputBoxElement.style.paddingTop = this.freeTextPaddingTop * (parseFloat(this.inputBoxElement.style.fontSize) / this.defaultFontSize) + 'px';\n this.inputBoxElement.style.borderRadius = '2px';\n this.inputBoxElement.style.verticalAlign = 'middle';\n this.inputBoxElement.style.fontFamily = this.fontFamily;\n this.inputBoxElement.style.color = this.pdfViewer.freeTextSettings.fontColor ?\n this.pdfViewer.freeTextSettings.fontColor : '#000';\n this.inputBoxElement.style.overflow = 'hidden';\n this.inputBoxElement.style.wordBreak = this.wordBreak;\n this.inputBoxElement.readOnly = this.isReadonly;\n this.inputBoxElement.addEventListener('focusout', this.onFocusOutInputBox.bind(this));\n this.inputBoxElement.addEventListener('keydown', this.onKeyDownInputBox.bind(this));\n this.inputBoxElement.addEventListener('mouseup', this.onMouseUpInputBox.bind(this));\n this.freeTextPageNumbers = [];\n }\n /**\n * @private\n */\n FreeTextAnnotation.prototype.updateTextProperties = function () {\n this.defautWidth = this.pdfViewer.freeTextSettings.width ? this.pdfViewer.freeTextSettings.width : 151;\n this.defaultHeight = this.pdfViewer.freeTextSettings.height ? this.pdfViewer.freeTextSettings.height : 24.6;\n this.borderColor = this.pdfViewer.freeTextSettings.borderColor ? this.pdfViewer.freeTextSettings.borderColor : '#ffffff00';\n this.fillColor = this.pdfViewer.freeTextSettings.fillColor ? this.pdfViewer.freeTextSettings.fillColor : '#fff';\n this.borderStyle = this.pdfViewer.freeTextSettings.borderStyle ? this.pdfViewer.freeTextSettings.borderStyle : 'solid';\n this.borderWidth = this.pdfViewer.freeTextSettings.borderWidth ? this.pdfViewer.freeTextSettings.borderWidth : 1;\n this.fontSize = this.pdfViewer.freeTextSettings.fontSize ? this.pdfViewer.freeTextSettings.fontSize : 16;\n this.opacity = this.pdfViewer.freeTextSettings.opacity ? this.pdfViewer.freeTextSettings.opacity : 1;\n this.fontColor = this.pdfViewer.freeTextSettings.fontColor ? this.pdfViewer.freeTextSettings.fontColor : '#000';\n // eslint-disable-next-line max-len\n this.author = (this.pdfViewer.freeTextSettings.author !== 'Guest') ? this.pdfViewer.freeTextSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n if (!isNullOrUndefined(this.pdfViewer.annotationModule)) {\n if (this.getRgbCode(this.borderColor).a === 0) {\n this.borderWidth = 0;\n }\n }\n if (this.pdfViewer.freeTextSettings.fontFamily) {\n var fontName = this.pdfViewer.freeTextSettings.fontFamily;\n if (fontName === 'Helvetica' || fontName === 'Times New Roman' || fontName === 'Courier' || fontName === 'Symbol' || fontName === 'ZapfDingbats') {\n this.fontFamily = fontName;\n }\n else {\n this.fontFamily = 'Helvetica';\n }\n }\n else {\n this.fontFamily = 'Helvetica';\n }\n this.textAlign = this.pdfViewer.freeTextSettings.textAlignment ? this.pdfViewer.freeTextSettings.textAlignment : 'Left';\n this.defaultText = this.pdfViewer.freeTextSettings.defaultText ? this.pdfViewer.freeTextSettings.defaultText : 'Type here';\n this.isReadonly = false;\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.wordBreak = 'break-all';\n this.padding = '2px';\n }\n else {\n this.padding = '0px';\n this.wordBreak = 'break-word';\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.freeTextSettings.isLock || this.pdfViewer.annotationSettings.isLock || this.pdfViewer.freeTextSettings.isReadonly) {\n this.isReadonly = true;\n }\n if (this.pdfViewer.freeTextSettings.fontStyle === 1) {\n this.isBold = true;\n }\n else if (this.pdfViewer.freeTextSettings.fontStyle === 2) {\n this.isItalic = true;\n }\n else if (this.pdfViewer.freeTextSettings.fontStyle === 4) {\n this.isUnderline = true;\n }\n else if (this.pdfViewer.freeTextSettings.fontStyle === 8) {\n this.isStrikethrough = true;\n }\n else if (3 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isItalic = true;\n }\n else if (5 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isUnderline = true;\n }\n else if (9 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isStrikethrough = true;\n }\n else if (7 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isItalic = true;\n this.isUnderline = true;\n }\n else if (11 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isItalic = true;\n this.isStrikethrough = true;\n }\n else if (14 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isBold = true;\n this.isUnderline = true;\n this.isStrikethrough = true;\n }\n else if (6 === this.pdfViewer.freeTextSettings.fontStyle) {\n this.isUnderline = true;\n this.isItalic = true;\n }\n };\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @param isImportAction\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.renderFreeTextAnnotations = function (shapeAnnotations, pageNumber, isImportAction, isAnnotOrderAction) {\n var isFreeTextAdded = false;\n if (!isImportAction) {\n for (var p = 0; p < this.freeTextPageNumbers.length; p++) {\n if (this.freeTextPageNumbers[p] === pageNumber) {\n isFreeTextAdded = true;\n break;\n }\n }\n }\n if (shapeAnnotations && (!isFreeTextAdded || isAnnotOrderAction)) {\n if (shapeAnnotations.length >= 1) {\n this.freeTextPageNumbers.push(pageNumber);\n for (var i = 0; i < shapeAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations[i];\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n if (annotation.AnnotType) {\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n var annot = void 0;\n var paddingValue = 0.5;\n var annotationBoundsX = !isNullOrUndefined(annotation.Bounds.X) ? annotation.Bounds.X - paddingValue : annotation.Bounds.x;\n var annotationBoundsY = !isNullOrUndefined(annotation.Bounds.Y) ? annotation.Bounds.Y - paddingValue : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n var isAddedProgramatically = annotation.isAddAnnotationProgramatically ? annotation.isAddAnnotationProgramatically : false;\n var rotateValue = this.getRotationValue(pageNumber, isAddedProgramatically);\n var originalRotation = annotation.Rotate;\n var pageRotate = annotation.PageRotation;\n if (Math.sign(annotation.Rotate) === 1) {\n annotation.Rotate = -annotation.Rotate + rotateValue;\n }\n else {\n annotation.Rotate = annotation.Rotate + rotateValue;\n }\n // eslint-disable-next-line\n var rotateAngle = Math.abs(annotation.Rotate);\n if (isImportAction && rotateValue !== pageRotate) {\n if (this.pdfViewerBase.isJsonImported) {\n var pageDetails = this.pdfViewerBase.pageSize[pageNumber];\n var boundsX = annotation.Bounds.X;\n var boundsY = annotation.Bounds.Y;\n var annotationWidth = width;\n var annotationHeight = height;\n if (pageRotate > 0) {\n var rotatation = pageRotate / 90;\n if (rotatation === 1) {\n height = width;\n width = annotation.Bounds.Height;\n annotationBoundsX = annotation.Bounds.Y;\n if (rotateValue !== 270) {\n annotationBoundsY = pageDetails.height - annotation.Bounds.X - annotation.Bounds.Width;\n }\n else {\n annotationBoundsY = pageDetails.width - annotation.Bounds.X - annotation.Bounds.Width;\n }\n }\n else if (rotatation === 2) {\n if (rotateValue !== 270 && rotateValue !== 90) {\n annotationBoundsX = pageDetails.width - annotation.Bounds.X - annotation.Bounds.Width;\n annotationBoundsY = pageDetails.height - annotation.Bounds.Y - annotation.Bounds.Height;\n }\n else {\n annotationBoundsX = pageDetails.height - annotation.Bounds.X - annotation.Bounds.Width;\n annotationBoundsY = pageDetails.width - annotation.Bounds.Y - annotation.Bounds.Height;\n }\n }\n else if (rotatation === 3) {\n height = width;\n width = annotation.Bounds.Height;\n if (rotateValue !== 90) {\n annotationBoundsX = pageDetails.width - annotation.Bounds.Y - width;\n }\n else {\n annotationBoundsX = pageDetails.height - annotation.Bounds.Y - width;\n }\n annotationBoundsY = annotation.Bounds.X;\n }\n boundsX = annotationBoundsX;\n boundsY = annotationBoundsY;\n annotationWidth = width;\n annotationHeight = height;\n }\n rotateAngle = (rotateValue / 90) % 4;\n if (rotateAngle === 1) {\n height = width;\n width = annotationHeight;\n annotationBoundsX = pageDetails.width - boundsY - annotationHeight - paddingValue;\n annotationBoundsY = boundsX - paddingValue;\n rotateAngle = 90;\n }\n else if (rotateAngle === 2) {\n annotationBoundsX = pageDetails.width - boundsX - annotationWidth - paddingValue;\n annotationBoundsY = pageDetails.height - boundsY - annotationHeight - paddingValue;\n rotateAngle = 180;\n }\n else if (rotateAngle === 3) {\n height = width;\n width = annotationHeight;\n annotationBoundsX = boundsY - paddingValue;\n annotationBoundsY = pageDetails.height - boundsX - height - paddingValue;\n rotateAngle = 270;\n }\n else if (rotateAngle === 0) {\n annotationBoundsX = boundsX - paddingValue;\n annotationBoundsY = boundsY - paddingValue;\n }\n }\n }\n if (rotateAngle === 90 || rotateAngle === 270) {\n var rotationHeight = height;\n var rotationWidth = width;\n height = rotationWidth;\n width = rotationHeight;\n annotationBoundsX = (annotationBoundsX - (width / 2)) + (height / 2);\n annotationBoundsY = (annotationBoundsY) + (width / 2 - height / 2);\n }\n // eslint-disable-next-line\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n // eslint-disable-next-line\n annot = {\n author: annotation.Author, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, id: 'freetext' + this.inputBoxCount,\n rotateAngle: annotation.Rotate, dynamicText: annotation.MarkupText, strokeColor: annotation.StrokeColor,\n thickness: annotation.Thickness, fillColor: annotation.FillColor,\n bounds: {\n x: annotationBoundsX, y: annotationBoundsY, left: annotationBoundsX, top: annotationBoundsY,\n width: width, height: height, right: annotation.Bounds.Right,\n bottom: annotation.Bounds.Bottom\n }, annotName: annotation.AnnotName, shapeAnnotationType: 'FreeText',\n // eslint-disable-next-line\n pageIndex: pageNumber, opacity: annotation.Opacity, fontColor: annotation.FontColor, fontSize: annotation.FontSize, pageRotation: rotateValue,\n fontFamily: annotation.FontFamily, notes: annotation.MarkupText, textAlign: annotation.TextAlign,\n // eslint-disable-next-line\n comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author),\n review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n // eslint-disable-next-line max-len\n font: { isBold: annotation.Font.Bold, isItalic: annotation.Font.Italic, isStrikeout: annotation.Font.Strikeout, isUnderline: annotation.Font.Underline },\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings,\n // eslint-disable-next-line\n customData: this.pdfViewer.annotation.getCustomData(annotation), annotationAddMode: annotation.annotationAddMode, allowedInteractions: annotation.allowedInteractions,\n isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isReadonly: annotation.IsReadonly,\n isAddAnnotationProgrammatically: isAddedProgramatically\n };\n if (isImportAction) {\n annot.id = annotation.AnnotName;\n annot.previousFontSize = annotation.FontSize ? annotation.FontSize : this.fontSize;\n }\n var addedAnnot = this.pdfViewer.add(annot);\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annot, '_annotations_freetext');\n if (this.isAddAnnotationProgramatically) {\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'FreeText', annot.bounds, settings);\n }\n this.inputBoxCount += 1;\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;\n this.pdfViewer.nodePropertyChange(addedAnnot, {});\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getSettings = function (annotation) {\n var selector = this.pdfViewer.annotationSelectorSettings;\n if (annotation.AnnotationSelectorSettings) {\n selector = annotation.AnnotationSelectorSettings;\n }\n else if (this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n selector = this.pdfViewer.freeTextSettings.annotationSelectorSettings;\n }\n return selector;\n };\n /**\n * @param type\n * @private\n */\n FreeTextAnnotation.prototype.setAnnotationType = function (type) {\n this.pdfViewerBase.disableTextSelectionMode();\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n switch (type) {\n case 'FreeText':\n this.currentAnnotationMode = 'FreeText';\n this.updateTextProperties();\n // eslint-disable-next-line max-len\n var modifiedDateRect = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.drawingObject = {\n shapeAnnotationType: 'FreeText', strokeColor: this.borderColor,\n fillColor: this.fillColor, opacity: this.opacity, notes: '', isCommentLock: false,\n thickness: this.borderWidth, borderDashArray: '0', modifiedDate: modifiedDateRect,\n // eslint-disable-next-line max-len\n author: this.pdfViewer.freeTextSettings.author, subject: 'Text Box', font: { isBold: this.isBold, isItalic: this.isItalic, isStrikeout: this.isStrikethrough, isUnderline: this.isUnderline }, textAlign: this.textAlign\n };\n this.pdfViewer.tool = 'Select';\n break;\n }\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isNewAdded\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.modifyInCollection = function (property, pageNumber, annotationBase, isNewAdded) {\n if (!isNullOrUndefined(annotationBase.formFieldAnnotationType) && annotationBase.formFieldAnnotationType !== \"\") {\n this.pdfViewer.annotationModule.isFormFieldShape = true;\n }\n else {\n this.pdfViewer.annotationModule.isFormFieldShape = false;\n }\n if (!isNewAdded) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\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[i].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].bounds = { left: annotationBase.bounds.x, top: annotationBase.bounds.y, width: annotationBase.bounds.width, height: annotationBase.bounds.height, right: annotationBase.bounds.right, bottom: annotationBase.bounds.bottom };\n }\n else if (property === 'fill') {\n pageAnnotations[i].fillColor = annotationBase.wrapper.children[0].style.fill;\n }\n else if (property === 'stroke') {\n pageAnnotations[i].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[i].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[i].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'notes') {\n pageAnnotations[i].note = annotationBase.notes;\n }\n else if (property === 'delete') {\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n else if (property === 'dynamicText') {\n if (pageAnnotations[i].dynamicText !== annotationBase.dynamicText) {\n this.pdfViewer.fireCommentEdit(pageAnnotations[i].annotName, annotationBase.dynamicText, pageAnnotations[i]);\n }\n pageAnnotations[i].dynamicText = annotationBase.dynamicText;\n }\n else if (property === 'fontColor') {\n pageAnnotations[i].fontColor = annotationBase.fontColor;\n }\n else if (property === 'fontSize') {\n pageAnnotations[i].fontSize = annotationBase.fontSize;\n }\n else if (property === 'fontFamily') {\n pageAnnotations[i].fontFamily = annotationBase.fontFamily;\n }\n else if (property === 'textPropertiesChange') {\n // eslint-disable-next-line max-len\n pageAnnotations[i].font = { isBold: annotationBase.font.isBold, isItalic: annotationBase.font.isItalic, isStrikeout: annotationBase.font.isStrikeout, isUnderline: annotationBase.font.isUnderline };\n }\n else if (property === 'textAlign') {\n pageAnnotations[i].textAlign = annotationBase.textAlign;\n }\n // eslint-disable-next-line max-len\n pageAnnotations[i].modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.annotationModule.storeAnnotationCollections(pageAnnotations[i], pageNumber);\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param pageNumber\n * @param annotationBase\n * @private\n */\n FreeTextAnnotation.prototype.addInCollection = function (pageNumber, annotationBase) {\n if (annotationBase) {\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations) {\n pageAnnotations.push(annotationBase);\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n };\n /**\n * @private\n */\n FreeTextAnnotation.prototype.saveFreeTextAnnotations = function () {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'];\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[j] = [];\n }\n if (storeObject && !this.pdfViewer.annotationSettings.skipDownload) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[i];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n this.pdfViewer.annotationModule.updateModifiedDate(pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = this.getBoundsBasedOnRotation(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.annotations[z].rotateAngle, pageAnnotationObject.pageIndex, pageAnnotationObject.annotations[z]);\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[z].bounds, pageAnnotationObject.pageIndex));\n var strokeColorString = pageAnnotationObject.annotations[z].strokeColor;\n pageAnnotationObject.annotations[z].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n var fillColorString = pageAnnotationObject.annotations[z].fillColor;\n pageAnnotationObject.annotations[z].fillColor = JSON.stringify(this.getRgbCode(fillColorString));\n var fontColorString = pageAnnotationObject.annotations[z].fontColor;\n pageAnnotationObject.annotations[z].fontColor = JSON.stringify(this.getRgbCode(fontColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].vertexPoints = JSON.stringify(pageAnnotationObject.annotations[z].vertexPoints);\n if (pageAnnotationObject.annotations[z].rectangleDifference !== null) {\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[z].rectangleDifference = JSON.stringify(pageAnnotationObject.annotations[z].rectangleDifference);\n }\n pageAnnotationObject.annotations[z].padding = this.getPaddingValues(this.fontSize);\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getRotationValue = function (pageIndex, isAddedProgrammatically) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (!isNullOrUndefined(isAddedProgrammatically) && isAddedProgrammatically) {\n return 0;\n }\n else {\n if (pageDetails.rotation === 0) {\n return 0;\n }\n else if (pageDetails.rotation === 1) {\n return 90;\n }\n else if (pageDetails.rotation === 2) {\n return 180;\n }\n else if (pageDetails.rotation === 3) {\n return 270;\n }\n return 0;\n }\n };\n FreeTextAnnotation.prototype.getBoundsBasedOnRotation = function (bounds, rotateAngle, pageIndex, annotation, isAddedProgrammatically) {\n var rotateValue = this.getRotationValue(pageIndex, isAddedProgrammatically);\n var paddingValue = 0.5;\n annotation.rotateAngle = rotateAngle - rotateValue;\n annotation.pageRotation = rotateValue;\n if (rotateAngle === 90 || rotateAngle === -90 || rotateAngle === 270 || rotateAngle === -270) {\n var x = bounds.left + (bounds.width / 2) - (bounds.height / 2);\n var y = bounds.top - (bounds.width / 2 - bounds.height / 2);\n return { x: x + paddingValue, y: y + paddingValue, left: x + paddingValue, top: y + paddingValue, width: bounds.height, height: bounds.width };\n }\n else {\n return { x: bounds.left + paddingValue, y: bounds.top + paddingValue, left: bounds.left + paddingValue, top: bounds.top + paddingValue, width: bounds.width, height: bounds.height };\n }\n };\n FreeTextAnnotation.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n }\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotObject[index].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_freetext', annotationStringified);\n }\n }\n };\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.getRgbCode = function (colorString) {\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 = parseFloat(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseFloat(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseFloat(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseFloat(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.onFocusOutInputBox = function () {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (!this.pdfViewerBase.isFreeTextContextMenu) {\n this.pdfViewer.fireBeforeAddFreeTextAnnotation(this.inputBoxElement.value);\n // eslint-disable-next-line\n var pageIndex = this.inputBoxElement.id && this.inputBoxElement.id.split(\"_freeText_\")[1] && this.inputBoxElement.id.split(\"_freeText_\")[1].split(\"_\")[0] ? parseFloat(this.inputBoxElement.id.split(\"_freeText_\")[1].split(\"_\")[0]) : this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var width = parseFloat(this.inputBoxElement.style.width);\n var padding = parseFloat(this.inputBoxElement.style.paddingLeft);\n if (this.pdfViewer.freeTextSettings.enableAutoFit && !this.isMaximumWidthReached && !this.isNewFreeTextAnnot) {\n var fontsize = parseFloat(this.inputBoxElement.style.fontSize);\n this.inputBoxElement.style.width = ((width + padding) - fontsize) + 'px';\n }\n if (this.pdfViewer.freeTextSettings.enableAutoFit && !this.isMaximumWidthReached && this.isNewFreeTextAnnot) {\n width = parseFloat(this.inputBoxElement.style.width);\n var characterLength = 8;\n this.inputBoxElement.style.width = (width - characterLength) + 'px';\n }\n var inputEleHeight = parseFloat(this.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n var inputEleLeft = parseFloat(this.inputBoxElement.style.left);\n if (this.pdfViewerBase.isMixedSizeDocument) {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n inputEleLeft = inputEleLeft - canvas.offsetLeft;\n }\n var inputEleTop = parseFloat(this.inputBoxElement.style.top);\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (this.pdfViewer.isValidFreeText) {\n this.inputBoxElement.value = 'Type Here';\n this.pdfViewer.isValidFreeText = false;\n }\n var inputValue = this.inputBoxElement.value;\n var isNewlyAdded = false;\n if (this.isNewFreeTextAnnot === true) {\n // eslint-disable-next-line max-len\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.isNewFreeTextAnnot = false;\n isNewlyAdded = true;\n var annot = void 0;\n var commentsDivid = this.pdfViewer.annotation.stickyNotesAnnotationModule.addComments('freeText', pageIndex + 1);\n if (commentsDivid) {\n document.getElementById(commentsDivid).id = annotationName;\n }\n // eslint-disable-next-line\n var annotationSelectorSettings = this.pdfViewer.freeTextSettings.annotationSelectorSettings ? this.pdfViewer.freeTextSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n // eslint-disable-next-line\n this.author = this.author ? this.author : this.pdfViewer.freeTextSettings.author ? this.pdfViewer.freeTextSettings.author : 'Guest';\n // eslint-disable-next-line\n var allowedInteractions = this.pdfViewer.freeTextSettings.allowedInteractions ? this.pdfViewer.freeTextSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n // eslint-disable-next-line\n annot = {\n author: this.author, modifiedDate: currentDateString, subject: 'Text Box', id: 'free_text' + this.inputBoxCount,\n // eslint-disable-next-line max-len\n rotateAngle: 0, dynamicText: inputValue, strokeColor: this.borderColor, thickness: this.borderWidth, fillColor: this.fillColor,\n bounds: {\n left: inputEleLeft / zoomFactor, top: inputEleTop / zoomFactor, x: inputEleLeft / zoomFactor,\n y: inputEleTop / zoomFactor, width: inputEleWidth / zoomFactor, height: inputEleHeight / zoomFactor\n }, annotName: annotationName,\n shapeAnnotationType: 'FreeText', pageIndex: pageIndex, fontColor: this.fontColor, fontSize: this.fontSize,\n fontFamily: this.fontFamily, opacity: this.opacity, comments: [], textAlign: this.textAlign,\n // eslint-disable-next-line max-len\n font: { isBold: this.isBold, isItalic: this.isItalic, isStrikeout: this.isStrikethrough, isUnderline: this.isUnderline },\n review: { state: 'Unmarked', stateModel: 'None', modifiedDate: currentDateString, author: this.author },\n // eslint-disable-next-line max-len\n annotationSelectorSettings: annotationSelectorSettings, annotationSettings: annotationSettings,\n customData: this.pdfViewer.annotationModule.getData('FreeText'), isPrint: this.pdfViewer.freeTextSettings.isPrint,\n allowedInteractions: allowedInteractions, isReadonly: this.isReadonly\n };\n if (this.pdfViewer.enableRtl) {\n annot.textAlign = 'Right';\n }\n var annotation = this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var bounds = { left: annot.bounds.x, top: annot.bounds.y, width: annot.bounds.width, height: annot.bounds.height };\n // eslint-disable-next-line\n var settings = {\n opacity: annot.opacity, borderColor: annot.strokeColor, borderWidth: annot.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n // eslint-disable-next-line\n fillColor: annot.fillColor, fontSize: annot.fontSize, width: annot.bounds.width, height: annot.bounds.height, fontColor: annot.fontColor, fontFamily: annot.fontFamily, defaultText: annot.dynamicText, fontStyle: annot.font, textAlignment: annot.textAlign\n };\n this.pdfViewer.annotation.storeAnnotations(pageIndex, annot, '_annotations_freetext');\n this.pdfViewer.fireAnnotationAdd(annot.pageIndex, annot.annotName, 'FreeText', bounds, settings);\n this.pdfViewer.fireCommentAdd(annot.annotName, annot.dynamicText, annot);\n // eslint-disable-next-line\n this.pdfViewer.annotation.addAction(pageIndex, null, annot, 'Addition', '', annot, annot);\n this.pdfViewer.renderSelector(annot.pageIndex);\n this.pdfViewer.clearSelection(annot.pageIndex);\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.selectedAnnotation = annotation;\n }\n this.isInuptBoxInFocus = false;\n // eslint-disable-next-line\n if (this.selectedAnnotation && this.pdfViewer.selectedItems.annotations) {\n inputEleWidth = (inputEleWidth / zoomFactor);\n inputEleHeight = (inputEleHeight / zoomFactor);\n var heightDiff = (inputEleHeight - this.selectedAnnotation.bounds.height);\n var y = undefined;\n if (heightDiff > 0) {\n y = this.selectedAnnotation.wrapper.offsetY + (heightDiff / 2);\n y = y > 0 ? y : undefined;\n }\n var widthDiff = (inputEleWidth - this.selectedAnnotation.bounds.width);\n var x = undefined;\n if (widthDiff > 0) {\n x = this.selectedAnnotation.wrapper.offsetX + (widthDiff / 2);\n x = x > 0 ? x : undefined;\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x = this.selectedAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n this.selectedAnnotation.bounds.width = inputEleWidth;\n this.selectedAnnotation.bounds.height = inputEleHeight;\n var lineSpace = 0;\n lineSpace = ((parseFloat(this.inputBoxElement.style.fontSize) / zoomFactor) / (this.defaultFontSize / 2));\n this.selectedAnnotation.wrapper.children[1].margin.left = this.freeTextPaddingLeft;\n this.selectedAnnotation.wrapper.children[1].margin.top = ((parseFloat(this.inputBoxElement.style.paddingTop) / zoomFactor)) + lineSpace;\n this.pdfViewer.annotation.modifyDynamicTextValue(inputValue, this.selectedAnnotation.annotName);\n this.selectedAnnotation.dynamicText = inputValue;\n this.modifyInCollection('dynamicText', pageIndex, this.selectedAnnotation, isNewlyAdded);\n this.modifyInCollection('bounds', pageIndex, this.selectedAnnotation, isNewlyAdded);\n // eslint-disable-next-line\n this.pdfViewer.nodePropertyChange(this.selectedAnnotation, { bounds: { width: this.selectedAnnotation.bounds.width, height: this.selectedAnnotation.bounds.height, y: y, x: x } });\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(this.selectedAnnotation.annotName);\n if (commentsDiv && commentsDiv.childNodes) {\n if (commentsDiv.childNodes[0].ej2_instances) {\n commentsDiv.childNodes[0].ej2_instances[0].value = inputValue;\n }\n else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {\n commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = inputValue;\n }\n }\n this.pdfViewer.renderSelector(this.selectedAnnotation.pageIndex, this.selectedAnnotation.annotationSelectorSettings);\n }\n if (this.inputBoxElement.parentElement) {\n if (pageDiv && (pageDiv.id === this.inputBoxElement.parentElement.id)) {\n pageDiv.removeChild(this.inputBoxElement);\n }\n else {\n this.inputBoxElement.parentElement.removeChild(this.inputBoxElement);\n }\n }\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, pageIndex);\n this.inputBoxCount += 1;\n }\n else {\n this.inputBoxElement.focus();\n if (!this.isTextSelected) {\n window.getSelection().removeAllRanges();\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @param event\n * @private\n */\n FreeTextAnnotation.prototype.onKeyDownInputBox = function (event) {\n var inuptEleObj = this;\n if (event.which === 9 || (isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0]) && !this.isNewFreeTextAnnot)) {\n event.preventDefault();\n }\n this.selectedAnnotation = this.pdfViewer.selectedItems.annotations && this.isNewFreeTextAnnot ? this.pdfViewer.selectedItems.annotations[0]\n : this.selectedAnnotation;\n setTimeout(function () {\n if (inuptEleObj.defaultHeight < inuptEleObj.inputBoxElement.scrollHeight\n // eslint-disable-next-line radix\n && parseInt(inuptEleObj.inputBoxElement.style.height) < inuptEleObj.inputBoxElement.scrollHeight) {\n inuptEleObj.updateFreeTextAnnotationSize(true);\n }\n else {\n inuptEleObj.updateFreeTextAnnotationSize(false);\n }\n // eslint-disable-next-line\n }, 0);\n };\n FreeTextAnnotation.prototype.updateFreeTextAnnotationSize = function (isSize) {\n var inuptEleObj = this;\n var enableAutoFit = inuptEleObj.pdfViewer.freeTextSettings.enableAutoFit;\n if (enableAutoFit) {\n this.autoFitFreeText();\n }\n else {\n this.isMaximumWidthReached = true;\n }\n if (this.isMaximumWidthReached) {\n // eslint-disable-next-line max-len\n var previousHeight = inuptEleObj.inputBoxElement.getBoundingClientRect().height;\n if (!isSize && !inuptEleObj.inputBoxElement.readOnly) {\n inuptEleObj.inputBoxElement.style.height = 'auto';\n }\n var currentHeight = inuptEleObj.inputBoxElement.getBoundingClientRect().height;\n var difference = currentHeight - previousHeight;\n var fontSize = parseFloat(inuptEleObj.inputBoxElement.style.fontSize);\n // eslint-disable-next-line max-len\n inuptEleObj.inputBoxElement.style.height = inuptEleObj.inputBoxElement.readOnly ? inuptEleObj.inputBoxElement.style.height : inuptEleObj.inputBoxElement.scrollHeight + (fontSize / 2) + 'px';\n inuptEleObj.inputBoxElement.style.height = (difference < 0 && !inuptEleObj.inputBoxElement.readOnly) ? (previousHeight + 'px') : inuptEleObj.inputBoxElement.style.height;\n }\n var zoomFactor = inuptEleObj.pdfViewerBase.getZoomFactor();\n var inputEleHeight = parseFloat(this.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n inputEleHeight = ((inputEleHeight) / zoomFactor);\n inputEleWidth = ((inputEleWidth) / zoomFactor);\n if (this.selectedAnnotation) {\n var heightDiff = (inputEleHeight - inuptEleObj.selectedAnnotation.bounds.height);\n var y = 0;\n if (heightDiff > 0) {\n y = inuptEleObj.selectedAnnotation.wrapper.offsetY + (heightDiff / 2);\n }\n else {\n heightDiff = Math.abs(heightDiff);\n y = inuptEleObj.selectedAnnotation.wrapper.offsetY - (heightDiff / 2);\n }\n if (enableAutoFit) {\n var widthDiff = (inputEleWidth - inuptEleObj.selectedAnnotation.bounds.width);\n var x = 0;\n if (widthDiff > 0) {\n x = inuptEleObj.selectedAnnotation.wrapper.offsetX + (widthDiff / 2);\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x = inuptEleObj.selectedAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n }\n inuptEleObj.selectedAnnotation.bounds.width = inputEleWidth;\n inuptEleObj.selectedAnnotation.bounds.height = inputEleHeight;\n if (enableAutoFit) {\n // eslint-disable-next-line\n inuptEleObj.pdfViewer.nodePropertyChange(inuptEleObj.selectedAnnotation, { bounds: { width: inuptEleObj.selectedAnnotation.bounds.width, height: inuptEleObj.selectedAnnotation.bounds.height, y: y, x: x } });\n }\n else {\n // eslint-disable-next-line\n inuptEleObj.pdfViewer.nodePropertyChange(inuptEleObj.selectedAnnotation, { bounds: { width: inuptEleObj.selectedAnnotation.bounds.width, height: inuptEleObj.selectedAnnotation.bounds.height, y: y } });\n }\n inuptEleObj.pdfViewer.renderSelector(inuptEleObj.selectedAnnotation.pageIndex, this.selectedAnnotation.annotationSelectorSettings);\n }\n };\n /**\n * @param event\n * @private\n */\n FreeTextAnnotation.prototype.autoFitFreeText = function (xPosition, yPosition) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n // eslint-disable-next-line\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var context = canvas.getContext(\"2d\");\n // eslint-disable-next-line\n var fontSize = this.inputBoxElement.style.fontSize;\n if (this.pdfViewer.freeTextSettings.fontStyle === FontStyle.Bold || this.inputBoxElement.style.fontWeight === 'bold') {\n context.font = 'bold' + ' ' + fontSize + ' ' + this.inputBoxElement.style.fontFamily;\n }\n else {\n context.font = fontSize + ' ' + this.inputBoxElement.style.fontFamily;\n }\n var highestTextNode = \"\";\n // eslint-disable-next-line\n var textNodes = [];\n var textboxValue = this.inputBoxElement.value;\n if (textboxValue.indexOf('\\n') > -1) {\n textNodes = textboxValue.split('\\n');\n for (var j = 0; j < textNodes.length; j++) {\n // eslint-disable-next-line\n var textNodeData = context.measureText(textNodes[j]);\n // eslint-disable-next-line\n var highestTextNodeData = context.measureText(highestTextNode);\n if (textNodeData.width > highestTextNodeData.width) {\n highestTextNode = textNodes[j];\n }\n }\n this.isMaximumWidthReached = true;\n }\n else {\n highestTextNode = textboxValue;\n this.isMaximumWidthReached = false;\n }\n // eslint-disable-next-line\n var textwidth = context.measureText(highestTextNode);\n fontSize = parseFloat(this.inputBoxElement.style.fontSize);\n var inputEleWidth;\n var characterLength = 8;\n var inputEleHeight = (fontSize + (fontSize / 2));\n if (this.isNewFreeTextAnnot) {\n inputEleWidth = Math.ceil(textwidth.width + ((characterLength + 1) * 2));\n this.inputBoxElement.style.height = inputEleHeight + 'px';\n this.inputBoxElement.style.top = (yPosition) - (inputEleHeight / 2) + 'px';\n }\n else {\n inputEleWidth = Math.ceil(textwidth.width) + fontSize + Math.ceil(characterLength / 2);\n }\n if (!xPosition) {\n this.inputBoxElement.style.height = inputEleHeight + 'px';\n }\n this.inputBoxElement.style.width = inputEleWidth + 'px';\n var maxWidth = this.pdfViewerBase.getPageWidth(pageIndex) - parseFloat(this.inputBoxElement.style.left);\n if (parseFloat(this.inputBoxElement.style.width) > maxWidth) {\n this.isMaximumWidthReached = true;\n if (this.isNewAddedAnnot && xPosition) {\n inputEleWidth = inputEleWidth - characterLength;\n this.inputBoxElement.style.width = inputEleWidth + 'px';\n var width = xPosition + (inputEleWidth * this.pdfViewerBase.getZoomFactor());\n var x = parseFloat(this.inputBoxElement.style.left);\n if (width >= this.pdfViewerBase.getPageWidth(pageIndex)) {\n x = this.pdfViewerBase.getPageWidth(pageIndex) - inputEleWidth;\n }\n this.inputBoxElement.style.left = x + 'px';\n }\n else {\n this.inputBoxElement.style.width = maxWidth + 'px';\n }\n }\n };\n /**\n * @param event\n * @private\n */\n FreeTextAnnotation.prototype.onMouseUpInputBox = function (event) {\n // eslint-disable-next-line\n var target = event.target;\n this.selectionStart = 0;\n this.selectionEnd = 0;\n if (event.which === 3 && target) {\n this.selectionStart = target.selectionStart;\n this.selectionEnd = target.selectionEnd;\n }\n if (event.which === 3 && window.getSelection() != null && window.getSelection().toString() !== '') {\n this.isTextSelected = true;\n }\n else {\n this.isTextSelected = false;\n }\n };\n /**\n * @param currentPosition\n * @param annotation\n * @param pageIndex\n * @private\n */\n FreeTextAnnotation.prototype.addInuptElemet = function (currentPosition, annotation, pageIndex) {\n if (annotation === void 0) { annotation = null; }\n this.currentPosition = [];\n if (isNullOrUndefined(pageIndex)) {\n pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n }\n if (annotation) {\n pageIndex = annotation.pageIndex;\n }\n if (isBlazor() && annotation === null && this.pdfViewer.selectedItems.annotations.length === 0) {\n this.updateTextProperties();\n }\n this.inputBoxElement.id = this.pdfViewer.element.id + '_freeText_' + pageIndex + '_' + this.inputBoxCount;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n this.inputBoxElement.value = (annotation && annotation.dynamicText) ? annotation.dynamicText : this.defaultText;\n this.inputBoxElement.style.boxSizing = 'border-box';\n this.inputBoxElement.style.left = ((currentPosition.x)) + 'px';\n this.inputBoxElement.style.top = ((currentPosition.y)) - ((this.defaultHeight * zoomFactor) / 2) + 'px';\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.inputBoxElement.style.wordBreak = 'break-all';\n }\n else {\n this.inputBoxElement.style.wordBreak = 'break-word';\n }\n if (annotation) {\n this.applyFreetextStyles(zoomFactor, annotation.isReadonly);\n }\n else {\n this.applyFreetextStyles(zoomFactor);\n }\n if (this.isBold) {\n this.inputBoxElement.style.fontWeight = 'bold';\n }\n else {\n this.inputBoxElement.style.fontWeight = 'normal';\n }\n if (this.isItalic) {\n this.inputBoxElement.style.fontStyle = 'italic';\n }\n else {\n this.inputBoxElement.style.fontStyle = 'normal';\n }\n this.inputBoxElement.style.textDecoration = 'none';\n if (this.isUnderline) {\n this.inputBoxElement.style.textDecoration = 'underline';\n }\n if (this.isStrikethrough) {\n this.inputBoxElement.style.textDecoration = 'line-through';\n }\n if (this.pdfViewer.enableRtl) {\n this.inputBoxElement.style.textAlign = 'right';\n this.inputBoxElement.style.direction = 'rtl';\n this.inputBoxElement.style.left = ((currentPosition.x)) - ((this.defautWidth * zoomFactor / 2));\n }\n else {\n this.inputBoxElement.style.textAlign = this.textAlign.toLowerCase();\n }\n this.inputBoxElement.style.borderColor = this.borderColor;\n this.inputBoxElement.style.color = this.fontColor;\n this.inputBoxElement.style.background = this.fillColor;\n if (annotation && annotation.wrapper && annotation.wrapper.children[0]) {\n this.inputBoxElement.style.opacity = annotation.wrapper.children[0].style.opacity;\n }\n if (this.isNewFreeTextAnnot === true) {\n this.pdfViewer.clearSelection(pageIndex);\n }\n if (annotation && annotation.wrapper && annotation.wrapper.bounds) {\n var annotationBounds = annotation.wrapper.bounds;\n if (annotationBounds.left) {\n this.inputBoxElement.style.left = ((annotationBounds.left) * zoomFactor) + 'px';\n }\n if (annotationBounds.top) {\n this.inputBoxElement.style.top = ((annotationBounds.top) * zoomFactor) + 'px';\n }\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.height = annotationBounds.height ? (annotationBounds.height * zoomFactor) + 'px' : (this.defaultHeight * zoomFactor) + 'px';\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.width = annotationBounds.width ? (annotationBounds.width * zoomFactor) + 'px' : (this.defautWidth * zoomFactor) + 'px';\n this.selectedAnnotation = annotation;\n this.previousText = this.selectedAnnotation.dynamicText;\n this.selectedAnnotation.dynamicText = '';\n this.inputBoxElement.style.borderColor = this.selectedAnnotation.strokeColor;\n this.inputBoxElement.style.color = this.selectedAnnotation.fontColor;\n this.inputBoxElement.style.background = this.selectedAnnotation.fillColor;\n if (this.selectedAnnotation.font.isBold === true) {\n this.inputBoxElement.style.fontWeight = 'bold';\n }\n if (this.selectedAnnotation.font.isItalic === true) {\n this.inputBoxElement.style.fontStyle = 'italic';\n }\n if (this.selectedAnnotation.font.isUnderline === true) {\n this.inputBoxElement.style.textDecoration = 'underline';\n }\n if (this.selectedAnnotation.font.isStrikeout === true) {\n this.inputBoxElement.style.textDecoration = 'line-through';\n }\n if (this.pdfViewer.enableRtl) {\n this.inputBoxElement.style.textAlign = 'right';\n this.inputBoxElement.style.direction = 'rtl';\n }\n else if (this.selectedAnnotation.textAlign) {\n this.inputBoxElement.style.textAlign = this.selectedAnnotation.textAlign;\n }\n this.inputBoxElement.style.fontSize = (this.selectedAnnotation.fontSize * zoomFactor) + 'px';\n this.inputBoxElement.style.fontFamily = this.selectedAnnotation.fontFamily;\n this.pdfViewer.nodePropertyChange(this.selectedAnnotation, {});\n }\n if (this.pdfViewerBase.isMixedSizeDocument) {\n this.inputBoxElement.style.left = (parseFloat(this.inputBoxElement.style.left)) + canvass.offsetLeft + 'px';\n }\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.autoFitFreeText(currentPosition.x, currentPosition.y);\n }\n this.inputBoxElement.style.paddingLeft = (this.freeTextPaddingLeft * zoomFactor) + 'px';\n this.inputBoxElement.style.paddingTop = (this.freeTextPaddingTop * ((parseFloat(this.inputBoxElement.style.fontSize) / zoomFactor) / this.defaultFontSize) / zoomFactor) + 'px';\n var lineSpace = 0;\n lineSpace = ((parseFloat(this.inputBoxElement.style.fontSize) / zoomFactor) / (this.defaultFontSize / 2));\n this.inputBoxElement.style.paddingTop = ((parseFloat(this.inputBoxElement.style.paddingTop)) - lineSpace) + 'px';\n pageDiv.appendChild(this.inputBoxElement);\n // eslint-disable-next-line\n if (!this.pdfViewer.freeTextSettings.enableAutoFit && (this.defaultHeight * zoomFactor) < this.inputBoxElement.scrollHeight && parseInt(this.inputBoxElement.style.height) < this.inputBoxElement.scrollHeight) {\n this.inputBoxElement.style.height = this.inputBoxElement.scrollHeight + 'px';\n }\n this.isInuptBoxInFocus = true;\n this.inputBoxElement.focus();\n if (this.isNewFreeTextAnnot === true || this.inputBoxElement.value === this.defaultText) {\n this.inputBoxElement.select();\n this.pdfViewerBase.isFreeTextSelected = true;\n }\n this.currentPosition.push(parseInt(this.inputBoxElement.style.left) / zoomFactor, parseInt(this.inputBoxElement.style.top) / zoomFactor, parseInt(this.inputBoxElement.style.width) / zoomFactor, parseInt(this.inputBoxElement.style.height) / zoomFactor);\n };\n FreeTextAnnotation.prototype.applyFreetextStyles = function (zoomFactor, isReadonly) {\n this.inputBoxElement.style.height = (this.defaultHeight * zoomFactor) + 'px';\n this.inputBoxElement.style.width = (this.defautWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.borderWidth = (this.borderWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.fontSize = (this.fontSize * zoomFactor) + 'px';\n this.inputBoxElement.style.fontFamily = this.fontFamily;\n this.inputBoxElement.readOnly = isNullOrUndefined(isReadonly) ? this.isReadonly : isReadonly;\n };\n /**\n * @private\n */\n FreeTextAnnotation.prototype.copySelectedText = function () {\n if (window.getSelection() !== null) {\n this.selectedText = window.getSelection().toString();\n var textArea = document.createElement('textarea');\n textArea.contentEditable = 'true';\n textArea.textContent = this.selectedText;\n textArea.style.position = 'fixed';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('copy');\n }\n catch (ex) {\n console.warn('Copy to clipboard failed.', ex);\n }\n finally {\n if (textArea) {\n document.body.removeChild(textArea);\n }\n }\n }\n };\n /**\n * @param target\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.pasteSelectedText = function (target) {\n if (this.selectedText !== '' && target) {\n // eslint-disable-next-line\n var text = target.value;\n target.value = text.slice(0, this.selectionStart) + this.selectedText + text.slice(this.selectionEnd, text.length);\n }\n // eslint-disable-next-line\n var events = event;\n this.onKeyDownInputBox(events);\n };\n /**\n * @param target\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.cutSelectedText = function (target) {\n if (window.getSelection() !== null) {\n // eslint-disable-next-line\n var text = target.value;\n this.selectedText = window.getSelection().toString();\n target.value = text.slice(0, target.selectionStart) + text.slice(target.selectionEnd);\n var textArea = document.createElement('textarea');\n textArea.contentEditable = 'true';\n textArea.textContent = this.selectedText;\n textArea.style.position = 'fixed';\n document.body.appendChild(textArea);\n textArea.select();\n try {\n document.execCommand('cut');\n }\n catch (ex) {\n console.warn('Copy to clipboard failed.', ex);\n }\n finally {\n if (textArea) {\n document.body.removeChild(textArea);\n }\n }\n }\n };\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.saveImportedFreeTextAnnotations = function (shapeAnnotations, pageNumber) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations;\n if (annotation.AnnotType) {\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n var annot = void 0;\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var annotationBoundsX = !isNullOrUndefined(annotation.Bounds.X) ? annotation.Bounds.X : annotation.Bounds.x;\n var annotationBoundsY = !isNullOrUndefined(annotation.Bounds.Y) ? annotation.Bounds.Y : annotation.Bounds.y;\n var annotationBoundsWidth = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var annotationBoundsHeight = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n // eslint-disable-next-line\n annot = {\n author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, id: 'freetext',\n rotateAngle: annotation.Rotate, dynamicText: annotation.MarkupText, strokeColor: annotation.StrokeColor,\n thickness: annotation.Thickness, fillColor: annotation.FillColor,\n bounds: {\n x: annotationBoundsX, y: annotationBoundsY, left: annotationBoundsX, top: annotationBoundsY,\n width: annotationBoundsWidth, height: annotationBoundsHeight, right: annotation.Bounds.Right,\n bottom: annotation.Bounds.Bottom\n }, annotName: annotation.AnnotName, shapeAnnotationType: 'FreeText',\n // eslint-disable-next-line\n pageIndex: pageNumber, opacity: annotation.Opacity, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n fontFamily: annotation.FontFamily, notes: annotation.MarkupText, textAlign: annotation.TextAlign,\n // eslint-disable-next-line\n comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n font: { isBold: annotation.Font.Bold, isItalic: annotation.Font.Italic, isStrikeout: annotation.Font.Strikeout, isUnderline: annotation.Font.Underline },\n annotationSelectorSettings: this.getSettings(annotation), annotationSettings: annotation.AnnotationSettings,\n // eslint-disable-next-line max-len\n customData: this.pdfViewer.annotation.getCustomData(annotation), isPrint: annotation.IsPrint, isCommentLock: annotation.IsCommentLock, isReadonly: annotation.IsReadonly\n };\n this.pdfViewer.annotationModule.storeAnnotations(pageNumber, annot, '_annotations_freetext');\n }\n };\n /**\n * @param shapeAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n FreeTextAnnotation.prototype.updateFreeTextAnnotationCollections = function (shapeAnnotations, pageNumber) {\n // eslint-disable-next-line\n var annotation = shapeAnnotations;\n annotation.annotationAddMode = this.pdfViewer.annotationModule.findAnnotationMode(annotation, pageNumber, annotation.AnnotType);\n if (annotation.AnnotType) {\n var vertexPoints = null;\n if (annotation.VertexPoints) {\n vertexPoints = [];\n for (var j = 0; j < annotation.VertexPoints.length; j++) {\n var point = { x: annotation.VertexPoints[j].X, y: annotation.VertexPoints[j].Y };\n vertexPoints.push(point);\n }\n }\n // eslint-disable-next-line max-len\n annotation.AnnotationSettings = annotation.AnnotationSettings ? annotation.AnnotationSettings : this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n if (annotation.IsLocked) {\n annotation.AnnotationSettings.isLock = annotation.IsLocked;\n }\n // eslint-disable-next-line max-len\n annotation.allowedInteractions = annotation.AllowedInteractions ? annotation.AllowedInteractions : this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var annotationBoundsX = annotation.Bounds.X ? annotation.Bounds.X : annotation.Bounds.x;\n var annotationBoundsY = annotation.Bounds.Y ? annotation.Bounds.Y : annotation.Bounds.y;\n var width = annotation.Bounds.Width ? annotation.Bounds.Width : annotation.Bounds.width;\n var height = annotation.Bounds.Height ? annotation.Bounds.Height : annotation.Bounds.height;\n // eslint-disable-next-line\n var annot = void 0;\n // eslint-disable-next-line\n annot = {\n author: annotation.Author, allowedInteractions: annotation.allowedInteractions, modifiedDate: annotation.ModifiedDate, subject: annotation.Subject, id: 'freetext',\n rotateAngle: annotation.Rotate, dynamicText: annotation.MarkupText, strokeColor: annotation.StrokeColor,\n thickness: annotation.Thickness, fillColor: annotation.FillColor,\n bounds: {\n x: annotationBoundsX, y: annotationBoundsY, left: annotationBoundsX, top: annotationBoundsY,\n width: width, height: height, right: annotation.Bounds.Right,\n bottom: annotation.Bounds.Bottom\n }, annotationId: annotation.AnnotName, shapeAnnotationType: 'FreeText',\n // eslint-disable-next-line\n pageIndex: pageNumber, opacity: annotation.Opacity, fontColor: annotation.FontColor, fontSize: annotation.FontSize,\n fontFamily: annotation.FontFamily, notes: annotation.MarkupText,\n // eslint-disable-next-line\n comments: this.pdfViewer.annotationModule.getAnnotationComments(annotation.Comments, annotation, annotation.Author), review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n customData: this.pdfViewer.annotation.getCustomData(annotation),\n font: { isBold: annotation.Font.Bold, isItalic: annotation.Font.Italic, isStrikeout: annotation.Font.Strikeout, isUnderline: annotation.Font.Underline }, pageNumber: pageNumber, annotationSettings: annotation.AnnotationSettings, isCommentLock: annotation.IsCommentLock, isReadonly: annotation.IsReadonly, isPrint: annotation.IsPrint,\n };\n return annot;\n }\n };\n /**\n * This method used to add annotations with using program.\n *\n * @param annotationType - It describes type of annotation\n * @param offset - It describes about the annotation bounds\n * @returns Object\n * @private\n */\n FreeTextAnnotation.prototype.updateAddAnnotationDetails = function (annotationObject, offset) {\n //Creating new object if annotationObject is null\n if (!annotationObject) {\n annotationObject = { offset: { x: 1, y: 1 }, pageNumber: 0, width: undefined, height: undefined };\n offset = annotationObject.offset;\n }\n else if (!annotationObject.offset)\n offset = { x: 1, y: 1 };\n else\n offset = annotationObject.offset;\n //Creating the CurrentDate and Annotation name\n var currentDateString = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n var annotationName = this.pdfViewer.annotation.createGUID();\n var fontStyle = annotationObject.fontStyle ? annotationObject.fontStyle : FontStyle.None;\n //Creating annotation settings\n var annotationSelectorSettings = this.pdfViewer.freeTextSettings.annotationSelectorSettings ? this.pdfViewer.freeTextSettings.annotationSelectorSettings : this.pdfViewer.annotationSelectorSettings;\n var annotationSettings = this.pdfViewer.annotationModule.updateSettings(this.pdfViewer.freeTextSettings);\n var allowedInteractions = this.pdfViewer.freeTextSettings.allowedInteractions ? this.pdfViewer.freeTextSettings.allowedInteractions : this.pdfViewer.annotationSettings.allowedInteractions;\n annotationSettings.isLock = annotationObject.isLock ? annotationObject.isLock : false;\n annotationSettings.minHeight = annotationObject.minHeight ? annotationObject.minHeight : 0;\n annotationSettings.minWidth = annotationObject.minWidth ? annotationObject.minWidth : 0;\n annotationSettings.maxWidth = annotationObject.maxWidth ? annotationObject.maxWidth : 0;\n annotationSettings.maxHeight = annotationObject.maxHeight ? annotationObject.maxHeight : 0;\n annotationObject.width = annotationObject.width ? annotationObject.width : 150;\n annotationObject.height = annotationObject.height ? annotationObject.height : 24.6;\n //Creating Annotation objects with it's proper properties\n var freeTextAnnotation = [];\n var freeText = {\n AllowedInteractions: annotationObject.allowedInteractions ? annotationObject.allowedInteractions : allowedInteractions,\n AnnotName: annotationName,\n AnnotType: 'freeText',\n AnnotationFlags: 'Default',\n AnnotationIntent: null,\n AnnotationSelectorSettings: annotationObject.annotationSelectorSettings ? annotationObject.annotationSelectorSettings : annotationSelectorSettings,\n AnnotationSettings: annotationSettings,\n Author: annotationObject.author ? annotationObject.author : 'Guest',\n Border: { HorizontalRadius: 0, VerticalRadius: 0, Width: annotationObject.borderWidth ? annotationObject.borderWidth : 1 },\n BorderColor: { IsEmpty: true, B: 255, Blue: 1, C: 0, G: 255 },\n Bounds: { X: offset.x, Y: offset.y, Width: annotationObject.width, Height: annotationObject.height, Left: offset.x, Top: offset.y, Right: offset.x + annotationObject.width, Bottom: offset.y + annotationObject.height },\n CalloutLines: null,\n Color: { IsEmpty: false, B: 51, Blue: 0.2, C: 0, G: 255 },\n Comments: null,\n CreatedDate: currentDateString,\n CustomData: annotationObject.customData ? annotationObject.customData : null,\n ExistingCustomData: null,\n FillColor: annotationObject.fillColor ? annotationObject.fillColor : '#ffffff00',\n Flatten: false,\n FlattenPopups: false,\n Font: { Bold: fontStyle == FontStyle.Bold ? true : false, Italic: fontStyle == FontStyle.Italic ? true : false, Strikeout: fontStyle == FontStyle.Strikethrough ? true : false, Underline: fontStyle == FontStyle.Underline ? true : false },\n FontColor: annotationObject.fontColor ? annotationObject.fontColor : '#000',\n FontFamily: annotationObject.fontFamily ? annotationObject.fontFamily : 'Helvetica',\n FontSize: annotationObject.fontSize ? annotationObject.fontSize : 16,\n FreeTextAnnotationType: 'Text Box',\n InnerColor: null,\n IsCommentLock: false,\n IsLock: annotationObject.isLock ? annotationObject.isLock : false,\n IsPrint: (annotationObject.isPrint !== null && annotationObject.isPrint !== undefined) ? annotationObject.isPrint : true,\n Layer: null,\n LineEndingStyle: 'OpenArrow',\n Location: null,\n MarkupText: annotationObject.defaultText ? annotationObject.defaultText : 'Type Here',\n ModifiedDate: '',\n Name: annotationName,\n Opacity: annotationObject.opacity ? annotationObject.opacity : 1,\n Page: null,\n PageTags: null,\n ReviewHistory: null,\n Rotate: 0,\n IsReadonly: annotationObject.isReadonly ? annotationObject.isReadonly : false,\n State: 'Unmarked',\n StateModel: 'None',\n StrokeColor: annotationObject.borderColor ? annotationObject.borderColor : '#ffffff00',\n Subject: 'Text Box',\n Text: annotationObject.defaultText ? annotationObject.defaultText : 'Type Here',\n TextAlign: annotationObject.textAlignment ? annotationObject.textAlignment : 'Left',\n TextMarkupColor: null,\n Thickness: annotationObject.borderWidth ? annotationObject.borderWidth : 1,\n isAddAnnotationProgramatically: true\n };\n //Adding the annotation object to an array and return it\n freeTextAnnotation[0] = freeText;\n return { freeTextAnnotation: freeTextAnnotation };\n };\n /**\n * This method used to get the padding.\n */\n FreeTextAnnotation.prototype.getPaddingValues = function (fontSize) {\n var leftPadding = 4; // Left padding used in the drawing.js\n var topPadding = 5; // Top padding used in the drawing.js\n var inputBoxpadding = 2; // we have set the input box padding for the free text.\n topPadding = (topPadding - inputBoxpadding) * (fontSize / 16);\n return [leftPadding, topPadding];\n };\n /**\n * @private\n * This method used tp get the current position of x and y.\n */\n FreeTextAnnotation.prototype.addInputInZoom = function (currentPosition) {\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n this.inputBoxElement.style.left = (currentPosition.x * zoomFactor) + 'px';\n this.inputBoxElement.style.top = (currentPosition.y * zoomFactor) + 'px';\n this.inputBoxElement.style.height = (currentPosition.height * zoomFactor) + 'px';\n this.inputBoxElement.style.width = (currentPosition.width * zoomFactor) + 'px';\n this.inputBoxElement.style.borderWidth = (this.borderWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.fontSize = (this.fontSize * zoomFactor) + 'px';\n };\n return FreeTextAnnotation;\n}());\nexport { FreeTextAnnotation };\n","/**\n * @hidden\n */\nvar InputElement = /** @class */ (function () {\n function InputElement(pdfviewer, pdfViewerBase) {\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.inputBoxElement = document.createElement('input');\n this.inputBoxElement.addEventListener('focusout', this.onFocusOutInputBox.bind(this));\n this.maxHeight = 24.6;\n this.maxWidth = 151;\n this.fontSize = 16;\n this.isInFocus = false;\n this.inputBoxElement.style.position = 'absolute';\n this.inputBoxElement.style.fontFamily = 'Helvetica';\n }\n /**\n * @param currentPosition\n * @param annotation\n * @private\n */\n InputElement.prototype.editLabel = function (currentPosition, annotation) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n this.inputBoxElement.value = annotation.labelContent;\n this.inputBoxElement.select();\n annotation.labelContent = '';\n this.pdfViewer.nodePropertyChange(annotation, {});\n this.inputBoxElement.style.left = ((currentPosition.x) * zoomFactor) + 'px';\n this.inputBoxElement.style.top = ((currentPosition.y) * zoomFactor) + 'px';\n this.inputBoxElement.style.maxHeight = (this.maxHeight * zoomFactor) + 'px';\n this.inputBoxElement.style.maxWidth = (this.maxWidth * zoomFactor) + 'px';\n this.inputBoxElement.style.fontSize = (this.fontSize * zoomFactor) + 'px';\n this.inputBoxElement.style.textAlign = 'center';\n if (annotation && annotation.wrapper && annotation.wrapper.bounds) {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.width = annotation.wrapper.bounds.width ? (annotation.wrapper.bounds.width / 2 * zoomFactor) + 1 + 'px' : (this.maxWidth * zoomFactor) + 'px';\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n inputEleWidth = inputEleWidth > (this.maxWidth * zoomFactor) ? (this.maxWidth * zoomFactor) : inputEleWidth;\n if (annotation.wrapper.bounds.left) {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.left = ((annotation.wrapper.bounds.left + (annotation.wrapper.bounds.width / 2) - (inputEleWidth / (zoomFactor * 2))) * zoomFactor) + 'px';\n }\n if (annotation.wrapper.bounds.top) {\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'LineWidthArrowHead' ||\n annotation.shapeAnnotationType === 'Distance' || annotation.shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.top = ((annotation.wrapper.bounds.top + (annotation.wrapper.bounds.height / 2) - (this.maxHeight)) * zoomFactor) + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.inputBoxElement.style.top = ((annotation.wrapper.bounds.top + (annotation.wrapper.bounds.height / 2) - (this.maxHeight / 2)) * zoomFactor) + 'px';\n }\n }\n this.inputBoxElement.maxLength = annotation.labelMaxLength;\n this.inputBoxElement.fontFamily = annotation.fontFamily;\n this.inputBoxElement.style.color = annotation.fontColor;\n this.inputBoxElement.style.border = '1px solid #ffffff00';\n this.inputBoxElement.style.padding = '2px';\n this.inputBoxElement.style.background = annotation.labelFillColor;\n }\n pageDiv.appendChild(this.inputBoxElement);\n this.isInFocus = true;\n this.inputBoxElement.focus();\n };\n /**\n * @private\n */\n InputElement.prototype.onFocusOutInputBox = function () {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (pageIndex));\n var inputEleHeight = parseFloat(this.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(this.inputBoxElement.style.width);\n this.isInFocus = false;\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line\n if (selectedAnnotation) {\n inputEleWidth = ((inputEleWidth - 1) / this.pdfViewerBase.getZoomFactor());\n inputEleHeight = ((inputEleHeight - 1) / this.pdfViewerBase.getZoomFactor());\n // this.pdfViewer.annotation.modifyDynamicTextValue(this.inputBoxElement.value, this.selectedAnnotation.annotName);\n selectedAnnotation.labelContent = this.inputBoxElement.value;\n selectedAnnotation.notes = this.inputBoxElement.value;\n // eslint-disable-next-line max-len\n if (selectedAnnotation.shapeAnnotationType === 'Rectangle' || selectedAnnotation.shapeAnnotationType === 'Ellipse' || selectedAnnotation.shapeAnnotationType === 'Line'\n || selectedAnnotation.shapeAnnotationType === 'LineWidthArrowHead') {\n this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('labelContent', pageIndex, selectedAnnotation);\n }\n else if (selectedAnnotation.shapeAnnotationType === 'Radius' && selectedAnnotation.measureType) {\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('labelContent', pageIndex, selectedAnnotation);\n }\n // eslint-disable-next-line\n this.pdfViewer.nodePropertyChange(selectedAnnotation, {});\n this.pdfViewer.renderSelector(selectedAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv && commentsDiv.childNodes && this.inputBoxElement.value !== 'label') {\n if (commentsDiv.childNodes[0].ej2_instances) {\n commentsDiv.childNodes[0].ej2_instances[0].value = this.inputBoxElement.value;\n }\n else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {\n commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = this.inputBoxElement.value;\n }\n }\n }\n pageDiv.removeChild(this.inputBoxElement);\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, pageIndex);\n };\n /**\n * @param bounds\n * @param pageIndex\n * @param bounds\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n InputElement.prototype.calculateLabelBounds = function (bounds, pageIndex) {\n // eslint-disable-next-line\n var labelBounds = {};\n if (bounds) {\n var labelTop = 0;\n var labelLeft = 0;\n var labelWidth = 0;\n var labelHeight = 24.6;\n var labelMaxWidth = 151;\n if (pageIndex === undefined) {\n pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n }\n var rotation = this.pdfViewerBase.pageSize[pageIndex].rotation;\n if (bounds.width) {\n // eslint-disable-next-line max-len\n labelWidth = (bounds.width / 2);\n labelWidth = (labelWidth > 0 && labelWidth < labelMaxWidth) ? labelWidth : labelMaxWidth;\n }\n if (bounds.left) {\n // eslint-disable-next-line max-len\n labelLeft = (bounds.left + (bounds.width / 2) - (labelWidth / 2));\n }\n if (bounds.top) {\n // eslint-disable-next-line max-len\n labelTop = (bounds.top + (bounds.height / 2) - (labelHeight / 2));\n }\n if (rotation === 1 || rotation === 3) {\n // eslint-disable-next-line max-len\n labelBounds = { left: labelLeft, top: labelTop, width: (labelWidth - labelHeight) + (labelWidth / 2), height: (labelHeight * 2) + labelWidth, right: 0, bottom: 0 };\n }\n else {\n // eslint-disable-next-line max-len\n labelBounds = { left: labelLeft, top: labelTop, width: labelWidth, height: labelHeight, right: 0, bottom: 0 };\n }\n }\n return labelBounds;\n };\n /**\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n InputElement.prototype.calculateLabelBoundsFromLoadedDocument = function (bounds) {\n // eslint-disable-next-line\n var labelBounds = {};\n if (bounds) {\n var labelTop = 0;\n var labelLeft = 0;\n var labelWidth = 0;\n var labelHeight = 24.6;\n var labelMaxWidth = 151;\n if (bounds.Width) {\n // eslint-disable-next-line max-len\n labelWidth = (bounds.Width / 2);\n labelWidth = (labelWidth > 0 && labelWidth < labelMaxWidth) ? labelWidth : labelMaxWidth;\n }\n if (bounds.Left) {\n // eslint-disable-next-line max-len\n labelLeft = (bounds.Left + (bounds.Width / 2) - (labelWidth / 2));\n }\n if (bounds.Top) {\n // eslint-disable-next-line max-len\n labelTop = (bounds.Top + (bounds.Height / 2) - (labelHeight / 2));\n }\n // eslint-disable-next-line max-len\n labelBounds = { left: labelLeft, top: labelTop, width: labelWidth, height: labelHeight, right: 0, bottom: 0 };\n }\n return labelBounds;\n };\n return InputElement;\n}());\nexport { InputElement };\n","import { TextMarkupAnnotation, ShapeAnnotation, StampAnnotation, StickyNotesAnnotation, MeasureAnnotation, InkAnnotation, AllowedInteraction, DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../index';\nimport { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { NumericTextBox, Slider, ColorPicker } from '@syncfusion/ej2-inputs';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { processPathData, splitArrayCollection } from '@syncfusion/ej2-drawings';\nimport { isLineShapes, cloneObject } from '../drawing/drawing-util';\nimport { NodeDrawingTool, LineTool, MoveTool, ResizeTool, ConnectTool } from '../drawing/tools';\nimport { updateDistanceLabel, updateRadiusLabel, updatePerimeterLabel, updateCalibrateLabel } from '../drawing/connector-util';\nimport { FreeTextAnnotation } from './free-text-annotation';\nimport { InputElement } from './input-element';\nimport { InPlaceEditor } from '@syncfusion/ej2-inplace-editor';\n/**\n * The `Annotation` module is used to handle annotation actions of PDF viewer.\n */\nvar Annotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function Annotation(pdfViewer, viewerBase) {\n this.isUndoRedoAction = false;\n this.isUndoAction = false;\n this.annotationSelected = true;\n this.isAnnotDeletionApiCall = false;\n this.removedDocumentAnnotationCollection = [];\n /**\n * @private\n */\n this.isShapeCopied = false;\n /**\n * @private\n */\n this.actionCollection = [];\n /**\n * @private\n */\n this.redoCollection = [];\n /**\n * @private\n */\n this.isPopupNoteVisible = false;\n /**\n * @private\n */\n this.undoCommentsElement = [];\n /**\n * @private\n */\n this.redoCommentsElement = [];\n /**\n * @private\n */\n this.selectAnnotationId = null;\n /**\n * @private\n */\n this.isAnnotationSelected = false;\n /**\n * @private\n */\n this.annotationPageIndex = null;\n this.previousIndex = null;\n // eslint-disable-next-line\n this.overlappedAnnotations = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.overlappedCollections = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isFormFieldShape = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.removedAnnotationCollection = [];\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.textMarkupAnnotationModule = new TextMarkupAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n if (this.pdfViewer.enableShapeAnnotation) {\n this.shapeAnnotationModule = new ShapeAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n if (this.pdfViewer.enableMeasureAnnotation) {\n this.measureAnnotationModule = new MeasureAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n this.stampAnnotationModule = new StampAnnotation(this.pdfViewer, this.pdfViewerBase);\n this.stickyNotesAnnotationModule = new StickyNotesAnnotation(this.pdfViewer, this.pdfViewerBase);\n this.freeTextAnnotationModule = new FreeTextAnnotation(this.pdfViewer, this.pdfViewerBase);\n this.inputElementModule = new InputElement(this.pdfViewer, this.pdfViewerBase);\n this.inkAnnotationModule = new InkAnnotation(this.pdfViewer, this.pdfViewerBase);\n }\n /**\n * Set annotation type to be added in next user interaction in PDF Document.\n *\n * @param type\n * @param dynamicStampItem\n * @param signStampItem\n * @param standardBusinessStampItem\n * @returns void\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.setAnnotationMode = function (type, dynamicStampItem, signStampItem, standardBusinessStampItem) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (this.pdfViewer.tool === \"Stamp\" && this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateStampItems();\n }\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.resetFreeTextAnnot();\n }\n type !== 'None' ? this.triggerAnnotationUnselectEvent() : null;\n this.pdfViewer.tool = \"\";\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.deSelectCommentAnnotation();\n }\n if (type === 'None') {\n this.clearAnnotationMode();\n }\n else if (type === 'Highlight' || type === 'Strikethrough' || type === 'Underline') {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.isSelectionMaintained = false;\n this.textMarkupAnnotationModule.drawTextMarkupAnnotations(type.toString());\n }\n }\n else if (type === 'Line' || type === 'Arrow' || type === 'Rectangle' || type === 'Circle' || type === 'Polygon') {\n if (this.shapeAnnotationModule) {\n this.shapeAnnotationModule.setAnnotationType(type);\n }\n }\n else if (type === 'Distance' || type === 'Perimeter' || type === 'Area' || type === 'Radius' || type === 'Volume') {\n if (this.measureAnnotationModule) {\n this.measureAnnotationModule.setAnnotationType(type);\n }\n }\n else if (type === 'FreeText' && this.freeTextAnnotationModule) {\n this.freeTextAnnotationModule.setAnnotationType('FreeText');\n this.freeTextAnnotationModule.isNewFreeTextAnnot = true;\n this.freeTextAnnotationModule.isNewAddedAnnot = true;\n }\n else if (type === 'HandWrittenSignature') {\n this.pdfViewerBase.signatureModule.setAnnotationMode();\n }\n else if (type === 'Initial') {\n this.pdfViewerBase.signatureModule.setInitialMode();\n }\n else if (type === 'Ink') {\n this.inkAnnotationModule.setAnnotationMode();\n }\n else if (type === 'StickyNotes') {\n this.pdfViewerBase.isCommentIconAdded = true;\n this.pdfViewerBase.isAddComment = true;\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1));\n if (pageDiv) {\n pageDiv.addEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));\n }\n }\n else if (type === 'Stamp') {\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n if (dynamicStampItem) {\n // eslint-disable-next-line\n var stampName = DynamicStampItem[dynamicStampItem];\n this.pdfViewerBase.isDynamicStamp = true;\n this.stampAnnotationModule.retrieveDynamicStampAnnotation(stampName);\n }\n else if (signStampItem) {\n // eslint-disable-next-line\n var stampName = SignStampItem[signStampItem];\n this.pdfViewerBase.isDynamicStamp = false;\n this.stampAnnotationModule.retrievestampAnnotation(stampName);\n }\n else if (standardBusinessStampItem) {\n // eslint-disable-next-line\n var stampName = StandardBusinessStampItem[standardBusinessStampItem];\n this.pdfViewerBase.isDynamicStamp = false;\n this.stampAnnotationModule.retrievestampAnnotation(stampName);\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n this.pdfViewerBase.initiateTextSelection();\n };\n Annotation.prototype.deleteAnnotationById = function (annotationId) {\n if (annotationId) {\n this.isAnnotDeletionApiCall = true;\n this.annotationSelected = false;\n this.selectAnnotation(annotationId);\n this.deleteAnnotation();\n this.isAnnotDeletionApiCall = false;\n }\n };\n Annotation.prototype.clearAnnotationMode = function () {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n if (this.freeTextAnnotationModule) {\n this.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n this.freeTextAnnotationModule.isNewAddedAnnot = false;\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n }\n if (this.pdfViewerBase.isShapeAnnotationModule()) {\n this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode = '';\n }\n if (this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.currentAnnotationMode = '';\n }\n if (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 Annotation.prototype.deleteAnnotation = function () {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.deleteTextMarkupAnnotation();\n }\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n if (selectedAnnotation) {\n var data = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_formfields');\n var formFieldsData = JSON.parse(data);\n var newFormFieldsData = [];\n if (formFieldsData) {\n for (var x = 0; x < formFieldsData.length; x++) {\n if (formFieldsData[x].uniqueID == selectedAnnotation.id) {\n formFieldsData[x].Value = '';\n for (var y = 0; y < formFieldsData.length; y++) {\n if (formFieldsData[y].Name === 'ink') {\n formFieldsData[y].Value = '';\n }\n if (formFieldsData[x].FieldName === formFieldsData[y].FieldName && formFieldsData[y].Name === 'ink') {\n formFieldsData.splice(y, 1);\n }\n }\n newFormFieldsData.push(formFieldsData[x]);\n }\n else {\n newFormFieldsData.push(formFieldsData[x]);\n }\n }\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_formfields', JSON.stringify(newFormFieldsData));\n }\n }\n var isLock = false;\n var isReadOnly = false;\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line\n var annotation_1 = this.pdfViewer.selectedItems.annotations[0];\n var type = annotation_1.shapeAnnotationType;\n if (type === 'Path' || annotation_1.formFieldAnnotationType === 'SignatureField' || annotation_1.formFieldAnnotationType === 'InitialField' || type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') {\n var inputFields = document.getElementById(annotation_1.id);\n if (inputFields && inputFields.disabled) {\n isReadOnly = true;\n }\n }\n if (annotation_1.annotationSettings) {\n isLock = annotation_1.annotationSettings.isLock;\n if (isLock && this.checkAllowedInteractions('Delete', annotation_1)) {\n isLock = false;\n }\n }\n if (!isLock && !isReadOnly) {\n var pageNumber = annotation_1.pageIndex;\n // eslint-disable-next-line\n var shapeType = annotation_1.shapeAnnotationType;\n // eslint-disable-next-line\n var undoElement = void 0;\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n // eslint-disable-next-line max-len\n if (isNullOrUndefined(annotation_1.measureType) || annotation_1.measureType === '') {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'shape');\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'shapeAnnotation');\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'measure');\n // eslint-disable-next-line max-len\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'measureShapeAnnotation');\n }\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n }\n else if (shapeType === 'FreeText') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'FreeText', 'delete');\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'freeTextAnnotation');\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureImage' || shapeType === 'SignatureText') {\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n }\n else if (shapeType === 'Ink') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(annotation_1, 'Ink', 'delete');\n undoElement = this.modifyInCollections(annotation_1, 'delete');\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'signatureInkAnnotation');\n }\n else {\n undoElement = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(undoElement, undoElement.shapeAnnotationType, 'delete');\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(annotation_1, null, 'delete');\n }\n if (shapeType === 'StickyNotes') {\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'stickyNotesAnnotation');\n }\n if (shapeType === 'Stamp' || 'Image') {\n this.updateImportAnnotationCollection(annotation_1, pageNumber, 'stampAnnotations');\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(pageNumber, null, annotation_1, 'Delete', '', undoElement, annotation_1);\n // eslint-disable-next-line\n var removeDiv = void 0;\n if (annotation_1.annotName !== '') {\n removeDiv = document.getElementById(annotation_1.annotName);\n }\n else {\n if (undoElement) {\n if (undoElement.annotName !== '') {\n removeDiv = document.getElementById(undoElement.annotName);\n }\n }\n }\n this.removeCommentPanelDiv(removeDiv);\n var selectedAnnot = this.pdfViewer.selectedItems.annotations[0];\n var annotationId = selectedAnnot.annotName;\n var annotType = this.getAnnotationType(selectedAnnot.shapeAnnotationType, selectedAnnot.measureType);\n if (shapeType === 'Path' || selectedAnnot.formFieldAnnotationType === 'SignatureField' || selectedAnnot.formFieldAnnotationType === 'InitialField' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') { // eslint-disable-next-line\n var formFieldCollection = this.pdfViewer.retrieveFormFields();\n var index = formFieldCollection.findIndex(function (el) { return el.id === annotation_1.id; });\n var formFieldName = void 0;\n if (index > -1) {\n formFieldName = formFieldCollection[index].name;\n }\n for (var m = 0; m < formFieldCollection.length; m++) {\n if (selectedAnnot.id === formFieldCollection[m].id || (isNullOrUndefined(formFieldName) && formFieldName === formFieldCollection[m].name)) {\n formFieldCollection[m].value = '';\n formFieldCollection[m].signatureType = '';\n var annotation_2 = this.getAnnotationsFromCollections(formFieldCollection[m].id);\n this.updateInputFieldDivElement(annotation_2);\n undoElement = this.modifyInCollections(annotation_2, 'delete');\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotation_2.pageIndex, null, annotation_2, 'Delete', '', undoElement, annotation_2);\n if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType)\n this.updateFormFieldCollection(annotation_2);\n else\n this.updateAnnotationCollection(annotation_2);\n this.pdfViewer.remove(annotation_2);\n }\n }\n if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType)\n this.updateFormFieldCollection(annotation_1);\n else\n this.updateAnnotationCollection(annotation_1);\n }\n if (this.pdfViewer.formDesignerModule && selectedAnnot.formFieldAnnotationType)\n this.updateFormFieldCollection(annotation_1);\n else\n this.updateAnnotationCollection(annotation_1);\n var formFieldObj = this.pdfViewer.nameTable[annotation_1.id.split(\"_\")[0]];\n if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {\n var index = this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === annotation_1.id.split(\"_\")[0]; });\n var formFieldName = void 0;\n if (index > -1) {\n formFieldName = this.pdfViewer.formFieldCollections[index].name;\n }\n for (var i = 0; i < this.pdfViewer.formFieldCollections.length; i++) {\n if (formFieldName === this.pdfViewer.formFieldCollections[i].name) {\n var formFieldsIndex = this.pdfViewer.formFieldCollections[i];\n this.pdfViewer.fireFormFieldPropertiesChangeEvent(\"formFieldPropertiesChange\", formFieldsIndex, formFieldsIndex.pageIndex, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, formFieldsIndex.value, \"\");\n formFieldsIndex.value = \"\";\n formFieldsIndex.signatureType = \"\";\n this.pdfViewer.formDesignerModule.updateFormFieldCollections(formFieldsIndex);\n var annotation_3 = this.getAnnotationsFromCollections(formFieldsIndex.id + '_content');\n undoElement = this.modifyInCollections(annotation_3, 'delete');\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotation_3.pageIndex, null, annotation_3, 'Delete', '', undoElement, annotation_3);\n this.updateInputFieldDivElement(annotation_3);\n var formFieldObject = this.pdfViewer.nameTable[annotation_3.id.split(\"_\")[0]];\n formFieldObject.wrapper.children.splice(formFieldObject.wrapper.children.indexOf(annotation_3.wrapper.children[0]), 1);\n this.pdfViewer.remove(annotation_3);\n }\n }\n }\n this.pdfViewer.remove(annotation_1);\n this.pdfViewer.renderDrawing();\n this.pdfViewer.clearSelection(pageNumber);\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n this.pdfViewerBase.tool = null;\n this.pdfViewer.tool = null;\n if (selectedAnnot.shapeAnnotationType === 'HandWrittenSignature' || selectedAnnot.shapeAnnotationType === 'SignatureText' || selectedAnnot.shapeAnnotationType === 'SignatureImage' || selectedAnnot.shapeAnnotationType === 'Path') {\n // eslint-disable-next-line max-len\n var bounds = { left: selectedAnnot.bounds.x, top: selectedAnnot.bounds.y, width: selectedAnnot.bounds.width, height: selectedAnnot.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureRemove(pageNumber, selectedAnnot.id, selectedAnnot.shapeAnnotationType, bounds);\n }\n else if (this.pdfViewer.annotationModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationRemove(pageNumber, annotationId, annotType, selectedAnnot.bounds);\n }\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n }\n }\n this.updateToolbar(true);\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule && !isLock) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(false, true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableTextMarkupAnnotationPropertiesTools(false);\n }\n }\n };\n /**\n * @param annotationId\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.getAnnotationsFromCollections = function (annotationId) {\n var collections = this.pdfViewer.annotations;\n if (collections && annotationId) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].id === annotationId) {\n return collections[i];\n }\n }\n }\n };\n ;\n /**\n * @param annotation\n */\n Annotation.prototype.updateInputFieldDivElement = function (annotation) {\n var inputFields = document.getElementById(annotation.id);\n var signatureFieldElement = document.getElementById(annotation.id + \"_html_element\");\n if (inputFields === null && !isNullOrUndefined(signatureFieldElement)) {\n inputFields = signatureFieldElement.children[0].children[0];\n }\n if (inputFields && inputFields.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n inputFields.className = 'e-pdfviewer-signatureformfields';\n inputFields.style.pointerEvents = '';\n inputFields.parentElement.style.pointerEvents = '';\n if (this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formDesignerModule.updateSignatureValue(annotation.id);\n }\n else {\n this.pdfViewer.formFieldsModule.updateDataInSession(inputFields, '');\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.storeAnnotationCollections = function (annotation, pageNumber) {\n if (this.isFormFieldShape) {\n var collectionDetails = this.checkFormDesignCollection(annotation);\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.formFieldId = annotation.annotName;\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.formFieldCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.formFieldCollection.push(selectAnnotation);\n }\n }\n else {\n // eslint-disable-next-line\n var collectionDetails = this.checkAnnotationCollection(annotation);\n // eslint-disable-next-line\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.annotationId = annotation.annotName;\n selectAnnotation.pageNumber = pageNumber;\n delete selectAnnotation.annotName;\n if (annotation.shapeAnnotationType === 'stamp') {\n selectAnnotation.uniqueKey = annotation.randomId;\n delete selectAnnotation.randomId;\n }\n if (annotation.shapeAnnotationType === 'sticky') {\n selectAnnotation.uniqueKey = annotation.annotName;\n }\n if (annotation.id) {\n selectAnnotation.uniqueKey = annotation.id;\n delete selectAnnotation.id;\n }\n // eslint-disable-next-line\n if (selectAnnotation.customData && annotation.customData && JSON.stringify(selectAnnotation.customData) !== JSON.stringify(annotation.customData)) {\n selectAnnotation.customData = annotation.customData;\n }\n if (collectionDetails.isExisting) {\n this.pdfViewer.annotationCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.annotationCollection.push(selectAnnotation);\n }\n }\n };\n Annotation.prototype.checkFormDesignCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].formFieldId === annotation.annotName) {\n this.pdfViewer.formFieldCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n Annotation.prototype.updateFormFieldCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.formFieldCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].formFieldId === annotation.annotName) {\n this.removedAnnotationCollection.push(collections[i]);\n this.pdfViewer.formFieldCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getCustomData = function (annotation) {\n var customData;\n if (annotation.ExistingCustomData && !annotation.CustomData) {\n customData = JSON.parse(annotation.ExistingCustomData);\n }\n else if (annotation.CustomData === null) {\n if (annotation.shapeAnnotationType === 'sticky') {\n customData = this.pdfViewer.stickyNotesSettings.customData;\n }\n if (annotation.shapeAnnotationType === 'Stamp') {\n customData = this.pdfViewer.stampSettings.customData;\n }\n if (annotation.shapeAnnotationType === 'FreeText') {\n customData = this.pdfViewer.freeTextSettings.customData;\n }\n if (annotation.id === 'shape') {\n customData = this.getShapeData(annotation.ShapeAnnotationType, annotation.subject);\n }\n if (annotation.id === 'measure') {\n customData = this.getMeasureData(annotation.Subject);\n }\n if (annotation.shapeAnnotationType === 'textMarkup') {\n customData = this.getTextMarkupData(annotation.subject);\n }\n if (annotation.shapeAnnotationType === 'Ink') {\n customData = this.pdfViewer.inkAnnotationSettings.customData;\n }\n }\n else {\n customData = annotation.CustomData;\n }\n return customData;\n };\n /**\n * @param type\n * @param subject\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getShapeData = function (type, subject) {\n var customData;\n if (type === 'Line' && subject !== 'Arrow' && this.pdfViewer.lineSettings.customData) {\n customData = this.pdfViewer.lineSettings.customData;\n }\n else if ((type === 'LineWidthArrowHead' || subject === 'Arrow') && this.pdfViewer.arrowSettings.customData) {\n customData = this.pdfViewer.arrowSettings.customData;\n }\n else if ((type === 'Rectangle' || type === 'Square') && this.pdfViewer.rectangleSettings.customData) {\n customData = this.pdfViewer.rectangleSettings.customData;\n }\n else if ((type === 'Ellipse' || type === 'Circle') && this.pdfViewer.circleSettings.customData) {\n customData = this.pdfViewer.circleSettings.customData;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.customData) {\n customData = this.pdfViewer.polygonSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getMeasureData = function (type) {\n var customData;\n if ((type === 'Distance' || type === 'Distance calculation') && this.pdfViewer.distanceSettings.customData) {\n customData = this.pdfViewer.distanceSettings.customData;\n }\n else if ((type === 'Line' || type === 'Perimeter calculation') && this.pdfViewer.lineSettings.customData) {\n customData = this.pdfViewer.lineSettings.customData;\n // eslint-disable-next-line max-len\n }\n else if ((type === 'Polygon' || type === 'Area calculation' || type === 'Volume calculation') && this.pdfViewer.polygonSettings.customData) {\n customData = this.pdfViewer.polygonSettings.customData;\n }\n else if ((type === 'Radius' || type === 'Radius calculation') && this.pdfViewer.radiusSettings.customData) {\n customData = this.pdfViewer.radiusSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getTextMarkupData = function (type) {\n var customData;\n if (type === 'Highlight' && this.pdfViewer.highlightSettings.customData) {\n customData = this.pdfViewer.highlightSettings.customData;\n }\n else if (type === 'Underline' && this.pdfViewer.underlineSettings.customData) {\n customData = this.pdfViewer.underlineSettings.customData;\n }\n else if (type === 'Strikethrough' && this.pdfViewer.strikethroughSettings.customData) {\n customData = this.pdfViewer.strikethroughSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getData = function (type) {\n var customData;\n if (type === 'FreeText' && this.pdfViewer.freeTextSettings.customData) {\n customData = this.pdfViewer.freeTextSettings.customData;\n }\n else if ((type === 'image' || type === 'Stamp') && this.pdfViewer.stampSettings.customData) {\n customData = this.pdfViewer.stampSettings.customData;\n }\n else if (type === 'sticky' && this.pdfViewer.stickyNotesSettings.customData) {\n customData = this.pdfViewer.stickyNotesSettings.customData;\n }\n else if (this.pdfViewer.annotationSettings.customData) {\n customData = this.pdfViewer.annotationSettings.customData;\n }\n return customData;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.clearAnnotationStorage = function () {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 4500;\n if (sessionSize > maxSessionSize) {\n var storageLength = window.sessionStorage.length;\n // eslint-disable-next-line\n var annotationList = [];\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 // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n annotationList.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[i]);\n }\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkAnnotationCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotationCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotationId === annotation.annotName) {\n this.pdfViewer.annotationCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateAnnotationCollection = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotationCollection;\n if (collections && annotation) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotationId === annotation.annotName || collections[i].annotationId === annotation.annotationId) {\n this.removedAnnotationCollection.push(collections[i]);\n this.pdfViewer.annotationCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param annotationType\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateImportAnnotationCollection = function (annotation, pageNumber, annotationType) {\n if (this.pdfViewerBase.isImportAction) {\n if (this.pdfViewerBase.importedAnnotation && this.pdfViewerBase.importedAnnotation[pageNumber]) {\n // eslint-disable-next-line\n var currentPageAnnotations = this.pdfViewerBase.importedAnnotation[pageNumber];\n if (currentPageAnnotations[annotationType]) {\n for (var i = 0; i < currentPageAnnotations[annotationType].length; i++) {\n // eslint-disable-next-line max-len\n if (annotation.annotName === currentPageAnnotations[annotationType][i].AnnotName || annotation.annotName === currentPageAnnotations[annotationType][i].annotName) {\n this.pdfViewerBase.importedAnnotation[pageNumber][annotationType].splice(i, 1);\n break;\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var documentcollections = this.pdfViewerBase.documentAnnotationCollections;\n if (documentcollections && documentcollections[pageNumber]) {\n // eslint-disable-next-line\n var documentPageCollections = documentcollections[pageNumber];\n if (documentPageCollections && documentPageCollections[annotationType]) {\n for (var i = 0; i < documentPageCollections[annotationType].length; i++) {\n // eslint-disable-next-line max-len\n if (annotation.annotName === documentPageCollections[annotationType][i].AnnotName) {\n this.pdfViewerBase.documentAnnotationCollections[pageNumber][annotationType].splice(i, 1);\n break;\n }\n }\n }\n }\n };\n /**\n * Select the annotations using annotation object or annotation Id.\n *\n * @param annotationId\n * @returns void\n */\n Annotation.prototype.selectAnnotation = function (annotationId) {\n // eslint-disable-next-line\n var annotation;\n var id;\n if (typeof annotationId === 'object') {\n annotation = annotationId;\n id = annotation.annotationId;\n annotation = this.getAnnotationsFromAnnotationCollections(id);\n }\n if (typeof annotationId === 'string') {\n annotation = this.getAnnotationsFromAnnotationCollections(annotationId);\n id = annotationId;\n }\n if (annotation) {\n var pageIndex = isNullOrUndefined(annotation.pageNumber) ? annotation.pageIndex : annotation.pageNumber;\n var isRender = false;\n isRender = this.findRenderPageList(pageIndex);\n var currentSelector = this.pdfViewer.annotationSelectorSettings;\n //let pageIndex: number = this.getPageNumberFromAnnotationCollections(annotation);\n if (annotation && pageIndex >= 0) {\n if (annotation.shapeAnnotationType === 'textMarkup') {\n if (annotation.rect || annotation.bounds) {\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + (this.getAnnotationTop(annotation)) * this.pdfViewerBase.getZoomFactor();\n if (!this.isAnnotDeletionApiCall) {\n var scroll_1 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_1);\n this.pdfViewerBase.viewerContainer.scrollLeft = this.getAnnotationLeft(annotation) * this.pdfViewerBase.getZoomFactor();\n }\n }\n else {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n }\n }\n }\n else {\n if (annotation.bounds) {\n // eslint-disable-next-line max-len\n var scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + (annotation.bounds.top) * this.pdfViewerBase.getZoomFactor();\n var scrollLeft = annotation.bounds.left * this.pdfViewerBase.getZoomFactor();\n if (annotation.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n scrollValue = this.pdfViewerBase.pageSize[pageIndex].top * this.pdfViewerBase.getZoomFactor() + (annotation.bounds.y) * this.pdfViewerBase.getZoomFactor();\n scrollLeft = annotation.bounds.x * this.pdfViewerBase.getZoomFactor();\n }\n if (!this.isAnnotDeletionApiCall) {\n var scroll_2 = (scrollValue - 20).toString();\n // eslint-disable-next-line radix\n this.pdfViewerBase.viewerContainer.scrollTop = parseInt(scroll_2);\n this.pdfViewerBase.viewerContainer.scrollLeft = scrollLeft;\n }\n }\n else {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n }\n }\n }\n if (isRender) {\n if (this.previousIndex) {\n this.pdfViewer.clearSelection(this.previousIndex);\n }\n this.pdfViewer.clearSelection(pageIndex);\n this.previousIndex = pageIndex;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageIndex, true);\n // eslint-disable-next-line max-len\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var textMarkupAnnotation = this.getTextMarkupAnnotations(pageIndex, annotation);\n if (textMarkupAnnotation) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.isSelectedAnnotation = true;\n this.textMarkupAnnotationModule.showHideDropletDiv(true);\n this.textMarkupAnnotationModule.annotationClickPosition = null;\n this.textMarkupAnnotationModule.selectAnnotation(textMarkupAnnotation, canvas, pageIndex, null, true);\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = textMarkupAnnotation;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageIndex;\n this.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);\n this.textMarkupAnnotationModule.isSelectedAnnotation = false;\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n else if (annotation.shapeAnnotationType === 'stamp' || annotation.ShapeAnnotationType === 'stamp') {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (annotation.shapeAnnotationType === 'sticky' || annotation.ShapeAnnotationType === 'sticky') {\n this.pdfViewer.select([annotation.annotationId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\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 // 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(id);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n else if (annotation.uniqueKey || (annotation.shapeAnnotationType === \"textMarkup\" && annotation.annotationAddMode === \"Imported Annotation\")) {\n this.selectAnnotationId = id;\n this.isAnnotationSelected = true;\n this.annotationPageIndex = pageIndex;\n this.selectAnnotationFromCodeBehind();\n }\n }\n if (!isRender && !annotation.uniqueKey) {\n var collections = this.updateCollectionForNonRenderedPages(annotation, id, pageIndex);\n collections.pageIndex = pageIndex;\n this.pdfViewer.annotation.addAction(pageIndex, null, collections, 'Delete', '', collections, collections);\n this.undoCommentsElement.push(collections);\n var removeDiv = document.getElementById(annotation.annotationId);\n this.removeCommentPanelDiv(removeDiv);\n }\n }\n };\n // To update the collections for the non-rendered pages.\n Annotation.prototype.updateCollectionForNonRenderedPages = function (annotation, id, pageIndex) {\n var collections;\n var annotationCollection = this.pdfViewer.annotationCollection;\n if (annotationCollection.length) {\n var collectionDetails = annotationCollection.filter(function (annotCollection) {\n return annotCollection.annotationId === id;\n });\n collections = collectionDetails[0];\n this.updateAnnotationCollection(collectionDetails[0]);\n }\n var annotationType = this.getTypeOfAnnotation(annotation);\n var collection = this.pdfViewerBase.documentAnnotationCollections[pageIndex];\n if (collection[annotationType].length) {\n for (var x = 0; x < collection[annotationType].length; x++) {\n if (collection[annotationType][x].AnnotName === annotation.annotationId) {\n var type = collection[annotationType][x];\n this.removedDocumentAnnotationCollection.push(type);\n collection[annotationType].splice(x, 1);\n break;\n }\n }\n }\n return collections;\n };\n // To get the annotation type to update the document Annotation collections\n Annotation.prototype.getTypeOfAnnotation = function (annotation) {\n var annotationType;\n if (annotation.id && annotation.id.toLowerCase() === \"shape\") {\n annotationType = \"shapeAnnotation\";\n }\n else if (annotation.id && annotation.id.toLowerCase() === \"measure\") {\n annotationType = \"measureShapeAnnotation\";\n }\n else if (annotation.id && annotation.id.toLowerCase() === \"freetext\") {\n annotationType = \"freeTextAnnotation\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"textmarkup\") {\n annotationType = \"textMarkupAnnotation\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"stamp\") {\n annotationType = \"stampAnnotations\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"ink\") {\n annotationType = \"signatureInkAnnotation\";\n }\n else if (annotation.shapeAnnotationType && annotation.shapeAnnotationType.toLowerCase() === \"sticky\") {\n annotationType = \"stickyNotesAnnotation\";\n }\n return annotationType;\n };\n // To remove the commnet panel div\n Annotation.prototype.removeCommentPanelDiv = function (removeDiv) {\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.remove();\n }\n }\n };\n /**\n * Clear the annotation selection.\n *\n * @returns void\n */\n Annotation.prototype.clearSelection = function () {\n if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.textMarkupAnnotationModule.clearCurrentSelectedAnnotation();\n this.textMarkupAnnotationModule.clearCurrentAnnotationSelection(this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);\n }\n else {\n if (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations[0]) {\n // eslint-disable-next-line\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n this.pdfViewer.clearSelection(currentAnnotation.pageIndex);\n }\n else {\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationTop = function (annotation) {\n if (annotation.rect) {\n if (annotation.rect.Top) {\n return annotation.rect.Top;\n }\n else {\n return annotation.rect.top;\n }\n }\n else {\n if (annotation.bounds[0].Top) {\n return annotation.bounds[0].Top;\n }\n else {\n return annotation.bounds[0].top;\n }\n }\n };\n /**\n * @param annotation\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationLeft = function (annotation) {\n if (annotation.rect) {\n if (annotation.rect.Left) {\n return annotation.rect.Left;\n }\n else {\n return annotation.rect.left;\n }\n }\n else {\n if (annotation.bounds[0].Left) {\n return annotation.bounds[0].Left;\n }\n else {\n return annotation.bounds[0].left;\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.selectAnnotationFromCodeBehind = function () {\n if (this.isAnnotationSelected && this.selectAnnotationId) {\n // eslint-disable-next-line\n var annotation = this.getAnnotationsFromAnnotationCollections(this.selectAnnotationId);\n var id = this.selectAnnotationId;\n var pageIndex = annotation.pageNumber;\n var currentSelector = this.pdfViewer.annotationSelectorSettings;\n if (annotation && (this.annotationPageIndex >= 0) && this.annotationPageIndex === pageIndex) {\n if (this.previousIndex) {\n this.pdfViewer.clearSelection(this.previousIndex);\n }\n this.pdfViewer.clearSelection(pageIndex);\n this.previousIndex = pageIndex;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(pageIndex, true);\n // eslint-disable-next-line max-len\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageIndex);\n // eslint-disable-next-line\n var textMarkupAnnotation = this.getTextMarkupAnnotations(pageIndex, annotation);\n if (textMarkupAnnotation) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.isSelectedAnnotation = true;\n this.textMarkupAnnotationModule.showHideDropletDiv(true);\n this.textMarkupAnnotationModule.annotationClickPosition = null;\n this.textMarkupAnnotationModule.selectAnnotation(textMarkupAnnotation, canvas, pageIndex);\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = textMarkupAnnotation;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = pageIndex;\n this.textMarkupAnnotationModule.enableAnnotationPropertiesTool(true);\n this.textMarkupAnnotationModule.isSelectedAnnotation = false;\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n }\n }\n else if (annotation.shapeAnnotationType === 'stamp' || annotation.ShapeAnnotationType === 'stamp') {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (annotation.shapeAnnotationType === 'sticky' || annotation.ShapeAnnotationType === 'sticky') {\n this.pdfViewer.select([annotation.annotationId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else if (annotation.uniqueKey) {\n this.pdfViewer.select([annotation.uniqueKey], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n else {\n this.pdfViewer.select([annotation.annotationId], currentSelector);\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\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 // 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(id);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n this.isAnnotationSelected = false;\n this.selectAnnotationId = null;\n this.annotationPageIndex = null;\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n Annotation.prototype.findRenderPageList = function (pageIndex) {\n var isRender = false;\n // eslint-disable-next-line\n var pageList = this.pdfViewerBase.renderedPagesList;\n if (pageList) {\n for (var i = 0; i < pageList.length; i++) {\n if (pageList[i] === pageIndex) {\n isRender = true;\n return isRender;\n }\n }\n }\n return isRender;\n };\n // eslint-disable-next-line\n Annotation.prototype.getPageNumberFromAnnotationCollections = function (annotation) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotations;\n if (annotation) {\n if (annotation.shapeAnnotationType === 'textMarkup') {\n return annotation.pageNumber;\n }\n else {\n if (collections) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotName === annotation.annotationId) {\n return collections[i].pageIndex;\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationsFromAnnotationCollections = function (annotationId) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.annotationCollection;\n if (collections && annotationId) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[i].annotationId === annotationId) {\n return collections[i];\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 0)\n this.pdfViewer.selectedItems.annotations.push(this.pdfViewer.nameTable[annotationId]);\n };\n // eslint-disable-next-line\n Annotation.prototype.getTextMarkupAnnotations = function (pageIndex, annotation) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n // eslint-disable-next-line\n var annotObject = JSON.parse(storeObject);\n var index = this.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n for (var i = 0; i < annotObject[index].annotations.length; i++) {\n if (annotObject[index].annotations[i].annotName === annotation.annotationId) {\n return annotObject[index].annotations[i];\n }\n }\n return null;\n }\n }\n else {\n return null;\n }\n };\n /**\n * @param type\n * @param measureType\n * @param type\n * @param measureType\n * @private\n */\n Annotation.prototype.getAnnotationType = function (type, measureType) {\n var annotType;\n if (measureType === '' || isNullOrUndefined(measureType)) {\n switch (type) {\n case 'Line':\n annotType = 'Line';\n break;\n case 'LineWidthArrowHead':\n annotType = 'Arrow';\n break;\n case 'Rectangle':\n annotType = 'Rectangle';\n break;\n case 'Ellipse':\n annotType = 'Circle';\n break;\n case 'Polygon':\n annotType = 'Polygon';\n break;\n case 'Stamp':\n annotType = 'Stamp';\n break;\n case 'Image':\n annotType = 'Image';\n break;\n case 'FreeText':\n annotType = 'FreeText';\n break;\n case 'Ink':\n annotType = 'Ink';\n break;\n case 'StickyNotes':\n annotType = 'StickyNotes';\n break;\n }\n }\n else {\n switch (measureType) {\n case 'Distance':\n annotType = 'Distance';\n break;\n case 'Perimeter':\n annotType = 'Perimeter';\n break;\n case 'Area':\n annotType = 'Area';\n break;\n case 'Radius':\n annotType = 'Radius';\n break;\n case 'Volume':\n annotType = 'Volume';\n break;\n }\n }\n return annotType;\n };\n /**\n * @param pageNumber\n * @param annotationId\n * @private\n */\n Annotation.prototype.getAnnotationIndex = function (pageNumber, annotationId) {\n var pageAnnotationBases = this.pdfViewer.drawing.getPageObjects(pageNumber);\n var index = null;\n for (var i = 0; i < pageAnnotationBases.length; i++) {\n if (pageAnnotationBases[i].id === annotationId) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * @private\n */\n Annotation.prototype.initializeCollection = function () {\n this.actionCollection = [];\n this.redoCollection = [];\n this.pdfViewerBase.customStampCollection = [];\n if (!this.popupNote) {\n this.createNote();\n }\n };\n /**\n * @private\n */\n Annotation.prototype.showCommentsPanel = function () {\n if (this.pdfViewer.enableCommentPanel) {\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel) {\n if (commentPanel.style.display === 'none') {\n commentPanel.style.display = 'block';\n if (Browser.isDevice && !isBlazor()) {\n // eslint:disable-next-line\n var viewer = document.getElementById(this.pdfViewer.element.id + '_viewerMainContainer');\n // eslint:disable-next-line\n viewer.insertBefore(this.pdfViewerBase.navigationPane.commentPanelContainer, this.pdfViewer.toolbarModule.toolbarElement);\n }\n if (this.pdfViewerBase.navigationPane.commentPanelResizer) {\n this.pdfViewerBase.navigationPane.commentPanelResizer.style.display = 'block';\n }\n this.pdfViewerBase.navigationPane.setCommentPanelResizeIconTop();\n this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelTextTop();\n var viewerContainer = document.getElementById(this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(this.pdfViewer.element.id + '_pageViewContainer');\n if (viewerContainer) {\n if (this.pdfViewer.enableRtl) {\n viewerContainer.style.left = this.pdfViewerBase.navigationPane.getViewerContainerRight() + 'px';\n }\n else {\n viewerContainer.style.right = this.pdfViewerBase.navigationPane.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (this.pdfViewer.element.clientWidth - this.pdfViewerBase.navigationPane.getViewerContainerLeft() - this.pdfViewerBase.navigationPane.getViewerContainerRight()) + 'px';\n pageContainer.style.width = (viewerContainer.offsetWidth - this.pdfViewerBase.navigationPane.getViewerContainerScrollbarWidth()) + 'px';\n }\n this.pdfViewerBase.updateZoomValue();\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (Browser.isDevice && !isBlazor()) {\n commentPanel.style.height = this.pdfViewerBase.viewerMainContainer.clientHeight + 'px';\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint:disable-next-line\n var commentDiv = document.getElementById(this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentDiv && commentDiv.lastElementChild.children[1] && commentDiv.lastElementChild.children[1].ej2_instances) {\n commentDiv.lastElementChild.children[1].ej2_instances[0].enableEditMode = true;\n }\n else if (commentDiv && commentDiv.lastElementChild.ej2_instances) {\n commentDiv.lastElementChild.ej2_instances[0].enableEditMode = true;\n commentDiv.lastElementChild.style.display = 'block';\n commentDiv.lastElementChild.children[1] ? commentDiv.lastElementChild.children[1].style.display = 'block' : null;\n }\n }\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'none';\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'none';\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param annotation\n * @param actionString\n * @param property\n * @param node\n * @param redo\n * @param pageNumber\n * @param index\n * @param annotation\n * @param actionString\n * @param property\n * @param node\n * @param redo\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.addAction = function (\n // eslint-disable-next-line\n pageNumber, index, annotation, actionString, property, node, redo) {\n var action = {\n pageIndex: pageNumber, index: index, annotation: annotation,\n action: actionString, modifiedProperty: property, undoElement: node, redoElement: redo\n };\n this.actionCollection.push(action);\n this.updateToolbar();\n };\n /**\n * @private\n */\n Annotation.prototype.undo = function () {\n var actionObject = this.actionCollection.pop();\n if (actionObject) {\n // eslint-disable-next-line\n var shapeType = actionObject.annotation.shapeAnnotationType;\n this.isUndoRedoAction = true;\n this.isUndoAction = true;\n switch (actionObject.action) {\n case 'Text Markup Added':\n case 'Text Markup Deleted':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n this.textMarkupAnnotationModule.undoTextMarkupAction(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.action);\n }\n break;\n case 'Text Markup Property modified':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n actionObject.annotation = this.textMarkupAnnotationModule.undoRedoPropertyChange(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.modifiedProperty, true);\n }\n break;\n case 'Drag':\n case 'Resize':\n if (isLineShapes(actionObject.annotation)) {\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.undoElement.bounds, vertexPoints: actionObject.undoElement.vertexPoints, leaderHeight: actionObject.undoElement.leaderHeight });\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.undoElement.bounds });\n }\n // eslint-disable-next-line max-len\n if (actionObject.annotation.measureType === 'Distance' || actionObject.annotation.measureType === 'Perimeter' || actionObject.annotation.measureType === 'Area' ||\n actionObject.annotation.measureType === 'Radius' || actionObject.annotation.measureType === 'Volume') {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { notes: actionObject.undoElement.notes });\n this.updateCalibrateValues(actionObject.annotation);\n }\n if (actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.updateHTMLElement(actionObject.annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.select([actionObject.annotation.id]);\n // eslint-disable-next-line max-len\n if (actionObject.annotation.shapeAnnotationType === 'Line' || actionObject.annotation.shapeAnnotationType === 'Rectangle' || actionObject.annotation.shapeAnnotationType === 'Ellipse' || actionObject.annotation.shapeAnnotationType === 'Polygon' || actionObject.annotation.shapeAnnotationType === 'LineWidthArrowHead' ||\n actionObject.annotation.shapeAnnotationType === 'Radius' || actionObject.annotation.shapeAnnotationType === 'FreeText' || actionObject.annotation.shapeAnnotationType === 'HandWrittenSignature' || actionObject.annotation.shapeAnnotationType === 'SignatureText' || actionObject.annotation.shapeAnnotationType === 'SignatureImage' || actionObject.annotation.shapeAnnotationType === 'Ink') {\n this.modifyInCollections(actionObject.annotation, 'bounds');\n }\n break;\n case 'Addition':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.deleteFormField(actionObject.undoElement.id, false);\n }\n else {\n var isAnnotationUpdate = false;\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'shape');\n }\n else {\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, 'measure');\n }\n isAnnotationUpdate = true;\n // eslint-disable-next-line\n var annotationObject = actionObject.annotation;\n // eslint-disable-next-line\n var wrapper = annotationObject.wrapper ? annotationObject.wrapper : null;\n if (wrapper && wrapper.bounds) {\n actionObject.annotation.bounds = wrapper.bounds;\n }\n actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');\n }\n if (shapeType === 'Stamp' || shapeType === 'Image') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete');\n // eslint-disable-next-line max-len\n this.stampAnnotationModule.updateSessionStorage(actionObject.annotation, null, 'delete');\n isAnnotationUpdate = true;\n }\n if (shapeType === 'FreeText' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureImage' || shapeType === 'SignatureText' || shapeType === 'Ink') {\n isAnnotationUpdate = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete');\n actionObject.duplicate = this.modifyInCollections(actionObject.annotation, 'delete');\n }\n if (!isAnnotationUpdate) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, actionObject.annotation.shapeAnnotationType, 'delete');\n }\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.remove(actionObject.annotation);\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line\n var removeDiv = document.getElementById(actionObject.annotation.annotName);\n if (removeDiv) {\n if (removeDiv.parentElement.childElementCount === 1) {\n this.stickyNotesAnnotationModule.updateAccordionContainer(removeDiv);\n }\n else {\n removeDiv.parentElement.removeChild(removeDiv);\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (mobileAnnotationToolbar && mobileAnnotationToolbar.children.length > 0) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbarCreated = false;\n this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();\n }\n }\n }\n break;\n case 'Delete':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n actionObject.undoElement.bounds.x = actionObject.undoElement.wrapper.bounds.x;\n actionObject.undoElement.bounds.y = actionObject.undoElement.wrapper.bounds.y;\n this.pdfViewer.formDesigner.drawFormField(actionObject.undoElement);\n }\n else {\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n shapeType = 'shape';\n this.shapeAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n else {\n shapeType = 'shape_measure';\n this.measureAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n }\n if (shapeType === 'Stamp' || shapeType === 'Image') {\n this.stampAnnotationModule.updateDeleteItems(actionObject.annotation.pageIndex, actionObject.annotation);\n }\n else if (shapeType === 'FreeText') {\n this.freeTextAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n else if (shapeType === 'Ink') {\n this.inkAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {\n this.pdfViewerBase.signatureModule.addInCollection(actionObject.annotation.pageIndex, actionObject.undoElement);\n }\n if (!actionObject.annotation.annotationId) {\n var addedAnnot = this.pdfViewer.add(actionObject.annotation);\n if ((shapeType === 'FreeText' || addedAnnot.enableShapeLabel) && addedAnnot) {\n this.pdfViewer.nodePropertyChange(addedAnnot, {});\n }\n }\n var formFieldObj = void 0;\n if (actionObject.annotation.id) {\n formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n }\n if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {\n formFieldObj.wrapper.children.push(actionObject.annotation.wrapper.children[0]);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.push(actionObject.annotation.wrapper.children[1]);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n }\n else if (actionObject.annotation.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n var collectionData = processPathData(actionObject.annotation.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n }\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(actionObject.annotation.pageIndex, shapeType);\n if (actionObject.annotation.annotationId) {\n var removedAnnotationCollection = this.removedAnnotationCollection[this.removedAnnotationCollection.length - 1];\n var annotationType = this.getTypeOfAnnotation(removedAnnotationCollection);\n this.pdfViewer.annotationCollection.push(removedAnnotationCollection);\n this.removedAnnotationCollection.splice(this.removedAnnotationCollection.length - 1);\n var pageNumber = actionObject.annotation.pageNumber >= 0 ? actionObject.annotation.pageNumber : actionObject.annotation.pageIndex;\n this.pdfViewerBase.documentAnnotationCollections[pageNumber][annotationType].push(this.removedDocumentAnnotationCollection[this.removedDocumentAnnotationCollection.length - 1]);\n this.removedDocumentAnnotationCollection.splice(this.removedDocumentAnnotationCollection.length - 1);\n }\n }\n break;\n case 'stampOpacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.undoElement.opacity });\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n break;\n case 'Shape Stroke':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { strokeColor: actionObject.undoElement.strokeColor });\n this.modifyInCollections(actionObject.annotation, 'stroke');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Fill':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fillColor: actionObject.undoElement.fillColor });\n this.modifyInCollections(actionObject.annotation, 'fill');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Opacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.undoElement.opacity });\n if (actionObject.annotation.shapeAnnotationType === 'StickyNotes') {\n this.stickyNotesAnnotationModule.updateOpacityValue(actionObject.annotation);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n else {\n this.modifyInCollections(actionObject.annotation, 'opacity');\n }\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Thickness':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { thickness: actionObject.undoElement.thickness });\n this.modifyInCollections(actionObject.annotation, 'thickness');\n this.pdfViewer.renderDrawing();\n break;\n case 'Line properties change':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {\n // eslint-disable-next-line max-len\n fillColor: actionObject.undoElement.fillColor, borderDashArray: actionObject.undoElement.borderDashArray, borderStyle: actionObject.undoElement.borderStyle,\n // eslint-disable-next-line max-len\n strokeColor: actionObject.undoElement.strokeColor, opacity: actionObject.undoElement.opacity, thickness: actionObject.undoElement.thickness,\n sourceDecoraterShapes: this.getArrowType(actionObject.undoElement.lineHeadStart), taregetDecoraterShapes: this.getArrowType(actionObject.undoElement.lineHeadEnd)\n });\n this.updateCollectionForLineProperty(actionObject.annotation);\n this.pdfViewer.renderDrawing();\n break;\n case 'Text Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n actionObject.annotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n break;\n case 'Comments Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'Status Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'Comments Reply Deleted':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'dynamicText Change':\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;\n actionObject.annotation.dynamicText = actionObject.undoElement.dynamicText;\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.selectedItems.annotations[0].dynamicText = actionObject.undoElement.dynamicText;\n }\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.undoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n this.modifyInCollections(actionObject.annotation, 'dynamicText');\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], {});\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {});\n }\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n break;\n case 'fontColor':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontColor: actionObject.undoElement.fontColor });\n this.modifyInCollections(actionObject.annotation, 'fontColor');\n this.pdfViewer.renderDrawing();\n break;\n case 'fontSize':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontSize: actionObject.undoElement.fontSize });\n this.modifyInCollections(actionObject.annotation, 'fontSize');\n this.pdfViewer.renderDrawing();\n break;\n case 'fontFamily':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontFamily: actionObject.undoElement.fontFamily });\n this.modifyInCollections(actionObject.annotation, 'fontFamily');\n this.pdfViewer.renderDrawing();\n break;\n case 'textAlign':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { textAlign: actionObject.undoElement.textAlign });\n this.modifyInCollections(actionObject.annotation, 'textAlign');\n this.pdfViewer.renderDrawing();\n break;\n case 'textPropertiesChange':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { font: actionObject.undoElement.font });\n this.modifyInCollections(actionObject.annotation, 'textPropertiesChange');\n this.pdfViewer.renderDrawing();\n break;\n case 'Rotate':\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(actionObject.annotation.annotations[0], { bounds: actionObject.undoElement.bounds, rotateAngle: actionObject.undoElement.rotateAngle });\n this.modifyInCollections(actionObject.annotation.annotations[0], 'bounds');\n this.pdfViewer.renderDrawing();\n break;\n case 'FormDesigner Properties Change':\n if (actionObject.undoElement && actionObject.undoElement.isMultiline !== actionObject.redoElement.isMultiline) {\n this.undoRedoMultiline(actionObject.undoElement);\n }\n this.updateFormFieldPropertiesChanges(actionObject.undoElement.formFieldAnnotationType, actionObject.undoElement);\n break;\n case 'FormField Value Change':\n if (actionObject.annotation.formFieldAnnotationType) {\n if (actionObject.annotation.formFieldAnnotationType == \"RadioButton\") {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.undoElement, false);\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.redoElement, true);\n }\n else {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.annotation, actionObject.undoElement);\n }\n }\n else {\n var spanElement = document.getElementById(actionObject.annotation.id + \"_html_element\").children[0].children[0];\n spanElement.className = 'e-pdfviewer-signatureformfields';\n var formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n var annotationObj = this.pdfViewer.nameTable[actionObject.annotation.id];\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(annotationObj.wrapper.children[0]), 1);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(annotationObj.wrapper.children[1]), 1);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n formFieldsData[i].FormField.value = '';\n formFieldsData[i].FormField.signatureType = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.value = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = '';\n }\n }\n this.pdfViewer.remove(actionObject.annotation);\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n }\n this.redoCollection.push(actionObject);\n this.updateToolbar();\n this.isUndoRedoAction = false;\n this.isUndoAction = false;\n }\n };\n /**\n * @private\n */\n Annotation.prototype.redo = function () {\n var actionObject = this.redoCollection.pop();\n if (actionObject) {\n // eslint-disable-next-line\n var shapeType = actionObject.annotation.shapeAnnotationType;\n this.isUndoRedoAction = true;\n switch (actionObject.action) {\n case 'Text Markup Property modified':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n actionObject.annotation = this.textMarkupAnnotationModule.undoRedoPropertyChange(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.modifiedProperty);\n }\n break;\n case 'Text Markup Added':\n case 'Text Markup Deleted':\n if (this.textMarkupAnnotationModule) {\n // eslint-disable-next-line max-len\n this.textMarkupAnnotationModule.redoTextMarkupAction(actionObject.annotation, actionObject.pageIndex, actionObject.index, actionObject.action);\n }\n break;\n case 'Drag':\n case 'Resize':\n if (isLineShapes(actionObject.annotation)) {\n this.pdfViewer.nodePropertyChange(\n // eslint-disable-next-line max-len\n actionObject.annotation, { bounds: actionObject.redoElement.bounds, vertexPoints: actionObject.redoElement.vertexPoints, leaderHeight: actionObject.redoElement.leaderHeight });\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { bounds: actionObject.redoElement.bounds });\n }\n // eslint-disable-next-line max-len\n if (actionObject.annotation.measureType === 'Distance' || actionObject.annotation.measureType === 'Perimeter' || actionObject.annotation.measureType === 'Area' ||\n actionObject.annotation.measureType === 'Radius' || actionObject.annotation.measureType === 'Volume') {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { notes: actionObject.redoElement.notes });\n this.updateCalibrateValues(actionObject.annotation);\n }\n if (actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.updateHTMLElement(actionObject.annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.select([actionObject.annotation.id]);\n // eslint-disable-next-line max-len\n if (actionObject.annotation.shapeAnnotationType === 'Line' || actionObject.annotation.shapeAnnotationType === 'Rectangle' || actionObject.annotation.shapeAnnotationType === 'Ellipse' || actionObject.annotation.shapeAnnotationType === 'Polygon' || actionObject.annotation.shapeAnnotationType === 'LineWidthArrowHead'\n || actionObject.annotation.shapeAnnotationType === 'Radius' || actionObject.annotation.shapeAnnotationType === 'FreeText' || actionObject.annotation.shapeAnnotationType === 'HandWrittenSignature' || actionObject.annotation.shapeAnnotationType === 'SignatureText' || actionObject.annotation.shapeAnnotationType === 'SignatureImage' || actionObject.annotation.shapeAnnotationType === 'Ink') {\n this.modifyInCollections(actionObject.annotation, 'bounds');\n }\n break;\n case 'Addition':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n actionObject.redoElement.bounds.x = actionObject.redoElement.wrapper.bounds.x;\n actionObject.redoElement.bounds.y = actionObject.redoElement.wrapper.bounds.y;\n this.pdfViewer.formDesigner.drawFormField(actionObject.redoElement);\n }\n else {\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n shapeType = 'shape';\n this.shapeAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n else {\n shapeType = 'shape_measure';\n this.measureAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n }\n if (shapeType === 'FreeText') {\n this.freeTextAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n if (shapeType === 'Stamp' || shapeType === 'Image') {\n this.stampAnnotationModule.updateDeleteItems(actionObject.annotation.pageIndex, actionObject.redoElement);\n }\n if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {\n this.pdfViewerBase.signatureModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n if (shapeType === 'Ink') {\n this.inkAnnotationModule.addInCollection(actionObject.annotation.pageIndex, actionObject.duplicate);\n }\n var addedAnnot = this.pdfViewer.add(actionObject.annotation);\n this.pdfViewer.select([actionObject.annotation.id]);\n if ((shapeType === 'FreeText' || addedAnnot.enableShapeLabel) && addedAnnot) {\n this.pdfViewer.nodePropertyChange(addedAnnot, {});\n }\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addAnnotationComments(actionObject.annotation.pageIndex, shapeType);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (mobileAnnotationToolbar && mobileAnnotationToolbar.children.length > 0) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbarCreated = false;\n this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();\n }\n }\n }\n break;\n case 'Delete':\n if (this.pdfViewer.formDesigner && actionObject.annotation.formFieldAnnotationType) {\n this.pdfViewer.formDesigner.deleteFormField(actionObject.redoElement.id, false);\n }\n else {\n var isUpdate = false;\n var sType = actionObject.annotation.shapeAnnotationType;\n // eslint-disable-next-line max-len\n if (shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Polygon' || shapeType === 'Ellipse' || shapeType === 'Rectangle' || shapeType === 'Radius' || shapeType === 'Distance') {\n if (actionObject.annotation.measureType === '' || isNullOrUndefined(actionObject.annotation.measureType)) {\n sType = 'shape';\n }\n else {\n sType = 'measure';\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n this.modifyInCollections(actionObject.annotation, 'delete');\n isUpdate = true;\n }\n if (shapeType === 'Stamp' || shapeType === 'Image') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n this.stampAnnotationModule.updateSessionStorage(actionObject.annotation, null, 'delete');\n isUpdate = true;\n }\n if (shapeType === 'FreeText' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n this.modifyInCollections(actionObject.annotation, 'delete');\n }\n if (!isUpdate) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stickyNotesAnnotationModule.findPosition(actionObject.annotation, sType, 'delete');\n }\n var formFieldObj = void 0;\n if (actionObject.annotation.id) {\n formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n }\n if (formFieldObj != null && (formFieldObj.formFieldAnnotationType === 'SignatureField' || formFieldObj.formFieldAnnotationType === 'InitialField')) {\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(actionObject.annotation.wrapper.children[0]), 1);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.splice(formFieldObj.wrapper.children.indexOf(actionObject.annotation.wrapper.children[1]), 1);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n formFieldsData[i].FormField.value = '';\n formFieldsData[i].FormField.signatureType = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.value = '';\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = '';\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n this.pdfViewer.clearSelection(actionObject.annotation.pageIndex);\n this.pdfViewer.remove(actionObject.annotation);\n this.pdfViewer.renderDrawing(null, actionObject.annotation.pageIndex);\n // eslint-disable-next-line\n var id = actionObject.annotation.annotName ? actionObject.annotation.annotName : actionObject.annotation.annotationId;\n var removeDiv = document.getElementById(id);\n this.removeCommentPanelDiv(removeDiv);\n if (actionObject.annotation.annotationId) {\n var collections = this.updateCollectionForNonRenderedPages(actionObject.annotation, id, actionObject.annotation.pageIndex);\n this.undoCommentsElement.push(collections);\n }\n }\n break;\n case 'stampOpacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.redoElement.opacity });\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n break;\n case 'Shape Stroke':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { strokeColor: actionObject.redoElement.strokeColor });\n this.modifyInCollections(actionObject.annotation, 'stroke');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Fill':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fillColor: actionObject.redoElement.fillColor });\n this.modifyInCollections(actionObject.annotation, 'fill');\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Opacity':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { opacity: actionObject.redoElement.opacity });\n if (actionObject.annotation.shapeAnnotationType === 'StickyNotes') {\n this.stickyNotesAnnotationModule.updateOpacityValue(actionObject.annotation);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n }\n else {\n this.modifyInCollections(actionObject.annotation, 'opacity');\n }\n this.pdfViewer.renderDrawing();\n break;\n case 'Shape Thickness':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { thickness: actionObject.redoElement.thickness });\n this.modifyInCollections(actionObject.annotation, 'thickness');\n this.pdfViewer.renderDrawing();\n break;\n case 'Line properties change':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {\n // eslint-disable-next-line max-len\n fillColor: actionObject.redoElement.fillColor, strokeColor: actionObject.redoElement.strokeColor, opacity: actionObject.redoElement.opacity, thickness: actionObject.redoElement.thickness,\n sourceDecoraterShapes: this.getArrowType(actionObject.redoElement.lineHeadStart), taregetDecoraterShapes: this.getArrowType(actionObject.redoElement.lineHeadEnd),\n borderDashArray: actionObject.redoElement.borderDashArray, borderStyle: actionObject.redoElement.borderStyle\n });\n this.updateCollectionForLineProperty(actionObject.annotation);\n this.pdfViewer.renderDrawing();\n break;\n case 'Text Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n break;\n case 'Comments Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n break;\n case 'Status Property Added':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action);\n break;\n case 'Comments Reply Deleted':\n // eslint-disable-next-line max-len\n actionObject.annotation = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action);\n break;\n case 'dynamicText Change':\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = true;\n actionObject.annotation.dynamicText = actionObject.redoElement.dynamicText;\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation) {\n annotation.dynamicText = actionObject.redoElement.dynamicText;\n annotation.bounds.height = actionObject.redoElement.bounds.height;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.redoAction(actionObject.annotation, actionObject.action, actionObject.undoElement);\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(actionObject.annotation, null, true);\n this.modifyInCollections(actionObject.annotation, 'dynamicText');\n if (annotation) {\n this.pdfViewer.nodePropertyChange(annotation, {});\n }\n else {\n this.pdfViewer.nodePropertyChange(actionObject.annotation, {});\n }\n this.pdfViewer.annotation.freeTextAnnotationModule.isFreeTextValueChange = false;\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.pdfViewer.select([actionObject.annotation.id]);\n break;\n case 'fontColor':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontColor: actionObject.redoElement.fontColor });\n this.modifyInCollections(actionObject.annotation, 'fontColor');\n this.pdfViewer.renderDrawing();\n break;\n case 'fontSize':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { fontSize: actionObject.redoElement.fontSize });\n this.modifyInCollections(actionObject.annotation, 'fontSize');\n this.pdfViewer.renderDrawing();\n break;\n case 'textAlign':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { textAlign: actionObject.redoElement.textAlign });\n this.modifyInCollections(actionObject.annotation, 'textAlign');\n this.pdfViewer.renderDrawing();\n break;\n case 'textPropertiesChange':\n this.pdfViewer.nodePropertyChange(actionObject.annotation, { font: actionObject.redoElement.font });\n this.modifyInCollections(actionObject.annotation, 'textPropertiesChange');\n this.pdfViewer.renderDrawing();\n break;\n case 'Rotate':\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(actionObject.annotation.annotations[0], { bounds: actionObject.redoElement.bounds, rotateAngle: actionObject.redoElement.rotateAngle });\n this.modifyInCollections(actionObject.annotation.annotations[0], 'bounds');\n this.pdfViewer.renderDrawing();\n break;\n case 'FormDesigner Properties Change':\n if (actionObject.redoElement && actionObject.undoElement.isMultiline !== actionObject.redoElement.isMultiline) {\n this.undoRedoMultiline(actionObject.redoElement);\n }\n this.updateFormFieldPropertiesChanges(actionObject.redoElement.formFieldAnnotationType, actionObject.redoElement);\n break;\n case 'FormField Value Change':\n if (actionObject.annotation.formFieldAnnotationType) {\n if (actionObject.annotation.formFieldAnnotationType == \"RadioButton\") {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.undoElement, true);\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.redoElement, false);\n }\n else {\n this.updateFormFieldValueChange(actionObject.annotation.formFieldAnnotationType, actionObject.annotation, actionObject.redoElement);\n }\n }\n else {\n var spanElement = document.getElementById(actionObject.annotation.id + \"_html_element\").children[0].children[0];\n spanElement.className = 'e-pdfviewer-signatureformfields-signature';\n var formFieldObj = this.pdfViewer.nameTable[actionObject.annotation.id.split(\"_\")[0]];\n var annotationObj = this.pdfViewer.nameTable[actionObject.annotation.id];\n formFieldObj.wrapper.children.push(annotationObj.wrapper.children[0]);\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\")\n formFieldObj.wrapper.children.push(annotationObj.wrapper.children[1]);\n var key = actionObject.annotation.id.split('_')[0] + '_content';\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].Key === key) {\n if (actionObject.annotation.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n }\n else if (actionObject.annotation.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n formFieldsData[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.value = actionObject.annotation.data;\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n var collectionData = processPathData(actionObject.annotation.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n }\n }\n }\n this.pdfViewer.add(actionObject.annotation);\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + actionObject.pageIndex);\n this.pdfViewer.renderDrawing(canvass, actionObject.pageIndex);\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n }\n if (actionObject.redoElement && actionObject.redoElement.modifiedDate !== undefined) {\n actionObject.annotation.modifiedDate = actionObject.redoElement.modifiedDate;\n }\n this.actionCollection.push(actionObject);\n this.updateToolbar();\n this.isUndoRedoAction = false;\n }\n };\n Annotation.prototype.undoRedoMultiline = function (element) {\n if (element.isMultiline && element.formFieldAnnotationType === 'Textbox') {\n this.pdfViewer.formDesignerModule.renderMultilineText(element, true);\n }\n else if (element.formFieldAnnotationType === 'Textbox') {\n this.pdfViewer.formDesignerModule.renderTextbox(element, true);\n }\n };\n Annotation.prototype.updateFormFieldValueChange = function (formFieldAnnotationType, annotation, value) {\n if (annotation) {\n var formFieldModel = this.pdfViewer.formDesigner.getFormField(annotation.id.split(\"_\")[0]);\n var data = null;\n if (this.pdfViewer.formDesignerModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (data) {\n var formFieldsData = JSON.parse(data);\n var index = this.pdfViewer.formDesigner.getFormFiledIndex(annotation.id.split('_')[0]);\n switch (formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'RadioButton':\n case 'DropdownList':\n case 'ListBox':\n var inputElement = document.getElementById(annotation.id.split(\"_\")[0] + \"_content_html_element\").firstElementChild.firstElementChild;\n if (formFieldAnnotationType == 'Textbox' || formFieldAnnotationType == 'PasswordField') {\n formFieldModel.value = value;\n this.pdfViewer.formDesigner.updateValuePropertyChange(formFieldModel, inputElement, true, index, formFieldsData);\n }\n else if (formFieldAnnotationType == 'RadioButton') {\n formFieldModel.isSelected = value;\n this.pdfViewer.formDesigner.updateIsSelectedPropertyChange(formFieldModel, inputElement.firstElementChild, true, index, formFieldsData);\n }\n else if (formFieldAnnotationType == 'DropdownList' || formFieldAnnotationType == 'ListBox') {\n formFieldModel.selectedIndex = value;\n formFieldsData[index].FormField.selectedIndex = value;\n this.pdfViewerBase.formFieldCollection[index].FormField.selectedIndex = value;\n this.pdfViewer.nameTable[formFieldsData[index].Key.split(\"_\")[0]].selectedIndex = value;\n if (formFieldAnnotationType == 'ListBox') {\n for (var k = 0; k < inputElement.options.length; k++) {\n inputElement.options[k].selected = value.includes(k) ? true : false;\n }\n }\n else {\n inputElement.selectedIndex = value;\n }\n }\n break;\n case 'Checkbox':\n var checkboxDivElement = document.getElementById(annotation.id.split(\"_\")[0] + \"_content_html_element\").firstElementChild.firstElementChild.lastElementChild;\n formFieldModel.isChecked = value;\n this.pdfViewer.formDesigner.updateIsCheckedPropertyChange(formFieldModel, checkboxDivElement, true, index, formFieldsData);\n break;\n }\n this.pdfViewerBase.setItemInSessionStorage(this.pdfViewerBase.formFieldCollection, '_formDesigner');\n }\n }\n };\n Annotation.prototype.updateFormFieldPropertiesChanges = function (formFieldAnnotationType, element) {\n switch (formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n this.pdfViewer.formDesigner.updateTextboxFormDesignerProperties(element, true);\n break;\n case 'Checkbox':\n this.pdfViewer.formDesigner.updateCheckboxFormDesignerProperties(element, true);\n break;\n case 'RadioButton':\n this.pdfViewer.formDesigner.updateRadioButtonDesignerProperties(element, true);\n break;\n case 'DropdownList':\n this.pdfViewer.formDesigner.updateDropdownFormDesignerProperties(element, true);\n break;\n case 'ListBox':\n this.pdfViewer.formDesigner.updateListBoxFormDesignerProperties(element, true);\n break;\n case 'SignatureField':\n case 'InitialField':\n this.pdfViewer.formDesigner.updateSignatureTextboxProperties(element, true);\n }\n };\n Annotation.prototype.updateCollectionForLineProperty = function (pdfAnnotationBase) {\n this.modifyInCollections(pdfAnnotationBase, 'fill');\n this.modifyInCollections(pdfAnnotationBase, 'stroke');\n this.modifyInCollections(pdfAnnotationBase, 'opacity');\n this.modifyInCollections(pdfAnnotationBase, 'thickness');\n this.modifyInCollections(pdfAnnotationBase, 'dashArray');\n this.modifyInCollections(pdfAnnotationBase, 'startArrow');\n this.modifyInCollections(pdfAnnotationBase, 'endArrow');\n };\n Annotation.prototype.updateToolbar = function (isAnnotationDelete) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateUndoRedoButtons();\n }\n if (this.actionCollection && this.actionCollection.length == 0) {\n this.pdfViewerBase.updateDocumentEditedProperty(false);\n }\n else {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\n if (isAnnotationDelete) {\n //This below lines are commented for the below task -EJ2-61754-IsDocumentEdited API is not Properly working for delete annotations\n //Also refer EJ2-55205-The isDocumentEdited property is False on adding handwritten signature\n // let isEdited: boolean = false;\n // if (this.pdfViewer.annotationCollection && this.pdfViewer.annotationCollection.length > 0 && this.pdfViewer.signatureCollection && this.pdfViewer.signatureCollection.length > 0) {\n // isEdited = true;\n // }\n // if (!isEdited && this.pdfViewer.isDocumentEdited) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // }\n }\n };\n Annotation.prototype.createNote = function () {\n // eslint-disable-next-line max-len\n this.popupNote = createElement('div', { id: this.pdfViewer.element.id + '_annotation_note', className: 'e-pv-annotation-note', styles: 'display:none' });\n this.popupNoteAuthor = createElement('div', { id: this.pdfViewer.element.id + '_annotation_note_author', className: 'e-pv-annotation-note-author' });\n this.popupNote.appendChild(this.popupNoteAuthor);\n // eslint-disable-next-line max-len\n this.popupNoteContent = createElement('div', { id: this.pdfViewer.element.id + '_annotation_note_content', className: 'e-pv-annotation-note-content' });\n this.popupNote.appendChild(this.popupNoteContent);\n this.pdfViewerBase.mainContainer.appendChild(this.popupNote);\n };\n /**\n * @param event\n * @param color\n * @param author\n * @param note\n * @param type\n * @param event\n * @param color\n * @param author\n * @param note\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.showPopupNote = function (event, color, author, note, type) {\n var mainContainerPosition = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n var popupNoteClientRect = this.popupNote.getBoundingClientRect();\n if (author) {\n this.popupNoteAuthor.textContent = author;\n }\n this.popupNoteContent.textContent = note;\n if (type === 'Highlight') {\n this.popupNote.style.backgroundColor = 'rgb(237, 232, 177)';\n }\n else if (type === 'Underline') {\n this.popupNote.style.backgroundColor = 'rgb(187, 241, 191)';\n }\n else if (type === 'Strikethrough') {\n this.popupNote.style.backgroundColor = 'rgb(242, 188, 207)';\n }\n this.popupNote.style.display = 'block';\n var topPosition = (event.pageY - mainContainerPosition.top + 5);\n var leftPosition = (event.pageX - mainContainerPosition.left + 5);\n if (leftPosition + popupNoteClientRect.width > mainContainerPosition.width) {\n leftPosition = leftPosition - popupNoteClientRect.width;\n }\n if (topPosition + popupNoteClientRect.height > mainContainerPosition.height) {\n topPosition = topPosition - popupNoteClientRect.height;\n }\n this.popupNote.style.top = topPosition + 'px';\n this.popupNote.style.left = leftPosition + 'px';\n };\n /**\n * @private\n */\n Annotation.prototype.hidePopupNote = function () {\n if (this.popupNote) {\n this.popupNote.style.display = 'none';\n }\n };\n Annotation.prototype.createTextMarkupPopup = function () {\n var _this = this;\n var elementId = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n this.popupElement = createElement('div', { id: elementId + '_popup_annotation_note', className: 'e-pv-annotation-popup-menu', styles: 'display:none' });\n var headerElement = createElement('div', { id: elementId + '_popup_header', className: 'e-pv-annotation-popup-header' });\n // eslint-disable-next-line max-len\n this.authorPopupElement = createElement('div', { id: elementId + '_popup_author', className: 'e-pv-annotation-popup-author' });\n headerElement.appendChild(this.authorPopupElement);\n // eslint-disable-next-line max-len\n var closeBtn = createElement('span', { id: elementId + '_popup_close', className: 'e-pv-annotation-popup-close e-pv-icon' });\n headerElement.appendChild(closeBtn);\n this.popupElement.appendChild(headerElement);\n // eslint-disable-next-line max-len\n this.modifiedDateElement = createElement('div', { id: elementId + '_popup_modified_time', className: 'e-pv-annotation-modified-time' });\n this.popupElement.appendChild(this.modifiedDateElement);\n // eslint-disable-next-line max-len\n var contentContainer = createElement('div', { id: elementId + '_popup_content_container', className: 'e-pv-annotation-popup-note-container' });\n this.noteContentElement = createElement('div', { id: elementId + '_popup_content', className: 'e-pv-annotation-popup-content' });\n this.noteContentElement.contentEditable = 'true';\n contentContainer.appendChild(this.noteContentElement);\n this.popupElement.appendChild(contentContainer);\n this.pdfViewerBase.viewerContainer.appendChild(this.popupElement);\n closeBtn.addEventListener('click', this.saveClosePopupMenu.bind(this));\n closeBtn.addEventListener('touchend', this.saveClosePopupMenu.bind(this));\n this.popupElement.addEventListener('mousedown', this.onPopupElementMoveStart.bind(this));\n this.popupElement.addEventListener('mousemove', this.onPopupElementMove.bind(this));\n window.addEventListener('mouseup', this.onPopupElementMoveEnd.bind(this));\n this.popupElement.addEventListener('touchstart', this.onPopupElementMoveStart.bind(this));\n this.popupElement.addEventListener('touchmove', this.onPopupElementMove.bind(this));\n window.addEventListener('touchend', this.onPopupElementMoveEnd.bind(this));\n this.noteContentElement.addEventListener('mousedown', function () {\n _this.noteContentElement.focus();\n });\n };\n // eslint-disable-next-line\n Annotation.prototype.onPopupElementMoveStart = function (event) {\n if (event.type === 'touchstart') {\n event = event.changedTouches[0];\n }\n if ((event.target.id !== (this.noteContentElement.id) || !(event.target.contains(this.noteContentElement.childNodes[0])))) {\n this.isPopupMenuMoved = true;\n var popupElementClientRect = this.popupElement.getBoundingClientRect();\n this.clientX = event.clientX - popupElementClientRect.left;\n // eslint-disable-next-line max-len\n this.clientY = (event.clientY - popupElementClientRect.top) + (this.pdfViewerBase.pageSize[this.currentAnnotPageNumber].top * this.pdfViewerBase.getZoomFactor());\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.onPopupElementMove = function (event) {\n if (event.type === 'touchmove') {\n event = event.changedTouches[0];\n }\n // eslint-disable-next-line max-len\n if (this.isPopupMenuMoved && (event.target.id !== (this.noteContentElement.id) || !(event.target.contains(this.noteContentElement.childNodes[0])))) {\n var left = (event.clientX - this.clientX) + parseFloat(this.popupElement.style.left);\n var top_1 = ((event.clientY - this.clientY) + parseFloat(this.popupElement.style.top));\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n var clientPosition = this.popupElement.getBoundingClientRect();\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + this.currentAnnotPageNumber);\n // eslint-disable-next-line max-len\n if (left > parseFloat(pageDiv.style.left) && (left + clientPosition.width) < (parseFloat(pageDiv.style.left) + parseFloat(pageDiv.style.width))) {\n this.popupElement.style.left = (left) + 'px';\n }\n else {\n this.popupElement.style.left = parseFloat(this.popupElement.style.left) + 'px';\n }\n // eslint-disable-next-line max-len\n if (top_1 > parseFloat(pageDiv.style.top) && (top_1 + clientPosition.height) < (parseFloat(pageDiv.style.top) + parseFloat(pageDiv.style.height))) {\n this.popupElement.style.top = (top_1) + 'px';\n }\n else {\n this.popupElement.style.top = parseFloat(this.popupElement.style.top) + 'px';\n }\n }\n };\n Annotation.prototype.onPopupElementMoveEnd = function () {\n this.isPopupMenuMoved = false;\n };\n Annotation.prototype.saveClosePopupMenu = function () {\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.saveNoteContent(this.currentAnnotPageNumber, this.noteContentElement.innerText);\n }\n this.closePopupMenu();\n };\n /**\n * @private\n */\n Annotation.prototype.closePopupMenu = function () {\n if (this.popupElement) {\n this.popupElement.parentElement.removeChild(this.popupElement);\n this.popupElement = null;\n this.isPopupNoteVisible = false;\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.showAnnotationPopup = function (event) {\n if (this.textMarkupAnnotationModule) {\n this.currentAnnotPageNumber = this.getEventPageNumber(event);\n // eslint-disable-next-line max-len\n if (this.textMarkupAnnotationModule && (event.target !== (this.noteContentElement) || (event.target.contains(this.noteContentElement.childNodes[0])))) {\n this.hidePopupNote();\n if (!this.popupElement) {\n this.createTextMarkupPopup();\n this.popupElement.style.display = 'block';\n this.authorPopupElement.textContent = this.textMarkupAnnotationModule.currentTextMarkupAnnotation.author;\n // eslint-disable-next-line max-len\n this.modifiedDateElement.textContent = this.getProperDate(this.textMarkupAnnotationModule.currentTextMarkupAnnotation.modifiedDate);\n this.noteContentElement.textContent = this.textMarkupAnnotationModule.currentTextMarkupAnnotation.note;\n var clientPosition = this.popupElement.getBoundingClientRect();\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + this.currentAnnotPageNumber);\n var canvasPosition = pageDiv.getBoundingClientRect();\n var topPosition = ((event.clientY) - canvasPosition.top) + parseFloat(pageDiv.style.top);\n var leftPosition = (event.clientX);\n if ((leftPosition + clientPosition.width) > (parseFloat(pageDiv.style.left) + parseFloat(pageDiv.style.width))) {\n this.popupElement.style.left = (leftPosition - clientPosition.width) + 'px';\n }\n else {\n this.popupElement.style.left = leftPosition + 'px';\n }\n if ((topPosition + clientPosition.height) > (parseFloat(pageDiv.style.top) + parseFloat(pageDiv.style.height))) {\n this.popupElement.style.top = (topPosition - clientPosition.height) + 'px';\n }\n else {\n this.popupElement.style.top = topPosition + 'px';\n }\n this.isPopupNoteVisible = true;\n }\n }\n }\n };\n /**\n * @param args\n * @param isOpacity\n * @param args\n * @param isOpacity\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.modifyOpacity = function (args, isOpacity) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n var opacityValue = 1;\n if (isOpacity) {\n opacityValue = args / 100;\n }\n else {\n opacityValue = args.value / 100;\n }\n if (currentAnnotation.opacity !== opacityValue) {\n redoClonedObject.opacity = opacityValue;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: opacityValue });\n if (currentAnnotation.shapeAnnotationType === 'StickyNotes') {\n this.stickyNotesAnnotationModule.updateOpacityValue(currentAnnotation);\n }\n else {\n this.modifyInCollections(currentAnnotation, 'opacity');\n }\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureImage' || currentAnnotation.shapeAnnotationType === 'SignatureText') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, true, false, clonedObject.opacity, redoClonedObject.opacity);\n }\n else {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Opacity', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n }\n };\n /**\n * @param currentColor\n * @private\n */\n Annotation.prototype.modifyFontColor = function (currentColor) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fontColor = currentColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: currentColor });\n this.modifyInCollections(currentAnnotation, 'fontColor');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontColor', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param currentValue\n * @private\n */\n Annotation.prototype.modifyFontFamily = function (currentValue) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fontFamily = currentValue;\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n this.updateFontFamilyRenderSize(currentAnnotation, currentValue);\n }\n else {\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: currentValue });\n }\n this.modifyInCollections(currentAnnotation, 'fontFamily');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontFamily', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param currentValue\n * @private\n */\n Annotation.prototype.modifyFontSize = function (currentValue, isInteracted) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fontSize = currentValue;\n var freeTextAnnotation = this.freeTextAnnotationModule;\n var x = currentAnnotation.bounds.x;\n var y = currentAnnotation.bounds.y;\n currentAnnotation.fontSize = currentValue;\n if (freeTextAnnotation && !freeTextAnnotation.isNewFreeTextAnnot && currentAnnotation.dynamicText !== '') {\n freeTextAnnotation.addInuptElemet({ x: x, y: y }, currentAnnotation);\n if (currentAnnotation) {\n if (currentAnnotation.previousFontSize != currentValue) {\n freeTextAnnotation.inputBoxElement.style.height = 'auto';\n if (isInteracted) {\n freeTextAnnotation.inputBoxElement.style.height = freeTextAnnotation.inputBoxElement.scrollHeight + 5 + 'px';\n }\n else {\n if (freeTextAnnotation.inputBoxElement.scrollHeight + 5 > currentAnnotation.bounds.height) {\n freeTextAnnotation.inputBoxElement.style.height = freeTextAnnotation.inputBoxElement.scrollHeight + 5 + 'px';\n }\n else {\n freeTextAnnotation.inputBoxElement.style.height = currentAnnotation.bounds.height + 'px';\n }\n }\n }\n var inputEleHeight = parseFloat(freeTextAnnotation.inputBoxElement.style.height);\n var inputEleWidth = parseFloat(freeTextAnnotation.inputBoxElement.style.width);\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n inputEleWidth = ((inputEleWidth) / zoomFactor);\n inputEleHeight = ((inputEleHeight) / zoomFactor);\n var heightDiff = (inputEleHeight - currentAnnotation.bounds.height);\n var y_1 = undefined;\n if (heightDiff > 0) {\n y_1 = currentAnnotation.wrapper.offsetY + (heightDiff / 2);\n y_1 = y_1 > 0 ? y_1 : undefined;\n }\n else {\n heightDiff = Math.abs(heightDiff);\n y_1 = currentAnnotation.wrapper.offsetY - (heightDiff / 2);\n y_1 = y_1 > 0 ? y_1 : undefined;\n }\n var widthDiff = (inputEleWidth - currentAnnotation.bounds.width);\n var x_1 = undefined;\n if (widthDiff > 0) {\n x_1 = currentAnnotation.wrapper.offsetX + (widthDiff / 2);\n x_1 = x_1 > 0 ? x_1 : undefined;\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x_1 = currentAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n currentAnnotation.bounds.width = inputEleWidth;\n currentAnnotation.bounds.height = inputEleHeight;\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontSize: currentValue, bounds: { width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height, y: y_1, x: x_1 } });\n this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);\n currentAnnotation.previousFontSize = currentValue;\n }\n this.modifyInCollections(currentAnnotation, 'fontSize');\n this.modifyInCollections(currentAnnotation, 'bounds');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'fontSize', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n }\n };\n /**\n * @param currentValue\n * @private\n */\n Annotation.prototype.modifyTextAlignment = function (currentValue) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.textAlign = currentValue;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { textAlign: currentValue });\n this.modifyInCollections(currentAnnotation, 'textAlign');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'textAlign', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param fontInfo\n * @param action\n * @private\n */\n Annotation.prototype.modifyTextProperties = function (fontInfo, action) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n if (action === 'bold') {\n redoClonedObject.font.isBold = fontInfo.isBold;\n }\n else if (action === 'italic') {\n redoClonedObject.font.isItalic = fontInfo.isItalic;\n }\n else if (action === 'underline') {\n redoClonedObject.font.isUnderline = fontInfo.isUnderline;\n if (redoClonedObject.font.isUnderline && redoClonedObject.font.isStrikeout) {\n redoClonedObject.font.isStrikeout = false;\n }\n }\n else if (action === 'strikeout') {\n redoClonedObject.font.isStrikeout = fontInfo.isStrikeout;\n if (redoClonedObject.font.isUnderline && redoClonedObject.font.isStrikeout) {\n redoClonedObject.font.isUnderline = false;\n }\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { font: fontInfo });\n this.modifyInCollections(currentAnnotation, 'textPropertiesChange');\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'textPropertiesChange', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param thicknessValue\n * @private\n */\n Annotation.prototype.modifyThickness = function (thicknessValue) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n if (currentAnnotation.thickness !== thicknessValue) {\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.thickness = thicknessValue;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: thicknessValue });\n this.modifyInCollections(currentAnnotation, 'thickness');\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, true, clonedObject.thickness, redoClonedObject.thickness);\n }\n else {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n }\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.modifyStrokeColor = function (color) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.strokeColor = color;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: color });\n this.modifyInCollections(currentAnnotation, 'stroke');\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, true, false, false, clonedObject.strokeColor, redoClonedObject.strokeColor);\n }\n else {\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.modifyFillColor = function (color) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n redoClonedObject.fillColor = color;\n this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], { fillColor: color });\n this.modifyInCollections(currentAnnotation, 'fill');\n this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);\n this.pdfViewer.renderDrawing();\n };\n /**\n * @param dynamicText\n * @param annotName\n * @private\n */\n Annotation.prototype.modifyDynamicTextValue = function (dynamicText, annotName) {\n var currentAnnotation = null;\n currentAnnotation = this.pdfViewer.annotations.filter(function (s) { return s.annotName === annotName; })[0];\n if (currentAnnotation) {\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n currentAnnotation.dynamicText = dynamicText;\n redoClonedObject.dynamicText = dynamicText;\n if (clonedObject.dynamicText === '') {\n clonedObject.dynamicText = this.freeTextAnnotationModule.previousText;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { dynamicText: dynamicText });\n this.pdfViewer.renderSelector(currentAnnotation.pageIndex, currentAnnotation.annotationSelectorSettings);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'dynamicText Change', '', clonedObject, redoClonedObject);\n this.modifyInCollections(currentAnnotation, 'dynamicText');\n if (!isNullOrUndefined(this.freeTextAnnotationModule) && this.freeTextAnnotationModule.previousText !== 'Type Here' && this.freeTextAnnotationModule.previousText !== currentAnnotation.dynamicText) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, false, false, false, true, this.freeTextAnnotationModule.previousText, currentAnnotation.dynamicText);\n }\n this.pdfViewer.renderDrawing();\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.modifyInCollections = function (annotationBase, property) {\n // eslint-disable-next-line\n var returnObj;\n if (annotationBase.measureType === '' || isNullOrUndefined(annotationBase.measureType)) {\n if (annotationBase.shapeAnnotationType === 'FreeText') {\n returnObj = this.freeTextAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else if (annotationBase.shapeAnnotationType === 'HandWrittenSignature' || annotationBase.shapeAnnotationType === 'SignatureText' || annotationBase.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n returnObj = this.pdfViewerBase.signatureModule.modifySignatureCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else if (annotationBase.shapeAnnotationType === 'Stamp') {\n returnObj = this.stampAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else if (annotationBase.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n returnObj = this.inkAnnotationModule.modifySignatureInkCollection(property, annotationBase.pageIndex, annotationBase);\n }\n else {\n returnObj = this.shapeAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n }\n else if (annotationBase.measureType === 'Distance' || annotationBase.measureType === 'Perimeter' ||\n annotationBase.measureType === 'Radius' || annotationBase.measureType === 'Area' || annotationBase.measureType === 'Volume') {\n returnObj = this.measureAnnotationModule.modifyInCollection(property, annotationBase.pageIndex, annotationBase);\n }\n if (this.isUndoRedoAction) {\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase, null, true);\n if (this.isUndoAction) {\n annotationBase.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n }\n }\n else {\n if (property !== 'bounds') {\n this.stickyNotesAnnotationModule.updateAnnotationModifiedDate(annotationBase);\n }\n }\n return returnObj;\n };\n /**\n * @private\n */\n Annotation.prototype.createPropertiesWindow = function () {\n var _this = this;\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_properties_window', className: 'e-pv-properties-window' });\n var appearanceTab = this.createAppearanceTab();\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n this.propertiesDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('Line Properties'),\n target: this.pdfViewer.element, content: appearanceTab, close: function () {\n _this.destroyPropertiesWindow();\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.propertiesDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) }\n ];\n }\n else {\n this.propertiesDialog.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.onCancelClicked.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.onOkClicked.bind(this) }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.propertiesDialog.enableRtl = true;\n }\n this.propertiesDialog.appendTo(dialogDiv);\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n // eslint-disable-next-line\n var fillColor = document.getElementById(this.pdfViewer.element.id + '_properties_fill_color');\n fillColor.disabled = true;\n }\n // eslint-disable-next-line max-len\n this.startArrowDropDown.content = this.createContent(this.getArrowString(this.pdfViewer.selectedItems.annotations[0].sourceDecoraterShapes)).outerHTML;\n this.endArrowDropDown.content = this.createContent(this.getArrowString(this.pdfViewer.selectedItems.annotations[0].taregetDecoraterShapes)).outerHTML;\n this.thicknessBox.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n this.fillColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n this.refreshColorPicker(this.fillColorPicker);\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n this.refreshColorPicker(this.strokeColorPicker);\n this.updateColorInIcon(this.fillDropDown.element, this.fillColorPicker.value);\n this.updateColorInIcon(this.strokeDropDown.element, this.strokeColorPicker.value);\n this.opacitySlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n this.updateOpacityIndicator();\n // eslint-disable-next-line\n if (parseInt(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray) >= 3) {\n this.lineStyleDropDown.content = this.createDropDownContent('dashed').outerHTML;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '2') {\n this.lineStyleDropDown.content = this.createDropDownContent('dotted').outerHTML;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '0') {\n this.lineStyleDropDown.content = this.createDropDownContent('solid').outerHTML;\n }\n this.selectedLineStyle = this.pdfViewer.selectedItems.annotations[0].borderStyle;\n this.selectedLineDashArray = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray;\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n this.leaderLengthBox.value = this.pdfViewer.selectedItems.annotations[0].leaderHeight;\n }\n }\n else {\n var opacityValue = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n var lineStartElement = this.getArrowString(this.pdfViewer.selectedItems.annotations[0].sourceDecoraterShapes);\n var lineEndElement = this.getArrowString(this.pdfViewer.selectedItems.annotations[0].taregetDecoraterShapes);\n var lineStyleElement = void 0;\n // eslint-disable-next-line\n if (parseInt(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray) >= 3) {\n lineStyleElement = 'Dashed';\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '2') {\n lineStyleElement = 'Dotted';\n }\n else if (this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeDashArray === '0') {\n lineStyleElement = 'Solid';\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenPropertiesDialog', opacityValue, lineStartElement, lineEndElement, lineStyleElement);\n }\n };\n Annotation.prototype.updatePropertiesWindowInBlazor = function () {\n // eslint-disable-next-line\n var thicknessElement = document.querySelector('#' + this.pdfViewer.element.id + '_line_thickness');\n // eslint-disable-next-line\n var fillColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');\n // eslint-disable-next-line\n var strokeColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');\n // eslint-disable-next-line\n var leaderLengthElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_leader_length');\n thicknessElement.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n fillColorElement.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n strokeColorElement.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n this.onStrokeColorChange(strokeColorElement.value);\n this.onFillColorChange(fillColorElement.value);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n // eslint-disable-next-line\n leaderLengthElement.value = parseInt(this.pdfViewer.selectedItems.annotations[0].leaderHeight.toString());\n }\n };\n Annotation.prototype.destroyPropertiesWindow = function () {\n if (this.strokeColorPicker) {\n this.strokeColorPicker.destroy();\n this.strokeColorPicker = null;\n }\n if (this.fillColorPicker) {\n this.fillColorPicker.destroy();\n this.fillColorPicker = null;\n }\n if (this.endArrowDropDown) {\n this.endArrowDropDown.destroy();\n this.endArrowDropDown = null;\n }\n if (this.startArrowDropDown) {\n this.startArrowDropDown.destroy();\n this.startArrowDropDown = null;\n }\n if (this.opacitySlider) {\n this.opacitySlider.destroy();\n this.opacitySlider = null;\n }\n if (this.thicknessBox) {\n this.thicknessBox.destroy();\n this.thicknessBox = null;\n }\n if (this.lineStyleDropDown) {\n this.lineStyleDropDown.destroy();\n this.lineStyleDropDown = null;\n }\n if (this.leaderLengthBox) {\n this.leaderLengthBox.destroy();\n this.leaderLengthBox = null;\n }\n if (this.propertiesDialog) {\n this.propertiesDialog.destroy();\n this.propertiesDialog = null;\n }\n var dialogElement = this.pdfViewerBase.getElement('_properties_window');\n if (dialogElement) {\n dialogElement.parentElement.removeChild(dialogElement);\n }\n };\n Annotation.prototype.refreshColorPicker = function (colorPick) {\n colorPick.setProperties({ 'value': colorPick.value }, true);\n colorPick.refresh();\n };\n Annotation.prototype.createAppearanceTab = function () {\n var _this = this;\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var items = [{ text: this.pdfViewer.localeObj.getConstant('None') }, { text: this.pdfViewer.localeObj.getConstant('Open Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Closed Arrow') },\n { text: this.pdfViewer.localeObj.getConstant('Round Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Square Arrow') }, { text: this.pdfViewer.localeObj.getConstant('Diamond Arrow') }];\n // eslint-disable-next-line max-len\n var appearanceDiv = createElement('div', { id: elementID + '_properties_appearance' });\n var lineStyleContainer = createElement('div', { className: 'e-pv-properties-line-style-prop' });\n appearanceDiv.appendChild(lineStyleContainer);\n // eslint-disable-next-line max-len\n var lineHeadStartElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Start Arrow'), lineStyleContainer, 'text', 'button', true, 'e-pv-properties-line-start', elementID + '_properties_line_start');\n // eslint-disable-next-line max-len\n this.startArrowDropDown = new DropDownButton({ items: items, cssClass: 'e-pv-properties-line-start', select: this.onStartArrowHeadStyleSelect.bind(this) }, lineHeadStartElement);\n var lineHeadEndElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('End Arrow'), lineStyleContainer, 'text', 'button', true, 'e-pv-properties-line-end', elementID + '_properties_line_end');\n // eslint-disable-next-line max-len\n var borderStyleContainer = createElement('div', { className: 'e-pv-properties-border-style' });\n appearanceDiv.appendChild(borderStyleContainer);\n // eslint-disable-next-line max-len\n this.endArrowDropDown = new DropDownButton({ items: items, cssClass: 'e-pv-properties-line-end', select: this.onEndArrowHeadStyleSelect.bind(this) }, lineHeadEndElement);\n var lineStyleElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Style'), borderStyleContainer, 'text', 'button', true, 'e-pv-properties-line-style', elementID + '_properties_line_style');\n var dropDownTarget = this.createStyleList();\n // eslint-disable-next-line max-len\n this.lineStyleDropDown = new DropDownButton({ cssClass: 'e-pv-properties-line-style', target: dropDownTarget }, lineStyleElement);\n // eslint-disable-next-line max-len\n var thicknessElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Thickness'), borderStyleContainer, 'text', 'input', true, 'e-pv-properties-line-thickness', elementID + '_properties_thickness');\n this.thicknessBox = new NumericTextBox({ value: 0, format: '## pt', cssClass: 'e-pv-properties-line-thickness', min: 0, max: 12 }, thicknessElement);\n var colorStyleContainer = createElement('div', { className: 'e-pv-properties-color-style' });\n appearanceDiv.appendChild(colorStyleContainer);\n // eslint-disable-next-line max-len\n var fillColorElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Fill Color'), colorStyleContainer, 'color', 'button', true, 'e-pv-properties-line-fill-color', elementID + '_properties_fill_color');\n this.fillColorPicker = this.createColorPicker(elementID + '_properties_fill_color', true);\n this.fillColorPicker.change = function (args) {\n var currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n _this.fillDropDown.toggle();\n _this.updateColorInIcon(_this.fillDropDown.element, currentColor);\n };\n // eslint-disable-next-line max-len\n this.fillDropDown = this.createDropDownButton(fillColorElement, 'e-pv-properties-fill-color-icon', this.fillColorPicker.element.parentElement);\n this.fillDropDown.beforeOpen = this.onFillDropDownBeforeOpen.bind(this);\n this.fillDropDown.open = function () {\n _this.fillColorPicker.refresh();\n };\n // eslint-disable-next-line max-len\n var strokeColorElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Line Color'), colorStyleContainer, 'color', 'button', true, 'e-pv-properties-line-stroke-color', elementID + '_properties_stroke_color');\n this.strokeColorPicker = this.createColorPicker(elementID + '_properties_stroke_color', false);\n this.strokeColorPicker.change = function (args) {\n var currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n _this.strokeDropDown.toggle();\n _this.updateColorInIcon(_this.strokeDropDown.element, currentColor);\n };\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(strokeColorElement, 'e-pv-properties-stroke-color-icon', this.strokeColorPicker.element.parentElement);\n this.strokeDropDown.beforeOpen = this.onStrokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = function () {\n _this.strokeColorPicker.refresh();\n };\n var opacityContainer = createElement('div', { className: 'e-pv-properties-opacity-style' });\n appearanceDiv.appendChild(opacityContainer);\n // eslint-disable-next-line max-len\n var opacityElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Opacity'), opacityContainer, '', 'div', true, 'e-pv-properties-line-opacity', elementID + '_properties_opacity');\n this.opacitySlider = new Slider({\n type: 'MinRange', max: 100, min: 0, cssClass: 'e-pv-properties-line-opacity', change: function () {\n _this.updateOpacityIndicator();\n }\n }, opacityElement);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n // eslint-disable-next-line max-len\n var lineLengthElement = this.createInputElement(this.pdfViewer.localeObj.getConstant('Leader Length'), opacityContainer, 'text', 'input', true, 'e-pv-properties-line-leader-length', elementID + '_properties_leader_length');\n this.leaderLengthBox = new NumericTextBox({ value: 0, format: '## pt', cssClass: 'e-pv-properties-line-leader-length', min: 0, max: 100 }, lineLengthElement);\n }\n return appearanceDiv;\n };\n Annotation.prototype.createContent = function (text) {\n var divElement = createElement('div', { className: 'e-pv-properties-line-style-content' });\n divElement.textContent = text;\n return divElement;\n };\n Annotation.prototype.onStrokeDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n this.strokeColorPicker.refresh();\n };\n Annotation.prototype.onFillDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.fillColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n this.fillColorPicker.refresh();\n };\n Annotation.prototype.createStyleList = function () {\n var _this = this;\n var ulElement = createElement('ul');\n document.body.appendChild(ulElement);\n var solidLi = this.createListForStyle('solid');\n solidLi.addEventListener('click', function () {\n _this.setThickness('0', 'solid');\n });\n ulElement.appendChild(solidLi);\n var dottedLi = this.createListForStyle('dotted');\n dottedLi.addEventListener('click', function () {\n _this.setThickness('2', 'dotted');\n });\n ulElement.appendChild(dottedLi);\n var dashedLi = this.createListForStyle('dashed');\n dashedLi.addEventListener('click', function () {\n _this.setThickness('3', 'dashed');\n });\n ulElement.appendChild(dashedLi);\n return ulElement;\n };\n Annotation.prototype.createColorPicker = function (idString, isNoColor) {\n var inputElement = createElement('input', { id: idString + '_target' });\n document.body.appendChild(inputElement);\n var colorPicker = new ColorPicker({\n inline: true, mode: 'Palette', enableOpacity: false, value: '#000000', showButtons: false, modeSwitcher: false,\n noColor: isNoColor\n });\n if (this.pdfViewer.enableRtl) {\n colorPicker.enableRtl = true;\n }\n colorPicker.appendTo(inputElement);\n return colorPicker;\n };\n Annotation.prototype.createDropDownButton = function (element, iconClass, target) {\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 return dropDownButton;\n };\n Annotation.prototype.updateColorInIcon = function (element, color) {\n element.childNodes[0].style.borderBottomColor = color;\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.onFillColorChange = function (color) {\n // eslint-disable-next-line\n var colorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');\n if (color !== 'transparent') {\n colorElement.children[0].style.borderBottomColor = color;\n }\n };\n /**\n * @param color\n * @private\n */\n Annotation.prototype.onStrokeColorChange = function (color) {\n // eslint-disable-next-line\n var colorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');\n if (color !== 'transparent') {\n colorElement.children[0].style.borderBottomColor = color;\n }\n };\n Annotation.prototype.setThickness = function (value, style, isBlazor) {\n if (!isBlazor) {\n this.lineStyleDropDown.content = this.createDropDownContent(style).outerHTML;\n }\n this.selectedLineDashArray = value;\n if (value === '0') {\n this.selectedLineStyle = 'Solid';\n }\n else if (value === '2' || value === '3') {\n this.selectedLineStyle = 'Dashed';\n }\n };\n Annotation.prototype.createDropDownContent = function (style) {\n var divElement = createElement('div', { className: 'e-pv-line-styles-content-container' });\n // eslint-disable-next-line max-len\n var spanElement = createElement('span', { className: 'e-pv-line-styles-content', styles: 'border-bottom-style:' + style });\n divElement.appendChild(spanElement);\n return divElement;\n };\n Annotation.prototype.createListForStyle = function (style) {\n var liElement = createElement('li', { className: 'e-menu-item' });\n var divElement = createElement('div', { className: 'e-pv-line-styles-container' });\n // eslint-disable-next-line max-len\n var spanElement = createElement('span', { className: 'e-pv-line-styles-item', styles: 'border-bottom-style:' + style });\n divElement.appendChild(spanElement);\n liElement.appendChild(divElement);\n return liElement;\n };\n Annotation.prototype.onStartArrowHeadStyleSelect = function (args) {\n this.startArrowDropDown.content = this.createContent(args.item.text).outerHTML;\n };\n Annotation.prototype.onEndArrowHeadStyleSelect = function (args) {\n this.endArrowDropDown.content = this.createContent(args.item.text).outerHTML;\n };\n // eslint-disable-next-line max-len\n Annotation.prototype.createInputElement = function (labelText, parentElement, inputType, input, isLabelNeeded, className, idString) {\n var container = createElement('div', { id: idString + '_container', className: className + '-container' });\n if (isLabelNeeded) {\n var label = createElement('div', { id: idString + '_label', className: className + '-label' });\n label.textContent = labelText;\n container.appendChild(label);\n }\n if (this.pdfViewer.localeObj.getConstant('Opacity') === labelText) {\n this.opacityIndicator = createElement('span', { className: 'e-pv-properties-opacity-indicator' });\n container.appendChild(this.opacityIndicator);\n }\n var textBoxInput = createElement(input, { id: idString });\n if (input === 'input') {\n textBoxInput.type = inputType;\n }\n container.appendChild(textBoxInput);\n parentElement.appendChild(container);\n return textBoxInput;\n };\n Annotation.prototype.updateOpacityIndicator = function () {\n this.opacityIndicator.textContent = this.opacitySlider.value + '%';\n };\n /**\n * @private\n */\n Annotation.prototype.onOkClicked = function (opacityValue) {\n var startArrow;\n var endArrow;\n var thickness;\n var strokeColor;\n var fillColor;\n var opacity;\n if (!isBlazor()) {\n startArrow = this.getArrowTypeFromDropDown(this.startArrowDropDown.content);\n endArrow = this.getArrowTypeFromDropDown(this.endArrowDropDown.content);\n thickness = this.thicknessBox.value;\n strokeColor = this.strokeColorPicker.getValue(this.strokeColorPicker.value, 'hex');\n strokeColor = (strokeColor === '') ? '#ffffff00' : strokeColor;\n fillColor = this.fillColorPicker.getValue(this.fillColorPicker.value, 'hex');\n // eslint-disable-next-line max-len\n fillColor = (fillColor === '' || fillColor === '#transp' || this.fillColorPicker.value === '#ffffff00') ? '#ffffff00' : fillColor;\n opacity = this.opacitySlider.value / 100;\n }\n else {\n // eslint-disable-next-line\n var lineStartElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_line_start');\n // eslint-disable-next-line\n var lineEndElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_line_end');\n // eslint-disable-next-line\n var thicknessElement = document.querySelector('#' + this.pdfViewer.element.id + '_line_thickness');\n // eslint-disable-next-line\n var lineStyleElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_style');\n // eslint-disable-next-line\n var fillColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_fill_color_button');\n // eslint-disable-next-line\n var strokeColorElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_stroke_color_button');\n // eslint-disable-next-line\n var opacityElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_opacity');\n startArrow = this.getArrowTypeFromDropDown(lineStartElement.value, true);\n endArrow = this.getArrowTypeFromDropDown(lineEndElement.value, true);\n // eslint-disable-next-line\n thickness = parseInt(thicknessElement.value);\n strokeColor = this.getValue(strokeColorElement.children[0].style.borderBottomColor, 'hex');\n strokeColor = (strokeColor === '') ? '#ffffff00' : strokeColor;\n fillColor = this.getValue(fillColorElement.children[0].style.borderBottomColor, 'hex');\n fillColor = (fillColor === '') ? '#ffffff00' : fillColor;\n if (opacityValue) {\n opacity = (opacityValue) / 100;\n }\n else {\n opacity = opacityElement.value / 100;\n }\n if (lineStyleElement.value) {\n if (lineStyleElement.value === 'Solid') {\n this.setThickness('0', 'solid', true);\n }\n else if (lineStyleElement.value === 'Dotted') {\n this.setThickness('2', 'dotted', true);\n }\n else if (lineStyleElement.value === 'Dashed') {\n this.setThickness('3', 'dashed', true);\n }\n }\n }\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n var clonedObject = cloneObject(currentAnnotation);\n var redoClonedObject = cloneObject(currentAnnotation);\n var newNode = {};\n var isColorChanged = false;\n var isStrokeColorChanged = false;\n var isThicknessChanged = false;\n var isOpacityChanged = false;\n var isLineHeadStartStyleChanged = false;\n var isLineHeadEndStyleChanged = false;\n var isBorderDashArrayChanged = false;\n if (startArrow !== currentAnnotation.sourceDecoraterShapes) {\n newNode.sourceDecoraterShapes = startArrow;\n redoClonedObject.lineHeadStart = this.getArrowString(startArrow);\n isLineHeadStartStyleChanged = true;\n }\n if (endArrow !== currentAnnotation.taregetDecoraterShapes) {\n newNode.taregetDecoraterShapes = endArrow;\n redoClonedObject.lineHeadEnd = this.getArrowString(endArrow);\n isLineHeadEndStyleChanged = true;\n }\n if (thickness !== currentAnnotation.wrapper.children[0].style.strokeWidth) {\n newNode.thickness = thickness;\n redoClonedObject.thickness = thickness;\n isThicknessChanged = true;\n }\n if (strokeColor !== currentAnnotation.wrapper.children[0].style.strokeColor) {\n newNode.strokeColor = strokeColor;\n redoClonedObject.strokeColor = strokeColor;\n isStrokeColorChanged = true;\n }\n if (fillColor !== currentAnnotation.wrapper.children[0].style.fill) {\n newNode.fillColor = fillColor;\n redoClonedObject.fillColor = fillColor;\n isColorChanged = true;\n }\n if (opacity !== currentAnnotation.wrapper.children[0].style.opacity) {\n newNode.opacity = opacity;\n redoClonedObject.opacity = opacity;\n isOpacityChanged = true;\n }\n if (this.selectedLineDashArray !== currentAnnotation.wrapper.children[0].style.strokeDashArray) {\n newNode.borderDashArray = this.selectedLineDashArray;\n newNode.borderStyle = this.selectedLineStyle;\n redoClonedObject.borderDashArray = newNode.borderDashArray;\n redoClonedObject.borderStyle = newNode.borderStyle;\n isBorderDashArrayChanged = true;\n }\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance' && this.leaderLengthBox.value !== this.pdfViewer.selectedItems.annotations[0].leaderHeight) {\n newNode.leaderHeight = this.leaderLengthBox.value;\n }\n }\n else {\n // eslint-disable-next-line\n var leaderLengthElement = document.querySelector('#' + this.pdfViewer.element.id + '_properties_leader_length');\n // eslint-disable-next-line\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance' && parseInt(leaderLengthElement.value) !== this.pdfViewer.selectedItems.annotations[0].leaderHeight) {\n // eslint-disable-next-line\n newNode.leaderHeight = parseInt(leaderLengthElement.value);\n }\n }\n this.pdfViewer.nodePropertyChange(this.pdfViewer.selectedItems.annotations[0], newNode);\n this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill = fillColor;\n // eslint-disable-next-line max-len\n this.triggerAnnotationPropChange(this.pdfViewer.selectedItems.annotations[0], isColorChanged, isStrokeColorChanged, isThicknessChanged, isOpacityChanged, isLineHeadStartStyleChanged, isLineHeadEndStyleChanged, isBorderDashArrayChanged);\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'thickness');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'stroke');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'fill');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'opacity');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'dashArray');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'startArrow');\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'endArrow');\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance') {\n this.modifyInCollections(this.pdfViewer.selectedItems.annotations[0], 'leaderLength');\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Line properties change', '', clonedObject, redoClonedObject);\n this.renderAnnotations(currentAnnotation.pageIndex, null, null, null);\n if (!isBlazor()) {\n this.propertiesDialog.hide();\n }\n };\n Annotation.prototype.onCancelClicked = function () {\n this.propertiesDialog.hide();\n };\n Annotation.prototype.getArrowTypeFromDropDown = function (arrowType, isBlazor) {\n if (!isBlazor) {\n arrowType = arrowType.split('
    ')[0].split('\">')[1];\n }\n var arrow = 'None';\n switch (arrowType) {\n case this.pdfViewer.localeObj.getConstant('None'):\n arrow = 'None';\n break;\n case this.pdfViewer.localeObj.getConstant('Open Arrow'):\n arrow = 'OpenArrow';\n break;\n case this.pdfViewer.localeObj.getConstant('Closed Arrow'):\n arrow = 'Arrow';\n break;\n case this.pdfViewer.localeObj.getConstant('Round Arrow'):\n arrow = 'Circle';\n break;\n case this.pdfViewer.localeObj.getConstant('Square Arrow'):\n arrow = 'Square';\n break;\n case this.pdfViewer.localeObj.getConstant('Diamond Arrow'):\n arrow = 'Diamond';\n break;\n case this.pdfViewer.localeObj.getConstant('Butt'):\n arrow = 'Butt';\n break;\n }\n return arrow;\n };\n /**\n * @param arrow\n * @private\n */\n Annotation.prototype.getArrowString = function (arrow) {\n var arrowType = this.pdfViewer.localeObj.getConstant('None');\n switch (arrow) {\n case 'Arrow':\n arrowType = this.pdfViewer.localeObj.getConstant('Closed');\n break;\n case 'OpenArrow':\n arrowType = this.pdfViewer.localeObj.getConstant('Open Arrow');\n break;\n case 'Circle':\n arrowType = this.pdfViewer.localeObj.getConstant('Round');\n break;\n case 'None':\n case 'Square':\n case 'Diamond':\n arrowType = this.pdfViewer.localeObj.getConstant(arrow);\n break;\n case 'Butt':\n arrowType = this.pdfViewer.localeObj.getConstant('Butt');\n break;\n }\n return arrowType;\n };\n /**\n * @private\n */\n Annotation.prototype.onAnnotationMouseUp = function () {\n if (this.pdfViewer.selectedItems.annotations.length !== 0) {\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.enableBasedOnType();\n this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);\n if (!Browser.isDevice) {\n this.pdfViewer.toolbar.annotationToolbarModule.updateAnnnotationPropertyItems();\n }\n }\n this.pdfViewerBase.disableTextSelectionMode();\n }\n else {\n if (this.pdfViewer.textSelectionModule && !this.pdfViewerBase.isPanMode && !this.pdfViewer.designerMode) {\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line max-len\n var isSkip = this.pdfViewer.toolbar.annotationToolbarModule.inkAnnotationSelected;\n if (this.pdfViewer.annotation.freeTextAnnotationModule && !this.pdfViewer.annotation.freeTextAnnotationModule.isInuptBoxInFocus && !isSkip) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);\n this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(false);\n }\n this.pdfViewer.toolbar.annotationToolbarModule.updateAnnnotationPropertyItems();\n this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(false);\n }\n }\n };\n /**\n * @param pdfAnnotationBase\n * @param event\n * @param pdfAnnotationBase\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.onShapesMouseup = function (pdfAnnotationBase, event) {\n // eslint-disable-next-line max-len\n pdfAnnotationBase = !isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0]) ? this.pdfViewer.selectedItems.annotations[0] : pdfAnnotationBase;\n if (pdfAnnotationBase) {\n if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n }\n // eslint-disable-next-line max-len\n if ((this.pdfViewerBase.tool instanceof NodeDrawingTool || this.pdfViewerBase.tool instanceof LineTool) && !this.pdfViewerBase.tool.dragging) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);\n // eslint-disable-next-line\n var bounds = { left: pdfAnnotationBase.bounds.x, top: pdfAnnotationBase.bounds.y, width: pdfAnnotationBase.bounds.width, height: pdfAnnotationBase.bounds.height };\n if (this.pdfViewerBase.tool instanceof LineTool) {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n if (!this.pdfViewerBase.isAnnotationAdded || pdfAnnotationBase.measureType === 'Distance') {\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n // eslint-disable-next-line max-len\n this.shapeAnnotationModule.renderShapeAnnotations(pdfAnnotationBase, this.pdfViewer.annotation.getEventPageNumber(event));\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' ||\n pdfAnnotationBase.measureType === 'Radius') {\n // eslint-disable-next-line max-len\n this.measureAnnotationModule.renderMeasureShapeAnnotations(pdfAnnotationBase, this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n }\n else if (this.pdfViewerBase.tool instanceof MoveTool || this.pdfViewerBase.tool instanceof ResizeTool) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n if (pdfAnnotationBase.shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText') {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.signatureModule.modifySignatureCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else if (pdfAnnotationBase.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n this.inkAnnotationModule.modifySignatureInkCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else if (pdfAnnotationBase.shapeAnnotationType === 'Stamp' || pdfAnnotationBase.shapeAnnotationType === 'Image') {\n // eslint-disable-next-line max-len\n this.stampAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Radius' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume') {\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n if (this.pdfViewerBase.tool instanceof ResizeTool) {\n if (!pdfAnnotationBase.formFieldAnnotationType) {\n this.triggerAnnotationResize(pdfAnnotationBase);\n }\n }\n if (this.pdfViewerBase.tool instanceof MoveTool) {\n if (this.pdfViewerBase.action !== 'Select') {\n if (!pdfAnnotationBase.formFieldAnnotationType) {\n this.triggerAnnotationMove(pdfAnnotationBase);\n }\n }\n }\n }\n else if (this.pdfViewerBase.tool instanceof ConnectTool) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n // eslint-disable-next-line max-len\n if ((pdfAnnotationBase.shapeAnnotationType === 'Line' || pdfAnnotationBase.shapeAnnotationType === 'LineWidthArrowHead' || pdfAnnotationBase.shapeAnnotationType === 'Polygon')) {\n this.pdfViewer.annotation.shapeAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume') {\n if (pdfAnnotationBase.measureType === 'Distance') {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('leaderLength', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('bounds', this.pdfViewer.annotation.getEventPageNumber(event), pdfAnnotationBase);\n }\n this.triggerAnnotationResize(pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable && (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage')) {\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 if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearTextMarkupMode();\n if (pdfAnnotationBase.measureType === '' || isNullOrUndefined(pdfAnnotationBase.measureType)) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearMeasureMode();\n }\n else if (pdfAnnotationBase.measureType === 'Distance' || pdfAnnotationBase.measureType === 'Perimeter' || pdfAnnotationBase.measureType === 'Area' || pdfAnnotationBase.measureType === 'Volume' || pdfAnnotationBase.measureType === 'Radius') {\n this.pdfViewer.toolbarModule.annotationToolbarModule.clearShapeMode();\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableAnnotationPropertiesTools(true);\n }\n if (!isBlazor()) {\n if (this.pdfViewer.selectedItems.annotations.length === 1 && !this.pdfViewer.designerMode) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.selectAnnotationDeleteItem(true);\n this.pdfViewer.toolbarModule.annotationToolbarModule.setCurrentColorInPicker();\n this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden = true;\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.formDesignerModule && pdfAnnotationBase.properties.id != '' && pdfAnnotationBase.properties.id != null && pdfAnnotationBase.properties.id.slice(0, 4) != 'sign') {\n var id = document.getElementById(pdfAnnotationBase.properties.id);\n var isFieldReadOnly = id && id.disabled;\n if (!isFieldReadOnly) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\n else if (this.pdfViewer.annotation && isFieldReadOnly) {\n this.pdfViewer.annotation.clearSelection();\n }\n }\n else {\n this.pdfViewer.toolbarModule.annotationToolbarModule.showAnnotationToolbar(this.pdfViewer.toolbarModule.annotationItem);\n }\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 if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.isToolbarHidden = false;\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);\n this.pdfViewer.toolbarModule.annotationToolbarModule.adjustViewer(true);\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param pdfAnnotationBase\n * @param isNewlyAdded\n * @param pdfAnnotationBase\n * @param isNewlyAdded\n * @private\n */\n Annotation.prototype.updateCalibrateValues = function (pdfAnnotationBase, isNewlyAdded) {\n if (pdfAnnotationBase.measureType === 'Distance') {\n pdfAnnotationBase.notes = updateDistanceLabel(pdfAnnotationBase, pdfAnnotationBase.vertexPoints, this.measureAnnotationModule);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Radius') {\n pdfAnnotationBase.notes = updateRadiusLabel(pdfAnnotationBase, this.measureAnnotationModule);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Perimeter') {\n pdfAnnotationBase.notes = updatePerimeterLabel(pdfAnnotationBase, pdfAnnotationBase.vertexPoints, this.measureAnnotationModule);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Area') {\n // eslint-disable-next-line max-len\n pdfAnnotationBase.notes = this.measureAnnotationModule.calculateArea(pdfAnnotationBase.vertexPoints, pdfAnnotationBase.id, pdfAnnotationBase.pageIndex);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n updateCalibrateLabel(pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n else if (pdfAnnotationBase.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n pdfAnnotationBase.notes = this.measureAnnotationModule.calculateVolume(pdfAnnotationBase.vertexPoints, pdfAnnotationBase.id, pdfAnnotationBase.pageIndex);\n if (pdfAnnotationBase.enableShapeLabel === true) {\n pdfAnnotationBase.labelContent = pdfAnnotationBase.notes;\n updateCalibrateLabel(pdfAnnotationBase);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.measureAnnotationModule.modifyInCollection('notes', pdfAnnotationBase.pageIndex, pdfAnnotationBase, isNewlyAdded);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.addTextToComments(pdfAnnotationBase.annotName, pdfAnnotationBase.notes);\n this.renderAnnotations(pdfAnnotationBase.pageIndex, null, null, null, null);\n }\n };\n /**\n * @private\n */\n Annotation.prototype.onAnnotationMouseDown = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1 && this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n if (!isBlazor() && Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel.style.display === 'none') {\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(\"\");\n }\n else {\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbarModule.annotationToolbarModule.createAnnotationToolbarForMobile();\n this.pdfViewer.toolbarModule.annotationToolbarModule.createPropertyTools(this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType);\n var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');\n if (editIcon && !editIcon.parentElement.classList.contains('e-pv-select')) {\n editIcon.parentElement.classList.add('e-pv-select');\n }\n }\n }\n }\n }\n this.enableBasedOnType();\n this.pdfViewer.toolbar.annotationToolbarModule.selectAnnotationDeleteItem(true);\n }\n }\n };\n Annotation.prototype.enableBasedOnType = function () {\n var isLock = false;\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n isLock = annotation.annotationSettings.isLock;\n if (isLock && this.checkAllowedInteractions('PropertyChange', annotation)) {\n isLock = false;\n }\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!isLock) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableStampAnnotationPropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(false);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableFreeTextAnnotationPropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n this.pdfViewer.toolbar.annotationToolbarModule.enableSignaturePropertiesTools(true);\n }\n else {\n if (this.pdfViewer.selectedItems.annotations.length === 1 && this.pdfViewer.selectedItems.annotations[0].formFieldAnnotationType === null) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationPropertiesTools(true);\n }\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation && !(this.pdfViewer.selectedItems.annotations[0].propName === 'annotations') && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createMobileAnnotationToolbar(true, true);\n }\n };\n Annotation.prototype.getProperDate = function (date) {\n var dateObject = new Date(date.toString());\n if (isNaN(dateObject.getFullYear())) {\n var dateString = date.slice(2, 16);\n // eslint-disable-next-line max-len\n dateString = dateString.slice(0, 4) + '/' + dateString.slice(4, 6) + '/' + dateString.slice(6, 8) + ' ' + dateString.slice(8, 10) + ':' + dateString.slice(10, 12) + ':' + dateString.slice(12, 14);\n dateObject = new Date(dateString);\n }\n // eslint-disable-next-line max-len\n return (dateObject.getMonth() + 1) + '/' + dateObject.getDate() + '/' + dateObject.getFullYear() + ' ' + dateObject.getHours() + ':' + dateObject.getMinutes() + ':' + dateObject.getSeconds();\n };\n /**\n * @param pageAnnotations\n * @param pageNumber\n * @private\n */\n Annotation.prototype.getPageCollection = function (pageAnnotations, pageNumber) {\n var index = null;\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (pageAnnotations[i].pageIndex === pageNumber) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * @param annotations\n * @param id\n * @param annotations\n * @param id\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationWithId = function (annotations, id) {\n // eslint-disable-next-line\n var annotation;\n for (var i = 0; i < annotations.length; i++) {\n if (id === annotations[i].id) {\n annotation = annotations[i];\n }\n }\n return annotation;\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getEventPageNumber = function (event) {\n var eventTarget = event.target;\n var eventParentElement = event.target.parentElement;\n if (eventTarget.classList.contains('e-pv-hyperlink')) {\n eventTarget = eventParentElement;\n }\n else if (eventParentElement && eventParentElement.classList.contains('foreign-object') && eventParentElement.parentElement && eventParentElement.parentElement.parentElement && eventParentElement.parentElement.parentElement.parentElement) {\n eventTarget = eventParentElement.parentElement.parentElement.parentElement;\n }\n else if (eventTarget.classList.contains('e-pdfviewer-formFields')) {\n eventTarget = eventParentElement;\n }\n var pageString;\n if (eventTarget) {\n // eslint-disable-next-line\n pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];\n }\n if (isNaN(pageString)) {\n event = this.pdfViewerBase.annotationEvent;\n if (event) {\n eventTarget = event.target;\n // eslint-disable-next-line\n pageString = eventTarget.id.split('_text_')[1] || eventTarget.id.split('_textLayer_')[1] || eventTarget.id.split('_annotationCanvas_')[1] || eventTarget.id.split('_pageDiv_')[1];\n }\n }\n // eslint-disable-next-line\n return parseInt(pageString);\n };\n /**\n * @param commentsAnnotations\n * @param parentAnnotation\n * @param author\n * @param commentsAnnotations\n * @param parentAnnotation\n * @param author\n * @param commentsAnnotations\n * @param parentAnnotation\n * @param author\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getAnnotationComments = function (commentsAnnotations, parentAnnotation, author) {\n var newArray = [];\n var annotationObject = null;\n if (commentsAnnotations) {\n if (commentsAnnotations.length > 0) {\n for (var i = 0; i < commentsAnnotations.length; i++) {\n // eslint-disable-next-line\n var annotation = commentsAnnotations[i];\n annotationObject = {\n // eslint-disable-next-line max-len\n shapeAnnotationType: 'sticky', author: annotation.Author, modifiedDate: annotation.ModifiedDate, note: annotation.Note, state: annotation.state, stateModel: annotation.stateModel,\n comments: [], review: { state: annotation.State, stateModel: annotation.StateModel, modifiedDate: annotation.ModifiedDate, author: annotation.Author },\n annotName: annotation.AnnotName, parentId: parentAnnotation.AnnotName, subject: 'Comments',\n isLock: annotation.IsLock\n };\n newArray[newArray.length] = annotationObject;\n }\n }\n }\n return newArray;\n };\n Annotation.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 /**\n * @private\n */\n Annotation.prototype.createGUID = function () {\n // eslint-disable-next-line max-len\n return this.getRandomNumber();\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 * @private\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.createAnnotationLayer = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n this.updateCanvas(canvas, pageWidth, pageHeight, pageNumber);\n return canvas;\n }\n else {\n // eslint-disable-next-line max-len\n var annotationCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_annotationCanvas_' + pageNumber, className: 'e-pv-annotation-canvas' });\n this.updateCanvas(annotationCanvas, pageWidth, pageHeight, pageNumber);\n pageDiv.appendChild(annotationCanvas);\n return annotationCanvas;\n }\n };\n /**\n * @param width\n * @param height\n * @param pageNumber\n * @private\n */\n Annotation.prototype.resizeAnnotations = function (width, height, pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (canvas) {\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n this.pdfViewerBase.applyElementStyles(canvas, pageNumber);\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n Annotation.prototype.clearAnnotationCanvas = function (pageNumber) {\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n var zoom = this.pdfViewerBase.getZoomFactor();\n var ratio = this.pdfViewerBase.getZoomRatio(zoom);\n if (canvas) {\n var width = this.pdfViewerBase.pageSize[pageNumber].width;\n var height = this.pdfViewerBase.pageSize[pageNumber].height;\n canvas.width = width * ratio;\n canvas.height = height * ratio;\n canvas.style.width = width * zoom + 'px';\n canvas.style.height = height * zoom + 'px';\n }\n };\n /**\n * @param pageNumber\n * @param shapeAnnotation\n * @param measureShapeAnnotation\n * @param textMarkupAnnotation\n * @param canvas\n * @param isImportAnnotations\n * @param pageNumber\n * @param shapeAnnotation\n * @param measureShapeAnnotation\n * @param textMarkupAnnotation\n * @param canvas\n * @param isImportAnnotations\n * @param pageNumber\n * @param shapeAnnotation\n * @param measureShapeAnnotation\n * @param textMarkupAnnotation\n * @param canvas\n * @param isImportAnnotations\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.renderAnnotations = function (pageNumber, shapeAnnotation, measureShapeAnnotation, textMarkupAnnotation, canvas, isImportAnnotations, isAnnotOrderAction) {\n this.clearAnnotationCanvas(pageNumber);\n if (this.shapeAnnotationModule) {\n if (isImportAnnotations) {\n this.shapeAnnotationModule.renderShapeAnnotations(shapeAnnotation, pageNumber, true);\n }\n else {\n this.shapeAnnotationModule.renderShapeAnnotations(shapeAnnotation, pageNumber, null, isAnnotOrderAction);\n }\n }\n if (this.measureAnnotationModule) {\n if (isImportAnnotations) {\n this.measureAnnotationModule.renderMeasureShapeAnnotations(measureShapeAnnotation, pageNumber, true);\n }\n else {\n this.measureAnnotationModule.renderMeasureShapeAnnotations(measureShapeAnnotation, pageNumber, null, isAnnotOrderAction);\n }\n }\n if (canvas !== null && canvas !== undefined) {\n canvas = canvas;\n }\n else {\n canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n }\n this.pdfViewer.drawing.refreshCanvasDiagramLayer(canvas, pageNumber);\n if (this.textMarkupAnnotationModule) {\n if (isImportAnnotations) {\n // eslint-disable-next-line\n this.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(textMarkupAnnotation, pageNumber, true);\n }\n else {\n // eslint-disable-next-line\n this.textMarkupAnnotationModule.renderTextMarkupAnnotationsInPage(textMarkupAnnotation, pageNumber);\n }\n }\n };\n /**\n * @param pageNumber\n * @param annotation\n * @param annotationId\n * @param pageNumber\n * @param annotation\n * @param annotationId\n * @param pageNumber\n * @param annotation\n * @param annotationId\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.storeAnnotations = function (pageNumber, annotation, annotationId) {\n // let annotationId: string = '_annotations_textMarkup';\n // if (annotation is ITextMarkupAnnotation) {\n // annotationId = '_annotations_textMarkup';\n // } else if (annotation as IShapeAnnotation) {\n // annotationId = '_annotations_shape';\n // } else {\n // annotationId = '_annotations_stamp';\n // }\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (sessionSize > 4500) {\n this.clearAnnotationStorage();\n this.pdfViewerBase.isStorageExceed = true;\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 + annotationId);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + annotationId];\n }\n var index = 0;\n if (!storeObject) {\n this.storeAnnotationCollections(annotation, pageNumber);\n var pageAnnotation = { pageIndex: pageNumber, annotations: [] };\n pageAnnotation.annotations.push(annotation);\n index = pageAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(pageAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + annotationId] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + annotationId, annotationStringified);\n }\n }\n else {\n this.storeAnnotationCollections(annotation, pageNumber);\n var annotObject_1 = JSON.parse(storeObject);\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + annotationId);\n }\n var pageIndex_1 = this.pdfViewer.annotationModule.getPageCollection(annotObject_1, pageNumber);\n if (annotObject_1[pageIndex_1]) {\n annotObject_1[pageIndex_1].annotations.filter(function (item, index) {\n if (item.annotName === annotation.annotName) {\n annotObject_1[pageIndex_1].annotations.splice(index, 1);\n }\n });\n annotObject_1[pageIndex_1].annotations.push(annotation);\n index = annotObject_1[pageIndex_1].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_1.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject_1);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + annotationId] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + annotationId, annotationStringified);\n }\n }\n return index;\n };\n /**\n * @param type\n * @private\n */\n Annotation.prototype.getArrowType = function (type) {\n var decoratorShapes = 'None';\n switch (type) {\n case 'ClosedArrow':\n case 'Closed':\n decoratorShapes = 'Arrow';\n break;\n case 'OpenArrow':\n case 'Open':\n decoratorShapes = 'OpenArrow';\n break;\n case 'Square':\n decoratorShapes = 'Square';\n break;\n case 'Circle':\n case 'Round':\n decoratorShapes = 'Circle';\n break;\n case 'Diamond':\n decoratorShapes = 'Diamond';\n break;\n case 'Butt':\n decoratorShapes = 'Butt';\n break;\n case 'Slash':\n // decoratorShapes = 'Slash';\n break;\n }\n return decoratorShapes;\n };\n /**\n * @param arrow\n * @private\n */\n Annotation.prototype.getArrowTypeForCollection = function (arrow) {\n var arrowType;\n switch (arrow) {\n case 'Arrow':\n arrowType = 'ClosedArrow';\n break;\n case 'OpenArrow':\n case 'Square':\n case 'Circle':\n case 'Diamond':\n case 'None':\n arrowType = arrow.toString();\n break;\n case 'Butt':\n arrowType = 'Butt';\n break;\n }\n return arrowType;\n };\n /**\n * @param bound\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getBounds = function (bound, pageIndex) {\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (pageDetails.rotation === 1) {\n return { left: bound.top, top: pageDetails.width - (bound.left + bound.width), width: bound.height, height: bound.width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n return { left: pageDetails.height - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n }\n else {\n return bound;\n }\n }\n else {\n return bound;\n }\n };\n /**\n * @param bound\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getInkBounds = function (bound, pageIndex) {\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (pageDetails.rotation === 1) {\n return { x: bound.y, y: pageDetails.width - (bound.x + bound.width), 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.x - bound.width, y: pageDetails.height - bound.y - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n return { x: pageDetails.height - bound.y - bound.height, y: bound.x, width: bound.height, height: bound.width };\n }\n else {\n return bound;\n }\n }\n else {\n return bound;\n }\n };\n /**\n * @param points\n * @param pageIndex\n * @param points\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getVertexPoints = function (points, pageIndex) {\n if (points) {\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails.rotation === 1) {\n var points1 = [];\n for (var i = 0; i < points.length; i++) {\n var point = { x: points[i].y, y: pageDetails.width - points[i].x };\n points1.push(point);\n }\n return points1;\n }\n else if (pageDetails.rotation === 2) {\n var points2 = [];\n for (var i = 0; i < points.length; i++) {\n var point = { x: pageDetails.width - points[i].x, y: pageDetails.height - points[i].y };\n points2.push(point);\n }\n return points2;\n }\n else if (pageDetails.rotation === 3) {\n var points3 = [];\n for (var i = 0; i < points.length; i++) {\n var point = { x: pageDetails.height - points[i].y, y: points[i].x };\n points3.push(point);\n }\n return points3;\n }\n else {\n return points;\n }\n }\n };\n /**\n * @param pageIndex\n * @param shapeAnnotations\n * @param idString\n * @param pageIndex\n * @param shapeAnnotations\n * @param idString\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.getStoredAnnotations = function (pageIndex, shapeAnnotations, idString) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + idString);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + idString];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n }\n else {\n annotationCollection = null;\n }\n }\n else {\n annotationCollection = null;\n }\n return annotationCollection;\n };\n /**\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @param pdfAnnotationBase\n * @param isColor\n * @param isStroke\n * @param isThickness\n * @param isOpacity\n * @param isLineStart\n * @param isLineEnd\n * @param isDashArray\n * @param isFreeText\n * @param previousText\n * @param currentText\n * @private\n */\n // eslint-disable-next-line max-len\n Annotation.prototype.triggerAnnotationPropChange = function (pdfAnnotationBase, isColor, isStroke, isThickness, isOpacity, isLineStart, isLineEnd, isDashArray, isFreeText, previousText, currentText) {\n var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationPropertiesChange', pageIndex: pdfAnnotationBase.pageIndex, annotationId: pdfAnnotationBase.annotName, annotationType: type, isColorChanged: isColor, isOpacityChanged: isOpacity, isThicknessChanged: isThickness, isStrokeColorChanged: isStroke };\n if (isFreeText) {\n eventArgs.isFreeTextChanged = isFreeText;\n eventArgs.previousText = previousText;\n eventArgs.currentText = currentText;\n }\n if (isLineStart) {\n eventArgs.isLineHeadStartStyleChanged = isLineStart;\n }\n if (isLineEnd) {\n eventArgs.isLineHeadEndStyleChanged = isLineEnd;\n }\n if (isDashArray) {\n eventArgs.isBorderDashArrayChanged = isDashArray;\n }\n this.pdfViewer.trigger('annotationPropertiesChange', eventArgs);\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n Annotation.prototype.triggerAnnotationAdd = function (pdfAnnotationBase) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n // eslint-disable-next-line\n var bounds = { left: pdfAnnotationBase.wrapper.bounds.x, top: pdfAnnotationBase.wrapper.bounds.y, width: pdfAnnotationBase.wrapper.bounds.width, height: pdfAnnotationBase.wrapper.bounds.height };\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n var labelSettings;\n if (this.pdfViewer.enableShapeLabel) {\n labelSettings = {\n // eslint-disable-next-line max-len\n fontColor: pdfAnnotationBase.fontColor, fontSize: pdfAnnotationBase.fontSize, fontFamily: pdfAnnotationBase.fontFamily,\n opacity: pdfAnnotationBase.labelOpacity, labelContent: pdfAnnotationBase.labelContent, fillColor: pdfAnnotationBase.labelFillColor\n };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, bounds, setting, null, null, null, labelSettings);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, bounds, setting);\n }\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n Annotation.prototype.triggerAnnotationResize = function (pdfAnnotationBase) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n var index = this.getAnnotationIndex(pdfAnnotationBase.pageIndex, pdfAnnotationBase.id);\n // eslint-disable-next-line\n var annotationBounds = pdfAnnotationBase.bounds;\n var currentPosition = { left: annotationBounds.x, top: annotationBounds.y, x: annotationBounds.x, y: annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };\n // eslint-disable-next-line max-len\n var previousPosition = { left: annotationBounds.oldProperties.x, top: annotationBounds.oldProperties.y, width: annotationBounds.oldProperties.width, height: annotationBounds.oldProperties.height };\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n var labelSettings;\n if (this.pdfViewer.enableShapeLabel && (pdfAnnotationBase.shapeAnnotationType !== 'HandWrittenSignature')) {\n labelSettings = {\n // eslint-disable-next-line max-len\n fontColor: pdfAnnotationBase.fontColor, fontSize: pdfAnnotationBase.fontSize, fontFamily: pdfAnnotationBase.fontFamily,\n opacity: pdfAnnotationBase.labelOpacity, labelContent: pdfAnnotationBase.labelContent, fillColor: pdfAnnotationBase.labelFillColor, notes: pdfAnnotationBase.notes\n };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, currentPosition, setting, null, null, null, labelSettings);\n }\n else {\n if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.signatureName, pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.opacity, pdfAnnotationBase.strokeColor, pdfAnnotationBase.thickness, currentPosition, previousPosition);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationResize(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, currentPosition, setting);\n }\n }\n };\n /**\n * @param pdfAnnotationBase\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.triggerAnnotationMove = function (pdfAnnotationBase, isMoving) {\n // eslint-disable-next-line\n var setting = {\n opacity: pdfAnnotationBase.opacity, fillColor: pdfAnnotationBase.fillColor, strokeColor: pdfAnnotationBase.strokeColor,\n thickness: pdfAnnotationBase.thickness, author: pdfAnnotationBase.author, subject: pdfAnnotationBase.subject,\n modifiedDate: pdfAnnotationBase.modifiedDate\n };\n // eslint-disable-next-line\n var annotationBounds = pdfAnnotationBase.bounds;\n var currentPosition = { left: annotationBounds.x, top: annotationBounds.y, x: annotationBounds.x, y: annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };\n // eslint-disable-next-line max-len\n var previousPosition = { left: annotationBounds.oldProperties.x ? annotationBounds.oldProperties.x : annotationBounds.x, top: annotationBounds.oldProperties.y ? annotationBounds.oldProperties.y : annotationBounds.y, width: annotationBounds.width, height: annotationBounds.height };\n var type = this.getAnnotationType(pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(pdfAnnotationBase.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(pdfAnnotationBase.taregetDecoraterShapes);\n setting.borderDashArray = pdfAnnotationBase.borderDashArray;\n }\n if (pdfAnnotationBase.shapeAnnotationType === 'HandWrittenSignature' || pdfAnnotationBase.shapeAnnotationType === 'SignatureText' || pdfAnnotationBase.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureMove(pdfAnnotationBase.pageIndex, pdfAnnotationBase.signatureName, pdfAnnotationBase.shapeAnnotationType, pdfAnnotationBase.opacity, pdfAnnotationBase.strokeColor, pdfAnnotationBase.thickness, previousPosition, currentPosition);\n }\n else {\n // eslint-disable-next-line max-len\n isMoving ? this.pdfViewer.fireAnnotationMoving(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, setting, previousPosition, currentPosition) : this.pdfViewer.fireAnnotationMove(pdfAnnotationBase.pageIndex, pdfAnnotationBase.annotName, type, setting, previousPosition, currentPosition);\n }\n };\n /**\n * @param annotationId\n * @param pageNumber\n * @param annotation\n * @param annotationCollection\n * @param isDblClick\n * @param isSelected\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.annotationSelect = function (annotationId, pageNumber, annotation, annotationCollection, isDblClick, isSelected) {\n // eslint-disable-next-line\n var annotSettings;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'TextMarkup', subType: annotation.subject, opacity: annotation.opacity, color: annotation.color, textMarkupContent: annotation.textMarkupContent, textMarkupStartIndex: annotation.textMarkupStartIndex, textMarkupEndIndex: annotation.textMarkupEndIndex, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'StickyNotes') {\n annotSettings = { type: 'StickyNotes', opacity: annotation.opacity, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n annotSettings = { type: 'Stamp', opacity: annotation.opacity, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Ink') {\n annotSettings = {\n // eslint-disable-next-line max-len\n type: 'Ink', opacity: annotation.opacity, strokeColor: annotation.strokeColor, thickness: annotation.thickness, modifiedDate: annotation.modifiedDate,\n width: annotation.bounds.width, height: annotation.bounds.height, left: annotation.bounds.x, top: annotation.bounds.y, data: annotation.data, customData: annotation.customData\n };\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n annotSettings = {\n type: 'FreeText', opacity: annotation.opacity, fillColor: annotation.fillColor,\n // eslint-disable-next-line max-len\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, content: annotation.dynamicText,\n // eslint-disable-next-line max-len\n fontFamily: annotation.fontFamily, fontSize: annotation.fontSize, fontColor: annotation.fontColor, textAlign: annotation.textAlign, fontStyle: this.updateFreeTextFontStyle(annotation.font), customData: annotation.customData\n };\n }\n else if (annotation.measureType === '') {\n if (annotation.shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Shape', subType: 'Line', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Shape', subType: 'Arrow', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.shapeAnnotationType === 'Rectangle') {\n annotSettings = {\n type: 'Shape', subType: 'Rectangle', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse') {\n annotSettings = {\n type: 'Shape', subType: 'Circle', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.shapeAnnotationType === 'Polygon') {\n annotSettings = {\n type: 'Shape', subType: 'Polygon', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n }\n else if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Measure', subType: 'Distance', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.measureType === 'Perimeter') {\n // eslint-disable-next-line max-len\n annotSettings = { type: 'Measure', subType: 'Perimeter', opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor, thickness: annotation.thickness, borderDashArray: annotation.borderDashArray, lineHeadStartStyle: annotation.sourceDecoraterShapes, lineHeadEndStyle: annotation.taregetDecoraterShapes, customData: annotation.customData };\n }\n else if (annotation.measureType === 'Area') {\n annotSettings = {\n type: 'Measure', subType: 'Area', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.measureType === 'Radius') {\n annotSettings = {\n type: 'Measure', subType: 'Radius', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, customData: annotation.customData\n };\n }\n else if (annotation.measureType === 'Volume') {\n annotSettings = {\n type: 'Measure', subType: 'Volume', opacity: annotation.opacity, fillColor: annotation.fillColor,\n strokeColor: annotation.strokeColor, thickness: annotation.thickness, calibrate: annotation.calibrate,\n annotationId: annotation.annotName, customData: annotation.customData\n };\n }\n }\n // eslint-disable-next-line\n var overlappedCollection = [];\n // eslint-disable-next-line\n var overlappedAnnotations = this.getOverlappedAnnotations(annotation, pageNumber);\n if (overlappedAnnotations && this.overlappedCollections) {\n // eslint-disable-next-line\n var overlappedCollections = [];\n // eslint-disable-next-line\n for (var i = 0; i < overlappedAnnotations.length; i++) {\n if (overlappedAnnotations[i].shapeAnnotationType !== 'textMarkup' && this.overlappedCollections || isSelected) {\n for (var j = 0; j < this.overlappedCollections.length; j++) {\n if (overlappedAnnotations[i].annotName === this.overlappedCollections[j].annotName) {\n overlappedCollections.push(overlappedAnnotations[i]);\n break;\n }\n }\n }\n else {\n overlappedCollections.push(overlappedAnnotations[i]);\n }\n }\n overlappedAnnotations = overlappedCollections;\n }\n if (this.pdfViewer.enableMultiLineOverlap) {\n // eslint-disable-next-line\n for (var i = 0; i < overlappedAnnotations.length; i++) {\n if (overlappedAnnotations[i].shapeAnnotationType === 'textMarkup') {\n var isOverlapped = false;\n for (var j = 0; j < overlappedAnnotations[i].bounds.length; j++) {\n // eslint-disable-next-line\n var bounds = this.orderTextMarkupBounds(overlappedAnnotations[i].bounds[j]);\n // eslint-disable-next-line\n var clickedPosition = this.textMarkupAnnotationModule.annotationClickPosition;\n if (clickedPosition && (clickedPosition.x || clickedPosition.y)) {\n if (bounds.left <= clickedPosition.x && (bounds.left + bounds.width) >= clickedPosition.x) {\n if (bounds.top <= clickedPosition.y && (bounds.top + bounds.height) >= clickedPosition.y) {\n isOverlapped = true;\n }\n }\n }\n else {\n isOverlapped = true;\n }\n }\n if (!isOverlapped) {\n overlappedAnnotations.splice(i, 1);\n }\n }\n }\n }\n if (overlappedAnnotations && overlappedAnnotations.length > 0) {\n annotationCollection = overlappedAnnotations;\n // eslint-disable-next-line\n for (var i = 0; i < annotationCollection.length; i++) {\n // eslint-disable-next-line\n var overlappedObject = cloneObject(annotationCollection[i]);\n overlappedObject.annotationId = annotationCollection[i].annotName;\n if (annotationId === annotationCollection[i].annotName && annotation.measureType && annotation.measureType === 'Volume') {\n annotSettings.calibrate = annotationCollection[i].calibrate;\n }\n delete overlappedObject.annotName;\n overlappedCollection.push(overlappedObject);\n }\n }\n else {\n overlappedCollection = null;\n }\n this.addFreeTextProperties(annotation, annotSettings);\n var annotationAddMode = annotation.annotationAddMode;\n if (!isDblClick) {\n if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n if (!this.pdfViewerBase.isNewStamp && this.annotationSelected) {\n if (overlappedCollection) {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, overlappedCollection, null, null, annotationAddMode);\n }\n else {\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, null, null, null, annotationAddMode);\n }\n }\n }\n else {\n var module = this.textMarkupAnnotationModule;\n var multiPageCollection = module && module.multiPageCollectionList(annotation);\n if (multiPageCollection && multiPageCollection.length === 0) {\n multiPageCollection = null;\n }\n if (this.annotationSelected) {\n if (overlappedCollection) {\n isSelected = false;\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, overlappedCollection, multiPageCollection, isSelected, annotationAddMode);\n }\n else {\n isSelected = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationSelect(annotationId, pageNumber, annotSettings, null, multiPageCollection, isSelected, annotationAddMode);\n }\n }\n }\n }\n else {\n if (annotation.shapeAnnotationType === 'Stamp' || annotation.shapeAnnotationType === 'Image') {\n if (!this.pdfViewerBase.isNewStamp) {\n this.pdfViewer.fireAnnotationDoubleClick(annotationId, pageNumber, annotSettings);\n }\n }\n else {\n this.pdfViewer.fireAnnotationDoubleClick(annotationId, pageNumber, annotSettings);\n }\n }\n this.annotationSelected = true;\n };\n // eslint-disable-next-line\n Annotation.prototype.selectSignature = function (signatureId, pageNumber, signatureModule) {\n // eslint-disable-next-line\n var annotBounds = signatureModule.bounds;\n // eslint-disable-next-line\n var bounds = { height: annotBounds.height, width: annotBounds.width, x: annotBounds.x, y: annotBounds.y };\n if (!this.pdfViewerBase.signatureAdded) {\n // eslint-disable-next-line max-len\n var signature = { bounds: bounds, opacity: signatureModule.opacity, thickness: signatureModule.thickness, strokeColor: signatureModule.strokeColor };\n this.pdfViewer.fireSignatureSelect(signatureId, pageNumber, signature);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.editSignature = function (signature) {\n // eslint-disable-next-line\n var currentAnnotation;\n if (signature.uniqueKey) {\n // eslint-disable-next-line\n currentAnnotation = this.pdfViewer.nameTable[signature.uniqueKey];\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n var pageNumber = currentAnnotation.pageIndex;\n if (currentAnnotation.shapeAnnotationType === 'HandWrittenSignature' || currentAnnotation.shapeAnnotationType === 'SignatureText' || currentAnnotation.shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n // eslint-disable-next-line\n var redoClonedObject = cloneObject(currentAnnotation);\n if (currentAnnotation.opacity !== signature.opacity) {\n redoClonedObject.opacity = signature.opacity;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: signature.opacity });\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, true, false, clonedObject.opacity, redoClonedObject.opacity);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Opacity', '', clonedObject, redoClonedObject);\n }\n if (currentAnnotation.strokeColor !== signature.strokeColor) {\n redoClonedObject.strokeColor = signature.strokeColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: signature.strokeColor });\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, true, false, false, clonedObject.strokeColor, redoClonedObject.strokeColor);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n }\n if (currentAnnotation.thickness !== signature.thickness) {\n redoClonedObject.thickness = signature.thickness;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: signature.thickness });\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignaturePropertiesChange(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, false, false, true, clonedObject.thickness, redoClonedObject.thickness);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);\n }\n currentAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.signatureModule.modifySignatureCollection(null, pageNumber, currentAnnotation, true);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.deletComment = function (commentDiv) {\n if (commentDiv.parentElement.firstChild === commentDiv) {\n this.deleteAnnotation();\n }\n else {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.modifyCommentDeleteProperty(commentDiv.parentElement, commentDiv);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.addReplyComments = function (currentAnnotation, replyComment, commentType) {\n if (commentType === 'add') {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(currentAnnotation.annotName);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createCommentDiv(commentsMainDiv);\n for (var j = 0; j < replyComment.length; j++) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveCommentDiv(commentsMainDiv, replyComment[j]);\n }\n }\n else if (commentType === 'next') {\n // eslint-disable-next-line\n var commentsMainDiv = document.getElementById(currentAnnotation.annotationId);\n this.selectAnnotation(currentAnnotation);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveCommentDiv(commentsMainDiv, replyComment);\n }\n };\n Annotation.prototype.editComments = function (commentId, editComment) {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(commentId);\n commentDiv.childNodes[1].ej2_instances[0].value = editComment;\n };\n // eslint-disable-next-line\n Annotation.prototype.editAnnotation = function (annotation) {\n // eslint-disable-next-line\n var currentAnnotation;\n var annotationId;\n var annotationType;\n var pageNumber;\n var isTextMarkupUpdate = false;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n annotationId = currentAnnotation.annotName;\n pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n }\n else {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n annotationId = currentAnnotation.annotName;\n pageNumber = currentAnnotation.pageIndex;\n }\n }\n if (annotation.uniqueKey !== undefined) {\n // eslint-disable-next-line\n currentAnnotation = this.pdfViewer.nameTable[annotation.uniqueKey];\n currentAnnotation.annotationSettings.isLock = annotation.annotationSettings.isLock;\n annotationId = currentAnnotation.annotName;\n pageNumber = currentAnnotation.pageIndex;\n if (isBlazor()) {\n if (annotation.allowedInteractions) {\n var allowedInteractionsCount = annotation.allowedInteractions.length;\n for (var i = 0; i < allowedInteractionsCount; i++) {\n if (annotation.allowedInteractions[i] === 0) {\n annotation.allowedInteractions[i] = AllowedInteraction.Select;\n }\n if (annotation.allowedInteractions[i] === 1) {\n annotation.allowedInteractions[i] = AllowedInteraction.Move;\n }\n if (annotation.allowedInteractions[i] === 2) {\n annotation.allowedInteractions[i] = AllowedInteraction.Resize;\n }\n if (annotation.allowedInteractions[i] === 3) {\n annotation.allowedInteractions[i] = AllowedInteraction.Delete;\n }\n if (annotation.allowedInteractions[i] === 4) {\n annotation.allowedInteractions[i] = AllowedInteraction.PropertyChange;\n }\n if (annotation.allowedInteractions[i] === 5) {\n annotation.allowedInteractions[i] = AllowedInteraction.None;\n }\n }\n }\n }\n // eslint-disable-next-line\n currentAnnotation.allowedInteractions = annotation.allowedInteractions ? annotation.allowedInteractions : this.updateAnnotationAllowedInteractions(annotation);\n }\n if (!currentAnnotation) {\n if (annotation.shapeAnnotationType === 'sticky' && annotation.annotationId !== undefined) {\n // eslint-disable-next-line\n currentAnnotation = this.pdfViewer.nameTable[annotation.annotationId];\n currentAnnotation.annotationSettings.isLock = annotation.annotationSettings.isLock;\n annotationId = currentAnnotation.annotName;\n pageNumber = currentAnnotation.pageIndex;\n }\n }\n if (annotation.shapeAnnotationType === 'textMarkup') {\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line max-len\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.getAnnotations(annotation.pageNumber, annotation);\n for (var i = 0; i < currentAnnotation.length; i++) {\n if (annotation.annotationId === currentAnnotation[i].annotName) {\n isTextMarkupUpdate = true;\n currentAnnotation = currentAnnotation[i];\n currentAnnotation.isPrint = annotation.isPrint;\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = currentAnnotation;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = currentAnnotation.pageNumber;\n currentAnnotation.allowedInteractions = annotation.allowedInteractions;\n pageNumber = currentAnnotation.pageNumber;\n annotationId = annotation.annotationId;\n break;\n }\n }\n }\n }\n if (currentAnnotation) {\n // eslint-disable-next-line\n var clonedObject = cloneObject(currentAnnotation);\n // eslint-disable-next-line\n var redoClonedObject = cloneObject(currentAnnotation);\n if (annotation.shapeAnnotationType === 'textMarkup') {\n annotationType = 'textMarkup';\n }\n if (annotation && annotation.isCommentLock === true) {\n currentAnnotation.isCommentLock = annotation.isCommentLock;\n }\n if (annotation.comments) {\n for (var j_1 = 0; j_1 < annotation.comments.length; j_1++) {\n if (annotation.comments[j_1].isLock === true) {\n if (annotationType) {\n currentAnnotation.comments = annotation.comments;\n currentAnnotation.comments[j_1].isLock = annotation.comments[j_1].isLock;\n }\n else {\n currentAnnotation.properties.comments = annotation.comments;\n currentAnnotation.properties.comments[j_1].isLock = annotation.comments[j_1].isLock;\n }\n }\n }\n }\n if (annotation && annotation.note !== '' && annotation.note !== undefined) {\n if (annotationType) {\n currentAnnotation.note = annotation.note;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, currentAnnotation.note);\n }\n else {\n currentAnnotation.notes = annotation.note;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, currentAnnotation.notes);\n }\n }\n else {\n if (annotation && annotation.isCommentLock && ((annotation.type && annotation.type !== 'FreeText') || annotation.shapeAnnotationType !== 'FreeText')) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, ' ');\n }\n }\n if (annotation.commentId && annotation.editComment && annotation.commentType === 'edit') {\n this.editComments(annotation.commentId, annotation.editComment);\n }\n if (annotation.replyComment && annotation.commentType === 'add') {\n this.addReplyComments(currentAnnotation, annotation.replyComment, annotation.commentType);\n this.pdfViewer.annotationCollection[0].note = annotation.note;\n }\n if (annotation.nextComment && annotation.commentType === 'next') {\n this.addReplyComments(annotation, annotation.nextComment, annotation.commentType);\n }\n if (annotation.note === '' && annotation.commentType === 'delete') {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(annotation.annotationId);\n this.deletComment(commentDiv);\n }\n if (annotation.comments) {\n for (var j_2 = 0; j_2 < annotation.comments.length; j_2++) {\n if (annotation.comments[j_2].note === '' && annotation.commentType === 'delete') {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(annotation.comments[j_2].annotName);\n this.deletComment(commentDiv);\n }\n }\n }\n if (annotation.type === 'TextMarkup' || annotation.shapeAnnotationType === 'textMarkup') {\n if (currentAnnotation.annotationSettings && annotation.annotationSettings) {\n if (currentAnnotation.annotationSettings.isLock !== annotation.annotationSettings.isLock) {\n // eslint-disable-next-line max-len\n var pageAnnotations = this.textMarkupAnnotationModule.modifyAnnotationProperty('AnnotationSettings', annotation.annotationSettings.isLock, null);\n // eslint-disable-next-line max-len\n this.textMarkupAnnotationModule.manageAnnotations(pageAnnotations, this.textMarkupAnnotationModule.selectTextMarkupCurrentPage);\n }\n }\n if (currentAnnotation.opacity !== annotation.opacity) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(null, annotation.opacity);\n }\n if (currentAnnotation.color !== annotation.color) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyColorProperty(annotation.color);\n }\n annotationType = 'textMarkup';\n if (isTextMarkupUpdate) {\n this.textMarkupAnnotationModule.currentTextMarkupAnnotation = null;\n this.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n }\n // eslint-disable-next-line max-len\n }\n else if (annotation && annotation.stampAnnotationType === 'image' && annotation.shapeAnnotationType === 'stamp' && annotation.stampAnnotationPath) {\n annotationType = 'stamp';\n if (currentAnnotation.data !== annotation.stampAnnotationPath) {\n currentAnnotation.data = annotation.stampAnnotationPath;\n currentAnnotation.wrapper.children[0].imageSource = annotation.stampAnnotationPath;\n }\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);\n }\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n // eslint-disable-next-line max-len\n }\n else if (annotation.type === 'StickyNotes' || annotation.type === 'Stamp' || annotation.shapeAnnotationType === 'sticky' || annotation.shapeAnnotationType === 'stamp') {\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);\n }\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n if (annotation.type === 'StickyNotes' || annotation.shapeAnnotationType === 'sticky') {\n annotationType = 'sticky';\n }\n else {\n annotationType = 'stamp';\n }\n // eslint-disable-next-line max-len\n }\n else if (annotation.type === 'Ink' || annotation.type === 'Shape' || annotation.type === 'Measure' || annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Polygon' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Ink') {\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.annotationPropertyChange(currentAnnotation, annotation.opacity, 'Shape Opacity', clonedObject, redoClonedObject);\n }\n if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {\n redoClonedObject.fillColor = annotation.fillColor;\n if (annotation.labelSettings && annotation.labelSettings.fillColor) {\n annotation.labelSettings.fillColor = annotation.fillColor;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fillColor: annotation.fillColor });\n this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Fill', '', clonedObject, redoClonedObject);\n }\n if (annotation.strokeColor && currentAnnotation.strokeColor !== annotation.strokeColor) {\n redoClonedObject.strokeColor = annotation.strokeColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { strokeColor: annotation.strokeColor });\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n }\n if (annotation.thickness && currentAnnotation.thickness !== annotation.thickness) {\n redoClonedObject.thickness = annotation.thickness;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { thickness: annotation.thickness });\n this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Thickness', '', clonedObject, redoClonedObject);\n }\n if (currentAnnotation.author !== annotation.author) {\n redoClonedObject.author = annotation.author;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { author: annotation.author });\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n }\n if (currentAnnotation.modifiedDate !== annotation.modifiedDate) {\n redoClonedObject.modifiedDate = annotation.modifiedDate;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { modifiedDate: annotation.modifiedDate });\n }\n if (currentAnnotation.subject !== annotation.subject) {\n redoClonedObject.subject = annotation.subject;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { subject: annotation.subject });\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Shape Stroke', '', clonedObject, redoClonedObject);\n }\n if (this.pdfViewer.enableShapeLabel && currentAnnotation.fontColor !== annotation.fontColor) {\n redoClonedObject.fontColor = annotation.fontColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontColor: annotation.fontColor });\n }\n if (this.pdfViewer.enableShapeLabel && annotation.labelSettings && annotation.labelSettings.fillColor) {\n if (currentAnnotation.labelFillColor !== annotation.labelSettings.fillColor) {\n redoClonedObject.labelFillColor = annotation.labelSettings.fillColor;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { labelFillColor: annotation.labelSettings.fillColor });\n }\n }\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Polygon') {\n if (JSON.stringify(currentAnnotation.vertexPoints) !== JSON.stringify(annotation.vertexPoints)) {\n currentAnnotation.vertexPoints = annotation.vertexPoints;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { vertexPoints: annotation.vertexPoints });\n }\n }\n // eslint-disable-next-line max-len\n if (annotation.subType === 'Line' || annotation.subType === 'Arrow' || annotation.subType === 'Distance' || annotation.subType === 'Perimeter') {\n var isSourceDecoraterShapesChanged = false;\n var isTargetDecoraterShapesChanged = false;\n var isBorderDashArrayChanged = false;\n clonedObject.lineHeadStart = currentAnnotation.sourceDecoraterShapes;\n clonedObject.lineHeadEnd = currentAnnotation.taregetDecoraterShapes;\n redoClonedObject.lineHeadStart = annotation.lineHeadStartStyle;\n redoClonedObject.lineHeadEnd = annotation.lineHeadEndStyle;\n redoClonedObject.borderDashArray = annotation.borderDashArray;\n if (currentAnnotation.taregetDecoraterShapes !== annotation.lineHeadEndStyle) {\n isTargetDecoraterShapesChanged = true;\n }\n if (currentAnnotation.sourceDecoraterShapes !== annotation.lineHeadStartStyle) {\n isSourceDecoraterShapesChanged = true;\n }\n if (currentAnnotation.borderDashArray !== annotation.borderDashArray) {\n isBorderDashArrayChanged = true;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(currentAnnotation, { sourceDecoraterShapes: annotation.lineHeadStartStyle, taregetDecoraterShapes: annotation.lineHeadEndStyle, borderDashArray: annotation.borderDashArray });\n // eslint-disable-next-line max-len\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, isSourceDecoraterShapesChanged, isTargetDecoraterShapesChanged, isBorderDashArrayChanged);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, 'Line properties change', '', clonedObject, redoClonedObject);\n }\n // eslint-disable-next-line max-len\n if (annotation.type === 'Shape' || annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Polygon') {\n annotationType = 'shape';\n }\n if (annotation.type === 'Ink' || annotation.shapeAnnotationType === 'Ink') {\n annotationType = 'ink';\n }\n // eslint-disable-next-line max-len\n if (annotation.type === 'Measure' || annotation.subject === 'Distance calculation' || annotation.subject === 'Perimeter calculation' || annotation.subject === 'Radius calculation' || annotation.subject === 'Area calculation' || annotation.subject === 'Volume calculation') {\n annotationType = 'shape_measure';\n }\n if (annotation.labelSettings && this.pdfViewer.enableShapeLabel) {\n this.updateFreeTextProperties(currentAnnotation);\n this.pdfViewer.nodePropertyChange(currentAnnotation, {\n // eslint-disable-next-line max-len\n labelOpacity: annotation.labelSettings.opacity, fontColor: annotation.labelSettings.fontColor, fontSize: annotation.labelSettings.fontSize, fontFamily: annotation.labelSettings.fontFamily,\n labelContent: currentAnnotation.notes, labelFillColor: annotation.labelSettings.fillColor\n });\n }\n if (this.pdfViewer.enableShapeLabel && annotation.calibrate && annotation.calibrate.depth) {\n if (this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth !== annotation.calibrate.depth) {\n this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth = annotation.calibrate.depth;\n // eslint-disable-next-line max-len\n currentAnnotation.notes = this.pdfViewer.annotationModule.measureAnnotationModule.calculateVolume(currentAnnotation.vertexPoints, currentAnnotation.id, currentAnnotation.pageIndex);\n currentAnnotation.labelContent = currentAnnotation.notes;\n if (annotation.labelSettings && annotation.labelSettings.labelContent) {\n annotation.labelSettings.labelContent = currentAnnotation.notes;\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, { labelContent: currentAnnotation.labelContent });\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.addTextToComments(currentAnnotation.annotName, currentAnnotation.notes);\n }\n }\n }\n else if (annotation.type === 'FreeText' || annotation.shapeAnnotationType === 'FreeText') {\n annotationType = 'freetext';\n if (this.pdfViewer.freeTextSettings.enableAutoFit && currentAnnotation.dynamicText !== annotation.content) {\n // eslint-disable-next-line\n var canvas = this.pdfViewerBase.getElement('_annotationCanvas_' + currentAnnotation.pageIndex);\n var context = canvas.getContext(\"2d\");\n var fontSize = annotation.fontSize;\n var font = void 0;\n var fontFamily = annotation.fontFamily;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n annotation.font.isBold ? font = 'bold' + ' ' + fontSize + 'px' + ' ' + fontFamily : font = fontSize + 'px' + ' ' + fontFamily;\n context.font = font;\n var characterLength = 8;\n var highestTextNode = \"\";\n // eslint-disable-next-line\n var textNodes = [];\n var textboxValue = annotation.content ? annotation.content : annotation.dynamicText;\n if (textboxValue.indexOf('\\n') > -1) {\n textNodes = textboxValue.split('\\n');\n for (var j = 0; j < textNodes.length; j++) {\n // eslint-disable-next-line\n var textNodeData = context.measureText(textNodes[j]);\n // eslint-disable-next-line\n var highestTextNodeData = context.measureText(highestTextNode);\n if (textNodeData.width > highestTextNodeData.width) {\n highestTextNode = textNodes[j];\n }\n }\n }\n else {\n highestTextNode = textboxValue;\n }\n // eslint-disable-next-line\n var textwidth = context.measureText(highestTextNode);\n annotation.bounds.width = Math.ceil(textwidth.width + ((characterLength + 1) * 2));\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + (annotation.pageIndex));\n var maxWidth = pageDiv.clientWidth - (annotation.bounds.left * zoomFactor);\n if (annotation.bounds.width > maxWidth) {\n annotation.bounds.width = maxWidth / zoomFactor;\n }\n var height = annotation.bounds.height;\n annotation.bounds.height = height >= currentAnnotation.bounds.height ? height : currentAnnotation.bounds.height;\n }\n this.calculateAnnotationBounds(currentAnnotation, annotation);\n if (annotation.opacity && currentAnnotation.opacity !== annotation.opacity) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n }\n if (annotation.fillColor && currentAnnotation.fillColor !== annotation.fillColor) {\n this.triggerAnnotationPropChange(currentAnnotation, true, false, false, false);\n }\n if (annotation.strokeColor && currentAnnotation.strokeColor !== annotation.strokeColor) {\n this.triggerAnnotationPropChange(currentAnnotation, false, true, false, false);\n }\n if (annotation.thickness && currentAnnotation.thickness !== annotation.thickness) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, true, false);\n }\n annotation.content = annotation.content ? annotation.content : annotation.dynamicText;\n if (annotation.content && currentAnnotation.dynamicText !== annotation.content) {\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false, false, false, false, true, currentAnnotation.dynamicText, annotation.content);\n }\n this.pdfViewer.nodePropertyChange(currentAnnotation, {\n // eslint-disable-next-line max-len\n opacity: annotation.opacity, fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,\n // eslint-disable-next-line max-len\n dynamicText: annotation.content, fillColor: annotation.fillColor, textAlign: annotation.textAlign, strokeColor: annotation.strokeColor, thickness: annotation.thickness, font: annotation.fontStyle ? this.setFreeTextFontStyle(annotation.fontStyle) : this.setFreeTextFontStyle(annotation.font),\n isReadonly: annotation.isReadonly\n });\n if (annotation.content && currentAnnotation) {\n this.updateAnnotationComments(currentAnnotation.annotName, annotation.content);\n }\n // eslint-disable-next-line\n var newCommentDiv = document.getElementById(this.pdfViewer.element.id + '_commenttextbox_editor');\n // eslint-disable-next-line\n var commentObj = new InPlaceEditor({\n value: annotation.content\n });\n commentObj.appendTo(newCommentDiv);\n }\n currentAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n if (currentAnnotation.customData !== annotation.customData) {\n currentAnnotation.customData = annotation.customData;\n }\n currentAnnotation.isPrint = annotation.isPrint;\n if (annotation.type !== 'TextMarkup') {\n this.pdfViewer.renderDrawing();\n this.updateCollection(annotationId, pageNumber, annotation, annotationType);\n }\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.annotationPropertyChange = function (currentAnnotation, opacity, actionString, clonedObject, redoClonedObject) {\n this.pdfViewer.nodePropertyChange(currentAnnotation, { opacity: opacity });\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(currentAnnotation.pageIndex, null, currentAnnotation, actionString, '', clonedObject, redoClonedObject);\n };\n // eslint-disable-next-line\n Annotation.prototype.calculateAnnotationBounds = function (currentAnnotation, annotation) {\n // eslint-disable-next-line\n var bounds = this.pdfViewerBase.convertBounds(currentAnnotation.wrapper.bounds);\n // eslint-disable-next-line\n var annotBounds = this.pdfViewerBase.convertBounds(annotation.bounds);\n if (bounds && annotBounds) {\n // eslint-disable-next-line\n if (JSON.stringify(bounds) !== JSON.stringify(annotBounds) && (Math.abs(bounds.Y - annotBounds.Y) > 2) || (Math.abs(bounds.X - annotBounds.X) > 2) || (Math.abs(bounds.Width - annotBounds.Width) > 2) || (Math.abs(bounds.Height - annotBounds.Height) > 2)) {\n // eslint-disable-next-line\n var annotationBounds = { x: annotBounds.X + (annotBounds.Width / 2), y: annotBounds.Y + (annotBounds.Height / 2), width: annotBounds.Width, height: annotBounds.Height };\n this.pdfViewer.nodePropertyChange(currentAnnotation, { bounds: annotationBounds });\n this.pdfViewer.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.triggerAnnotationPropChange(currentAnnotation, false, false, false, false);\n }\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateFreeTextProperties = function (annotation) {\n if (annotation.labelSettings) {\n if (annotation.labelSettings.fillColor) {\n annotation.labelFillColor = annotation.labelSettings.fillColor;\n }\n if (annotation.labelSettings.fontColor) {\n annotation.fontColor = annotation.labelSettings.fontColor;\n }\n if (annotation.labelSettings.fontSize) {\n annotation.fontSize = annotation.labelSettings.fontSize;\n }\n if (annotation.labelSettings.fontFamily) {\n annotation.fontFamily = annotation.labelSettings.fontFamily;\n }\n if (annotation.labelSettings.opacity) {\n annotation.labelOpacity = annotation.labelSettings.opacity;\n }\n if (annotation.labelSettings.labelContent) {\n annotation.labelContent = annotation.labelSettings.labelContent;\n }\n }\n };\n Annotation.prototype.updateAnnotationComments = function (annotationId, noteContent) {\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(annotationId);\n if (commentsDiv && commentsDiv.childNodes) {\n if (commentsDiv.childNodes[0].ej2_instances) {\n commentsDiv.childNodes[0].ej2_instances[0].value = noteContent;\n }\n else if (commentsDiv.childNodes[0].childNodes && commentsDiv.childNodes[0].childNodes[1].ej2_instances) {\n commentsDiv.childNodes[0].childNodes[1].ej2_instances[0].value = noteContent;\n }\n }\n };\n /**\n * @param annotation\n * @param currentAnnotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.addFreeTextProperties = function (annotation, currentAnnotation) {\n if (this.pdfViewer.enableShapeLabel && annotation && currentAnnotation) {\n currentAnnotation.labelSettings = {\n fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,\n opacity: annotation.labelOpacity, labelContent: annotation.labelContent, fillColor: annotation.labelFillColor\n };\n }\n };\n Annotation.prototype.updateMeasurementSettings = function () {\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableMeasureAnnotation) {\n // eslint-disable-next-line max-len\n var ratioString = '1 ' + this.pdfViewer.measurementSettings.conversionUnit + ' = ' + this.pdfViewer.measurementSettings.scaleRatio + ' ' + this.pdfViewer.measurementSettings.displayUnit;\n this.measureAnnotationModule.updateMeasureValues(ratioString, this.pdfViewer.measurementSettings.displayUnit, this.pdfViewer.measurementSettings.conversionUnit, this.pdfViewer.measurementSettings.depth);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.updateCollection = function (annotationId, pageNumber, annotation, annotationType) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_' + annotationType);\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + annotationType];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.getPageCollection(annotObject, pageNumber);\n if (annotObject[index]) {\n annotationCollection = annotObject[index].annotations;\n if (annotationCollection !== null) {\n for (var i = 0; i < annotationCollection.length; i++) {\n if (annotationCollection[i].annotName === annotationId) {\n // eslint-disable-next-line\n var newAnnot = this.modifyAnnotationProperties(annotationCollection[i], annotation, annotationType);\n annotationCollection[i] = newAnnot;\n }\n }\n if (!this.pdfViewerBase.isStorageExceed) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_' + annotationType);\n }\n if (annotObject[index]) {\n annotObject[index].annotations = annotationCollection;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_' + annotationType] = annotationStringified;\n }\n else {\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_' + annotationType, annotationStringified);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.modifyAnnotationProperties = function (newAnnotation, annotation, annotationType) {\n if (annotation && annotation.isCommentLock === true) {\n newAnnotation.isCommentLock = annotation.isCommentLock;\n }\n if (annotation.comments) {\n for (var j = 0; j < annotation.comments.length; j++) {\n if (annotation.comments[j].isLock === true) {\n newAnnotation.comments[j].isLock = annotation.comments[j].isLock;\n }\n }\n }\n if (annotation && annotation.note !== '' && annotation.note !== undefined) {\n newAnnotation.note = annotation.note;\n }\n if (annotation.commentId && annotation.editComment && annotation.commentType === 'edit') {\n // eslint-disable-next-line\n var commentDiv = document.getElementById(annotation.commentId);\n if (annotation.annotationId === annotation.commentId) {\n newAnnotation.note = commentDiv.childNodes[1].ej2_instances[0].value;\n }\n for (var j = 0; j < annotation.comments.length; j++) {\n if (annotation.comments[j].annotName === annotation.commentId) {\n newAnnotation.comments[j].note = commentDiv.childNodes[1].ej2_instances[0].value;\n }\n }\n }\n if (annotationType === 'textMarkup') {\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.color = annotation.color;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n }\n else if (annotationType === 'sticky' || annotationType === 'stamp') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n if (annotation.stampAnnotationPath) {\n newAnnotation.stampAnnotationPath = annotation.stampAnnotationPath;\n }\n }\n else if (annotationType === 'ink') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n }\n else if (annotationType === 'shape' || annotationType === 'shape_measure') {\n if (annotation.subType === 'Line' || annotation.subType === 'Arrow' || annotation.subType === 'Distance' ||\n annotation.subType === 'Perimeter') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n if (annotation.vertexPoints) {\n newAnnotation.vertexPoints = annotation.vertexPoints;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.fillColor = annotation.fillColor;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n newAnnotation.borderDashArray = annotation.borderDashArray;\n newAnnotation.lineHeadStart = this.getArrowTypeForCollection(annotation.lineHeadStartStyle);\n newAnnotation.lineHeadEnd = this.getArrowTypeForCollection(annotation.lineHeadEndStyle);\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n }\n else {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n if (annotation.vertexPoints) {\n newAnnotation.vertexPoints = annotation.vertexPoints;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.fillColor = annotation.fillColor;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n if (annotation.calibrate) {\n if (newAnnotation.annotName === annotation.annotationId) {\n if (newAnnotation.calibrate.depth !== annotation.calibrate.depth) {\n newAnnotation.calibrate.depth = annotation.calibrate.depth;\n this.pdfViewer.annotationModule.measureAnnotationModule.volumeDepth = annotation.calibrate.depth;\n // eslint-disable-next-line max-len\n newAnnotation.note = this.pdfViewer.annotationModule.measureAnnotationModule.calculateVolume(newAnnotation.vertexPoints);\n }\n }\n }\n }\n if (this.pdfViewer.enableShapeLabel && annotation.labelSettings) {\n var text = annotation.labelSettings.labelContent;\n newAnnotation.note = text;\n newAnnotation.fontSize = annotation.labelSettings.fontSize;\n newAnnotation.labelFillColor = annotation.labelSettings.fillColor;\n if (newAnnotation.labelContent) {\n newAnnotation.labelContent = text;\n }\n if (newAnnotation.labelSettings) {\n newAnnotation.labelSettings = annotation.labelSettings;\n }\n this.updateAnnotationComments(newAnnotation.annotName, text);\n }\n }\n else if (annotationType === 'freetext') {\n if (annotation.bounds) {\n newAnnotation.bounds = annotation.bounds;\n }\n newAnnotation.opacity = annotation.opacity;\n newAnnotation.strokeColor = annotation.strokeColor;\n newAnnotation.thickness = annotation.thickness;\n if (annotation.content) {\n newAnnotation.dynamicText = annotation.content;\n }\n newAnnotation.fontFamily = annotation.fontFamily;\n newAnnotation.fontSize = annotation.fontSize;\n newAnnotation.fontColor = annotation.fontColor;\n newAnnotation.fillColor = annotation.fillColor;\n newAnnotation.font = annotation.font ? annotation.font : annotation.fontStyle;\n newAnnotation.textAlign = annotation.textAlign;\n newAnnotation.annotationSettings = annotation.annotationSettings;\n newAnnotation.allowedInteractions = annotation.allowedInteractions;\n newAnnotation.isReadonly = annotation.isReadonly;\n }\n newAnnotation.customData = annotation.customData;\n newAnnotation.modifiedDate = this.pdfViewer.annotation.stickyNotesAnnotationModule.getDateAndTime();\n newAnnotation.isPrint = annotation.isPrint;\n if (annotation.annotationSettings && !isNullOrUndefined(annotation.annotationSettings.isLock)) {\n newAnnotation.isLocked = annotation.annotationSettings.isLock;\n }\n return newAnnotation;\n };\n /**\n * @param annotationType\n * @param annotationSubType\n * @param annotationType\n * @param annotationSubType\n * @private\n */\n Annotation.prototype.updateAnnotationAuthor = function (annotationType, annotationSubType) {\n var annotationAuthor;\n if (annotationType === 'sticky') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.stickyNotesSettings.author !== 'Guest') ? this.pdfViewer.stickyNotesSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationType === 'stamp') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.stampSettings.author !== 'Guest') ? this.pdfViewer.stampSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationType === 'shape') {\n if (annotationSubType === 'Line') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.lineSettings.author !== 'Guest') ? this.pdfViewer.lineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'LineWidthArrowHead' || annotationSubType === 'Arrow') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.arrowSettings.author !== 'Guest') ? this.pdfViewer.arrowSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Circle' || annotationSubType === 'Ellipse' || annotationSubType === 'Oval') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.circleSettings.author !== 'Guest') ? this.pdfViewer.circleSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Rectangle' || annotationSubType === 'Square') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.rectangleSettings.author !== 'Guest') ? this.pdfViewer.rectangleSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Polygon') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.polygonSettings.author !== 'Guest') ? this.pdfViewer.polygonSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n }\n else if (annotationType === 'measure') {\n if (annotationSubType === 'Distance' || annotationSubType === 'Distance calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.distanceSettings.author !== 'Guest') ? this.pdfViewer.distanceSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Perimeter' || annotationSubType === 'Perimeter calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.perimeterSettings.author !== 'Guest') ? this.pdfViewer.perimeterSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Radius' || annotationSubType === 'Radius calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.radiusSettings.author !== 'Guest') ? this.pdfViewer.radiusSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Area' || annotationSubType === 'Area calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.areaSettings.author !== 'Guest') ? this.pdfViewer.areaSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Volume' || annotationSubType === 'Volume calculation') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.volumeSettings.author !== 'Guest') ? this.pdfViewer.volumeSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n }\n else if (annotationType === 'textMarkup') {\n if (annotationSubType === 'Highlight') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.highlightSettings.author !== 'Guest') ? this.pdfViewer.highlightSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Underline') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.underlineSettings.author !== 'Guest') ? this.pdfViewer.underlineSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationSubType === 'Strikethrough') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.strikethroughSettings.author !== 'Guest') ? this.pdfViewer.strikethroughSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else {\n // eslint-disable-next-line max-len\n annotationAuthor = this.pdfViewer.annotationSettings.author;\n }\n }\n else if (annotationType === 'freeText') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.freeTextSettings.author !== 'Guest') ? this.pdfViewer.freeTextSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n else if (annotationType === 'ink') {\n // eslint-disable-next-line max-len\n annotationAuthor = (this.pdfViewer.inkAnnotationSettings.author !== 'Guest') ? this.pdfViewer.inkAnnotationSettings.author : this.pdfViewer.annotationSettings.author ? this.pdfViewer.annotationSettings.author : 'Guest';\n }\n if (!annotationAuthor) {\n // eslint-disable-next-line max-len\n annotationAuthor = this.pdfViewer.annotationSettings.author;\n }\n return annotationAuthor;\n };\n /**\n * @param colour\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.nameToHash = function (colour) {\n // eslint-disable-next-line\n var colours = {\n 'aliceblue': '#f0f8ff', 'antiquewhite': '#faebd7', 'aqua': '#00ffff', 'aquamarine': '#7fffd4', 'azure': '#f0ffff',\n 'beige': '#f5f5dc', 'bisque': '#ffe4c4', 'black': '#000000', 'blanchedalmond': '#ffebcd', 'blue': '#0000ff',\n 'blueviolet': '#8a2be2', 'brown': '#a52a2a', 'burlywood': '#deb887', 'yellow': '#ffff00', 'yellowgreen': '#9acd32',\n 'cadetblue': '#5f9ea0', 'chartreuse': '#7fff00', 'chocolate': '#d2691e', 'coral': '#ff7f50',\n 'cornflowerblue': '#6495ed', 'cornsilk': '#fff8dc', 'crimson': '#dc143c',\n 'cyan': '#00ffff', 'darkblue': '#00008b', 'darkcyan': '#008b8b', 'darkgoldenrod': '#b8860b', 'darkgray': '#a9a9a9',\n 'darkred': '#8b0000', 'darksalmon': '#e9967a', 'darkgreen': '#006400', 'darkkhaki': '#bdb76b',\n 'darkmagenta': '#8b008b', 'darkolivegreen': '#556b2f', 'darkorange': '#ff8c00', 'darkorchid': '#9932cc',\n 'darkseagreen': '#8fbc8f', 'darkslateblue': '#483d8b', 'darkslategray': '#2f4f4f', 'darkturquoise': '#00ced1',\n 'darkviolet': '#9400d3', 'deeppink': '#ff1493', 'deepskyblue': '#00bfff', 'dimgray': '#696969',\n 'dodgerblue': '#1e90ff', 'firebrick': '#b22222', 'floralwhite': '#fffaf0',\n 'forestgreen': '#228b22', 'fuchsia': '#ff00ff', 'gainsboro': '#dcdcdc', 'ghostwhite': '#f8f8ff',\n 'gold': '#ffd700', 'goldenrod': '#daa520', 'gray': '#808080', 'green': '#008000',\n 'greenyellow': '#adff2f', 'honeydew': '#f0fff0', 'hotpink': '#ff69b4', 'indianred ': '#cd5c5c',\n 'mediumorchid': '#ba55d3', 'mediumpurple': '#9370d8', 'indigo': '#4b0082', 'ivory': '#fffff0',\n 'navy': '#000080', 'oldlace': '#fdf5e6', 'olive': '#808000', 'khaki': '#f0e68c',\n 'lavender': '#e6e6fa', 'lavenderblush': '#fff0f5', 'lawngreen': '#7cfc00', 'lemonchiffon': '#fffacd',\n 'lightblue': '#add8e6', 'lightcoral': '#f08080', 'lightcyan': '#e0ffff',\n 'lightgoldenrodyellow': '#fafad2', 'lightgrey': '#d3d3d3', 'lightgreen': '#90ee90',\n 'lightpink': '#ffb6c1', 'lightsalmon': '#ffa07a', 'lightseagreen': '#20b2aa',\n 'lightskyblue': '#87cefa', 'lightslategray': '#778899', 'lightsteelblue': '#b0c4de',\n 'lightyellow': '#ffffe0', 'lime': '#00ff00', 'limegreen': '#32cd32', 'linen': '#faf0e6',\n 'magenta': '#ff00ff', 'maroon': '#800000', 'mediumaquamarine': '#66cdaa', 'mediumblue': '#0000cd',\n 'mediumseagreen': '#3cb371', 'mediumslateblue': '#7b68ee', 'mediumspringgreen': '#00fa9a',\n 'mediumturquoise': '#48d1cc', 'mediumvioletred': '#c71585', 'midnightblue': '#191970',\n 'mintcream': '#f5fffa', 'mistyrose': '#ffe4e1', 'moccasin': '#ffe4b5', 'navajowhite': '#ffdead',\n 'rebeccapurple': '#663399', 'red': '#ff0000', 'rosybrown': '#bc8f8f', 'royalblue': '#4169e1',\n 'olivedrab': '#6b8e23', 'orange': '#ffa500', 'orangered': '#ff4500', 'orchid': '#da70d6',\n 'palegoldenrod': '#eee8aa', 'palegreen': '#98fb98', 'paleturquoise': '#afeeee',\n 'palevioletred': '#d87093', 'papayawhip': '#ffefd5', 'peachpuff': '#ffdab9', 'peru': '#cd853f',\n 'wheat': '#f5deb3', 'white': '#ffffff', 'whitesmoke': '#f5f5f5', 'pink': '#ffc0cb', 'plum': '#dda0dd',\n 'steelblue': '#4682b4', 'violet': '#ee82ee', 'powderblue': '#b0e0e6', 'purple': '#800080',\n 'saddlebrown': '#8b4513', 'salmon': '#fa8072', 'sandybrown': '#f4a460', 'seagreen': '#2e8b57',\n 'seashell': '#fff5ee', 'sienna': '#a0522d', 'silver': '#c0c0c0', 'skyblue': '#87ceeb',\n 'slateblue': '#6a5acd', 'slategray': '#708090', 'snow': '#fffafa', 'springgreen': '#00ff7f',\n 'tan': '#d2b48c', 'teal': '#008080', 'thistle': '#d8bfd8', 'tomato': '#ff6347', 'turquoise': '#40e0d0'\n };\n if (typeof colours[colour.toLowerCase()] !== 'undefined') {\n return colours[colour.toLowerCase()];\n }\n return '';\n };\n // eslint-disable-next-line\n Annotation.prototype.updateFreeTextFontStyle = function (font) {\n // eslint-disable-next-line\n var fontStyle = 0;\n if (font.isBold === 1) {\n fontStyle = 1;\n }\n else if (font.isItalic === 2) {\n fontStyle = 2;\n }\n else if (font.isUnderline === 4) {\n fontStyle = 4;\n }\n else if (font.isStrikeout) {\n fontStyle = 8;\n }\n else {\n fontStyle = { isBold: font.isBold, isItalic: font.isItalic, isUnderline: font.isUnderline, isStrikeout: font.isUnderline };\n }\n return fontStyle;\n };\n // eslint-disable-next-line\n Annotation.prototype.setFreeTextFontStyle = function (fontStyle) {\n if (fontStyle === 1) {\n return { isBold: true };\n }\n else if (fontStyle === 2) {\n return { isItalic: true };\n }\n else if (fontStyle === 4) {\n return { isUnderline: true };\n }\n else if (fontStyle === 8) {\n return { isStrikeout: true };\n }\n else {\n return { isBold: fontStyle.isBold, isItalic: fontStyle.isItalic, isUnderline: fontStyle.isUnderline, isStrikeout: fontStyle.isStrikeout };\n }\n };\n /**\n * @param annotation\n * @param isSettings\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.findAnnotationSettings = function (annotation, isSettings) {\n // eslint-disable-next-line\n var annotSettings = this.pdfViewer.annotationSettings;\n if (annotation) {\n // eslint-disable-next-line\n var shapeType = annotation.shapeAnnotationType;\n if (shapeType === 'StickyNotes' && this.pdfViewer.stickyNotesSettings) {\n annotSettings = this.pdfViewer.stickyNotesSettings;\n }\n else if (shapeType === 'Stamp' || shapeType === 'Image') {\n annotSettings = this.pdfViewer.stampSettings;\n // eslint-disable-next-line max-len\n if ((shapeType === 'image' || shapeType === 'Image')) {\n annotSettings = this.pdfViewer.customStampSettings;\n }\n }\n else if (shapeType === 'FreeText') {\n annotSettings = this.pdfViewer.freeTextSettings;\n }\n else if (annotation.measureType === '') {\n if (shapeType === 'Line') {\n annotSettings = this.pdfViewer.lineSettings;\n // eslint-disable-next-line max-len\n }\n else if ((shapeType === 'Arrow' || shapeType === 'LineWidthArrowHead')) {\n annotSettings = this.pdfViewer.arrowSettings;\n }\n else if (shapeType === 'Rectangle') {\n annotSettings = this.pdfViewer.rectangleSettings;\n // eslint-disable-next-line max-len\n }\n else if ((shapeType === 'Circle' || shapeType === 'Ellipse')) {\n annotSettings = this.pdfViewer.circleSettings;\n }\n else if (shapeType === 'Polygon' && this.pdfViewer.polygonSettings) {\n annotSettings = this.pdfViewer.polygonSettings;\n }\n }\n else if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance') {\n annotSettings = this.pdfViewer.distanceSettings;\n }\n else if (annotation.measureType === 'Perimeter') {\n annotSettings = this.pdfViewer.perimeterSettings;\n }\n else if (annotation.measureType === 'Area') {\n annotSettings = this.pdfViewer.areaSettings;\n }\n else if (annotation.measureType === 'Radius') {\n annotSettings = this.pdfViewer.radiusSettings;\n }\n else if (annotation.measureType === 'Volume') {\n annotSettings = this.pdfViewer.volumeSettings;\n }\n }\n }\n var settings = annotation ? annotation.annotationSettings : {};\n if (settings && (settings.minWidth || settings.maxWidth || settings.minHeight || settings.maxHeight)) {\n return this.updateSettings(settings);\n }\n else if (isSettings) {\n return this.updateSettings(annotSettings);\n }\n else {\n return annotSettings;\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateAnnotationSettings = function (annotation) {\n // eslint-disable-next-line\n var annotSettings = this.pdfViewer.annotationSettings;\n if (annotation.AnnotType === 'sticky') {\n annotSettings = this.pdfViewer.stickyNotesSettings;\n }\n else if (annotation.AnnotType === 'stamp' || annotation.AnnotType === 'image' || annotation.AnnotType === 'Image') {\n annotSettings = this.pdfViewer.stampSettings;\n // eslint-disable-next-line max-len\n if ((annotation.Subject === 'image' || annotation.Subject === 'Image')) {\n annotSettings = this.pdfViewer.customStampSettings;\n }\n }\n else if (annotation.AnnotType === 'freeText') {\n annotSettings = this.pdfViewer.freeTextSettings;\n }\n else if (annotation.AnnotType === 'shape') {\n if (annotation.Subject === 'Line') {\n annotSettings = this.pdfViewer.lineSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Arrow' || annotation.Subject === 'LineWidthArrowHead')) {\n annotSettings = this.pdfViewer.arrowSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Rectangle' || annotation.Subject === 'Square')) {\n annotSettings = this.pdfViewer.rectangleSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Circle' || annotation.Subject === 'Ellipse' || annotation.Subject === 'Oval')) {\n annotSettings = this.pdfViewer.circleSettings;\n }\n else if (annotation.Subject === 'Polygon') {\n annotSettings = this.pdfViewer.polygonSettings;\n }\n }\n else if (annotation.AnnotType === 'shape_measure') {\n // eslint-disable-next-line max-len\n if ((annotation.Subject === 'Distance' || annotation.Subject === 'Distance calculation')) {\n annotSettings = this.pdfViewer.distanceSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Perimeter' || annotation.Subject === 'Perimeter calculation')) {\n annotSettings = this.pdfViewer.perimeterSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Area' || annotation.Subject === 'Area calculation')) {\n annotSettings = this.pdfViewer.areaSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Radius' || annotation.Subject === 'Radius calculation')) {\n annotSettings = this.pdfViewer.radiusSettings;\n // eslint-disable-next-line max-len\n }\n else if ((annotation.Subject === 'Volume' || annotation.Subject === 'Volume calculation')) {\n annotSettings = this.pdfViewer.volumeSettings;\n }\n }\n return this.updateSettings(annotSettings);\n };\n /**\n * @param annotationSettings\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateSettings = function (annotationSettings) {\n var maxHeight = 0;\n var maxWidth = 0;\n var minHeight = 0;\n var minWidth = 0;\n var isLock = false;\n var isPrint = true;\n // eslint-disable-next-line\n var settings = this.pdfViewer.annotationSettings;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n maxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n maxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n minHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n minWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n else if (settings.minWidth || settings.maxWidth || settings.minHeight || settings.maxHeight) {\n maxHeight = settings.maxHeight ? settings.maxHeight : 2000;\n maxWidth = settings.maxWidth ? settings.maxWidth : 2000;\n minHeight = settings.minHeight ? settings.minHeight : 0;\n minWidth = settings.minWidth ? settings.minWidth : 0;\n }\n isLock = annotationSettings.isLock ? annotationSettings.isLock : settings.isLock ? settings.isLock : false;\n isPrint = annotationSettings.isPrint;\n return { minWidth: minWidth, maxWidth: maxWidth, minHeight: minHeight, maxHeight: maxHeight, isLock: isLock, isPrint: isPrint };\n };\n // eslint-disable-next-line\n Annotation.prototype.getOverlappedAnnotations = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = this.getPageShapeAnnotations(pageNumber);\n // eslint-disable-next-line\n var selectedAnnotation;\n for (var i = 0; i < pageCollections.length; i++) {\n if (annotation.annotName === pageCollections[i].annotName) {\n selectedAnnotation = pageCollections[i];\n break;\n }\n }\n // eslint-disable-next-line\n var annotationCollection = this.findOverlappedAnnotations(selectedAnnotation, pageCollections);\n return annotationCollection;\n };\n // eslint-disable-next-line\n Annotation.prototype.getPageShapeAnnotations = function (pageNumber) {\n // eslint-disable-next-line\n var pageCollections = [];\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_ink');\n if (inkObject) {\n var inkAnnotObject = JSON.parse(inkObject);\n if (inkAnnotObject) {\n var index = this.getPageCollection(inkAnnotObject, pageNumber);\n if (inkAnnotObject[index]) {\n // eslint-disable-next-line\n var inkAnnotations = inkAnnotObject[index].annotations;\n if (inkAnnotations && inkAnnotations.length > 0) {\n for (var i = 0; i < inkAnnotations.length; i++) {\n pageCollections.push(inkAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape');\n if (shapeObject) {\n var shapeAnnotObject = JSON.parse(shapeObject);\n if (shapeAnnotObject) {\n var index = this.getPageCollection(shapeAnnotObject, pageNumber);\n if (shapeAnnotObject[index]) {\n // eslint-disable-next-line\n var shapeAnnotations = shapeAnnotObject[index].annotations;\n if (shapeAnnotations && shapeAnnotations.length > 0) {\n for (var i = 0; i < shapeAnnotations.length; i++) {\n pageCollections.push(shapeAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var measureObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n if (measureObject) {\n var measureAnnotationObject = JSON.parse(measureObject);\n if (measureAnnotationObject) {\n var index = this.getPageCollection(measureAnnotationObject, pageNumber);\n if (measureAnnotationObject[index]) {\n // eslint-disable-next-line\n var measureAnnotations = measureAnnotationObject[index].annotations;\n if (measureAnnotations && measureAnnotations.length > 0) {\n for (var i = 0; i < measureAnnotations.length; i++) {\n pageCollections.push(measureAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n if (stampObject) {\n var stampAnnotationObject = JSON.parse(stampObject);\n if (stampAnnotationObject) {\n var index = this.getPageCollection(stampAnnotationObject, pageNumber);\n if (stampAnnotationObject[index]) {\n // eslint-disable-next-line\n var stampAnnotations = stampAnnotationObject[index].annotations;\n if (stampAnnotations && stampAnnotations.length > 0) {\n for (var i = 0; i < stampAnnotations.length; i++) {\n pageCollections.push(stampAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_freetext');\n if (freeTextObject) {\n var freeTextAnnotationObject = JSON.parse(freeTextObject);\n if (freeTextAnnotationObject) {\n var index = this.getPageCollection(freeTextAnnotationObject, pageNumber);\n if (freeTextAnnotationObject[index]) {\n // eslint-disable-next-line\n var freeTextAnnotations = freeTextAnnotationObject[index].annotations;\n if (freeTextAnnotations && freeTextAnnotations.length > 0) {\n for (var i = 0; i < freeTextAnnotations.length; i++) {\n pageCollections.push(freeTextAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n if (stickyObject) {\n var stickyNotesAnnotationObject = JSON.parse(stickyObject);\n if (stickyNotesAnnotationObject) {\n var index = this.getPageCollection(stickyNotesAnnotationObject, pageNumber);\n if (stickyNotesAnnotationObject[index]) {\n // eslint-disable-next-line\n var stickyNotesAnnotations = stickyNotesAnnotationObject[index].annotations;\n if (stickyNotesAnnotations && stickyNotesAnnotations.length > 0) {\n for (var i = 0; i < stickyNotesAnnotations.length; i++) {\n pageCollections.push(stickyNotesAnnotations[i]);\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_textMarkup');\n if (textMarkupObject) {\n var textMarkupAnnotationObject = JSON.parse(textMarkupObject);\n if (textMarkupAnnotationObject) {\n var index = this.getPageCollection(textMarkupAnnotationObject, pageNumber);\n if (textMarkupAnnotationObject[index]) {\n // eslint-disable-next-line\n var textMarkupAnnotations = textMarkupAnnotationObject[index].annotations;\n if (textMarkupAnnotations && textMarkupAnnotations.length > 0) {\n for (var i = 0; i < textMarkupAnnotations.length; i++) {\n pageCollections.push(textMarkupAnnotations[i]);\n }\n }\n }\n }\n }\n return pageCollections;\n };\n // eslint-disable-next-line\n Annotation.prototype.findOverlappedAnnotations = function (annotation, pageCollections) {\n this.overlappedAnnotations = [];\n if (annotation && annotation.bounds) {\n if (annotation.shapeAnnotationType === 'textMarkup') {\n for (var i = 0; i < annotation.bounds.length; i++) {\n // eslint-disable-next-line\n var bounds = this.orderTextMarkupBounds(annotation.bounds[i]);\n this.calculateOverlappedAnnotationBounds(annotation, bounds, pageCollections);\n }\n }\n else {\n this.calculateOverlappedAnnotationBounds(annotation, annotation.bounds, pageCollections);\n }\n }\n return this.overlappedAnnotations;\n };\n // eslint-disable-next-line\n Annotation.prototype.calculateOverlappedAnnotationBounds = function (annotation, bounds, pageCollections) {\n // eslint-disable-next-line\n var selectBounds = bounds;\n if (annotation.shapeAnnotationType === 'Ink') {\n selectBounds = { left: bounds.x, top: bounds.y, height: bounds.height, width: bounds.width };\n }\n // eslint-disable-next-line\n var left = parseInt(selectBounds.left);\n // eslint-disable-next-line\n var top = parseInt(selectBounds.top);\n // eslint-disable-next-line\n var totalHeight = parseInt(selectBounds.top + selectBounds.height);\n // eslint-disable-next-line\n var totalWidth = parseInt(selectBounds.left + selectBounds.width);\n for (var i = 0; i < pageCollections.length; i++) {\n if (annotation.annotName === pageCollections[i].annotName) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n var boundsCount = 1;\n if (pageCollections[i].shapeAnnotationType === 'textMarkup') {\n boundsCount = pageCollections[i].bounds.length;\n }\n for (var j = 0; j < boundsCount; j++) {\n // eslint-disable-next-line\n var annotationBounds = void 0;\n // eslint-disable-next-line\n var annotationBoundsCollection = pageCollections[i].bounds;\n if (pageCollections[i].shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line\n annotationBoundsCollection = { left: annotationBoundsCollection.x, top: annotationBoundsCollection.y, height: annotationBoundsCollection.height, width: annotationBoundsCollection.width };\n }\n if (pageCollections[i].shapeAnnotationType !== 'textMarkup' && boundsCount === 1) {\n annotationBounds = annotationBoundsCollection;\n }\n else {\n // eslint-disable-next-line\n annotationBounds = this.orderTextMarkupBounds(annotationBoundsCollection[j]);\n }\n if (annotationBounds) {\n var isOverlapped = false;\n // eslint-disable-next-line\n if (((left <= parseInt(annotationBounds.left)) && (totalWidth >= parseInt(annotationBounds.left))) || ((left <= parseInt(annotationBounds.left + annotationBounds.width)) && (totalWidth >= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((top <= parseInt(annotationBounds.top)) && (totalHeight >= parseInt(annotationBounds.top))) || ((top <= parseInt(annotationBounds.top + annotationBounds.height)) && (totalHeight >= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.left) <= left) && (parseInt(annotationBounds.left + annotationBounds.width) >= left)) || ((totalWidth >= parseInt(annotationBounds.left)) && (totalWidth <= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.top) <= top) && parseInt(annotationBounds.top + annotationBounds.height) >= top) || ((totalHeight >= parseInt(annotationBounds.top)) && (totalHeight <= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n // eslint-disable-next-line\n if (((left <= parseInt(annotationBounds.left)) && (totalWidth >= parseInt(annotationBounds.left))) || ((left <= parseInt(annotationBounds.left + annotationBounds.width)) && (totalWidth >= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.top) <= top) && parseInt(annotationBounds.top + annotationBounds.height) >= top) || ((totalHeight >= parseInt(annotationBounds.top)) && (totalHeight <= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n else {\n // eslint-disable-next-line\n if (((parseInt(annotationBounds.left) <= left) && (parseInt(annotationBounds.left + annotationBounds.width) >= left)) || ((totalWidth >= parseInt(annotationBounds.left)) && (totalWidth <= parseInt(annotationBounds.left + annotationBounds.width)))) {\n isOverlapped = true;\n }\n if (isOverlapped) {\n // eslint-disable-next-line\n if (((top <= parseInt(annotationBounds.top)) && (totalHeight >= parseInt(annotationBounds.top))) || ((top <= parseInt(annotationBounds.top + annotationBounds.height)) && (totalHeight >= parseInt(annotationBounds.top + annotationBounds.height)))) {\n isOverlapped = true;\n }\n else {\n isOverlapped = false;\n }\n }\n if (isOverlapped) {\n this.checkOverlappedCollections(pageCollections[i], this.overlappedAnnotations);\n }\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * @param annotation\n * @param pageNumber\n * @param type\n * @param annotation\n * @param pageNumber\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.findAnnotationMode = function (annotation, pageNumber, type) {\n // eslint-disable-next-line\n var importCollection = this.pdfViewer.viewerBase.importedAnnotation[pageNumber];\n if (importCollection) {\n // eslint-disable-next-line\n var collection = void 0;\n if (type === 'shape') {\n collection = importCollection.shapeAnnotation;\n }\n else if (type === 'shape_measure') {\n collection = importCollection.measureShapeAnnotation;\n }\n else if (type === 'freeText') {\n collection = importCollection.freeTextAnnotation;\n }\n else if (type === 'stamp') {\n collection = importCollection.stampAnnotations;\n }\n else if (type === 'sticky') {\n collection = importCollection.stickyNotesAnnotation;\n }\n else if (type === 'textMarkup') {\n collection = importCollection.textMarkupAnnotation;\n }\n if (collection) {\n for (var i = 0; i < collection.length; i++) {\n if (collection[i].AnnotName === annotation.AnnotName) {\n return 'Imported Annotation';\n }\n }\n }\n }\n return 'Existing Annotation';\n };\n // eslint-disable-next-line\n Annotation.prototype.checkOverlappedCollections = function (annotation, overlappedCollections) {\n if (overlappedCollections.length > 0) {\n var isAdded = false;\n for (var i = 0; i < overlappedCollections.length; i++) {\n if (annotation.annotName === overlappedCollections[i].annotName && annotation.bounds === overlappedCollections[i].bounds) {\n isAdded = true;\n break;\n }\n }\n if (!isAdded) {\n overlappedCollections.push(annotation);\n }\n }\n else {\n overlappedCollections.push(annotation);\n }\n };\n // eslint-disable-next-line\n Annotation.prototype.orderTextMarkupBounds = function (bounds) {\n if (bounds.Left || bounds.Width) {\n return { left: bounds.Left, top: bounds.Top, height: bounds.Height, width: bounds.Width };\n }\n else {\n return { left: bounds.left, top: bounds.top, height: bounds.height, width: bounds.width };\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateModifiedDate = function (annotation) {\n if (annotation.modifiedDate) {\n annotation.modifiedDate = this.setAnnotationModifiedDate(annotation.modifiedDate);\n }\n if (annotation.comments && annotation.comments.length > 0) {\n for (var i = 0; i < annotation.comments.length; i++) {\n if (annotation.comments[i].modifiedDate) {\n annotation.comments[i].modifiedDate = this.setAnnotationModifiedDate(annotation.comments[i].modifiedDate);\n if (annotation.comments[i].review && annotation.comments[i].review.modifiedDate) {\n // eslint-disable-next-line max-len\n annotation.comments[i].review.modifiedDate = this.setAnnotationModifiedDate(annotation.comments[i].review.modifiedDate);\n }\n }\n }\n }\n if (annotation.review && annotation.review.modifiedDate) {\n annotation.review.modifiedDate = this.setAnnotationModifiedDate(annotation.review.modifiedDate);\n }\n };\n Annotation.prototype.setAnnotationModifiedDate = function (date) {\n var modifiedTime;\n var modifiedDateTime;\n if (date !== '') {\n // eslint-disable-next-line\n var time = parseInt(date.split(' ')[1].split(':')[0]);\n if (date.split(' ').length === 3) {\n // eslint-disable-next-line max-len\n modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' ' + date.split(' ')[2];\n }\n else {\n if (time >= 12) {\n if (time === 12) {\n modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' PM';\n }\n else {\n // eslint-disable-next-line max-len\n modifiedTime = (time - 12) + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' PM';\n }\n }\n else {\n modifiedTime = time + ':' + date.split(' ')[1].split(':')[1] + ':' + date.split(' ')[1].split(':')[2] + ' AM';\n }\n }\n // eslint-disable-next-line\n var dateString = date.split(' ')[0];\n // eslint-disable-next-line\n var dateStringSpilt = date.split(',');\n if (dateStringSpilt.length > 1) {\n modifiedDateTime = dateString + (' ') + modifiedTime;\n }\n else {\n modifiedDateTime = dateString + (', ') + modifiedTime;\n }\n }\n else {\n return date;\n }\n var modifiedDateToUTC = new Date(modifiedDateTime);\n modifiedDateTime = modifiedDateToUTC.toISOString();\n return modifiedDateTime;\n };\n /**\n * @private\n */\n Annotation.prototype.clear = function () {\n if (this.shapeAnnotationModule) {\n this.shapeAnnotationModule.shapeCount = 0;\n }\n if (this.measureAnnotationModule) {\n this.measureAnnotationModule.measureShapeCount = 0;\n }\n if (this.textMarkupAnnotationModule) {\n this.textMarkupAnnotationModule.clear();\n }\n if (this.stickyNotesAnnotationModule) {\n this.stickyNotesAnnotationModule.clear();\n }\n this.pdfViewer.refresh();\n this.undoCommentsElement = [];\n this.redoCommentsElement = [];\n this.overlappedAnnotations = [];\n this.previousIndex = null;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n this.pdfViewer.annotation.stampAnnotationModule.stampPageNumber = [];\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {\n this.pdfViewer.annotation.freeTextAnnotationModule.freeTextPageNumbers = [];\n this.freeTextAnnotationModule.previousText = 'Type Here';\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.inkAnnotationModule) {\n this.pdfViewer.annotation.inkAnnotationModule.inkAnnotationindex = [];\n }\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sticky');\n };\n // eslint-disable-next-line\n Annotation.prototype.retrieveAnnotationCollection = function () {\n return this.pdfViewer.annotationCollection;\n };\n /**\n * @param interaction\n * @param annotation\n * @param interaction\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkAllowedInteractions = function (interaction, annotation) {\n // eslint-disable-next-line\n var annotationInteraction = this.updateAnnotationAllowedInteractions(annotation);\n if (annotationInteraction && annotationInteraction.length > 0) {\n for (var i = 0; i < annotationInteraction.length; i++) {\n if (interaction === 'Select') {\n // eslint-disable-next-line max-len\n if (annotationInteraction[i] === 'Move' || annotationInteraction[i] === 'Resize' || annotationInteraction[i] === 'Delete' || annotationInteraction[i] === 'PropertyChange' || annotationInteraction[i] === 'Select') {\n return true;\n }\n }\n else {\n if (annotationInteraction[i] === interaction) {\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * @param menuObj\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkContextMenuDeleteItem = function (menuObj) {\n // eslint-disable-next-line\n var annotation = this.findCurrentAnnotation();\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n if (annotation.annotationSettings.isLock) {\n if (this.checkAllowedInteractions('Delete', annotation)) {\n menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n }\n else {\n menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], false);\n }\n }\n else {\n menuObj.enableItems([this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.isEnableDelete = function () {\n // eslint-disable-next-line\n var annotation = this.findCurrentAnnotation();\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n if (annotation.annotationSettings.isLock) {\n if (this.checkAllowedInteractions('Delete', annotation)) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return true;\n }\n }\n return false;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.findCurrentAnnotation = function () {\n if (this.textMarkupAnnotationModule && this.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return this.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {\n return this.pdfViewer.selectedItems.annotations[0];\n }\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.updateAnnotationAllowedInteractions = function (annotation) {\n // eslint-disable-next-line\n var annotationInteraction = ['None'];\n if (annotation) {\n if (annotation.shapeAnnotationType === 'FreeText' && this.pdfViewer.freeTextSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.freeTextSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Ink' && this.pdfViewer.inkAnnotationSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.inkAnnotationSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'StickyNotes' && this.pdfViewer.stickyNotesSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.stickyNotesSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Stamp' && this.pdfViewer.stampSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.stampSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Image' && this.pdfViewer.customStampSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.customStampSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'textMarkup') {\n if (annotation.textMarkupAnnotationType === 'Highlight' && this.pdfViewer.highlightSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.highlightSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.textMarkupAnnotationType === 'Underline' && this.pdfViewer.underlineSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.underlineSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.textMarkupAnnotationType === 'Strikethrough' && this.pdfViewer.strikethroughSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.strikethroughSettings.allowedInteractions, annotation.allowedInteractions);\n }\n }\n else {\n if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance' && this.pdfViewer.distanceSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.distanceSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Perimeter' && this.pdfViewer.perimeterSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.perimeterSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Radius' && this.pdfViewer.radiusSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.radiusSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Area' && this.pdfViewer.areaSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.areaSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.measureType === 'Volume' && this.pdfViewer.volumeSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.volumeSettings.allowedInteractions, annotation.allowedInteractions);\n }\n }\n else {\n if (annotation.shapeAnnotationType === 'Line' && this.pdfViewer.lineSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.lineSettings.allowedInteractions, annotation.allowedInteractions);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead') && this.pdfViewer.arrowSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.arrowSettings.allowedInteractions, annotation.allowedInteractions);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse' || annotation.shapeAnnotationType === 'Oval') && this.pdfViewer.circleSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.circleSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if ((annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square') && this.pdfViewer.rectangleSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.rectangleSettings.allowedInteractions, annotation.allowedInteractions);\n }\n else if (annotation.shapeAnnotationType === 'Polygon' && this.pdfViewer.polygonSettings.allowedInteractions) {\n // eslint-disable-next-line max-len\n annotationInteraction = this.checkAllowedInteractionSettings(this.pdfViewer.polygonSettings.allowedInteractions, annotation.allowedInteractions);\n }\n }\n }\n }\n return annotationInteraction;\n };\n /**\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.checkIsLockSettings = function (annotation) {\n // eslint-disable-next-line\n var isLocked = false;\n if (annotation) {\n if (annotation.shapeAnnotationType === 'FreeText') {\n isLocked = this.checkLockSettings(this.pdfViewer.freeTextSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.inkAnnotationSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'StickyNotes') {\n isLocked = this.checkLockSettings(this.pdfViewer.stickyNotesSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Stamp') {\n isLocked = this.checkLockSettings(this.pdfViewer.stampSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Image') {\n isLocked = this.checkLockSettings(this.pdfViewer.customStampSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'textMarkup') {\n if (annotation.textMarkupAnnotationType === 'Highlight') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.highlightSettings.isLock);\n }\n else if (annotation.textMarkupAnnotationType === 'Underline') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.underlineSettings.isLock);\n }\n else if (annotation.textMarkupAnnotationType === 'Strikethrough') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.strikethroughSettings.isLock);\n }\n }\n else {\n if (annotation.measureType !== '') {\n if (annotation.measureType === 'Distance') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.distanceSettings.isLock);\n }\n else if (annotation.measureType === 'Perimeter') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.perimeterSettings.isLock);\n }\n else if (annotation.measureType === 'Radius') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.radiusSettings.isLock);\n }\n else if (annotation.measureType === 'Area') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.areaSettings.isLock);\n }\n else if (annotation.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.volumeSettings.isLock);\n }\n }\n else {\n if (annotation.shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.lineSettings.isLock);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Arrow' || annotation.shapeAnnotationType === 'LineWidthArrowHead')) {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.arrowSettings.isLock);\n // eslint-disable-next-line max-len\n }\n else if ((annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Ellipse' || annotation.shapeAnnotationType === 'Oval')) {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.circleSettings.isLock);\n }\n else if ((annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square')) {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.rectangleSettings.isLock);\n }\n else if (annotation.shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n isLocked = this.checkLockSettings(this.pdfViewer.polygonSettings.isLock);\n }\n }\n }\n }\n return isLocked;\n };\n // eslint-disable-next-line\n Annotation.prototype.checkLockSettings = function (locked) {\n var islock = false;\n if (locked || this.pdfViewer.annotationSettings.isLock) {\n islock = true;\n }\n return islock;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.restrictContextMenu = function () {\n // eslint-disable-next-line\n var isRestrict = false;\n // eslint-disable-next-line\n var annotation = this.findCurrentAnnotation();\n if (annotation && this.checkIsLockSettings(annotation) && this.checkAllowedInteractions('Select', annotation)) {\n isRestrict = true;\n }\n return isRestrict;\n };\n // eslint-disable-next-line\n Annotation.prototype.checkAllowedInteractionSettings = function (annotationInteraction, annotationAllowedInteraction) {\n if (annotationAllowedInteraction) {\n if (annotationAllowedInteraction.length === 1) {\n if (annotationAllowedInteraction[0] !== 'None') {\n return annotationAllowedInteraction;\n }\n }\n else {\n return annotationAllowedInteraction;\n }\n }\n if (annotationInteraction) {\n if (annotationInteraction.length === 1) {\n if (annotationInteraction[0] !== 'None') {\n return annotationInteraction;\n }\n }\n else {\n return annotationInteraction;\n }\n }\n if (this.pdfViewer.annotationSettings.allowedInteractions) {\n return this.pdfViewer.annotationSettings.allowedInteractions;\n }\n return ['None'];\n };\n /**\n * @param value\n * @param type\n * @param value\n * @param type\n * @private\n */\n Annotation.prototype.getValue = function (value, type) {\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 Annotation.prototype.convertRgbToNumberArray = function (value) {\n // eslint-disable-next-line max-len\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 Annotation.prototype.convertToRgbString = function (rgb) {\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\n };\n Annotation.prototype.convertToHsvString = function (hsv) {\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\n };\n Annotation.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 Annotation.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 Annotation.prototype.rgbToHsv = function (r, g, b, opacity) {\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 s;\n var v = max;\n var d = max - min;\n 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 Annotation.prototype.hsvToRgb = function (h, s, v, opacity) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\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 i = Math.floor(h);\n f = h - i;\n p = v * (1 - s);\n q = v * (1 - s * f);\n 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 Annotation.prototype.rgbToHex = function (rgb) {\n // eslint-disable-next-line max-len\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 /**\n * @param dataFormat\n * @private\n */\n Annotation.prototype.exportAnnotationsAsStream = function (dataFormat) {\n var _this = this;\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.pdfViewer.viewerBase.updateExportItem();\n if (isAnnotations) {\n return new Promise(function (resolve, reject) {\n _this.pdfViewer.viewerBase.createRequestForExportAnnotations(true, dataFormat, true).then(function (value) {\n resolve(value);\n });\n });\n }\n }\n return null;\n };\n Annotation.prototype.hex = function (x) {\n if (!isNullOrUndefined(x)) {\n return ('0' + x.toString(16)).slice(-2);\n }\n else {\n return '0';\n }\n };\n /**\n * @param obj\n * @private\n */\n // eslint-disable-next-line\n Annotation.prototype.cloneObject = function (obj) {\n return JSON.parse(JSON.stringify(obj));\n };\n /**\n * @private\n */\n Annotation.prototype.destroy = function () {\n this.destroyPropertiesWindow();\n this.textMarkupAnnotationModule.clear();\n };\n /**\n * @private\n */\n Annotation.prototype.getModuleName = function () {\n return 'Annotation';\n };\n /**\n * Get vertex points properties\n * @private\n */\n Annotation.prototype.getVertexPointsXY = function (points) {\n var vertexPoints = [];\n //Converting points model into vertex property\n for (var j = 0; j < points.length; j++) {\n vertexPoints[j] = { X: points[j].x, Y: points[j].y };\n }\n return vertexPoints;\n };\n /**\n * Method used to add annotations using program.\n *\n * @param annotationType - It describes type of annotation object.\n * @param options - It describes about the annotation objects and it's property.\n * @param dynamicStampItem - It describe which type of dynamic stamp.\n * @param signStampItem - It describe which type of sign stamp.\n * @param standardBusinessStampItem - It describe which type of standard business stamp.\n * @returns void\n */\n Annotation.prototype.addAnnotation = function (annotationType, options, dynamicStampItem, signStampItem, standardBusinessStampItem) {\n //Initialize the bounds and pageNumber\n var offset = { x: 1, y: 1 };\n var pageNumber = 0;\n if (options) {\n if (options.pageNumber && options.pageNumber > 0)\n pageNumber = options.pageNumber ? options.pageNumber - 1 : 0;\n }\n //Initialize the pdf annotation object array\n var annotationObject = null;\n var pdfAnnotation = [];\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n //Seperate the annotation type with it's method\n if (annotationType == 'FreeText') {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.freeTextAnnotationModule.updateAddAnnotationDetails(options, offset);\n this.pdfViewer.annotation.freeTextAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType == 'StickyNotes') {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.stickyNotesAnnotationModule.updateAddAnnotationDetails(options, offset);\n this.pdfViewer.annotation.stickyNotesAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType == 'Highlight' || annotationType == 'Underline' || annotationType == 'Strikethrough') {\n if (annotationType == 'Highlight')\n annotationObject = options;\n else if (annotationType == 'Underline')\n annotationObject = options;\n else if (annotationType == 'Strikethrough')\n annotationObject = options;\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.textMarkupAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject);\n this.pdfViewer.annotation.textMarkupAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Line' || annotationType === 'Arrow' || annotationType === 'Rectangle' || annotationType === 'Circle' || annotationType === 'Polygon') {\n if (annotationType == 'Line')\n annotationObject = options;\n else if (annotationType == 'Arrow')\n annotationObject = options;\n else if (annotationType == 'Rectangle')\n annotationObject = options;\n else if (annotationType == 'Circle')\n annotationObject = options;\n else if (annotationType == 'Polygon')\n annotationObject = options;\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.shapeAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject, offset);\n this.pdfViewer.annotation.shapeAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Distance' || annotationType === 'Perimeter' || annotationType === 'Area' || annotationType === 'Radius' || annotationType === 'Volume') {\n if (annotationType == 'Distance')\n annotationObject = options;\n else if (annotationType == 'Perimeter')\n annotationObject = options;\n else if (annotationType == 'Area')\n annotationObject = options;\n else if (annotationType == 'Radius')\n annotationObject = options;\n else if (annotationType == 'Volume')\n annotationObject = options;\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.measureAnnotationModule.updateAddAnnotationDetails(annotationType, annotationObject, offset);\n this.pdfViewer.annotation.measureAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Stamp') {\n if (options && options.customStamps) {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.stampAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem);\n }\n else {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.stampAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber, dynamicStampItem, signStampItem, standardBusinessStampItem);\n }\n this.pdfViewer.annotation.stampAnnotationModule.isAddAnnotationProgramatically = true;\n }\n else if (annotationType === 'Ink') {\n pdfAnnotation[pageNumber] = this.pdfViewer.annotation.inkAnnotationModule.updateAddAnnotationDetails(options, offset, pageNumber);\n this.pdfViewer.annotation.inkAnnotationModule.isAddAnnotationProgramatically = true;\n }\n //Annotation rendering can be done with the import annotation method.\n var pdf = { pdfAnnotation: pdfAnnotation };\n this.pdfViewerBase.isAddAnnotation = true;\n this.pdfViewerBase.importAnnotations(pdf);\n this.pdfViewerBase.isAddAnnotation = false;\n };\n /**\n * @param annotation\n * @private\n */\n Annotation.prototype.triggerAnnotationAddEvent = function (annotation) {\n var annotationType = annotation.shapeAnnotationType;\n if (annotationType === 'Stamp' || annotationType === 'Image' || annotationType === 'Path' || annotationType === 'FreeText' || annotationType === 'StickyNotes' || annotationType === 'Ink') {\n var settings = void 0;\n if (annotationType === 'FreeText') {\n settings = {\n opacity: annotation.opacity, borderColor: annotation.strokeColor, borderWidth: annotation.thickness, author: annotation.author, subject: annotation.subject, modifiedDate: annotation.modifiedDate,\n fillColor: annotation.fillColor, fontSize: annotation.fontSize, width: annotation.bounds.width, height: annotation.bounds.height, fontColor: annotation.fontColor, fontFamily: annotation.fontFamily, defaultText: annotation.dynamicText, fontStyle: annotation.font, textAlignment: annotation.textAlign\n };\n }\n else {\n settings = {\n opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor,\n thickness: annotation.thickness, author: annotation.author, subject: annotation.subject,\n modifiedDate: annotation.modifiedDate, data: annotation.data\n };\n }\n // eslint-disable-next-line\n var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height };\n var type = this.getAnnotationType(annotation.shapeAnnotationType, annotation.measureType);\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, settings);\n }\n else if (annotationType === 'SignatureText' || annotationType === 'SignatureImage' || annotationType === 'HandWrittenSignature') {\n // eslint-disable-next-line\n var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureAdd(annotation.pageIndex, annotation.signatureName, annotation.shapeAnnotationType, bounds, annotation.opacity, annotation.strokeColor, annotation.thickness, annotation.data);\n }\n else {\n // eslint-disable-next-line\n var setting = {\n opacity: annotation.opacity, fillColor: annotation.fillColor, strokeColor: annotation.strokeColor,\n thickness: annotation.thickness, author: annotation.author, subject: annotation.subject,\n modifiedDate: annotation.modifiedDate\n };\n var bounds = { left: annotation.bounds.x, top: annotation.bounds.y, width: annotation.bounds.width, height: annotation.bounds.height };\n var type = this.getAnnotationType(annotation.shapeAnnotationType, annotation.measureType);\n if (type === 'Line' || type === 'Arrow' || type === 'Distance' || type === 'Perimeter') {\n setting.lineHeadStartStyle = this.getArrowString(annotation.sourceDecoraterShapes);\n setting.lineHeadEndStyle = this.getArrowString(annotation.taregetDecoraterShapes);\n setting.borderDashArray = annotation.borderDashArray;\n }\n var labelSettings = void 0;\n if (this.pdfViewer.enableShapeLabel) {\n labelSettings = {\n // eslint-disable-next-line max-len\n fontColor: annotation.fontColor, fontSize: annotation.fontSize, fontFamily: annotation.fontFamily,\n opacity: annotation.labelOpacity, labelContent: annotation.labelContent, fillColor: annotation.labelFillColor\n };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, setting, null, null, null, labelSettings);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationAdd(annotation.pageIndex, annotation.annotName, type, bounds, setting);\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.triggerAnnotationUnselectEvent = function () {\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations[0]) {\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage' && annotation.shapeAnnotationType !== 'Path') {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n this.pdfViewer.clearSelection(annotation.pageIndex);\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.updateFontFamilyRenderSize = function (currentAnnotation, currentValue) {\n var freeTextAnnotation = this.freeTextAnnotationModule;\n freeTextAnnotation.inputBoxElement.style.fontFamily = currentValue;\n freeTextAnnotation.autoFitFreeText();\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n var padding = parseFloat(freeTextAnnotation.inputBoxElement.style.paddingLeft);\n var inputEleHeight = currentAnnotation.bounds.height * zoomFactor;\n var characterLength = 8;\n var inputEleWidth = parseFloat(freeTextAnnotation.inputBoxElement.style.width) - characterLength;\n inputEleWidth = ((inputEleWidth) / zoomFactor);\n inputEleHeight = ((inputEleHeight) / zoomFactor);\n var heightDiff = (inputEleHeight - currentAnnotation.bounds.height);\n var y = undefined;\n if (heightDiff > 0) {\n y = currentAnnotation.wrapper.offsetY + (heightDiff / 2);\n y = y > 0 ? y : undefined;\n }\n else {\n heightDiff = Math.abs(heightDiff);\n y = currentAnnotation.wrapper.offsetY - (heightDiff / 2);\n y = y > 0 ? y : undefined;\n }\n var widthDiff = (inputEleWidth - currentAnnotation.bounds.width);\n var x = undefined;\n if (widthDiff > 0) {\n x = currentAnnotation.wrapper.offsetX + (widthDiff / 2);\n x = x > 0 ? x : undefined;\n }\n else {\n widthDiff = Math.abs(widthDiff);\n x = currentAnnotation.wrapper.offsetX - (widthDiff / 2);\n }\n currentAnnotation.bounds.width = inputEleWidth;\n currentAnnotation.bounds.height = inputEleHeight;\n this.pdfViewer.nodePropertyChange(currentAnnotation, { fontFamily: currentValue, bounds: { width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height, y: y, x: x } });\n this.pdfViewer.renderSelector(currentAnnotation.pageIndex, this.pdfViewer.annotationSelectorSettings);\n this.modifyInCollections(currentAnnotation, 'bounds');\n };\n Annotation.prototype.updateCanvas = function (canvas, pageWidth, pageHeight, pageNumber) {\n var ratio = this.pdfViewerBase.getZoomRatio();\n canvas.width = pageWidth * ratio;\n canvas.height = pageHeight * ratio;\n canvas.style.width = pageWidth + 'px';\n canvas.style.height = pageHeight + 'px';\n canvas.style.position = 'absolute';\n canvas.style.zIndex = '1';\n this.pdfViewerBase.applyElementStyles(canvas, pageNumber);\n };\n return Annotation;\n}());\nexport { Annotation };\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 } from '@syncfusion/ej2-base';\nimport { LineTool, PolygonDrawingTool } from '../drawing/tools';\nimport { findObjectsUnderMouse } from '../drawing/action';\n/**\n * The `LinkAnnotation` module is used to handle link annotation actions of PDF viewer.\n *\n * @hidden\n */\nvar LinkAnnotation = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function LinkAnnotation(pdfViewer, viewerBase) {\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * @param data\n * @param pageIndex\n * @param data\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n LinkAnnotation.prototype.renderHyperlinkContent = function (data, pageIndex) {\n if (this.pdfViewer.enableHyperlink) {\n var hyperlinks = data.hyperlinks;\n var hyperlinksBounds = data.hyperlinkBounds;\n this.linkAnnotation = data.linkAnnotation;\n this.linkPage = data.linkPage;\n this.annotationY = data.annotationLocation;\n if (hyperlinks && hyperlinks.length > 0 && hyperlinksBounds.length > 0) {\n this.renderWebLink(hyperlinks, hyperlinksBounds, pageIndex);\n }\n if (this.linkAnnotation && this.linkAnnotation.length > 0 && this.linkPage.length > 0) {\n this.renderDocumentLink(this.linkAnnotation, this.linkPage, this.annotationY, pageIndex);\n }\n }\n };\n /**\n * @private\n */\n LinkAnnotation.prototype.disableHyperlinkNavigationUnderObjects = function (eventTarget, evt, element) {\n var objects = findObjectsUnderMouse(element, element.pdfViewer, evt);\n if (objects.length > 0) {\n if (evt.target.classList.contains('e-pv-hyperlink')) {\n eventTarget.style.cursor = 'move';\n eventTarget.style.pointerEvents = 'none';\n eventTarget.title = '';\n }\n }\n else {\n var hyperlinkObjects = document.getElementsByClassName('e-pv-hyperlink');\n if (hyperlinkObjects && hyperlinkObjects.length > 0) {\n for (var i = 0; i < hyperlinkObjects.length; i++) {\n if (hyperlinkObjects[i].style.pointerEvents === 'none')\n hyperlinkObjects[i].style.pointerEvents = 'all';\n if (!hyperlinkObjects[i].title)\n hyperlinkObjects[i].title = hyperlinkObjects[i].href;\n }\n }\n }\n };\n LinkAnnotation.prototype.renderWebLink = function (hyperlinks, hyperlinksBounds, pageIndex) {\n var _this = this;\n var proxy = this;\n var isHyperlinkClicked = false;\n var _loop_1 = function (i) {\n var aTag = createElement('a', { id: 'weblinkdiv_' + i + '_' + pageIndex });\n // eslint-disable-next-line\n var rect = hyperlinksBounds[i];\n aTag = this_1.setHyperlinkProperties(aTag, rect, pageIndex);\n aTag.title = hyperlinks[i];\n if (hyperlinks[i] && hyperlinks[i].split('http').length === 1) {\n var hyperlinkText = \"http://\" + hyperlinks[i];\n aTag.setAttribute('href', hyperlinkText);\n }\n else {\n aTag.setAttribute('href', hyperlinks[i]);\n }\n if (this_1.pdfViewer.hyperlinkOpenState === 'CurrentTab') {\n aTag.target = '_self';\n aTag.onclick = function (e) { return __awaiter(_this, void 0, void 0, function () {\n var isCancel;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!isHyperlinkClicked) return [3 /*break*/, 4];\n e.preventDefault();\n if (!(proxy.pdfViewerBase.tool instanceof LineTool || proxy.pdfViewerBase.tool instanceof PolygonDrawingTool)) return [3 /*break*/, 1];\n return [2 /*return*/, false];\n case 1: return [4 /*yield*/, proxy.pdfViewer.fireHyperlinkClick(hyperlinks[i], aTag)];\n case 2:\n isCancel = _a.sent();\n if (isCancel) {\n isHyperlinkClicked = true;\n aTag.click();\n }\n return [2 /*return*/, isCancel];\n case 3: return [3 /*break*/, 5];\n case 4:\n isHyperlinkClicked = false;\n return [2 /*return*/, true];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n aTag.onmouseover = function () {\n proxy.triggerHyperlinkEvent(aTag);\n };\n }\n else if (this_1.pdfViewer.hyperlinkOpenState === 'NewTab') {\n aTag.target = '_blank';\n aTag.onclick = function (e) { return __awaiter(_this, void 0, void 0, function () {\n var isCancel;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!isHyperlinkClicked) return [3 /*break*/, 4];\n e.preventDefault();\n if (!(proxy.pdfViewerBase.tool instanceof LineTool || proxy.pdfViewerBase.tool instanceof PolygonDrawingTool)) return [3 /*break*/, 1];\n return [2 /*return*/, false];\n case 1: return [4 /*yield*/, proxy.pdfViewer.fireHyperlinkClick(hyperlinks[i], aTag)];\n case 2:\n isCancel = _a.sent();\n if (isCancel) {\n isHyperlinkClicked = true;\n aTag.click();\n }\n return [2 /*return*/, isCancel];\n case 3: return [3 /*break*/, 5];\n case 4:\n isHyperlinkClicked = false;\n return [2 /*return*/, true];\n case 5: return [2 /*return*/];\n }\n });\n }); };\n aTag.onmouseover = function () {\n proxy.triggerHyperlinkEvent(aTag);\n };\n }\n else if (this_1.pdfViewer.hyperlinkOpenState === 'NewWindow') {\n aTag.onclick = function (e) { return __awaiter(_this, void 0, void 0, function () {\n var isCancel;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n e.preventDefault();\n if (!(proxy.pdfViewerBase.tool instanceof LineTool || proxy.pdfViewerBase.tool instanceof PolygonDrawingTool)) return [3 /*break*/, 1];\n return [2 /*return*/, false];\n case 1: return [4 /*yield*/, proxy.pdfViewer.fireHyperlinkClick(hyperlinks[i], aTag)];\n case 2:\n isCancel = _a.sent();\n if (isCancel) {\n window.open(aTag.href, '_blank', 'scrollbars=yes,resizable=yes');\n }\n return [2 /*return*/, false];\n }\n });\n }); };\n aTag.onmouseover = function () {\n proxy.triggerHyperlinkEvent(aTag);\n };\n }\n var pageDiv = document.getElementById(this_1.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n pageDiv.appendChild(aTag);\n };\n var this_1 = this;\n for (var i = 0; i < hyperlinks.length; i++) {\n _loop_1(i);\n }\n };\n LinkAnnotation.prototype.triggerHyperlinkEvent = function (aTag) {\n if (this.pdfViewerBase.tool instanceof LineTool || this.pdfViewerBase.tool instanceof PolygonDrawingTool) {\n return false;\n }\n else {\n this.pdfViewer.fireHyperlinkHover(aTag);\n return true;\n }\n };\n LinkAnnotation.prototype.renderDocumentLink = function (linkAnnotation, linkPage, annotationY, pageIndex) {\n var proxy = this;\n var _loop_2 = function (i) {\n var aTag = createElement('a', { id: 'linkdiv_' + i + '_' + pageIndex });\n // eslint-disable-next-line\n var rect = linkAnnotation[i];\n aTag = this_2.setHyperlinkProperties(aTag, rect, pageIndex);\n aTag.setAttribute('href', 'javascript:void(0)');\n if (linkPage[i] !== undefined && linkPage[i] >= 0) {\n var destPageHeight = (this_2.pdfViewerBase.pageSize[pageIndex].height);\n var destLocation = void 0;\n var scrollValue = void 0;\n var pageSize = this_2.pdfViewerBase.pageSize[linkPage[i]];\n if (pageSize) {\n if (annotationY.length !== 0) {\n destLocation = (annotationY[i]);\n // eslint-disable-next-line max-len\n scrollValue = pageSize.top * this_2.pdfViewerBase.getZoomFactor() + ((destPageHeight - destLocation) * this_2.pdfViewerBase.getZoomFactor());\n }\n else {\n // eslint-disable-next-line max-len\n scrollValue = pageSize.top * this_2.pdfViewerBase.getZoomFactor();\n }\n }\n if (scrollValue !== undefined) {\n aTag.name = scrollValue.toString();\n aTag.setAttribute('aria-label', scrollValue.toString());\n aTag.onclick = function () {\n if (proxy.pdfViewerBase.tool instanceof LineTool || proxy.pdfViewerBase.tool instanceof PolygonDrawingTool) {\n return false;\n }\n else {\n // eslint-disable-next-line radix\n proxy.pdfViewerBase.viewerContainer.scrollTop = parseInt(aTag.name);\n return false;\n }\n };\n }\n var pageDiv = document.getElementById(this_2.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n pageDiv.appendChild(aTag);\n }\n };\n var this_2 = this;\n for (var i = 0; i < linkAnnotation.length; i++) {\n _loop_2(i);\n }\n };\n // eslint-disable-next-line\n LinkAnnotation.prototype.setHyperlinkProperties = function (aTag, rect, pageIndex) {\n aTag.className = 'e-pv-hyperlink';\n aTag.style.background = 'transparent';\n aTag.style.position = 'absolute';\n aTag.style.left = (rect.Left * this.pdfViewerBase.getZoomFactor()) + 'px';\n aTag.style.top = (rect.Top * this.pdfViewerBase.getZoomFactor()) + 'px';\n aTag.style.width = (rect.Width * this.pdfViewerBase.getZoomFactor()) + 'px';\n if (rect.Height < 0) {\n aTag.style.height = (-rect.Height * this.pdfViewerBase.getZoomFactor()) + 'px';\n aTag.style.top = ((rect.Top + rect.Height) * this.pdfViewerBase.getZoomFactor()) + 'px';\n }\n else {\n aTag.style.height = ((rect.Height < 0 ? -rect.Height : rect.Height) * this.pdfViewerBase.getZoomFactor()) + 'px';\n }\n aTag.style.color = 'transparent';\n this.pdfViewerBase.applyElementStyles(aTag, pageIndex);\n return aTag;\n };\n /**\n * @param pageNumber\n * @param isAdd\n * @param pageNumber\n * @param isAdd\n * @private\n */\n LinkAnnotation.prototype.modifyZindexForTextSelection = function (pageNumber, isAdd) {\n if (this.pdfViewerBase.pageCount > 0) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + pageNumber);\n if (pageDiv) {\n var pageChildNodes = pageDiv.childNodes;\n for (var i = 0; i < pageChildNodes.length; i++) {\n var childElement = pageChildNodes[i];\n if (childElement.tagName === 'A') {\n if (isAdd) {\n childElement.classList.add('e-pv-onselection');\n }\n else {\n childElement.classList.remove('e-pv-onselection');\n }\n }\n }\n }\n }\n };\n /**\n * @param element\n * @param isAdd\n * @param element\n * @param isAdd\n * @private\n */\n LinkAnnotation.prototype.modifyZindexForHyperlink = function (element, isAdd) {\n if (isAdd) {\n element.classList.add('e-pv-onselection');\n }\n else {\n element.classList.remove('e-pv-onselection');\n }\n };\n /**\n * @private\n */\n LinkAnnotation.prototype.destroy = function () {\n for (var i = 0; i < this.pdfViewerBase.pageCount - 1; i++) {\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + i);\n if (pageDiv) {\n // eslint-disable-next-line max-len\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 }\n }\n };\n /**\n * @private\n */\n LinkAnnotation.prototype.getModuleName = function () {\n return 'LinkAnnotation';\n };\n return LinkAnnotation;\n}());\nexport { LinkAnnotation };\n","import { createElement, Browser } from '@syncfusion/ej2-base';\nimport { AjaxHandler } from '../index';\n/**\n * Print module\n */\nvar Print = /** @class */ (function () {\n /**\n * @param viewer\n * @param base\n * @private\n */\n function Print(viewer, base) {\n this.printHeight = 1056;\n this.printWidth = 816;\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * Print the PDF document being loaded in the ejPdfViewer control.\n *\n * @returns void\n */\n Print.prototype.print = function () {\n var _this = this;\n var pageIndex;\n if (this.pdfViewerBase.pageCount > 0) {\n // eslint-disable-next-line max-len\n this.printViewerContainer = createElement('div', {\n id: this.pdfViewer.element.id + '_print_viewer_container',\n className: 'e-pv-print-viewer-container'\n });\n if (this.pdfViewer.printMode === 'Default') {\n this.pdfViewerBase.showPrintLoadingIndicator(true);\n this.iframe = document.createElement('iframe');\n this.iframe.className = 'iframeprint';\n this.iframe.id = 'iframePrint';\n this.iframe.style.position = 'fixed';\n this.iframe.style.top = '-100000000px';\n document.body.appendChild(this.iframe);\n this.frameDoc = this.iframe.contentWindow ? this.iframe.contentWindow : this.iframe.contentDocument;\n this.frameDoc.document.open();\n }\n else {\n this.printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');\n this.printWindow.moveTo(0, 0);\n this.printWindow.resizeTo(screen.availWidth, screen.availHeight);\n this.createPrintLoadingIndicator(this.printWindow.document.body);\n }\n setTimeout(function () {\n for (pageIndex = 0; pageIndex < _this.pdfViewerBase.pageCount; pageIndex++) {\n var pageWidth = _this.pdfViewerBase.pageSize[pageIndex].width;\n var pageHeight = _this.pdfViewerBase.pageSize[pageIndex].height;\n // Check if the document is A4 by comparing the A4 standard values with the buffer value\n var a4StdWidth = 793;\n var a4StdHeight = 1122;\n var bufferWidth = 10;\n var bufferHeight = 10;\n //Reduced the A4 standard width and height to prevent blank pages while printing\n var a4PrintWidth = 783;\n var a4PrintHeight = 1110;\n _this.printWidth = 816;\n _this.printHeight = 1056;\n // Check if the A4 document is protrait or landscape\n if (pageWidth > pageHeight) {\n a4StdWidth = 1122;\n a4StdHeight = 793;\n }\n if (!(pageWidth >= (a4StdWidth + bufferWidth) || pageWidth <= (a4StdWidth - bufferWidth)) && !(pageHeight >= (a4StdHeight + bufferHeight) || pageHeight <= (a4StdHeight - bufferHeight))) {\n _this.printWidth = a4PrintWidth;\n _this.printHeight = a4PrintHeight;\n }\n _this.pdfViewer.printModule.createRequestForPrint(pageIndex, pageWidth, pageHeight, _this.pdfViewerBase.pageCount);\n }\n _this.pdfViewer.firePrintEnd(_this.pdfViewer.downloadFileName);\n }, 100);\n }\n };\n Print.prototype.createRequestForPrint = function (pageIndex, pageWidth, pageHeight, pageCount) {\n var proxy = this;\n // tslint: disable-next-line:max-line-length\n // set default zoomFactor value.\n var jsonObject = {\n pageNumber: pageIndex.toString(), documentId: this.pdfViewerBase.documentId,\n hashId: this.pdfViewerBase.hashId, zoomFactor: \"2\",\n action: 'PrintImages',\n elementId: this.pdfViewer.element.id,\n uniqueId: this.pdfViewerBase.documentId,\n digitalSignaturePresent: this.pdfViewerBase.digitalSignaturePresent(pageIndex)\n };\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n proxy.pdfViewerBase.createFormfieldsJsonData();\n proxy.printRequestHandler = new AjaxHandler(proxy.pdfViewer);\n proxy.printRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.print;\n proxy.printRequestHandler.responseType = null;\n proxy.printRequestHandler.mode = false;\n if (this.pdfViewerBase.validateForm && this.pdfViewer.enableFormFieldsValidation) {\n this.pdfViewer.fireValidatedFailed(proxy.pdfViewer.serverActionSettings.download);\n this.pdfViewerBase.validateForm = false;\n this.pdfViewerBase.showPrintLoadingIndicator(false);\n }\n else {\n proxy.printRequestHandler.send(jsonObject);\n }\n // eslint-disable-next-line\n proxy.printRequestHandler.onSuccess = function (result) {\n proxy.pdfViewerBase.isPrint = true;\n // eslint-disable-next-line\n var printImage = result.data;\n var redirect = proxy.pdfViewerBase.checkRedirection(printImage);\n if (redirect) {\n proxy.pdfViewerBase.showPrintLoadingIndicator(false);\n }\n else {\n if (printImage) {\n if (typeof printImage !== 'object') {\n try {\n printImage = JSON.parse(printImage);\n if (typeof printImage !== 'object') {\n proxy.pdfViewerBase.onControlError(500, printImage, proxy.pdfViewer.serverActionSettings.print);\n printImage = null;\n }\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, printImage, proxy.pdfViewer.serverActionSettings.print);\n printImage = null;\n }\n }\n }\n if (printImage && printImage.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.print, printImage);\n var annotationSource_1 = '';\n if (!proxy.pdfViewer.annotationSettings.skipPrint) {\n // eslint-disable-next-line\n var annotationCollections = proxy.pdfViewerBase.documentAnnotationCollections;\n if (annotationCollections && annotationCollections[printImage.pageNumber] && proxy.pdfViewerBase.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line\n var printCollection = annotationCollections[printImage.pageNumber];\n if (proxy.pdfViewerBase.isImportAction) {\n var textMarkupAnnotation = printCollection.textMarkupAnnotation;\n var shapeAnnotation = printCollection.shapeAnnotation;\n var measureShapeAnnotation = printCollection.measureShapeAnnotation;\n var stampAnnotation = printCollection.stampAnnotations;\n // eslint-disable-next-line\n var stickyNoteAnnotation = printCollection.stickyNotesAnnotation;\n // eslint-disable-next-line max-len\n annotationSource_1 = proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.printTextMarkupAnnotations(textMarkupAnnotation, printImage.pageNumber, stampAnnotation, shapeAnnotation, measureShapeAnnotation, stickyNoteAnnotation);\n }\n else {\n // eslint-disable-next-line max-len\n annotationSource_1 = proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.printTextMarkupAnnotations(printCollection.textMarkupAnnotation, printImage.pageNumber, printCollection.stampAnnotations, printCollection.shapeAnnotation, printCollection.measureShapeAnnotation, printCollection.stickyNoteAnnotation);\n }\n }\n if (proxy.pdfViewerBase.isAnnotationCollectionRemoved) {\n // eslint-disable-next-line max-len\n annotationSource_1 = proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.printTextMarkupAnnotations(null, printImage.pageNumber, null, null, null, null);\n }\n }\n var currentPageNumber_1 = printImage.pageNumber;\n // eslint-disable-next-line max-len\n proxy.printCanvas = createElement('canvas', { id: proxy.pdfViewer.element.id + '_printCanvas_' + pageIndex, className: 'e-pv-print-canvas' });\n proxy.printCanvas.style.width = pageWidth + 'px';\n proxy.printCanvas.style.height = pageHeight + 'px';\n var printScaleValue = 2;\n proxy.printCanvas.height = proxy.printHeight * printScaleValue * window.devicePixelRatio;\n proxy.printCanvas.width = proxy.printWidth * printScaleValue * window.devicePixelRatio;\n var context_1 = proxy.printCanvas.getContext('2d');\n var pageImage_1 = new Image();\n var annotationImage_1 = new Image();\n pageImage_1.onload = function () {\n if ((pageHeight > pageWidth) || !proxy.pdfViewer.enablePrintRotation) {\n context_1.drawImage(pageImage_1, 0, 0, proxy.printCanvas.width, proxy.printCanvas.height);\n if (annotationSource_1) {\n context_1.drawImage(annotationImage_1, 0, 0, proxy.printCanvas.width, proxy.printCanvas.height);\n }\n }\n else {\n // translate to center canvas\n context_1.translate(proxy.printCanvas.width * 0.5, proxy.printCanvas.height * 0.5);\n // rotate the canvas to - 90 degree\n context_1.rotate(-0.5 * Math.PI);\n // un translate the canvas back to origin\n context_1.translate(-proxy.printCanvas.height * 0.5, -proxy.printCanvas.width * 0.5);\n // draw the image\n context_1.drawImage(pageImage_1, 0, 0, proxy.printCanvas.height, proxy.printCanvas.width);\n if (annotationSource_1) {\n context_1.drawImage(annotationImage_1, 0, 0, proxy.printCanvas.height, proxy.printCanvas.width);\n }\n }\n if (currentPageNumber_1 === (proxy.pdfViewerBase.pageCount - 1)) {\n proxy.printWindowOpen();\n }\n proxy.pdfViewer.renderDrawing(null, pageIndex);\n };\n pageImage_1.src = printImage.image;\n annotationImage_1.src = annotationSource_1;\n proxy.printViewerContainer.appendChild(proxy.printCanvas);\n }\n }\n proxy.pdfViewerBase.isPrint = false;\n };\n // eslint-disable-next-line\n this.printRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.print);\n };\n // eslint-disable-next-line\n this.printRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.print);\n };\n };\n // eslint-disable-next-line\n Print.prototype.renderFieldsForPrint = function (pageIndex, heightRatio, widthRatio) {\n // eslint-disable-next-line\n var data = null;\n var targetField;\n if (this.pdfViewer.printMode === 'Default') {\n targetField = this.frameDoc.document.getElementById('fields_' + pageIndex);\n }\n else {\n targetField = this.printWindow.document.getElementById('fields_' + pageIndex);\n }\n if (this.pdfViewer.formFieldsModule) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n if (!this.pdfViewer.formDesignerModule) {\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 if (parseFloat(currentData['PageIndex']) === pageIndex) {\n // eslint-disable-next-line\n var field = this.pdfViewer.formFieldsModule.createFormFields(currentData, pageIndex, i, targetField);\n // eslint-disable-next-line\n var inputField = field.currentField;\n if (inputField) {\n // eslint-disable-next-line\n var bounds = currentData['LineBounds'];\n // eslint-disable-next-line\n var font = currentData['Font'];\n this.applyPosition(inputField, bounds, font, heightRatio, widthRatio);\n inputField.InsertSpaces = currentData.InsertSpaces;\n if (inputField.InsertSpaces) {\n // eslint-disable-next-line\n var font_1 = ((parseInt(inputField.style.width) / inputField.maxLength) - (parseFloat(inputField.style.fontSize) / 2)) - 0.6;\n inputField.style.letterSpacing = '' + font_1 + 'px';\n inputField.style.fontFamily = 'monospace';\n }\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if ((pageDetails.width > pageDetails.height) && this.pdfViewer.enablePrintRotation) {\n /*\n The below logig have been modified for the bug https://syncfusion.atlassian.net/browse/EJ2-57986\n This code changes is specific for form field elements.\n \n inputField.style.transform = 'rotate(-90deg)';\n let previousLeft: number = parseFloat(inputField.style.left);\n let currentWidthPosition: number = parseFloat(inputField.style.width) / 2;\n let currentHeightPosition: number = parseFloat(inputField.style.height) / 2;\n let currentTop: number = parseFloat(inputField.style.top);\n let currentHeight: number = parseFloat(inputField.style.height);\n inputField.style.left = (currentHeightPosition - currentWidthPosition + currentTop) + 'px';\n inputField.style.top = (pageDetails.width / widthRatio) - (currentHeight / heightRatio) - ((currentWidthPosition / heightRatio) - (currentHeightPosition / heightRatio) + previousLeft) + 'px';\n */\n var x = this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.X);\n var y = this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.Y);\n var width = this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.Width);\n var height = this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.Height);\n var pageHeight = pageDetails.width;\n var top = pageHeight - x - height;\n var left = (y + height);\n var width = (width);\n var height = (height);\n inputField.style.transform = \"rotate(-90deg)\";\n inputField.style.transformOrigin = \"left bottom\";\n inputField.style.left = left + 'px';\n inputField.style.top = top + 'px';\n inputField.style.height = height + 'px';\n inputField.style.width = width + 'px';\n }\n inputField.style.backgroundColor = 'transparent';\n if (!currentData.IsSignatureField) {\n inputField.style.borderColor = 'transparent';\n }\n targetField.appendChild(inputField);\n }\n }\n }\n }\n }\n else {\n var formDesignerData = null;\n if (this.pdfViewer.formDesignerModule) {\n formDesignerData = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n if (formDesignerData) {\n var formDesignerFieldsData = JSON.parse(formDesignerData);\n for (var i = 0; i < formDesignerFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentData = formDesignerFieldsData[i].FormField;\n if (currentData.pageNumber - 1 === pageIndex && currentData.isPrint) {\n var signatureField = this.pdfViewer.nameTable[formDesignerFieldsData[i].Key.split(\"_\")[0]];\n var element = signatureField.wrapper.children[0];\n var htmlElement = void 0;\n if (element) {\n if (currentData.formFieldAnnotationType === \"RadioButton\") {\n for (var j = 0; j < currentData.radiobuttonItem.length; j++) {\n signatureField = this.pdfViewer.nameTable[currentData.radiobuttonItem[j].id.split(\"_\")[0]];\n htmlElement = this.createFormDesignerFields(currentData.radiobuttonItem[j], element, signatureField);\n if (htmlElement) {\n // eslint-disable-next-line\n var bounds = currentData.radiobuttonItem[j].lineBound;\n // eslint-disable-next-line\n var font = currentData.radiobuttonItem[j].fontFamily;\n this.applyPosition(htmlElement, bounds, font, heightRatio, widthRatio, true, currentData.radiobuttonItem[j].zoomValue, currentData.pageNumber - 1);\n targetField.appendChild(htmlElement);\n }\n }\n }\n else {\n htmlElement = this.createFormDesignerFields(currentData, element, signatureField);\n if (htmlElement) {\n // eslint-disable-next-line\n var bounds = currentData.lineBound;\n // eslint-disable-next-line\n var font = currentData.fontFamily;\n this.applyPosition(htmlElement, bounds, font, heightRatio, widthRatio, true, currentData.zoomValue, currentData.pageNumber - 1);\n targetField.appendChild(htmlElement);\n }\n }\n }\n }\n }\n }\n }\n };\n Print.prototype.createFormDesignerFields = function (currentData, element, signatureField) {\n var htmlElement;\n var parentHtmlElement;\n var parentHtmlElementAttribute = {\n 'id': \"form_field_\" + element.id + '_html_element',\n 'class': 'foreign-object'\n };\n parentHtmlElement = this.pdfViewer.formDesignerModule.createHtmlElement('div', parentHtmlElementAttribute);\n var HtmlElementAttribute = {\n 'id': element.id + '_html_element',\n 'class': 'foreign-object'\n };\n htmlElement = this.pdfViewer.formDesignerModule.createHtmlElement('div', HtmlElementAttribute);\n if (currentData.formFieldAnnotationType === \"SignatureField\" || currentData.formFieldAnnotationType === \"InitialField\") {\n this.pdfViewer.formDesignerModule.disableSignatureClickEvent = true;\n element.template = htmlElement.appendChild(this.pdfViewer.formDesignerModule.createSignatureDialog(this.pdfViewer, signatureField, null, true));\n this.pdfViewer.formDesignerModule.disableSignatureClickEvent = false;\n }\n else if (currentData.formFieldAnnotationType === \"DropdownList\") {\n element.template = htmlElement.appendChild(this.pdfViewer.formDesignerModule.createDropDownList(element, signatureField, true));\n }\n else if (currentData.formFieldAnnotationType === \"ListBox\") {\n element.template = htmlElement.appendChild(this.pdfViewer.formDesignerModule.createListBox(element, signatureField, true));\n }\n else {\n element.template = htmlElement.appendChild(this.pdfViewer.formDesignerModule.createInputElement(currentData.formFieldAnnotationType, signatureField, null, true));\n }\n parentHtmlElement.appendChild(htmlElement);\n return htmlElement;\n };\n /**\n * @param inputField\n * @param bounds\n * @param font\n * @param heightRatio\n * @param widthRatio\n * @param inputField\n * @param bounds\n * @param font\n * @param heightRatio\n * @param widthRatio\n * @private\n */\n // eslint-disable-next-line\n Print.prototype.applyPosition = function (inputField, bounds, font, heightRatio, widthRatio, isFormDesignerField, zoomValue, pageIndex) {\n if (bounds) {\n var pageHeight = void 0;\n var left = void 0;\n var top_1;\n var width = void 0;\n var height = void 0;\n // This code changes is specific for form designer elements. https://syncfusion.atlassian.net/browse/EJ2-57986 \n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n var actualWidth = pageDetails ? pageDetails.width : 0;\n var actualHeight = pageDetails ? pageDetails.height : 0;\n if (isFormDesignerField && actualHeight < actualWidth && this.pdfViewer.enablePrintRotation) {\n /*\n The below logig have been modified for the bug https://syncfusion.atlassian.net/browse/EJ2-57986\n This code changes is specific for form designer elements.\n pageHeight = actualWidth;\n top= pageHeight - bounds.X / zoomValue;\n left = bounds.Y / zoomValue;\n width = (bounds.Width / zoomValue);\n height = (bounds.Height / zoomValue);\n inputField.style.transform = \"rotate(-90deg)\";\n inputField.style.transformOrigin = \"top left\";\n */\n // need to set inverse page height and width \n pageHeight = actualWidth;\n top_1 = pageHeight - bounds.X / zoomValue - bounds.Height / zoomValue;\n left = (bounds.Y + bounds.Height) / zoomValue;\n width = (bounds.Width / zoomValue);\n height = (bounds.Height / zoomValue);\n inputField.style.transform = \"rotate(-90deg)\";\n inputField.style.transformOrigin = \"left bottom\";\n }\n else {\n left = isFormDesignerField ? (bounds.X / zoomValue) / widthRatio : (this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.X)) / widthRatio;\n top_1 = isFormDesignerField ? (bounds.Y / zoomValue) / heightRatio : (this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.Y)) / heightRatio;\n width = isFormDesignerField ? (bounds.Width / zoomValue) / widthRatio : (this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.Width)) / widthRatio;\n height = isFormDesignerField ? (bounds.Height / zoomValue) / heightRatio : (this.pdfViewer.formFieldsModule.ConvertPointToPixel(bounds.Height)) / heightRatio;\n }\n var fontHeight = 0;\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.pdfViewerBase.ConvertPointToPixel(font.Size);\n }\n if (Browser.isIE) {\n top_1 = top_1 - 1;\n }\n this.pdfViewerBase.setStyleToTextDiv(inputField, left, top_1, fontHeight, width, height, true);\n }\n };\n Print.prototype.printWindowOpen = function () {\n var _this = this;\n var browserUserAgent = navigator.userAgent;\n // eslint-disable-next-line\n var printDocument;\n if (this.pdfViewer.printMode === 'Default') {\n printDocument = this.frameDoc.document;\n }\n else {\n printDocument = this.printWindow.document;\n }\n for (var i = 0; i < this.printViewerContainer.children.length; i++) {\n // eslint-disable-next-line max-len\n var canvasUrl = this.printViewerContainer.children[i].toDataURL();\n printDocument.write('
    ');\n if (this.pdfViewer.formFieldsModule || this.pdfViewer.formDesignerModule) {\n var pageWidth = this.pdfViewerBase.pageSize[i].width;\n var pageHeight = this.pdfViewerBase.pageSize[i].height;\n var heightRatio;\n var widthRatio;\n if ((pageHeight < pageWidth) && this.pdfViewer.enablePrintRotation) {\n heightRatio = pageHeight / this.printWidth;\n widthRatio = pageWidth / this.printHeight;\n }\n else {\n heightRatio = pageHeight / this.printHeight;\n widthRatio = pageWidth / this.printWidth;\n }\n this.renderFieldsForPrint(i, heightRatio, widthRatio);\n }\n if (i === 0) {\n if ((browserUserAgent.indexOf('Chrome') !== -1) || (browserUserAgent.indexOf('Safari') !== -1) ||\n (browserUserAgent.indexOf('Firefox')) !== -1) {\n printDocument.write('');\n printDocument.write('');\n }\n else {\n printDocument.write('');\n printDocument.write(''\n + '');\n }\n }\n }\n if (Browser.isIE || Browser.info.name === 'edge') {\n try {\n if (this.pdfViewer.printMode === 'Default') {\n this.pdfViewerBase.showPrintLoadingIndicator(false);\n this.iframe.contentWindow.document.execCommand('print', false, null);\n }\n else {\n this.printWindow.document.execCommand('print', false, null);\n }\n }\n catch (e) {\n if (this.pdfViewer.printMode === 'Default') {\n this.pdfViewerBase.showPrintLoadingIndicator(false);\n this.iframe.contentWindow.print();\n }\n else {\n this.printWindow.print();\n }\n }\n }\n else {\n setTimeout(function () {\n if (_this.pdfViewer.printMode === 'Default') {\n _this.pdfViewerBase.showPrintLoadingIndicator(false);\n _this.iframe.contentWindow.print();\n _this.iframe.contentWindow.focus();\n if (_this.pdfViewerBase.isDeviceiOS || Browser.isDevice) {\n var proxy_1 = _this;\n window.onafterprint = function (event) {\n document.body.removeChild(proxy_1.iframe);\n };\n }\n else {\n document.body.removeChild(_this.iframe);\n }\n }\n else {\n if (_this.printWindow) {\n _this.printWindow.print();\n _this.printWindow.focus();\n if (!Browser.isDevice || _this.pdfViewerBase.isDeviceiOS) {\n _this.printWindow.close();\n }\n }\n }\n }, 200);\n }\n };\n // eslint-disable-next-line\n Print.prototype.createPrintLoadingIndicator = function (element) {\n // eslint-disable-next-line\n var printWindowContainer = createElement('div', {\n id: this.pdfViewer.element.id + '_printWindowcontainer'\n });\n printWindowContainer.style.height = '100%';\n printWindowContainer.style.width = '100%';\n printWindowContainer.style.position = 'absolute';\n printWindowContainer.style.zIndex = 2000;\n printWindowContainer.style.left = 0;\n printWindowContainer.style.top = 0;\n printWindowContainer.style.overflow = 'auto';\n printWindowContainer.style.backgroundColor = 'rgba(0, 0, 0, 0.3)';\n element.appendChild(printWindowContainer);\n var printWaitingPopup = createElement('div', {\n id: this.pdfViewer.element.id + '_printLoadingContainer'\n });\n printWaitingPopup.style.position = 'absolute';\n printWaitingPopup.style.width = '50px';\n printWaitingPopup.style.height = '50px';\n printWaitingPopup.style.left = '46%';\n printWaitingPopup.style.top = '45%';\n printWindowContainer.style.zIndex = 3000;\n printWindowContainer.appendChild(printWaitingPopup);\n // eslint-disable-next-line\n var printImageContainer = new Image();\n // eslint-disable-next-line\n printImageContainer.src = 'data:image/gif;base64,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';\n printImageContainer.style.width = '50px';\n printImageContainer.style.height = '50px';\n printWaitingPopup.appendChild(printImageContainer);\n var printLabelContainer = createElement('div', {\n id: this.pdfViewer.element.id + '_printLabelContainer'\n });\n printLabelContainer.style.position = 'absolute';\n printLabelContainer.textContent = 'Loading ...';\n printLabelContainer.style.fontWeight = 'Bold';\n printLabelContainer.style.left = '46%';\n printLabelContainer.style.top = '54.5%';\n printLabelContainer.style.zIndex = '3000';\n printWindowContainer.appendChild(printLabelContainer);\n };\n /**\n * @private\n */\n Print.prototype.destroy = function () {\n this.printViewerContainer = undefined;\n this.frameDoc = undefined;\n this.printWindow = undefined;\n };\n /**\n * @private\n */\n Print.prototype.getModuleName = function () {\n return 'Print';\n };\n return Print;\n}());\nexport { Print };\n","import {useIntl} from 'react-intl';\r\n\r\nexport const customTranslations = () => {\r\n const intl = useIntl();\r\n\r\n return {\r\n 'PdfViewer': {\r\n 'PdfViewer': intl.formatMessage({ id: 'pdfViewer.pdfViewer' }),\r\n 'Cancel': intl.formatMessage({ id: 'pdfViewer.cancel' }),\r\n 'Download file': intl.formatMessage({ id: 'pdfViewer.downloadFile' }),\r\n 'Download': intl.formatMessage({ id: 'pdfViewer.download' }),\r\n 'Enter Password': intl.formatMessage({ id: 'pdfViewer.enterPassword' }),\r\n 'File Corrupted': intl.formatMessage({ id: 'pdfViewer.fileCorrupted' }),\r\n 'File Corrupted Content': intl.formatMessage({ id: 'pdfViewer.fileCorruptedContent' }),\r\n 'Fit Page': intl.formatMessage({ id: 'pdfViewer.fitPage' }),\r\n 'Fit Width': intl.formatMessage({ id: 'pdfViewer.fitWidth' }),\r\n 'Automatic': intl.formatMessage({ id: 'pdfViewer.automatic' }),\r\n 'Go To First Page': intl.formatMessage({ id: 'pdfViewer.goToFirstPage' }),\r\n 'Invalid Password': intl.formatMessage({ id: 'pdfViewer.invalidPassword' }),\r\n 'Next Page': intl.formatMessage({ id: 'pdfViewer.nextPage' }),\r\n 'OK': intl.formatMessage({ id: 'pdfViewer.ok' }),\r\n 'Open': intl.formatMessage({ id: 'pdfViewer.open' }),\r\n 'Page Number': intl.formatMessage({ id: 'pdfViewer.pageNumber' }),\r\n 'Previous Page': intl.formatMessage({ id: 'pdfViewer.previousPage' }),\r\n 'Go To Last Page': intl.formatMessage({ id: 'pdfViewer.goToLastPage' }),\r\n 'Zoom': intl.formatMessage({ id: 'pdfViewer.zoom' }),\r\n 'Zoom In': intl.formatMessage({ id: 'pdfViewer.zoomIn' }),\r\n 'Zoom Out': intl.formatMessage({ id: 'pdfViewer.zoomOut' }),\r\n 'Page Thumbnails': intl.formatMessage({ id: 'pdfViewer.pageThumbnails' }),\r\n 'Bookmarks': intl.formatMessage({ id: 'pdfViewer.bookmarks' }),\r\n 'Print': intl.formatMessage({ id: 'pdfViewer.print' }),\r\n 'Password Protected': intl.formatMessage({ id: 'pdfViewer.passwordProtected' }),\r\n 'Copy': intl.formatMessage({ id: 'pdfViewer.copy' }),\r\n 'Text Selection': intl.formatMessage({ id: 'pdfViewer.textSelection' }),\r\n 'Panning': intl.formatMessage({ id: 'pdfViewer.panning' }),\r\n 'Text Search': intl.formatMessage({ id: 'pdfViewer.textSearch' }),\r\n 'Find in document': intl.formatMessage({ id: 'pdfViewer.findInDocument' }),\r\n 'Match case': intl.formatMessage({ id: 'pdfViewer.matchCase' }),\r\n 'Apply': intl.formatMessage({ id: 'pdfViewer.apply' }),\r\n 'GoToPage': intl.formatMessage({ id: 'pdfViewer.goToPage' }),\r\n 'No matches': intl.formatMessage({ id: 'pdfViewer.noMatches' }),\r\n 'No Text Found': intl.formatMessage({ id: 'pdfViewer.noTextFound' }),\r\n 'Undo': intl.formatMessage({ id: 'pdfViewer.undo' }),\r\n 'Redo': intl.formatMessage({ id: 'pdfViewer.redo' }),\r\n 'Annotation': intl.formatMessage({ id: 'pdfViewer.annotation' }),\r\n 'Highlight': intl.formatMessage({ id: 'pdfViewer.highlight' }),\r\n 'Underline': intl.formatMessage({ id: 'pdfViewer.Underline' }),\r\n 'Strikethrough': intl.formatMessage({ id: 'pdfViewer.strikethrough' }),\r\n 'Delete': intl.formatMessage({ id: 'pdfViewer.delete' }),\r\n 'Opacity': intl.formatMessage({ id: 'pdfViewer.opacity' }),\r\n 'Color edit': intl.formatMessage({ id: 'pdfViewer.colorEdit' }),\r\n 'Opacity edit': intl.formatMessage({ id: 'pdfViewer.opacityEdit' }),\r\n 'highlight': intl.formatMessage({ id: 'pdfViewer.highlight' }),\r\n 'underline': intl.formatMessage({ id: 'pdfViewer.underline' }),\r\n 'strikethrough': intl.formatMessage({ id: 'pdfViewer.strikethrough' }),\r\n 'Server error': intl.formatMessage({ id: 'pdfViewer.serverError' }),\r\n 'Open text': intl.formatMessage({ id: 'pdfViewer.openText' }),\r\n 'First text': intl.formatMessage({ id: 'pdfViewer.firstText' }),\r\n 'Previous text': intl.formatMessage({ id: 'pdfViewer.previousText' }),\r\n 'Next text': intl.formatMessage({ id: 'pdfViewer.nextText' }),\r\n 'Last text': intl.formatMessage({ id: 'pdfViewer.lastText' }),\r\n 'Zoom in text': intl.formatMessage({ id: 'pdfViewer.zoomInText' }),\r\n 'Zoom out text': intl.formatMessage({ id: 'pdfViewer.zoomOutText' }),\r\n 'Selection text': intl.formatMessage({ id: 'pdfViewer.selectionText' }),\r\n 'Pan text': intl.formatMessage({ id: 'pdfViewer.panText' }),\r\n 'Print text': intl.formatMessage({ id: 'pdfViewer.printText' }),\r\n 'Seach text': intl.formatMessage({ id: 'pdfViewer.seachText' }),\r\n 'Annotation Edit text': intl.formatMessage({ id: 'pdfViewer.annotationEditText' }),\r\n 'Line Thickness': intl.formatMessage({ id: 'pdfViewer.lineThickness' }),\r\n 'Line Properties': intl.formatMessage({ id: 'pdfViewer.lineProperties' }),\r\n 'Start Arrow': intl.formatMessage({ id: 'pdfViewer.startArrow' }),\r\n 'End Arrow': intl.formatMessage({ id: 'pdfViewer.endArrow' }),\r\n 'Line Style': intl.formatMessage({ id: 'pdfViewer.lineStyle' }),\r\n 'Fill Color': intl.formatMessage({ id: 'pdfViewer.fillColor' }),\r\n 'Line Color': intl.formatMessage({ id: 'pdfViewer.lineColor' }),\r\n 'None': intl.formatMessage({ id: 'pdfViewer.none' }),\r\n 'Open Arrow': intl.formatMessage({ id: 'pdfViewer.openArrow' }),\r\n 'Closed Arrow': intl.formatMessage({ id: 'pdfViewer.closedArrow' }),\r\n 'Round Arrow': intl.formatMessage({ id: 'pdfViewer.roundArrow' }),\r\n 'Square Arrow': intl.formatMessage({ id: 'pdfViewer.squareArrow' }),\r\n 'Diamond Arrow': intl.formatMessage({ id: 'pdfViewer.diamondArrow' }),\r\n 'Cut': intl.formatMessage({ id: 'pdfViewer.cut' }),\r\n 'Paste': intl.formatMessage({ id: 'pdfViewer.paste' }),\r\n 'Delete Context': intl.formatMessage({ id: 'pdfViewer.deleteContext' }),\r\n 'Properties': intl.formatMessage({ id: 'pdfViewer.properties' }),\r\n 'Add Stamp': intl.formatMessage({ id: 'pdfViewer.addStamp' }),\r\n 'Add Shapes': intl.formatMessage({ id: 'pdfViewer.addShapes' }),\r\n 'Stroke edit': intl.formatMessage({ id: 'pdfViewer.strokeEdit' }),\r\n 'Change thickness': intl.formatMessage({ id: 'pdfViewer.changeThickness' }),\r\n 'Add line': intl.formatMessage({ id: 'pdfViewer.addLine' }),\r\n 'Add arrow': intl.formatMessage({ id: 'pdfViewer.addArrow' }),\r\n 'Add rectangle': intl.formatMessage({ id: 'pdfViewer.addRectangle' }),\r\n 'Add circle': intl.formatMessage({ id: 'pdfViewer.addCircle' }),\r\n 'Add polygon': intl.formatMessage({ id: 'pdfViewer.addPolygon' }),\r\n 'Add Comments': intl.formatMessage({ id: 'pdfViewer.addComments' }),\r\n 'Comments': intl.formatMessage({ id: 'pdfViewer.comments' }),\r\n 'No Comments Yet': intl.formatMessage({ id: 'pdfViewer.noCommentsYet' }),\r\n 'Accepted': intl.formatMessage({ id: 'pdfViewer.accepted' }),\r\n 'Completed': intl.formatMessage({ id: 'pdfViewer.completed' }),\r\n 'Cancelled': intl.formatMessage({ id: 'pdfViewer.cancelled' }),\r\n 'Rejected': intl.formatMessage({ id: 'pdfViewer.rejected' }),\r\n 'Leader Length': intl.formatMessage({ id: 'pdfViewer.leaderLength' }),\r\n 'Scale Ratio': intl.formatMessage({ id: 'pdfViewer.scaleRatio' }),\r\n 'Calibrate': intl.formatMessage({ id: 'pdfViewer.calibrate' }),\r\n 'Calibrate Distance': intl.formatMessage({ id: 'pdfViewer.calibrateDistance' }),\r\n 'Calibrate Perimeter': intl.formatMessage({ id: 'pdfViewer.calibratePerimeter' }),\r\n 'Calibrate Area': intl.formatMessage({ id: 'pdfViewer.calibrateArea' }),\r\n 'Calibrate Radius': intl.formatMessage({ id: 'pdfViewer.calibrateRadius' }),\r\n 'Calibrate Volume': intl.formatMessage({ id: 'pdfViewer.calibrateVolume' }),\r\n 'Depth': intl.formatMessage({ id: 'pdfViewer.depth' }),\r\n 'Closed': intl.formatMessage({ id: 'pdfViewer.closed' }),\r\n 'Round': intl.formatMessage({ id: 'pdfViewer.round' }),\r\n 'Square': intl.formatMessage({ id: 'pdfViewer.square' }),\r\n 'Diamond': intl.formatMessage({ id: 'pdfViewer.diamond' }),\r\n 'Edit': intl.formatMessage({ id: 'pdfViewer.edit' }),\r\n 'Comment': intl.formatMessage({ id: 'pdfViewer.comment' }),\r\n 'Comment Panel': intl.formatMessage({ id: 'pdfViewer.commentPanel' }),\r\n 'Set Status': intl.formatMessage({ id: 'pdfViewer.setStatus' }),\r\n 'Post': intl.formatMessage({ id: 'pdfViewer.post' }),\r\n 'Page': intl.formatMessage({ id: 'pdfViewer.page' }),\r\n 'Add a comment': intl.formatMessage({ id: 'pdfViewer.addComment' }),\r\n 'Add a reply': intl.formatMessage({ id: 'pdfViewer.addReply' }),\r\n 'Import Annotations': intl.formatMessage({ id: 'pdfViewer.importAnnotations' }),\r\n 'Export Annotations': intl.formatMessage({ id: 'pdfViewer.exportAnnotations' }),\r\n 'Add': intl.formatMessage({ id: 'pdfViewer.add' }),\r\n 'Clear': intl.formatMessage({ id: 'pdfViewer.clear' }),\r\n 'Bold': intl.formatMessage({ id: 'pdfViewer.bold' }),\r\n 'Italic': intl.formatMessage({ id: 'pdfViewer.italic' }),\r\n 'Strikethroughs': intl.formatMessage({ id: 'pdfViewer.strikethroughs' }),\r\n 'Underlines': intl.formatMessage({ id: 'pdfViewer.underlines' }),\r\n 'Superscript': intl.formatMessage({ id: 'pdfViewer.superscript' }),\r\n 'Subscript': intl.formatMessage({ id: 'pdfViewer.subscript' }),\r\n 'Align left': intl.formatMessage({ id: 'pdfViewer.alignLeft' }),\r\n 'Align right': intl.formatMessage({ id: 'pdfViewer.alignRight' }),\r\n 'Center': intl.formatMessage({ id: 'pdfViewer.center' }),\r\n 'Justify': intl.formatMessage({ id: 'pdfViewer.justify' }),\r\n 'Font color': intl.formatMessage({ id: 'pdfViewer.fontColor' }),\r\n 'Text Align': intl.formatMessage({ id: 'pdfViewer.textAlign' }),\r\n 'Text Properties': intl.formatMessage({ id: 'pdfViewer.textProperties' }),\r\n 'Draw Signature': intl.formatMessage({ id: 'pdfViewer.drawSignature' }),\r\n 'Create': intl.formatMessage({ id: 'pdfViewer.create' }),\r\n 'Font family': intl.formatMessage({ id: 'pdfViewer.fontFamily' }),\r\n 'Font size': intl.formatMessage({ id: 'pdfViewer.fontSize' }),\r\n 'Free Text': intl.formatMessage({ id: 'pdfViewer.freeText' }),\r\n 'Import Failed': intl.formatMessage({ id: 'pdfViewer.importFailed' }),\r\n 'File not found': intl.formatMessage({ id: 'pdfViewer.fileNotFound' }),\r\n 'Export Failed': intl.formatMessage({ id: 'pdfViewer.exportFailed' }),\r\n 'Dynamic': intl.formatMessage({ id: 'pdfViewer.dynamic' }),\r\n 'Standard Business': intl.formatMessage({ id: 'pdfViewer.standardBusiness' }),\r\n 'Sign Here': intl.formatMessage({ id: 'pdfViewer.signHere' }),\r\n 'Custom Stamp': intl.formatMessage({ id: 'pdfViewer.customStamp' }),\r\n 'InitialFieldDialogHeaderText': intl.formatMessage({ id: 'pdfViewer.initialFieldDialogHeaderText' }),\r\n 'HandwrittenInitialDialogHeaderText': intl.formatMessage({ id: 'pdfViewer.handwrittenInitialDialogHeaderText' }),\r\n 'SignatureFieldDialogHeaderText': intl.formatMessage({ id: 'pdfViewer.signatureFieldDialogHeaderText' }),\r\n 'HandwrittenSignatureDialogHeaderText': intl.formatMessage({ id: 'pdfViewer.handwrittenSignatureDialogHeaderText' }),\r\n 'Draw-hand Signature': intl.formatMessage({ id: 'pdfViewer.drawHandSignature' }),\r\n 'Type Signature': intl.formatMessage({ id: 'pdfViewer.typeSignature' }),\r\n 'Upload Signature': intl.formatMessage({ id: 'pdfViewer.uploadSignature' }),\r\n 'Browse Signature Image': intl.formatMessage({ id: 'pdfViewer.browseSignatureImage' }),\r\n 'Save Signature': intl.formatMessage({ id: 'pdfViewer.saveSignature' }),\r\n 'Save Initial': intl.formatMessage({ id: 'pdfViewer.saveInitial' }),\r\n 'Highlight context': intl.formatMessage({ id: 'pdfViewer.highlightContext' }),\r\n 'Underline context': intl.formatMessage({ id: 'pdfViewer.underlineContext' }),\r\n 'Strikethrough context': intl.formatMessage({ id: 'pdfViewer.strikethroughContext' }),\r\n 'FormDesigner': intl.formatMessage({ id: 'pdfViewer.formDesigner' }),\r\n 'SubmitForm': intl.formatMessage({ id: 'pdfViewer.submitForm' }),\r\n 'Search text': intl.formatMessage({ id: 'pdfViewer.searchText' }),\r\n 'Draw Ink': intl.formatMessage({ id: 'pdfViewer.drawInk' }),\r\n 'Revised': intl.formatMessage({ id: 'pdfViewer.revised' }),\r\n 'Reviewed': intl.formatMessage({ id: 'pdfViewer.reviewed' }),\r\n 'Received': intl.formatMessage({ id: 'pdfViewer.received' }),\r\n 'Confidential': intl.formatMessage({ id: 'pdfViewer.confidential' }),\r\n 'Approved': intl.formatMessage({ id: 'pdfViewer.approved' }),\r\n 'Not Approved': intl.formatMessage({ id: 'pdfViewer.notApproved' }),\r\n 'Witness': intl.formatMessage({ id: 'pdfViewer.witness' }),\r\n 'Initial Here': intl.formatMessage({ id: 'pdfViewer.initialHere' }),\r\n 'Draft': intl.formatMessage({ id: 'pdfViewer.draft' }),\r\n 'Final': intl.formatMessage({ id: 'pdfViewer.final' }),\r\n 'For Public Release': intl.formatMessage({ id: 'pdfViewer.forPublicRelease' }),\r\n 'Not For Public Release': intl.formatMessage({ id: 'pdfViewer.notForPublicRelease' }),\r\n 'For Comment': intl.formatMessage({ id: 'pdfViewer.forComment' }),\r\n 'Void': intl.formatMessage({ id: 'pdfViewer.void' }),\r\n 'Preliminary Results': intl.formatMessage({ id: 'pdfViewer.preliminaryResults' }),\r\n 'Information Only': intl.formatMessage({ id: 'pdfViewer.informationOnly' }),\r\n 'Enter Signature as Name': intl.formatMessage({ id: 'pdfViewer.enterSignatureAsName' }),\r\n 'Textbox': intl.formatMessage({ id: 'pdfViewer.textbox' }),\r\n 'Password': intl.formatMessage({ id: 'pdfViewer.password' }),\r\n 'Check Box': intl.formatMessage({ id: 'pdfViewer.checkBox' }),\r\n 'Radio Button': intl.formatMessage({ id: 'pdfViewer.radioButton' }),\r\n 'Dropdown': intl.formatMessage({ id: 'pdfViewer.dropdown' }),\r\n 'List Box': intl.formatMessage({ id: 'pdfViewer.listBox' }),\r\n 'Signature': intl.formatMessage({ id: 'pdfViewer.signature' }),\r\n 'Delete FormField': intl.formatMessage({ id: 'pdfViewer.deleteFormField' }),\r\n 'FormDesigner Edit text': intl.formatMessage({ id: 'pdfViewer.formDesignerEditText' }),\r\n 'in': intl.formatMessage({ id: 'pdfViewer.in' }),\r\n 'm': intl.formatMessage({ id: 'pdfViewer.m' }),\r\n 'ft_in': intl.formatMessage({ id: 'pdfViewer.ftIn' }),\r\n 'ft': intl.formatMessage({ id: 'pdfViewer.ft' }),\r\n 'p': intl.formatMessage({ id: 'pdfViewer.p' }),\r\n 'cm': intl.formatMessage({ id: 'pdfViewer.cm' }),\r\n 'mm': intl.formatMessage({ id: 'pdfViewer.mm' }),\r\n 'pt': intl.formatMessage({ id: 'pdfViewer.pt' }),\r\n 'cu': intl.formatMessage({ id: 'pdfViewer.cu' }),\r\n 'sq': intl.formatMessage({ id: 'pdfViewer.sq' }),\r\n 'General': intl.formatMessage({ id: 'pdfViewer.general' }),\r\n 'Appearance': intl.formatMessage({ id: 'pdfViewer.appearance' }),\r\n 'Options': intl.formatMessage({ id: 'pdfViewer.options' }),\r\n 'Textbox Properties': intl.formatMessage({ id: 'pdfViewer.textboxProperties' }),\r\n 'Name': intl.formatMessage({ id: 'pdfViewer.name' }),\r\n 'Tooltip': intl.formatMessage({ id: 'pdfViewer.tooltip' }),\r\n 'Value': intl.formatMessage({ id: 'pdfViewer.value' }),\r\n 'Form Field Visibility': intl.formatMessage({ id: 'pdfViewer.formFieldVisibility' }),\r\n 'Read Only': intl.formatMessage({ id: 'pdfViewer.readOnly' }),\r\n 'Required': intl.formatMessage({ id: 'pdfViewer.required' }),\r\n 'Checked': intl.formatMessage({ id: 'pdfViewer.checked' }),\r\n 'Show Printing': intl.formatMessage({ id: 'pdfViewer.showPrinting' }),\r\n 'Formatting': intl.formatMessage({ id: 'pdfViewer.formatting' }),\r\n 'Fill': intl.formatMessage({ id: 'pdfViewer.fill' }),\r\n 'Border': intl.formatMessage({ id: 'pdfViewer.border' }),\r\n 'Border Color': intl.formatMessage({ id: 'pdfViewer.borderColor' }),\r\n 'Thickness': intl.formatMessage({ id: 'pdfViewer.thickness' }),\r\n 'Max Length': intl.formatMessage({ id: 'pdfViewer.maxLength' }),\r\n 'List Item': intl.formatMessage({ id: 'pdfViewer.listItem' }),\r\n 'Export Value': intl.formatMessage({ id: 'pdfViewer.exportValue' }),\r\n 'Dropdown Item List': intl.formatMessage({ id: 'pdfViewer.dropdownItemList' }),\r\n 'List Box Item List': intl.formatMessage({ id: 'pdfViewer.listBoxItemList' }),\r\n 'Delete Item': intl.formatMessage({ id: 'pdfViewer.deleteItem' }),\r\n 'Up': intl.formatMessage({ id: 'pdfViewer.up' }),\r\n 'Down': intl.formatMessage({ id: 'pdfViewer.down' }),\r\n 'Multiline': intl.formatMessage({ id: 'pdfViewer.multiline' }),\r\n 'Initial': intl.formatMessage({ id: 'pdfViewer.initial' }),\r\n 'Export XFDF': intl.formatMessage({ id: 'pdfViewer.exportXFDF' }),\r\n 'Import XFDF': intl.formatMessage({ id: 'pdfViewer.importXFDF' })\r\n }\r\n };\r\n};","import React, { FC, useEffect, useState, ReactNode } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { rgba } from 'polished';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport {\r\n PdfViewerComponent,\r\n Toolbar,\r\n Magnification,\r\n ThumbnailView,\r\n Navigation,\r\n LinkAnnotation,\r\n BookmarkView,\r\n TextSelection,\r\n TextSearch,\r\n FormFields,\r\n FormDesigner,\r\n Annotation,\r\n Print,\r\n Inject\r\n} from '@syncfusion/ej2-react-pdfviewer';\r\nimport { faClose } from '@fortawesome/pro-light-svg-icons';\r\nimport {L10n} from '@syncfusion/ej2-base';\r\n\r\nimport store from '../../../store';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { FileIcon } from '../../Organization/ClustersV2/ClusterActivity/Components/FileIcon';\r\nimport { Button } from '../../Common/Buttons/NewButton';\r\nimport { customTranslations } from './PdfViewerTranslation';\r\n\r\nconst Wrapper = styled.div<{ $topBarVisible: boolean, $leftBarVisible: boolean }>`\r\n width: ${props => (props.$topBarVisible ? css`calc(100% - 65px)` : css`100%`)};\r\n height: ${props => (props.$leftBarVisible ? css`calc(100% - 45px)` : css`100%`)};\r\n position: fixed;\r\n overflow: auto;\r\n top: ${props => (props.$topBarVisible ? css`45px` : css`0`)};\r\n left: ${props => (props.$leftBarVisible ? css`65px` : css`0`)};\r\n background: ${rgba(colorStack.black, 0.8)};\r\n z-index: 99999;\r\n\r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 10px 30px;\r\n background: ${rgba(colorStack.black, 0.6)};\r\n > div {\r\n display: flex;\r\n align-items: center;\r\n .pdf-ico {\r\n color: ${colorStack.white};\r\n font-size: ${fontSize[20]};\r\n margin-right: 10px;\r\n }\r\n }\r\n .pdf-name {\r\n color: ${colorStack.white};\r\n font-weight: 700;\r\n font-size: ${fontSize[20]};\r\n }\r\n .close-button {\r\n margin: 0 30px 0 auto;\r\n }\r\n`;\r\n\r\nconst PdfContent = styled.div`\r\n pointer-events: auto;\r\n margin: 0 auto;\r\n`;\r\n\r\ninterface IPdfWrapperProps {\r\n document: string | Uint8Array; // URL, base64 or binary Uint8Array\r\n pdfName: ReactNode;\r\n isOverlayActive?: boolean;\r\n onDownloadClick?(): void;\r\n onCloseClick?(): void;\r\n}\r\n\r\nexport const PdfViewer: FC = props => {\r\n const state = store.getState();\r\n const { uriCommonApi } = state.config.appConfig;\r\n const pdfViewerApi = uriCommonApi + '/pdfviewer';\r\n const { token } = state.context;\r\n const { subKey } = state.config;\r\n const { document, pdfName, onCloseClick } = props;\r\n const [isDocumentUrl, setIsDocumentUrl] = useState(false);\r\n const [documentLoading, setDocumentLoading] = useState(true);\r\n\r\n L10n.load({\r\n customTranslations: customTranslations()\r\n });\r\n\r\n useEffect(() => {\r\n if (typeof document === 'string') {\r\n if (document.match(/^https?:\\/\\//)) {\r\n setIsDocumentUrl(true);\r\n }\r\n }\r\n }, [document]);\r\n\r\n const onDocumentLoaded = () => {\r\n setDocumentLoading(false);\r\n };\r\n\r\n const stopPropagation = (e) => {\r\n e.stopPropagation();\r\n };\r\n const onClose = (e) => {\r\n stopPropagation(e);\r\n onCloseClick();\r\n };\r\n\r\n return (\r\n
    \r\n \r\n {!props.isOverlayActive ? (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {pdfName}
    \r\n
    \r\n \r\n
    \r\n {isDocumentUrl ? (\r\n \r\n \r\n \r\n \r\n {documentLoading && }\r\n \r\n // tslint:disable-next-line:no-null-keyword\r\n ) : null}\r\n
    \r\n // tslint:disable-next-line:no-null-keyword\r\n ) : null}\r\n
    \r\n );\r\n};\r\n","import React, { FC, useCallback, useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport PlacesAutocomplete, { } from 'react-places-autocomplete';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { IState } from '../../../reducers';\r\nimport { IContextReducer } from '../../../reducers/contextReducer';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { IAddress } from '../../../entities/IProfile';\r\nimport { IAddressGlobal } from '../../../entities/IGlobal';\r\nimport { cardsShadow } from '../../../styleHelpers/mixins/shadow';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { addressFormatterGlobal } from '../../../tools/addressFormatter';\r\n\r\nconst DropdownWrapper = styled.div<{ disabled: boolean}>`\r\n position: relative;\r\n input {\r\n height: 40px;\r\n padding: 4px 42px 4px 12px;\r\n border: 2px solid ${colorStack.ligthGrey};\r\n border-radius: 8px;\r\n resize: none;\r\n outline: none;\r\n font-weight: 400;\r\n font-size: ${fontSize[20]};\r\n ${props => props.disabled && css`\r\n background: ${colorStack.ligthGrey}!important;\r\n color: ${colorStack.disabled}!important;\r\n `}\r\n :hover {\r\n border: 2px solid ${colorStack.middleBlue};\r\n }\r\n :active {\r\n border: 2px solid ${colorStack.middleBlue};\r\n }\r\n :focus {\r\n border: 2px solid ${colorStack.middleBlue};\r\n }\r\n &::placeholder {\r\n color: ${colorStack.middleGrey};\r\n font-weight: 400!important;\r\n font-style: italic;\r\n font-family: 'Roboto', sans-serif;\r\n &:disabled {\r\n color: ${colorStack.middleGrey};\r\n }\r\n }\r\n }\r\n`;\r\n\r\nconst Dropdown = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n z-index: 8;\r\n ${cardsShadow()};\r\n border-radius: 4px;\r\n background: ${colorStack.white};\r\n margin: 3px 0 0 0;\r\n overflow: hidden;\r\n`;\r\n\r\nconst Suggestion = styled.div<{ elementNumber: number }>`\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n cursor: pointer;\r\n width: 100%;\r\n z-index: 8;\r\n padding: 10px 5px;\r\n min-height: 40px;\r\n background: ${colorStack.white};\r\n transition: background-color .2s ease;\r\n &:hover {\r\n background: ${colorStack.ligthGrey};\r\n }\r\n`;\r\n\r\nexport enum ECountrySwitch {\r\n FR = 'FR',\r\n US = 'US',\r\n AUS = 'AUS',\r\n GB = 'GB'\r\n}\r\n\r\nexport interface IAddressObject {\r\n street_number?: string;\r\n route?: string;\r\n neighborhood?: string;\r\n locality?: string;\r\n administrative_area_level_1?: string;\r\n country?: string;\r\n postal_code?: string;\r\n}\r\n\r\ninterface IProps {\r\n value?: IAddress;\r\n address?: IAddressGlobal;\r\n placeholder?: string;\r\n disabled?: boolean;\r\n onChangeAddress(value: string);\r\n onSelectAddress(value: string);\r\n}\r\n\r\nexport const GoogleAddressEditor: FC = props => {\r\n const intl = useIntl();\r\n const state = useSelector(currentState => ({\r\n ...currentState.context\r\n }));\r\n\r\n const valueCondition = useMemo(() => {\r\n let stringAddress = '';\r\n\r\n if (props.address) {\r\n stringAddress = addressFormatterGlobal(props.address);\r\n } else if (props.value) {\r\n // value interface is deprecated but still in use\r\n stringAddress = props.value.Country !== '' ? (\r\n Object.values(ECountrySwitch).includes(props.value.CountryShort as ECountrySwitch) ?\r\n `${props.value?.Number}${` ${props.value?.Street}`}${(props.value?.Street || props.value?.Number) && ', '}${props.value?.ZipCode ? `${props.value.ZipCode} ` : ''}${props.value?.City || props.value?.State}${(props.value?.City || props.value?.State) && ', '}${props.value?.Country}` :\r\n `${props.value?.Street}${(props.value?.Street || props.value?.Number) && ' '}${props.value?.Number}${(props.value?.Street || props.value?.Number) && ', '}${props.value?.ZipCode ? `${props.value.ZipCode} ` : ''}${props.value?.City || props.value?.State}${(props.value?.City || props.value?.State) && ', '}${props.value?.Country}`\r\n ) : (props.value.City || props.value.State);\r\n }\r\n return stringAddress;\r\n }, [props.address, props.value, ECountrySwitch]);\r\n\r\n const onChangeAddressHandler = useCallback((newValue: string) => {\r\n props.onChangeAddress(newValue);\r\n }, [props.onChangeAddress]);\r\n\r\n const onSelectAddressHandler = useCallback((newValue: string) => {\r\n props.onSelectAddress(newValue);\r\n }, [props.onSelectAddress]);\r\n\r\n return (\r\n <>\r\n {state?.googlePlacesLoaded &&\r\n
    \r\n
    \r\n \r\n {({ getInputProps, suggestions, getSuggestionItemProps, loading }) => (\r\n \r\n \r\n {suggestions.length > 0 &&\r\n \r\n {loading &&
    }\r\n {suggestions.map((suggestion, i) => {\r\n const className = suggestion.active\r\n ? 'suggestion-item--active'\r\n : 'suggestion-item';\r\n\r\n return (\r\n \r\n {suggestion.description}\r\n \r\n );\r\n })}\r\n
    \r\n }\r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { IAddress } from '../../../entities/IProfile';\r\nimport { IAddressGlobal } from '../../../entities/IGlobal';\r\nimport { ECountrySwitch } from './GoogleAddressEditor';\r\n\r\n// IAddress interface is deprecated\r\ninterface IGoogleAddressViewProps {\r\n address: IAddress;\r\n}\r\ninterface IGoogleAddressViewGlobalProps {\r\n address: IAddressGlobal;\r\n}\r\n\r\n// Deprecated use addressFormatterGlobal from tools/addressFormatter\r\nexport const GoogleAddressView: FC = ({ address }) => (\r\n <>\r\n {\r\n Object.keys(ECountrySwitch).indexOf(address?.CountryShort) > -1 ?\r\n\r\n `${address?.Number || ''}${address?.Street && ` ${address?.Street}`}${(address?.Street || address?.Number) && ', '}${address?.ZipCode}${address?.ZipCode && ', '}${address?.City || ''}${address?.Country && ', '}${address?.Country || ''}` :\r\n\r\n `${address?.Street}${address?.Number && ` ${address?.Number}`}${(address?.Street || address?.Number) && ', '}${address?.ZipCode}${address?.ZipCode && ', '}${address?.City}${address?.Country && ', '}${address?.Country || ''}`\r\n }\r\n \r\n);\r\n\r\n// Deprecated use addressFormatterGlobal from tools/addressFormatter\r\nexport const GoogleAddressViewGlobal: FC = ({ address }) => (\r\n <>\r\n {\r\n Object.keys(ECountrySwitch).indexOf(address?.countryShort) > -1 ?\r\n\r\n `${address?.number}${address?.street && ` ${address?.street}`}${(address?.street || address?.number) && ', '}${address?.zipCode}${address?.zipCode && ', '}${address?.city}${address?.country && ', '}${address?.country}` :\r\n\r\n `${address?.street}${address?.number && ` ${address?.number}`}${(address?.street || address?.number) && ', '}${address?.zipCode}${address?.zipCode && ', '}${address?.city}${address?.country && ', '}${address?.country}`\r\n }\r\n \r\n);\r\n","import styled, { css } from 'styled-components';\r\nimport { Link } from 'react-router-dom';\r\nimport { rgba } from 'polished';\r\n\r\nimport { media } from '../../../styleHelpers/breakpoint';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport boxShadow from '../../../styleHelpers/mixins/shadow';\r\nimport { Spinner } from '../Spinner/Spinner';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\n\r\nexport const ClusterHeader = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 0 1rem;\r\n margin: 0 0 1rem 0;\r\n`;\r\n\r\nexport const HeaderLeft = styled.div`\r\n display: flex;\r\n align-items: center;\r\n > div {\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 0 0 1rem;\r\n h1 {\r\n padding: 0;\r\n margin: 0 0 3px 0;\r\n font-size: ${fontSize[16]};\r\n }\r\n span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.disabled};\r\n }\r\n }\r\n`;\r\n\r\nexport const DatagridWrapper = styled.div<{ $fullScreen?: boolean }>`\r\n background: ${colorStack.white};\r\n ${boxShadow()}\r\n padding: 1rem;\r\n height: 100%;\r\n border-radius: 4px;\r\n ${props =>\r\n props.$fullScreen &&\r\n css`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 100001;\r\n `};\r\n > .e-control,\r\n .loader-wrapper {\r\n height: calc(100% - 50px);\r\n }\r\n`;\r\n\r\nexport const ToolsBar = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const ToolsRightMenu = styled.div`\r\n display: flex;\r\n align-items: center;\r\n button {\r\n margin: 0 1rem;\r\n display: flex;\r\n align-items: center;\r\n outline: none;\r\n cursor: pointer;\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n &:first-child {\r\n margin-left: 0;\r\n }\r\n &.active {\r\n span {\r\n font-weight: 600;\r\n }\r\n }\r\n &.disabled {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n span {\r\n color: ${colorStack.darkBlue};\r\n font-size: ${fontSize[13]};\r\n margin: 0 0 0 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const ExportSubTools = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 1rem;\r\n margin: 0 1rem 1rem 1rem;\r\n button {\r\n display: flex;\r\n align-items: center;\r\n margin: 0 15px 0 0;\r\n outline: none;\r\n cursor: pointer;\r\n span {\r\n margin: 0 0 0 10px;\r\n }\r\n }\r\n`;\r\n\r\nexport const MainTools = styled.div`\r\n display: flex;\r\n padding: 0 0 1rem 0;\r\n flex-direction: column;\r\n ${media.desktop`\r\n align-items: center;\r\n flex-direction: row;\r\n `}\r\n`;\r\n\r\nexport const SearchInputBox = styled.div`\r\n display: flex;\r\n align-items: center;\r\n color: ${colorStack.darkGrey};\r\n margin: 0 0 1rem 0;\r\n ${media.desktop`\r\n margin: 0 1rem 0 auto;\r\n `}\r\n`;\r\n\r\nexport const StatusWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const NameButton = styled.button`\r\n cursor: pointer;\r\n text-align: left;\r\n font-weight: 500;\r\n color: ${colorStack.darkBlue};\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n`;\r\n\r\nexport const StandardSingleCell = styled.p`\r\n text-align: left;\r\n font-size: ${fontSize[13]};\r\n white-space: normal;\r\n font-weight: 400;\r\n`;\r\n\r\nexport const PeopleImageWrapper = styled.div`\r\n width: 28px;\r\n height: 28px;\r\n margin: 0 10px 0 0;\r\n`;\r\n\r\nexport const DataColumnWrapper = styled.div`\r\n display: flex;\r\n width: 1000px;\r\n`;\r\n\r\nexport const ButtonWrapper = styled.div`\r\n margin: 10px auto 0 0;\r\n ${media.desktop`\r\n margin: 0 0 0 auto;\r\n `}\r\n`;\r\n\r\nexport const DropdownWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n min-width: 200px;\r\n margin: 0 0 0 1rem;\r\n svg {\r\n margin: 0 0 0 0.5rem;\r\n cursor: pointer;\r\n }\r\n .ms-Dropdown-title {\r\n max-width: 220px;\r\n }\r\n`;\r\n\r\nexport const SingleStake = styled(Link)`\r\n display: block;\r\n cursor: pointer;\r\n padding: 0.5rem;\r\n transition: background-color 0.2s ease;\r\n &:hover {\r\n background: ${colorStack.ligthGrey};\r\n font-weight: 500;\r\n text-decoration: none;\r\n }\r\n`;\r\n\r\nexport const StakesWrapper = styled.div`\r\n height: 500px;\r\n min-width: 300px;\r\n`;\r\n\r\nexport const ToolsRow = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n margin: 0 0 0 auto;\r\n align-items: center;\r\n`;\r\n\r\nexport const GridButton = styled.button`\r\n cursor: pointer;\r\n margin: 0 0 0 1rem;\r\n font-size: ${fontSize[20]};\r\n color: ${colorStack.disabled};\r\n`;\r\n\r\nexport const TagsWrapper = styled.div`\r\n color: ${colorStack.blue};\r\n background: ${rgba(colorStack.blue, 0.07)};\r\n padding: 8px;\r\n display: inline-block;\r\n border-radius: 4px;\r\n margin: 0 10px 0 0;\r\n overflow: hidden;\r\n`;\r\n\r\nexport const BarsButton = styled.button`\r\n color: ${colorStack.darkBlue};\r\n cursor: pointer;\r\n margin: 0 0 0 1rem;\r\n font-size: ${fontSize[20]};\r\n`;\r\n\r\nexport const ColumnChooser = styled.div`\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n margin: 0 0 1rem 0;\r\n`;\r\n\r\nexport const SingleColumnChooser = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 5px;\r\n margin: 0 20px 0 0;\r\n`;\r\n\r\nexport const FiltersWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n max-width: 1000px;\r\n width: 100%;\r\n ${media.desktop`\r\n margin: 0;\r\n width: 66%;\r\n `}\r\n`;\r\nexport const FilterButton = styled.div`\r\n position: relative;\r\n margin: 0 30px 1rem 0;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const FilterButtonInner = styled.div`\r\n color: ${colorStack.darkGrey};\r\n display: flex;\r\n align-items: center;\r\n > span {\r\n font-weight: 500;\r\n margin: 0 5px 0 0;\r\n }\r\n > svg {\r\n margin: -8px 0 0 0;\r\n }\r\n`;\r\n\r\nexport const FiltersToolsMore = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin: 20px 0;\r\n ${media.desktop`\r\n margin: 0 0 0 auto;\r\n `}\r\n`;\r\n\r\nexport const ClearButton = styled.div`\r\n display: flex;\r\n align-items: center;\r\n color: ${colorStack.darkGrey};\r\n cursor: pointer;\r\n > span {\r\n margin: 0 0 0 10px;\r\n }\r\n`;\r\n\r\nexport const SearchSubTools = styled.div`\r\n display: flex;\r\n align-items: flex-start;\r\n background: ${colorStack.ligthGrey};\r\n padding: 1rem 1rem 0 1rem;\r\n margin: 0 0 1rem 0;\r\n flex-direction: column;\r\n ${media.desktop`\r\n flex-direction: row;\r\n `}\r\n`;\r\n\r\nexport const NameTemplateWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n font-weight: 500;\r\n color: ${colorStack.darkBlue};\r\n span {\r\n cursor: pointer;\r\n &:first-child {\r\n width: 24px;\r\n height: 24px;\r\n margin: 0 15px 0 0;\r\n padding: 0;\r\n }\r\n }\r\n &:hover {\r\n span {\r\n text-decoration: underline;\r\n }\r\n }\r\n`;\r\n\r\nexport const ExpandWrapper = styled.div`\r\n display: flex;\r\n position: relative;\r\n font-weight: 0.75rem;\r\n`;\r\n\r\nexport const SelectedOption = styled.div<{ isActive?: boolean; count?: number }>`\r\n ${boxShadow()};\r\n display: flex;\r\n align-items: center;\r\n margin: 0 0.5rem 0 0;\r\n padding: 6px;\r\n border-radius: 4px;\r\n transition: 0.2s ease background-color;\r\n opacity: 0.6;\r\n &:last-child {\r\n margin: 0 0.5rem 0 0;\r\n }\r\n > span {\r\n margin: 0 0 0 0.3rem;\r\n }\r\n ${props =>\r\n props.isActive &&\r\n css`\r\n background: ${colorStack.whiteBlue};\r\n > span,\r\n svg {\r\n color: ${colorStack.content};\r\n fill: ${colorStack.content};\r\n }\r\n opacity: 1;\r\n `}\r\n &:hover {\r\n background: ${colorStack.whiteBlue};\r\n > span,\r\n svg {\r\n color: ${colorStack.content};\r\n fill: ${colorStack.content};\r\n }\r\n opacity: 1;\r\n }\r\n cursor: pointer;\r\n`;\r\n\r\nexport const ExpandOption = styled.div<{ isSelected: boolean }>`\r\n display: flex;\r\n align-items: center;\r\n opacity: 0.6;\r\n ${props =>\r\n props.isSelected &&\r\n css`\r\n opacity: 1;\r\n `}\r\n padding: .5rem 0;\r\n svg {\r\n margin: 0 0.5rem 0 1rem;\r\n }\r\n &:hover {\r\n background: ${colorStack.whiteBlue};\r\n opacity: 1;\r\n }\r\n cursor: pointer;\r\n`;\r\n\r\nexport const ExpandTitle = styled.span`\r\n margin: 0.5rem 0 0.5rem 1rem;\r\n font-size: ${fontSize[13]};\r\n font-weight: 400;\r\n color: ${colorStack.disabled};\r\n`;\r\n\r\nexport const ExpandMenu = styled.div<{ isVisible: boolean }>`\r\n z-index: 2;\r\n min-width: 300px;\r\n top: 34px;\r\n background: ${colorStack.white};\r\n display: none;\r\n position: absolute;\r\n border-radius: 4px;\r\n ${boxShadow()};\r\n ${props =>\r\n props.isVisible &&\r\n css`\r\n display: flex;\r\n flex-direction: column;\r\n `}\r\n`;\r\n\r\nexport const GridTools = styled.div`\r\n display: flex;\r\n align-items: center;\r\n button {\r\n margin: 0 1rem;\r\n display: flex;\r\n align-items: center;\r\n outline: none;\r\n cursor: pointer;\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n &:first-child {\r\n margin-left: 0;\r\n }\r\n &.active {\r\n span {\r\n font-weight: 600;\r\n }\r\n }\r\n &.disabled {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n span {\r\n font-size: ${fontSize[13]};\r\n }\r\n }\r\n`;\r\n\r\nexport const DetailsWrapper = styled.div<{ isHoverLabelsArray: boolean }>`\r\n > span {\r\n color: ${colorStack.middleBlue};\r\n }\r\n &:hover {\r\n .tooltip {\r\n display: block;\r\n }\r\n }\r\n ${props => props.isHoverLabelsArray && css`\r\n cursor: pointer;\r\n > span {\r\n color: ${colorStack.middleRed};\r\n }\r\n `}\r\n`;\r\n\r\nexport const Template = styled.div<{ length?: number }>`\r\n span {\r\n margin: auto 0;\r\n width: 50%;\r\n flex: 1;\r\n }\r\n`;\r\n\r\nexport const SeeMore = styled.button`\r\n cursor: pointer;\r\n margin: 0 0 0 1rem;\r\n white-space: nowrap;\r\n color: ${colorStack.darkBlue};\r\n font-weight: 600;\r\n`;\r\n\r\nexport const UserName = styled.button`\r\n color: ${colorStack.darkBlue};\r\n margin: 0 0.5rem 0 0;\r\n overflow: hidden;\r\n max-width: 95%;\r\n &:visited {\r\n color: ${colorStack.darkBlue};\r\n }\r\n cursor: pointer;\r\n`;\r\n\r\nexport const UsersCounter = styled.div`\r\n border: 1px solid ${colorStack.darkBlue};\r\n border-radius: 3px;\r\n background: white;\r\n color: ${colorStack.darkBlue};\r\n margin: auto 0.5rem auto auto;\r\n max-height: 24px;\r\n padding: 4px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const UserImage = styled.div`\r\n height: 20px;\r\n width: 20px;\r\n margin: 0 0.5rem 0 0;\r\n`;\r\n\r\nexport const UserWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin: 0.5rem 0;\r\n width: 100%;\r\n position: relative;\r\n &:hover {\r\n .tooltip {\r\n display: block;\r\n }\r\n }\r\n`;\r\n\r\nexport const DateContainer = styled.span`\r\n &:hover {\r\n .date-tooltip {\r\n display: block;\r\n }\r\n }\r\n`;\r\n\r\nexport const LastModifiedWrapper = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const UserTemplateWrapper = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const UsersList = styled.div`\r\n display: flex;\r\n width: 100%;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const PersonName = styled.div`\r\n font-weight: 600;\r\n color: ${colorStack.darkBlue};\r\n margin: auto 0;\r\n font-size: ${fontSize[13]};\r\n max-width: 200px;\r\n white-space: break-spaces;\r\n`;\r\n\r\nexport const Tooltip = styled.div<{ lastCell?: boolean }>`\r\n display: none;\r\n ${boxShadow()};\r\n position: absolute;\r\n border: 1px solid ${colorStack.ligthGrey};\r\n left: 0;\r\n top: 20px;\r\n ${props =>\r\n props.lastCell &&\r\n css`\r\n left: auto;\r\n right: 95%;\r\n top: 0;\r\n `}\r\n background: ${colorStack.white};\r\n padding: 1rem;\r\n min-width: 300px;\r\n z-index: 999;\r\n`;\r\n\r\nexport const TopSection = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const ToolTipWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nexport const Meta = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0.5rem 0 0 0;\r\n span {\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.disabled};\r\n font-weight: 400;\r\n }\r\n`;\r\n\r\nexport const PopupHeader = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const PopupLink = styled(Link)`\r\n color: ${colorStack.darkBlue};\r\n margin: 0 0.5rem 0 0;\r\n &:visited {\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nexport const PositionItems = styled.div`\r\n display: flex;\r\n span {\r\n font-size: ${fontSize[13]};\r\n }\r\n`;\r\n\r\nexport const LeftSide = styled.div`\r\n display: flex;\r\n border-left: 1px solid ${colorStack.ligthGrey};\r\n border-right: 1px solid ${colorStack.ligthGrey};\r\n padding: 0 0 0 0.5rem;\r\n &:first-child {\r\n border-left: 0;\r\n padding-left: 0;\r\n }\r\n`;\r\n\r\nexport const RightSide = styled.div`\r\n display: flex;\r\n padding: 0 0 0 0.5rem;\r\n`;\r\n\r\nexport const GridRefresh = styled(Spinner)`\r\n margin: 0 0.5rem;\r\n`;\r\n\r\nexport const ColumnTreeWrapper = styled.div`\r\n height: 500px;\r\n margin: 1rem 1rem 3rem 1rem;\r\n`;\r\n\r\nexport const ButtonGroup = styled.div`\r\n display: flex;\r\n justify-content: space-around;\r\n margin: 1rem 0 0 0;\r\n`;\r\n\r\nexport const TooltipImage = styled.div`\r\n height: 80px;\r\n width: 80px;\r\n margin: 0 1rem 0 0;\r\n`;\r\n","import { faCircleInfo } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nexport enum EHintType {\r\n DEFAULT = 'DEFAULT',\r\n ERROR = 'ERROR',\r\n SUCCESS = 'SUCCESS',\r\n WARNING = 'WARNING'\r\n}\r\n\r\nconst Wrapper = styled.div<{type: EHintType}>`\r\n display: flex;\r\n align-items: center;\r\n margin-top: 4px;\r\n color: ${colorStack.label};\r\n svg {\r\n margin-right: 4px;\r\n ${fontSizeAndHeight[10]};\r\n }\r\n span {\r\n ${fontSizeAndHeight[10]};\r\n }\r\n ${({type}) => type === EHintType.ERROR && css`\r\n color: ${colorStack.middleRed};\r\n `};\r\n ${({type}) => type === EHintType.SUCCESS && css`\r\n color: ${colorStack.middleGreen};\r\n `};\r\n ${({type}) => type === EHintType.WARNING && css`\r\n color: ${colorStack.middleOrange};\r\n `};\r\n`;\r\n\r\ninterface IProps {\r\n type: EHintType;\r\n children: React.ReactNode;\r\n}\r\n\r\nexport const Hint: FC = props => {\r\n return (\r\n \r\n \r\n {props.children}\r\n \r\n );\r\n};","import { IconDefinition } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nexport enum EIconTextSize {\r\n NORMAL = 'NORMAL',\r\n BIG = 'BIG'\r\n}\r\n\r\nconst Wrapper = styled.div<{ size: EIconTextSize }>`\r\n display: flex;\r\n align-items: flex-start;\r\n svg {\r\n margin-right: .5rem;\r\n color: ${colorStack.darkGrey};\r\n font-size: 16px;\r\n ${({ size }) => size === EIconTextSize.BIG && css`\r\n font-size: 24px;\r\n `};\r\n }\r\n`;\r\n\r\nconst Texts = styled.div<{ size: EIconTextSize, bold: boolean }>`\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[16]};\r\n display: flex;\r\n flex-direction: column;\r\n ${({ size }) => size === EIconTextSize.BIG && css`\r\n ${fontSizeAndHeight[20]};\r\n `};\r\n ${({ bold }) => bold && css`\r\n font-weight: 500;\r\n `};\r\n`;\r\n\r\ninterface IProps {\r\n ico: IconDefinition;\r\n mainText: string;\r\n bold?: boolean;\r\n size?: EIconTextSize;\r\n}\r\n\r\nexport const IconLabel: FC = props => {\r\n return (\r\n \r\n \r\n \r\n {props.mainText}\r\n \r\n \r\n );\r\n};","import React, { RefObject } from 'react';\r\nimport styled, { StyledProps } from 'styled-components';\r\n\r\ninterface Icon {\r\n width?: number | string;\r\n height?: number | string;\r\n [key: string]: any;\r\n className?: string;\r\n selected?: boolean;\r\n innerRef?: RefObject;\r\n}\r\n\r\nexport const AddUser = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const ApprovalStamp = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Article = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowBottom = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowLeft = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowRight = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowTop = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Backward = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const BriefCasePlus = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Check = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Close = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const NewClose = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Collab = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Create = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Doc = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Download = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Edit = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const EditSquare = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const EmptyArrowBottom = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const EmptyArrowTop = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\nexport const Eye = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Facebook = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const FastDelivery = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Folder = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const GoArrow = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Grid = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Comment = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Expertise = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Home = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const LeftPanel = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Like = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Link = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const LinkedIn = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const LinkedIn2 = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const List = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Localisation = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Mail = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Mask = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Move = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Network = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Notify = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Overview = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Phone = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Photo = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Properties = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Publications = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const PublicationsDoc = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n);\r\n\r\nexport const QuoteLeft = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const QuoteRight = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Request = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Save = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Search = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const SearchAndReplace = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const SelectArrow = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Settings = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\nexport const SendArrow = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Skype = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Star = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Signature = (props: Icon) => (\r\n \r\n);\r\n\r\nexport const Tools = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Trash = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Translations = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Twitter = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const UserAdd = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const UserLess = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const UserValid = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const MsProductsIcon = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Disk = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Message = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Messaging = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Solutions = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n);\r\n\r\nexport const TrueIcon = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Bell = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Document = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Attention = (props: Icon) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport const Delete = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const ArrowDown = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport const Info = (props: Icon) => (\r\n \r\n \r\n \r\n \r\n);\r\n","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ReactCrop.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ReactCrop.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { Component, createRef } from 'react';\r\nimport styled from 'styled-components';\r\nimport ReactCrop from 'react-image-crop';\r\nimport 'react-image-crop/dist/ReactCrop.css';\r\nimport { rgba } from 'polished';\r\nimport { faSave } from '@fortawesome/pro-light-svg-icons';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport boxShadow from '../../../styleHelpers/mixins/shadow';\r\nimport { checkAttachmentSize, checkAttachmentType } from '../../../tools/attachment';\r\nimport { FileButton } from '../Buttons/Button';\r\nimport { Button, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { Avatar, EAvatarSize } from '../Avatar/Avatar';\r\n\r\nconst Wrapper = styled.div`\r\n position: relative;\r\n .image-wrapper {\r\n position: relative;\r\n width: 160px;\r\n margin: 0 auto;\r\n img {\r\n width: 160px;\r\n height: 160px;\r\n }\r\n button.lcr-button {\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n background: white;\r\n }\r\n }\r\n .cropper-wrapper {\r\n button.lcr-button {\r\n position: absolute;\r\n bottom: -10px;\r\n left: -20px;\r\n background: white;\r\n }\r\n }\r\n`;\r\n\r\nconst Popup = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: ${rgba(colorStack.black, .4)};\r\n z-index: 999;\r\n`;\r\n\r\nconst ImageCropperWrapper = styled.div`\r\n ${boxShadow()};\r\n max-width: 1100px;\r\n max-height: 70vh;\r\n min-width: 270px;\r\n min-height: 290px;\r\n background: ${colorStack.white};\r\n padding: 1rem;\r\n position: relative;\r\n border-radius: 4px;\r\n`;\r\n\r\nconst ButtonsWrapper = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 1rem;\r\n gap: 1rem;\r\n`;\r\n\r\nconst Inner = styled.div`\r\n width: 100%;\r\n max-height: 55vh;\r\n .ReactCrop__image {\r\n max-height: 50vh;\r\n }\r\n`;\r\n\r\nconst RightSide = styled.div`\r\n display: flex;\r\n gap: 1rem;\r\n`;\r\n\r\ninterface IImageCropperProps {\r\n currentImageUrl: string | ArrayBuffer;\r\n returnImage(filePicture: File, canvasString: string | ArrayBuffer);\r\n closeHandler();\r\n onChange?(canvasString: string);\r\n}\r\n\r\ninterface ImageCropperState {\r\n crop: any;\r\n croppedImageUrl: {};\r\n croppSrc: any;\r\n attachmentError: boolean;\r\n attachmentErrorMessage: string;\r\n fileConstructorSupport: boolean;\r\n}\r\n\r\nexport default class ImageCropper extends Component {\r\n\r\n imageRef: React.RefObject = createRef();\r\n canvas: HTMLCanvasElement;\r\n // tslint:disable-next-line:no-null-keyword\r\n fileUrl = null;\r\n\r\n state: ImageCropperState = {\r\n // tslint:disable-next-line:no-null-keyword\r\n croppedImageUrl: null,\r\n // tslint:disable-next-line:no-null-keyword\r\n croppSrc: null,\r\n crop: {\r\n x: 0,\r\n y: 0,\r\n aspect: 1,\r\n width: 160\r\n },\r\n attachmentError: false,\r\n attachmentErrorMessage: '',\r\n fileConstructorSupport: false\r\n };\r\n\r\n componentDidMount() {\r\n try {\r\n // tslint:disable-next-line:no-unused-expression\r\n new File([new Blob(['test text'], { type: 'text/plain' })], 'test.png');\r\n this.setState({\r\n fileConstructorSupport: true\r\n });\r\n } catch (e) {\r\n this.setState({\r\n fileConstructorSupport: false\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n if (this.canvas) {\r\n this.canvas.remove();\r\n }\r\n }\r\n onCropComplete = (crop) => {\r\n this.makeClientCrop(crop);\r\n }\r\n\r\n onCropChange = (crop) => {\r\n this.setState({ crop });\r\n }\r\n\r\n getCroppedImg(image, crop, fileName) {\r\n this.canvas = document.createElement('canvas');\r\n const scaleX = image.naturalWidth / image.width;\r\n const scaleY = image.naturalHeight / image.height;\r\n this.canvas.width = crop.width;\r\n this.canvas.height = crop.height;\r\n const ctx = this.canvas.getContext('2d');\r\n\r\n ctx.drawImage(\r\n image,\r\n crop.x * scaleX,\r\n crop.y * scaleY,\r\n crop.width * scaleX,\r\n crop.height * scaleY,\r\n 0,\r\n 0,\r\n crop.width,\r\n crop.height\r\n );\r\n\r\n return new Promise((resolve) => {\r\n this.canvas.toBlob((blob: any) => {\r\n blob.name = fileName;\r\n window.URL.revokeObjectURL(this.fileUrl);\r\n this.fileUrl = window.URL.createObjectURL(blob);\r\n resolve(this.fileUrl);\r\n }, 'image/jpeg');\r\n });\r\n }\r\n\r\n dataURItoBlob = (dataURI: string) => {\r\n\r\n let byteString;\r\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\r\n byteString = atob(dataURI.split(',')[1]);\r\n } else {\r\n byteString = unescape(dataURI.split(',')[1]);\r\n }\r\n let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n\r\n let ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new File([new Blob([ia], { type: mimeString })], `id-${new Date().getTime()}.${mimeString.split('/')[1]}`);\r\n }\r\n\r\n makeClientCrop(crop) {\r\n if (this.imageRef && crop.width && crop.height) {\r\n this.getCroppedImg(\r\n this.imageRef,\r\n crop,\r\n 'newFile.jpeg'\r\n ).then(croppedImageUrl => this.setState({ croppedImageUrl }));\r\n }\r\n }\r\n\r\n onImageLoaded = (image) => {\r\n this.imageRef = image;\r\n this.makeClientCrop(this.state.crop);\r\n }\r\n\r\n onSelectFile = (e: any) => {\r\n if (e.target.files && e.target.files.length > 0) {\r\n const file = e.target.files[0];\r\n const reader = new FileReader();\r\n const attachSize = checkAttachmentSize(file.size, 'profile');\r\n const attachType = checkAttachmentType(file.type, 'profile');\r\n if (attachSize.isValid && attachType.isValid) {\r\n reader.addEventListener('load', () => {\r\n this.setState({\r\n croppSrc: reader.result\r\n });\r\n });\r\n this.setState({\r\n attachmentError: false,\r\n attachmentErrorMessage: ''\r\n });\r\n reader.readAsDataURL(file);\r\n } else {\r\n this.setState({\r\n attachmentError: true,\r\n attachmentErrorMessage: attachType.message || attachSize.message\r\n });\r\n }\r\n }\r\n }\r\n\r\n onloadURLPicture = (event: any) => {\r\n if (event.currentTarget.files && event.currentTarget.files[0]) {\r\n const reader = new FileReader();\r\n const file = event.currentTarget.files[0];\r\n reader.onload = (e) => {\r\n this.props.returnImage(file, reader.result);\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n\r\n saveHandler = () => {\r\n this.props.returnImage(this.dataURItoBlob(this.canvas.toDataURL()), this.canvas.toDataURL());\r\n }\r\n\r\n render() {\r\n const { currentImageUrl } = this.props;\r\n const { fileConstructorSupport, croppSrc, crop, attachmentError, attachmentErrorMessage } = this.state;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {fileConstructorSupport &&\r\n \r\n }\r\n {croppSrc &&\r\n \r\n }\r\n \r\n \r\n {croppSrc ?\r\n \r\n {fileConstructorSupport ?\r\n (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n \r\n :\r\n
    \r\n \r\n
    \r\n\r\n }\r\n {attachmentError &&\r\n
    {attachmentErrorMessage}
    \r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport boxShadow from '../../../styleHelpers/mixins/shadow';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\n\r\nexport const LinkImage = styled.div<{ image: string }>`\r\n ${boxShadow()};\r\n border-radius: 4px;\r\n padding: .5rem;\r\n display: block;\r\n width: 100%;\r\n overflow: hidden;\r\n background-image: linear-gradient(to bottom, rgba(29, 40, 75, 0) 65%, rgba(12, 12, 12, 0.65) 100%), url(${props => props.image});\r\n height: 100%;\r\n background-position: 50%;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n display: flex;\r\n position: relative;\r\n &:before {\r\n background-image: linear-gradient(to bottom, rgba(29, 40, 75, 0.4) 20%, rgb(10, 12, 21) 100%), url(${props => props.image});\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n opacity: 0;\r\n height: 100%;\r\n width: 100%;\r\n background-position: 50%;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n z-index: 1;\r\n transition: opacity .2s ease-in\r\n }\r\n &:hover {\r\n &:before {\r\n opacity: 1;\r\n }\r\n span {\r\n color: ${colorStack.lightBlue};\r\n }\r\n }\r\n span {\r\n z-index: 2;\r\n margin: auto auto .4rem auto;\r\n font-weight: 500;\r\n color: ${colorStack.white};\r\n font-size: ${fontSize[13]};\r\n transition: color .2s ease-in;\r\n }\r\n`;\r\n","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { faCheck } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize, fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nconst UncheckedCheckobox = styled.div<{ disabled: boolean }>`\r\n height: 24px;\r\n width: 24px;\r\n border-radius: 4px;\r\n border: 2px solid ${colorStack.ligthGrey};\r\n background: ${colorStack.white};\r\n transition: all .3s;\r\n &:hover {\r\n border: 2px solid ${colorStack.middleBlue};\r\n }\r\n ${props => props.disabled && css`\r\n background: ${colorStack.disabled};\r\n color: ${colorStack.disabled};\r\n border: 2px solid ${colorStack.disabled};\r\n `};\r\n`;\r\n\r\nconst CheckboxContainer = styled.label`\r\n display: flex;\r\n align-items: center;\r\n cursor: pointer;\r\n input {\r\n display:none;\r\n }\r\n `;\r\n\r\nconst StyledFontAwesomeIcon = styled(FontAwesomeIcon) <{ disabled: boolean }>`\r\n height: 16px;\r\n width: 16px;\r\n transition: all .3s;\r\n padding: 2px;\r\n border-radius: 4px;\r\n color: ${colorStack.white};\r\n border: 2px solid ${colorStack.middleBlue};\r\n background-color: ${colorStack.middleBlue};\r\n ${props => props.disabled && css`\r\n background: ${colorStack.disabled};\r\n color: ${colorStack.middleGrey};\r\n border: 2px solid ${colorStack.disabled};\r\n `}\r\n`;\r\n\r\nconst LabelWrapper = styled.div`\r\n display:flex;\r\n margin-left: 10px;\r\n width: calc(100% - 24px - 10px);\r\n label {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst Label = styled.label`\r\n display: block;\r\n padding: 0;\r\n ${fontSizeAndHeight[16]};\r\n color: ${colorStack.content};\r\n`;\r\n\r\ninterface IProps {\r\n checked: boolean;\r\n defaultChecked?: boolean;\r\n label?: string;\r\n disabled?: boolean;\r\n htmlFor?: string;\r\n triggerDropdownClose?: boolean;\r\n onChange?(checked: boolean);\r\n}\r\n\r\nexport const Checkbox: FC = (props) => {\r\n\r\n const changeHandler = () => {\r\n !props.disabled && props.onChange(!props.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n {props.checked ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { FC, useCallback, ReactNode } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize, fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nconst Wrapper = styled.div<{ disabled: boolean }>`\r\n height: 24px;\r\n [type=\"radio\"] {\r\n position: absolute;\r\n left: -9999px;\r\n };\r\n [type=\"radio\"]:checked + label,\r\n [type=\"radio\"]:not(:checked) + label {\r\n position: relative;\r\n padding-left: 32px;\r\n cursor: pointer;\r\n display: flex;\r\n width: 100%;\r\n padding-top: 4px;\r\n flex-wrap: nowrap;\r\n transition: all 0.2s ease;\r\n white-space: nowrap;\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[16]};\r\n ${({ disabled }) => disabled && css`\r\n color: ${colorStack.disabled};\r\n `};\r\n };\r\n [type=\"radio\"]:checked + label:before {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 100%;\r\n transition: all 0.2s ease;\r\n border: 2px solid ${colorStack.middleBlue};\r\n background: ${colorStack.whiteBlue};\r\n ${({ disabled }) => disabled && css`\r\n border: 2px solid ${colorStack.disabled};\r\n background: ${colorStack.bodyBg};\r\n `};\r\n };\r\n [type=\"radio\"]:not(:checked) + label:before {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 20px;\r\n transition: all 0.2s ease;\r\n height: 20px;\r\n border: 2px solid ${colorStack.ligthGrey};\r\n border-radius: 100%;\r\n background: ${colorStack.white};\r\n };\r\n [type=\"radio\"]:checked + label:hover:before,\r\n [type=\"radio\"]:not(:checked) + label:hover:before {\r\n border: 2px solid ${colorStack.middleBlue};\r\n ${({ disabled }) => disabled && css`\r\n border: 2px solid ${colorStack.ligthGrey};\r\n `};\r\n };\r\n [type=\"radio\"]:checked + label:after,\r\n [type=\"radio\"]:not(:checked) + label:after {\r\n content: '';\r\n width: 10px;\r\n height: 10px;\r\n background: ${colorStack.middleBlue};\r\n position: absolute;\r\n top: 7px;\r\n left: 7px;\r\n border-radius: 100%;\r\n transition: all 0.2s ease;\r\n ${({ disabled }) => disabled && css`\r\n background: ${colorStack.bodyBg};\r\n `};\r\n };\r\n [type=\"radio\"]:not(:checked) + label:after {\r\n opacity: 0;\r\n transform: scale(0);\r\n ${({ disabled }) => disabled && css`\r\n color: ${colorStack.disabled};\r\n `};\r\n };\r\n [type=\"radio\"]:checked + label:after {\r\n opacity: 1;\r\n transform: scale(1);\r\n ${({ disabled }) => disabled && css`\r\n background-color: ${colorStack.disabled};\r\n `};\r\n };\r\n`;\r\n\r\nconst Label = styled.label`\r\n display: block;\r\n padding: 0;\r\n ${fontSizeAndHeight[16]};\r\n color: ${colorStack.content};\r\n`;\r\n\r\ninterface IProps {\r\n label?: string;\r\n name?: string;\r\n value?: string | boolean;\r\n checked?: boolean;\r\n disabled?: boolean;\r\n testingDataAttr?: string;\r\n onClick?(e: React.MouseEvent);\r\n}\r\n\r\nexport const RadioButton: FC = props => {\r\n\r\n const onClickHandler = useCallback((e) => {\r\n if (!props.disabled) {\r\n props.onClick?.(e);\r\n }\r\n }, [props.onClick, props.disabled]);\r\n\r\n return (\r\n \r\n \r\n
    ' +\n '
    ' +\n '
    ' + '
    ' +\n '
    ' : '';\n var content = '
    ' + '
    ' +\n '
    ' +\n '
    ' + '
    ' +\n '' +\n '
    ' + htmlTextbox;\n var contentElem = parseHtml(content);\n linkContent.appendChild(contentElem);\n var linkTarget = linkContent.querySelector('.e-rte-linkTarget');\n var linkUrl = linkContent.querySelector('.e-rte-linkurl');\n var linkText = linkContent.querySelector('.e-rte-linkText');\n var linkTitle = linkContent.querySelector('.e-rte-linkTitle');\n var linkOpenLabel = this.i10n.getConstant('linkOpenInNewWindow');\n this.checkBoxObj = new CheckBox({ label: linkOpenLabel, checked: true, enableRtl: this.parent.enableRtl,\n cssClass: this.parent.cssClass });\n this.checkBoxObj.isStringTemplate = true;\n this.checkBoxObj.createElement = this.parent.createElement;\n this.checkBoxObj.appendTo(linkTarget);\n var selectText = (this.parent.editorMode === 'HTML') ?\n e.selection.getRange(this.parent.contentModule.getDocument()).toString() : e.text;\n var linkInsert = this.i10n.getConstant('dialogInsert');\n var linkCancel = this.i10n.getConstant('dialogCancel');\n var selection = e.selection;\n var selectObj = { selfLink: this, selection: e.selection, selectParent: e.selectParent, args: e.args };\n var dialogModel = {\n header: this.i10n.getConstant('linkHeader'),\n content: linkContent,\n cssClass: CLS_RTE_ELEMENTS + ' ' + this.parent.cssClass,\n enableRtl: this.parent.enableRtl,\n locale: this.parent.locale,\n showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '310px',\n isModal: Browser.isDevice,\n buttons: [{\n click: this.insertlink.bind(selectObj),\n buttonModel: { content: linkInsert, cssClass: 'e-flat e-insertLink' + ' ' + this.parent.cssClass, isPrimary: true }\n },\n { click: this.cancelDialog.bind(selectObj), buttonModel: { cssClass: 'e-flat' + ' ' + this.parent.cssClass, content: linkCancel } }],\n target: (Browser.isDevice) ? document.body : this.parent.element,\n animationSettings: { effect: 'None' },\n close: function (event) {\n _this.parent.isBlur = false;\n if (event && event.event.returnValue) {\n if (_this.parent.editorMode === 'HTML') {\n selection.restore();\n }\n else {\n _this.parent.formatter.editorManager.markdownSelection.restore(_this.parent.contentModule.getEditPanel());\n }\n }\n _this.dialogObj.destroy();\n detach(_this.dialogObj.element);\n var args = _this.dialogObj;\n _this.dialogRenderObj.close(args);\n _this.dialogObj = null;\n }\n };\n // eslint-disable-next-line\n this.dialogObj = this.dialogRenderObj.render(dialogModel);\n this.dialogObj.createElement = this.parent.createElement;\n this.dialogObj.appendTo(linkDialogEle);\n linkDialogEle.style.maxHeight = 'inherit';\n if (isNullOrUndefined(this.dialogObj)) {\n return;\n }\n if (!isNullOrUndefined(inputDetails)) {\n linkUrl.value = inputDetails.url;\n linkText.value = inputDetails.text;\n linkTitle.value = inputDetails.title;\n // eslint-disable-next-line\n (inputDetails.target) ? this.checkBoxObj.checked = true : this.checkBoxObj.checked = false;\n this.dialogObj.header = inputDetails.header;\n this.dialogObj.element.querySelector('.e-insertLink').textContent = inputDetails.btnText;\n }\n this.checkUrl(false);\n if ((this.parent.editorMode === 'HTML' && isNullOrUndefined(inputDetails) && ((!isNullOrUndefined(selectText)\n && selectText !== '') && (e.selection.range.startOffset === 0) || e.selection.range.startOffset !==\n e.selection.range.endOffset)) || e.module === 'Markdown') {\n linkText.value = selectText;\n }\n EventHandler.add(this.parent.element.ownerDocument, 'mousedown', this.onDocumentClick, this);\n if (this.quickToolObj) {\n this.hideLinkQuickToolbar();\n if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {\n this.quickToolObj.inlineQTBar.hidePopup();\n }\n }\n };\n // eslint-disable-next-line\n Link.prototype.insertlink = function (e) {\n var linkEle = this.selfLink.dialogObj.element;\n var linkUrl = linkEle.querySelector('.e-rte-linkurl').value;\n var linkText = linkEle.querySelector('.e-rte-linkText').value;\n var linkTitle;\n if (this.selfLink.parent.editorMode === 'HTML') {\n linkTitle = linkEle.querySelector('.e-rte-linkTitle').value;\n }\n var target = (this.selfLink.checkBoxObj.checked) ? '_blank' : null;\n if (linkUrl === '') {\n this.selfLink.checkUrl(true);\n return;\n }\n if (!this.selfLink.isUrl(linkUrl)) {\n linkText = (linkText === '') ? linkUrl : linkText;\n if (!this.selfLink.parent.enableAutoUrl) {\n linkUrl = linkUrl.indexOf('http') > -1 ? linkUrl : 'http://' + linkUrl;\n }\n else {\n // eslint-disable-next-line\n linkUrl = linkUrl;\n }\n }\n else {\n this.selfLink.checkUrl(false);\n }\n var proxy = this.selfLink;\n if (proxy.parent.editorMode === 'HTML' && isNullOrUndefined(closest(this.selection.range.startContainer.parentNode, '[id='\n // eslint-disable-next-line\n + \"'\" + proxy.parent.contentModule.getPanel().id + \"'\" + ']'))) {\n proxy.parent.contentModule.getEditPanel().focus();\n if (Browser.isIE && proxy.parent.iframeSettings.enable) {\n this.selection.restore();\n }\n var range = proxy.parent.formatter.editorManager.nodeSelection.getRange(proxy.parent.contentModule.getDocument());\n this.selection = proxy.parent.formatter.editorManager.nodeSelection.save(range, proxy.parent.contentModule.getDocument());\n this.selectParent = proxy.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);\n }\n var value = {\n url: linkUrl, text: linkText, title: linkTitle, target: target,\n selection: this.selection, selectParent: this.selectParent\n };\n if (document.body.contains(proxy.dialogObj.element)) {\n this.selfLink.dialogObj.hide({ returnValue: false });\n }\n if (isIDevice() && proxy.parent.iframeSettings.enable) {\n select('iframe', proxy.parent.element).contentWindow.focus();\n }\n if (proxy.parent.editorMode === 'HTML') {\n this.selection.restore();\n }\n if (proxy.parent.formatter.getUndoRedoStack().length === 0) {\n proxy.parent.formatter.saveData();\n }\n var argsValue;\n if (!isNullOrUndefined(this.args) &&\n this.args.code === 'KeyK') {\n var originalEvent = this.args;\n extend(this.args, { item: { command: 'Links', subCommand: 'CreateLink' }, originalEvent: originalEvent }, true);\n var argsVal = {\n item: { command: 'Links', subCommand: 'CreateLink' }, originalEvent: originalEvent\n };\n argsValue = argsVal;\n }\n else {\n argsValue = this.args;\n }\n this.selfLink.parent.formatter.process(this.selfLink.parent, argsValue, (!isNullOrUndefined(this.args) &&\n this.args.originalEvent), value);\n this.selfLink.parent.contentModule.getEditPanel().focus();\n };\n Link.prototype.isUrl = function (url) {\n // eslint-disable-next-line\n var regexp = /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/gi;\n return regexp.test(url);\n };\n Link.prototype.checkUrl = function (e) {\n var linkEle = this.dialogObj.element;\n var linkUrl = linkEle.querySelector('.e-rte-linkurl');\n if (e) {\n addClass([linkUrl], 'e-error');\n linkUrl.setSelectionRange(0, linkUrl.value.length);\n linkUrl.focus();\n }\n else {\n removeClass([linkUrl], 'e-error');\n }\n };\n Link.prototype.removeLink = function (e) {\n if (this.parent.formatter.getUndoRedoStack().length === 0) {\n this.parent.formatter.saveData();\n }\n var selectParentEle = this.getAnchorNode(e.selectParent[0]);\n this.parent.formatter.process(this.parent, e.args, e.args, {\n selectNode: e.selectNode, selectParent: e.selectParent, selection: e.selection,\n text: selectParentEle.innerText,\n subCommand: e.args.item.subCommand\n });\n if (isIDevice() && this.parent.iframeSettings.enable) {\n select('iframe', this.parent.element).contentWindow.focus();\n }\n else {\n this.parent.contentModule.getEditPanel().focus();\n }\n this.hideLinkQuickToolbar();\n };\n Link.prototype.openLink = function (e) {\n var selectParentEle = this.getAnchorNode(e.selectParent[0]);\n if (selectParentEle.classList.contains('e-rte-anchor') || selectParentEle.tagName === 'A') {\n this.parent.formatter.process(this.parent, e.args, e.args, {\n url: selectParentEle.href, text: selectParentEle.innerText,\n target: selectParentEle.target === '' ? '_self' : '_blank', selectNode: e.selectNode,\n subCommand: e.args.item.subCommand\n });\n }\n };\n Link.prototype.getAnchorNode = function (element) {\n var selectParent = closest(element, 'a');\n return (selectParent ? selectParent : element);\n };\n Link.prototype.editLink = function (e) {\n var selectedNode = this.getAnchorNode(e.selectNode[0]);\n var selectParentEle = this.getAnchorNode(e.selectParent[0]);\n selectParentEle = selectedNode.nodeName === 'A' ? selectedNode : selectParentEle;\n if (selectParentEle.classList.contains('e-rte-anchor') || selectParentEle.tagName === 'A') {\n var linkUpdate = this.i10n.getConstant('dialogUpdate');\n var inputDetails = {\n url: selectParentEle.getAttribute('href'), text: selectParentEle.innerText,\n title: selectParentEle.title, target: selectParentEle.target,\n header: this.i10n.getConstant('editLink'), btnText: linkUpdate\n };\n this.linkDialog(e, inputDetails);\n }\n };\n // eslint-disable-next-line\n Link.prototype.cancelDialog = function (e) {\n this.selfLink.parent.isBlur = false;\n this.selfLink.dialogObj.hide({ returnValue: true });\n if (isIDevice()) {\n this.selection.restore();\n }\n else {\n this.selfLink.parent.contentModule.getEditPanel().focus();\n }\n };\n Link.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (!isNullOrUndefined(this.dialogObj) && ((\n // eslint-disable-next-line\n !closest(target, '[id=' + \"'\" + this.dialogObj.element.id + \"'\" + ']') && this.parent.toolbarSettings.enable &&\n this.parent.getToolbarElement() && !this.parent.getToolbarElement().contains(e.target)) ||\n (((this.parent.getToolbarElement() && this.parent.getToolbarElement().contains(e.target)) ||\n this.parent.inlineMode.enable && !closest(target, '#' + this.dialogObj.element.id)) &&\n !closest(target, '#' + this.parent.getID() + '_toolbar_CreateLink') &&\n !target.querySelector('#' + this.parent.getID() + '_toolbar_CreateLink')))) {\n this.dialogObj.hide({ returnValue: true });\n EventHandler.remove(this.parent.element.ownerDocument, 'mousedown', this.onDocumentClick);\n this.parent.isBlur = true;\n dispatchEvent(this.parent.element, 'focusout');\n }\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n Link.prototype.destroy = function () {\n this.removeEventListener();\n };\n Link.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n */\n Link.prototype.getModuleName = function () {\n return 'link';\n };\n return Link;\n}());\nexport { Link };\n","import { extend, isNullOrUndefined as isNOU, Browser } from '@syncfusion/ej2-base';\nimport * as CONSTANT from '../base/constant';\nimport { updateUndoRedoStatus, isIDevice } from '../base/util';\nimport { KEY_DOWN, KEY_UP } from './../../common/constant';\n/**\n * Formatter\n *\n * @hidden\n\n */\nvar Formatter = /** @class */ (function () {\n function Formatter() {\n }\n /**\n * To execute the command\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @param {ActionBeginEventArgs} args - specifies the event arguments.\n * @param {MouseEvent|KeyboardEvent} event - specifies the keyboard event.\n * @param {IItemCollectionArgs} value - specifies the collection arguments\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.process = function (self, args, event, value) {\n var _this = this;\n var selection = self.contentModule.getDocument().getSelection();\n var range = (selection.rangeCount > 0) ? selection.getRangeAt(selection.rangeCount - 1) : null;\n var saveSelection;\n var isKeyboardVideoInsert = (!isNOU(value) && !isNOU(value.cssClass) &&\n value.cssClass !== 'e-video-inline');\n if (self.editorMode === 'HTML') {\n if (!isNOU(args) && !isKeyboardVideoInsert) {\n if (isNOU(args.name) || (!isNOU(args.name) && args.name !== 'showDialog')) {\n saveSelection = this.editorManager.nodeSelection.save(range, self.contentModule.getDocument());\n }\n }\n }\n if (!isNOU(args)\n && args.item.command\n && args.item.command !== 'Table'\n && args.item.command !== 'Actions'\n && args.item.command !== 'Links'\n && args.item.command !== 'Images'\n && args.item.command !== 'Files'\n && args.item.command !== 'Audios'\n && args.item.command !== 'Videos'\n && args.item.command !== 'EmojiPicker'\n && range\n && !(self.contentModule.getEditPanel().contains(this.getAncestorNode(range.commonAncestorContainer))\n || self.contentModule.getEditPanel() === range.commonAncestorContainer\n || self.contentModule.getPanel() === range.commonAncestorContainer)) {\n return;\n }\n if (!isNOU(args) && self.maxLength !== -1 && !isNOU(args.item.command)) {\n var currentInsertContentLength = 0;\n if (args.item.command === 'Links') {\n currentInsertContentLength = value.text.length === 0 ? value.url.length : value.text.length;\n }\n if (args.item.command === 'Images' || args.item.command === 'Videos' || args.item.command === 'Table' || args.item.command === 'Files') {\n currentInsertContentLength = 1;\n }\n var currentLength = self.getText().trim().length;\n var selectionLength = self.getSelection().length;\n var totalLength = (currentLength - selectionLength) + currentInsertContentLength;\n if (!(self.maxLength === -1 || totalLength <= self.maxLength)) {\n return;\n }\n }\n if (isNOU(args)) {\n var action_1 = event.action;\n if (action_1 !== 'tab' && action_1 !== 'enter' && action_1 !== 'space' && action_1 !== 'escape') {\n args = {};\n if (self.editorMode === 'Markdown' && action_1 === 'insert-table') {\n value = {\n 'headingText': self.localeObj.getConstant('TableHeadingText'),\n 'colText': self.localeObj.getConstant('TableColText')\n };\n }\n var items = {\n originalEvent: event, cancel: false,\n requestType: action_1 || (event.key + 'Key'),\n itemCollection: value\n };\n extend(args, args, items, true);\n self.trigger(CONSTANT.actionBegin, args, function (actionBeginArgs) {\n if (actionBeginArgs.cancel) {\n if (action_1 === 'paste' || action_1 === 'cut' || action_1 === 'copy') {\n event.preventDefault();\n }\n }\n });\n }\n var isTableModule = isNOU(self.tableModule) ? true : self.tableModule ?\n self.tableModule.ensureInsideTableList : false;\n if ((event.which === 9 && isTableModule) || event.which !== 9) {\n if (event.which === 13 && self.editorMode === 'HTML') {\n value = {\n 'enterAction': self.enterKey\n };\n }\n this.editorManager.observer.notify((event.type === 'keydown' ? KEY_DOWN : KEY_UP), {\n event: event,\n callBack: this.onSuccess.bind(this, self),\n value: value,\n enterAction: self.enterKey\n });\n }\n }\n else if (!isNOU(args) && args.item.command && args.item.subCommand && ((args.item.command !== args.item.subCommand\n && args.item.command !== 'Font')\n || ((args.item.subCommand === 'FontName' || args.item.subCommand === 'FontSize') && args.name === 'dropDownSelect')\n || ((args.item.subCommand === 'BackgroundColor' || args.item.subCommand === 'FontColor')\n && args.name === 'colorPickerChanged') || args.item.subCommand === 'FormatPainter' || args.item.subCommand === 'EmojiPicker')) {\n extend(args, args, { requestType: args.item.subCommand, cancel: false, itemCollection: value, selectType: args.name }, true);\n self.trigger(CONSTANT.actionBegin, args, function (actionBeginArgs) {\n if (!actionBeginArgs.cancel) {\n var formatPainterCopy = !isNOU(actionBeginArgs.requestType) && actionBeginArgs.requestType === 'FormatPainter' && actionBeginArgs.name === 'format-copy';\n var formatPainterPaste = !isNOU(actionBeginArgs.requestType) && actionBeginArgs.requestType === 'FormatPainter' && actionBeginArgs.name === 'format-paste';\n if ((_this.getUndoRedoStack().length === 0 && actionBeginArgs.item.command !== 'Links' && actionBeginArgs.item.command !== 'Images' && !formatPainterCopy)\n || formatPainterPaste) {\n _this.saveData();\n }\n self.isBlur = false;\n self.contentModule.getEditPanel().focus();\n if (self.editorMode === 'HTML' && !isKeyboardVideoInsert) {\n if (isNOU(args.selectType) || (!isNOU(args.selectType) && args.selectType !== 'showDialog')) {\n saveSelection.restore();\n }\n }\n var command = actionBeginArgs.item.subCommand.toLocaleLowerCase();\n if (command === 'paste' || command === 'cut' || command === 'copy') {\n self.clipboardAction(command, event);\n }\n else {\n _this.editorManager.observer.notify(CONSTANT.checkUndo, { subCommand: actionBeginArgs.item.subCommand });\n _this.editorManager.execCommand(actionBeginArgs.item.command, actionBeginArgs.item.subCommand, event, _this.onSuccess.bind(_this, self), actionBeginArgs.item.value, actionBeginArgs.item.subCommand === 'Pre' && actionBeginArgs.selectType === 'dropDownSelect' ?\n { name: actionBeginArgs.selectType } : value, ('#' + self.getID() + ' iframe'), self.enterKey);\n }\n }\n });\n }\n if ((isNOU(event) || event && event.action !== 'copy')) {\n this.enableUndo(self);\n }\n };\n Formatter.prototype.getAncestorNode = function (node) {\n node = node.nodeType === 3 ? node.parentNode : node;\n return node;\n };\n /**\n * onKeyHandler method\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @param {KeyboardEvent} e - specifies the keyboard event.\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.onKeyHandler = function (self, e) {\n var _this = this;\n this.editorManager.observer.notify(KEY_UP, {\n event: e, callBack: function () {\n self.notify(CONSTANT.contentChanged, {});\n _this.enableUndo(self);\n }\n });\n };\n /**\n * onSuccess method\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @param {IMarkdownFormatterCallBack} events - specifies the event call back\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.onSuccess = function (self, events) {\n self.notify(CONSTANT.contentChanged, {});\n if (events && (isNOU(events.event) || events.event.action !== 'copy')) {\n this.enableUndo(self);\n self.notify(CONSTANT.execCommandCallBack, events);\n }\n self.trigger(CONSTANT.actionComplete, events, function (callbackArgs) {\n self.setPlaceHolder();\n if ((callbackArgs.requestType === 'Images' || callbackArgs.requestType === 'Links' || callbackArgs.requestType === 'Audios' || callbackArgs.requestType === 'Videos') && self.editorMode === 'HTML') {\n var args = callbackArgs;\n if (callbackArgs.requestType === 'Links' && callbackArgs.event &&\n callbackArgs.event.type === 'keydown' &&\n callbackArgs.event.keyCode === 32) {\n return;\n }\n self.notify(CONSTANT.insertCompleted, {\n args: args.event, type: callbackArgs.requestType, isNotify: true,\n elements: args.elements\n });\n }\n if (callbackArgs.requestType === 'VideosPlayPause') {\n self.notify('editAreaClick', { args: event });\n }\n self.autoResize();\n });\n };\n /**\n * Save the data for undo and redo action.\n *\n * @param {KeyboardEvent} e - specifies the keyboard event.\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.saveData = function (e) {\n this.editorManager.undoRedoManager.saveData(e);\n };\n /**\n * getUndoStatus method\n *\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.getUndoStatus = function () {\n return this.editorManager.undoRedoManager.getUndoStatus();\n };\n /* eslint-disable */\n /**\n * getUndoRedoStack method\n *\n * @param {IHtmlUndoRedoData} - specifies the redo data.\n * @returns {void}\n * @hidden\n\n */\n /* eslint-enable */\n Formatter.prototype.getUndoRedoStack = function () {\n return this.editorManager.undoRedoManager.undoRedoStack;\n };\n /**\n * enableUndo method\n *\n * @param {IRichTextEditor} self - specifies the self element.\n * @returns {void}\n * @hidden\n\n */\n Formatter.prototype.enableUndo = function (self) {\n var status = this.getUndoStatus();\n if (self.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n updateUndoRedoStatus(self.quickToolbarModule.inlineQTBar.quickTBarObj, status);\n }\n else {\n if (self.toolbarModule) {\n updateUndoRedoStatus(self.toolbarModule.baseToolbar, status);\n }\n }\n };\n return Formatter;\n}());\nexport { Formatter };\n","/**\n * Constant values for EditorManager\n */\n/**\n * Image plugin events\n *\n * @hidden\n */\nexport var IMAGE = 'INSERT-IMAGE';\nexport var AUDIO = 'INSERT-AUDIO';\nexport var VIDEO = 'INSERT-VIDEO';\nexport var TABLE = 'INSERT-TABLE';\nexport var LINK = 'INSERT-LINK';\nexport var INSERT_ROW = 'INSERT-ROW';\nexport var INSERT_COLUMN = 'INSERT-COLUMN';\nexport var DELETEROW = 'DELETE-ROW';\nexport var DELETECOLUMN = 'DELETE-COLUMN';\nexport var REMOVETABLE = 'REMOVE-TABLE';\nexport var TABLEHEADER = 'TABLE-HEADER';\nexport var TABLE_VERTICAL_ALIGN = 'TABLE_VERTICAL_ALIGN';\nexport var TABLE_MERGE = 'TABLE_MERGE';\nexport var TABLE_VERTICAL_SPLIT = 'TABLE_VERTICAL_SPLIT';\nexport var TABLE_HORIZONTAL_SPLIT = 'TABLE_HORIZONTAL_SPLIT';\nexport var TABLE_MOVE = 'TABLE_MOVE';\n/**\n * Alignments plugin events\n *\n * @hidden\n */\nexport var ALIGNMENT_TYPE = 'alignment-type';\n/**\n * Indents plugin events\n *\n * @hidden\n */\nexport var INDENT_TYPE = 'indent-type';\n/**\n * Constant tag names\n *\n * @hidden\n */\nexport var DEFAULT_TAG = 'p';\n/**\n * @hidden\n */\nexport var BLOCK_TAGS = ['address', 'article', 'aside', 'audio', 'blockquote',\n 'canvas', 'details', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer',\n 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'main', 'nav',\n 'noscript', 'ol', 'output', 'p', 'pre', 'section', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr', 'ul', 'video', 'body'];\n/**\n * @hidden\n */\nexport var IGNORE_BLOCK_TAGS = ['td', 'th'];\n/**\n * @hidden\n */\nexport var TABLE_BLOCK_TAGS = ['table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'];\n/**\n * Selection plugin events\n *\n * @hidden\n */\nexport var SELECTION_TYPE = 'selection-type';\n/**\n * Insert HTML plugin events\n *\n * @hidden\n */\nexport var INSERTHTML_TYPE = 'inserthtml-type';\n/**\n * Insert Text plugin events\n *\n * @hidden\n */\nexport var INSERT_TEXT_TYPE = 'insert-text-type';\n/**\n * Clear Format HTML plugin events\n *\n * @hidden\n */\nexport var CLEAR_TYPE = 'clear-type';\n/**\n * Self closing tags\n *\n * @hidden\n */\nexport var SELF_CLOSING_TAGS = ['area', 'base', 'br', 'embed', 'hr', 'img', 'input', 'param', 'source', 'track', 'wbr', 'iframe', 'td'];\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * `Selection` module is used to handle RTE Selections.\n */\nvar NodeSelection = /** @class */ (function () {\n function NodeSelection() {\n this.startNodeName = [];\n this.endNodeName = [];\n }\n NodeSelection.prototype.saveInstance = function (range, body) {\n this.range = range.cloneRange();\n this.rootNode = this.documentFromRange(range);\n this.body = body;\n this.startContainer = this.getNodeArray(range.startContainer, true);\n this.endContainer = this.getNodeArray(range.endContainer, false);\n this.startOffset = range.startOffset;\n this.endOffset = range.endOffset;\n this.html = this.body.innerHTML;\n return this;\n };\n NodeSelection.prototype.documentFromRange = function (range) {\n return (9 === range.startContainer.nodeType) ? range.startContainer : range.startContainer.ownerDocument;\n };\n NodeSelection.prototype.getRange = function (docElement) {\n var select = this.get(docElement);\n var range = select && select.rangeCount > 0 ? select.getRangeAt(select.rangeCount - 1) : docElement.createRange();\n return (range.startContainer !== docElement || range.endContainer !== docElement\n || range.startOffset || range.endOffset || (range.setStart(docElement.body, 0),\n range.collapse(!0)),\n range);\n };\n /**\n * get method\n *\n * @param {Document} docElement - specifies the get function\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.get = function (docElement) {\n return docElement.defaultView.getSelection();\n };\n /**\n * save method\n *\n * @param {Range} range - range value.\n * @param {Document} docElement - specifies the document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.save = function (range, docElement) {\n range = (range) ? range.cloneRange() : this.getRange(docElement);\n return this.saveInstance(range, docElement.body);\n };\n /**\n * getIndex method\n *\n * @param {Node} node - specifies the node value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getIndex = function (node) {\n var index;\n var num = 0;\n node = !node.previousSibling && node.tagName === 'BR' ? node : node.previousSibling;\n if (node) {\n for (var type = node.nodeType; node; null) {\n index = node.nodeType;\n num++;\n //eslint-disable-next-line\n type = index;\n node = node.previousSibling;\n }\n }\n return num;\n };\n NodeSelection.prototype.isChildNode = function (nodeCollection, parentNode) {\n for (var index = 0; index < parentNode.childNodes.length; index++) {\n if (nodeCollection.indexOf(parentNode.childNodes[index]) > -1) {\n return true;\n }\n }\n return false;\n };\n NodeSelection.prototype.getNode = function (startNode, endNode, nodeCollection) {\n if (endNode === startNode &&\n (startNode.nodeType === 3 || !startNode.firstChild || nodeCollection.indexOf(startNode.firstChild) !== -1\n || this.isChildNode(nodeCollection, startNode))) {\n return null;\n }\n if (nodeCollection.indexOf(startNode.firstChild) === -1 && startNode.firstChild && !this.isChildNode(nodeCollection, startNode)) {\n return startNode.firstChild;\n }\n if (startNode.nextSibling) {\n return startNode.nextSibling;\n }\n if (!startNode.parentNode) {\n return null;\n }\n else {\n return startNode.parentNode;\n }\n };\n /**\n * getNodeCollection method\n *\n * @param {Range} range -specifies the range.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getNodeCollection = function (range) {\n var startNode = range.startContainer.childNodes[range.startOffset]\n || range.startContainer;\n var endNode = range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) : range.endOffset]\n || range.endContainer;\n if ((startNode === endNode || (startNode.nodeName === 'BR' && startNode === range.endContainer.childNodes[range.endOffset])) &&\n startNode.childNodes.length === 0) {\n return [startNode];\n }\n if (range.startOffset === range.endOffset && range.startOffset !== 0 && range.startContainer.nodeName === 'PRE') {\n return [startNode.nodeName === 'BR' || startNode.nodeName === '#text' ? startNode : startNode.childNodes[0]];\n }\n var nodeCollection = [];\n do {\n if (nodeCollection.indexOf(startNode) === -1) {\n nodeCollection.push(startNode);\n }\n startNode = this.getNode(startNode, endNode, nodeCollection);\n } while (startNode);\n return nodeCollection;\n };\n /**\n * getParentNodeCollection method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getParentNodeCollection = function (range) {\n return this.getParentNodes(this.getNodeCollection(range), range);\n };\n /**\n * getParentNodes method\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @param {Range} range - specifies the range values.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getParentNodes = function (nodeCollection, range) {\n nodeCollection = nodeCollection.reverse();\n for (var index = 0; index < nodeCollection.length; index++) {\n if ((nodeCollection.indexOf(nodeCollection[index].parentNode) !== -1)\n || (nodeCollection[index].nodeType === 3 &&\n range.startContainer !== range.endContainer &&\n range.startContainer.parentNode !== range.endContainer.parentNode)) {\n nodeCollection.splice(index, 1);\n index--;\n }\n else if (nodeCollection[index].nodeType === 3) {\n nodeCollection[index] = nodeCollection[index].parentNode;\n }\n }\n return nodeCollection;\n };\n /**\n * getSelectionNodeCollection method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodeCollection = function (range) {\n return this.getSelectionNodes(this.getNodeCollection(range));\n };\n /**\n * getSelectionNodeCollection along with BR node method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodeCollectionBr = function (range) {\n return this.getSelectionNodesBr(this.getNodeCollection(range));\n };\n /**\n * getParentNodes method\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodes = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n for (var index = 0; index < nodeCollection.length; index++) {\n if (nodeCollection[index].nodeType !== 3 || (nodeCollection[index].textContent.trim() === '' ||\n (nodeCollection[index].textContent.length === 1 && nodeCollection[index].textContent.match(regEx)))) {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n return nodeCollection.reverse();\n };\n /**\n * Get selection text nodes with br method.\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectionNodesBr = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n for (var index = 0; index < nodeCollection.length; index++) {\n if (nodeCollection[index].nodeName !== 'BR' &&\n (nodeCollection[index].nodeType !== 3 || (nodeCollection[index].textContent.trim() === '' ||\n (nodeCollection[index].textContent.length === 1 && nodeCollection[index].textContent.match(regEx))))) {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n return nodeCollection.reverse();\n };\n /**\n * getInsertNodeCollection method\n *\n * @param {Range} range - specifies the range value.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getInsertNodeCollection = function (range) {\n return this.getInsertNodes(this.getNodeCollection(range));\n };\n /**\n * getInsertNodes method\n *\n * @param {Node[]} nodeCollection - specifies the collection of nodes.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getInsertNodes = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n for (var index = 0; index < nodeCollection.length; index++) {\n if ((nodeCollection[index].childNodes.length !== 0 &&\n nodeCollection[index].nodeType !== 3) ||\n (nodeCollection[index].nodeType === 3 &&\n nodeCollection[index].textContent === '')) {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n return nodeCollection.reverse();\n };\n /**\n * getNodeArray method\n *\n * @param {Node} node - specifies the node content.\n * @param {boolean} isStart - specifies the boolean value.\n * @param {Document} root - specifies the root document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getNodeArray = function (node, isStart, root) {\n var array = [];\n // eslint-disable-next-line\n ((isStart) ? (this.startNodeName = []) : (this.endNodeName = []));\n for (; node !== (root ? root : this.rootNode); null) {\n if (isNullOrUndefined(node)) {\n break;\n }\n // eslint-disable-next-line\n (isStart) ? this.startNodeName.push(node.nodeName.toLowerCase()) : this.endNodeName.push(node.nodeName.toLowerCase());\n array.push(this.getIndex(node));\n node = node.parentNode;\n }\n return array;\n };\n NodeSelection.prototype.setRangePoint = function (range, isvalid, num, size) {\n var node = this.rootNode;\n var index = num.length;\n var constant = size;\n for (; index--; null) {\n node = node && node.childNodes[num[index]];\n }\n if (node && constant >= 0 && node.nodeName !== 'html') {\n if (node.nodeType === 3 && node.nodeValue.replace(/\\u00a0/g, ' ') === ' ') {\n constant = node.textContent.length;\n }\n range[isvalid ? 'setStart' : 'setEnd'](node, constant);\n }\n return range;\n };\n /**\n * restore method\n *\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.restore = function () {\n var range = this.range.cloneRange();\n range = this.setRangePoint(range, true, this.startContainer, this.startOffset);\n range = this.setRangePoint(range, false, this.endContainer, this.endOffset);\n this.selectRange(this.rootNode, range);\n return range;\n };\n NodeSelection.prototype.selectRange = function (docElement, range) {\n this.setRange(docElement, range);\n this.save(range, docElement);\n };\n /**\n * setRange method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Range} range - specifies the range.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setRange = function (docElement, range) {\n var selection = this.get(docElement);\n selection.removeAllRanges();\n selection.addRange(range);\n };\n /**\n * setSelectionText method\n *\n * @param {Document} docElement - specifies the documrent\n * @param {Node} startNode - specifies the starting node.\n * @param {Node} endNode - specifies the the end node.\n * @param {number} startIndex - specifies the starting index.\n * @param {number} endIndex - specifies the end index.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setSelectionText = function (docElement, startNode, endNode, startIndex, endIndex) {\n var range = docElement.createRange();\n range.setStart(startNode, startIndex);\n range.setEnd(endNode, endIndex);\n this.setRange(docElement, range);\n };\n /**\n * setSelectionContents method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Node} element - specifies the node.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setSelectionContents = function (docElement, element) {\n var range = docElement.createRange();\n range.selectNode(element);\n this.setRange(docElement, range);\n };\n /**\n * setSelectionNode method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Node} element - specifies the node.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setSelectionNode = function (docElement, element) {\n var range = docElement.createRange();\n range.selectNodeContents(element);\n this.setRange(docElement, range);\n };\n /**\n * getSelectedNodes method\n *\n * @param {Document} docElement - specifies the document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.getSelectedNodes = function (docElement) {\n return this.getNodeCollection(this.getRange(docElement));\n };\n /**\n * Clear method\n *\n * @param {Document} docElement - specifies the document.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.Clear = function (docElement) {\n this.get(docElement).removeAllRanges();\n };\n /**\n * insertParentNode method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Node} newNode - specicfies the new node.\n * @param {Range} range - specifies the range.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.insertParentNode = function (docElement, newNode, range) {\n range.surroundContents(newNode);\n this.selectRange(docElement, range);\n };\n /**\n * setCursorPoint method\n *\n * @param {Document} docElement - specifies the document.\n * @param {Element} element - specifies the element.\n * @param {number} point - specifies the point.\n * @returns {void}\n * @hidden\n\n */\n NodeSelection.prototype.setCursorPoint = function (docElement, element, point) {\n var range = docElement.createRange();\n var selection = docElement.defaultView.getSelection();\n range.setStart(element, point);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n };\n return NodeSelection;\n}());\nexport { NodeSelection };\n","/**\n * Default Markdown formats config for adapter\n */\nexport var markdownFormatTags = {\n 'h6': '###### ',\n 'h5': '##### ',\n 'h4': '#### ',\n 'h3': '### ',\n 'h2': '## ',\n 'h1': '# ',\n 'blockquote': '> ',\n 'pre': '```\\n',\n 'p': ''\n};\n/**\n * Default selection formats config for adapter\n */\nexport var markdownSelectionTags = {\n 'Bold': '**',\n 'Italic': '*',\n 'StrikeThrough': '~~',\n 'InlineCode': '`',\n 'SubScript': '',\n 'SuperScript': '',\n 'UpperCase': 'A-Z',\n 'LowerCase': 'a-z'\n};\n/**\n * Default Markdown lists config for adapter\n */\nexport var markdownListsTags = {\n 'OL': '1. ',\n 'UL': '- '\n};\n/**\n * Default html key config for adapter\n */\nexport var htmlKeyConfig = {\n 'toolbar-focus': 'alt+f10',\n 'escape': '27',\n 'insert-link': 'ctrl+k',\n 'insert-image': 'ctrl+shift+i',\n 'insert-audio': 'ctrl+shift+a',\n 'insert-video': 'ctrl+shift+v',\n 'insert-table': 'ctrl+shift+e',\n 'undo': 'ctrl+z',\n 'redo': 'ctrl+y',\n 'copy': 'ctrl+c',\n 'cut': 'ctrl+x',\n 'paste': 'ctrl+v',\n 'bold': 'ctrl+b',\n 'italic': 'ctrl+i',\n 'underline': 'ctrl+u',\n 'strikethrough': 'ctrl+shift+s',\n 'uppercase': 'ctrl+shift+u',\n 'lowercase': 'ctrl+shift+l',\n 'superscript': 'ctrl+shift+=',\n 'subscript': 'ctrl+=',\n 'indents': 'ctrl+]',\n 'outdents': 'ctrl+[',\n 'html-source': 'ctrl+shift+h',\n 'full-screen': 'ctrl+shift+f',\n 'decrease-fontsize': 'ctrl+shift+<',\n 'increase-fontsize': 'ctrl+shift+>',\n 'justify-center': 'ctrl+e',\n 'justify-full': 'ctrl+j',\n 'justify-left': 'ctrl+l',\n 'justify-right': 'ctrl+r',\n 'clear-format': 'ctrl+shift+r',\n 'ordered-list': 'ctrl+shift+o',\n 'unordered-list': 'ctrl+alt+o',\n 'space': '32',\n 'enter': '13',\n 'tab': 'tab',\n 'delete': '46',\n 'format-copy': 'alt+shift+c',\n 'format-paste': 'alt+shift+v'\n};\n/**\n * Default markdown key config for adapter\n */\nexport var markdownKeyConfig = {\n 'toolbar-focus': 'alt+f10',\n 'escape': '27',\n 'insert-link': 'ctrl+k',\n 'insert-image': 'ctrl+shift+i',\n 'insert-table': 'ctrl+shift+e',\n 'undo': 'ctrl+z',\n 'redo': 'ctrl+y',\n 'copy': 'ctrl+c',\n 'cut': 'ctrl+x',\n 'paste': 'ctrl+v',\n 'bold': 'ctrl+b',\n 'italic': 'ctrl+i',\n 'strikethrough': 'ctrl+shift+s',\n 'uppercase': 'ctrl+shift+u',\n 'lowercase': 'ctrl+shift+l',\n 'superscript': 'ctrl+shift+=',\n 'subscript': 'ctrl+=',\n 'full-screen': 'ctrl+shift+f',\n 'ordered-list': 'ctrl+shift+o',\n 'unordered-list': 'ctrl+alt+o'\n};\n/**\n * PasteCleanup Grouping of similar functionality tags\n */\nexport var pasteCleanupGroupingTags = {\n 'b': ['strong'],\n 'strong': ['b'],\n 'i': ['emp', 'cite'],\n 'emp': ['i', 'cite'],\n 'cite': ['i', 'emp']\n};\n/**\n * PasteCleanup Grouping of similar functionality tags\n */\nexport var listConversionFilters = {\n 'first': 'MsoListParagraphCxSpFirst',\n 'middle': 'MsoListParagraphCxSpMiddle',\n 'last': 'MsoListParagraphCxSpLast'\n};\n/**\n * Dom-Node Grouping of self closing tags\n *\n * @hidden\n */\nexport var selfClosingTags = [\n 'BR',\n 'IMG'\n];\n","import * as CONSTANT from './../base/constant';\nimport { append, detach, createElement, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { NodeSelection } from './../../selection/index';\nimport { selfClosingTags } from '../../common/config';\nimport { getLastTextNode } from '../../common/util';\nexport var markerClassName = {\n startSelection: 'e-editor-select-start',\n endSelection: 'e-editor-select-end'\n};\n/**\n * DOMNode internal plugin\n *\n * @hidden\n\n */\nvar DOMNode = /** @class */ (function () {\n /**\n * Constructor for creating the DOMNode plugin\n *\n * @param {Element} parent - specifies the parent element\n * @param {Document} currentDocument - specifies the current document.\n * @hidden\n\n */\n function DOMNode(parent, currentDocument) {\n this.parent = parent;\n this.nodeSelection = new NodeSelection();\n this.currentDocument = currentDocument;\n }\n /**\n * contents method\n *\n * @param {Element} element - specifies the element.\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.contents = function (element) {\n return (element && 'IFRAME' !== element.tagName ? Array.prototype.slice.call(element.childNodes || []) : []);\n };\n /**\n * isBlockNode method\n *\n * @param {Element} element - specifies the node element.\n * @returns {boolean} - sepcifies the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isBlockNode = function (element) {\n return (!!element && (element.nodeType === Node.ELEMENT_NODE && CONSTANT.BLOCK_TAGS.indexOf(element.tagName.toLowerCase()) >= 0));\n };\n /**\n * isLink method\n *\n * @param {Element} element - specifies the element\n * @returns {boolean} - specifies the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isLink = function (element) {\n return (!!element && (element.nodeType === Node.ELEMENT_NODE && 'a' === element.tagName.toLowerCase()));\n };\n /**\n * blockParentNode method\n *\n * @param {Element} element - specifies the element\n * @returns {Element} - returns the element value\n * @hidden\n\n */\n DOMNode.prototype.blockParentNode = function (element) {\n for (; element && element.parentNode !== this.parent && ((!element.parentNode ||\n !this.hasClass(element.parentNode, 'e-node-inner'))); null) {\n element = element.parentNode;\n if (this.isBlockNode(element)) {\n return element;\n }\n }\n return element;\n };\n /**\n * rawAttributes method\n *\n * @param {Element} element - specifies the element\n * @returns {string} - returns the string value\n * @hidden\n\n */\n DOMNode.prototype.rawAttributes = function (element) {\n var rawAttr = {};\n var attributes = element.attributes;\n if (attributes.length > 0) {\n for (var d = 0; d < attributes.length; d++) {\n var e = attributes[d];\n rawAttr[e.nodeName] = e.value;\n }\n }\n return rawAttr;\n };\n /**\n * attributes method\n *\n * @param {Element} element - sepcifies the element.\n * @returns {string} - returns the string value.\n * @hidden\n\n */\n DOMNode.prototype.attributes = function (element) {\n if (!element) {\n return '';\n }\n var attr = '';\n var rawAttr = this.rawAttributes(element);\n var orderRawAttr = Object.keys(rawAttr).sort();\n for (var e = 0; e < orderRawAttr.length; e++) {\n var attrKey = orderRawAttr[e];\n var attrValue = rawAttr[\"\" + attrKey];\n /* eslint-disable */\n if (attrValue.indexOf(\"'\") < 0 && attrValue.indexOf('\"') >= 0) {\n attr += ' ' + attrKey + \"='\" + attrValue + \"'\";\n }\n else if (attrValue.indexOf('\"') >= 0 && attrValue.indexOf(\"'\") >= 0) {\n /* eslint-enable */\n attrValue = attrValue.replace(/\"/g, '"');\n attr += ' ' + attrKey + '=\"' + attrValue + '\"';\n }\n else {\n attr += ' ' + attrKey + '=\"' + attrValue + '\"';\n }\n }\n return attr;\n };\n /**\n * clearAttributes method\n *\n * @param {Element} element - specifies the element\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.clearAttributes = function (element) {\n for (var attr = element.attributes, c = attr.length - 1; c >= 0; c--) {\n var key = attr[c];\n element.removeAttribute(key.nodeName);\n }\n };\n /**\n * openTagString method\n *\n * @param {Element} element - specifies the element.\n * @returns {string} - returns the string\n * @hidden\n\n */\n DOMNode.prototype.openTagString = function (element) {\n return '<' + element.tagName.toLowerCase() + this.attributes(element) + '>';\n };\n /**\n * closeTagString method\n *\n * @param {Element} element - specifies the element\n * @returns {string} - returns the string value\n * @hidden\n\n */\n DOMNode.prototype.closeTagString = function (element) {\n return '';\n };\n /**\n * createTagString method\n *\n * @param {string} tagName - specifies the tag name\n * @param {Element} relativeElement - specifies the relative element\n * @param {string} innerHTML - specifies the string value\n * @returns {string} - returns the string value.\n * @hidden\n\n */\n DOMNode.prototype.createTagString = function (tagName, relativeElement, innerHTML) {\n return '<' + tagName.toLowerCase() + this.attributes(relativeElement) + '>' + innerHTML + '';\n };\n /**\n * isList method\n *\n * @param {Element} element - specifes the element.\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isList = function (element) {\n return !!element && ['UL', 'OL'].indexOf(element.tagName) >= 0;\n };\n /**\n * isElement method\n *\n * @param {Element} element - specifes the element.\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isElement = function (element) {\n return element === this.parent;\n };\n /**\n * isEditable method\n *\n * @param {Element} element - specifes the element.\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isEditable = function (element) {\n return ((!element.getAttribute || element.getAttribute('contenteditable') === 'true')\n && ['STYLE', 'SCRIPT'].indexOf(element.tagName) < 0);\n };\n /**\n * hasClass method\n *\n * @param {Element} element - specifes the element.\n * @param {string} className - specifies the class name value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.hasClass = function (element, className) {\n return element && element.classList && element.classList.contains(className);\n };\n /**\n * replaceWith method\n *\n * @param {Element} element - specifes the element.\n * @param {string} value - specifies the string value\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.replaceWith = function (element, value) {\n var parentNode = element.parentNode;\n parentNode.insertBefore(this.parseHTMLFragment(value), element);\n detach(element);\n };\n /**\n * parseHTMLFragment method\n *\n * @param {string} value - specifies the string value\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.parseHTMLFragment = function (value) {\n /* eslint-disable */\n var temp = createElement('template');\n temp.innerHTML = value;\n if (temp.content instanceof DocumentFragment) {\n return temp.content;\n }\n else {\n return document.createRange().createContextualFragment(value);\n }\n /* eslint-enable */\n };\n /**\n * wrap method\n *\n * @param {Element} element - specifies the element\n * @param {Element} wrapper - specifies the element.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.wrap = function (element, wrapper) {\n element.parentNode.insertBefore(wrapper, element);\n wrapper = element.previousSibling;\n wrapper.appendChild(element);\n return wrapper;\n };\n /**\n * insertAfter method\n *\n * @param {Element} newNode - specifies the new node element\n * @param {Element} referenceNode - specifies the referenece node\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n /**\n * wrapInner method\n *\n * @param {Element} parent - specifies the parent element.\n * @param {Element} wrapper - specifies the wrapper element.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.wrapInner = function (parent, wrapper) {\n parent.appendChild(wrapper);\n wrapper = parent.querySelector('.e-rte-wrap-inner');\n wrapper.classList.remove('e-rte-wrap-inner');\n if (wrapper.classList.length === 0) {\n wrapper.removeAttribute('class');\n }\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild);\n }\n return wrapper;\n };\n /**\n * unWrap method\n *\n * @param {Element} element - specifies the element.\n * @returns {Element} - returns the element.\n * @hidden\n\n */\n DOMNode.prototype.unWrap = function (element) {\n var parent = element.parentNode;\n var unWrapNode = [];\n while (element.firstChild) {\n unWrapNode.push(element.firstChild);\n parent.insertBefore(element.firstChild, element);\n }\n unWrapNode = unWrapNode.length > 0 ? unWrapNode : [element.parentNode];\n parent.removeChild(element);\n return unWrapNode;\n };\n /**\n * getSelectedNode method\n *\n * @param {Element} element - specifies the element\n * @param {number} index - specifies the index value.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.getSelectedNode = function (element, index) {\n if (element.nodeType === Node.ELEMENT_NODE && element.childNodes.length > 0 &&\n element.childNodes[index - 1] && element.childNodes[index - 1].nodeType === Node.ELEMENT_NODE &&\n (element.childNodes[index - 1].classList.contains(markerClassName.startSelection) ||\n element.childNodes[index - 1].classList.contains(markerClassName.endSelection))) {\n element = element.childNodes[index - 1];\n }\n else if (element.nodeType === Node.ELEMENT_NODE && element.childNodes.length > 0 && element.childNodes[index]) {\n element = element.childNodes[index];\n }\n if (element.nodeType === Node.TEXT_NODE) {\n element = element.parentNode;\n }\n return element;\n };\n /**\n * nodeFinds method\n *\n * @param {Element} element - specifies the element.\n * @param {Element[]} elements - specifies the array of elements\n * @returns {Element[]} - returnts the array elements\n * @hidden\n\n */\n DOMNode.prototype.nodeFinds = function (element, elements) {\n var existNodes = [];\n for (var i = 0; i < elements.length; i++) {\n if (element.contains(elements[i]) && element !== elements[i]) {\n existNodes.push(elements[i]);\n }\n }\n return existNodes;\n };\n /**\n * isEditorArea method\n *\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n DOMNode.prototype.isEditorArea = function () {\n var range = this.getRangePoint(0);\n var element;\n for (element = range.commonAncestorContainer; element && !this.isElement(element); null) {\n element = element.parentNode;\n }\n return !!this.isElement(element);\n };\n /**\n * getRangePoint method\n *\n * @param {number} point - specifies the number value.\n * @returns {Range} - returns the range.\n * @hidden\n\n */\n DOMNode.prototype.getRangePoint = function (point) {\n var selection = this.getSelection();\n var ranges = [];\n if (selection && selection.getRangeAt && selection.rangeCount) {\n ranges = [];\n for (var f = 0; f < selection.rangeCount; f++) {\n ranges.push(selection.getRangeAt(f));\n }\n }\n else {\n ranges = [this.currentDocument.createRange()];\n }\n return 'undefined' !== typeof point ? ranges[point] : ranges;\n };\n DOMNode.prototype.getSelection = function () {\n return this.nodeSelection.get(this.currentDocument);\n };\n /**\n * getPreviousNode method\n *\n * @param {Element} element - specifies the element\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.getPreviousNode = function (element) {\n element = element.previousElementSibling;\n for (; element && element.textContent === '\\n'; null) {\n element = element.previousElementSibling;\n }\n return element;\n };\n /**\n * encode method\n *\n * @param {string} value - specifies the string value\n * @returns {string} - specifies the string value\n * @hidden\n\n */\n DOMNode.prototype.encode = function (value) {\n var divNode = document.createElement('div');\n divNode.innerText = value;\n // eslint-disable-next-line\n return divNode.innerHTML.replace(//gi, '\\n');\n };\n /**\n * saveMarker method\n *\n * @param {NodeSelection} save - specifies the node selection,\n * @param {string} action - specifies the action value.\n * @returns {NodeSelection} - returns the value\n * @hidden\n\n */\n DOMNode.prototype.saveMarker = function (save, action) {\n var start = this.parent.querySelector('.' + markerClassName.startSelection);\n var end = this.parent.querySelector('.' + markerClassName.endSelection);\n var startTextNode;\n var endTextNode;\n if (start.textContent === '' && isNOU(end) && action !== 'tab') {\n if (isNOU(action) && save.range.startContainer.nodeType === 1 &&\n save.range.startContainer.querySelectorAll('audio,video,image').length === 0) {\n start.innerHTML = '
    ';\n }\n else if (start.childNodes.length === 1 && start.childNodes[0].nodeName === 'BR') {\n start.innerHTML = '
    ';\n }\n else {\n start.innerHTML = '';\n }\n }\n if (this.hasClass(start, markerClassName.startSelection) && start.classList.length > 1) {\n var replace = this.createTagString(CONSTANT.DEFAULT_TAG, start, this.encode(start.textContent));\n this.replaceWith(start, replace);\n start = this.parent.querySelector('.' + markerClassName.startSelection);\n start.classList.remove(markerClassName.startSelection);\n startTextNode = start.childNodes[0];\n }\n else {\n startTextNode = this.unWrap(start)[0];\n }\n if (this.hasClass(end, markerClassName.endSelection) && end.classList.length > 1) {\n var replace = this.createTagString(CONSTANT.DEFAULT_TAG, end, this.encode(end.textContent));\n this.replaceWith(end, replace);\n end = this.parent.querySelector('.' + markerClassName.endSelection);\n end.classList.remove(markerClassName.endSelection);\n endTextNode = end.childNodes[0];\n }\n else {\n endTextNode = end ? this.unWrap(end)[0] : startTextNode;\n }\n save.startContainer = save.getNodeArray(startTextNode, true);\n save.endContainer = save.getNodeArray(endTextNode, false);\n return save;\n };\n DOMNode.prototype.marker = function (className, textContent) {\n return '' + textContent + '';\n };\n /**\n * setMarker method\n *\n * @param {NodeSelection} save - specifies the node selection.\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.setMarker = function (save) {\n var range = save.range;\n var startChildNodes = range.startContainer.childNodes;\n var isTableStart = startChildNodes.length > 1 && startChildNodes[0].nodeName === 'TABLE';\n var start = ((isTableStart ? getLastTextNode(startChildNodes[range.startOffset + 1]) :\n startChildNodes[(range.startOffset > 0) ? (range.startOffset - 1) : range.startOffset]) || range.startContainer);\n var end = (range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) : range.endOffset]\n || range.endContainer);\n if ((start.nodeType === Node.ELEMENT_NODE && end.nodeType === Node.ELEMENT_NODE) && (start.contains(end) || end.contains(start))) {\n var existNode = start.contains(end) ? start : end;\n var isElement = existNode.nodeType !== Node.TEXT_NODE;\n if (isElement) {\n var nodes = [];\n var textNodes = [];\n for (var node = existNode; existNode.contains(node); null) {\n if (nodes.indexOf(node) < 0 && node.childNodes && node.childNodes.length) {\n nodes.push(node);\n node = node.childNodes[0];\n }\n else if (node.nextSibling) {\n node = node.nextSibling;\n }\n else if (node.parentNode) {\n node = node.parentNode;\n nodes.push(node);\n }\n if (textNodes.indexOf(node) < 0 && (node.nodeType === Node.TEXT_NODE ||\n (CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.parentNode.tagName.toLocaleLowerCase()) >= 0\n && (node.tagName === 'BR' || node.tagName === 'IMG')))) {\n textNodes.push(node);\n }\n }\n if (textNodes.length) {\n start = start.contains(end) ? textNodes[0] : start;\n end = textNodes[textNodes.length - 1];\n }\n }\n }\n if (start !== end) {\n if (start.nodeType !== Node.TEXT_NODE && ((start.tagName === 'BR' &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(start.parentNode.tagName.toLocaleLowerCase()) >= 0) ||\n start.tagName === 'IMG')) {\n this.replaceWith(start, this.marker(markerClassName.startSelection, this.encode(start.textContent)));\n var markerStart = range.startContainer.querySelector('.' + markerClassName.startSelection);\n markerStart.appendChild(start);\n }\n else {\n if (start.nodeType !== 3 && start.nodeName !== '#text' && start.nodeName !== 'BR') {\n var marker = this.marker(markerClassName.startSelection, '');\n append([this.parseHTMLFragment(marker)], start);\n }\n else {\n this.replaceWith(start, this.marker(markerClassName.startSelection, this.encode(start.textContent)));\n }\n }\n if (end.nodeType !== Node.TEXT_NODE && end.tagName === 'BR' &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(end.parentNode.tagName.toLocaleLowerCase()) >= 0) {\n this.replaceWith(end, this.marker(markerClassName.endSelection, this.encode(end.textContent)));\n var markerEnd = range.endContainer.querySelector('.' + markerClassName.endSelection);\n markerEnd.appendChild(end);\n }\n else {\n this.ensureSelfClosingTag(end, markerClassName.endSelection, range);\n }\n }\n else {\n this.ensureSelfClosingTag(start, markerClassName.startSelection, range);\n }\n };\n /**\n * ensureSelfClosingTag method\n *\n * @param {Element} start - specifies the element.\n * @param {string} className - specifes the class name string value\n * @param {Range} range - specifies the range value\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.ensureSelfClosingTag = function (start, className, range) {\n var isTable = false;\n if (start.nodeType === 3) {\n this.replaceWith(start, this.marker(className, this.encode(start.textContent)));\n }\n else if (start.tagName === 'BR') {\n this.replaceWith(start, this.marker(className, this.encode(start.textContent)));\n var markerStart = range.startContainer.querySelector('.' + className);\n markerStart.appendChild(start);\n }\n else {\n if (start.tagName === 'IMG') {\n var parNode = document.createElement('p');\n start.parentElement.insertBefore(parNode, start);\n parNode.appendChild(start);\n start = parNode.children[0];\n }\n if (start.tagName === 'TABLE') {\n isTable = true;\n if (start.textContent === '') {\n var tdNode = start.querySelectorAll('td');\n start = tdNode[tdNode.length - 1];\n start = !isNOU(start.childNodes[0]) ? start.childNodes[0] : start;\n }\n else {\n var lastNode = start.lastChild;\n while (lastNode.nodeType !== 3 && lastNode.nodeName !== '#text' &&\n lastNode.nodeName !== 'BR') {\n lastNode = lastNode.lastChild;\n }\n start = lastNode;\n }\n }\n for (var i = 0; i < selfClosingTags.length; i++) {\n start = (start.tagName === selfClosingTags[i] && !isTable) ? start.parentNode : start;\n }\n if (start.nodeType === 3 && start.nodeName === '#text') {\n this.replaceWith(start, this.marker(className, this.encode(start.textContent)));\n }\n else if (start.nodeName === 'BR') {\n this.replaceWith(start, this.marker(markerClassName.endSelection, this.encode(start.textContent)));\n var markerEnd = range.endContainer.querySelector('.' + markerClassName.endSelection);\n markerEnd.appendChild(start);\n }\n else {\n var marker = this.marker(className, '');\n append([this.parseHTMLFragment(marker)], start);\n }\n }\n };\n /**\n * createTempNode method\n *\n * @param {Element} element - specifies the element.\n * @returns {Element} - returns the element\n * @hidden\n\n */\n DOMNode.prototype.createTempNode = function (element) {\n var textContent = element.textContent;\n if (element.tagName === 'BR') {\n var wrapper = '<' + CONSTANT.DEFAULT_TAG + '>';\n var node = element.parentNode;\n if (CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.tagName.toLocaleLowerCase()) >= 0) {\n element = this.wrap(element, this.parseHTMLFragment(wrapper));\n }\n }\n else if (((element.nodeType !== Node.TEXT_NODE &&\n (element.classList.contains(markerClassName.startSelection) ||\n element.classList.contains(markerClassName.endSelection))) ||\n textContent.replace(/\\n/g, '').replace(/(^ *)|( *$)/g, '').length > 0 ||\n textContent.length && textContent.indexOf('\\n') < 0)) {\n var wrapper = '<' + CONSTANT.DEFAULT_TAG + '>';\n var target = element;\n element = this.wrap(element, this.parseHTMLFragment(wrapper));\n var ignoreBr = target.nodeType === Node.ELEMENT_NODE && target.firstChild && target.firstChild.nodeName === 'BR'\n && (target.classList.contains(markerClassName.startSelection) ||\n target.classList.contains(markerClassName.endSelection));\n if (!ignoreBr && element.nextElementSibling && element.nextElementSibling.tagName === 'BR') {\n element.appendChild(element.nextElementSibling);\n }\n }\n return element;\n };\n /**\n * getImageTagInSelection method\n *\n * @returns {void}\n * @hidden\n\n */\n DOMNode.prototype.getImageTagInSelection = function () {\n var selection = this.getSelection();\n if (this.isEditorArea() && selection.rangeCount) {\n return selection.focusNode.querySelectorAll('img');\n }\n return null;\n };\n /**\n * blockNodes method\n *\n * @returns {Node[]} - returns the node array values\n * @hidden\n\n */\n DOMNode.prototype.blockNodes = function () {\n var collectionNodes = [];\n var selection = this.getSelection();\n if (this.isEditorArea() && selection.rangeCount) {\n var ranges = this.getRangePoint();\n for (var j = 0; j < ranges.length; j++) {\n var parentNode = void 0;\n var range = ranges[j];\n var startNode = this.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.getSelectedNode(range.endContainer, range.endOffset);\n if (this.isBlockNode(startNode) && collectionNodes.indexOf(startNode) < 0) {\n collectionNodes.push(startNode);\n }\n parentNode = this.blockParentNode(startNode);\n if (parentNode && collectionNodes.indexOf(parentNode) < 0) {\n if (CONSTANT.IGNORE_BLOCK_TAGS.indexOf(parentNode.tagName.toLocaleLowerCase()) >= 0 && (startNode.tagName === 'BR' ||\n startNode.nodeType === Node.TEXT_NODE ||\n startNode.classList.contains(markerClassName.startSelection) ||\n startNode.classList.contains(markerClassName.endSelection))) {\n var tempNode = startNode.previousSibling &&\n startNode.previousSibling.nodeType === Node.TEXT_NODE ?\n startNode.previousSibling : startNode;\n if (!startNode.nextSibling && !startNode.previousSibling && startNode.tagName === 'BR') {\n collectionNodes.push(tempNode);\n }\n else {\n collectionNodes.push(this.createTempNode(tempNode));\n }\n }\n else {\n collectionNodes.push(parentNode);\n }\n }\n var nodes = [];\n for (var node = startNode; node !== endNode && node !== this.parent; null) {\n if (nodes.indexOf(node) < 0 && node.childNodes && node.childNodes.length) {\n nodes.push(node);\n node = node.childNodes[0];\n }\n else if (node && node.nodeType !== 8 && (node.tagName === 'BR' || (node.nodeType === Node.TEXT_NODE &&\n node.textContent.trim() !== '') || (node.nodeType !== Node.TEXT_NODE &&\n (node.classList.contains(markerClassName.startSelection) ||\n node.classList.contains(markerClassName.endSelection)))) &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.parentNode.tagName.toLocaleLowerCase()) >= 0) {\n node = this.createTempNode(node);\n }\n else if (node.nextSibling && node.nextSibling.nodeType !== 8 &&\n (node.nextSibling.tagName === 'BR' ||\n node.nextSibling.nodeType === Node.TEXT_NODE ||\n node.nextSibling.classList.contains(markerClassName.startSelection) ||\n node.nextSibling.classList.contains(markerClassName.endSelection)) &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.nextSibling.parentNode.tagName.toLocaleLowerCase()) >= 0) {\n node = this.createTempNode(node.nextSibling);\n }\n else if (node.nextSibling) {\n node = node.nextSibling;\n }\n else if (node.parentNode) {\n node = node.parentNode;\n nodes.push(node);\n }\n if (collectionNodes.indexOf(node) < 0 && node.nodeType === Node.ELEMENT_NODE &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(node.parentNode.tagName.toLocaleLowerCase()) >= 0 &&\n (node.classList.contains(markerClassName.startSelection) ||\n node.classList.contains(markerClassName.endSelection))) {\n collectionNodes.push(this.createTempNode(node));\n }\n if (this.isBlockNode(node) && this.ignoreTableTag(node) && nodes.indexOf(node) < 0 &&\n collectionNodes.indexOf(node) < 0 && (node !== endNode || range.endOffset > 0)) {\n collectionNodes.push(node);\n }\n if (node.nodeName === 'IMG' && node.parentElement.contentEditable === 'true') {\n collectionNodes.push(node);\n }\n }\n parentNode = this.blockParentNode(endNode);\n if (parentNode && this.ignoreTableTag(parentNode) && collectionNodes.indexOf(parentNode) < 0 &&\n (!isNOU(parentNode.previousElementSibling) && parentNode.previousElementSibling.tagName !== 'IMG')) {\n collectionNodes.push(parentNode);\n }\n }\n }\n for (var i = collectionNodes.length - 1; i > 0; i--) {\n var nodes = this.nodeFinds(collectionNodes[i], collectionNodes);\n if (nodes.length) {\n var listNodes = collectionNodes[i].querySelectorAll('ul, ol');\n if (collectionNodes[i].tagName === 'LI' && listNodes.length > 0) {\n continue;\n }\n else {\n collectionNodes.splice(i, 1);\n }\n }\n }\n return collectionNodes;\n };\n DOMNode.prototype.ignoreTableTag = function (element) {\n return !(CONSTANT.TABLE_BLOCK_TAGS.indexOf(element.tagName.toLocaleLowerCase()) >= 0);\n };\n return DOMNode;\n}());\nexport { DOMNode };\n","import * as CONSTANT from './../base/constant';\nimport { createElement, detach, prepend, append, attributes, Browser } from '@syncfusion/ej2-base';\nimport { markerClassName } from './dom-node';\nimport * as EVENTS from './../../common/constant';\nimport { setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nimport { isNullOrUndefined, isNullOrUndefined as isNOU, closest } from '@syncfusion/ej2-base';\n/**\n * Lists internal component\n *\n * @hidden\n\n */\nvar Lists = /** @class */ (function () {\n /**\n * Constructor for creating the Lists plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function Lists(parent) {\n this.parent = parent;\n this.domNode = this.parent.domNode;\n this.addEventListener();\n }\n Lists.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.LIST_TYPE, this.applyListsHandler, this);\n this.parent.observer.on(EVENTS.KEY_UP_HANDLER, this.onKeyUp, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.keyDownHandler, this);\n this.parent.observer.on(EVENTS.SPACE_ACTION, this.spaceKeyAction, this);\n };\n Lists.prototype.testList = function (elem) {\n var olListRegex = [/^[\\d]+[.]+$/,\n /^(?=[MDCLXVI])M*(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})[.]$/gi,\n /^[a-zA-Z][.]+$/];\n var elementStart = !isNullOrUndefined(elem) ? elem.innerText.trim().split('.')[0] + '.' : null;\n if (!isNullOrUndefined(elementStart)) {\n for (var i = 0; i < olListRegex.length; i++) {\n if (olListRegex[i].test(elementStart)) {\n return true;\n }\n }\n }\n return false;\n };\n Lists.prototype.testCurrentList = function (range) {\n var olListStartRegex = [/^[1]+[.]+$/, /^[i]+[.]+$/, /^[a]+[.]+$/];\n if (!isNullOrUndefined(range.startContainer.textContent.slice(0, range.startOffset))) {\n var currentContent = range.startContainer.textContent.replace(/\\u200B/g, '').slice(0, range.startOffset).trim();\n for (var i = 0; i < olListStartRegex.length; i++) {\n if (olListStartRegex[i].test(currentContent) && currentContent.length === 2) {\n return true;\n }\n }\n }\n return false;\n };\n Lists.prototype.spaceList = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n // eslint-disable-next-line\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n var preElement = startNode.previousElementSibling;\n var nextElement = startNode.nextElementSibling;\n var preElemULStart = !isNullOrUndefined(preElement) ?\n preElement.innerText.trim().substring(0, 1) : null;\n var nextElemULStart = !isNullOrUndefined(nextElement) ?\n nextElement.innerText.trim().substring(0, 1) : null;\n var startElementOLTest = this.testCurrentList(range);\n var preElementOLTest = this.testList(preElement);\n var nextElementOLTest = this.testList(nextElement);\n if (!preElementOLTest && !nextElementOLTest && preElemULStart !== '*' && nextElemULStart !== '*') {\n if (startElementOLTest) {\n range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);\n this.applyListsHandler({ subCommand: 'OL', callBack: e.callBack });\n e.event.preventDefault();\n }\n else if (range.startContainer.textContent.replace(/\\u200B/g, '').slice(0, range.startOffset).trim() === '*' ||\n range.startContainer.textContent.replace(/\\u200B/g, '').slice(0, range.startOffset).trim() === '-') {\n range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);\n this.applyListsHandler({ subCommand: 'UL', callBack: e.callBack });\n e.event.preventDefault();\n }\n }\n };\n Lists.prototype.enterList = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var startNode = range.startContainer.nodeName === 'LI' ? range.startContainer :\n range.startContainer.parentElement.closest('LI');\n var endNode = range.endContainer.nodeName === 'LI' ? range.endContainer :\n range.endContainer.parentElement.closest('LI');\n // Checks for Image, Audio , Video Element inside List Element\n var hasMediaElem = false;\n if (!isNOU(startNode)) {\n var videoElemList = startNode.querySelectorAll('.e-video-clickelem');\n var embedVideoElem = videoElemList.length > 0 && videoElemList[0].childNodes[0].nodeName === 'IFRAME';\n hasMediaElem = startNode.querySelectorAll('IMG').length > 0 || startNode.querySelectorAll('AUDIO').length > 0 || startNode.querySelectorAll('VIDEO').length > 0 || embedVideoElem;\n }\n if (!isNOU(startNode) && !isNOU(endNode) && startNode === endNode && startNode.tagName === 'LI' &&\n startNode.textContent.trim() === '' && !hasMediaElem) {\n if (startNode.innerHTML.indexOf(' ') >= 0) {\n return;\n }\n if (startNode.textContent.charCodeAt(0) === 65279) {\n startNode.textContent = '';\n }\n var startNodeParent = startNode.parentElement;\n if (isNOU(startNodeParent.parentElement.closest('UL')) && isNOU(startNodeParent.parentElement.closest('OL'))) {\n if (!isNOU(startNode.nextElementSibling)) {\n var nearBlockNode = this.parent.domNode.blockParentNode(startNode);\n this.parent.nodeCutter.GetSpliceNode(range, nearBlockNode);\n }\n var insertTag = void 0;\n if (e.enterAction === 'DIV') {\n insertTag = createElement('div');\n insertTag.innerHTML = '
    ';\n }\n else if (e.enterAction === 'P') {\n insertTag = createElement('p');\n insertTag.innerHTML = '
    ';\n }\n else {\n insertTag = createElement('br');\n }\n this.parent.domNode.insertAfter(insertTag, startNodeParent);\n e.event.preventDefault();\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, insertTag, 0);\n if (startNodeParent.textContent === '' && (startNodeParent.querySelectorAll('audio,video').length === 0)) {\n detach(startNodeParent);\n }\n else {\n detach(startNode);\n }\n }\n }\n };\n Lists.prototype.backspaceList = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n startNode = startNode.nodeName === 'BR' ? startNode.parentElement : startNode;\n endNode = endNode.nodeName === 'BR' ? endNode.parentElement : endNode;\n if (startNode === endNode && !isNullOrUndefined(closest(startNode, 'li')) &&\n ((startNode.textContent.trim() === '' && startNode.textContent.charCodeAt(0) === 65279) ||\n (startNode.textContent.length === 1 && startNode.textContent.charCodeAt(0) === 8203))) {\n startNode.textContent = '';\n }\n if (startNode === endNode && startNode.tagName === 'LI' && startNode.textContent.length === 0 &&\n isNOU(startNode.previousElementSibling)) {\n startNode.removeAttribute('style');\n }\n if (startNode === endNode && startNode.textContent === '') {\n if (startNode.parentElement.tagName === 'LI' && endNode.parentElement.tagName === 'LI') {\n detach(startNode);\n }\n else if (startNode.closest('ul') || startNode.closest('ol')) {\n var parentList = !isNOU(startNode.closest('ul')) ? startNode.closest('ul') : startNode.closest('ol');\n if (parentList.firstElementChild === startNode && !isNOU(parentList.children[1]) &&\n (parentList.children[1].tagName === 'OL' || parentList.children[1].tagName === 'UL')) {\n if (parentList.tagName === parentList.children[1].tagName) {\n while (parentList.children[1].lastChild) {\n this.parent.domNode.insertAfter(parentList.children[1].lastChild, parentList.children[1]);\n }\n detach(parentList.children[1]);\n }\n else {\n parentList.parentElement.insertBefore(parentList.children[1], parentList);\n }\n }\n }\n }\n else if (!isNOU(startNode.firstChild) && startNode.firstChild.nodeName === 'BR' &&\n (!isNullOrUndefined(startNode.childNodes[1]) && (startNode.childNodes[1].nodeName === 'UL' ||\n startNode.childNodes[1].nodeName === 'OL'))) {\n var parentList = !isNOU(startNode.closest('ul')) ? startNode.closest('ul') : startNode.closest('ol');\n if (parentList.tagName === startNode.childNodes[1].nodeName) {\n while (startNode.childNodes[1].lastChild) {\n this.parent.domNode.insertAfter(startNode.children[1].lastChild, startNode);\n }\n detach(startNode.childNodes[1]);\n }\n else {\n parentList.parentElement.insertBefore(startNode.children[1], parentList);\n }\n }\n this.removeList(range, e);\n this.firstListBackSpace(range, e);\n };\n Lists.prototype.removeList = function (range, e) {\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n startNode = startNode.nodeName === 'BR' ? startNode.parentElement : startNode;\n endNode = endNode.nodeName === 'BR' ? endNode.parentElement : endNode;\n startNode = startNode.nodeName !== 'LI' && !isNOU(startNode.closest('LI')) ? startNode.closest('LI') : startNode;\n endNode = endNode.nodeName !== 'LI' && !isNOU(endNode.closest('LI')) ? endNode.closest('LI') : endNode;\n if (((range.commonAncestorContainer.nodeName === 'OL' || range.commonAncestorContainer.nodeName === 'UL' || range.commonAncestorContainer.nodeName === 'LI') &&\n isNOU(endNode.nextElementSibling) && endNode.textContent.length === range.endOffset &&\n isNOU(startNode.previousElementSibling) && range.startOffset === 0) ||\n (Browser.userAgent.indexOf('Firefox') !== -1 && range.startContainer === range.endContainer && range.startContainer === this.parent.editableElement &&\n range.startOffset === 0 && range.endOffset === 1)) {\n if (Browser.userAgent.indexOf('Firefox') !== -1) {\n detach(range.commonAncestorContainer.childNodes[0]);\n }\n else if (range.commonAncestorContainer.nodeName === 'LI') {\n detach(range.commonAncestorContainer.parentElement);\n }\n else {\n detach(range.commonAncestorContainer);\n }\n e.event.preventDefault();\n }\n };\n Lists.prototype.onKeyUp = function () {\n if (!isNOU(this.commonLIParent) && !isNOU(this.commonLIParent.querySelector('.removeList'))) {\n var currentLIElem = this.commonLIParent.querySelector('.removeList');\n while (!isNOU(currentLIElem.firstChild)) {\n this.parent.domNode.insertAfter(currentLIElem.firstChild, currentLIElem);\n }\n detach(currentLIElem);\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Lists.prototype.firstListBackSpace = function (range, _e) {\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n if (!isNOU(startNode.closest('OL'))) {\n this.commonLIParent = startNode.closest('OL');\n }\n else if (!isNOU(startNode.closest('UL'))) {\n this.commonLIParent = startNode.closest('UL');\n }\n if (startNode.nodeName === 'LI' && range.startOffset === 0 && range.endOffset === 0 &&\n isNOU(startNode.previousSibling) && !isNOU(this.commonLIParent) && isNOU(this.commonLIParent.previousSibling) &&\n (isNOU(this.commonLIParent.parentElement.closest('OL')) && isNOU(this.commonLIParent.parentElement.closest('UL')) &&\n isNOU(this.commonLIParent.parentElement.closest('LI')))) {\n var currentElem = createElement('P');\n currentElem.innerHTML = '​';\n startNode.classList.add('removeList');\n this.commonLIParent.parentElement.insertBefore(currentElem, this.commonLIParent);\n }\n };\n Lists.prototype.keyDownHandler = function (e) {\n if (e.event.which === 13) {\n this.enterList(e);\n }\n if (e.event.which === 32) {\n this.spaceList(e);\n }\n if (e.event.which === 8) {\n this.backspaceList(e);\n }\n if (e.event.which === 46 && e.event.action === 'delete') {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var commonAncestor = range.commonAncestorContainer;\n var startEle = range.startContainer;\n var endEle = range.endContainer;\n var startNode = startEle.nodeType === 3 ? startEle.parentElement : startEle;\n var endNode = endEle.nodeType === 3 ? endEle.parentElement : endEle;\n if ((commonAncestor.nodeName === 'UL' || commonAncestor.nodeName === 'OL') && startNode !== endNode\n && (!isNullOrUndefined(closest(startNode, 'ul')) || !isNullOrUndefined(closest(startNode, 'ol')))\n && (!isNullOrUndefined(closest(endNode, 'ul')) || !isNullOrUndefined(closest(endNode, 'ol')))\n && (commonAncestor.lastElementChild === closest(endNode, 'li')) && !range.collapsed) {\n detach(commonAncestor);\n }\n this.removeList(range, e);\n }\n if (e.event.which === 9) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n if (!(e.event.action && e.event.action === 'indent')) {\n this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n }\n var blockNodes = void 0;\n var startOffset = range.startOffset;\n var endOffset = range.endOffset;\n var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);\n var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);\n if ((startNode === endNode && (startNode.nodeName === 'BR' || startNode.nodeName === '#text') &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(startNode.parentNode.tagName.toLocaleLowerCase()) >= 0)) {\n return;\n }\n else {\n if (!(e.event.action && e.event.action === 'indent')) {\n this.domNode.setMarker(this.saveSelection);\n }\n blockNodes = this.domNode.blockNodes();\n }\n var nodes = [];\n var isNested = true;\n for (var i = 0; i < blockNodes.length; i++) {\n if (blockNodes[i].parentNode.tagName === 'LI') {\n nodes.push(blockNodes[i].parentNode);\n }\n else if (blockNodes[i].tagName === 'LI' && blockNodes[i].childNodes[0].tagName !== 'P' &&\n (blockNodes[i].childNodes[0].tagName !== 'OL' &&\n blockNodes[i].childNodes[0].tagName !== 'UL')) {\n nodes.push(blockNodes[i]);\n }\n }\n if (nodes.length > 1 || nodes.length && ((startOffset === 0 && endOffset === 0) || e.ignoreDefault)) {\n e.event.preventDefault();\n e.event.stopPropagation();\n this.currentAction = this.getAction(nodes[0]);\n if (e.event.shiftKey) {\n this.revertList(nodes, e);\n this.revertClean();\n }\n else {\n isNested = this.nestedList(nodes);\n }\n if (isNested) {\n this.cleanNode();\n this.parent.editableElement.focus();\n }\n if (!(e.event.action && e.event.action === 'indent')) {\n this.saveSelection = this.domNode.saveMarker(this.saveSelection);\n this.saveSelection.restore();\n if (e.callBack) {\n e.callBack({\n requestType: this.currentAction,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes(),\n event: e.event\n });\n }\n }\n }\n else {\n if (!(e.event.action && e.event.action === 'indent')) {\n if (e.event && e.event.shiftKey && e.event.key === 'Tab') {\n e.event.action = 'tab';\n }\n this.saveSelection = this.domNode.saveMarker(this.saveSelection, e.event.action);\n this.saveSelection.restore();\n }\n }\n }\n else {\n switch (e.event.action) {\n case 'ordered-list':\n this.applyListsHandler({ subCommand: 'OL', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'unordered-list':\n this.applyListsHandler({ subCommand: 'UL', callBack: e.callBack });\n e.event.preventDefault();\n break;\n }\n }\n };\n Lists.prototype.spaceKeyAction = function (e) {\n if (e.event.which === 32) {\n this.spaceList(e);\n }\n };\n Lists.prototype.getAction = function (element) {\n var parentNode = element.parentNode;\n return (parentNode.nodeName === 'OL' ? 'OL' : 'UL');\n };\n Lists.prototype.revertClean = function () {\n var collectionNodes = this.parent.editableElement.querySelectorAll('ul, ol');\n for (var i = 0; i < collectionNodes.length; i++) {\n var listNodes = collectionNodes[i].querySelectorAll('ul, ol');\n if (listNodes.length > 0) {\n for (var j = 0; j < listNodes.length; j++) {\n var prevSibling = listNodes[j].previousSibling;\n if (prevSibling && prevSibling.tagName === 'LI') {\n prevSibling.appendChild(listNodes[j]);\n }\n }\n }\n }\n };\n Lists.prototype.noPreviousElement = function (elements) {\n var firstNode;\n var firstNodeOL;\n var siblingListOL = elements.querySelectorAll('ol, ul');\n var siblingListLI = elements\n .querySelectorAll('li');\n var siblingListLIFirst = this.domNode.contents(siblingListLI[0])[0];\n if (siblingListLI.length > 0 && (siblingListLIFirst.nodeName === 'OL' || siblingListLIFirst.nodeName === 'UL')) {\n firstNode = siblingListLI[0];\n }\n else {\n firstNodeOL = siblingListOL[0];\n }\n if (firstNode) {\n for (var h = this.domNode.contents(elements)[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n prepend([h], firstNode);\n setStyleAttribute(elements, { 'list-style-type': 'none' });\n setStyleAttribute(firstNode, { 'list-style-type': '' });\n h = nextSibling;\n }\n }\n else if (firstNodeOL) {\n var nestedElement = createElement('li');\n prepend([nestedElement], firstNodeOL);\n for (var h = this.domNode.contents(elements)[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n nestedElement.appendChild(h);\n h = nextSibling;\n }\n prepend([firstNodeOL], elements.parentNode);\n detach(elements);\n var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });\n prepend([nestedElementLI], firstNodeOL.parentNode);\n append([firstNodeOL], nestedElementLI);\n }\n else {\n var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });\n prepend([nestedElementLI], elements.parentNode);\n var nestedElement = createElement(elements.parentNode.tagName);\n prepend([nestedElement], nestedElementLI);\n append([elements], nestedElement);\n }\n };\n Lists.prototype.nestedList = function (elements) {\n var isNested = false;\n for (var i = 0; i < elements.length; i++) {\n var prevSibling = this.domNode.getPreviousNode(elements[i]);\n if (prevSibling) {\n isNested = true;\n var firstNode = void 0;\n var firstNodeLI = void 0;\n var siblingListOL = elements[i].querySelectorAll('ol, ul');\n var siblingListLI = elements[i]\n .querySelectorAll('li');\n var siblingListLIFirst = this.domNode.contents(siblingListLI[0])[0];\n if (siblingListLI.length > 0 && (siblingListLIFirst.nodeName === 'OL' || siblingListLIFirst.nodeName === 'UL')) {\n firstNodeLI = siblingListLI[0];\n }\n else {\n firstNode = siblingListOL[0];\n }\n if (firstNode) {\n var nestedElement = createElement('li');\n prepend([nestedElement], firstNode);\n for (var h = this.domNode.contents(elements[i])[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n nestedElement.appendChild(h);\n h = nextSibling;\n }\n append([firstNode], prevSibling);\n detach(elements[i]);\n }\n else if (firstNodeLI) {\n if (prevSibling.tagName === 'LI') {\n for (var h = this.domNode.contents(elements[i])[0]; h && !this.domNode.isList(h); null) {\n var nextSibling = h.nextSibling;\n prepend([h], firstNodeLI);\n setStyleAttribute(elements[i], { 'list-style-type': 'none' });\n setStyleAttribute(firstNodeLI, { 'list-style-type': '' });\n h = nextSibling;\n }\n append([firstNodeLI.parentNode], prevSibling);\n detach(elements[i]);\n }\n }\n else {\n if (prevSibling.tagName === 'LI') {\n var nestedElement = createElement(elements[i].parentNode.tagName);\n append([nestedElement], prevSibling);\n append([elements[i]], nestedElement);\n }\n else if (prevSibling.tagName === 'OL' || prevSibling.tagName === 'UL') {\n append([elements[i]], prevSibling);\n }\n }\n }\n else {\n var element = elements[i];\n isNested = true;\n this.noPreviousElement(element);\n }\n }\n return isNested;\n };\n Lists.prototype.applyListsHandler = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n if (Browser.userAgent.indexOf('Firefox') !== -1 && range.startContainer === range.endContainer && range.startContainer === this.parent.editableElement) {\n var startChildNodes = range.startContainer.childNodes;\n var startNode = ((startChildNodes[(range.startOffset > 0) ? (range.startOffset - 1) :\n range.startOffset]) || range.startContainer);\n var endNode = (range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) :\n range.endOffset] || range.endContainer);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastSelectionNode = endNode.lastChild.nodeName === 'BR' ? (isNOU(endNode.lastChild.previousSibling) ? endNode\n : endNode.lastChild.previousSibling) : endNode.lastChild;\n while (!isNOU(lastSelectionNode) && lastSelectionNode.nodeName !== '#text' && lastSelectionNode.nodeName !== 'IMG' &&\n lastSelectionNode.nodeName !== 'BR' && lastSelectionNode.nodeName !== 'HR') {\n lastSelectionNode = lastSelectionNode.lastChild;\n }\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startNode, lastSelectionNode, 0, lastSelectionNode.textContent.length);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n }\n if (range.startContainer === range.endContainer && range.startContainer === this.parent.editableElement &&\n range.startOffset === range.endOffset && range.startOffset === 0 &&\n this.parent.editableElement.textContent.length === 0 && (this.parent.editableElement.childNodes[0].nodeName !== 'TABLE' &&\n this.parent.editableElement.childNodes[0].nodeName !== 'IMG')) {\n var focusNode = range.startContainer.childNodes[0];\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, focusNode, focusNode, 0, 0);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n }\n this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n this.currentAction = e.subCommand;\n this.currentAction = e.subCommand = this.currentAction === 'NumberFormatList' ? 'OL' : this.currentAction === 'BulletFormatList' ? 'UL' : this.currentAction;\n this.domNode.setMarker(this.saveSelection);\n var listsNodes = this.domNode.blockNodes();\n if (e.enterAction === 'BR') {\n this.setSelectionBRConfig();\n var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);\n var selectedNodes = this.parent.nodeSelection.getSelectionNodes(allSelectedNode);\n var currentFormatNodes = [];\n if (selectedNodes.length === 0) {\n selectedNodes.push(listsNodes[0]);\n }\n for (var i = 0; i < selectedNodes.length; i++) {\n var currentNode = selectedNodes[i];\n var previousCurrentNode = void 0;\n while (!this.parent.domNode.isBlockNode(currentNode) && currentNode !== this.parent.editableElement) {\n previousCurrentNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n if (this.parent.domNode.isBlockNode(currentNode) && currentNode === this.parent.editableElement) {\n currentFormatNodes.push(previousCurrentNode);\n }\n }\n for (var i = 0; i < currentFormatNodes.length; i++) {\n if (!this.parent.domNode.isBlockNode(currentFormatNodes[i])) {\n var currentNode = currentFormatNodes[i];\n var previousNode = currentNode;\n while (currentNode === this.parent.editableElement) {\n previousNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n var tempElem = void 0;\n if (this.parent.domNode.isBlockNode(previousNode.parentElement) &&\n previousNode.parentElement === this.parent.editableElement) {\n tempElem = createElement('p');\n previousNode.parentElement.insertBefore(tempElem, previousNode);\n tempElem.appendChild(previousNode);\n }\n else {\n tempElem = previousNode;\n }\n var preNode = tempElem.previousSibling;\n while (!isNOU(preNode) && preNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(preNode)) {\n tempElem.firstChild.parentElement.insertBefore(preNode, tempElem.firstChild);\n preNode = tempElem.previousSibling;\n }\n if (!isNOU(preNode) && preNode.nodeName === 'BR') {\n detach(preNode);\n }\n var postNode = tempElem.nextSibling;\n while (!isNOU(postNode) && postNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(postNode)) {\n tempElem.appendChild(postNode);\n postNode = tempElem.nextSibling;\n }\n if (!isNOU(postNode) && postNode.nodeName === 'BR') {\n detach(postNode);\n }\n }\n }\n this.setSelectionBRConfig();\n listsNodes = this.parent.domNode.blockNodes();\n }\n for (var i = 0; i < listsNodes.length; i++) {\n if (listsNodes[i].tagName === 'TABLE' && !range.collapsed) {\n listsNodes.splice(i, 1);\n }\n if (listsNodes.length > 0 && listsNodes[i].tagName !== 'LI'\n && 'LI' === listsNodes[i].parentNode.tagName) {\n listsNodes[i] = listsNodes[i].parentNode;\n }\n }\n this.applyLists(listsNodes, this.currentAction, e.selector, e.item, e);\n if (e.callBack) {\n e.callBack({\n requestType: this.currentAction,\n event: e.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes()\n });\n }\n };\n Lists.prototype.setSelectionBRConfig = function () {\n var startElem = this.parent.editableElement.querySelector('.' + markerClassName.startSelection);\n var endElem = this.parent.editableElement.querySelector('.' + markerClassName.endSelection);\n if (isNOU(endElem)) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, startElem, 0);\n }\n else {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);\n }\n };\n Lists.prototype.applyLists = function (elements, type, selector, item, e) {\n var isReverse = true;\n if (this.isRevert(elements, type, item) && isNOU(item)) {\n this.revertList(elements, e);\n this.removeEmptyListElements();\n }\n else {\n this.checkLists(elements, type, item);\n for (var i = 0; i < elements.length; i++) {\n if (!isNOU(item) && !isNOU(item.listStyle)) {\n if (item.listStyle === 'listImage') {\n setStyleAttribute(elements[i], { 'list-style-image': item.listImage });\n }\n else {\n setStyleAttribute(elements[i], { 'list-style-image': 'none' });\n setStyleAttribute(elements[i], { 'list-style-type': item.listStyle.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase() });\n }\n }\n if (elements[i].getAttribute('contenteditable') === 'true'\n && elements[i].childNodes.length === 1 && elements[i].childNodes[0].nodeName === 'TABLE') {\n var listEle = document.createElement(type);\n listEle.innerHTML = '

  • ';\n elements[i].appendChild(listEle);\n }\n else if ('LI' !== elements[i].tagName && isNOU(item)) {\n isReverse = false;\n var elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);\n var openTag = '<' + type + '>';\n var closeTag = '';\n var newTag = 'li' + elemAtt;\n var replaceHTML = (elements[i].tagName.toLowerCase() === CONSTANT.DEFAULT_TAG ?\n elements[i].innerHTML : elements[i].outerHTML);\n var innerHTML = this.domNode.createTagString(newTag, null, replaceHTML);\n var collectionString = openTag + innerHTML + closeTag;\n this.domNode.replaceWith(elements[i], collectionString);\n }\n else if (!isNOU(item) && 'LI' !== elements[i].tagName) {\n // eslint-disable-next-line\n isReverse = false;\n var elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);\n var openTag = '<' + type + elemAtt + '>';\n var closeTag = '';\n var newTag = 'li';\n var replaceHTML = (elements[i].tagName.toLowerCase() === CONSTANT.DEFAULT_TAG ?\n elements[i].innerHTML : elements[i].outerHTML);\n var innerHTML = this.domNode.createTagString(newTag, null, replaceHTML);\n var collectionString = openTag + innerHTML + closeTag;\n this.domNode.replaceWith(elements[i], collectionString);\n }\n }\n }\n this.cleanNode();\n this.parent.editableElement.focus();\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, selector);\n }\n this.saveSelection = this.domNode.saveMarker(this.saveSelection);\n this.saveSelection.restore();\n };\n Lists.prototype.removeEmptyListElements = function () {\n var listElem = this.parent.editableElement.querySelectorAll('ol, ul');\n for (var i = 0; i < listElem.length; i++) {\n if (listElem[i].textContent.trim() === '') {\n detach(listElem[i]);\n }\n }\n };\n Lists.prototype.isRevert = function (nodes, tagName, item) {\n var isRevert = true;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].tagName !== 'LI') {\n return false;\n }\n if (nodes[i].parentNode.tagName !== tagName ||\n isNOU(item) && nodes[i].parentNode.style.listStyleType !== '') {\n isRevert = false;\n }\n }\n return isRevert;\n };\n Lists.prototype.checkLists = function (nodes, tagName, item) {\n var nodesTemp = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i].parentNode;\n if (!isNOU(item) && 'LI' === nodes[i].tagName && !isNOU(item.listStyle)) {\n if (item.listStyle === 'listImage') {\n setStyleAttribute(node, { 'list-style-image': item.listImage });\n }\n else {\n setStyleAttribute(node, { 'list-style-image': 'none' });\n setStyleAttribute(node, { 'list-style-type': item.listStyle.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase() });\n }\n }\n if ((nodes[i].tagName === 'LI' && node.tagName !== tagName && nodesTemp.indexOf(node) < 0) ||\n (nodes[i].tagName === 'LI' && node.tagName === tagName && nodesTemp.indexOf(node) < 0 && item !== null)) {\n nodesTemp.push(node);\n }\n if (isNOU(item) && (node.tagName === tagName ||\n ((node.tagName === 'UL' || node.tagName === 'OL') && node.hasAttribute('style')))) {\n if (node.hasAttribute('style')) {\n node.removeAttribute('style');\n }\n }\n }\n for (var j = nodesTemp.length - 1; j >= 0; j--) {\n var h = nodesTemp[j];\n var replace = '<' + tagName.toLowerCase() + ' '\n + this.domNode.attributes(h) + '>' + h.innerHTML + '';\n this.domNode.replaceWith(nodesTemp[j], replace);\n }\n };\n Lists.prototype.cleanNode = function () {\n var liParents = this.parent.editableElement.querySelectorAll('ol + ol, ul + ul');\n for (var c = 0; c < liParents.length; c++) {\n var node = liParents[c];\n if (this.domNode.isList(node.previousElementSibling) &&\n this.domNode.openTagString(node) === this.domNode.openTagString(node.previousElementSibling)) {\n var contentNodes = this.domNode.contents(node);\n for (var f = 0; f < contentNodes.length; f++) {\n node.previousElementSibling.appendChild(contentNodes[f]);\n }\n node.parentNode.removeChild(node);\n }\n else if (!isNOU(node.getAttribute('level'))) {\n if (node.tagName === node.previousElementSibling.tagName) {\n node.previousElementSibling.lastChild.append(node);\n }\n }\n }\n };\n Lists.prototype.findUnSelected = function (temp, elements) {\n temp = temp.slice().reverse();\n if (temp.length > 0) {\n var rightIndent = [];\n var indentElements = [];\n var lastElement = elements[elements.length - 1];\n var lastElementChild = [];\n var childElements = [];\n lastElementChild = (lastElement.childNodes);\n for (var z = 0; z < lastElementChild.length; z++) {\n if (lastElementChild[z].tagName === 'OL' || lastElementChild[z].tagName === 'UL') {\n var childLI = lastElementChild[z]\n .querySelectorAll('li');\n if (childLI.length > 0) {\n for (var y = 0; y < childLI.length; y++) {\n childElements.push(childLI[y]);\n }\n }\n }\n }\n for (var i = 0; i < childElements.length; i++) {\n var count = 0;\n for (var j = 0; j < temp.length; j++) {\n if (!childElements[i].contains((temp[j]))) {\n count = count + 1;\n }\n }\n if (count === temp.length) {\n indentElements.push(childElements[i]);\n }\n }\n if (indentElements.length > 0) {\n for (var x = 0; x < indentElements.length; x++) {\n if (this.domNode.contents(indentElements[x])[0].nodeName !== 'OL' &&\n this.domNode.contents(indentElements[x])[0].nodeName !== 'UL') {\n rightIndent.push(indentElements[x]);\n }\n }\n }\n if (rightIndent.length > 0) {\n this.nestedList(rightIndent);\n }\n }\n };\n Lists.prototype.revertList = function (elements, e) {\n var temp = [];\n for (var i = elements.length - 1; i >= 0; i--) {\n for (var j = i - 1; j >= 0; j--) {\n if (elements[j].contains((elements[i])) || elements[j] === elements[i]) {\n temp.push(elements[i]);\n elements.splice(i, 1);\n break;\n }\n }\n }\n this.findUnSelected(temp, elements);\n var viewNode = [];\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n if (this.domNode.contents(element)[0].nodeType === 3 && this.domNode.contents(element)[0].textContent.trim().length === 0) {\n detach(this.domNode.contents(element)[0]);\n }\n var parentNode = elements[i].parentNode;\n var className = element.getAttribute('class');\n if (temp.length === 0) {\n var siblingList = elements[i].querySelectorAll('ul, ol');\n var firstNode = siblingList[0];\n if (firstNode) {\n var child = firstNode\n .querySelectorAll('li');\n if (child) {\n var nestedElement = createElement(firstNode.tagName);\n append([nestedElement], firstNode.parentNode);\n var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });\n append([nestedElementLI], nestedElement);\n append([firstNode], nestedElementLI);\n }\n }\n }\n if (element.parentNode.insertBefore(this.closeTag(parentNode.tagName), element),\n 'LI' === parentNode.parentNode.tagName || 'OL' === parentNode.parentNode.tagName ||\n 'UL' === parentNode.parentNode.tagName) {\n element.parentNode.insertBefore(this.closeTag('LI'), element);\n }\n else {\n var classAttr = '';\n if (className) {\n // eslint-disable-next-line\n classAttr += ' class=\"' + className + '\"';\n }\n if (CONSTANT.DEFAULT_TAG && 0 === element.querySelectorAll(CONSTANT.BLOCK_TAGS.join(', ')).length) {\n var wrapperclass = isNullOrUndefined(className) ? ' class=\"e-rte-wrap-inner\"' :\n ' class=\"' + className + ' e-rte-wrap-inner\"';\n var wrapper = '<' + CONSTANT.DEFAULT_TAG + wrapperclass +\n this.domNode.attributes(parentNode) + '>';\n if (e.enterAction !== 'BR') {\n this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));\n }\n }\n else if (this.domNode.contents(element)[0].nodeType === 3) {\n var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));\n this.domNode.replaceWith(this.domNode.contents(element)[0], replace);\n }\n else if (this.domNode.contents(element)[0].classList.contains(markerClassName.startSelection) ||\n this.domNode.contents(element)[0].classList.contains(markerClassName.endSelection)) {\n var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.domNode.contents(element)[0].outerHTML);\n this.domNode.replaceWith(this.domNode.contents(element)[0], replace);\n }\n else {\n var childNode = element.firstChild;\n className = childNode.getAttribute('class');\n attributes(childNode, this.domNode.rawAttributes(parentNode));\n if (className && childNode.getAttribute('class')) {\n attributes(childNode, { 'class': className + ' ' + childNode.getAttribute('class') });\n }\n }\n append([this.openTag('LI')], element);\n prepend([this.closeTag('LI')], element);\n }\n this.domNode.insertAfter(this.openTag(parentNode.tagName), element);\n if (parentNode.parentNode.tagName === 'LI') {\n parentNode = parentNode.parentNode.parentNode;\n }\n if (viewNode.indexOf(parentNode) < 0) {\n viewNode.push(parentNode);\n }\n }\n for (var i = 0; i < viewNode.length; i++) {\n var node = viewNode[i];\n var nodeInnerHtml = node.innerHTML;\n var closeTag = /<\\/span>/g;\n var openTag = /<\\/span>/g;\n nodeInnerHtml = nodeInnerHtml.replace(closeTag, '');\n nodeInnerHtml = nodeInnerHtml.replace(openTag, '<$1 ' + this.domNode.attributes(node) + '>');\n this.domNode.replaceWith(node, this.domNode.openTagString(node) + nodeInnerHtml.trim() + this.domNode.closeTagString(node));\n }\n var emptyUl = this.parent.editableElement.querySelectorAll('ul:empty, ol:empty');\n for (var i = 0; i < emptyUl.length; i++) {\n detach(emptyUl[i]);\n }\n var emptyLi = this.parent.editableElement.querySelectorAll('li:empty');\n for (var i = 0; i < emptyLi.length; i++) {\n detach(emptyLi[i]);\n }\n };\n Lists.prototype.openTag = function (type) {\n return this.domNode.parseHTMLFragment('');\n };\n Lists.prototype.closeTag = function (type) {\n return this.domNode.parseHTMLFragment('');\n };\n return Lists;\n}());\nexport { Lists };\n","/**\n * Node appending methods.\n *\n * @hidden\n */\nvar InsertMethods = /** @class */ (function () {\n function InsertMethods() {\n }\n /**\n * WrapBefore method\n *\n * @param {Text} textNode - specifies the text node\n * @param {HTMLElement} parentNode - specifies the parent node\n * @param {boolean} isAfter - specifies the boolean value\n * @returns {Text} - returns the text value\n * @hidden\n\n */\n InsertMethods.WrapBefore = function (textNode, parentNode, isAfter) {\n parentNode.innerText = textNode.textContent;\n //eslint-disable-next-line\n (!isAfter) ? this.AppendBefore(parentNode, textNode) : this.AppendBefore(parentNode, textNode, true);\n if (textNode.parentNode) {\n textNode.parentNode.removeChild(textNode);\n }\n return parentNode.childNodes[0];\n };\n /**\n * Wrap method\n *\n * @param {HTMLElement} childNode - specifies the child node\n * @param {HTMLElement} parentNode - specifies the parent node.\n * @returns {HTMLElement} - returns the element\n * @hidden\n\n */\n InsertMethods.Wrap = function (childNode, parentNode) {\n this.AppendBefore(parentNode, childNode);\n parentNode.appendChild(childNode);\n return childNode;\n };\n /**\n * unwrap method\n *\n * @param {Node} node - specifies the node element.\n * @returns {Node[]} - returns the array of value\n * @hidden\n\n */\n InsertMethods.unwrap = function (node) {\n var parent = node.parentNode;\n var child = [];\n for (; node.firstChild; null) {\n child.push(parent.insertBefore(node.firstChild, node));\n }\n parent.removeChild(node);\n return child;\n };\n /**\n * AppendBefore method\n *\n * @param {HTMLElement} textNode - specifies the element\n * @param {HTMLElement} parentNode - specifies the parent node\n * @param {boolean} isAfter - specifies the boolean value\n * @returns {void}\n * @hidden\n\n */\n InsertMethods.AppendBefore = function (textNode, parentNode, isAfter) {\n return (parentNode.parentNode) ? ((!isAfter) ? parentNode.parentNode.insertBefore(textNode, parentNode)\n : parentNode.parentNode.insertBefore(textNode, parentNode.nextSibling)) :\n parentNode;\n };\n return InsertMethods;\n}());\nexport { InsertMethods };\n","import { NodeSelection } from './../../selection/index';\nimport { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { InsertMethods } from './insert-methods';\n/**\n * Split the Node based on selection\n *\n * @hidden\n\n */\nvar NodeCutter = /** @class */ (function () {\n function NodeCutter() {\n this.enterAction = 'P';\n this.position = -1;\n this.nodeSelection = new NodeSelection();\n }\n // Split Selection Node\n /**\n * GetSpliceNode method\n *\n * @param {Range} range - specifies the range\n * @param {HTMLElement} node - specifies the node element.\n * @returns {Node} - returns the node value\n * @hidden\n\n */\n NodeCutter.prototype.GetSpliceNode = function (range, node) {\n node = this.SplitNode(range, node, true);\n node = this.SplitNode(range, node, false);\n return node;\n };\n /**\n * @param {Range} range - specifies the range\n * @param {HTMLElement} node - specifies the node element.\n * @param {boolean} isCollapsed - specifies the boolean value\n * @returns {HTMLElement} - returns the element\n * @hidden\n\n */\n NodeCutter.prototype.SplitNode = function (range, node, isCollapsed) {\n if (node) {\n var clone = range.cloneRange();\n var parent_1 = node.parentNode;\n var index = this.nodeSelection.getIndex(node);\n clone.collapse(isCollapsed);\n // eslint-disable-next-line\n (isCollapsed) ? clone.setStartBefore(node) : clone.setEndAfter(node);\n var fragment = clone.extractContents();\n if (isCollapsed) {\n node = parent_1.childNodes[index];\n fragment = this.spliceEmptyNode(fragment, false);\n if (fragment && fragment.childNodes.length > 0) {\n var isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'\n && this.isRteElm(fragment) && fragment.textContent === '') ? true : false;\n if (!isEmpty) {\n if (node) {\n InsertMethods.AppendBefore(fragment, node);\n }\n else {\n parent_1.appendChild(fragment);\n var divNode = document.createElement('div');\n divNode.innerHTML = '';\n node = divNode.firstChild;\n parent_1.appendChild(node);\n }\n }\n }\n }\n else {\n node = parent_1.childNodes.length > 1 ? parent_1.childNodes[index] :\n parent_1.childNodes[0];\n fragment = this.spliceEmptyNode(fragment, true);\n if (fragment && fragment.childNodes.length > 0) {\n var isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'\n && this.isRteElm(fragment) && fragment.textContent === '') ? true : false;\n if (!isEmpty) {\n if (node) {\n InsertMethods.AppendBefore(fragment, node, true);\n }\n else {\n parent_1.appendChild(fragment);\n var divNode = document.createElement('div');\n divNode.innerHTML = '';\n parent_1.insertBefore(divNode.firstChild, parent_1.firstChild);\n node = parent_1.firstChild;\n }\n }\n }\n }\n return node;\n }\n else {\n return null;\n }\n };\n NodeCutter.prototype.isRteElm = function (fragment) {\n var result = true;\n if (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG') {\n var firstChild = fragment.childNodes[0];\n for (var i = 0; !isNOU(firstChild.childNodes) && i < firstChild.childNodes.length; i++) {\n if (firstChild.childNodes[i].nodeName === 'IMG' || (firstChild.childNodes[i].nodeName === 'SPAN' &&\n (firstChild.childNodes[i].classList.contains('e-video-wrap') ||\n firstChild.childNodes[i].classList.contains('e-embed-video-wrap') ||\n firstChild.childNodes[i].classList.contains('e-audio-wrap')))) {\n result = false;\n }\n }\n }\n else {\n result = true;\n }\n return result;\n };\n NodeCutter.prototype.spliceEmptyNode = function (fragment, isStart) {\n var len;\n if (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName === '#text' &&\n fragment.childNodes[0].textContent === '' || fragment.textContent === '') {\n len = -1;\n }\n else {\n len = fragment.childNodes.length - 1;\n }\n if (len > -1 && !isStart) {\n this.spliceEmptyNode(fragment.childNodes[len], isStart);\n }\n else if (len > -1) {\n this.spliceEmptyNode(fragment.childNodes[0], isStart);\n }\n else if (fragment.nodeType !== 3 && fragment.nodeType !== 11 && fragment.nodeName !== 'IMG' && !(fragment.classList.contains('e-video-wrap')) && !(fragment.classList.contains('e-audio-wrap'))) {\n fragment.parentNode.removeChild(fragment);\n }\n return fragment;\n };\n // Cursor Position split\n NodeCutter.prototype.GetCursorStart = function (indexes, index, isStart) {\n indexes = (isStart) ? indexes : indexes.reverse();\n var position = indexes[0];\n for (var num = 0; num < indexes.length && ((isStart) ? (indexes[num] < index) : (indexes[num] >= index)); num++) {\n position = indexes[num];\n }\n return position;\n };\n /**\n * GetCursorRange method\n *\n * @param {Document} docElement - specifies the document\n * @param {Range} range - specifies the range\n * @param {Node} node - specifies the node.\n * @returns {Range} - returns the range value\n * @hidden\n\n */\n NodeCutter.prototype.GetCursorRange = function (docElement, range, node) {\n var cursorRange = docElement.createRange();\n var indexes = [];\n indexes.push(0);\n var str = this.TrimLineBreak(node.data);\n var index = str.indexOf(' ', 0);\n while (index !== -1) {\n if (indexes.indexOf(index) < 0) {\n indexes.push(index);\n }\n if (new RegExp('\\\\s').test(str[index - 1]) && (indexes.indexOf(index - 1) < 0)) {\n indexes.push(index - 1);\n }\n if (new RegExp('\\\\s').test(str[index + 1])) {\n indexes.push(index + 1);\n }\n index = str.indexOf(' ', (index + 1));\n }\n indexes.push(str.length);\n if ((indexes.indexOf(range.startOffset) >= 0)\n || ((indexes.indexOf(range.startOffset - 1) >= 0) && (range.startOffset !== 1\n || (range.startOffset === 1 && new RegExp('\\\\s').test(str[0])))\n || ((indexes[indexes.length - 1] - 1) === range.startOffset))) {\n cursorRange = range;\n this.position = 1;\n }\n else {\n var startOffset = this.GetCursorStart(indexes, range.startOffset, true);\n this.position = range.startOffset - startOffset;\n cursorRange.setStart(range.startContainer, startOffset);\n cursorRange.setEnd(range.startContainer, this.GetCursorStart(indexes, range.startOffset, false));\n }\n return cursorRange;\n };\n /**\n * GetCursorNode method\n *\n * @param {Document} docElement - specifies the document\n * @param {Range} range - specifies the range\n * @param {Node} node - specifies the node.\n * @returns {Node} - returns the node value\n * @hidden\n\n */\n NodeCutter.prototype.GetCursorNode = function (docElement, range, node) {\n return this.GetSpliceNode(this.GetCursorRange(docElement, range, node), node);\n };\n /**\n * TrimLineBreak method\n *\n * @param {string} line - specifies the string value.\n * @returns {string} - returns the string\n * @hidden\n\n */\n NodeCutter.prototype.TrimLineBreak = function (line) {\n return line.replace(/(\\r\\n\\t|\\n|\\r\\t)/gm, ' ');\n };\n return NodeCutter;\n}());\nexport { NodeCutter };\n","import * as EVENTS from './../../common/constant';\nimport { isNullOrUndefined as isNOU, detach, createElement, closest } from '@syncfusion/ej2-base';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nimport { markerClassName } from './dom-node';\nimport { NodeCutter } from './nodecutter';\n/**\n * Formats internal component\n *\n * @hidden\n\n */\nvar Formats = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element.\n * @hidden\n\n */\n function Formats(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n Formats.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.FORMAT_TYPE, this.applyFormats, this);\n this.parent.observer.on(EVENTS.KEY_UP_HANDLER, this.onKeyUp, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n Formats.prototype.getParentNode = function (node) {\n for (; node.parentNode && node.parentNode !== this.parent.editableElement; null) {\n node = node.parentNode;\n }\n return node;\n };\n Formats.prototype.onKeyUp = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var endCon = range.endContainer;\n var lastChild = endCon.lastChild;\n if (e.event.which === 13 && range.startContainer === endCon && endCon.nodeType !== 3) {\n var pTag = createElement('p');\n pTag.innerHTML = '
    ';\n if (!isNOU(lastChild) && lastChild && lastChild.nodeName === 'BR' && (lastChild.previousSibling && lastChild.previousSibling.nodeName === 'TABLE')) {\n endCon.replaceChild(pTag, lastChild);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, pTag, 0);\n }\n else {\n var brNode = this.parent.nodeSelection.getSelectionNodeCollectionBr(range)[0];\n if (!isNOU(brNode) && brNode.nodeName === 'BR' && (brNode.previousSibling && brNode.previousSibling.nodeName === 'TABLE')) {\n endCon.replaceChild(pTag, brNode);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, pTag, 0);\n }\n }\n }\n };\n Formats.prototype.onKeyDown = function (e) {\n if (e.event.which === 13) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var startCon = (range.startContainer.textContent.length === 0 || range.startContainer.nodeName === 'PRE')\n ? range.startContainer : range.startContainer.parentElement;\n var endCon = (range.endContainer.textContent.length === 0 || range.endContainer.nodeName === 'PRE')\n ? range.endContainer : range.endContainer.parentElement;\n var preElem = closest(startCon, 'pre');\n var endPreElem = closest(endCon, 'pre');\n var liParent = !isNOU(preElem) && !isNOU(preElem.parentElement) && preElem.parentElement.tagName === 'LI';\n if (liParent) {\n return;\n }\n if (((isNOU(preElem) && !isNOU(endPreElem)) || (!isNOU(preElem) && isNOU(endPreElem)))) {\n e.event.preventDefault();\n this.deleteContent(range);\n this.removeCodeContent(range);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, endCon, 0);\n }\n if (e.event.which === 13 && !isNOU(preElem) && !isNOU(endPreElem)) {\n e.event.preventDefault();\n this.deleteContent(range);\n this.removeCodeContent(range);\n range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var lastEmpty = range.startContainer.childNodes[range.endOffset];\n var lastBeforeBr = range.startContainer.childNodes[range.endOffset - 1];\n var startParent = range.startContainer;\n if (!isNOU(lastEmpty) && !isNOU(lastBeforeBr) && isNOU(lastEmpty.nextSibling) &&\n lastEmpty.nodeName === 'BR' && lastBeforeBr.nodeName === 'BR') {\n this.paraFocus(range.startContainer, e.enterAction);\n }\n else if ((startParent.textContent.charCodeAt(0) === 8203 &&\n startParent.textContent.length === 1) || startParent.textContent.length === 0) {\n //Double enter with any parent tag for the node\n while (startParent.parentElement.nodeName !== 'PRE' &&\n (startParent.textContent.length === 1 || startParent.textContent.length === 0)) {\n startParent = startParent.parentElement;\n }\n if (!isNOU(startParent.previousSibling) && startParent.previousSibling.nodeName === 'BR' &&\n isNOU(startParent.nextSibling)) {\n this.paraFocus(startParent.parentElement);\n }\n else {\n this.isNotEndCursor(preElem, range);\n }\n }\n else {\n //Cursor at start and middle\n this.isNotEndCursor(preElem, range);\n }\n }\n }\n };\n Formats.prototype.removeCodeContent = function (range) {\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(65279), 'g');\n if (!isNOU(range.endContainer.textContent.match(regEx))) {\n var pointer = range.endContainer.textContent.charCodeAt(range.endOffset - 1) === 65279 ?\n range.endOffset - 2 : range.endOffset;\n range.endContainer.textContent = range.endContainer.textContent.replace(regEx, '');\n if (range.endContainer.textContent === '') {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, range.endContainer.parentElement, 0);\n }\n else {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, range.endContainer, pointer);\n }\n }\n };\n Formats.prototype.deleteContent = function (range) {\n if (range.startContainer !== range.endContainer || range.startOffset !== range.endOffset) {\n range.deleteContents();\n }\n };\n Formats.prototype.paraFocus = function (referNode, enterAction) {\n var insertTag;\n if (enterAction === 'DIV') {\n insertTag = createElement('div');\n insertTag.innerHTML = '
    ';\n }\n else if (enterAction === 'BR') {\n insertTag = createElement('br');\n }\n else {\n insertTag = createElement('p');\n insertTag.innerHTML = '
    ';\n }\n this.parent.domNode.insertAfter(insertTag, referNode);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, insertTag, 0);\n detach(referNode.lastChild);\n };\n Formats.prototype.isNotEndCursor = function (preElem, range) {\n var nodeCutter = new NodeCutter();\n var isEnd = range.startOffset === preElem.lastChild.textContent.length &&\n preElem.lastChild.textContent === range.startContainer.textContent;\n //Cursor at start point\n if (preElem.textContent.indexOf(range.startContainer.textContent) === 0 &&\n ((range.startOffset === 0 && range.endOffset === 0) || range.startContainer.nodeName === 'PRE')) {\n this.insertMarker(preElem, range);\n var brTag = createElement('br');\n preElem.childNodes[range.endOffset].parentElement.insertBefore(brTag, preElem.childNodes[range.endOffset]);\n }\n else {\n //Cursor at middle\n var cloneNode = nodeCutter.SplitNode(range, preElem, true);\n this.insertMarker(preElem, range);\n var previousSib = preElem.previousElementSibling;\n if (previousSib.tagName === 'PRE') {\n previousSib.insertAdjacentHTML('beforeend', '
    ' + cloneNode.innerHTML);\n detach(preElem);\n }\n }\n //To place the cursor position\n this.setCursorPosition(isEnd, preElem);\n };\n Formats.prototype.setCursorPosition = function (isEnd, preElem) {\n var isEmpty = false;\n var markerElem = this.parent.editableElement.querySelector('.tempSpan');\n var mrkParentElem = markerElem.parentElement;\n // eslint-disable-next-line\n markerElem.parentNode.textContent === '' ? isEmpty = true :\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, markerElem, 0);\n if (isEnd) {\n if (isEmpty) {\n //Enter press when pre element is empty\n if (mrkParentElem === preElem) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, markerElem, 0);\n detach(markerElem);\n }\n else {\n this.focusSelectionParent(markerElem, mrkParentElem);\n }\n }\n else {\n var brElm = createElement('br');\n this.parent.domNode.insertAfter(brElm, markerElem);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, markerElem, 0);\n detach(markerElem);\n }\n }\n else {\n // eslint-disable-next-line\n isEmpty ? this.focusSelectionParent(markerElem, mrkParentElem) : detach(markerElem);\n }\n };\n Formats.prototype.focusSelectionParent = function (markerElem, tempSpanPElem) {\n detach(markerElem);\n tempSpanPElem.innerHTML = '\\u200B';\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, tempSpanPElem, 0);\n };\n Formats.prototype.insertMarker = function (preElem, range) {\n var tempSpan = createElement('span', { className: 'tempSpan' });\n if (range.startContainer.nodeName === 'PRE') {\n preElem.childNodes[range.endOffset].parentElement.insertBefore(tempSpan, preElem.childNodes[range.endOffset]);\n }\n else {\n range.startContainer.parentElement.insertBefore(tempSpan, range.startContainer);\n }\n };\n Formats.prototype.applyFormats = function (e) {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var isSelectAll = false;\n if (this.parent.editableElement === range.endContainer &&\n !isNOU(this.parent.editableElement.children[range.endOffset - 1]) &&\n this.parent.editableElement.children[range.endOffset - 1].tagName === 'TABLE' && !range.collapsed) {\n isSelectAll = true;\n }\n var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n this.parent.domNode.setMarker(save);\n var formatsNodes = this.parent.domNode.blockNodes();\n if (e.enterAction === 'BR') {\n this.setSelectionBRConfig();\n var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);\n var selectedNodes = this.parent.nodeSelection.getSelectionNodes(allSelectedNode);\n var currentFormatNodes = [];\n if (selectedNodes.length === 0) {\n selectedNodes.push(formatsNodes[0]);\n }\n for (var i = 0; i < selectedNodes.length; i++) {\n var currentNode = selectedNodes[i];\n var previousCurrentNode = void 0;\n while (!this.parent.domNode.isBlockNode(currentNode) && currentNode !== this.parent.editableElement) {\n previousCurrentNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n if (this.parent.domNode.isBlockNode(currentNode) && currentNode === this.parent.editableElement) {\n currentFormatNodes.push(previousCurrentNode);\n }\n }\n for (var i = 0; i < currentFormatNodes.length; i++) {\n if (!this.parent.domNode.isBlockNode(currentFormatNodes[i])) {\n var currentNode = currentFormatNodes[i];\n var previousNode = currentNode;\n while (currentNode === this.parent.editableElement) {\n previousNode = currentNode;\n currentNode = currentNode.parentElement;\n }\n var tempElem = void 0;\n if (this.parent.domNode.isBlockNode(previousNode.parentElement) &&\n previousNode.parentElement === this.parent.editableElement) {\n tempElem = createElement('div');\n previousNode.parentElement.insertBefore(tempElem, previousNode);\n tempElem.appendChild(previousNode);\n }\n else {\n tempElem = previousNode;\n }\n var preNode = tempElem.previousSibling;\n while (!isNOU(preNode) && preNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(preNode)) {\n tempElem.firstChild.parentElement.insertBefore(preNode, tempElem.firstChild);\n preNode = tempElem.previousSibling;\n }\n if (!isNOU(preNode) && preNode.nodeName === 'BR') {\n detach(preNode);\n }\n var postNode = tempElem.nextSibling;\n while (!isNOU(postNode) && postNode.nodeName !== 'BR' &&\n !this.parent.domNode.isBlockNode(postNode)) {\n tempElem.appendChild(postNode);\n postNode = tempElem.nextSibling;\n }\n if (!isNOU(postNode) && postNode.nodeName === 'BR') {\n detach(postNode);\n }\n }\n }\n this.setSelectionBRConfig();\n formatsNodes = this.parent.domNode.blockNodes();\n }\n for (var i = 0; i < formatsNodes.length; i++) {\n var parentNode = void 0;\n var replaceHTML = void 0;\n if (e.subCommand.toLowerCase() === 'blockquote') {\n parentNode = this.getParentNode(formatsNodes[i]);\n replaceHTML = this.parent.domNode.isList(parentNode) ||\n parentNode.tagName === 'TABLE' ? parentNode.outerHTML : parentNode.innerHTML;\n }\n else {\n parentNode = formatsNodes[i];\n replaceHTML = parentNode.innerHTML;\n }\n if ((e.subCommand.toLowerCase() === parentNode.tagName.toLowerCase() &&\n (e.subCommand.toLowerCase() !== 'pre' ||\n (!isNOU(e.exeValue) && e.exeValue.name === 'dropDownSelect'))) ||\n isNOU(parentNode.parentNode) ||\n (parentNode.tagName === 'TABLE' && e.subCommand.toLowerCase() === 'pre')) {\n continue;\n }\n this.cleanFormats(parentNode, e.subCommand);\n var replaceNode = (e.subCommand.toLowerCase() === 'pre' && parentNode.tagName.toLowerCase() === 'pre') ?\n 'p' : e.subCommand;\n var replaceTag = this.parent.domNode.createTagString(replaceNode, parentNode, replaceHTML.replace(/>\\s+<'));\n if (parentNode.tagName === 'LI') {\n parentNode.innerHTML = '';\n parentNode.insertAdjacentHTML('beforeend', replaceTag);\n }\n else {\n this.parent.domNode.replaceWith(parentNode, replaceTag);\n }\n }\n this.preFormatMerge();\n var startNode = this.parent.editableElement.querySelector('.' + markerClassName.startSelection);\n var endNode = this.parent.editableElement.querySelector('.' + markerClassName.endSelection);\n if (!isNOU(startNode) && !isNOU(endNode)) {\n startNode = startNode.lastChild;\n endNode = endNode.lastChild;\n }\n save = this.parent.domNode.saveMarker(save, null);\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n if (isSelectAll) {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startNode, endNode, 0, endNode.textContent.length);\n }\n else {\n save.restore();\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes()\n });\n }\n };\n Formats.prototype.setSelectionBRConfig = function () {\n var startElem = this.parent.editableElement.querySelector('.' + markerClassName.startSelection);\n var endElem = this.parent.editableElement.querySelector('.' + markerClassName.endSelection);\n if (isNOU(endElem)) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, startElem, 0);\n }\n else {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);\n }\n };\n Formats.prototype.preFormatMerge = function () {\n var preNodes = this.parent.editableElement.querySelectorAll('PRE');\n if (!isNOU(preNodes)) {\n for (var i = 0; i < preNodes.length; i++) {\n var previousSib = preNodes[i].previousElementSibling;\n if (!isNOU(previousSib) && previousSib.tagName === 'PRE') {\n previousSib.insertAdjacentHTML('beforeend', '
    ' + preNodes[i].innerHTML);\n detach(preNodes[i]);\n }\n }\n }\n };\n Formats.prototype.cleanFormats = function (element, tagName) {\n var ignoreAttr = ['display', 'font-size', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'font-weight'];\n tagName = tagName.toLowerCase();\n for (var i = 0; i < ignoreAttr.length && (tagName !== 'p' && tagName !== 'blockquote' && tagName !== 'pre'); i++) {\n element.style.removeProperty(ignoreAttr[i]);\n }\n };\n return Formats;\n}());\nexport { Formats };\n","import { NodeSelection } from './../../selection/index';\nimport { NodeCutter } from './nodecutter';\nimport * as CONSTANT from './../base/constant';\nimport { detach, Browser, isNullOrUndefined as isNOU, createElement, closest } from '@syncfusion/ej2-base';\nimport { InsertMethods } from './insert-methods';\nimport { updateTextNode } from './../../common/util';\n/**\n * Insert a HTML Node or Text\n *\n * @hidden\n\n */\nvar InsertHtml = /** @class */ (function () {\n function InsertHtml() {\n }\n InsertHtml.Insert = function (docElement, insertNode, editNode, isExternal, enterAction) {\n var node;\n if (typeof insertNode === 'string') {\n var divNode = document.createElement('div');\n divNode.innerHTML = insertNode;\n node = isExternal ? divNode : divNode.firstChild;\n }\n else {\n if (isExternal && !(!isNOU(insertNode) && !isNOU(insertNode.classList) &&\n insertNode.classList.contains('pasteContent'))) {\n var divNode = document.createElement('div');\n divNode.appendChild(insertNode);\n node = divNode;\n }\n else {\n node = insertNode;\n }\n }\n var nodeSelection = new NodeSelection();\n var nodeCutter = new NodeCutter();\n var range = nodeSelection.getRange(docElement);\n if (range.startContainer === editNode && range.startContainer === range.endContainer && range.startOffset === 0 &&\n range.startOffset === range.endOffset && editNode.textContent.length === 0 &&\n (editNode.children[0].tagName === 'P' || (editNode.children[0].tagName === 'BR'))) {\n nodeSelection.setSelectionText(docElement, range.startContainer.children[0], range.startContainer.children[0], 0, 0);\n range = nodeSelection.getRange(docElement);\n }\n if (range.startContainer.nodeName === 'BR' && range.startOffset === 0 && range.startOffset === range.endOffset &&\n range.startContainer === range.endContainer) {\n var currentIndex = Array.prototype.slice.call(range.startContainer.parentElement.childNodes).indexOf(range.startContainer);\n nodeSelection.setSelectionText(docElement, range.startContainer.parentElement, range.startContainer.parentElement, currentIndex, currentIndex);\n range = nodeSelection.getRange(docElement);\n }\n var isCursor = range.startOffset === range.endOffset && range.startOffset === 0 &&\n range.startContainer === range.endContainer;\n var isCollapsed = range.collapsed;\n var nodes = this.getNodeCollection(range, nodeSelection, node);\n var closestParentNode = (node.nodeName.toLowerCase() === 'table') ? this.closestEle(nodes[0].parentNode, editNode) : nodes[0];\n if (isExternal || (!isNOU(node) && !isNOU(node.classList) &&\n node.classList.contains('pasteContent'))) {\n this.pasteInsertHTML(nodes, node, range, nodeSelection, nodeCutter, docElement, isCollapsed, closestParentNode, editNode, enterAction);\n return;\n }\n if (editNode !== range.startContainer && ((!isCollapsed && !(closestParentNode.nodeType === Node.ELEMENT_NODE &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) !== -1))\n || (node.nodeName.toLowerCase() === 'table' && closestParentNode &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) === -1))) {\n var preNode = nodeCutter.GetSpliceNode(range, closestParentNode);\n var sibNode = preNode.previousSibling;\n var parentNode = preNode.parentNode;\n if (nodes.length === 1 || (node.nodeName.toLowerCase() === 'table' && preNode.childElementCount === 0)) {\n nodeSelection.setSelectionContents(docElement, preNode);\n range = nodeSelection.getRange(docElement);\n }\n else {\n var lasNode = nodeCutter.GetSpliceNode(range, nodes[nodes.length - 1].parentElement);\n lasNode = isNOU(lasNode) ? preNode : lasNode;\n nodeSelection.setSelectionText(docElement, preNode, lasNode, 0, (lasNode.nodeType === 3) ?\n lasNode.textContent.length : lasNode.childNodes.length);\n range = nodeSelection.getRange(docElement);\n }\n range.extractContents();\n if (insertNode.tagName === 'TABLE') {\n this.removeEmptyElements(editNode);\n }\n for (var index = 0; index < nodes.length; index++) {\n if (nodes[index].nodeType !== 3 && nodes[index].parentNode != null) {\n if (nodes[index].nodeName === 'IMG') {\n continue;\n }\n nodes[index].parentNode.removeChild(nodes[index]);\n }\n }\n if (sibNode) {\n InsertMethods.AppendBefore(node, sibNode, true);\n }\n else {\n var previousNode = null;\n while (parentNode !== editNode && parentNode.firstChild &&\n (parentNode.textContent.trim() === '')) {\n var parentNode1 = parentNode.parentNode;\n previousNode = parentNode;\n parentNode = parentNode1;\n }\n if (previousNode !== null) {\n parentNode = previousNode;\n }\n if (parentNode.firstChild && (parentNode !== editNode ||\n (node.nodeName === 'TABLE' && isCursor && parentNode === range.startContainer &&\n parentNode === range.endContainer))) {\n if (parentNode.textContent.trim() === '' && parentNode !== editNode) {\n InsertMethods.AppendBefore(node, parentNode, false);\n detach(parentNode);\n }\n else {\n InsertMethods.AppendBefore(node, parentNode.firstChild, false);\n }\n }\n else {\n parentNode.appendChild(node);\n }\n }\n if (node.nodeName === 'IMG') {\n this.imageFocus(node, nodeSelection, docElement);\n }\n else if (node.nodeType !== 3) {\n nodeSelection.setSelectionText(docElement, node, node, 0, node.childNodes.length);\n }\n else {\n nodeSelection.setSelectionText(docElement, node, node, 0, node.textContent.length);\n }\n }\n else {\n range.deleteContents();\n if (isCursor && range.startContainer.textContent === '' && range.startContainer.nodeName !== 'BR') {\n range.startContainer.innerHTML = '';\n }\n if (Browser.isIE) {\n var frag = docElement.createDocumentFragment();\n frag.appendChild(node);\n range.insertNode(frag);\n }\n else if (range.startContainer.nodeType === 1 && range.startContainer.nodeName.toLowerCase() === 'hr'\n && range.endContainer.nodeName.toLowerCase() === 'hr') {\n var paraElem = range.startContainer.nextElementSibling;\n if (paraElem) {\n if (paraElem.querySelector('br')) {\n detach(paraElem.querySelector('br'));\n }\n paraElem.appendChild(node);\n }\n }\n else {\n if (range.startContainer.nodeName === 'BR') {\n range.startContainer.parentElement.insertBefore(node, range.startContainer);\n }\n else {\n range.insertNode(node);\n }\n }\n if (node.nodeType !== 3 && node.childNodes.length > 0) {\n nodeSelection.setSelectionText(docElement, node, node, 1, 1);\n }\n else if (node.nodeName === 'IMG') {\n this.imageFocus(node, nodeSelection, docElement);\n }\n else if (node.nodeType !== 3) {\n nodeSelection.setSelectionContents(docElement, node);\n }\n else {\n nodeSelection.setSelectionText(docElement, node, node, node.textContent.length, node.textContent.length);\n }\n }\n };\n InsertHtml.pasteInsertHTML = function (nodes, node, range, nodeSelection, nodeCutter, docElement, isCollapsed, closestParentNode, editNode, enterAction) {\n var isCursor = range.startOffset === range.endOffset &&\n range.startContainer === range.endContainer;\n if (isCursor && range.startContainer === editNode && editNode.textContent === '') {\n var currentBlockNode = this.getImmediateBlockNode(nodes[nodes.length - 1], editNode);\n nodeSelection.setSelectionText(docElement, currentBlockNode, currentBlockNode, 0, 0);\n range = nodeSelection.getRange(docElement);\n }\n var lasNode;\n var sibNode;\n var isSingleNode;\n var preNode;\n if (editNode !== range.startContainer && ((!isCollapsed && !(closestParentNode.nodeType === Node.ELEMENT_NODE &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) !== -1))\n || (node.nodeName.toLowerCase() === 'table' && closestParentNode &&\n CONSTANT.TABLE_BLOCK_TAGS.indexOf(closestParentNode.tagName.toLocaleLowerCase()) === -1))) {\n preNode = nodeCutter.GetSpliceNode(range, closestParentNode);\n sibNode = isNOU(preNode.previousSibling) ? preNode.parentNode.previousSibling : preNode.previousSibling;\n if (nodes.length === 1) {\n nodeSelection.setSelectionContents(docElement, preNode);\n range = nodeSelection.getRange(docElement);\n isSingleNode = true;\n }\n else {\n lasNode = nodeCutter.GetSpliceNode(range, nodes[nodes.length - 1].parentElement);\n lasNode = isNOU(lasNode) ? preNode : lasNode;\n nodeSelection.setSelectionText(docElement, preNode, lasNode, 0, (lasNode.nodeType === 3) ?\n lasNode.textContent.length : lasNode.childNodes.length);\n range = nodeSelection.getRange(docElement);\n isSingleNode = false;\n }\n }\n var containsBlockNode = false;\n this.removingComments(node);\n var allChildNodes = node.childNodes;\n for (var i = 0; i < allChildNodes.length; i++) {\n if (CONSTANT.BLOCK_TAGS.indexOf(allChildNodes[i].nodeName.toLocaleLowerCase()) >= 0) {\n containsBlockNode = true;\n break;\n }\n }\n var lastSelectionNode;\n var fragment = document.createDocumentFragment();\n if (!containsBlockNode) {\n if (!isCursor) {\n while (node.firstChild) {\n lastSelectionNode = node.firstChild;\n fragment.appendChild(node.firstChild);\n }\n if (isSingleNode) {\n preNode.parentNode.replaceChild(fragment, preNode);\n }\n else {\n range.deleteContents();\n if (!isNOU(lasNode)) {\n detach(lasNode);\n }\n // eslint-disable-next-line\n !isNOU(sibNode) ? sibNode.parentNode.appendChild(fragment) : editNode.appendChild(fragment);\n }\n }\n else {\n var tempSpan = createElement('span', { className: 'tempSpan' });\n var nearestAnchor = closest(range.startContainer.parentElement, 'a');\n if (range.startContainer.nodeType === 3 && nearestAnchor && closest(nearestAnchor, 'span')) {\n var immediateBlockNode = this.getImmediateBlockNode(range.startContainer, editNode);\n if (immediateBlockNode.querySelectorAll('br').length > 0) {\n detach(immediateBlockNode.querySelector('br'));\n }\n var rangeElement = closest(nearestAnchor, 'span');\n rangeElement.appendChild(tempSpan);\n }\n else {\n range.insertNode(tempSpan);\n }\n while (node.firstChild) {\n lastSelectionNode = node.firstChild;\n fragment.appendChild(node.firstChild);\n }\n tempSpan.parentNode.replaceChild(fragment, tempSpan);\n }\n }\n else {\n var parentElem = range.startContainer;\n while (!isNOU(parentElem) && parentElem.nodeName !== 'PRE' && parentElem !== editNode) {\n parentElem = parentElem.parentElement;\n }\n if (!isNOU(node) && !isNOU(parentElem) && parentElem.nodeName === 'PRE') {\n range.insertNode(node);\n lastSelectionNode = node.lastChild;\n }\n else {\n this.insertTempNode(range, node, nodes, nodeCutter, editNode);\n var isFirstTextNode = true;\n var isPreviousInlineElem = void 0;\n var paraElm = void 0;\n var previousParent = void 0;\n if (!this.contentsDeleted) {\n range.deleteContents();\n }\n while (node.firstChild) {\n if (node.firstChild.nodeName === '#text' && node.firstChild.textContent.trim() === '') {\n detach(node.firstChild);\n continue;\n }\n if (node.firstChild.nodeName === '#text' && isFirstTextNode ||\n (this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0 && isFirstTextNode)) {\n lastSelectionNode = node.firstChild;\n if (isNOU(node.previousElementSibling)) {\n var firstParaElm = createElement('p');\n node.parentElement.insertBefore(firstParaElm, node);\n }\n if (node.previousElementSibling.nodeName === 'BR') {\n node.parentElement.insertBefore(node.firstChild, node);\n }\n else {\n node.previousElementSibling.appendChild(node.firstChild);\n }\n }\n else {\n lastSelectionNode = node.firstChild;\n if (node.firstChild.nodeName === '#text' ||\n (this.inlineNode.indexOf(node.firstChild.nodeName.toLocaleLowerCase()) >= 0)) {\n if (!isPreviousInlineElem) {\n paraElm = createElement('p');\n paraElm.appendChild(node.firstChild);\n fragment.appendChild(paraElm);\n }\n else {\n previousParent.appendChild(node.firstChild);\n fragment.appendChild(previousParent);\n }\n previousParent = paraElm;\n isPreviousInlineElem = true;\n }\n else {\n fragment.appendChild(node.firstChild);\n isPreviousInlineElem = false;\n }\n isFirstTextNode = false;\n }\n }\n node.parentNode.replaceChild(fragment, node);\n }\n }\n if (lastSelectionNode.nodeName === '#text') {\n this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);\n }\n else {\n this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);\n }\n };\n InsertHtml.placeCursorEnd = function (lastSelectionNode, node, nodeSelection, docElement, editNode) {\n lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNOU(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode\n : lastSelectionNode.previousSibling) : lastSelectionNode;\n while (!isNOU(lastSelectionNode) && lastSelectionNode.nodeName !== '#text' && lastSelectionNode.nodeName !== 'IMG' &&\n lastSelectionNode.nodeName !== 'BR' && lastSelectionNode.nodeName !== 'HR') {\n lastSelectionNode = lastSelectionNode.lastChild;\n }\n lastSelectionNode = isNOU(lastSelectionNode) ? node : lastSelectionNode;\n if (lastSelectionNode.nodeName === 'IMG') {\n this.imageFocus(lastSelectionNode, nodeSelection, docElement);\n }\n else {\n nodeSelection.setSelectionText(docElement, lastSelectionNode, lastSelectionNode, lastSelectionNode.textContent.length, lastSelectionNode.textContent.length);\n }\n this.removeEmptyElements(editNode);\n };\n InsertHtml.getNodeCollection = function (range, nodeSelection, node) {\n var nodes = [];\n if (range.startOffset === range.endOffset && range.startContainer === range.endContainer &&\n range.startContainer.nodeName !== 'BR' && range.startContainer.childNodes.length > 0 &&\n (range.startContainer.nodeName === 'TD' || (range.startContainer.nodeType !== 3 &&\n node.classList && node.classList.contains('pasteContent')))) {\n nodes.push(range.startContainer.childNodes[range.endOffset]);\n }\n else {\n nodes = nodeSelection.getInsertNodeCollection(range);\n }\n return nodes;\n };\n InsertHtml.insertTempNode = function (range, node, nodes, nodeCutter, editNode) {\n if (range.startContainer === editNode && !isNOU(range.startContainer.childNodes[range.endOffset - 1]) &&\n range.startContainer.childNodes[range.endOffset - 1].nodeName === 'TABLE') {\n if (isNOU(range.startContainer.childNodes[range.endOffset - 1].nextSibling)) {\n range.startContainer.appendChild(node);\n }\n else {\n range.startContainer.insertBefore(node, range.startContainer.childNodes[range.endOffset - 1].nextSibling);\n }\n }\n else if (range.startContainer === editNode && !isNOU(range.startContainer.childNodes[range.endOffset]) &&\n range.startContainer.childNodes[range.endOffset].nodeName === 'TABLE') {\n range.startContainer.insertBefore(node, range.startContainer.childNodes[range.endOffset]);\n }\n else if (range.startContainer === range.endContainer && range.startContainer.nodeType !== 3\n && node.firstChild.nodeName === 'HR') {\n if (range.startContainer.classList.contains('e-content') || range.startContainer.nodeName === 'BODY') {\n range.startContainer.appendChild(node);\n }\n else {\n range.startContainer.parentNode.insertBefore(node, range.startContainer);\n }\n }\n else {\n var blockNode = this.getImmediateBlockNode(nodes[nodes.length - 1], editNode);\n if ((isNOU(blockNode) || isNOU(blockNode.parentElement)) && range.endContainer.nodeType !== 3) {\n blockNode = range.endContainer;\n range.setEnd(blockNode, range.endContainer.textContent.length);\n }\n if (blockNode.nodeName === 'BODY' && range.startContainer === range.endContainer && range.startContainer.nodeType === 1) {\n blockNode = range.startContainer;\n }\n if (blockNode.closest('LI') && node && node.firstElementChild &&\n ((node).firstElementChild.tagName === 'OL' || node.firstElementChild.tagName === 'UL')) {\n var liNode = void 0;\n while (node.firstElementChild.lastElementChild && node.firstElementChild.lastElementChild.tagName === 'LI') {\n liNode = node.firstElementChild.lastElementChild;\n liNode.style.removeProperty('margin-left');\n liNode.style.removeProperty('margin-top');\n liNode.style.removeProperty('margin-bottom');\n node.firstElementChild.insertAdjacentElement('afterend', liNode);\n }\n }\n if (blockNode.nodeName === 'TD' || blockNode.nodeName === 'TH' || blockNode.nodeName === 'TR') {\n var tempSpan = createElement('span', { className: 'tempSpan' });\n range.insertNode(tempSpan);\n tempSpan.parentNode.replaceChild(node, tempSpan);\n }\n else {\n var nodeSelection = new NodeSelection();\n var currentNode = this.getNodeCollection(range, nodeSelection, node)[this.getNodeCollection(range, nodeSelection, node).length - 1];\n var splitedElm = void 0;\n if ((currentNode.nodeName === 'BR' || currentNode.nodeName === 'HR' ||\n (currentNode.nodeName === '#text' && !isNOU(currentNode.parentElement) && currentNode.parentElement.nodeName === 'LI')) &&\n (!isNOU(currentNode.parentElement) && currentNode.parentElement.textContent.trim().length === 0)) {\n splitedElm = currentNode;\n if (currentNode.parentElement.nodeName === 'LI' && !isNOU(currentNode.nextSibling) &&\n currentNode.nextSibling.nodeName === 'BR') {\n detach(currentNode.nextSibling);\n }\n }\n else if ((currentNode.nodeName === '#text' || currentNode.nodeName === 'BR') && !isNOU(currentNode.parentElement) &&\n (currentNode.parentElement.nodeName === 'LI' || (blockNode === editNode && currentNode.parentElement === blockNode)) &&\n currentNode.parentElement.textContent.trim().length > 0) {\n splitedElm = currentNode;\n if (currentNode.parentElement.nodeName === 'LI' && !isNOU(currentNode.nextSibling) &&\n currentNode.nextSibling.nodeName === 'BR') {\n detach(currentNode.nextSibling);\n }\n if (!range.collapsed) {\n range.deleteContents();\n }\n range.insertNode(node);\n this.contentsDeleted = true;\n return;\n }\n else {\n splitedElm = nodeCutter.GetSpliceNode(range, blockNode);\n }\n splitedElm.parentNode.replaceChild(node, splitedElm);\n }\n }\n };\n InsertHtml.cursorPos = function (lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction) {\n lastSelectionNode.classList.add('lastNode');\n editNode.innerHTML = updateTextNode(editNode.innerHTML, enterAction);\n lastSelectionNode = editNode.querySelector('.lastNode');\n if (!isNOU(lastSelectionNode)) {\n this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);\n lastSelectionNode.classList.remove('lastNode');\n if (lastSelectionNode.classList.length === 0) {\n lastSelectionNode.removeAttribute('class');\n }\n }\n };\n InsertHtml.imageFocus = function (node, nodeSelection, docElement) {\n var focusNode = document.createTextNode(' ');\n node.parentNode.insertBefore(focusNode, node.nextSibling);\n nodeSelection.setSelectionText(docElement, node.nextSibling, node.nextSibling, 0, 0);\n };\n // eslint-disable-next-line\n InsertHtml.getImmediateBlockNode = function (node, editNode) {\n do {\n node = node.parentNode;\n } while (node && CONSTANT.BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) < 0);\n return node;\n };\n InsertHtml.removingComments = function (elm) {\n var innerElement = elm.innerHTML;\n innerElement = innerElement.replace(//g, '');\n elm.innerHTML = innerElement;\n };\n InsertHtml.findDetachEmptyElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement)) {\n if (element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true') {\n removableElement = this.findDetachEmptyElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n }\n else {\n removableElement = null;\n }\n return removableElement;\n };\n InsertHtml.removeEmptyElements = function (element) {\n var emptyElements = element.querySelectorAll(':empty');\n for (var i = 0; i < emptyElements.length; i++) {\n var lineWithDiv = true;\n if (emptyElements[i].tagName === 'DIV') {\n lineWithDiv = emptyElements[i].style.borderBottom === 'none' ||\n emptyElements[i].style.borderBottom === '' ? true : false;\n }\n if (CONSTANT.SELF_CLOSING_TAGS.indexOf(emptyElements[i].tagName.toLowerCase()) < 0 && lineWithDiv) {\n var detachableElement = this.findDetachEmptyElem(emptyElements[i]);\n if (!isNOU(detachableElement)) {\n detach(detachableElement);\n }\n }\n }\n };\n InsertHtml.closestEle = function (element, editNode) {\n var el = element;\n while (el && el.nodeType === 1) {\n if (el.parentNode === editNode ||\n (!isNOU(el.parentNode.tagName) &&\n CONSTANT.IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n };\n /**\n * Insert method\n *\n * @hidden\n\n */\n InsertHtml.inlineNode = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',\n 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',\n 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',\n 'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'sub', 'sup', 'svg',\n 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];\n InsertHtml.contentsDeleted = false;\n return InsertHtml;\n}());\nexport { InsertHtml };\n","import * as CONSTANT from './../base/constant';\nimport { NodeSelection } from '../../selection/selection';\nimport { NodeCutter } from './nodecutter';\nimport { InsertHtml } from './inserthtml';\nimport { createElement, isNullOrUndefined as isNOU, closest } from '@syncfusion/ej2-base';\n/**\n * Link internal component\n *\n * @hidden\n\n */\nvar LinkCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the editor manager\n * @hidden\n\n */\n function LinkCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n LinkCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.LINK, this.linkCommand, this);\n };\n LinkCommand.prototype.linkCommand = function (e) {\n switch (e.value.toString().toLocaleLowerCase()) {\n case 'createlink':\n case 'editlink':\n this.createLink(e);\n break;\n case 'openlink':\n this.openLink(e);\n break;\n case 'removelink':\n this.removeLink(e);\n break;\n }\n };\n LinkCommand.prototype.createLink = function (e) {\n var closestAnchor = (!isNOU(e.item.selectParent) && e.item.selectParent.length > 0) &&\n closest(e.item.selectParent[0], 'a');\n closestAnchor = !isNOU(closestAnchor) ? closestAnchor :\n (!isNOU(e.item.selectParent) && e.item.selectParent.length > 0) ? (e.item.selectParent[0]) : null;\n if (!isNOU(closestAnchor) && closestAnchor.tagName === 'A') {\n var anchorEle = closestAnchor;\n var linkText = '';\n if (!isNOU(e.item.url)) {\n anchorEle.setAttribute('href', e.item.url);\n }\n if (!isNOU(e.item.title)) {\n anchorEle.setAttribute('title', e.item.title);\n }\n if (!isNOU(e.item.text) && e.item.text !== '') {\n linkText = anchorEle.innerText;\n anchorEle.innerText = e.item.text;\n }\n if (!isNOU(e.item.target)) {\n anchorEle.setAttribute('target', e.item.target);\n }\n else {\n anchorEle.removeAttribute('target');\n }\n if (linkText === e.item.text) {\n e.item.selection.setSelectionText(this.parent.currentDocument, anchorEle, anchorEle, 1, 1);\n e.item.selection.restore();\n }\n else {\n var startIndex = e.item.action === 'Paste' ? anchorEle.childNodes[0].textContent.length : 0;\n e.item.selection.setSelectionText(this.parent.currentDocument, anchorEle.childNodes[0], anchorEle.childNodes[0], startIndex, anchorEle.childNodes[0].textContent.length);\n }\n }\n else {\n var domSelection = new NodeSelection();\n var range = domSelection.getRange(this.parent.currentDocument);\n if (range.endContainer.nodeName === '#text' && range.startContainer.textContent.length === (range.endOffset + 1) &&\n range.endContainer.textContent.charAt(range.endOffset) === ' ' && (!isNOU(range.endContainer.nextSibling) && range.endContainer.nextSibling.nodeName === 'A')) {\n domSelection.setSelectionText(this.parent.currentDocument, range.startContainer, range.endContainer, range.startOffset, range.endOffset + 1);\n range = domSelection.getRange(this.parent.currentDocument);\n }\n var text = isNOU(e.item.text) ? true : e.item.text.replace(/ /g, '').localeCompare(range.toString()\n .replace(/\\n/g, ' ').replace(/ /g, '')) < 0;\n if (e.event && e.event.type === 'keydown' && (e.event.keyCode === 32\n || e.event.keyCode === 13) || e.item.action === 'Paste' || range.collapsed || text) {\n var anchor = this.createAchorNode(e);\n anchor.innerText = e.item.text === '' ? e.item.url : e.item.text;\n e.item.selection.restore();\n InsertHtml.Insert(this.parent.currentDocument, anchor, this.parent.editableElement);\n if (e.event && e.event.type === 'keydown' && (e.event.keyCode === 32\n || e.event.keyCode === 13)) {\n var startContainer = e.item.selection.range.startContainer;\n startContainer.textContent = this.removeText(startContainer.textContent, e.item.text);\n }\n else {\n var startIndex = e.item.action === 'Paste' ? anchor.childNodes[0].textContent.length : 0;\n e.item.selection.setSelectionText(this.parent.currentDocument, anchor.childNodes[0], anchor.childNodes[0], startIndex, anchor.childNodes[0].textContent.length);\n }\n }\n else {\n this.createLinkNode(e);\n }\n }\n if (e.callBack) {\n e.callBack({\n requestType: 'Links',\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n LinkCommand.prototype.createLinkNode = function (e) {\n var domSelection = new NodeSelection();\n var nodeCutter = new NodeCutter();\n var range = domSelection.getRange(this.parent.currentDocument);\n var nodes = this.getSelectionNodes(domSelection.getNodeCollection(range));\n var save = domSelection.save(range, this.parent.currentDocument);\n var txtArray = [];\n var inlineNodes = [];\n var currentNode;\n var removeNodes = [];\n var anchorNodes = [];\n var finalinlineNodes = [];\n var cloneNode;\n for (var index = 0; index < nodes.length; index++) {\n nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);\n txtArray[index] = nodes[index];\n }\n for (var i = 0; i < txtArray.length; i++) {\n var check = true;\n currentNode = txtArray[i];\n while (check === true) {\n if (currentNode.parentNode.nodeName === 'A') {\n var anchorEle = currentNode.parentNode;\n currentNode.parentNode.parentNode.insertBefore(anchorEle.firstChild, anchorEle);\n currentNode.parentNode.removeChild(anchorEle);\n }\n if (this.isBlockNode(currentNode.parentNode) || txtArray.length === 0 || i === 0 || i === txtArray.length - 1\n || range.startContainer.nodeType === 3) {\n inlineNodes[i] = currentNode;\n check = false;\n }\n else {\n currentNode = currentNode.parentNode;\n }\n }\n }\n for (var i = 0, j_1 = 0; i < inlineNodes.length; i++) {\n if (i === 0) {\n finalinlineNodes[j_1] = inlineNodes[i];\n }\n if (inlineNodes.length > 1 && i < inlineNodes.length - 1) {\n if ((inlineNodes[i].parentElement === inlineNodes[i + 1].parentElement) &&\n (inlineNodes[i] === inlineNodes[i + 1])) {\n continue;\n }\n else {\n finalinlineNodes[j_1 + 1] = inlineNodes[i + 1];\n j_1++;\n }\n }\n }\n var j = 0;\n anchorNodes[j] = this.createAchorNode(e);\n for (var i = 0; i < finalinlineNodes.length; i++) {\n if (i === 0) {\n cloneNode = finalinlineNodes[i].cloneNode(true);\n anchorNodes[i].appendChild(cloneNode);\n }\n if (i < finalinlineNodes.length - 1) {\n if (finalinlineNodes[i].parentNode === finalinlineNodes[i + 1].parentNode) {\n var cln = finalinlineNodes[i + 1].cloneNode(true);\n anchorNodes[j].appendChild(cln);\n }\n else {\n j = j + 1;\n anchorNodes[j] = this.createAchorNode(e);\n cloneNode = finalinlineNodes[i + 1].cloneNode(true);\n anchorNodes[j].appendChild(cloneNode);\n }\n }\n }\n this.parent.nodeSelection.setRange(document, save.range);\n for (var i = 0, j_2 = 0, k = 0; i <= finalinlineNodes.length; i++) {\n if (i === 0) {\n finalinlineNodes[i].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i].nextSibling);\n if (this.parent.domNode.blockNodes().length === 1) {\n this.parent.nodeSelection.setSelectionNode(this.parent.currentDocument, anchorNodes[j_2]);\n }\n removeNodes[k] = finalinlineNodes[i];\n k++;\n }\n if (i < finalinlineNodes.length - 1) {\n if (finalinlineNodes[i].parentNode === finalinlineNodes[i + 1].parentNode) {\n removeNodes[k] = finalinlineNodes[i + 1];\n k++;\n }\n else {\n j_2 = j_2 + 1;\n finalinlineNodes[i + 1].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i + 1]);\n removeNodes[k] = finalinlineNodes[i + 1];\n k++;\n }\n }\n }\n for (var i = 0; i < removeNodes.length; i++) {\n if (removeNodes[i].parentNode) {\n removeNodes[i].parentNode.removeChild(removeNodes[i]);\n }\n }\n };\n LinkCommand.prototype.createAchorNode = function (e) {\n var anchorEle = createElement('a', {\n className: 'e-rte-anchor',\n attrs: {\n href: e.item.url,\n title: isNOU(e.item.title) || e.item.title === '' ? e.item.url : e.item.title\n }\n });\n if (!isNOU(e.item.target)) {\n anchorEle.setAttribute('target', e.item.target);\n }\n return anchorEle;\n };\n LinkCommand.prototype.getSelectionNodes = function (nodeCollection) {\n nodeCollection = nodeCollection.reverse();\n for (var index = 0; index < nodeCollection.length; index++) {\n if (nodeCollection[index].nodeType !== 3 || nodeCollection[index].textContent.trim() === '') {\n if (nodeCollection[index].nodeName !== 'IMG') {\n nodeCollection.splice(index, 1);\n index--;\n }\n }\n }\n return nodeCollection.reverse();\n };\n LinkCommand.prototype.isBlockNode = function (element) {\n return (!!element && (element.nodeType === Node.ELEMENT_NODE && CONSTANT.BLOCK_TAGS.indexOf(element.tagName.toLowerCase()) >= 0));\n };\n LinkCommand.prototype.removeText = function (text, val) {\n var arr = text.split(' ');\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === val) {\n arr.splice(i, 1);\n i--;\n }\n }\n return arr.join(' ') + ' ';\n };\n LinkCommand.prototype.openLink = function (e) {\n document.defaultView.open(e.item.url, e.item.target);\n this.callBack(e);\n };\n LinkCommand.prototype.removeLink = function (e) {\n var blockNodes = this.parent.domNode.blockNodes();\n if (blockNodes.length < 2) {\n this.parent.domNode.setMarker(e.item.selection);\n var closestAnchor = closest(e.item.selectParent[0], 'a');\n var selectParent = closestAnchor ? closestAnchor : e.item.selectParent[0];\n var parent_1 = selectParent.parentNode;\n var child = [];\n for (; selectParent.firstChild; null) {\n child.push(parent_1.insertBefore(selectParent.firstChild, selectParent));\n }\n parent_1.removeChild(selectParent);\n if (child && child.length === 1) {\n e.item.selection.startContainer = e.item.selection.getNodeArray(child[child.length - 1], true);\n e.item.selection.endContainer = e.item.selection.startContainer;\n }\n e.item.selection = this.parent.domNode.saveMarker(e.item.selection);\n }\n else {\n for (var i = 0; i < blockNodes.length; i++) {\n var linkNode = blockNodes[i].querySelectorAll('a');\n for (var j = 0; j < linkNode.length; j++) {\n if (document.getSelection().containsNode(linkNode[j], true)) {\n linkNode[j].outerHTML = linkNode[j].innerHTML;\n }\n }\n }\n }\n e.item.selection.restore();\n this.callBack(e);\n };\n LinkCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return LinkCommand;\n}());\nexport { LinkCommand };\n","import * as CONSTANT from './../base/constant';\nimport { setStyleAttribute, closest } from '@syncfusion/ej2-base';\nimport * as EVENTS from './../../common/constant';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\n/**\n * Formats internal component\n *\n * @hidden\n\n */\nvar Alignments = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element.\n * @returns {void}\n * @hidden\n\n */\n function Alignments(parent) {\n this.alignments = {\n 'JustifyLeft': 'left',\n 'JustifyCenter': 'center',\n 'JustifyRight': 'right',\n 'JustifyFull': 'justify'\n };\n this.parent = parent;\n this.addEventListener();\n }\n Alignments.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.ALIGNMENT_TYPE, this.applyAlignment, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n Alignments.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'justify-center':\n this.applyAlignment({ subCommand: 'JustifyCenter', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'justify-full':\n this.applyAlignment({ subCommand: 'JustifyFull', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'justify-left':\n this.applyAlignment({ subCommand: 'JustifyLeft', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'justify-right':\n this.applyAlignment({ subCommand: 'JustifyRight', callBack: e.callBack });\n e.event.preventDefault();\n break;\n }\n };\n Alignments.prototype.getTableNode = function (range) {\n var startNode = range.startContainer.nodeType === Node.ELEMENT_NODE\n ? range.startContainer : range.startContainer.parentNode;\n var cellNode = closest(startNode, 'td,th');\n return [cellNode];\n };\n Alignments.prototype.applyAlignment = function (e) {\n var isTableAlign = e.value === 'Table' ? true : false;\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n if (!isTableAlign) {\n this.parent.domNode.setMarker(save);\n var alignmentNodes = this.parent.domNode.blockNodes();\n for (var i = 0; i < alignmentNodes.length; i++) {\n var parentNode = alignmentNodes[i];\n setStyleAttribute(parentNode, { 'text-align': this.alignments[e.subCommand] });\n }\n var imageTags = this.parent.domNode.getImageTagInSelection();\n for (var i = 0; i < imageTags.length; i++) {\n var elementNode = [];\n elementNode.push(imageTags[i]);\n this.parent.imgObj.imageCommand({\n item: {\n selectNode: elementNode\n },\n subCommand: e.subCommand,\n value: e.subCommand,\n callBack: e.callBack,\n selector: e.selector\n });\n }\n this.parent.editableElement.focus();\n save = this.parent.domNode.saveMarker(save);\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n save.restore();\n }\n else {\n setStyleAttribute(this.getTableNode(range)[0], { 'text-align': this.alignments[e.subCommand] });\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: (isTableAlign ? this.getTableNode(range) : this.parent.domNode.blockNodes())\n });\n }\n };\n return Alignments;\n}());\nexport { Alignments };\n","import * as CONSTANT from './../base/constant';\nimport * as EVENTS from './../../common/constant';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\n/**\n * Indents internal component\n *\n * @hidden\n\n */\nvar Indents = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function Indents(parent) {\n this.indentValue = 20;\n this.parent = parent;\n this.addEventListener();\n }\n Indents.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.INDENT_TYPE, this.applyIndents, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n Indents.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'indents':\n this.applyIndents({ subCommand: 'Indent', callBack: e.callBack });\n e.event.preventDefault();\n break;\n case 'outdents':\n this.applyIndents({ subCommand: 'Outdent', callBack: e.callBack });\n e.event.preventDefault();\n break;\n }\n };\n Indents.prototype.applyIndents = function (e) {\n var editEle = this.parent.editableElement;\n var isRtl = editEle.classList.contains('e-rtl');\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);\n this.parent.domNode.setMarker(save);\n var indentsNodes = this.parent.domNode.blockNodes();\n var parentNodes = indentsNodes.slice();\n var listsNodes = [];\n for (var i = 0; i < parentNodes.length; i++) {\n if (parentNodes[i].tagName !== 'LI' && 'LI' === parentNodes[i].parentNode.tagName) {\n indentsNodes.splice(indentsNodes.indexOf(parentNodes[i]), 1);\n listsNodes.push(parentNodes[i].parentNode);\n }\n else if (parentNodes[i].tagName === 'LI') {\n indentsNodes.splice(indentsNodes.indexOf(parentNodes[i]), 1);\n listsNodes.push(parentNodes[i]);\n }\n }\n if (listsNodes.length > 0) {\n this.parent.observer.notify(EVENTS.KEY_DOWN_HANDLER, {\n event: {\n preventDefault: function () {\n return;\n },\n stopPropagation: function () {\n return;\n },\n shiftKey: (e.subCommand === 'Indent' ? false : true),\n which: 9,\n action: 'indent'\n },\n ignoreDefault: true\n });\n }\n for (var i = 0; i < indentsNodes.length; i++) {\n var parentNode = indentsNodes[i];\n var marginLeftOrRight = isRtl ? parentNode.style.marginRight : parentNode.style.marginLeft;\n var indentsValue = void 0;\n if (e.subCommand === 'Indent') {\n /* eslint-disable */\n indentsValue = marginLeftOrRight === '' ? this.indentValue + 'px' : parseInt(marginLeftOrRight, null) + this.indentValue + 'px';\n isRtl ? (parentNode.style.marginRight = indentsValue) : (parentNode.style.marginLeft = indentsValue);\n }\n else {\n indentsValue = (marginLeftOrRight === '' || marginLeftOrRight === '0px') ? '' : parseInt(marginLeftOrRight, null) - this.indentValue + 'px';\n isRtl ? (parentNode.style.marginRight = indentsValue) : (parentNode.style.marginLeft = indentsValue);\n /* eslint-enable */\n }\n }\n editEle.focus();\n if (isIDevice()) {\n setEditFrameFocus(editEle, e.selector);\n }\n save = this.parent.domNode.saveMarker(save);\n save.restore();\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.domNode.blockNodes()\n });\n }\n };\n return Indents;\n}());\nexport { Indents };\n","/**\n * Rich Text Editor classes defined here.\n */\n/**\n * @hidden\n\n */\nexport var CLASS_IMAGE_RIGHT = 'e-imgright';\nexport var CLASS_IMAGE_LEFT = 'e-imgleft';\nexport var CLASS_IMAGE_CENTER = 'e-imgcenter';\nexport var CLASS_VIDEO_RIGHT = 'e-video-right';\nexport var CLASS_VIDEO_LEFT = 'e-video-left';\nexport var CLASS_VIDEO_CENTER = 'e-video-center';\nexport var CLASS_IMAGE_BREAK = 'e-imgbreak';\nexport var CLASS_AUDIO_BREAK = 'e-audio-break';\nexport var CLASS_VIDEO_BREAK = 'e-video-break';\nexport var CLASS_CAPTION = 'e-img-caption';\nexport var CLASS_RTE_CAPTION = 'e-rte-img-caption';\nexport var CLASS_CAPTION_INLINE = 'e-caption-inline';\nexport var CLASS_IMAGE_INLINE = 'e-imginline';\nexport var CLASS_AUDIO_INLINE = 'e-audio-inline';\nexport var CLASS_CLICK_ELEM = 'e-clickelem';\nexport var CLASS_VIDEO_CLICK_ELEM = 'e-video-clickelem';\nexport var CLASS_AUDIO = 'e-rte-audio';\nexport var CLASS_VIDEO = 'e-rte-video';\nexport var CLASS_AUDIO_WRAP = 'e-audio-wrap';\nexport var CLASS_VIDEO_WRAP = 'e-video-wrap';\nexport var CLASS_EMBED_VIDEO_WRAP = 'e-embed-video-wrap';\nexport var CLASS_AUDIO_FOCUS = 'e-audio-focus';\nexport var CLASS_VIDEO_FOCUS = 'e-video-focus';\nexport var CLASS_VIDEO_INLINE = 'e-video-inline';\n","import { createElement, isNullOrUndefined as isNOU, detach, closest, addClass, removeClass, select, Browser, formatUnit } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport * as classes from './../base/classes';\nimport { InsertHtml } from './inserthtml';\n/**\n * Link internal component\n *\n * @hidden\n\n */\nvar ImageCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function ImageCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n ImageCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.IMAGE, this.imageCommand, this);\n };\n /**\n * imageCommand method\n *\n * @param {IHtmlItem} e - specifies the element\n * @returns {void}\n * @hidden\n\n */\n ImageCommand.prototype.imageCommand = function (e) {\n switch (e.value.toString().toLowerCase()) {\n case 'image':\n case 'replace':\n this.createImage(e);\n break;\n case 'insertlink':\n this.insertImageLink(e);\n break;\n case 'openimagelink':\n this.openImageLink(e);\n break;\n case 'editimagelink':\n this.editImageLink(e);\n break;\n case 'removeimagelink':\n this.removeImageLink(e);\n break;\n case 'remove':\n this.removeImage(e);\n break;\n case 'alttext':\n this.insertAltTextImage(e);\n break;\n case 'dimension':\n this.imageDimension(e);\n break;\n case 'caption':\n this.imageCaption(e);\n break;\n case 'justifyleft':\n this.imageJustifyLeft(e);\n break;\n case 'justifycenter':\n this.imageJustifyCenter(e);\n break;\n case 'justifyright':\n this.imageJustifyRight(e);\n break;\n case 'inline':\n this.imageInline(e);\n break;\n case 'break':\n this.imageBreak(e);\n break;\n }\n };\n ImageCommand.prototype.createImage = function (e) {\n var _this = this;\n var isReplaced = false;\n e.item.url = isNOU(e.item.url) || e.item.url === 'undefined' ? e.item.src : e.item.url;\n if (!isNOU(e.item.selectParent) && e.item.selectParent[0].tagName === 'IMG') {\n var imgEle = e.item.selectParent[0];\n this.setStyle(imgEle, e);\n isReplaced = true;\n }\n else {\n var imgElement = createElement('img');\n this.setStyle(imgElement, e);\n if (!isNOU(e.item.selection)) {\n e.item.selection.restore();\n }\n if (!isNOU(e.selector) && e.selector === 'pasteCleanupModule') {\n e.callBack({ requestType: 'Images',\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: [imgElement]\n });\n }\n else {\n InsertHtml.Insert(this.parent.currentDocument, imgElement, this.parent.editableElement);\n }\n }\n if (e.callBack && (isNOU(e.selector) || !isNOU(e.selector) && e.selector !== 'pasteCleanupModule')) {\n var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];\n var imgElm_1 = (e.value === 'Replace' || isReplaced) ? e.item.selectParent[0] :\n (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);\n imgElm_1.addEventListener('load', function () {\n if (e.value !== 'Replace' || !isReplaced) {\n e.callBack({\n requestType: 'Images',\n editorMode: 'HTML',\n event: e.event,\n range: _this.parent.nodeSelection.getRange(_this.parent.currentDocument),\n elements: [imgElm_1]\n });\n }\n });\n }\n };\n ImageCommand.prototype.setStyle = function (imgElement, e) {\n if (!isNOU(e.item.url)) {\n imgElement.setAttribute('src', e.item.url);\n }\n imgElement.setAttribute('class', 'e-rte-image' + (isNOU(e.item.cssClass) ? '' : ' ' + e.item.cssClass));\n if (!isNOU(e.item.altText)) {\n imgElement.setAttribute('alt', e.item.altText);\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.width)) {\n imgElement.setAttribute('width', this.calculateStyleValue(e.item.width.width));\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.height)) {\n imgElement.setAttribute('height', this.calculateStyleValue(e.item.height.height));\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.minWidth)) {\n imgElement.style.minWidth = this.calculateStyleValue(e.item.width.minWidth);\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.maxWidth)) {\n imgElement.style.maxWidth = this.calculateStyleValue(e.item.width.maxWidth);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.minHeight)) {\n imgElement.style.minHeight = this.calculateStyleValue(e.item.height.minHeight);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.maxHeight)) {\n imgElement.style.maxHeight = this.calculateStyleValue(e.item.height.maxHeight);\n }\n };\n ImageCommand.prototype.calculateStyleValue = function (value) {\n var styleValue;\n if (typeof (value) === 'string') {\n if (value.indexOf('px') || value.indexOf('%') || value.indexOf('auto')) {\n styleValue = value;\n }\n else {\n styleValue = value + 'px';\n }\n }\n else {\n styleValue = value + 'px';\n }\n return styleValue;\n };\n ImageCommand.prototype.insertImageLink = function (e) {\n var anchor = createElement('a', {\n attrs: {\n href: e.item.url\n }\n });\n if (e.item.selectNode[0].parentElement.classList.contains('e-img-wrap')) {\n e.item.selection.restore();\n anchor.setAttribute('contenteditable', 'true');\n }\n anchor.appendChild(e.item.selectNode[0]);\n if (!isNOU(e.item.target)) {\n anchor.setAttribute('target', e.item.target);\n }\n InsertHtml.Insert(this.parent.currentDocument, anchor, this.parent.editableElement);\n this.callBack(e);\n };\n ImageCommand.prototype.openImageLink = function (e) {\n document.defaultView.open(e.item.url, e.item.target);\n this.callBack(e);\n };\n ImageCommand.prototype.removeImageLink = function (e) {\n var selectParent = e.item.selectParent[0];\n if (selectParent.classList.contains('e-img-caption')) {\n var capImgWrap = select('.e-img-wrap', selectParent);\n var textEle = select('.e-img-inner', selectParent);\n var newTextEle = textEle.cloneNode(true);\n detach(select('a', selectParent));\n detach(textEle);\n capImgWrap.appendChild(e.item.insertElement);\n capImgWrap.appendChild(newTextEle);\n }\n else {\n detach(selectParent);\n if (Browser.isIE && e.item.selection) {\n e.item.selection.restore();\n }\n InsertHtml.Insert(this.parent.currentDocument, e.item.insertElement, this.parent.editableElement);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.editImageLink = function (e) {\n e.item.selectNode[0].parentElement.href = e.item.url;\n if (isNOU(e.item.target)) {\n e.item.selectNode[0].parentElement.removeAttribute('target');\n }\n else {\n e.item.selectNode[0].parentElement.target = e.item.target;\n }\n this.callBack(e);\n };\n ImageCommand.prototype.removeImage = function (e) {\n if (closest(e.item.selectNode[0], 'a')) {\n if (e.item.selectNode[0].parentElement.nodeName === 'A' && !isNOU(e.item.selectNode[0].parentElement.innerText)) {\n if (!isNOU(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION))) {\n detach(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION));\n }\n else {\n detach(e.item.selectNode[0]);\n }\n }\n else {\n detach(closest(e.item.selectNode[0], 'a'));\n }\n }\n else if (!isNOU(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION))) {\n detach(closest(e.item.selectNode[0], '.' + classes.CLASS_CAPTION));\n }\n else {\n detach(e.item.selectNode[0]);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.insertAltTextImage = function (e) {\n e.item.selectNode[0].setAttribute('alt', e.item.altText);\n this.callBack(e);\n };\n ImageCommand.prototype.imageDimension = function (e) {\n var selectNode = e.item.selectNode[0];\n selectNode.style.height = '';\n selectNode.style.width = '';\n if (e.item.width !== 'auto') {\n selectNode.style.width = formatUnit(e.item.width);\n }\n else {\n selectNode.removeAttribute('width');\n }\n if (e.item.height !== 'auto') {\n selectNode.style.height = formatUnit(e.item.height);\n }\n else {\n selectNode.removeAttribute('height');\n }\n this.callBack(e);\n };\n ImageCommand.prototype.imageCaption = function (e) {\n InsertHtml.Insert(this.parent.currentDocument, e.item.insertElement, this.parent.editableElement);\n this.callBack(e);\n };\n ImageCommand.prototype.imageJustifyLeft = function (e) {\n var selectNode = e.item.selectNode[0];\n if (!isNOU(selectNode)) {\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n }\n if (selectNode.parentElement.nodeName === 'A') {\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_RIGHT);\n addClass([selectNode.parentElement], classes.CLASS_IMAGE_LEFT);\n addClass([selectNode], classes.CLASS_IMAGE_LEFT);\n }\n else {\n addClass([selectNode], classes.CLASS_IMAGE_LEFT);\n }\n this.callBack(e);\n }\n };\n ImageCommand.prototype.imageJustifyCenter = function (e) {\n var selectNode = e.item.selectNode[0];\n if (!isNOU(selectNode)) {\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_CENTER);\n }\n if (selectNode.parentElement.nodeName === 'A') {\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_LEFT);\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_RIGHT);\n addClass([selectNode.parentElement], classes.CLASS_IMAGE_CENTER);\n addClass([selectNode], classes.CLASS_IMAGE_CENTER);\n }\n else {\n addClass([selectNode], classes.CLASS_IMAGE_CENTER);\n }\n this.callBack(e);\n }\n };\n ImageCommand.prototype.imageJustifyRight = function (e) {\n var selectNode = e.item.selectNode[0];\n if (!isNOU(selectNode)) {\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n }\n if (selectNode.parentElement.nodeName === 'A') {\n removeClass([selectNode.parentElement], classes.CLASS_IMAGE_LEFT);\n addClass([selectNode.parentElement], classes.CLASS_IMAGE_RIGHT);\n addClass([selectNode], classes.CLASS_IMAGE_RIGHT);\n }\n else {\n addClass([selectNode], classes.CLASS_IMAGE_RIGHT);\n }\n this.callBack(e);\n }\n };\n ImageCommand.prototype.imageInline = function (e) {\n var selectNode = e.item.selectNode[0];\n selectNode.removeAttribute('class');\n addClass([selectNode], 'e-rte-image');\n addClass([selectNode], classes.CLASS_IMAGE_INLINE);\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_BREAK);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_CENTER);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_CAPTION_INLINE);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.imageBreak = function (e) {\n var selectNode = e.item.selectNode[0];\n selectNode.removeAttribute('class');\n addClass([selectNode], classes.CLASS_IMAGE_BREAK);\n addClass([selectNode], 'e-rte-image');\n if (!isNOU(closest(selectNode, '.' + classes.CLASS_CAPTION))) {\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_CAPTION_INLINE);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_CENTER);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_LEFT);\n removeClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_RIGHT);\n addClass([closest(selectNode, '.' + classes.CLASS_CAPTION)], classes.CLASS_IMAGE_BREAK);\n }\n this.callBack(e);\n };\n ImageCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return ImageCommand;\n}());\nexport { ImageCommand };\n","import { createElement, isNullOrUndefined as isNOU, detach, addClass, Browser } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport * as classes from './../base/classes';\nimport { InsertHtml } from './inserthtml';\n/**\n * Audio internal component\n *\n * @hidden\n\n */\nvar AudioCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Audio plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function AudioCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n AudioCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.AUDIO, this.audioCommand, this);\n };\n /**\n * audioCommand method\n *\n * @param {IHtmlItem} e - specifies the element\n * @returns {void}\n * @hidden\n\n */\n AudioCommand.prototype.audioCommand = function (e) {\n var selectNode;\n var value = e.value.toString().toLowerCase();\n if (value === 'inline' || value === 'break' || value === 'audioremove') {\n selectNode = e.item.selectNode[0];\n }\n switch (value) {\n case 'audio':\n case 'audioreplace':\n this.createAudio(e);\n break;\n case 'inline':\n selectNode.removeAttribute('class');\n selectNode.closest('.' + classes.CLASS_AUDIO_WRAP).style.display = 'inline-block';\n addClass([selectNode], [classes.CLASS_AUDIO, classes.CLASS_AUDIO_INLINE, classes.CLASS_AUDIO_FOCUS]);\n this.callBack(e);\n break;\n case 'break':\n selectNode.removeAttribute('class');\n selectNode.closest('.' + classes.CLASS_AUDIO_WRAP).style.display = 'block';\n addClass([selectNode], [classes.CLASS_AUDIO_BREAK, classes.CLASS_AUDIO, classes.CLASS_AUDIO_FOCUS]);\n this.callBack(e);\n break;\n case 'audioremove':\n detach(selectNode);\n this.callBack(e);\n break;\n }\n };\n AudioCommand.prototype.createAudio = function (e) {\n var _this = this;\n var isReplaced = false;\n var wrapElement;\n if (!isNOU(e.item.selectParent) && e.item.selectParent[0].classList &&\n (e.item.selectParent[0].classList.contains(classes.CLASS_CLICK_ELEM) ||\n e.item.selectParent[0].classList.contains(classes.CLASS_AUDIO_WRAP))) {\n var audioEle = e.item.selectParent[0].querySelector('source');\n this.setStyle(audioEle, e);\n isReplaced = true;\n }\n else {\n wrapElement = createElement('span', { className: classes.CLASS_AUDIO_WRAP, attrs: { contentEditable: 'false', title: e.item.fileName } });\n var audElement = createElement('audio', { className: classes.CLASS_AUDIO + ' ' + classes.CLASS_AUDIO_INLINE, attrs: { controls: '' } });\n var sourceElement = createElement('source');\n var clickElement = createElement('span', { className: classes.CLASS_CLICK_ELEM });\n this.setStyle(sourceElement, e);\n audElement.appendChild(sourceElement);\n clickElement.appendChild(audElement);\n wrapElement.appendChild(clickElement);\n if (!isNOU(e.item.selection)) {\n e.item.selection.restore();\n }\n InsertHtml.Insert(this.parent.currentDocument, wrapElement, this.parent.editableElement);\n if (wrapElement.nextElementSibling === null) {\n var insertElem = createElement('br');\n wrapElement.parentNode.insertBefore(insertElem, wrapElement.nextSibling);\n }\n }\n if (e.callBack && (isNOU(e.selector) || !isNOU(e.selector) && e.selector !== 'pasteCleanupModule')) {\n var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];\n var audioElm_1 = (e.value === 'AudioReplace' || isReplaced) ? e.item.selectParent[0].querySelector('audio')\n : (Browser.isIE ? selectedNode : selectedNode.querySelector('audio'));\n audioElm_1.addEventListener('loadeddata', function () {\n if (e.value !== 'AudioReplace' || !isReplaced) {\n e.callBack({\n requestType: 'Audios',\n editorMode: 'HTML',\n event: e.event,\n range: _this.parent.nodeSelection.getRange(_this.parent.currentDocument),\n elements: [audioElm_1]\n });\n }\n });\n if (isReplaced) {\n audioElm_1.load();\n }\n }\n };\n AudioCommand.prototype.setStyle = function (sourceElement, e) {\n if (!isNOU(e.item.url)) {\n sourceElement.setAttribute('src', e.item.url);\n }\n sourceElement.type = e.item.fileName && e.item.fileName.split('.').length > 0 ?\n 'audio/' + e.item.fileName.split('.')[e.item.fileName.split('.').length - 1] :\n e.item.url && e.item.url.split('.').length > 0 ? 'audio/' + e.item.url.split('.')[e.item.url.split('.').length - 1] : '';\n };\n AudioCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return AudioCommand;\n}());\nexport { AudioCommand };\n","import { createElement, isNullOrUndefined as isNOU, detach, addClass, Browser, formatUnit } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport * as classes from './../base/classes';\nimport { InsertHtml } from './inserthtml';\n/**\n * Video internal component\n *\n * @hidden\n\n */\nvar VideoCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Video plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function VideoCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n VideoCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.VIDEO, this.videoCommand, this);\n };\n /**\n * videoCommand method\n *\n * @param {IHtmlItem} e - specifies the element\n * @returns {void}\n * @hidden\n\n */\n VideoCommand.prototype.videoCommand = function (e) {\n var selectNode;\n var videoWrapNode;\n var videoClickElem;\n var value = e.value.toString().toLowerCase();\n if (value !== 'video' && value !== 'videoreplace') {\n selectNode = e.item.selectNode[0];\n videoWrapNode = selectNode.closest('.' + classes.CLASS_EMBED_VIDEO_WRAP);\n videoClickElem = selectNode.closest('.' + classes.CLASS_VIDEO_CLICK_ELEM);\n }\n switch (value) {\n case 'video':\n case 'videoreplace':\n this.createVideo(e);\n break;\n case 'videodimension':\n this.videoDimension(e);\n break;\n case 'inline':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'inline-block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = '';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_INLINE, classes.CLASS_VIDEO_FOCUS]);\n this.callBack(e);\n break;\n case 'break':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = '';\n }\n addClass([selectNode], [classes.CLASS_VIDEO_BREAK, classes.CLASS_VIDEO, classes.CLASS_VIDEO_FOCUS]);\n this.callBack(e);\n break;\n case 'justifyleft':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = 'left';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_LEFT]);\n this.callBack(e);\n break;\n case 'justifycenter':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = '';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_CENTER]);\n this.callBack(e);\n break;\n case 'justifyright':\n selectNode.removeAttribute('class');\n if (videoWrapNode) {\n videoWrapNode.style.display = 'block';\n }\n if (videoClickElem) {\n selectNode.parentElement.style.cssFloat = 'right';\n }\n addClass([selectNode], [classes.CLASS_VIDEO, classes.CLASS_VIDEO_RIGHT]);\n this.callBack(e);\n break;\n case 'videoremove':\n detach(selectNode.parentElement);\n this.callBack(e);\n break;\n }\n };\n VideoCommand.prototype.createVideo = function (e) {\n var _this = this;\n var isReplaced = false;\n var wrapElement;\n var vidElement;\n var sourceElement;\n if (e.value === 'VideoReplace' && !isNOU(e.item.selectParent) && (e.item.selectParent[0].tagName === 'VIDEO')) {\n var videoEle = e.item.selectParent[0].querySelector('source');\n this.setStyle(videoEle, e, videoEle);\n isReplaced = true;\n }\n else if (e.value === 'VideoReplace' && !isNOU(e.item.selectParent) &&\n e.item.selectParent[0].classList &&\n e.item.selectParent[0].classList.contains(classes.CLASS_VIDEO_CLICK_ELEM)) {\n e.item.selectParent[0].innerHTML = e.item.fileName;\n this.setStyle(e.item.selectParent[0].firstElementChild, e, e.item.selectParent[0].firstElementChild);\n }\n else {\n if (!e.item.isEmbedUrl) {\n wrapElement = createElement('span', { className: classes.CLASS_VIDEO_WRAP, attrs: { contentEditable: 'false', title: e.item.fileName } });\n vidElement = createElement('video', { className: classes.CLASS_VIDEO + ' ' + classes.CLASS_VIDEO_INLINE, attrs: { controls: '' } });\n sourceElement = createElement('source');\n this.setStyle(sourceElement, e, vidElement);\n vidElement.appendChild(sourceElement);\n wrapElement.appendChild(vidElement);\n }\n else {\n wrapElement = createElement('span', { className: classes.CLASS_EMBED_VIDEO_WRAP, attrs: { contentEditable: 'false' } });\n var clickElement = createElement('span', { className: classes.CLASS_VIDEO_CLICK_ELEM });\n var temp = createElement('template');\n temp.innerHTML = e.item.fileName;\n clickElement.appendChild(temp.content);\n vidElement = sourceElement = clickElement.firstElementChild;\n this.setStyle(sourceElement, e, vidElement);\n wrapElement.appendChild(clickElement);\n }\n if (!isNOU(e.item.selection)) {\n e.item.selection.restore();\n }\n InsertHtml.Insert(this.parent.currentDocument, wrapElement, this.parent.editableElement);\n if (wrapElement.nextElementSibling === null) {\n var insertElem = createElement('br');\n wrapElement.parentNode.insertBefore(insertElem, wrapElement.nextSibling);\n }\n }\n if (e.callBack && (isNOU(e.selector) || !isNOU(e.selector) && e.selector !== 'pasteCleanupModule')) {\n var selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];\n var videoElm_1 = (e.value === 'VideoReplace' || isReplaced) ? !e.item.isEmbedUrl ? e.item.selectParent[0] : e.item.selectParent[0].querySelector('iframe')\n : (Browser.isIE ? selectedNode : !e.item.isEmbedUrl ? selectedNode.lastElementChild : selectedNode.querySelector('iframe'));\n videoElm_1.addEventListener(videoElm_1.tagName !== 'IFRAME' ? 'loadeddata' : 'load', function () {\n if (e.value !== 'VideoReplace' || !isReplaced) {\n if (e.item.isEmbedUrl && videoElm_1) {\n videoElm_1.classList.add('e-rte-embed-url');\n }\n e.callBack({\n requestType: 'Videos',\n editorMode: 'HTML',\n event: e.event,\n range: _this.parent.nodeSelection.getRange(_this.parent.currentDocument),\n elements: [videoElm_1]\n });\n }\n });\n if (isReplaced) {\n videoElm_1.load();\n }\n if (Browser.userAgent.indexOf('Firefox') !== -1) {\n vidElement.addEventListener('play', function () { _this.editAreaVideoClick(e); });\n vidElement.addEventListener('pause', function () { _this.editAreaVideoClick(e); });\n }\n }\n };\n VideoCommand.prototype.editAreaVideoClick = function (e) {\n e.callBack({\n requestType: 'VideosPlayPause',\n editorMode: 'HTML',\n event: e.event\n });\n };\n VideoCommand.prototype.setStyle = function (sourceElement, e, videoEle) {\n if (e.item.url !== '' && !isNOU(e.item.url)) {\n sourceElement.setAttribute('src', e.item.url);\n }\n if (!e.item.isEmbedUrl) {\n sourceElement.type = e.item.fileName && e.item.fileName.split('.').length > 0 ?\n 'video/' + e.item.fileName.split('.')[e.item.fileName.split('.').length - 1] :\n e.item.url && e.item.url.split('.').length > 0 ? 'video/' + e.item.url.split('.')[e.item.url.split('.').length - 1] : '';\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.width)) {\n videoEle.setAttribute('width', formatUnit(e.item.width.width));\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.height)) {\n videoEle.setAttribute('height', formatUnit(e.item.height.height));\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.minWidth)) {\n videoEle.style.minWidth = formatUnit(e.item.width.minWidth);\n }\n if (!isNOU(e.item.width) && !isNOU(e.item.width.maxWidth)) {\n videoEle.style.maxWidth = formatUnit(e.item.width.maxWidth);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.minHeight)) {\n videoEle.style.minHeight = formatUnit(e.item.height.minHeight);\n }\n if (!isNOU(e.item.height) && !isNOU(e.item.height.maxHeight)) {\n videoEle.style.maxHeight = formatUnit(e.item.height.maxHeight);\n }\n };\n VideoCommand.prototype.videoDimension = function (e) {\n var selectNode = !(e.item.selectNode[0].classList.contains(classes.CLASS_VIDEO_CLICK_ELEM)) ? e.item.selectNode[0] :\n e.item.selectNode[0].querySelector('iframe');\n selectNode.style.height = '';\n selectNode.style.width = '';\n if (e.item.width !== 'auto') {\n selectNode.style.width = formatUnit(e.item.width);\n }\n else {\n selectNode.removeAttribute('width');\n }\n if (e.item.height !== 'auto') {\n selectNode.style.height = formatUnit(e.item.height);\n }\n else {\n selectNode.removeAttribute('height');\n }\n this.callBack(e);\n };\n VideoCommand.prototype.callBack = function (e) {\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return VideoCommand;\n}());\nexport { VideoCommand };\n","import { createElement, closest, detach, Browser, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './../base/constant';\nimport { InsertHtml } from './inserthtml';\n/**\n * Link internal component\n *\n * @hidden\n\n */\nvar TableCommand = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function TableCommand(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n TableCommand.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.TABLE, this.createTable, this);\n this.parent.observer.on(CONSTANT.INSERT_ROW, this.insertRow, this);\n this.parent.observer.on(CONSTANT.INSERT_COLUMN, this.insertColumn, this);\n this.parent.observer.on(CONSTANT.DELETEROW, this.deleteRow, this);\n this.parent.observer.on(CONSTANT.DELETECOLUMN, this.deleteColumn, this);\n this.parent.observer.on(CONSTANT.REMOVETABLE, this.removeTable, this);\n this.parent.observer.on(CONSTANT.TABLEHEADER, this.tableHeader, this);\n this.parent.observer.on(CONSTANT.TABLE_VERTICAL_ALIGN, this.tableVerticalAlign, this);\n this.parent.observer.on(CONSTANT.TABLE_MERGE, this.cellMerge, this);\n this.parent.observer.on(CONSTANT.TABLE_HORIZONTAL_SPLIT, this.HorizontalSplit, this);\n this.parent.observer.on(CONSTANT.TABLE_VERTICAL_SPLIT, this.VerticalSplit, this);\n this.parent.observer.on(CONSTANT.TABLE_MOVE, this.tableMove, this);\n };\n TableCommand.prototype.createTable = function (e) {\n var table = createElement('table', { className: 'e-rte-table' });\n var tblBody = createElement('tbody');\n if (!isNOU(e.item.width.width)) {\n table.style.width = this.calculateStyleValue(e.item.width.width);\n }\n if (!isNOU(e.item.width.minWidth)) {\n table.style.minWidth = this.calculateStyleValue(e.item.width.minWidth);\n }\n if (!isNOU(e.item.width.maxWidth)) {\n table.style.maxWidth = this.calculateStyleValue(e.item.width.maxWidth);\n }\n var tdWid = parseInt(e.item.width.width, 10) > 100 ?\n 100 / e.item.columns : parseInt(e.item.width.width, 10) / e.item.columns;\n for (var i = 0; i < e.item.rows; i++) {\n var row = createElement('tr');\n for (var j = 0; j < e.item.columns; j++) {\n var cell = createElement('td');\n cell.appendChild(createElement('br'));\n cell.style.width = tdWid + '%';\n row.appendChild(cell);\n }\n tblBody.appendChild(row);\n }\n table.appendChild(tblBody);\n e.item.selection.restore();\n InsertHtml.Insert(this.parent.currentDocument, table, this.parent.editableElement);\n this.removeEmptyNode();\n e.item.selection.setSelectionText(this.parent.currentDocument, table.querySelector('td'), table.querySelector('td'), 0, 0);\n if (table.nextElementSibling === null) {\n var insertElem = void 0;\n if (e.enterAction === 'DIV') {\n insertElem = createElement('div');\n insertElem.appendChild(createElement('br'));\n }\n else if (e.enterAction === 'BR') {\n insertElem = createElement('br');\n }\n else {\n insertElem = createElement('p');\n insertElem.appendChild(createElement('br'));\n }\n this.insertAfter(insertElem, table);\n }\n table.querySelector('td').classList.add('e-cell-select');\n if (e.callBack) {\n e.callBack({\n requestType: 'Table',\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: [table]\n });\n }\n return table;\n };\n TableCommand.prototype.calculateStyleValue = function (value) {\n var styleValue;\n if (typeof (value) === 'string') {\n if (value.indexOf('px') || value.indexOf('%') || value.indexOf('auto')) {\n styleValue = value;\n }\n else {\n styleValue = value + 'px';\n }\n }\n else {\n styleValue = value + 'px';\n }\n return styleValue;\n };\n TableCommand.prototype.removeEmptyNode = function () {\n var emptyUl = this.parent.editableElement.querySelectorAll('ul:empty, ol:empty');\n for (var i = 0; i < emptyUl.length; i++) {\n detach(emptyUl[i]);\n }\n var emptyLiChild = this.parent.editableElement.querySelectorAll('li *:empty:not(img)');\n for (var i = 0; i < emptyLiChild.length; i++) {\n detach(emptyLiChild[i]);\n if (emptyLiChild.length === i + 1) {\n emptyLiChild = this.parent.editableElement.querySelectorAll('li *:empty:not(img)');\n i = -1;\n }\n }\n var emptyLi = this.parent.editableElement.querySelectorAll('li:empty');\n for (var i = 0; i < emptyLi.length; i++) {\n detach(emptyLi[i]);\n }\n };\n TableCommand.prototype.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n TableCommand.prototype.getSelectedCellMinMaxIndex = function (e) {\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n var a = 0;\n var minI = e.length;\n var maxI = 0;\n var minJ = e[0].length;\n var maxJ = 0;\n //eslint-disable-next-line\n for (var i = 0; a < selectedCells.length; a++) {\n var selectedCellIndex = this.getCorrespondingIndex(selectedCells[a], e);\n var minMaxIndex = this.FindIndex(selectedCellIndex[0], selectedCellIndex[1], e);\n //eslint-disable-next-line\n minI = Math.min(selectedCellIndex[0], minI),\n maxI = Math.max(minMaxIndex[0], maxI),\n minJ = Math.min(selectedCellIndex[1], minJ),\n maxJ = Math.max(minMaxIndex[1], maxJ);\n }\n return {\n startRow: minI,\n endRow: maxI,\n startColumn: minJ,\n endColumn: maxJ\n };\n };\n TableCommand.prototype.insertRow = function (e) {\n var isBelow = e.item.subCommand === 'InsertRowBefore' ? false : true;\n var selectedCell = e.item.selection.range.startContainer;\n if (!(selectedCell.nodeName === 'TH' || selectedCell.nodeName === 'TD')) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n if (selectedCell.nodeName.toLowerCase() === 'th' && e.item.subCommand === 'InsertRowBefore') {\n return;\n }\n this.curTable = closest(this.parent.nodeSelection.range.startContainer.parentElement, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length === 0) {\n var lastRow = this.curTable.rows[this.curTable.rows.length - 1];\n var cloneRow = lastRow.cloneNode(true);\n cloneRow.removeAttribute('rowspan');\n this.insertAfter(cloneRow, lastRow);\n }\n else {\n var allCells = this.getCorrespondingColumns();\n var minMaxIndex = this.getSelectedCellMinMaxIndex(allCells);\n var minVal = isBelow ? minMaxIndex.endRow : minMaxIndex.startRow;\n var newRow = createElement('tr');\n var isHeaderSelect = this.curTable.querySelectorAll('th.e-cell-select').length > 0;\n for (var i = 0; i < allCells[minVal].length; i++) {\n // eslint-disable-next-line max-len\n if (isBelow && minVal < allCells.length - 1 && allCells[minVal][i] === allCells[minVal + 1][i] ||\n !isBelow && 0 < minVal && allCells[minVal][i] === allCells[minVal - 1][i]) {\n if (0 === i || 0 < i && allCells[minVal][i] !== allCells[minVal][i - 1]) {\n allCells[minVal][i].setAttribute('rowspan', (parseInt(allCells[minVal][i].getAttribute('rowspan'), 10) + 1).toString());\n }\n }\n else {\n var tdElement = createElement('td');\n tdElement.appendChild(createElement('br'));\n newRow.appendChild(tdElement);\n tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? allCells[(minVal + 1)] ? (minVal + 1) : minVal : minVal][i].getAttribute('style'));\n }\n }\n // eslint-disable-next-line\n var selectedRow = void 0;\n if (isHeaderSelect && isBelow) {\n selectedRow = this.curTable.querySelector('tbody').childNodes[0];\n }\n else {\n selectedRow = this.curTable.rows[minVal];\n }\n // eslint-disable-next-line\n (e.item.subCommand === 'InsertRowBefore') ? selectedRow.parentElement.insertBefore(newRow, selectedRow) :\n (isHeaderSelect ? selectedRow.parentElement.insertBefore(newRow, selectedRow) :\n this.insertAfter(newRow, selectedRow));\n }\n e.item.selection.setSelectionText(this.parent.currentDocument, e.item.selection.range.startContainer, e.item.selection.range.startContainer, 0, 0);\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.insertColumn = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n if (!(selectedCell.nodeName === 'TH' || selectedCell.nodeName === 'TD')) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n var curRow = closest(selectedCell, 'tr');\n var curCell;\n var allRows = closest((curRow), 'table').rows;\n var colIndex = Array.prototype.slice.call(curRow.querySelectorAll(':scope > td, :scope > th')).indexOf(selectedCell);\n var previousWidth = parseInt(e.item.width, 10) / (curRow.querySelectorAll(':scope > td, :scope > th').length);\n var currentWidth = parseInt(e.item.width, 10) / (curRow.querySelectorAll(':scope > td, :scope > th').length + 1);\n var currentTabElm = closest(curRow, 'table');\n var thTdElm = closest(curRow, 'table').querySelectorAll('th,td');\n for (var i = 0; i < thTdElm.length; i++) {\n thTdElm[i].dataset.oldWidth = (thTdElm[i].offsetWidth / currentTabElm.offsetWidth * 100) + '%';\n }\n for (var i = 0; i < allRows.length; i++) {\n curCell = allRows[i].querySelectorAll(':scope > td, :scope > th')[colIndex];\n var colTemplate = curCell.cloneNode(true);\n colTemplate.innerHTML = '';\n colTemplate.appendChild(createElement('br'));\n colTemplate.removeAttribute('class');\n colTemplate.removeAttribute('colspan');\n colTemplate.removeAttribute('rowspan');\n // eslint-disable-next-line\n (e.item.subCommand === 'InsertColumnLeft') ? curCell.parentElement.insertBefore(colTemplate, curCell) :\n this.insertAfter(colTemplate, curCell);\n colTemplate.style.width = currentWidth.toFixed(4) + '%';\n delete colTemplate.dataset.oldWidth;\n }\n for (var i = 0; i < thTdElm.length; i++) {\n thTdElm[i].style.width = (Number(thTdElm[i].dataset.oldWidth.split('%')[0]) * currentWidth / previousWidth).toFixed(4) + '%';\n delete thTdElm[i].dataset.oldWidth;\n }\n e.item.selection.setSelectionText(this.parent.currentDocument, selectedCell, selectedCell, 0, 0);\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.deleteColumn = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n if (selectedCell.nodeType === 3) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n var tBodyHeadEle = closest(selectedCell, selectedCell.tagName === 'TH' ? 'thead' : 'tbody');\n var rowIndex = tBodyHeadEle && Array.prototype.indexOf.call(tBodyHeadEle.childNodes, selectedCell.parentNode);\n this.curTable = closest(selectedCell, 'table');\n var curRow = closest(selectedCell, 'tr');\n if (curRow.querySelectorAll('th,td').length === 1) {\n e.item.selection.restore();\n detach(closest(selectedCell.parentElement, 'table'));\n }\n else {\n var deleteIndex = void 0;\n var allCells = this.getCorrespondingColumns();\n //eslint-disable-next-line\n var selectedMinMaxIndex = this.getSelectedCellMinMaxIndex(allCells);\n var minCol = selectedMinMaxIndex.startColumn;\n var maxCol = selectedMinMaxIndex.endColumn;\n for (var i = 0; i < allCells.length; i++) {\n var currentRow = allCells[i];\n for (var j = 0; j < currentRow.length; j++) {\n var currentCell = currentRow[j];\n //eslint-disable-next-line\n var currentCellIndex = this.getCorrespondingIndex(currentCell, allCells);\n var colSpanVal = parseInt(currentCell.getAttribute('colspan'), 10) || 1;\n if (currentCellIndex[1] + (colSpanVal - 1) >= minCol && currentCellIndex[1] <= maxCol) {\n if (colSpanVal > 1) {\n currentCell.setAttribute('colspan', (colSpanVal - 1).toString());\n }\n else {\n detach(currentCell);\n deleteIndex = j;\n if (Browser.isIE) {\n e.item.selection.setSelectionText(this.parent.currentDocument, this.curTable.querySelector('td'), this.curTable.querySelector('td'), 0, 0);\n this.curTable.querySelector('td, th').classList.add('e-cell-select');\n }\n }\n }\n }\n }\n if (deleteIndex > -1) {\n var rowHeadEle = tBodyHeadEle.children[rowIndex];\n var nextFocusCell = rowHeadEle &&\n rowHeadEle.children[(deleteIndex <= rowHeadEle.children.length - 1 ? deleteIndex : deleteIndex - 1)];\n if (nextFocusCell) {\n e.item.selection.setSelectionText(this.parent.currentDocument, nextFocusCell, nextFocusCell, 0, 0);\n nextFocusCell.classList.add('e-cell-select');\n }\n }\n }\n if (e.callBack) {\n var sContainer = this.parent.nodeSelection.getRange(this.parent.currentDocument).startContainer;\n if (sContainer.nodeName !== 'TD') {\n var startChildLength = this.parent.nodeSelection.getRange(this.parent.currentDocument).startOffset;\n var focusNode = sContainer.children[startChildLength];\n if (focusNode) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, focusNode, 0);\n }\n }\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.deleteRow = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n if (selectedCell.nodeType === 3) {\n selectedCell = closest(selectedCell.parentElement, 'td,th');\n }\n var colIndex = Array.prototype.indexOf.call(selectedCell.parentNode.childNodes, selectedCell);\n this.curTable = closest(selectedCell, 'table');\n var currentRow;\n var allCells = this.getCorrespondingColumns();\n var minMaxIndex = this.getSelectedCellMinMaxIndex(allCells);\n var maxI;\n var j;\n if (this.curTable.rows.length === 1) {\n e.item.selection.restore();\n detach(closest(selectedCell.parentElement, 'table'));\n }\n else {\n for (maxI = minMaxIndex.endRow; maxI >= minMaxIndex.startRow; maxI--) {\n currentRow = this.curTable.rows[maxI];\n for (j = 0; j < allCells[maxI].length; j++) {\n if (j === 0 || allCells[maxI][j] !== allCells[maxI][j - 1]) {\n if (1 < parseInt(allCells[maxI][j].getAttribute('rowspan'), 10)) {\n var rowSpanVal = parseInt(allCells[maxI][j].getAttribute('rowspan'), 10) - 1;\n /* eslint-disable */\n if (1 === rowSpanVal) {\n allCells[maxI][j].removeAttribute('rowspan');\n var cell = this.getMergedRow(this.getCorrespondingColumns())[j];\n if (cell) {\n var cloneNode = cell.cloneNode(true);\n cloneNode.innerHTML = '
    ';\n if (cell.parentElement) {\n cell.parentElement.insertBefore(cloneNode, cell);\n }\n }\n }\n else {\n allCells[maxI][j].setAttribute('rowspan', rowSpanVal.toString());\n }\n /* eslint-enable */\n }\n }\n // eslint-disable-next-line max-len\n if (maxI < allCells.length - 1 && allCells[maxI][j] === allCells[maxI + 1][j] && (0 === maxI ||\n allCells[maxI][j] !== allCells[maxI - 1][j])) {\n var element = allCells[maxI][j];\n var index = void 0;\n // eslint-disable-next-line max-len\n for (index = j; 0 < index && allCells[maxI][index] === allCells[maxI][index - 1]; index--) {\n if (index === 0) {\n this.curTable.rows[maxI + 1].prepend(element);\n }\n else {\n allCells[maxI + 1][index - 1].insertAdjacentElement('afterend', element);\n }\n }\n }\n }\n var deleteIndex = currentRow.rowIndex;\n this.curTable.deleteRow(deleteIndex);\n var focusTrEle = !isNOU(this.curTable.rows[deleteIndex]) ? this.curTable.querySelectorAll('tbody tr')[deleteIndex]\n : this.curTable.querySelectorAll('tbody tr')[deleteIndex - 1];\n var nextFocusCell = focusTrEle && focusTrEle.querySelectorAll('td')[colIndex];\n if (nextFocusCell) {\n e.item.selection.setSelectionText(this.parent.currentDocument, nextFocusCell, nextFocusCell, 0, 0);\n nextFocusCell.classList.add('e-cell-select');\n }\n else {\n e.item.selection.setSelectionText(this.parent.currentDocument, this.curTable.querySelector('td'), this.curTable.querySelector('td'), 0, 0);\n this.curTable.querySelector('td, th').classList.add('e-cell-select');\n }\n }\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.getMergedRow = function (cells) {\n var mergedRow;\n for (var i = 0; i < cells.length; i++) {\n if (cells[i].length !== this.curTable.rows[0].childNodes.length) {\n mergedRow = cells[i];\n }\n }\n return mergedRow;\n };\n TableCommand.prototype.removeTable = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n selectedCell = (selectedCell.nodeType === 3) ? selectedCell.parentNode : selectedCell;\n var selectedTable = closest(selectedCell.parentElement, 'table');\n if (selectedTable) {\n e.item.selection.restore();\n detach(selectedTable);\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.tableHeader = function (e) {\n var headerExit = false;\n var selectedCell = e.item.selection.range.startContainer;\n selectedCell = (selectedCell.nodeType === 3) ? selectedCell.parentNode : selectedCell;\n var table = closest(selectedCell.parentElement, 'table');\n [].slice.call(table.childNodes).forEach(function (el) {\n if (el.nodeName === 'THEAD') {\n headerExit = true;\n }\n });\n if (table && !headerExit) {\n var cellCount = table.querySelector('tr').childElementCount;\n var colSpanCount = 0;\n for (var i = 0; i < cellCount; i++) {\n colSpanCount = colSpanCount + (parseInt(table.querySelector('tr').children[i].getAttribute('colspan'), 10) || 1);\n }\n var header = table.createTHead();\n var row = header.insertRow(0);\n for (var j = 0; j < colSpanCount; j++) {\n var th = createElement('th');\n th.appendChild(createElement('br'));\n row.appendChild(th);\n }\n }\n else {\n table.deleteTHead();\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.tableVerticalAlign = function (e) {\n if (e.item.subCommand === 'AlignTop') {\n e.item.tableCell.style.verticalAlign = 'top';\n }\n else if (e.item.subCommand === 'AlignMiddle') {\n e.item.tableCell.style.verticalAlign = 'middle';\n }\n else {\n e.item.tableCell.style.verticalAlign = 'bottom';\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.cellMerge = function (e) {\n if (isNOU(this.curTable)) {\n this.curTable = closest(this.parent.nodeSelection.range.startContainer.parentElement, 'table');\n }\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n if (selectedCells.length < 2) {\n return;\n }\n this.mergeCellContent();\n var minMaxIndexes = this.getSelectedMinMaxIndexes(this.getCorrespondingColumns());\n var firstCell = selectedCells[0];\n var rowSelectedCells = firstCell.parentElement.querySelectorAll('.e-cell-select');\n if (minMaxIndexes.startColumn < minMaxIndexes.endColumn) {\n firstCell.setAttribute('colspan', (minMaxIndexes.endColumn - minMaxIndexes.startColumn + 1).toString());\n }\n if (minMaxIndexes.startRow < minMaxIndexes.endRow) {\n firstCell.setAttribute('rowspan', (minMaxIndexes.endRow - minMaxIndexes.startRow + 1).toString());\n }\n var totalWidth = 0;\n for (var j = rowSelectedCells.length - 1; j >= 0; j--) {\n totalWidth = totalWidth + parseFloat(rowSelectedCells[j].style.width);\n }\n firstCell.style.width = totalWidth + '%';\n for (var i = 1; i <= selectedCells.length - 1; i++) {\n detach(selectedCells[i]);\n }\n for (var i = 0; i < this.curTable.rows.length; i++) {\n if (this.curTable.rows[i].innerHTML === '') {\n detach(this.curTable.rows[i]);\n }\n }\n this.updateRowSpanStyle(minMaxIndexes.startRow, minMaxIndexes.endRow, this.getCorrespondingColumns());\n this.updateColSpanStyle(minMaxIndexes.startColumn, minMaxIndexes.endColumn, this.getCorrespondingColumns());\n e.item.selection.setSelectionText(this.parent.currentDocument, e.item.selection.range.startContainer, e.item.selection.range.startContainer, 0, 0);\n if (this.parent.nodeSelection && firstCell) {\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, \n // eslint-disable-next-line\n firstCell, 0);\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.updateColSpanStyle = function (min, max, elements) {\n var colValue;\n var colIndex;\n var colMin;\n var index = 0;\n var attrValue;\n var count = 0;\n var eleArray = elements;\n //eslint-disable-next-line\n if (min < (max = Math.min(max, eleArray[0].length - 1))) {\n for (colIndex === min; colIndex <= max; colIndex++) {\n // eslint-disable-next-line\n if (!(min < colIndex && eleArray[0][colIndex] === eleArray[0][colIndex - 1]) && 1 < (index =\n Math.min(parseInt(eleArray[0][colIndex].getAttribute('colspan'), 10) || 1, max - min + 1)) &&\n eleArray[0][colIndex] === eleArray[0][colIndex + 1]) {\n for (count = index - 1, colValue = 1; colValue < eleArray.length; colValue++) {\n if (eleArray[colValue][colIndex] !== eleArray[colValue - 1][colIndex]) {\n /* eslint-disable */\n for (colMin = colIndex; colMin < colIndex + index; colMin++) {\n if (1 < (attrValue = parseInt(eleArray[colValue][colMin].getAttribute('colspan'), 10) || 1) &&\n eleArray[colValue][colMin] === eleArray[colValue][colMin + 1]) {\n colMin += count = Math.min(count, attrValue - 1);\n }\n else if (!(count = Math.max(0, count - 1))) {\n break;\n }\n /* eslint-enable */\n }\n }\n if (!count) {\n break;\n }\n }\n }\n }\n if (count) {\n this.updateCellAttribute(eleArray, count, 'colspan', 0, eleArray.length - 1, min, max);\n }\n }\n };\n TableCommand.prototype.updateRowSpanStyle = function (min, max, ele) {\n var rowValue;\n var colIndex;\n var rowMin;\n var index = 0;\n var attrValue;\n var count = 0;\n var eleArray = ele;\n // eslint-disable-next-line\n if (min < (max = Math.min(max, eleArray.length - 1))) {\n for (rowValue = min; rowValue <= max; rowValue++) {\n // eslint-disable-next-line\n if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0])\n // eslint-disable-next-line no-cond-assign\n && eleArray[rowValue][0] && 1 < (index = Math.min(parseInt(eleArray[rowValue][0].getAttribute('rowspan'), 10) ||\n 1, max - min + 1)) && eleArray[rowValue][0] === eleArray[rowValue + 1][0]) {\n for (count = index - 1, colIndex = 1; colIndex < eleArray[0].length; colIndex++) {\n if (eleArray[rowValue][colIndex] !== eleArray[rowValue][colIndex - 1]) {\n for (rowMin = rowValue; rowMin < rowValue + index; rowMin++) {\n // eslint-disable-next-line\n if (1 < (attrValue = parseInt(eleArray[rowMin][colIndex].getAttribute('rowspan'), 10) || 1) && eleArray[rowMin][colIndex] === eleArray[rowMin + 1][colIndex]) {\n rowMin += count = Math.min(count, attrValue - 1);\n }\n // eslint-disable-next-line\n else if (!(count = Math.max(0, count - 1))) {\n break;\n }\n }\n if (!count) {\n break;\n }\n }\n }\n }\n }\n if (count) {\n this.updateCellAttribute(eleArray, count, 'rowspan', min, max, 0, eleArray[0].length - 1);\n }\n }\n };\n TableCommand.prototype.updateCellAttribute = function (elements, index, attr, min, max, firstIndex, length) {\n var rowIndex;\n var colIndex;\n var spanCount;\n for (rowIndex = min; rowIndex <= max; rowIndex++) {\n for (colIndex = firstIndex; colIndex <= length; colIndex++) {\n // eslint-disable-next-line\n min < rowIndex && elements[rowIndex][colIndex] === elements[rowIndex - 1][colIndex] ||\n firstIndex < colIndex && elements[rowIndex][colIndex] === elements[rowIndex][colIndex - 1] ||\n 1 < (spanCount = parseInt(elements[rowIndex][colIndex].getAttribute(attr), 10) || 1) &&\n // eslint-disable-next-line max-len\n (1 < spanCount - index ? elements[rowIndex][colIndex].setAttribute(attr, (spanCount - index).toString()) :\n elements[rowIndex][colIndex].removeAttribute(attr));\n }\n }\n };\n TableCommand.prototype.mergeCellContent = function () {\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n var innerHtml = selectedCells[0].innerHTML === '
    ' ? '' : selectedCells[0].innerHTML;\n for (var i = 1; i < selectedCells.length; i++) {\n if ('
    ' !== selectedCells[i].innerHTML) {\n innerHtml = innerHtml ? innerHtml + '
    ' + selectedCells[i].innerHTML : innerHtml + selectedCells[i].innerHTML;\n }\n }\n selectedCells[0].innerHTML = innerHtml;\n };\n TableCommand.prototype.getSelectedMinMaxIndexes = function (correspondingCells) {\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n if (0 < selectedCells.length) {\n var minRow = correspondingCells.length;\n var maxRow = 0;\n var minCol = correspondingCells[0].length;\n var maxCol = 0;\n for (var i = 0; i < selectedCells.length; i++) {\n var currentRowCol = this.getCorrespondingIndex(selectedCells[i], correspondingCells);\n var targetRowCol = this.FindIndex(currentRowCol[0], currentRowCol[1], correspondingCells);\n minRow = Math.min(currentRowCol[0], minRow);\n maxRow = Math.max(targetRowCol[0], maxRow);\n minCol = Math.min(currentRowCol[1], minCol);\n maxCol = Math.max(targetRowCol[1], maxCol);\n }\n return {\n startRow: minRow,\n endRow: maxRow,\n startColumn: minCol,\n endColumn: maxCol\n };\n }\n return null;\n };\n TableCommand.prototype.HorizontalSplit = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n this.curTable = closest(selectedCell.parentElement, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length > 1) {\n return;\n }\n this.activeCell = this.curTable.querySelector('.e-cell-select');\n var newCell = this.activeCell.cloneNode(true);\n newCell.removeAttribute('class');\n newCell.innerHTML = '
    ';\n var activeCellIndex = this.getCorrespondingIndex(this.activeCell, this.getCorrespondingColumns());\n var correspondingCells = this.getCorrespondingColumns();\n var activeCellRowSpan = this.activeCell.getAttribute('rowspan') ? parseInt(this.activeCell.getAttribute('rowspan'), 10) : 1;\n if (activeCellRowSpan > 1) {\n var avgCount = Math.ceil(activeCellRowSpan / 2);\n // eslint-disable-next-line\n 1 < avgCount ? this.activeCell.setAttribute('rowspan', avgCount.toString()) :\n this.activeCell.removeAttribute('rowspan');\n // eslint-disable-next-line\n 1 < (activeCellRowSpan - avgCount) ? newCell.setAttribute('rowspan', (activeCellRowSpan - avgCount).toString()) : newCell.removeAttribute('rowspan');\n var avgRowIndex = void 0;\n var colIndex = void 0;\n for (avgRowIndex = activeCellIndex[0] + Math.ceil(activeCellRowSpan / 2),\n colIndex = 0 === activeCellIndex[1] ? activeCellIndex[1]\n : activeCellIndex[1] - 1; 0 <= colIndex && (correspondingCells[avgRowIndex][colIndex] ===\n // eslint-disable-next-line max-len\n correspondingCells[avgRowIndex][colIndex - 1] || 0 < avgRowIndex && correspondingCells[avgRowIndex][colIndex]\n === correspondingCells[avgRowIndex - 1][colIndex]);) {\n colIndex--;\n }\n if (colIndex === -1) {\n // eslint-disable-next-line\n this.curTable.rows[avgRowIndex].firstChild ? this.curTable.rows[avgRowIndex].prepend(newCell) : this.curTable.appendChild(newCell);\n }\n else {\n correspondingCells[avgRowIndex][colIndex].insertAdjacentElement('afterend', newCell);\n }\n }\n else {\n var newTrEle = createElement('tr');\n newTrEle.appendChild(newCell);\n var selectedRow = correspondingCells[activeCellIndex[0]];\n for (var j = 0; j <= selectedRow.length - 1; j++) {\n if (selectedRow[j] !== selectedRow[j - 1] && selectedRow[j] !== this.activeCell) {\n selectedRow[j].setAttribute('rowspan', ((parseInt(selectedRow[j].getAttribute('rowspan'), 10) ?\n parseInt(selectedRow[j].getAttribute('rowspan'), 10) : 1) + 1).toString());\n }\n }\n this.activeCell.parentNode.insertAdjacentElement('afterend', newTrEle);\n }\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.VerticalSplit = function (e) {\n var selectedCell = e.item.selection.range.startContainer;\n this.curTable = closest(selectedCell.parentElement, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length > 1) {\n return;\n }\n this.activeCell = this.curTable.querySelector('.e-cell-select');\n var allRows = this.curTable.rows;\n var newCell = this.activeCell.cloneNode(true);\n newCell.removeAttribute('class');\n newCell.innerHTML = '
    ';\n var avgWidth = parseFloat(this.activeCell.style.width) / 2;\n if (this.activeCell.tagName === 'TH' && isNaN(avgWidth)) {\n var cellCount = this.curTable.querySelector('tr').childElementCount;\n var colSpanCount = 0;\n for (var i = 0; i < cellCount; i++) {\n colSpanCount = colSpanCount + (parseInt(this.curTable.querySelector('tr').children[i].getAttribute('colspan'), 10) || 1);\n }\n avgWidth = parseFloat((((this.activeCell.offsetWidth / 2) / this.curTable.offsetWidth) * 100).toFixed(1));\n }\n var activeCellIndex = this.getCorrespondingIndex(this.activeCell, this.getCorrespondingColumns());\n var correspondingColumns = this.getCorrespondingColumns();\n var activeCellcolSpan = parseInt(this.activeCell.getAttribute('colspan'), 10);\n if (activeCellcolSpan > 1) {\n // eslint-disable-next-line\n 1 < Math.ceil(activeCellcolSpan / 2) ? this.activeCell.setAttribute('colspan', (activeCellcolSpan / 2).toString())\n : this.activeCell.removeAttribute('colspan');\n // eslint-disable-next-line\n 1 < (activeCellcolSpan - activeCellcolSpan / 2) ? newCell.setAttribute('colspan', \n // eslint-disable-next-line\n (activeCellcolSpan - activeCellcolSpan / 2).toString()) : newCell.removeAttribute('colspan');\n }\n else {\n for (var i = 0; i <= allRows.length - 1; i++) {\n if (0 === i || correspondingColumns[i][activeCellIndex[1]] !== correspondingColumns[i - 1][activeCellIndex[1]]) {\n var currentCell = correspondingColumns[i][activeCellIndex[1]];\n if (currentCell !== this.activeCell) {\n currentCell.setAttribute('colspan', ((parseInt(currentCell.getAttribute('colspan'), 10) ?\n parseInt(currentCell.getAttribute('colspan'), 10) : 1) + 1).toString());\n }\n }\n }\n }\n this.activeCell.style.width = avgWidth + '%';\n newCell.style.width = avgWidth + '%';\n this.activeCell.parentNode.insertBefore(newCell, this.activeCell.nextSibling);\n if (e.callBack) {\n e.callBack({\n requestType: e.item.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n TableCommand.prototype.getCorrespondingColumns = function () {\n var elementArray = [];\n // eslint-disable-next-line\n var _this = this;\n var colspan = 0;\n var allRows = _this.curTable.rows;\n for (var i = 0; i <= allRows.length - 1; i++) {\n var ele = allRows[i];\n var index = 0;\n for (var j = 0; j <= ele.children.length - 1; j++) {\n /* eslint-disable */\n var colEle = ele.children[j];\n for (var ele_1 = colEle, colspan_1 = parseInt(ele_1.getAttribute('colspan'), 10) || 1, rowSpan = parseInt(ele_1.getAttribute('rowspan'), 10) || 1, rowIndex = i; rowIndex < i + rowSpan; rowIndex++) {\n for (var colIndex = index; colIndex < index + colspan_1; colIndex++) {\n elementArray[rowIndex] || (elementArray[rowIndex] = []);\n elementArray[rowIndex][colIndex] ? index++ : elementArray[rowIndex][colIndex] = colEle;\n }\n }\n index += colspan;\n }\n /* eslint-enable */\n }\n return elementArray;\n };\n // eslint-disable-next-line\n TableCommand.prototype.FindIndex = function (rowIndex, columnIndex, cells) {\n var nextIndex;\n var nextCol;\n for (nextIndex = rowIndex + 1, nextCol = columnIndex + 1; nextIndex < cells.length;) {\n if (cells[nextIndex][columnIndex] !== cells[rowIndex][columnIndex]) {\n nextIndex--;\n break;\n }\n nextIndex++;\n }\n for (nextIndex === cells.length && nextIndex--; nextCol < cells[rowIndex].length;) {\n if (cells[rowIndex][nextCol] !== cells[rowIndex][columnIndex]) {\n nextCol--;\n break;\n }\n nextCol++;\n }\n return nextCol === cells[rowIndex].length && nextCol--,\n [\n nextIndex,\n nextCol\n ];\n };\n TableCommand.prototype.getCorrespondingIndex = function (cell, allCells) {\n //let value: RowCol = new RowCol();\n for (var i = 0; i < allCells.length; i++) {\n for (var j = 0; j < allCells[i].length; j++) {\n if (allCells[i][j] === cell) {\n return [i, j];\n }\n }\n }\n return [];\n };\n TableCommand.prototype.highlightCells = function (minRow, maxRow, minCol, maxCol, eleArray) {\n var j;\n var k;\n var startCell;\n var endCell;\n var minRowIndex = minRow;\n var maxRowIndex = maxRow;\n var minColIndex = minCol;\n var maxColIndex = maxCol;\n var minMaxValues = new MinMax();\n for (j = minRowIndex; j <= maxRowIndex; j++) {\n /* eslint-disable */\n if ((1 < (parseInt(eleArray[j][minColIndex].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[j][minColIndex].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[j][minColIndex], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n else if ((1 < (parseInt(eleArray[j][maxColIndex].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[j][maxColIndex].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[j][maxColIndex], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n for (k = minColIndex; k <= maxColIndex; k++) {\n if ((1 < (parseInt(eleArray[minRowIndex][k].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[minRowIndex][k].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[minRowIndex][k], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n else if ((1 < (parseInt(eleArray[maxRowIndex][k].getAttribute('rowspan'), 10) || 1) ||\n 1 < (parseInt(eleArray[maxRowIndex][k].getAttribute('colspan'), 10) || 1)) &&\n (endCell = this.FindIndex((startCell = this.getCorrespondingIndex(eleArray[maxRowIndex][k], eleArray))[0], startCell[1], eleArray))) {\n minRowIndex = Math.min(startCell[0], minRowIndex);\n maxRowIndex = Math.max(endCell[0], maxRowIndex);\n minColIndex = Math.min(startCell[1], minColIndex);\n maxColIndex = Math.max(endCell[1], maxColIndex);\n }\n }\n minMaxValues = minRowIndex === minRow && maxRowIndex === maxRow && minColIndex === minCol && maxColIndex === maxCol ? {\n startRow: minRow,\n endRow: maxRow,\n startColumn: minCol,\n endColumn: maxCol\n } : this.highlightCells(minRowIndex, maxRowIndex, minColIndex, maxColIndex, eleArray);\n }\n return minMaxValues;\n /* eslint-enable */\n };\n TableCommand.prototype.tableMove = function (e) {\n this.activeCell = e.selectNode[0];\n var target = e.event.target;\n var activeCellTag = this.activeCell.tagName;\n var targetCellTag = target.tagName;\n this.curTable = closest(target, 'table');\n if (this.curTable.querySelectorAll('.e-cell-select').length > 1) {\n this.parent.nodeSelection.Clear(this.parent.currentDocument);\n }\n if ((target.tagName !== 'TD' && target.tagName !== 'TH') && activeCellTag !== targetCellTag) {\n return;\n }\n var activeRowIndex = Array.prototype.slice.call((this.activeCell).parentElement.parentElement.children)\n .indexOf((this.activeCell).parentElement);\n var activeColumnIndex = Array.prototype.slice.call((this.activeCell).parentElement.children).indexOf(this.activeCell);\n var targetRowIndex = Array.prototype.slice.call(target.parentElement.parentElement.children)\n .indexOf(target.parentElement);\n var targetColumnIndex = Array.prototype.slice.call(target.parentElement.children).indexOf(target);\n var activeCellList = this.curTable.querySelectorAll('.e-cell-select');\n for (var i = activeCellList.length - 1; i >= 0; i--) {\n if (this.activeCell !== activeCellList[i]) {\n activeCellList[i].classList.remove('e-cell-select');\n }\n }\n if (activeRowIndex === targetRowIndex && activeColumnIndex === targetColumnIndex) {\n return;\n }\n var correspondingCells = this.getCorrespondingColumns();\n var activeIndexes = this.getCorrespondingIndex(this.activeCell, correspondingCells);\n var targetIndexes = this.getCorrespondingIndex(target, correspondingCells);\n var minMaxIndexes = this.highlightCells(Math.min(activeIndexes[0], targetIndexes[0]), Math.max(activeIndexes[0], \n /* eslint-disable */\n targetIndexes[0]), Math.min(activeIndexes[1], targetIndexes[1]), Math.max(activeIndexes[1], targetIndexes[1]), correspondingCells);\n for (var rowIndex = minMaxIndexes.startRow; rowIndex <= minMaxIndexes.endRow; rowIndex++) {\n for (var colIndex = minMaxIndexes.startColumn; colIndex <= minMaxIndexes.endColumn; colIndex++) {\n correspondingCells[rowIndex][colIndex].classList.add('e-cell-select');\n }\n }\n if (this.parent.nodeSelection.range) {\n this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, this.parent.nodeSelection.range.endContainer, this.parent.nodeSelection.range.endContainer, 0, 0);\n this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, this.parent.nodeSelection.range.endContainer, 0);\n }\n };\n ;\n return TableCommand;\n}());\nexport { TableCommand };\nvar MinMax = /** @class */ (function () {\n function MinMax() {\n }\n return MinMax;\n}());\n","/**\n * Is formatted or not.\n *\n * @hidden\n\n */\nvar IsFormatted = /** @class */ (function () {\n function IsFormatted() {\n }\n /**\n * getFormattedNode method\n *\n * @param {Node} node - specifies the node.\n * @param {string} format - specifies the string value.\n * @param {Node} endNode - specifies the end node\n * @returns {Node} - returns the node\n * @hidden\n\n */\n IsFormatted.prototype.getFormattedNode = function (node, format, endNode) {\n var parentNode = this.getFormatParent(node, format, endNode);\n if (parentNode !== null && parentNode !== endNode) {\n return parentNode;\n }\n return null;\n };\n IsFormatted.prototype.getFormatParent = function (node, format, endNode) {\n do {\n node = node.parentNode;\n } while (node && (node !== endNode) && !this.isFormattedNode(node, format));\n return node;\n };\n IsFormatted.prototype.isFormattedNode = function (node, format) {\n switch (format) {\n case 'bold':\n return IsFormatted.isBold(node);\n case 'italic':\n return IsFormatted.isItalic(node);\n case 'underline':\n return IsFormatted.isUnderline(node);\n case 'strikethrough':\n return IsFormatted.isStrikethrough(node);\n case 'superscript':\n return IsFormatted.isSuperscript(node);\n case 'subscript':\n return IsFormatted.isSubscript(node);\n case 'fontcolor':\n return this.isFontColor(node);\n case 'fontname':\n return this.isFontName(node);\n case 'fontsize':\n return this.isFontSize(node);\n case 'backgroundcolor':\n return this.isBackgroundColor(node);\n default:\n return false;\n }\n };\n /**\n * isBold method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isBold = function (node) {\n var validTags = ['strong', 'b'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && node.style.fontWeight === 'bold') {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isItalic method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isItalic = function (node) {\n var validTags = ['em', 'i'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && node.style.fontStyle === 'italic') {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isUnderline method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isUnderline = function (node) {\n var validTags = ['u'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n /* eslint-disable */\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && (node.style.textDecoration === 'underline' ||\n node.style.textDecorationLine === 'underline')) {\n /* eslint-enable */\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isStrikethrough method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isStrikethrough = function (node) {\n var validTags = ['del', 'strike'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n /* eslint-disable */\n }\n else if (this.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n node.style && (node.style.textDecoration === 'line-through' ||\n node.style.textDecorationLine === 'line-through')) {\n /* eslint-enable */\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isSuperscript method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isSuperscript = function (node) {\n var validTags = ['sup'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * isSubscript method\n *\n * @param {Node} node - specifies the node value\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n IsFormatted.isSubscript = function (node) {\n var validTags = ['sub'];\n if (validTags.indexOf(node.nodeName.toLowerCase()) !== -1) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isFontColor = function (node) {\n var color = node.style && node.style.color;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n color !== null && color !== '' && color !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isBackgroundColor = function (node) {\n var backColor = node.style && node.style.backgroundColor;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n backColor !== null && backColor !== '' && backColor !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isFontSize = function (node) {\n var size = node.style && node.style.fontSize;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n size !== null && size !== '' && size !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n IsFormatted.prototype.isFontName = function (node) {\n var name = node.style && node.style.fontFamily;\n if (IsFormatted.inlineTags.indexOf(node.nodeName.toLowerCase()) !== -1 &&\n name !== null && name !== '' && name !== undefined) {\n return true;\n }\n else {\n return false;\n }\n };\n // Get Formatted Node\n IsFormatted.inlineTags = [\n 'a',\n 'abbr',\n 'acronym',\n 'b',\n 'bdo',\n 'big',\n 'cite',\n 'code',\n 'dfn',\n 'em',\n 'font',\n 'i',\n 'kbd',\n 'label',\n 'q',\n 'samp',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'sup',\n 'tt',\n 'u',\n 'var',\n 'del'\n ];\n return IsFormatted;\n}());\nexport { IsFormatted };\n","/**\n * `Selection` module is used to handle RTE Selections.\n */\nimport { NodeSelection } from './../../selection/index';\nimport { NodeCutter } from './nodecutter';\nimport { InsertMethods } from './insert-methods';\nimport { IsFormatted } from './isformatted';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nimport { isNullOrUndefined as isNOU, Browser, closest, detach } from '@syncfusion/ej2-base';\nimport { DOMNode } from './dom-node';\nvar SelectionCommands = /** @class */ (function () {\n function SelectionCommands() {\n }\n /**\n * applyFormat method\n *\n * @param {Document} docElement - specifies the document\n * @param {string} format - specifies the string value\n * @param {Node} endNode - specifies the end node\n * @param {string} enterAction - specifies the enter key action\n * @param {string} value - specifies the string value\n * @param {string} selector - specifies the string\n * @param {FormatPainterValue} painterValues specifies the element created and last child\n * @returns {void}\n * @hidden\n\n */\n SelectionCommands.applyFormat = function (docElement, format, endNode, enterAction, value, selector, painterValues) {\n this.enterAction = enterAction;\n var validFormats = ['bold', 'italic', 'underline', 'strikethrough', 'superscript',\n 'subscript', 'uppercase', 'lowercase', 'fontcolor', 'fontname', 'fontsize', 'backgroundcolor'];\n if (validFormats.indexOf(format) > -1 || value === 'formatPainter') {\n if (format === 'backgroundcolor' && value === '') {\n value = 'transparent';\n }\n var domSelection = new NodeSelection();\n var domNode = new DOMNode(endNode, docElement);\n var nodeCutter = new NodeCutter();\n var isFormatted = new IsFormatted();\n var range = domSelection.getRange(docElement);\n var save = domSelection.save(range, docElement);\n var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :\n domSelection.getSelectionNodeCollectionBr(range);\n var isCollapsed = false;\n var isFormat = false;\n var isCursor = false;\n var preventRestore = false;\n var isFontStyle = (['fontcolor', 'fontname', 'fontsize', 'backgroundcolor'].indexOf(format) > -1);\n if (range.collapsed) {\n var currentFormatNode = isFormatted.getFormattedNode(range.startContainer, format, endNode);\n var currentSelector = !isNOU(currentFormatNode) ?\n (currentFormatNode.getAttribute('style') === null ? currentFormatNode.nodeName :\n currentFormatNode.nodeName + '[style=\\'' + currentFormatNode.getAttribute('style') + '\\']') : null;\n if (nodes.length > 0) {\n isCollapsed = true;\n range = nodeCutter.GetCursorRange(docElement, range, nodes[0]);\n }\n else if (range.startContainer.nodeType === 3 && ((range.startContainer.parentElement.childElementCount > 0 &&\n range.startOffset > 0 && range.startContainer.parentElement.firstElementChild.tagName.toLowerCase() !== 'br') ||\n !isNOU(currentFormatNode) && currentFormatNode ===\n (range.startContainer.parentElement.closest(currentSelector)) &&\n ((range.startContainer.parentElement.closest(currentSelector)).textContent.replace(\n // eslint-disable-next-line\n new RegExp(String.fromCharCode(8203), 'g'), '').trim().length !== 0))) {\n isCollapsed = true;\n range = nodeCutter.GetCursorRange(docElement, range, range.startContainer);\n nodes.push(range.startContainer);\n }\n else {\n var cursorNode = this.insertCursorNode(docElement, domSelection, range, isFormatted, nodeCutter, format, value, endNode);\n domSelection.endContainer = domSelection.startContainer = domSelection.getNodeArray(cursorNode, true);\n var childNodes = cursorNode.nodeName === 'BR' && cursorNode.parentNode.childNodes;\n if (!isNOU(childNodes) && childNodes.length === 1 && childNodes[0].nodeName === 'BR' && nodes.length === 0) {\n domSelection.setSelectionText(docElement, range.startContainer, range.endContainer, 0, 0);\n preventRestore = true;\n }\n else {\n domSelection.endOffset = domSelection.startOffset = 1;\n }\n if (cursorNode.nodeName === 'BR' && cursorNode.parentNode.textContent.length === 0) {\n preventRestore = true;\n }\n }\n }\n isCursor = range.collapsed;\n var isSubSup = false;\n for (var index = 0; index < nodes.length; index++) {\n var formatNode = isFormatted.getFormattedNode(nodes[index], format, endNode);\n if (formatNode === null) {\n if (format === 'subscript') {\n formatNode = isFormatted.getFormattedNode(nodes[index], 'superscript', endNode);\n isSubSup = formatNode === null ? false : true;\n }\n else if (format === 'superscript') {\n formatNode = isFormatted.getFormattedNode(nodes[index], 'subscript', endNode);\n isSubSup = formatNode === null ? false : true;\n }\n }\n if (index === 0 && formatNode === null) {\n isFormat = true;\n }\n if (formatNode !== null && (!isFormat || isFontStyle)) {\n nodes[index] = this.removeFormat(nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection, endNode, domNode);\n }\n else {\n nodes[index] = this.insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, painterValues, domNode, endNode);\n }\n domSelection = this.applySelection(nodes, domSelection, nodeCutter, index, isCollapsed);\n }\n if (isIDevice()) {\n setEditFrameFocus(endNode, selector);\n }\n if (!preventRestore) {\n save.restore();\n }\n if (isSubSup) {\n this.applyFormat(docElement, format, endNode, enterAction);\n }\n }\n };\n SelectionCommands.insertCursorNode = function (docElement, domSelection, range, isFormatted, nodeCutter, format, value, endNode) {\n var cursorNodes = domSelection.getNodeCollection(range);\n var domNode = new DOMNode(endNode, docElement);\n var cursorFormat = (cursorNodes.length > 0) ?\n (cursorNodes.length > 1 && range.startContainer === range.endContainer) ?\n this.getCursorFormat(isFormatted, cursorNodes, format, endNode) :\n isFormatted.getFormattedNode(cursorNodes[0], format, endNode) : null;\n var cursorNode = null;\n if (cursorFormat) {\n cursorNode = cursorNodes[0];\n if (cursorFormat.firstChild.textContent.charCodeAt(0) === 8203 && cursorFormat.firstChild.nodeType === 3) {\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n var emptySpaceNode = void 0;\n if (cursorFormat.firstChild === cursorNode) {\n cursorNode.textContent = (cursorFormat.parentElement && (domNode.isBlockNode(cursorFormat.parentElement) &&\n cursorFormat.parentElement.textContent.length <= 1 ? cursorFormat.parentElement.childElementCount > 1 :\n cursorFormat.childElementCount === 0) &&\n (cursorFormat.parentElement.textContent.length > 1 ||\n cursorFormat.parentElement.firstChild && cursorFormat.parentElement.firstChild.nodeType === 1) ?\n cursorNode.textContent : cursorNode.textContent.replace(regEx, ''));\n emptySpaceNode = cursorNode;\n }\n else {\n cursorFormat.firstChild.textContent = cursorFormat.firstChild.textContent.replace(regEx, '');\n emptySpaceNode = cursorFormat.firstChild;\n }\n var pointer = void 0;\n if (emptySpaceNode.textContent.length === 0) {\n if (!isNOU(emptySpaceNode.previousSibling)) {\n cursorNode = emptySpaceNode.previousSibling;\n pointer = emptySpaceNode.textContent.length - 1;\n domSelection.setCursorPoint(docElement, emptySpaceNode, pointer);\n }\n else if (!isNOU(emptySpaceNode.parentElement) && emptySpaceNode.parentElement.textContent.length === 0) {\n var brElem = document.createElement('BR');\n emptySpaceNode.parentElement.appendChild(brElem);\n detach(emptySpaceNode);\n cursorNode = brElem;\n domSelection.setCursorPoint(docElement, cursorNode.parentElement, 0);\n }\n }\n }\n if ((['fontcolor', 'fontname', 'fontsize', 'backgroundcolor'].indexOf(format) > -1)) {\n if (format === 'fontcolor') {\n cursorFormat.style.color = value;\n }\n else if (format === 'fontname') {\n cursorFormat.style.fontFamily = value;\n }\n else if (format === 'fontsize') {\n cursorFormat.style.fontSize = value;\n }\n else {\n cursorFormat.style.backgroundColor = value;\n }\n cursorNode = cursorFormat;\n }\n else {\n InsertMethods.unwrap(cursorFormat);\n }\n }\n else {\n if (cursorNodes.length > 1 && range.startOffset > 0 && (cursorNodes[0].firstElementChild &&\n cursorNodes[0].firstElementChild.tagName.toLowerCase() === 'br')) {\n cursorNodes[0].innerHTML = '';\n }\n if (cursorNodes.length === 1 && range.startOffset === 0 && (cursorNodes[0].nodeName === 'BR' ||\n cursorNodes[0].nextSibling.nodeName === 'BR')) {\n detach(cursorNodes[0].nodeName === '#text' ? cursorNodes[0].nextSibling : cursorNodes[0]);\n }\n cursorNode = this.getInsertNode(docElement, range, format, value).firstChild;\n }\n return cursorNode;\n };\n SelectionCommands.getCursorFormat = function (isFormatted, cursorNodes, format, endNode) {\n var currentNode;\n for (var index = 0; index < cursorNodes.length; index++) {\n currentNode = cursorNodes[index].lastElementChild ?\n cursorNodes[index].lastElementChild : cursorNodes[index];\n }\n return isFormatted.getFormattedNode(currentNode, format, endNode);\n };\n SelectionCommands.removeFormat = function (nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection, endNode, domNode) {\n var splitNode = null;\n var startText = range.startContainer.nodeName === '#text' ?\n range.startContainer.textContent.substring(range.startOffset, range.startContainer.textContent.length) :\n range.startContainer.textContent;\n var nodeText = nodes[index].textContent;\n if (!(range.startContainer === range.endContainer && range.startOffset === 0\n && range.endOffset === range.startContainer.length)) {\n var nodeIndex = [];\n var cloneNode = nodes[index];\n do {\n nodeIndex.push(domSelection.getIndex(cloneNode));\n cloneNode = cloneNode.parentNode;\n } while (cloneNode && (cloneNode !== formatNode));\n if (nodes[index].nodeName !== 'BR') {\n cloneNode = splitNode = (isCursor && (formatNode.textContent.length - 1) === range.startOffset) ?\n nodeCutter.SplitNode(range, formatNode, true)\n : nodeCutter.GetSpliceNode(range, formatNode);\n }\n if (!isCursor) {\n while (cloneNode && cloneNode.childNodes.length > 0 && ((nodeIndex.length - 1) >= 0)\n && (cloneNode.childNodes.length > nodeIndex[nodeIndex.length - 1])) {\n cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];\n nodeIndex.pop();\n }\n if (nodes[index].nodeName !== 'BR') {\n if (cloneNode.nodeType === 3 && !(isCursor && cloneNode.nodeValue === '')) {\n nodes[index] = cloneNode;\n }\n else {\n var divNode = document.createElement('div');\n divNode.innerHTML = '​';\n if (cloneNode.nodeType !== 3) {\n cloneNode.insertBefore(divNode.firstChild, cloneNode.firstChild);\n nodes[index] = cloneNode.firstChild;\n }\n else {\n cloneNode.parentNode.insertBefore(divNode.firstChild, cloneNode);\n nodes[index] = cloneNode.previousSibling;\n cloneNode.parentNode.removeChild(cloneNode);\n }\n }\n }\n }\n else {\n var lastNode = splitNode;\n for (; lastNode.firstChild !== null && lastNode.firstChild.nodeType !== 3; null) {\n lastNode = lastNode.firstChild;\n }\n lastNode.innerHTML = '​';\n nodes[index] = lastNode.firstChild;\n }\n }\n else if (isFontStyle && !nodes[index].contains(formatNode) && nodes[index].nodeType === 3 &&\n nodes[index].textContent !== formatNode.textContent) {\n // If the selection is within the format node .\n var isFullNodeSelected = nodes[index].textContent === nodes[index].wholeText;\n var nodeTraverse = nodes[index];\n var styleElement = this.GetFormatNode(format, value);\n // while loop and traverse back until text content does not match with parent text content\n while (nodeTraverse && nodeTraverse.textContent === nodeTraverse.parentElement.textContent) {\n nodeTraverse = nodeTraverse.parentElement;\n }\n if (isFullNodeSelected && formatNode.textContent !== nodeTraverse.textContent) {\n var nodeArray = [];\n var priorityNode = this.getPriorityFormatNode(nodeTraverse, endNode);\n if (priorityNode && priorityNode.textContent === nodeTraverse.textContent) {\n nodeTraverse = priorityNode;\n }\n nodeArray.push(nodeTraverse);\n this.applyStyles(nodeArray, 0, styleElement);\n return nodes[index];\n }\n }\n var fontStyle;\n if (format === 'backgroundcolor') {\n fontStyle = formatNode.style.fontSize;\n }\n var bgStyle;\n if (format === 'fontsize') {\n var bg = closest(nodes[index].parentElement, 'span[style*=' + 'background-color' + ']');\n if (!isNOU(bg)) {\n bgStyle = bg.style.backgroundColor;\n }\n }\n var formatNodeStyles = formatNode.getAttribute('style');\n var formatNodeTagName = formatNode.tagName;\n var child = InsertMethods.unwrap(formatNode);\n if (child[0] && !isFontStyle) {\n var nodeTraverse = child[index] ? child[index] : child[0];\n var textNode = nodeTraverse;\n for (; nodeTraverse && nodeTraverse.parentElement && nodeTraverse.parentElement !== endNode; \n // eslint-disable-next-line\n nodeTraverse = nodeTraverse) {\n var nodeTraverseCondition = void 0;\n if (formatNode.nodeName === 'SPAN') {\n nodeTraverseCondition = nodeTraverse.parentElement.tagName.toLocaleLowerCase()\n === formatNode.tagName.toLocaleLowerCase() && nodeTraverse.parentElement.getAttribute('style') === formatNodeStyles;\n }\n else {\n nodeTraverseCondition = nodeTraverse.parentElement.tagName.toLocaleLowerCase()\n === formatNode.tagName.toLocaleLowerCase();\n }\n if (nodeTraverse.parentElement && nodeTraverseCondition &&\n (nodeTraverse.parentElement.childElementCount > 1 || range.startOffset > 1)) {\n if (textNode.parentElement && textNode.parentElement.tagName.toLocaleLowerCase()\n === formatNode.tagName.toLocaleLowerCase()) {\n if ((range.startOffset === range.endOffset) && textNode.nodeType !== 1 &&\n !isNOU(textNode.textContent) && textNode.parentElement.childElementCount > 1) {\n range.setStart(textNode, 0);\n range.setEnd(textNode, textNode.textContent.length);\n nodeCutter.SplitNode(range, textNode.parentElement, false);\n }\n }\n if (nodeTraverse.parentElement.tagName.toLocaleLowerCase() === 'span') {\n if (formatNode.style.textDecoration === 'underline' &&\n nodeTraverse.parentElement.style.textDecoration !== 'underline') {\n nodeTraverse = nodeTraverse.parentElement;\n continue;\n }\n }\n InsertMethods.unwrap(nodeTraverse.parentElement);\n nodeTraverse = !isNOU(nodeTraverse.parentElement) && !domNode.isBlockNode(nodeTraverse.parentElement) ? textNode :\n nodeTraverse.parentElement;\n }\n else {\n nodeTraverse = nodeTraverse.parentElement;\n }\n }\n }\n if (child.length > 0 && isFontStyle) {\n for (var num = 0; num < child.length; num++) {\n if (child[num].nodeType !== 3 || (child[num].textContent &&\n child[num].textContent.trim().length > 0)) {\n child[num] = InsertMethods.Wrap(child[num], this.GetFormatNode(format, value, formatNodeTagName, formatNodeStyles));\n if (child[num].textContent === startText) {\n if (num === 0) {\n range.setStartBefore(child[num]);\n }\n else if (num === child.length - 1) {\n range.setEndAfter(child[num]);\n }\n }\n }\n }\n var currentNodeElem = nodes[index].parentElement;\n if (!isNOU(fontStyle) && fontStyle !== '') {\n currentNodeElem.style.fontSize = fontStyle;\n }\n if (!isNOU(bgStyle) && bgStyle !== '') {\n currentNodeElem.style.backgroundColor = bgStyle;\n }\n if ((format === 'backgroundcolor' && !isNOU(fontStyle) && fontStyle !== '') &&\n currentNodeElem.parentElement.innerHTML === currentNodeElem.outerHTML) {\n var curParentElem = currentNodeElem.parentElement;\n curParentElem.parentElement.insertBefore(currentNodeElem, curParentElem);\n detach(curParentElem);\n }\n if (format === 'fontsize' || format === 'fontcolor') {\n var liElement = nodes[index].parentElement;\n var parentElement = nodes[index].parentElement;\n while (!isNOU(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {\n parentElement = parentElement.parentElement;\n liElement = parentElement;\n }\n var num = index;\n var liChildContent = '';\n while (num >= 0 && !isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' && liElement.textContent.replace('/\\u200B/g', '').trim().includes(nodes[num].textContent.trim())) {\n liChildContent = ' ' + nodes[num].textContent.trim() + liChildContent;\n num--;\n }\n var isNestedList = false;\n var nestedListCount = 0;\n var isNestedListItem = false;\n if (!isNOU(liElement) && liElement.childNodes) {\n for (var num_1 = 0; num_1 < liElement.childNodes.length; num_1++) {\n if (liElement.childNodes[num_1].nodeName === ('OL' || 'UL')) {\n nestedListCount++;\n isNestedList = true;\n }\n }\n }\n if (!isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' &&\n liElement.textContent.split('\\u200B').join('').trim() === liChildContent.split('\\u200B').join('').trim()) {\n if (format === 'fontsize') {\n liElement.style.fontSize = value;\n }\n else {\n liElement.style.color = value;\n liElement.style.textDecoration = 'inherit';\n }\n }\n else if (!isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' && isNestedList) {\n if (isNestedList && nestedListCount > 0) {\n for (var num_2 = 0; num_2 < liElement.childNodes.length; num_2++) {\n if (nodes[index].textContent === liElement.childNodes[num_2].textContent && nodes[index].textContent === nodeText && liElement.textContent.replace('/\\u200B/g', '').trim().includes(liChildContent.split('\\u200B').join('').trim())) {\n isNestedListItem = true;\n }\n }\n }\n if (isNestedListItem) {\n for (var num_3 = 0; num_3 < liElement.childNodes.length; num_3++) {\n if (liElement.childNodes[num_3].nodeName === ('OL' || 'UL')) {\n liElement.childNodes[num_3].style.fontSize = 'initial';\n }\n }\n if (format === 'fontsize') {\n liElement.style.fontSize = value;\n }\n else {\n liElement.style.color = value;\n liElement.style.textDecoration = 'inherit';\n }\n }\n }\n }\n }\n return nodes[index];\n };\n SelectionCommands.insertFormat = function (docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, painterValues, domNode, endNode) {\n if (!isCursor) {\n if ((formatNode === null && isFormat) || isFontStyle) {\n if (nodes[index].nodeName !== 'BR') {\n nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);\n nodes[index].textContent = nodeCutter.TrimLineBreak(nodes[index].textContent);\n }\n if (format === 'uppercase' || format === 'lowercase') {\n nodes[index].textContent = (format === 'uppercase') ? nodes[index].textContent.toLocaleUpperCase()\n : nodes[index].textContent.toLocaleLowerCase();\n }\n else if (!(isFontStyle === true && value === '')) {\n var element = this.GetFormatNode(format, value);\n if (value === 'formatPainter' || isFontStyle) {\n var liElement = nodes[index].parentElement;\n var parentElement = nodes[index].parentElement;\n while (!isNOU(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {\n parentElement = parentElement.parentElement;\n liElement = parentElement;\n }\n if (!isNOU(liElement) && liElement.tagName.toLowerCase() === 'li' &&\n liElement.textContent.trim() === nodes[index].textContent.trim()) {\n if (format === 'fontsize') {\n liElement.style.fontSize = value;\n }\n else if (format === 'fontcolor') {\n liElement.style.color = value;\n liElement.style.textDecoration = 'inherit';\n }\n }\n if (value === 'formatPainter') {\n return this.insertFormatPainterElem(nodes, index, range, nodeCutter, painterValues, domNode);\n }\n var currentNode = nodes[index];\n var priorityNode = this.getPriorityFormatNode(currentNode, endNode);\n // 1. Checking is there any priority node present in the selection range. (Use case for nested styles);\n // 2 Or font style is applied. (Use case not a nested style)\n if (!isNOU(priorityNode) || isFontStyle) {\n var currentFormatNode = isNOU(priorityNode) ? currentNode : priorityNode;\n currentFormatNode = !isNOU(priorityNode) && priorityNode.style.fontSize !== '' ?\n currentFormatNode.firstChild : currentFormatNode;\n if (isNOU(priorityNode) || format === 'fontsize') {\n while (currentFormatNode) {\n var isSameTextContent = currentFormatNode.parentElement.textContent.trim()\n === nodes[index].textContent.trim();\n var parent_1 = currentFormatNode.parentElement;\n if (!domNode.isBlockNode(parent_1) && isSameTextContent &&\n !(parent_1.nodeName === 'SPAN' && parent_1.classList.contains('e-img-inner'))) {\n currentFormatNode = parent_1;\n }\n else {\n break;\n }\n }\n }\n var nodeList = [];\n // Since color is different for different themnes, we need to wrap the fontColor over the text node.\n if (format === 'fontcolor') {\n var closestAnchor = closest(nodes[index].parentElement, 'A');\n if (!isNOU(closestAnchor) && closestAnchor.firstChild.textContent.trim()\n === nodes[index].textContent.trim()) {\n currentFormatNode = nodes[index];\n }\n }\n if (nodes[index].textContent.trim() !== currentFormatNode.textContent.trim()) {\n currentFormatNode = nodes[index];\n }\n nodeList[0] = currentFormatNode;\n this.applyStyles(nodeList, 0, element);\n }\n else {\n nodes[index] = this.applyStyles(nodes, index, element);\n }\n }\n else {\n nodes[index] = this.applyStyles(nodes, index, element);\n }\n }\n }\n else {\n nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);\n }\n }\n else {\n if (format !== 'uppercase' && format !== 'lowercase') {\n var element = this.getInsertNode(docElement, range, format, value);\n nodes[index] = element.firstChild;\n nodeCutter.position = 1;\n }\n else {\n nodeCutter.position = range.startOffset;\n }\n }\n return nodes[index];\n };\n SelectionCommands.applyStyles = function (nodes, index, element) {\n if (!(nodes[index].nodeName === 'BR' && this.enterAction === 'BR')) {\n nodes[index] = (index === (nodes.length - 1)) || nodes[index].nodeName === 'BR' ?\n InsertMethods.Wrap(nodes[index], element)\n : InsertMethods.WrapBefore(nodes[index], element, true);\n nodes[index] = this.getChildNode(nodes[index], element);\n }\n return nodes[index];\n };\n SelectionCommands.getPriorityFormatNode = function (node, endNode) {\n var isFormatted = new IsFormatted();\n var fontSizeNode = isFormatted.getFormattedNode(node, 'fontsize', endNode);\n var fontColorNode;\n var backgroundColorNode;\n var fontNameNode;\n if (isNOU(fontSizeNode)) {\n backgroundColorNode = isFormatted.getFormattedNode(node, 'backgroundcolor', endNode);\n if (isNOU(backgroundColorNode)) {\n fontNameNode = isFormatted.getFormattedNode(node, 'fontname', endNode);\n if (isNOU(fontNameNode)) {\n fontColorNode = isFormatted.getFormattedNode(node, 'fontcolor', endNode);\n if (isNOU(fontColorNode)) {\n return null;\n }\n else {\n return fontColorNode;\n }\n }\n else {\n return fontNameNode;\n }\n }\n else {\n return backgroundColorNode;\n }\n }\n else {\n return fontSizeNode;\n }\n };\n SelectionCommands.getInsertNode = function (docElement, range, format, value) {\n var element = this.GetFormatNode(format, value);\n element.innerHTML = '​';\n if (Browser.isIE) {\n var frag = docElement.createDocumentFragment();\n frag.appendChild(element);\n range.insertNode(frag);\n }\n else {\n range.insertNode(element);\n }\n return element;\n };\n SelectionCommands.getChildNode = function (node, element) {\n if (node === undefined || node === null) {\n element.innerHTML = '​';\n node = element.firstChild;\n }\n return node;\n };\n SelectionCommands.applySelection = function (nodes, domSelection, nodeCutter, index, isCollapsed) {\n if (nodes.length === 1 && !isCollapsed) {\n domSelection.startContainer = domSelection.getNodeArray(nodes[index], true);\n domSelection.endContainer = domSelection.startContainer;\n domSelection.startOffset = 0;\n domSelection.endOffset = nodes[index].textContent.length;\n }\n else if (nodes.length === 1 && isCollapsed) {\n domSelection.startContainer = domSelection.getNodeArray(nodes[index], true);\n domSelection.endContainer = domSelection.startContainer;\n domSelection.startOffset = nodeCutter.position;\n domSelection.endOffset = nodeCutter.position;\n }\n else if (index === 0) {\n domSelection.startContainer = domSelection.getNodeArray(nodes[index], true);\n domSelection.startOffset = 0;\n }\n else if (index === nodes.length - 1) {\n domSelection.endContainer = domSelection.getNodeArray(nodes[index], false);\n domSelection.endOffset = nodes[index].textContent.length;\n }\n return domSelection;\n };\n SelectionCommands.GetFormatNode = function (format, value, tagName, styles) {\n var node;\n switch (format) {\n case 'bold':\n return document.createElement('strong');\n case 'italic':\n return document.createElement('em');\n case 'underline':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.textDecoration = 'underline';\n return node;\n case 'strikethrough':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.textDecoration = 'line-through';\n return node;\n case 'superscript':\n return document.createElement('sup');\n case 'subscript':\n return document.createElement('sub');\n case 'fontcolor':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.color = value;\n node.style.textDecoration = 'inherit';\n return node;\n case 'fontname':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.fontFamily = value;\n return node;\n case 'fontsize':\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.fontSize = value;\n return node;\n default:\n node = document.createElement('span');\n this.updateStyles(node, tagName, styles);\n node.style.backgroundColor = value;\n return node;\n }\n };\n SelectionCommands.updateStyles = function (ele, tag, styles) {\n if (styles !== null && tag === 'SPAN') {\n ele.setAttribute('style', styles);\n }\n };\n // Below function is used to insert the element created by the format painter plugin.\n SelectionCommands.insertFormatPainterElem = function (nodes, index, range, nodeCutter, painterValues, domNode) {\n var parent = !domNode.isBlockNode(nodes[index].parentElement) ?\n nodes[index].parentElement : nodes[index];\n if (!domNode.isBlockNode(parent)) {\n while (parent.textContent.trim() === parent.parentElement.textContent.trim() && !domNode.isBlockNode(parent.parentElement)) {\n parent = parent.parentElement;\n }\n }\n // The below code is used to remove the already present inline style from the text node.\n if (!isNOU(parent) && parent.nodeType === 1 && !(parent.classList.contains('e-rte-img-caption') || parent.classList.contains('e-img-inner'))) {\n this.formatPainterCleanup(index, nodes, parent, range, nodeCutter, domNode);\n }\n var elem = painterValues.element;\n // The below code is used to apply the inline format copied.\n if (!isNOU(elem)) {\n // Step 1: Cloning the element that is created by format painter.\n // Step 2: Finding the last child of the nested elememt using the paintervalues.lastchild nodename\n // Step 3: Assigning the nodes[index] text content to the last child element.\n // Step 4: Wrapping the cloned element with the nodes[index]\n var clonedElement = elem.cloneNode(true);\n var elemList = clonedElement.querySelectorAll(painterValues.lastChild.nodeName);\n var lastElement = void 0;\n if (elemList.length > 0) {\n lastElement = elemList[elemList.length - 1];\n }\n else {\n if (!isNOU(clonedElement) && clonedElement.nodeName === painterValues.lastChild.nodeName) {\n lastElement = clonedElement;\n }\n }\n lastElement.textContent = nodes[index].textContent;\n var lastChild = lastElement.childNodes[0];\n nodes[index] = InsertMethods.Wrap(nodes[index], clonedElement);\n nodes[index].textContent = '';\n nodes[index] = lastChild;\n }\n return nodes[index];\n };\n SelectionCommands.formatPainterCleanup = function (index, nodes, parent, range, nodeCutter, domNode) {\n var INVALID_TAGS = ['A', 'AUDIO', 'IMG', 'VIDEO', 'IFRAME'];\n if (index === 0 && parent.textContent.trim() !== nodes[index].textContent.trim()) {\n nodeCutter.SplitNode(range, parent, true);\n var childELemList = nodes[index].parentElement.childNodes;\n for (var i = 0; i < childELemList.length; i++) {\n if (childELemList[i].textContent.trim() === nodes[i].textContent.trim()) {\n parent.parentNode.insertBefore(childELemList[i], parent);\n break;\n }\n }\n var blockChildNodes = parent.parentElement.childNodes;\n for (var k = 0; k < blockChildNodes.length; k++) {\n if (blockChildNodes[k].textContent.trim() === '' || blockChildNodes[k].textContent.length === 0) {\n detach(blockChildNodes[k]);\n }\n }\n }\n else if (parent.textContent.trim() !== nodes[index].textContent.trim()) {\n parent.parentElement.insertBefore(nodes[index], parent);\n }\n else {\n while (!isNOU(parent) && parent.nodeType !== 3 && !domNode.isBlockNode(parent)) {\n var temp = void 0;\n for (var i = 0; i < parent.childNodes.length; i++) {\n var currentChild = parent.childNodes[i];\n if (currentChild.textContent.trim().length !== 0 && currentChild.nodeType !== 3) {\n temp = parent.childNodes[i];\n }\n }\n if (INVALID_TAGS.indexOf(parent.tagName) === -1) {\n InsertMethods.unwrap(parent);\n }\n parent = temp;\n }\n }\n };\n SelectionCommands.enterAction = 'P';\n return SelectionCommands;\n}());\nexport { SelectionCommands };\n","import * as CONSTANT from './../base/constant';\nimport { SelectionCommands } from './selection-commands';\nimport * as EVENTS from './../../common/constant';\n/**\n * Selection EXEC internal component\n *\n * @hidden\n\n */\nvar SelectionBasedExec = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function SelectionBasedExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n SelectionBasedExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.SELECTION_TYPE, this.applySelection, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.keyDownHandler, this);\n };\n SelectionBasedExec.prototype.keyDownHandler = function (e) {\n var validFormats = ['bold', 'italic', 'underline', 'strikethrough', 'superscript',\n 'subscript', 'uppercase', 'lowercase'];\n if (e.event.ctrlKey && validFormats.indexOf(e.event.action) > -1) {\n e.event.preventDefault();\n SelectionCommands.applyFormat(this.parent.currentDocument, e.event.action, this.parent.editableElement, e.enterAction);\n this.callBack(e, e.event.action);\n }\n };\n SelectionBasedExec.prototype.applySelection = function (e) {\n SelectionCommands.applyFormat(this.parent.currentDocument, e.subCommand.toLocaleLowerCase(), this.parent.editableElement, e.enterAction, e.value, e.selector);\n this.callBack(e, e.subCommand);\n };\n SelectionBasedExec.prototype.callBack = function (event, action) {\n if (event.callBack) {\n event.callBack({\n requestType: action,\n event: event.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return SelectionBasedExec;\n}());\nexport { SelectionBasedExec };\n","import * as CONSTANT from './../base/constant';\nimport { InsertHtml } from './inserthtml';\n/**\n * Selection EXEC internal component\n *\n * @hidden\n\n */\nvar InsertHtmlExec = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - sepcifies the parent element\n * @hidden\n\n */\n function InsertHtmlExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n InsertHtmlExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.INSERTHTML_TYPE, this.applyHtml, this);\n };\n InsertHtmlExec.prototype.applyHtml = function (e) {\n InsertHtml.Insert(this.parent.currentDocument, e.value, this.parent.editableElement, true, e.enterAction);\n if (e.subCommand === 'pasteCleanup') {\n var pastedElements = this.parent.editableElement.querySelectorAll('.pasteContent_RTE');\n var allPastedElements = [].slice.call(pastedElements);\n var imgElements = this.parent.editableElement.querySelectorAll('.pasteContent_Img');\n var allImgElm = [].slice.call(imgElements);\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n elements: allPastedElements,\n imgElem: allImgElm\n });\n }\n else {\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n }\n };\n return InsertHtmlExec;\n}());\nexport { InsertHtmlExec };\n","/**\n * `Clear Format` module is used to handle Clear Format.\n */\nimport { closest } from '@syncfusion/ej2-base';\nimport { NodeSelection } from './../../selection/index';\nimport { NodeCutter } from './nodecutter';\nimport { DOMNode } from './dom-node';\nimport { InsertMethods } from './insert-methods';\nimport { IsFormatted } from './isformatted';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\nvar ClearFormat = /** @class */ (function () {\n function ClearFormat() {\n }\n /**\n * clear method\n *\n * @param {Document} docElement - specifies the document element.\n * @param {Node} endNode - specifies the end node\n * @param {string} enterAction - specifies the enter key action\n * @param {string} selector - specifies the string value\n * @param {string} command - specifies the command value\n * @returns {void}\n * @hidden\n\n */\n ClearFormat.clear = function (docElement, endNode, enterAction, selector, command) {\n this.domNode = new DOMNode(endNode, docElement);\n this.defaultTag = enterAction === 'P' ? this.defaultTag : 'div';\n var nodeSelection = new NodeSelection();\n var nodeCutter = new NodeCutter();\n var range = nodeSelection.getRange(docElement);\n var nodes = range.collapsed ? nodeSelection.getSelectionNodeCollection(range) :\n nodeSelection.getSelectionNodeCollectionBr(range);\n var save = nodeSelection.save(range, docElement);\n var cursorRange = false;\n if (range.collapsed && command !== 'ClearFormat') {\n cursorRange = true;\n range = nodeCutter.GetCursorRange(docElement, range, nodes[0]);\n }\n var isCollapsed = range.collapsed;\n if (!isCollapsed) {\n var preNode = void 0;\n if (nodes.length > 0 && nodes[0].nodeName === 'BR' && closest(nodes[0], 'table')) {\n preNode = nodeCutter.GetSpliceNode(range, closest(nodes[0], 'table'));\n }\n else {\n preNode = nodeCutter.GetSpliceNode(range, nodes[nodes.length > 1 && nodes[0].nodeName === 'IMG' ? 1 : 0]);\n }\n if (nodes.length === 1) {\n nodeSelection.setSelectionContents(docElement, preNode);\n range = nodeSelection.getRange(docElement);\n }\n else if (nodes.length > 1) {\n var i = 1;\n var lastText = nodes[nodes.length - i];\n while (nodes.length <= i && nodes[nodes.length - i].nodeName === 'BR') {\n i++;\n lastText = nodes[nodes.length - i];\n }\n var lasNode = nodeCutter.GetSpliceNode(range, lastText);\n nodeSelection.setSelectionText(docElement, preNode, lasNode, 0, (lasNode.nodeType === 3) ?\n lasNode.textContent.length : lasNode.childNodes.length);\n range = nodeSelection.getRange(docElement);\n }\n var exactNodes = nodeSelection.getNodeCollection(range);\n var cloneSelectNodes = exactNodes.slice();\n this.clearInlines(nodeSelection.getSelectionNodes(cloneSelectNodes), cloneSelectNodes, nodeSelection.getRange(docElement), nodeCutter, endNode);\n this.reSelection(docElement, save, exactNodes);\n range = nodeSelection.getRange(docElement);\n exactNodes = nodeSelection.getNodeCollection(range);\n var cloneParentNodes = exactNodes.slice();\n this.clearBlocks(docElement, cloneParentNodes, endNode, nodeCutter, nodeSelection);\n if (isIDevice()) {\n setEditFrameFocus(endNode, selector);\n }\n this.reSelection(docElement, save, exactNodes);\n }\n if (cursorRange) {\n nodeSelection.setCursorPoint(docElement, range.endContainer, range.endOffset);\n }\n };\n ClearFormat.reSelection = function (docElement, save, exactNodes) {\n var selectionNodes = save.getInsertNodes(exactNodes);\n save.startContainer = save.getNodeArray(selectionNodes[0], true, docElement);\n save.startOffset = 0;\n save.endContainer = save.getNodeArray(selectionNodes[selectionNodes.length - 1], false, docElement);\n var endIndexNode = selectionNodes[selectionNodes.length - 1];\n save.endOffset = (endIndexNode.nodeType === 3) ? endIndexNode.textContent.length\n : endIndexNode.childNodes.length;\n save.restore();\n };\n ClearFormat.clearBlocks = function (docElement, nodes, endNode, nodeCutter, nodeSelection) {\n var parentNodes = [];\n for (var index = 0; index < nodes.length; index++) {\n if (this.BLOCK_TAGS.indexOf(nodes[index].nodeName.toLocaleLowerCase()) > -1\n && parentNodes.indexOf(nodes[index]) === -1) {\n parentNodes.push(nodes[index]);\n }\n else if ((this.BLOCK_TAGS.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1)\n && parentNodes.indexOf(nodes[index].parentNode) === -1\n && endNode !== nodes[index].parentNode) {\n parentNodes.push(nodes[index].parentNode);\n }\n }\n parentNodes = this.spliceParent(parentNodes, nodes)[0];\n parentNodes = this.removeParent(parentNodes);\n this.unWrap(docElement, parentNodes, nodeCutter, nodeSelection);\n };\n ClearFormat.spliceParent = function (parentNodes, nodes) {\n for (var index1 = 0; index1 < parentNodes.length; index1++) {\n var len = parentNodes[index1].childNodes.length;\n for (var index2 = 0; index2 < len; index2++) {\n if ((nodes.indexOf(parentNodes[index1].childNodes[index2]) > 0)\n && (parentNodes[index1].childNodes[index2].childNodes.length > 0)) {\n nodes = this.spliceParent([parentNodes[index1].childNodes[index2]], nodes)[1];\n }\n if ((nodes.indexOf(parentNodes[index1].childNodes[index2]) <= -1) &&\n (parentNodes[index1].childNodes[index2].textContent.trim() !== '')) {\n for (var index3 = 0; index3 < len; index3++) {\n if (nodes.indexOf(parentNodes[index1].childNodes[index3]) > -1) {\n nodes.splice(nodes.indexOf(parentNodes[index1].childNodes[index3]), 1);\n }\n }\n index2 = parentNodes[index1].childNodes.length;\n var parentIndex = parentNodes.indexOf(parentNodes[index1].parentNode);\n var nodeIndex = nodes.indexOf(parentNodes[index1].parentNode);\n if (parentIndex > -1) {\n parentNodes.splice(parentIndex, 1);\n }\n if (nodeIndex > -1) {\n nodes.splice(nodeIndex, 1);\n }\n var elementIndex = nodes.indexOf(parentNodes[index1]);\n if (elementIndex > -1) {\n nodes.splice(elementIndex, 1);\n }\n parentNodes.splice(index1, 1);\n index1--;\n }\n }\n }\n return [parentNodes, nodes];\n };\n ClearFormat.removeChild = function (parentNodes, parentNode) {\n var count = parentNode.childNodes.length;\n if (count > 0) {\n for (var index = 0; index < count; index++) {\n if (parentNodes.indexOf(parentNode.childNodes[index]) > -1) {\n parentNodes = this.removeChild(parentNodes, parentNode.childNodes[index]);\n parentNodes.splice(parentNodes.indexOf(parentNode.childNodes[index]), 1);\n }\n }\n }\n return parentNodes;\n };\n ClearFormat.removeParent = function (parentNodes) {\n for (var index = 0; index < parentNodes.length; index++) {\n if (parentNodes.indexOf(parentNodes[index].parentNode) > -1) {\n parentNodes = this.removeChild(parentNodes, parentNodes[index]);\n parentNodes.splice(index, 1);\n index--;\n }\n }\n return parentNodes;\n };\n ClearFormat.unWrap = function (docElement, parentNodes, nodeCutter, nodeSelection) {\n for (var index1 = 0; index1 < parentNodes.length; index1++) {\n if (this.NONVALID_TAGS.indexOf(parentNodes[index1].nodeName.toLowerCase()) > -1\n && parentNodes[index1].parentNode\n && this.NONVALID_PARENT_TAGS.indexOf(parentNodes[index1].parentNode.nodeName.toLowerCase()) > -1) {\n nodeSelection.setSelectionText(docElement, parentNodes[index1], parentNodes[index1], 0, parentNodes[index1].childNodes.length);\n InsertMethods.unwrap(nodeCutter.GetSpliceNode(nodeSelection.getRange(docElement), parentNodes[index1].parentNode));\n }\n if (parentNodes[index1].nodeName.toLocaleLowerCase() !== 'p') {\n if (this.NONVALID_PARENT_TAGS.indexOf(parentNodes[index1].nodeName.toLowerCase()) < 0\n && parentNodes[index1].parentNode.nodeName.toLocaleLowerCase() !== 'p'\n && !((parentNodes[index1].nodeName.toLocaleLowerCase() === 'blockquote'\n || parentNodes[index1].nodeName.toLocaleLowerCase() === 'li')\n && this.IGNORE_PARENT_TAGS.indexOf(parentNodes[index1].childNodes[0].nodeName.toLocaleLowerCase()) > -1)\n && !(parentNodes[index1].childNodes.length === 1\n && parentNodes[index1].childNodes[0].nodeName.toLocaleLowerCase() === 'p')) {\n InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));\n }\n var childNodes = InsertMethods.unwrap(parentNodes[index1]);\n if (childNodes.length === 1\n && childNodes[0].parentNode.nodeName.toLocaleLowerCase() === 'p') {\n InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));\n InsertMethods.unwrap(parentNodes[index1]);\n }\n for (var index2 = 0; index2 < childNodes.length; index2++) {\n if (this.NONVALID_TAGS.indexOf(childNodes[index2].nodeName.toLowerCase()) > -1) {\n this.unWrap(docElement, [childNodes[index2]], nodeCutter, nodeSelection);\n }\n else if (this.BLOCK_TAGS.indexOf(childNodes[index2].nodeName.toLocaleLowerCase()) > -1 &&\n childNodes[index2].nodeName.toLocaleLowerCase() !== 'p') {\n var blockNodes = this.removeParent([childNodes[index2]]);\n this.unWrap(docElement, blockNodes, nodeCutter, nodeSelection);\n }\n else if (this.BLOCK_TAGS.indexOf(childNodes[index2].nodeName.toLocaleLowerCase()) > -1 &&\n childNodes[index2].parentNode.nodeName.toLocaleLowerCase() ===\n childNodes[index2].nodeName.toLocaleLowerCase()) {\n InsertMethods.unwrap(childNodes[index2]);\n }\n else if (this.BLOCK_TAGS.indexOf(childNodes[index2].nodeName.toLocaleLowerCase()) > -1 &&\n childNodes[index2].nodeName.toLocaleLowerCase() === 'p') {\n InsertMethods.Wrap(childNodes[index2], docElement.createElement(this.defaultTag));\n InsertMethods.unwrap(childNodes[index2]);\n }\n }\n }\n else {\n InsertMethods.Wrap(parentNodes[index1], docElement.createElement(this.defaultTag));\n InsertMethods.unwrap(parentNodes[index1]);\n }\n }\n };\n ClearFormat.clearInlines = function (textNodes, nodes, range, nodeCutter, \n // eslint-disable-next-line\n endNode) {\n for (var index = 0; index < textNodes.length; index++) {\n var currentInlineNode = textNodes[index];\n var currentNode = void 0;\n while (!this.domNode.isBlockNode(currentInlineNode) &&\n (currentInlineNode.parentElement && !currentInlineNode.parentElement.classList.contains('e-img-inner'))) {\n currentNode = currentInlineNode;\n currentInlineNode = currentInlineNode.parentElement;\n }\n if (currentNode &&\n IsFormatted.inlineTags.indexOf(currentNode.nodeName.toLocaleLowerCase()) > -1) {\n nodeCutter.GetSpliceNode(range, currentNode);\n this.removeInlineParent(currentNode);\n }\n }\n };\n ClearFormat.removeInlineParent = function (textNodes) {\n var nodes = InsertMethods.unwrap(textNodes);\n for (var index = 0; index < nodes.length; index++) {\n if (nodes[index].parentNode.childNodes.length === 1 && !nodes[index].parentNode.classList.contains('e-img-inner')\n && IsFormatted.inlineTags.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1) {\n this.removeInlineParent(nodes[index].parentNode);\n }\n else if (IsFormatted.inlineTags.indexOf(nodes[index].nodeName.toLocaleLowerCase()) > -1) {\n this.removeInlineParent(nodes[index]);\n }\n }\n };\n ClearFormat.BLOCK_TAGS = ['address', 'article', 'aside', 'blockquote',\n 'details', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer',\n 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'li', 'main', 'nav',\n 'noscript', 'ol', 'p', 'pre', 'section', 'ul'];\n ClearFormat.NONVALID_PARENT_TAGS = ['thead', 'tbody', 'ul', 'ol', 'table', 'tfoot', 'tr'];\n ClearFormat.IGNORE_PARENT_TAGS = ['ul', 'ol', 'table'];\n ClearFormat.NONVALID_TAGS = ['thead', 'tbody', 'figcaption', 'td', 'tr', 'th', 'tfoot', 'figcaption', 'li'];\n ClearFormat.defaultTag = 'p';\n return ClearFormat;\n}());\nexport { ClearFormat };\n","import * as CONSTANT from './../base/constant';\nimport { ClearFormat } from './clearformat';\nimport * as EVENTS from './../../common/constant';\n/**\n * Clear Format EXEC internal component\n *\n * @hidden\n\n */\nvar ClearFormatExec = /** @class */ (function () {\n /**\n * Constructor for creating the Formats plugin\n *\n * @param {EditorManager} parent - specifies the parent element.\n * @returns {void}\n * @hidden\n\n */\n function ClearFormatExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n ClearFormatExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.CLEAR_TYPE, this.applyClear, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.onKeyDown, this);\n };\n ClearFormatExec.prototype.onKeyDown = function (e) {\n switch (e.event.action) {\n case 'clear-format':\n this.applyClear({ subCommand: 'ClearFormat', callBack: e.callBack, enterAction: e.enterAction });\n e.event.preventDefault();\n break;\n }\n };\n ClearFormatExec.prototype.applyClear = function (e) {\n if (e.subCommand === 'ClearFormat') {\n ClearFormat.clear(this.parent.currentDocument, this.parent.editableElement, e.enterAction, e.selector, e.subCommand);\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n event: e.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n }\n };\n return ClearFormatExec;\n}());\nexport { ClearFormatExec };\n","import { debounce, isNullOrUndefined, detach } from '@syncfusion/ej2-base';\nimport { NodeSelection } from './../../selection/selection';\nimport * as EVENTS from './../../common/constant';\nimport { isIDevice, setEditFrameFocus } from '../../common/util';\n/**\n * `Undo` module is used to handle undo actions.\n */\nvar UndoRedoManager = /** @class */ (function () {\n function UndoRedoManager(parent, options) {\n this.undoRedoStack = [];\n this.parent = parent;\n this.undoRedoSteps = !isNullOrUndefined(options) ? options.undoRedoSteps : 30;\n this.undoRedoTimer = !isNullOrUndefined(options) ? options.undoRedoTimer : 300;\n this.addEventListener();\n }\n UndoRedoManager.prototype.addEventListener = function () {\n var debounceListener = debounce(this.keyUp, this.undoRedoTimer);\n this.parent.observer.on(EVENTS.KEY_UP_HANDLER, debounceListener, this);\n this.parent.observer.on(EVENTS.KEY_DOWN_HANDLER, this.keyDown, this);\n this.parent.observer.on(EVENTS.ACTION, this.onAction, this);\n this.parent.observer.on(EVENTS.MODEL_CHANGED_PLUGIN, this.onPropertyChanged, this);\n };\n UndoRedoManager.prototype.onPropertyChanged = function (props) {\n for (var _i = 0, _a = Object.keys(props.newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'undoRedoSteps':\n this.undoRedoSteps = props.newProp.undoRedoSteps;\n break;\n case 'undoRedoTimer':\n this.undoRedoTimer = props.newProp.undoRedoTimer;\n break;\n }\n }\n };\n UndoRedoManager.prototype.removeEventListener = function () {\n this.parent.observer.off(EVENTS.KEY_UP_HANDLER, this.keyUp);\n this.parent.observer.off(EVENTS.KEY_DOWN_HANDLER, this.keyDown);\n this.parent.observer.off(EVENTS.ACTION, this.onAction);\n };\n /**\n * onAction method\n *\n * @param {IHtmlSubCommands} e - specifies the sub command\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.onAction = function (e) {\n if (e.subCommand === 'Undo') {\n this.undo(e);\n }\n else {\n this.redo(e);\n }\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.destroy = function () {\n this.removeEventListener();\n };\n UndoRedoManager.prototype.keyDown = function (e) {\n var event = e.event;\n // eslint-disable-next-line\n var proxy = this;\n switch (event.action) {\n case 'undo':\n event.preventDefault();\n proxy.undo(e);\n break;\n case 'redo':\n event.preventDefault();\n proxy.redo(e);\n break;\n }\n };\n UndoRedoManager.prototype.keyUp = function (e) {\n if (e.event.keyCode !== 17 && !e.event.ctrlKey) {\n this.saveData(e);\n }\n };\n UndoRedoManager.prototype.getTextContentFromFragment = function (fragment) {\n var textContent = '';\n for (var i = 0; i < fragment.childNodes.length; i++) {\n var childNode = fragment.childNodes[i];\n if (childNode.nodeType === Node.TEXT_NODE) {\n textContent += childNode.textContent;\n }\n else if (childNode.nodeType === Node.ELEMENT_NODE) {\n textContent += this.getTextContentFromFragment(childNode);\n }\n }\n return textContent;\n };\n /**\n * RTE collection stored html format.\n *\n * @function saveData\n * @param {KeyboardEvent} e - specifies the keyboard event\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.saveData = function (e) {\n var range = new NodeSelection().getRange(this.parent.currentDocument);\n var currentContainer = this.parent.editableElement === range.startContainer.parentElement ?\n range.startContainer.parentElement : range.startContainer;\n for (var i = currentContainer.childNodes.length - 1; i >= 0; i--) {\n if (!isNullOrUndefined(currentContainer.childNodes[i]) && currentContainer.childNodes[i].nodeName === '#text' &&\n currentContainer.childNodes[i].textContent.length === 0 && currentContainer.childNodes[i].nodeName !== 'IMG' &&\n currentContainer.childNodes[i].nodeName !== 'BR' && currentContainer.childNodes[i].nodeName && 'HR') {\n detach(currentContainer.childNodes[i]);\n }\n }\n range = new NodeSelection().getRange(this.parent.currentDocument);\n var save = new NodeSelection().save(range, this.parent.currentDocument);\n var clonedElement = this.parent.editableElement.cloneNode(true);\n var fragment = document.createDocumentFragment();\n while (clonedElement.firstChild) {\n fragment.appendChild(clonedElement.firstChild);\n }\n var changEle = { text: fragment, range: save };\n if (this.undoRedoStack.length >= this.steps) {\n this.undoRedoStack = this.undoRedoStack.slice(0, this.steps + 1);\n }\n if (this.undoRedoStack.length > 1 && (this.undoRedoStack[this.undoRedoStack.length - 1].range.range.collapsed === range.collapsed)\n && (this.undoRedoStack[this.undoRedoStack.length - 1].range.startOffset === save.range.startOffset) &&\n (this.undoRedoStack[this.undoRedoStack.length - 1].range.endOffset === save.range.endOffset) &&\n (this.undoRedoStack[this.undoRedoStack.length - 1].range.range.startContainer === save.range.startContainer) &&\n (this.getTextContentFromFragment(this.undoRedoStack[this.undoRedoStack.length - 1].text).trim() ===\n this.getTextContentFromFragment(changEle.text).trim())) {\n return;\n }\n this.undoRedoStack.push(changEle);\n this.steps = this.undoRedoStack.length - 1;\n if (this.steps > this.undoRedoSteps) {\n this.undoRedoStack.shift();\n this.steps--;\n }\n if (e && e.callBack) {\n e.callBack();\n }\n };\n /**\n * Undo the editable text.\n *\n * @function undo\n * @param {IHtmlSubCommands} e - specifies the sub commands\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.undo = function (e) {\n if (this.steps > 0) {\n var range = this.undoRedoStack[this.steps - 1].range;\n var removedContent = this.undoRedoStack[this.steps - 1].text;\n this.parent.editableElement.innerHTML = '';\n this.parent.editableElement.appendChild(removedContent.cloneNode(true));\n this.parent.editableElement.focus();\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n range.restore();\n this.steps--;\n if (e.callBack) {\n e.callBack({\n requestType: 'Undo',\n editorMode: 'HTML',\n range: range,\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument),\n event: e.event\n });\n }\n }\n };\n /**\n * Redo the editable text.\n *\n * @param {IHtmlSubCommands} e - specifies the sub commands\n * @function redo\n * @returns {void}\n * @hidden\n\n */\n UndoRedoManager.prototype.redo = function (e) {\n if (this.undoRedoStack[this.steps + 1] != null) {\n var range = this.undoRedoStack[this.steps + 1].range;\n var addedContent = this.undoRedoStack[this.steps + 1].text;\n this.parent.editableElement.innerHTML = '';\n this.parent.editableElement.appendChild(addedContent.cloneNode(true));\n this.parent.editableElement.focus();\n if (isIDevice()) {\n setEditFrameFocus(this.parent.editableElement, e.selector);\n }\n range.restore();\n this.steps++;\n if (e.callBack) {\n e.callBack({\n requestType: 'Redo',\n editorMode: 'HTML',\n range: range,\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument),\n event: e.event\n });\n }\n }\n };\n /**\n * getUndoStatus method\n *\n * @returns {boolean} - returns the boolean value\n * @hidden\n\n */\n UndoRedoManager.prototype.getUndoStatus = function () {\n var status = { undo: false, redo: false };\n if (this.steps > 0) {\n status.undo = true;\n }\n if (this.undoRedoStack[this.steps + 1] != null) {\n status.redo = true;\n }\n return status;\n };\n return UndoRedoManager;\n}());\nexport { UndoRedoManager };\n","import * as EVENTS from '../../common/constant';\nimport { createElement, isNullOrUndefined as isNOU, detach } from '@syncfusion/ej2-base';\n/**\n * PasteCleanup for MsWord content\n *\n * @hidden\n\n */\nvar MsWordPaste = /** @class */ (function () {\n function MsWordPaste(parent) {\n this.olData = [\n 'decimal',\n 'lower-alpha',\n 'lower-roman',\n 'upper-alpha',\n 'upper-roman',\n 'lower-greek'\n ];\n this.ulData = [\n 'disc',\n 'square',\n 'circle',\n 'disc',\n 'square',\n 'circle'\n ];\n this.ignorableNodes = ['A', 'APPLET', 'B', 'BLOCKQUOTE', 'BR',\n 'BUTTON', 'CENTER', 'CODE', 'COL', 'COLGROUP', 'DD', 'DEL', 'DFN', 'DIR', 'DIV',\n 'DL', 'DT', 'EM', 'FIELDSET', 'FONT', 'FORM', 'FRAME', 'FRAMESET', 'H1', 'H2',\n 'H3', 'H4', 'H5', 'H6', 'HR', 'I', 'IMG', 'IFRAME', 'INPUT', 'INS', 'LABEL',\n 'LI', 'OL', 'OPTION', 'P', 'PARAM', 'PRE', 'Q', 'S', 'SELECT', 'SPAN', 'STRIKE',\n 'STRONG', 'SUB', 'SUP', 'TABLE', 'TBODY', 'TD', 'TEXTAREA', 'TFOOT', 'TH',\n 'THEAD', 'TITLE', 'TR', 'TT', 'U', 'UL'];\n this.blockNode = ['div', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n 'address', 'blockquote', 'button', 'center', 'dd', 'dir', 'dl', 'dt', 'fieldset',\n 'frameset', 'hr', 'iframe', 'isindex', 'li', 'map', 'menu', 'noframes', 'noscript',\n 'object', 'ol', 'pre', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'tr', 'ul',\n 'header', 'article', 'nav', 'footer', 'section', 'aside', 'main', 'figure', 'figcaption'];\n this.borderStyle = ['border-top', 'border-right', 'border-bottom', 'border-left'];\n this.upperRomanNumber = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX',\n 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX'];\n this.lowerRomanNumber = ['i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii', 'ix',\n 'x', 'xi', 'xii', 'xiii', 'xiv', 'xv', 'xvi', 'xvii', 'xviii', 'xix', 'xx'];\n this.lowerGreekNumber = ['α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ',\n 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω'];\n this.removableElements = ['o:p', 'style'];\n this.listContents = [];\n this.parent = parent;\n this.addEventListener();\n }\n MsWordPaste.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.MS_WORD_CLEANUP_PLUGIN, this.wordCleanup, this);\n };\n MsWordPaste.prototype.wordCleanup = function (e) {\n var wordPasteStyleConfig = !isNOU(e.allowedStylePropertiesArray) ? e.allowedStylePropertiesArray : [];\n var listNodes = [];\n var tempHTMLContent = e.args.clipboardData.getData('text/HTML');\n var rtfData = e.args.clipboardData.getData('text/rtf');\n var elm = createElement('p');\n elm.setAttribute('id', 'MSWord-Content');\n elm.innerHTML = tempHTMLContent;\n var patern = /class='?Mso|style='[^ ]*\\bmso-/i;\n var patern2 = /class=\"?Mso|style=\"[^ ]*\\bmso-/i;\n var patern3 = /(class=\"?Mso|class='?Mso|class=\"?Xl|class='?Xl|class=Xl|style=\"[^\"]*\\bmso-|style='[^']*\\bmso-|w:WordDocument)/gi;\n var pattern4 = /style='mso-width-source:/i;\n if (patern.test(tempHTMLContent) || patern2.test(tempHTMLContent) || patern3.test(tempHTMLContent) ||\n pattern4.test(tempHTMLContent)) {\n this.imageConversion(elm, rtfData);\n tempHTMLContent = tempHTMLContent.replace(/]+>/i, '');\n this.addListClass(elm);\n listNodes = this.cleanUp(elm, listNodes);\n if (!isNOU(listNodes[0]) && listNodes[0].parentElement.tagName !== 'UL' &&\n listNodes[0].parentElement.tagName !== 'OL') {\n this.listConverter(listNodes);\n }\n this.cleanList(elm, 'UL');\n this.cleanList(elm, 'OL');\n this.styleCorrection(elm, wordPasteStyleConfig);\n this.removingComments(elm);\n this.removeUnwantedElements(elm);\n this.removeEmptyElements(elm);\n this.removeEmptyAnchorTag(elm);\n this.breakLineAddition(elm);\n this.removeClassName(elm);\n if (pattern4.test(tempHTMLContent)) {\n this.addTableBorderClass(elm);\n }\n // Removing the margin for list items\n var liChildren = elm.querySelectorAll('li');\n if (liChildren.length > 0) {\n for (var i = 0; i < liChildren.length; i++) {\n if (!isNOU(liChildren[i].style.marginLeft)) {\n liChildren[i].style.marginLeft = '';\n }\n }\n }\n e.callBack(elm.innerHTML);\n }\n else {\n e.callBack(elm.innerHTML);\n }\n };\n MsWordPaste.prototype.cleanList = function (elm, listTag) {\n var replacableElem = elm.querySelectorAll(listTag + ' div');\n for (var j = replacableElem.length - 1; j >= 0; j--) {\n var parentElem = replacableElem[j].parentNode;\n while (replacableElem[j].firstChild) {\n parentElem.insertBefore(replacableElem[j].firstChild, replacableElem[j]);\n }\n var closestListElem = this.findClosestListElem(replacableElem[j]);\n if (closestListElem) {\n this.insertAfter(replacableElem[j], closestListElem);\n }\n }\n };\n MsWordPaste.prototype.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n MsWordPaste.prototype.findClosestListElem = function (listElem) {\n var closestListElem;\n while (!isNOU(listElem)) {\n listElem = !isNOU(listElem.closest('ul')) && listElem.tagName !== 'UL' ?\n listElem.closest('ul') : (listElem.tagName !== 'OL' ? listElem.closest('ol') : null);\n closestListElem = !isNOU(listElem) ? listElem : closestListElem;\n }\n return closestListElem;\n };\n MsWordPaste.prototype.addListClass = function (elm) {\n var allNodes = elm.querySelectorAll('*');\n for (var index = 0; index < allNodes.length; index++) {\n if (!isNOU(allNodes[index].getAttribute('style')) && allNodes[index].getAttribute('style').replace(/ /g, '').replace('\\n', '').indexOf('mso-list:l') >= 0 &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') === -1 &&\n allNodes[index].tagName.charAt(0) !== 'H' && allNodes[index].tagName !== 'LI' &&\n allNodes[index].tagName !== 'OL' && allNodes[index].tagName !== 'UL') {\n allNodes[index].classList.add('msolistparagraph');\n }\n }\n };\n MsWordPaste.prototype.addTableBorderClass = function (elm) {\n var allTableElm = elm.querySelectorAll('table');\n var hasTableBorder = false;\n for (var i = 0; i < allTableElm.length; i++) {\n for (var j = 0; j < this.borderStyle.length; j++) {\n if (allTableElm[i].innerHTML.indexOf(this.borderStyle[j]) >= 0) {\n hasTableBorder = true;\n break;\n }\n }\n if (hasTableBorder) {\n allTableElm[i].classList.add('e-rte-table-border');\n hasTableBorder = false;\n }\n }\n };\n MsWordPaste.prototype.imageConversion = function (elm, rtfData) {\n this.checkVShape(elm);\n var imgElem = elm.querySelectorAll('img');\n for (var i = 0; i < imgElem.length; i++) {\n if (!isNOU(imgElem[i].getAttribute('v:shapes')) &&\n imgElem[i].getAttribute('v:shapes').indexOf('Picture') < 0 &&\n imgElem[i].getAttribute('v:shapes').indexOf('圖片') < 0 &&\n imgElem[i].getAttribute('v:shapes').indexOf('Grafik') < 0 &&\n imgElem[i].getAttribute('v:shapes').toLowerCase().indexOf('image') < 0 &&\n imgElem[i].getAttribute('v:shapes').indexOf('Graphic') < 0) {\n detach(imgElem[i]);\n }\n }\n imgElem = elm.querySelectorAll('img');\n var imgSrc = [];\n var base64Src = [];\n var imgName = [];\n // eslint-disable-next-line\n var linkRegex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)|(www\\.))(\\S+))/gi);\n if (imgElem.length > 0) {\n for (var i = 0; i < imgElem.length; i++) {\n imgSrc.push(imgElem[i].getAttribute('src'));\n imgName.push(imgElem[i].getAttribute('src').split('/')[imgElem[i].getAttribute('src').split('/').length - 1].split('.')[0]);\n }\n var hexValue = this.hexConversion(rtfData);\n for (var i = 0; i < hexValue.length; i++) {\n base64Src.push(this.convertToBase64(hexValue[i]));\n }\n for (var i = 0; i < imgElem.length; i++) {\n if (imgSrc[i].match(linkRegex)) {\n imgElem[i].setAttribute('src', imgSrc[i]);\n }\n else {\n imgElem[i].setAttribute('src', base64Src[i]);\n }\n imgElem[i].setAttribute('id', 'msWordImg-' + imgName[i]);\n }\n }\n };\n MsWordPaste.prototype.checkVShape = function (elm) {\n var allNodes = elm.querySelectorAll('*');\n for (var i = 0; i < allNodes.length; i++) {\n switch (allNodes[i].nodeName) {\n case 'V:SHAPETYPE':\n detach(allNodes[i]);\n break;\n case 'V:SHAPE':\n if (allNodes[i].firstElementChild.nodeName === 'V:IMAGEDATA') {\n var src = allNodes[i].firstElementChild.getAttribute('src');\n var imgElement = createElement('img');\n imgElement.setAttribute('src', src);\n allNodes[i].parentElement.insertBefore(imgElement, allNodes[i]);\n detach(allNodes[i]);\n }\n break;\n }\n }\n };\n MsWordPaste.prototype.convertToBase64 = function (hexValue) {\n var byteArr = this.conHexStringToBytes(hexValue.hex);\n var base64String = this.conBytesToBase64(byteArr);\n var base64 = hexValue.type ? 'data:' + hexValue.type + ';base64,' + base64String : null;\n return base64;\n };\n MsWordPaste.prototype.conBytesToBase64 = function (byteArr) {\n var base64Str = '';\n var base64Char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var byteArrLen = byteArr.length;\n for (var i = 0; i < byteArrLen; i += 3) {\n var array3 = byteArr.slice(i, i + 3);\n var array3length = array3.length;\n var array4 = [];\n if (array3length < 3) {\n for (var j = array3length; j < 3; j++) {\n array3[j] = 0;\n }\n }\n array4[0] = (array3[0] & 0xFC) >> 2;\n array4[1] = ((array3[0] & 0x03) << 4) | (array3[1] >> 4);\n array4[2] = ((array3[1] & 0x0F) << 2) | ((array3[2] & 0xC0) >> 6);\n array4[3] = array3[2] & 0x3F;\n for (var j = 0; j < 4; j++) {\n if (j <= array3length) {\n base64Str += base64Char.charAt(array4[j]);\n }\n else {\n base64Str += '=';\n }\n }\n }\n return base64Str;\n };\n MsWordPaste.prototype.conHexStringToBytes = function (hex) {\n var byteArr = [];\n var byteArrLen = hex.length / 2;\n for (var i = 0; i < byteArrLen; i++) {\n byteArr.push(parseInt(hex.substr(i * 2, 2), 16));\n }\n return byteArr;\n };\n MsWordPaste.prototype.hexConversion = function (rtfData) {\n // eslint-disable-next-line\n var picHead = /\\{\\\\pict[\\s\\S]+?\\\\bliptag\\-?\\d+(\\\\blipupi\\-?\\d+)?(\\{\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)?[\\s\\}]*?/;\n // eslint-disable-next-line security/detect-non-literal-regexp\n var pic = new RegExp('(?:(' + picHead.source + '))([\\\\da-fA-F\\\\s]+)\\\\}', 'g');\n var fullImg = rtfData.match(pic);\n var imgType;\n var result = [];\n if (!isNOU(fullImg)) {\n for (var i = 0; i < fullImg.length; i++) {\n if (picHead.test(fullImg[i])) {\n if (fullImg[i].indexOf('\\\\pngblip') !== -1) {\n imgType = 'image/png';\n }\n else if (fullImg[i].indexOf('\\\\jpegblip') !== -1) {\n imgType = 'image/jpeg';\n }\n else {\n continue;\n }\n result.push({\n hex: imgType ? fullImg[i].replace(picHead, '').replace(/[^\\da-fA-F]/g, '') : null,\n type: imgType\n });\n }\n }\n }\n return result;\n };\n MsWordPaste.prototype.removeClassName = function (elm) {\n var elmWithClass = elm.querySelectorAll('*[class]');\n for (var i = 0; i < elmWithClass.length; i++) {\n elmWithClass[i].removeAttribute('class');\n }\n };\n MsWordPaste.prototype.breakLineAddition = function (elm) {\n var allElements = elm.querySelectorAll('*');\n for (var i = 0; i < allElements.length; i++) {\n if (allElements[i].children.length === 0 && allElements[i].innerHTML === ' ' &&\n (allElements[i].innerHTML === ' ' && !allElements[i].closest('li')) &&\n !allElements[i].closest('td') && (allElements[i].nodeName !== 'SPAN' ||\n allElements[i].nodeName === 'SPAN' && (isNOU(allElements[i].previousElementSibling) &&\n isNOU(allElements[i].nextElementSibling)))) {\n var detachableElement = this.findDetachElem(allElements[i]);\n var brElement = createElement('br');\n if (!isNOU(detachableElement.parentElement)) {\n detachableElement.parentElement.insertBefore(brElement, detachableElement);\n detach(detachableElement);\n }\n }\n }\n };\n MsWordPaste.prototype.findDetachElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement) &&\n element.parentElement.textContent.trim() === '' && element.parentElement.tagName !== 'TD' &&\n isNOU(element.parentElement.querySelector('img'))) {\n removableElement = this.findDetachElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n return removableElement;\n };\n MsWordPaste.prototype.removeUnwantedElements = function (elm) {\n var innerElement = elm.innerHTML;\n for (var i = 0; i < this.removableElements.length; i++) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n var regExpStartElem = new RegExp('<' + this.removableElements[i] + '>', 'g');\n // eslint-disable-next-line security/detect-non-literal-regexp\n var regExpEndElem = new RegExp('', 'g');\n innerElement = innerElement.replace(regExpStartElem, '');\n innerElement = innerElement.replace(regExpEndElem, '');\n }\n elm.innerHTML = innerElement;\n elm.querySelectorAll(':empty');\n };\n MsWordPaste.prototype.findDetachEmptyElem = function (element) {\n var removableElement;\n if (!isNOU(element.parentElement)) {\n if (element.parentElement.textContent.trim() === '' &&\n element.parentElement.getAttribute('id') !== 'MSWord-Content' &&\n !(this.hasParentWithClass(element, 'MsoListParagraph')) &&\n isNOU(element.parentElement.querySelector('img'))) {\n removableElement = this.findDetachEmptyElem(element.parentElement);\n }\n else {\n removableElement = element;\n }\n }\n else {\n removableElement = null;\n }\n return removableElement;\n };\n MsWordPaste.prototype.hasParentWithClass = function (element, className) {\n var currentParentElem = element.parentElement;\n while (!isNOU(currentParentElem)) {\n if (currentParentElem.classList.contains(className)) {\n return true;\n }\n currentParentElem = currentParentElem.parentElement;\n }\n return false;\n };\n MsWordPaste.prototype.removeEmptyElements = function (element) {\n var emptyElements = element.querySelectorAll(':empty');\n for (var i = 0; i < emptyElements.length; i++) {\n if (!isNOU(emptyElements[i].closest('td')) &&\n !isNOU(emptyElements[i].closest('td').querySelector('.MsoNormal'))) {\n emptyElements[i].innerHTML = '-';\n }\n var lineWithDiv = true;\n if (emptyElements[i].tagName === 'DIV') {\n lineWithDiv = emptyElements[i].style.borderBottom === 'none' ||\n emptyElements[i].style.borderBottom === '' ? true : false;\n }\n if (emptyElements[i].tagName !== 'IMG' && emptyElements[i].tagName !== 'BR' &&\n emptyElements[i].tagName !== 'IFRAME' && emptyElements[i].tagName !== 'TD' &&\n emptyElements[i].tagName !== 'HR' && lineWithDiv) {\n var detachableElement = this.findDetachEmptyElem(emptyElements[i]);\n if (!isNOU(detachableElement)) {\n detach(detachableElement);\n }\n }\n }\n };\n MsWordPaste.prototype.styleCorrection = function (elm, wordPasteStyleConfig) {\n var styleElement = elm.querySelectorAll('style');\n if (styleElement.length > 0) {\n var styles = styleElement[0].innerHTML.match(/[\\S ]+\\s+{[\\s\\S]+?}/gi);\n var styleClassObject_1 = !isNOU(styles) ? this.findStyleObject(styles) : null;\n var keys = Object.keys(styleClassObject_1);\n var values = keys.map(function (key) {\n return styleClassObject_1[\"\" + key];\n });\n values = this.removeUnwantedStyle(values, wordPasteStyleConfig);\n this.filterStyles(elm, wordPasteStyleConfig);\n var resultElem = void 0;\n var fromClass = false;\n for (var i = 0; i < keys.length; i++) {\n if (keys[i].split('.')[0] === '') {\n resultElem = elm.getElementsByClassName(keys[i].split('.')[1]);\n fromClass = true;\n }\n else if (keys[i].split('.').length === 1 && keys[i].split('.')[0].indexOf('@') >= 0) {\n continue;\n }\n else if (keys[i].split('.').length === 1 && keys[i].split('.')[0].indexOf('@') < 0) {\n resultElem = elm.getElementsByTagName(keys[i]);\n }\n else {\n resultElem = elm.querySelectorAll(keys[i]);\n }\n for (var j = 0; j < resultElem.length; j++) {\n var styleProperty = resultElem[j].getAttribute('style');\n if (!isNOU(styleProperty) && styleProperty.trim() !== '') {\n var valueSplit = values[i].split(';');\n if (!fromClass) {\n for (var k = 0; k < valueSplit.length; k++) {\n if (styleProperty.indexOf(valueSplit[k].split(':')[0]) >= 0) {\n valueSplit.splice(k, 1);\n k--;\n }\n }\n }\n var changedValue = styleProperty + valueSplit.join(';') + ';';\n resultElem[j].setAttribute('style', changedValue);\n }\n else {\n values[i] = values[i].replace(/text-indent:-(.*?)(?=;|$)/gm, '');\n resultElem[j].setAttribute('style', values[i]);\n }\n }\n fromClass = false;\n }\n var listClass = ['MsoListParagraphCxSpFirst', 'MsoListParagraphCxSpMiddle', 'MsoListParagraphCxSpLast'];\n for (var i = 0; i < listClass.length; i++) {\n if (keys.indexOf('li.' + listClass[i]) > -1) {\n var olULElems = elm.querySelectorAll('ol.' + listClass[i] + ', ul.' + listClass[i]);\n for (var j = 0; j < olULElems.length; j++) {\n var styleProperty = olULElems[j].getAttribute('style');\n if (!isNOU(styleProperty) && styleProperty.trim() !== '' && olULElems[j].style.marginLeft !== '') {\n var valueSplit = values[keys.indexOf('li.' + listClass[i])].split(';');\n for (var k = 0; k < valueSplit.length; k++) {\n if ('margin-left'.indexOf(valueSplit[k].split(':')[0]) >= 0) {\n if (!isNOU(valueSplit[k].split(':')[1]) &&\n valueSplit[k].split(':')[1].indexOf('in') >= 0 &&\n olULElems[j].style.marginLeft.indexOf('in') >= 0) {\n var classStyle = parseFloat(valueSplit[k].split(':')[1].split('in')[0]);\n var inlineStyle = parseFloat(olULElems[j].style.marginLeft.split('in')[0]);\n olULElems[j].style.marginLeft = (inlineStyle - classStyle) + 'in';\n }\n }\n }\n }\n }\n }\n }\n }\n };\n MsWordPaste.prototype.filterStyles = function (elm, wordPasteStyleConfig) {\n var elmWithStyles = elm.querySelectorAll('*[style]');\n for (var i = 0; i < elmWithStyles.length; i++) {\n var elemStyleProperty = elmWithStyles[i].getAttribute('style').split(';');\n var styleValue = '';\n for (var j = 0; j < elemStyleProperty.length; j++) {\n if (wordPasteStyleConfig.indexOf(elemStyleProperty[j].split(':')[0].trim()) >= 0) {\n styleValue += elemStyleProperty[j] + ';';\n }\n }\n elmWithStyles[i].setAttribute('style', styleValue);\n }\n };\n MsWordPaste.prototype.removeUnwantedStyle = function (values, wordPasteStyleConfig) {\n for (var i = 0; i < values.length; i++) {\n var styleValues = values[i].split(';');\n values[i] = '';\n for (var j = 0; j < styleValues.length; j++) {\n if (wordPasteStyleConfig.indexOf(styleValues[j].split(':')[0]) >= 0) {\n values[i] += styleValues[j] + ';';\n }\n }\n }\n return values;\n };\n MsWordPaste.prototype.findStyleObject = function (styles) {\n var styleClassObject = {};\n for (var i = 0; i < styles.length; i++) {\n var tempStyle = styles[i];\n var classNameCollection = tempStyle.replace(/([\\S ]+\\s+){[\\s\\S]+?}/gi, '$1');\n var stylesCollection = tempStyle.replace(/[\\S ]+\\s+{([\\s\\S]+?)}/gi, '$1');\n classNameCollection = classNameCollection.replace(/^[\\s]|[\\s]$/gm, '');\n stylesCollection = stylesCollection.replace(/^[\\s]|[\\s]$/gm, '');\n classNameCollection = classNameCollection.replace(/\\n|\\r|\\n\\r/g, '');\n stylesCollection = stylesCollection.replace(/\\n|\\r|\\n\\r/g, '');\n for (var classNames = classNameCollection.split(', '), j = 0; j < classNames.length; j++) {\n styleClassObject[classNames[j]] = stylesCollection;\n }\n }\n return styleClassObject;\n };\n MsWordPaste.prototype.removingComments = function (elm) {\n var innerElement = elm.innerHTML;\n innerElement = innerElement.replace(//g, '');\n elm.innerHTML = innerElement;\n };\n MsWordPaste.prototype.cleanUp = function (node, listNodes) {\n var tempCleaner = [];\n var prevflagState;\n var allNodes = node.querySelectorAll('*');\n for (var index = 0; index < allNodes.length; index++) {\n if (this.ignorableNodes.indexOf(allNodes[index].nodeName) === -1 ||\n (allNodes[index].nodeType === 3 && allNodes[index].textContent.trim() === '')) {\n tempCleaner.push(allNodes[index]);\n continue;\n }\n else if (allNodes[index].className &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 &&\n !isNOU(allNodes[index].getAttribute('style')) &&\n allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0) {\n if (allNodes[index].className.indexOf('MsoListParagraphCxSpFirst') >= 0 && listNodes.length > 0 &&\n listNodes[listNodes.length - 1] !== null) {\n listNodes.push(null);\n }\n listNodes.push(allNodes[index]);\n }\n if (prevflagState && (this.blockNode.indexOf(allNodes[index].nodeName.toLowerCase()) !== -1) &&\n !(allNodes[index].className &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 && !isNOU(allNodes[index].getAttribute('style')) &&\n allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0)) {\n listNodes.push(null);\n }\n if (this.blockNode.indexOf(allNodes[index].nodeName.toLowerCase()) !== -1) {\n if (allNodes[index].className &&\n allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 && !isNOU(allNodes[index].getAttribute('style')) &&\n allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0) {\n prevflagState = true;\n }\n else {\n prevflagState = false;\n }\n }\n }\n if (listNodes.length && (listNodes[listNodes.length - 1] !== null)) {\n listNodes.push(null);\n }\n return listNodes;\n };\n MsWordPaste.prototype.listConverter = function (listNodes) {\n var level;\n var data = [];\n var collection = [];\n var content = '';\n var stNode;\n var currentListStyle = '';\n for (var i = 0; i < listNodes.length; i++) {\n if (listNodes[i] === null) {\n data.push({ content: this.makeConversion(collection), node: listNodes[i - 1] });\n collection = [];\n continue;\n }\n if (listNodes[i].getAttribute('style') && listNodes[i].getAttribute('style').indexOf('mso-outline-level') !== -1) {\n listNodes[i].setAttribute('style', listNodes[i].getAttribute('style').replace('mso-outline-level', 'mso-outline'));\n }\n content = listNodes[i].getAttribute('style');\n if (content && content.indexOf('level') !== -1) {\n // eslint-disable-next-line\n level = parseInt(content.charAt(content.indexOf('level') + 5), null);\n }\n else {\n level = 1;\n }\n this.listContents = [];\n this.getListContent(listNodes[i]);\n var type = void 0;\n var listStyleType = void 0;\n var startAttr = void 0;\n var styleMarginLeft = void 0;\n if (!isNOU(this.listContents[0])) {\n type = this.listContents[0].trim().length > 1 ? 'ol' : 'ul';\n listStyleType = this.getlistStyleType(this.listContents[0], type);\n if (type === 'ol' && (i === 0 || listNodes[i - 1] === null)) {\n var startString = this.listContents[0].split('.')[0];\n var listTypes = ['A', 'a', 'I', 'i', 'α', '1', '1-']; // Add '1-' for rare list type.\n if (listTypes.indexOf(startString) === -1) {\n if (listStyleType === 'decimal') {\n // Bug in getlistStyleType() list style stype is returned as decimal for nested list with start attribute\n if (!isNaN(parseInt(startString, 10))) {\n startAttr = parseInt(startString, 10);\n }\n }\n else if (listStyleType === 'upper-alpha') {\n startAttr = (startString.split('.')[0].charCodeAt(0) - 64);\n }\n else if (listStyleType === 'lower-alpha') {\n startAttr = (startString.split('.')[0].charCodeAt(0) - 96);\n }\n else if (listStyleType === 'upper-roman') {\n startAttr = this.upperRomanNumber.indexOf(this.listContents[0].split('.')[0]) + 1;\n }\n else if (listStyleType === 'lower-roman') {\n startAttr = this.lowerRomanNumber.indexOf(this.listContents[0].split('.')[0]) + 1;\n }\n else if (listStyleType === 'lower-greek') {\n startAttr = this.lowerGreekNumber.indexOf(this.listContents[0].split('.')[0]) + 1;\n }\n }\n if (listNodes[i].style.marginLeft !== '') {\n styleMarginLeft = listNodes[i].style.marginLeft;\n }\n }\n var tempNode = [];\n for (var j = 1; j < this.listContents.length; j++) {\n tempNode.push(this.listContents[j]);\n }\n var currentClassName = void 0;\n if (!isNOU(listNodes[i].className)) {\n currentClassName = listNodes[i].className;\n }\n if (!isNOU(listNodes[i].getAttribute('style'))) {\n listNodes[i].setAttribute('style', listNodes[i].getAttribute('style').replace('text-align:start;', ''));\n if (listNodes[i].style.textAlign !== '') {\n listNodes[i].setAttribute('style', 'text-align:' + listNodes[i].style.textAlign);\n currentListStyle = listNodes[i].getAttribute('style');\n }\n }\n collection.push({ listType: type, content: tempNode, nestedLevel: level, class: currentClassName,\n listStyle: currentListStyle, listStyleTypeName: listStyleType, start: startAttr, styleMarginLeft: styleMarginLeft });\n }\n }\n stNode = listNodes.shift();\n while (stNode) {\n var elemColl = [];\n for (var temp1 = 0; temp1 < data.length; temp1++) {\n if (data[temp1].node === stNode) {\n for (var index = 0; index < data[temp1].content.childNodes.length; index++) {\n elemColl.push(data[temp1].content.childNodes[index]);\n }\n for (var index = 0; index < elemColl.length; index++) {\n stNode.parentElement.insertBefore(elemColl[index], stNode);\n }\n break;\n }\n }\n stNode.remove();\n stNode = listNodes.shift();\n if (!stNode) {\n stNode = listNodes.shift();\n }\n }\n };\n MsWordPaste.prototype.getlistStyleType = function (listContent, type) {\n var currentListClass;\n if (type === 'ol') {\n var charCode = listContent.split('.')[0].charCodeAt(0);\n switch (true) {\n case this.upperRomanNumber.indexOf(listContent.split('.')[0]) > -1:\n currentListClass = 'upper-roman';\n break;\n case this.lowerRomanNumber.indexOf(listContent.split('.')[0]) > -1:\n currentListClass = 'lower-roman';\n break;\n case this.lowerGreekNumber.indexOf(listContent.split('.')[0]) > -1:\n currentListClass = 'lower-greek';\n break;\n case (charCode > 64 && charCode < 91):\n currentListClass = 'upper-alpha';\n break;\n case (charCode > 96 && charCode < 123):\n currentListClass = 'lower-alpha';\n break;\n default:\n currentListClass = 'decimal';\n break;\n }\n }\n else {\n switch (listContent.split('.')[0]) {\n case 'o':\n currentListClass = 'circle';\n break;\n case '§':\n currentListClass = 'square';\n break;\n default:\n currentListClass = 'disc';\n break;\n }\n }\n return currentListClass;\n };\n MsWordPaste.prototype.makeConversion = function (collection) {\n var root = createElement('div');\n var temp;\n var pLevel = 1;\n var prevList;\n var listCount = 0;\n var elem;\n for (var index = 0; index < collection.length; index++) {\n var listClass = ['MsoListParagraphCxSpFirst', 'MsoListParagraphCxSpMiddle', 'MsoListParagraphCxSpLast'];\n var isNormalList = false;\n for (var i = 0; i < listClass.length; i++) {\n if (listClass[i].indexOf(collection[index].class) >= 0) {\n isNormalList = true;\n break;\n }\n }\n if (!isNOU(prevList) && index !== 0 &&\n collection[index - 1].listType !== collection[index].listType &&\n !isNormalList) {\n prevList = null;\n }\n var pElement = createElement('p');\n pElement.innerHTML = collection[index].content.join(' ');\n if ((collection[index].nestedLevel === 1) && listCount === 0 && collection[index].content) {\n root.appendChild(temp = createElement(collection[index].listType, { className: collection[index].class }));\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.marginLeft = collection[index].styleMarginLeft;\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n else if (collection[index].nestedLevel === pLevel) {\n if (prevList.parentElement.tagName.toLowerCase() === collection[index].listType) {\n prevList.parentElement.appendChild(prevList = createElement('li'));\n prevList.appendChild(pElement);\n }\n else {\n temp = createElement(collection[index].listType);\n temp.style.listStyleType = collection[index].listStyleTypeName;\n prevList.parentElement.parentElement.appendChild(temp);\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n }\n }\n else if (collection[index].nestedLevel > pLevel) {\n if (!isNOU(prevList)) {\n for (var j = 0; j < collection[index].nestedLevel - pLevel; j++) {\n prevList.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n if (j !== collection[index].nestedLevel - pLevel - 1 &&\n collection[index].nestedLevel - pLevel > 1) {\n prevList.style.listStyleType = 'none';\n }\n temp.appendChild(prevList);\n }\n prevList.appendChild(pElement);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n else {\n if (collection[index].nestedLevel > pLevel && isNormalList) {\n var initialNode = void 0;\n initialNode = createElement(collection[index].listType);\n prevList = createElement('li');\n initialNode.appendChild(prevList);\n initialNode.style.listStyleType = 'none';\n for (var j = 0; j < collection[index].nestedLevel - 1; j++) {\n prevList.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n temp.appendChild(prevList);\n temp.style.listStyleType = 'none';\n }\n prevList.appendChild(pElement);\n root.appendChild(initialNode);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n else {\n root.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n }\n }\n else if (collection[index].nestedLevel === 1) {\n if (root.lastChild.tagName.toLowerCase() === collection[index].listType) {\n temp = root.lastChild;\n }\n else {\n root.appendChild(temp = createElement(collection[index].listType));\n temp.style.listStyleType = collection[index].listStyleTypeName;\n }\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n }\n else {\n elem = prevList;\n while (elem.parentElement) {\n elem = elem.parentElement;\n if (elem.attributes.getNamedItem('level')) {\n // eslint-disable-next-line\n if (parseInt(elem.attributes.getNamedItem('level').textContent, null) === collection[index].nestedLevel) {\n prevList = createElement('li');\n prevList.appendChild(pElement);\n elem.appendChild(prevList);\n break;\n // eslint-disable-next-line\n }\n else if (collection[index].nestedLevel > parseInt(elem.attributes.getNamedItem('level').textContent, null)) {\n elem.appendChild(temp = createElement(collection[index].listType));\n prevList = createElement('li');\n prevList.appendChild(pElement);\n temp.appendChild(prevList);\n temp.setAttribute('level', collection[index].nestedLevel.toString());\n temp.style.listStyleType = collection[index].listStyleTypeName;\n break;\n }\n }\n continue;\n }\n }\n prevList.setAttribute('class', collection[index].class);\n var currentStyle = prevList.getAttribute('style');\n prevList.setAttribute('style', (!isNOU(currentStyle) ? currentStyle : ''));\n pLevel = collection[index].nestedLevel;\n listCount++;\n if (!isNOU(collection[index].start)) {\n temp.setAttribute('start', collection[index].start.toString());\n }\n }\n return root;\n };\n MsWordPaste.prototype.getListContent = function (elem) {\n var pushContent = '';\n var firstChild = elem.firstElementChild;\n if (firstChild.textContent.trim() === '' && !isNOU(firstChild.firstElementChild) &&\n firstChild.firstElementChild.nodeName === 'IMG') {\n pushContent = elem.innerHTML.trim();\n this.listContents.push('');\n this.listContents.push(pushContent);\n }\n else {\n //Add to support separate list which looks like same list and also to add all tags as it is inside list\n if (firstChild.childNodes.length > 0) {\n var listOrder = firstChild.querySelector('span[style=\"mso-list:Ignore\"]');\n if (!isNOU(listOrder)) {\n this.listContents.push(listOrder.textContent.trim());\n detach(listOrder);\n this.removingComments(elem);\n this.removeUnwantedElements(elem);\n }\n }\n }\n this.listContents.push(elem.innerHTML);\n };\n MsWordPaste.prototype.removeEmptyAnchorTag = function (element) {\n var removableElement = element.querySelectorAll('a:not([href])');\n for (var j = removableElement.length - 1; j >= 0; j--) {\n var parentElem = removableElement[j].parentNode;\n while (removableElement[j].firstChild) {\n parentElem.insertBefore(removableElement[j].firstChild, removableElement[j]);\n }\n parentElem.removeChild(removableElement[j]);\n }\n };\n return MsWordPaste;\n}());\nexport { MsWordPaste };\n","import * as CONSTANT from '../base/constant';\nimport { InsertHtml } from './inserthtml';\n/**\n * Insert a Text Node or Text\n *\n * @hidden\n\n */\nvar InsertTextExec = /** @class */ (function () {\n /**\n * Constructor for creating the InsertText plugin\n *\n * @param {EditorManager} parent - specifies the parent element\n * @hidden\n\n */\n function InsertTextExec(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n InsertTextExec.prototype.addEventListener = function () {\n this.parent.observer.on(CONSTANT.INSERT_TEXT_TYPE, this.insertText, this);\n };\n InsertTextExec.prototype.insertText = function (e) {\n var node = document.createTextNode(e.value);\n InsertHtml.Insert(this.parent.currentDocument, node, this.parent.editableElement);\n if (e.callBack) {\n e.callBack({\n requestType: e.subCommand,\n editorMode: 'HTML',\n event: e.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n return InsertTextExec;\n}());\nexport { InsertTextExec };\n","import { closest, createElement, detach, isNullOrUndefined as isNOU, removeClass } from '@syncfusion/ej2-base';\nimport * as EVENTS from '../../common/constant';\nimport { SelectionCommands } from '../plugin';\nvar FormatPainterActions = /** @class */ (function () {\n function FormatPainterActions(parent, options) {\n this.INVALID_TAGS = ['A', 'AUDIO', 'IMG', 'VIDEO', 'IFRAME'];\n this.parent = parent;\n this.settings = options;\n this.addEventListener();\n this.setDeniedFormats();\n }\n FormatPainterActions.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.FORMAT_PAINTER_ACTIONS, this.actionHandler, this);\n this.parent.observer.on(EVENTS.MODEL_CHANGED_PLUGIN, this.onPropertyChanged, this);\n };\n FormatPainterActions.prototype.onPropertyChanged = function (prop) {\n if (prop && prop.module === 'formatPainter') {\n if (!isNOU(prop.newProp.formatPainterSettings.allowedFormats)) {\n this.settings.allowedFormats = prop.newProp.formatPainterSettings.allowedFormats;\n }\n if (!isNOU(prop.newProp.formatPainterSettings.deniedFormats)) {\n this.settings.deniedFormats = prop.newProp.formatPainterSettings.deniedFormats;\n this.setDeniedFormats();\n }\n }\n };\n FormatPainterActions.prototype.removeEventListener = function () {\n this.parent.observer.off(EVENTS.FORMAT_PAINTER_ACTIONS, this.actionHandler);\n this.parent.observer.off(EVENTS.MODEL_CHANGED_PLUGIN, this.onPropertyChanged);\n };\n /**\n * Destroys the format painter.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n FormatPainterActions.prototype.destroy = function () {\n this.removeEventListener();\n this.INVALID_TAGS = null;\n this.copyCollection = null;\n this.deniedFormatsCollection = null;\n this.newElem = null;\n this.newElemLastChild = null;\n this.settings = null;\n this.parent = null;\n };\n FormatPainterActions.prototype.actionHandler = function (args) {\n this.settings.allowedContext = ['Text', 'List', 'Table'];\n if (!isNOU(args) && !isNOU(args.item) && !isNOU(args.item.formatPainterAction)) {\n switch (args.item.formatPainterAction) {\n case 'format-copy':\n this.copyAction();\n break;\n case 'format-paste':\n this.pasteAction();\n break;\n case 'escape':\n this.escapeAction();\n break;\n }\n this.callBack(args);\n }\n };\n FormatPainterActions.prototype.callBack = function (event) {\n if (event.callBack) {\n event.callBack({\n requestType: 'FormatPainter',\n action: event.item.formatPainterAction,\n event: event.event,\n editorMode: 'HTML',\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n FormatPainterActions.prototype.generateElement = function () {\n var copyCollection = this.copyCollection.slice(); // To clone without reversing the collcection array\n copyCollection.reverse();\n var length = copyCollection.length;\n var elemCollection = createElement('div', { className: 'e-format-paste-wrapper' });\n var lastAppendChild;\n for (var i = 0; i < length; i++) {\n var _a = copyCollection[i], attrs = _a.attrs, className = _a.className, styles = _a.styles, tagName = _a.tagName;\n var elem = createElement(tagName);\n if (className !== '') {\n elem.className = className;\n }\n for (var i_1 = 0; i_1 < attrs.length; i_1++) {\n var property = attrs[i_1].name;\n var value = attrs[i_1].value;\n elem.setAttribute(property, value);\n }\n for (var i_2 = 0; i_2 < styles.length; i_2++) {\n var property = styles[i_2].property;\n var value = styles[i_2].value;\n var priority = styles[i_2].priority;\n elem.style.setProperty(property, value, priority);\n }\n if (elemCollection.childElementCount === 0) {\n elemCollection.append(elem);\n lastAppendChild = elem;\n }\n else {\n lastAppendChild.append(elem);\n lastAppendChild = elem;\n }\n }\n var elemChild = this.removeDeniedFormats(elemCollection);\n var currentElem = elemChild;\n while (currentElem) {\n if (currentElem.firstChild === null) {\n lastAppendChild = currentElem;\n currentElem = undefined;\n }\n else {\n currentElem = currentElem.firstChild;\n }\n }\n this.newElem = elemChild;\n this.newElemLastChild = lastAppendChild;\n };\n FormatPainterActions.prototype.pasteAction = function () {\n if (isNOU(this.copyCollection) || this.copyCollection.length === 0) {\n this.paintPlainTextFormat();\n return;\n }\n this.insertFormatNode(this.newElem, this.newElemLastChild);\n };\n FormatPainterActions.prototype.removeDeniedFormats = function (parentElement) {\n if (!isNOU(this.deniedFormatsCollection) && this.deniedFormatsCollection.length > 0) {\n var deniedPropArray = this.deniedFormatsCollection;\n var length_1 = deniedPropArray.length;\n for (var i = 0; i < length_1; i++) {\n var tag = deniedPropArray[i].tag;\n if (deniedPropArray[i].tag) {\n var elementsList = parentElement.querySelectorAll(tag);\n for (var j = 0; j < elementsList.length; j++) {\n if (deniedPropArray[i].classes.length > 0) {\n var classes = deniedPropArray[i].classes;\n var classLength = classes.length;\n for (var k = 0; k < classLength; k++) {\n if (elementsList[j].classList.contains(classes[k])) {\n removeClass([elementsList[j]], classes[k]);\n }\n }\n if (elementsList[j].classList.length === 0) {\n elementsList[j].removeAttribute('class');\n }\n }\n if (deniedPropArray[i].styles.length > 0) {\n var styles = deniedPropArray[i].styles;\n var styleLength = styles.length;\n for (var k = 0; k < styleLength; k++) {\n elementsList[j].style.removeProperty(styles[k]);\n }\n if (elementsList[j].style.length === 0) {\n elementsList[j].removeAttribute('style');\n }\n }\n if (deniedPropArray[i].attributes.length > 0) {\n var attributes = deniedPropArray[i].attributes;\n var attributeLength = attributes.length;\n for (var k = 0; k < attributeLength; k++) {\n elementsList[j].removeAttribute(attributes[k]);\n }\n }\n }\n }\n }\n }\n return parentElement.firstElementChild;\n };\n FormatPainterActions.prototype.copyAction = function () {\n var copyCollection = [];\n var range = this.parent.nodeSelection.getRange(document);\n var domSelection = this.parent.nodeSelection;\n var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :\n domSelection.getSelectionNodeCollectionBr(range);\n if (nodes.length === 0 && domSelection.getSelectionNodeCollectionBr(range).length === 0) {\n return;\n }\n else {\n nodes = nodes.length === 0 ? domSelection.getSelectionNodeCollectionBr(range) : nodes;\n }\n var parentElem = nodes[0].parentElement;\n var currentContext = this.findCurrentContext(parentElem);\n var allowedRulesArray = this.settings.allowedFormats.indexOf(';') > -1 ? this.settings.allowedFormats.split(';') :\n [this.settings.allowedFormats];\n for (var i = 0; i < allowedRulesArray.length; i++) {\n allowedRulesArray[i] = allowedRulesArray[i].trim();\n }\n var _a = this.getRangeParentElem(currentContext, parentElem), rangeParentElem = _a[0], context = _a[1];\n if (currentContext === null) {\n currentContext = context;\n }\n if (!isNOU(currentContext) && this.settings.allowedContext.indexOf(currentContext) > -1) {\n if (range.startContainer.nodeName === '#text') {\n parentElem = range.startContainer.parentElement;\n }\n var lastElement = parentElem;\n do {\n if (allowedRulesArray.indexOf(parentElem.nodeName.toLowerCase()) > -1) {\n var allAttributes = parentElem.attributes;\n var attribute = [];\n for (var i = 0; i < allAttributes.length; i++) {\n if (allAttributes[i].name !== 'class' && allAttributes[i].name !== 'style') {\n attribute.push(allAttributes[i]);\n }\n }\n var classes = parentElem.className;\n var allStyles = parentElem.style;\n var styleProp = [];\n for (var i = 0; i < allStyles.length; i++) {\n var property = allStyles[i];\n var value = allStyles.getPropertyValue(property);\n var priority = allStyles.getPropertyPriority(property);\n styleProp.push({ property: property, value: value, priority: priority });\n }\n copyCollection.push({\n attrs: attribute, className: classes, styles: styleProp, tagName: parentElem.nodeName\n });\n }\n if (rangeParentElem === parentElem) {\n parentElem = undefined;\n }\n else if (!isNOU(parentElem.parentElement)) {\n parentElem = parentElem.parentElement;\n }\n if (lastElement === parentElem) {\n break;\n }\n } while (!isNOU(parentElem) || parentElem === this.parent.editableElement);\n this.copyCollection = copyCollection;\n }\n this.generateElement();\n };\n FormatPainterActions.prototype.getRangeParentElem = function (currentContext, rangeParent) {\n var startContainer = rangeParent;\n var rangeParentELem;\n if (startContainer.nodeType === 3) {\n startContainer = startContainer.parentElement;\n }\n switch (currentContext) {\n case 'Table':\n rangeParentELem = closest(startContainer, 'td');\n if (isNOU(rangeParentELem)) {\n rangeParentELem = closest(startContainer, 'th');\n }\n break;\n case 'List':\n rangeParentELem = closest(startContainer, 'li');\n break;\n case 'Text':\n rangeParentELem = closest(startContainer, 'p');\n break;\n }\n if (isNOU(rangeParentELem)) {\n var nearBlockParentName = this.getNearestBlockParentElement(rangeParent);\n if (!isNOU(nearBlockParentName) && nearBlockParentName !== 'UL' &&\n nearBlockParentName !== 'OL' && nearBlockParentName !== 'LI') {\n rangeParentELem = closest(startContainer, nearBlockParentName);\n currentContext = 'Text';\n }\n }\n if (currentContext === 'List') {\n rangeParentELem = rangeParentELem.parentElement;\n }\n return [rangeParentELem, currentContext];\n };\n FormatPainterActions.prototype.getNearestBlockParentElement = function (rangeParent) {\n var node = rangeParent;\n if (node.nodeType === 3) {\n node = node.parentNode;\n }\n // iterate untill the content editable div\n while (node && node !== this.parent.editableElement) {\n // If true return the block node name.\n if (!isNOU(node) && this.isBlockElement(node)) {\n return node.nodeName;\n }\n // if false re assign node to parent node\n node = node.parentNode;\n }\n return null;\n };\n FormatPainterActions.prototype.isBlockElement = function (node) {\n var blockTags = ['P', 'DIV', 'UL', 'OL', 'LI', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6',\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'BLOCKQUOTE', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'HEADER',\n 'HR', 'MAIN', 'NAV', 'SECTION', 'SUMMARY', 'PRE'];\n return blockTags.indexOf(node.nodeName) > -1;\n };\n FormatPainterActions.prototype.escapeAction = function () {\n this.copyCollection = [];\n };\n FormatPainterActions.prototype.paintPlainTextFormat = function () {\n var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var domSelection = this.parent.nodeSelection;\n var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :\n domSelection.getSelectionNodeCollectionBr(range);\n var isInValid;\n if (nodes.length > 1) {\n for (var i = 0; i < nodes.length; i++) {\n isInValid = this.validateELementTag(nodes[i]);\n }\n }\n else {\n isInValid = this.validateELementTag(range.startContainer) && this.validateELementTag(range.endContainer);\n }\n if (!isInValid) {\n this.parent.execCommand('Clear', 'ClearFormat', null, null);\n }\n };\n FormatPainterActions.prototype.validateELementTag = function (node) {\n if (node.nodeType === 3) {\n node = node.parentElement;\n }\n return this.INVALID_TAGS.indexOf(node.tagName) > -1;\n };\n FormatPainterActions.prototype.findCurrentContext = function (parentElem) {\n if (closest(parentElem, 'p')) {\n return 'Text';\n }\n else if (closest(parentElem, 'li')) {\n return 'List';\n }\n else if (closest(parentElem, 'td') || closest(parentElem, 'tr') || closest(parentElem, 'th')) {\n return 'Table';\n }\n return null;\n };\n FormatPainterActions.prototype.insertFormatNode = function (elem, lastChild) {\n var clonedElem = elem.cloneNode(true);\n if (!this.isBlockElement(elem)) {\n var newBlockElem = createElement('P');\n newBlockElem.appendChild(elem);\n clonedElem = newBlockElem.cloneNode(true);\n }\n var endNode = this.parent.editableElement;\n var docElement = this.parent.currentDocument;\n var childElem = clonedElem.firstChild;\n var inlineElement;\n while (childElem) {\n if (this.isBlockElement(childElem)) {\n childElem = childElem.firstChild;\n }\n else {\n inlineElement = childElem.parentNode.removeChild(childElem);\n break;\n }\n }\n var formatValues = {\n element: inlineElement,\n lastChild: lastChild\n };\n SelectionCommands.applyFormat(docElement, null, endNode, 'P', 'formatPainter', null, formatValues);\n var range = this.parent.nodeSelection.getRange(docElement);\n var isCollapsed = range.collapsed;\n var blockNodes = this.parent.domNode.blockNodes();\n var isFullNodeSelected = false;\n if (blockNodes.length === 1) {\n isFullNodeSelected = blockNodes[0].textContent.trim() === range.toString().trim();\n }\n if (this.isBlockElement(clonedElem) && isCollapsed || blockNodes.length > 1 || isFullNodeSelected) {\n this.insertBlockNode(clonedElem, range, docElement, blockNodes);\n }\n };\n FormatPainterActions.prototype.insertBlockNode = function (element, range, docElement, nodes) {\n var domSelection = this.parent.nodeSelection;\n var saveSelection = domSelection.save(range, docElement);\n this.parent.domNode.setMarker(saveSelection);\n var listElement; // To clone to multiple list elements\n var cloneListParentNode;\n var sameListType = false;\n if (element.nodeName === 'UL' || element.nodeName === 'OL') {\n cloneListParentNode = element.cloneNode(true);\n listElement = cloneListParentNode.firstChild;\n }\n var cloneElementNode = isNOU(cloneListParentNode) ? element : element.firstChild;\n for (var index = 0; index < nodes.length; index++) {\n if (this.INVALID_TAGS.indexOf(nodes[index].nodeName) > -1 ||\n nodes[index].querySelectorAll('a,img,audio,video,iframe').length > 0) {\n continue;\n }\n var cloneParentNode = cloneElementNode.cloneNode(false);\n // Appending all the child elements\n while (nodes[index].firstChild) {\n if (nodes[index].textContent.trim().length !== 0) {\n cloneParentNode.appendChild(nodes[index].firstChild);\n }\n else {\n nodes[index].removeChild(nodes[index].firstChild);\n }\n }\n if (nodes[index].nodeName === 'TD' || nodes[index].nodeName === 'TH') {\n if (isNOU(cloneListParentNode)) {\n nodes[index].appendChild(cloneParentNode);\n continue;\n }\n else if (index === 0 && !isNOU(cloneListParentNode)) {\n nodes[index].appendChild(cloneListParentNode);\n cloneListParentNode.appendChild(cloneParentNode);\n continue;\n }\n else {\n nodes[index].appendChild(cloneParentNode);\n continue;\n }\n }\n if (!isNOU(cloneListParentNode)) {\n sameListType = this.isSameListType(element, nodes[index]);\n }\n if (cloneParentNode.nodeName === 'LI' && !sameListType) {\n this.insertNewList(range, nodes, index, cloneListParentNode, cloneParentNode);\n }\n else if (sameListType) {\n this.insertSameList(nodes, index, cloneListParentNode, cloneParentNode);\n }\n else {\n nodes[index].parentNode.replaceChild(cloneParentNode, nodes[index]);\n }\n /**Removing the inserted block node in list and appending to previous element sibling */\n if (cloneParentNode.nodeName !== 'LI' && (cloneParentNode.parentElement.nodeName === 'OL' ||\n cloneParentNode.parentElement.nodeName === 'UL')) {\n var parent_1 = cloneParentNode.parentElement;\n // Cutting single ul or ol to two ul or ol based on the range\n this.parent.nodeCutter.SplitNode(range, parent_1, true);\n if (!isNOU(parent_1.previousElementSibling)) {\n parent_1.previousElementSibling.after(cloneParentNode);\n // To remove the nested list items out of the block element\n if (cloneParentNode.childNodes.length > 1) {\n for (var j = 0; j < cloneParentNode.childNodes.length; j++) {\n var currentChild = cloneParentNode.childNodes[j];\n if (currentChild.nodeName === 'OL' || currentChild.nodeName === 'UL') {\n cloneParentNode.after(currentChild);\n }\n }\n }\n }\n else {\n parent_1.parentElement.prepend(cloneParentNode);\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n !isNOU(listElement) ? detach(listElement) : false;\n this.cleanEmptyLists();\n var save = this.parent.domNode.saveMarker(saveSelection, null);\n save.restore();\n };\n FormatPainterActions.prototype.insertNewList = function (range, nodes, index, cloneListParentNode, cloneParentNode) {\n // Appending the li nodes to the ol or ul node\n if (index === 0) {\n var nodeName = nodes[index].nodeName;\n nodes[index] = nodes[index].parentNode.replaceChild(cloneListParentNode, nodes[index]);\n var parent_2 = nodeName === 'LI' ? cloneListParentNode.parentElement\n : cloneListParentNode;\n // Splicing and then inserting the node to previous element sibling of the Listparent.parent\n this.parent.nodeCutter.SplitNode(range, parent_2, true);\n if (nodes[index].nodeName === 'LI' && !isNOU(parent_2)) {\n cloneListParentNode.append(cloneParentNode);\n if (!isNOU(parent_2.parentNode)) {\n parent_2.parentNode.insertBefore(cloneListParentNode, parent_2);\n }\n }\n else {\n if (!isNOU(parent_2)) {\n if (!isNOU(parent_2.previousElementSibling) && parent_2.previousElementSibling.nodeName === cloneListParentNode.nodeName) {\n var currentParent = parent_2.previousElementSibling;\n currentParent.append(cloneParentNode);\n while (currentParent.firstChild) {\n cloneListParentNode.append(currentParent.firstChild);\n }\n }\n else if (!isNOU(parent_2.nextElementSibling) && parent_2.nextElementSibling.nodeName === cloneListParentNode.nodeName) {\n var currentParent = parent_2.nextElementSibling;\n currentParent.prepend(cloneParentNode);\n while (currentParent.firstChild) {\n cloneListParentNode.append(currentParent.firstChild);\n }\n }\n else {\n cloneListParentNode.append(cloneParentNode);\n }\n }\n else {\n cloneListParentNode.append(cloneParentNode);\n }\n }\n }\n else {\n cloneListParentNode.append(cloneParentNode);\n }\n this.detachEmptyBlockNodes(nodes[index]);\n };\n FormatPainterActions.prototype.insertSameList = function (nodes, index, cloneListParentNode, cloneParentNode) {\n if (index === 0) {\n if (!isNOU(nodes[index].parentNode) && (nodes[index].parentNode.nodeName === 'UL' || nodes[index].parentNode.nodeName === 'OL')) {\n // append the nodes[index].parentNode.childNodes to the clonelistparentnode\n if (nodes.length === 1) {\n // When clicked with cursor in the single list item\n while (cloneParentNode.firstChild) {\n nodes[index].append(cloneParentNode.firstChild);\n }\n for (var i = 0; i < nodes[index].parentNode.childNodes.length; i++) {\n var currentChild = nodes[index].parentNode.childNodes[i];\n cloneListParentNode.append(currentChild.cloneNode(true));\n }\n }\n else {\n cloneListParentNode.append(cloneParentNode);\n }\n // replace the older ol and ul with new ol and ul of clonelistparentnode\n nodes[index].parentNode.parentNode.replaceChild(cloneListParentNode, nodes[index].parentNode);\n }\n }\n else {\n cloneListParentNode.append(cloneParentNode);\n }\n this.detachEmptyBlockNodes(nodes[index]);\n };\n FormatPainterActions.prototype.isSameListType = function (element, node) {\n var isSameListType = false;\n var nearestListNode = closest(node, 'ol, ul');\n if (!isNOU(nearestListNode) && nearestListNode.querySelectorAll('li').length > 0) {\n if (nearestListNode.nodeName === element.nodeName) {\n isSameListType = true;\n }\n else {\n isSameListType = false;\n }\n }\n return isSameListType;\n };\n FormatPainterActions.prototype.cleanEmptyLists = function () {\n var listElem = this.parent.editableElement.querySelectorAll('ol, ul');\n for (var i = 0; i < listElem.length; i++) {\n if (listElem[i].textContent.trim() === '') {\n detach(listElem[i]);\n }\n }\n };\n FormatPainterActions.prototype.setDeniedFormats = function () {\n var deniedFormatsCollection = [];\n if (isNOU(this.settings) || isNOU(this.settings.deniedFormats)) {\n return;\n }\n var deniedFormats = this.settings.deniedFormats.indexOf(';') > -1 ? this.settings.deniedFormats.split(';') :\n [this.settings.deniedFormats];\n var length = deniedFormats.length;\n for (var i = 0; i < length; i++) {\n var formatString = deniedFormats[i];\n if (formatString !== '') {\n formatString.trim();\n var collection = this.makeDeniedFormatsCollection(formatString);\n if (!isNOU(collection)) {\n deniedFormatsCollection.push(collection);\n }\n }\n }\n this.deniedFormatsCollection = deniedFormatsCollection;\n };\n FormatPainterActions.prototype.detachEmptyBlockNodes = function (node) {\n if (!isNOU(node) && node.textContent.trim() === '') {\n detach(node);\n }\n };\n FormatPainterActions.prototype.makeDeniedFormatsCollection = function (value) {\n var openParenIndex = value.indexOf('(');\n var closeParenIndex = value.indexOf(')');\n var openBracketIndex = value.indexOf('[');\n var closeBracketIndex = value.indexOf(']');\n var openBraceIndex = value.indexOf('{');\n var closeBraceIndex = value.indexOf('}');\n var classes = [];\n var attributes = '';\n var styles = '';\n var tagName = '';\n var classList = [];\n var attributesList = [];\n var stylesList = [];\n if (openParenIndex > -1 && closeParenIndex > -1) {\n classes = value.substring(openParenIndex + 1, closeParenIndex).split(' ');\n classList = classes[0].split(')')[0].split(',');\n }\n if (openBracketIndex > -1 && closeBracketIndex > -1) {\n attributes = value.substring(openBracketIndex + 1, closeBracketIndex);\n attributesList = attributes.split(',');\n }\n if (openBraceIndex > -1 && closeBraceIndex > -1) {\n styles = value.substring(openBraceIndex + 1, closeBraceIndex);\n stylesList = styles.split(',');\n }\n var openIndexArray = [openParenIndex, openBracketIndex, openBraceIndex];\n openIndexArray = openIndexArray.filter(function (index) { return index > -1; });\n var len = openIndexArray.length;\n var min;\n if (len === 1) {\n min = openIndexArray[0];\n }\n else if (len === 2) {\n min = Math.min(openIndexArray[0], openIndexArray[1]);\n }\n else if (len === 3) {\n min = Math.min(openIndexArray[0], openIndexArray[1], openIndexArray[2]);\n }\n tagName = value.substring(0, min);\n tagName.trim();\n return ({\n tag: tagName, styles: stylesList, classes: classList,\n attributes: attributesList\n });\n };\n return FormatPainterActions;\n}());\nexport { FormatPainterActions };\n","import * as EVENTS from './../../common/constant';\nimport { InsertHtml } from './inserthtml';\nvar EmojiPickerAction = /** @class */ (function () {\n function EmojiPickerAction(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n EmojiPickerAction.prototype.addEventListener = function () {\n this.parent.observer.on(EVENTS.EMOJI_PICKER_ACTIONS, this.emojiInsert, this);\n };\n EmojiPickerAction.prototype.emojiInsert = function (args) {\n var node = document.createTextNode(args.value);\n var selection = window.getSelection();\n var range = selection.getRangeAt(0);\n var cursorPos = range.startOffset;\n for (var i = cursorPos - 1; i >= cursorPos - 15; i--) {\n var prevChar_1 = selection.focusNode.textContent.substring(i - 1, i);\n var isPrevSpace_1 = /:$/.test(prevChar_1);\n if (isPrevSpace_1) {\n this.beforeApplyFormat(true);\n break;\n }\n }\n var colon = /:$/.test(selection.focusNode.textContent.charAt(cursorPos - 1));\n var prevChar = selection.focusNode.textContent.charAt(cursorPos - 2);\n var isPrevSpace = /\\s/.test(prevChar);\n if (colon && (isPrevSpace || selection.focusOffset === 1)) {\n this.beforeApplyFormat(true);\n }\n InsertHtml.Insert(this.parent.currentDocument, node, this.parent.editableElement);\n if (args.callBack) {\n args.callBack({\n requestType: args.subCommand,\n editorMode: 'HTML',\n event: args.event,\n range: this.parent.nodeSelection.getRange(this.parent.currentDocument),\n elements: this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)\n });\n }\n };\n EmojiPickerAction.prototype.beforeApplyFormat = function (isBlockFormat) {\n var range1 = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var node = this.parent.nodeSelection.getNodeCollection(range1)[0];\n var blockNewLine = !(node.parentElement.innerHTML.replace(/ |
    /g, '').trim() === ':' || node.textContent.trim().indexOf('/') === 0);\n var startNode = node;\n if (blockNewLine && isBlockFormat) {\n while (startNode !== this.parent.editableElement) {\n startNode = startNode.parentElement;\n }\n }\n var startPoint = range1.startOffset;\n while (this.parent.nodeSelection.getRange(document).toString().indexOf(':') === -1) {\n this.parent.nodeSelection.setSelectionText(document, node, node, startPoint, range1.endOffset);\n startPoint--;\n }\n var range2 = this.parent.nodeSelection.getRange(this.parent.currentDocument);\n var node2 = this.parent.nodeCutter.GetSpliceNode(range2, node);\n node2.parentNode.removeChild(node2);\n };\n return EmojiPickerAction;\n}());\nexport { EmojiPickerAction };\n","import { Observer } from '@syncfusion/ej2-base';\nimport * as CONSTANT from './constant';\nimport { Lists } from './../plugin/lists';\nimport { NodeSelection } from './../../selection/index';\nimport { DOMNode } from './../plugin/dom-node';\nimport { Formats } from './../plugin/formats';\nimport { LinkCommand } from './../plugin/link';\nimport { Alignments } from './../plugin/alignments';\nimport { Indents } from './../plugin/indents';\nimport { ImageCommand } from './../plugin/image';\nimport { AudioCommand } from './../plugin/audio';\nimport { VideoCommand } from './../plugin/video';\nimport { TableCommand } from './../plugin/table';\nimport { SelectionBasedExec } from './../plugin/selection-exec';\nimport { InsertHtmlExec } from './../plugin/inserthtml-exec';\nimport { ClearFormatExec } from './../plugin/clearformat-exec';\nimport { UndoRedoManager } from './../plugin/undo';\nimport { MsWordPaste } from '../plugin/ms-word-clean-up';\nimport * as EVENTS from './../../common/constant';\nimport { InsertTextExec } from '../plugin/insert-text';\nimport { NodeCutter } from '../plugin/nodecutter';\nimport { FormatPainterActions } from '../plugin/format-painter-actions';\nimport { EmojiPickerAction } from '../plugin/emoji-picker-action';\n/**\n * EditorManager internal component\n *\n * @hidden\n\n */\nvar EditorManager = /** @class */ (function () {\n /**\n * Constructor for creating the component\n *\n * @hidden\n\n * @param {ICommandModel} options - specifies the command Model\n */\n function EditorManager(options) {\n this.currentDocument = options.document;\n this.editableElement = options.editableElement;\n this.nodeSelection = new NodeSelection();\n this.nodeCutter = new NodeCutter();\n this.domNode = new DOMNode(this.editableElement, this.currentDocument);\n this.observer = new Observer(this);\n this.listObj = new Lists(this);\n this.formatObj = new Formats(this);\n this.alignmentObj = new Alignments(this);\n this.indentsObj = new Indents(this);\n this.linkObj = new LinkCommand(this);\n this.imgObj = new ImageCommand(this);\n this.audioObj = new AudioCommand(this);\n this.videoObj = new VideoCommand(this);\n this.selectionObj = new SelectionBasedExec(this);\n this.inserthtmlObj = new InsertHtmlExec(this);\n this.insertTextObj = new InsertTextExec(this);\n this.clearObj = new ClearFormatExec(this);\n this.tableObj = new TableCommand(this);\n this.undoRedoManager = new UndoRedoManager(this, options.options);\n this.msWordPaste = new MsWordPaste(this);\n this.formatPainterEditor = new FormatPainterActions(this, options.formatPainterSettings);\n this.emojiPickerObj = new EmojiPickerAction(this);\n this.wireEvents();\n }\n EditorManager.prototype.wireEvents = function () {\n this.observer.on(EVENTS.KEY_DOWN, this.editorKeyDown, this);\n this.observer.on(EVENTS.KEY_UP, this.editorKeyUp, this);\n this.observer.on(EVENTS.KEY_UP, this.editorKeyUp, this);\n this.observer.on(EVENTS.MODEL_CHANGED, this.onPropertyChanged, this);\n this.observer.on(EVENTS.MS_WORD_CLEANUP, this.onWordPaste, this);\n this.observer.on(EVENTS.ON_BEGIN, this.onBegin, this);\n };\n EditorManager.prototype.onWordPaste = function (e) {\n this.observer.notify(EVENTS.MS_WORD_CLEANUP_PLUGIN, e);\n };\n EditorManager.prototype.onPropertyChanged = function (props) {\n this.observer.notify(EVENTS.MODEL_CHANGED_PLUGIN, props);\n };\n EditorManager.prototype.editorKeyDown = function (e) {\n this.observer.notify(EVENTS.KEY_DOWN_HANDLER, e);\n };\n EditorManager.prototype.editorKeyUp = function (e) {\n this.observer.notify(EVENTS.KEY_UP_HANDLER, e);\n };\n EditorManager.prototype.onBegin = function (e) {\n this.observer.notify(EVENTS.SPACE_ACTION, e);\n };\n /* eslint-disable */\n /**\n * execCommand\n *\n * @param {ExecCommand} command - specifies the execution command\n * @param {T} value - specifes the value.\n * @param {Event} event - specifies the call back event\n * @param {Function} callBack - specifies the function\n * @param {string} text - specifies the string value\n * @param {T} exeValue - specifies the values to be executed\n * @param {string} selector - specifies the selector values\n * @returns {void}\n * @hidden\n\n */\n /* eslint-enable */\n EditorManager.prototype.execCommand = function (command, value, event, callBack, text, exeValue, selector, enterAction) {\n switch (command.toLowerCase()) {\n case 'lists':\n this.observer.notify(EVENTS.LIST_TYPE, { subCommand: value, event: event, callBack: callBack,\n selector: selector, item: exeValue, enterAction: enterAction });\n break;\n case 'formats':\n this.observer.notify(EVENTS.FORMAT_TYPE, { subCommand: value, event: event, callBack: callBack,\n selector: selector, exeValue: exeValue, enterAction: enterAction\n });\n break;\n case 'alignments':\n this.observer.notify(CONSTANT.ALIGNMENT_TYPE, {\n subCommand: value, event: event, callBack: callBack,\n selector: selector,\n value: exeValue\n });\n break;\n case 'indents':\n this.observer.notify(CONSTANT.INDENT_TYPE, { subCommand: value, event: event, callBack: callBack, selector: selector });\n break;\n case 'links':\n this.observer.notify(CONSTANT.LINK, { command: command, value: value, item: exeValue, event: event, callBack: callBack });\n break;\n case 'files':\n this.observer.notify(CONSTANT.IMAGE, {\n command: command, value: 'Image', item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'images':\n this.observer.notify(CONSTANT.IMAGE, {\n command: command, value: value, item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'audios':\n this.observer.notify(CONSTANT.AUDIO, {\n command: command, value: value, item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'videos':\n this.observer.notify(CONSTANT.VIDEO, {\n command: command, value: value, item: exeValue, event: event, callBack: callBack, selector: selector\n });\n break;\n case 'table':\n switch (value.toString().toLocaleLowerCase()) {\n case 'createtable':\n this.observer.notify(CONSTANT.TABLE, { item: exeValue, event: event, callBack: callBack, enterAction: enterAction });\n break;\n case 'insertrowbefore':\n case 'insertrowafter':\n this.observer.notify(CONSTANT.INSERT_ROW, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'insertcolumnleft':\n case 'insertcolumnright':\n this.observer.notify(CONSTANT.INSERT_COLUMN, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'deleterow':\n this.observer.notify(CONSTANT.DELETEROW, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'deletecolumn':\n this.observer.notify(CONSTANT.DELETECOLUMN, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'tableremove':\n this.observer.notify(CONSTANT.REMOVETABLE, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'tableheader':\n this.observer.notify(CONSTANT.TABLEHEADER, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'aligntop':\n case 'alignmiddle':\n case 'alignbottom':\n this.observer.notify(CONSTANT.TABLE_VERTICAL_ALIGN, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'merge':\n this.observer.notify(CONSTANT.TABLE_MERGE, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'horizontalsplit':\n this.observer.notify(CONSTANT.TABLE_HORIZONTAL_SPLIT, { item: exeValue, event: event, callBack: callBack });\n break;\n case 'verticalsplit':\n this.observer.notify(CONSTANT.TABLE_VERTICAL_SPLIT, { item: exeValue, event: event, callBack: callBack });\n break;\n }\n break;\n case 'font':\n case 'style':\n case 'effects':\n case 'casing':\n this.observer.notify(CONSTANT.SELECTION_TYPE, { subCommand: value, event: event, callBack: callBack, value: text, selector: selector, enterAction: enterAction });\n break;\n case 'inserthtml':\n this.observer.notify(CONSTANT.INSERTHTML_TYPE, { subCommand: value, callBack: callBack, value: text, enterAction: enterAction });\n break;\n case 'inserttext':\n this.observer.notify(CONSTANT.INSERT_TEXT_TYPE, { subCommand: value, callBack: callBack, value: text });\n break;\n case 'clear':\n this.observer.notify(CONSTANT.CLEAR_TYPE, { subCommand: value, event: event, callBack: callBack, selector: selector, enterAction: enterAction });\n break;\n case 'actions':\n this.observer.notify(EVENTS.ACTION, { subCommand: value, event: event, callBack: callBack, selector: selector });\n break;\n case 'formatpainter':\n this.observer.notify(EVENTS.FORMAT_PAINTER_ACTIONS, { item: exeValue, subCommand: value, event: event, callBack: callBack });\n break;\n case 'emojipicker':\n this.observer.notify(EVENTS.EMOJI_PICKER_ACTIONS, { item: exeValue, subCommand: value, value: text,\n event: event, callBack: callBack });\n }\n };\n return EditorManager;\n}());\nexport { EditorManager };\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 { Formatter } from './formatter';\nimport { EditorManager } from './../../editor-manager/base/editor-manager';\nimport { extend } from '@syncfusion/ej2-base';\nimport { htmlKeyConfig } from './../../common/config';\n/**\n * HTML adapter\n *\n * @hidden\n\n */\nvar HTMLFormatter = /** @class */ (function (_super) {\n __extends(HTMLFormatter, _super);\n function HTMLFormatter(options) {\n var _this = _super.call(this) || this;\n _this.initialize();\n extend(_this, _this, options, true);\n if (_this.currentDocument && _this.element) {\n _this.updateFormatter(_this.element, _this.currentDocument, options.options, options.formatPainterSettings);\n }\n return _this;\n }\n HTMLFormatter.prototype.initialize = function () {\n this.keyConfig = htmlKeyConfig;\n };\n /**\n * Update the formatter of RichTextEditor\n *\n * @param {Element} editElement - specifies the edit element.\n * @param {Document} doc - specifies the doucment\n * @param {number} options - specifies the options\n * @param {FormatPainterSettingsModel} formatPainterSettings - specifies the format painter settings\n * @returns {void}\n * @hidden\n\n */\n HTMLFormatter.prototype.updateFormatter = function (editElement, doc, options, formatPainterSettings) {\n if (editElement && doc) {\n this.editorManager = new EditorManager({\n document: doc,\n editableElement: editElement,\n options: options,\n formatPainterSettings: formatPainterSettings\n });\n }\n };\n return HTMLFormatter;\n}(Formatter));\nexport { HTMLFormatter };\n","import { IsFormatted } from './isformatted';\nimport * as CONSTANT from './../base/constant';\nimport { NodeSelection } from './../../selection/index';\nimport { getDefaultHtmlTbStatus } from './../../common/util';\n/**\n * Update Toolbar Status\n *\n * @hidden\n\n */\nexport var statusCollection = getDefaultHtmlTbStatus();\nvar ToolbarStatus = /** @class */ (function () {\n function ToolbarStatus() {\n }\n /**\n * get method\n *\n * @param {Document} docElement - specifies the document element\n * @param {Node} targetNode - specifies the target node\n * @param {string[]} formatNode - specifies the format node\n * @param {string[]} fontSize - specifies the font size\n * @param {string[]} fontName - specifies the font name.\n * @param {Node} documentNode - specifies the document node.\n * @returns {IToolbarStatus} - returns the toolbar status\n * @hidden\n\n */\n ToolbarStatus.get = function (docElement, targetNode, formatNode, fontSize, fontName, documentNode) {\n var formatCollection = JSON.parse(JSON.stringify(statusCollection));\n var nodeCollection = JSON.parse(JSON.stringify(statusCollection));\n var nodeSelection = new NodeSelection();\n var range = nodeSelection.getRange(docElement);\n var nodes = documentNode ? [documentNode] : range.collapsed ? nodeSelection.getNodeCollection(range) :\n nodeSelection.getSelectionNodeCollectionBr(range);\n var nodesLength = nodes.length;\n var isNodeChanged = false;\n for (var index = 0; index < nodes.length; index++) {\n while (nodes[index].nodeType === 3 && range.startContainer.nodeType === 3 && nodes[index].parentNode &&\n nodes[index].parentNode.lastElementChild && nodes[index].parentNode.lastElementChild.nodeName !== 'BR' &&\n (this.getImmediateBlockNode(nodes[index].parentNode)).textContent.replace(/\\u200B/g, '').length === 0 &&\n range.startContainer.textContent.replace(/\\u200B/g, '').length === 0 &&\n nodeSelection.get(docElement).toString().replace(/\\u200B/g, '').length === 0) {\n nodes[index] = nodes[index].parentNode.lastElementChild.firstChild;\n isNodeChanged = true;\n }\n if (isNodeChanged && nodes[index]) {\n nodeSelection.setCursorPoint(docElement, nodes[index], nodes[index].textContent.length);\n isNodeChanged = false;\n }\n if ((nodes[index].nodeName !== 'BR' && nodes[index].nodeType !== 3) ||\n (nodesLength > 1 && nodes[index].nodeType === 3 && nodes[index].textContent.trim() === '')) {\n nodes.splice(index, 1);\n index--;\n }\n }\n for (var index = 0; index < nodes.length; index++) {\n // eslint-disable-next-line max-len\n formatCollection = this.getFormatParent(docElement, formatCollection, nodes[index], targetNode, formatNode, fontSize, fontName);\n if ((index === 0 && formatCollection.bold) || !formatCollection.bold) {\n nodeCollection.bold = formatCollection.bold;\n }\n if ((index === 0 && formatCollection.insertcode) || !formatCollection.insertcode) {\n nodeCollection.insertcode = formatCollection.insertcode;\n }\n if ((index === 0 && formatCollection.italic) || !formatCollection.italic) {\n nodeCollection.italic = formatCollection.italic;\n }\n if ((index === 0 && formatCollection.underline) || !formatCollection.underline) {\n nodeCollection.underline = formatCollection.underline;\n }\n if ((index === 0 && formatCollection.strikethrough) || !formatCollection.strikethrough) {\n nodeCollection.strikethrough = formatCollection.strikethrough;\n }\n if ((index === 0 && formatCollection.superscript) || !formatCollection.superscript) {\n nodeCollection.superscript = formatCollection.superscript;\n }\n if ((index === 0 && formatCollection.subscript) || !formatCollection.subscript) {\n nodeCollection.subscript = formatCollection.subscript;\n }\n if ((index === 0 && formatCollection.fontcolor) || !formatCollection.fontcolor) {\n nodeCollection.fontcolor = formatCollection.fontcolor;\n }\n if ((index === 0 && formatCollection.fontname) || !formatCollection.fontname) {\n nodeCollection.fontname = formatCollection.fontname;\n }\n if ((index === 0 && formatCollection.fontsize) || !formatCollection.fontsize) {\n nodeCollection.fontsize = formatCollection.fontsize;\n }\n if ((index === 0 && formatCollection.backgroundcolor) || !formatCollection.backgroundcolor) {\n nodeCollection.backgroundcolor = formatCollection.backgroundcolor;\n }\n if ((index === 0 && formatCollection.orderedlist) || !formatCollection.orderedlist) {\n nodeCollection.orderedlist = formatCollection.orderedlist;\n }\n if ((index === 0 && formatCollection.unorderedlist) || !formatCollection.unorderedlist) {\n nodeCollection.unorderedlist = formatCollection.unorderedlist;\n }\n if ((index === 0 && formatCollection.alignments) || !formatCollection.alignments) {\n nodeCollection.alignments = formatCollection.alignments;\n }\n if ((index === 0 && formatCollection.formats) || !formatCollection.formats) {\n nodeCollection.formats = formatCollection.formats;\n }\n if ((index === 0 && formatCollection.createlink) || !formatCollection.createlink) {\n nodeCollection.createlink = formatCollection.createlink;\n }\n if ((index === 0 && formatCollection.numberFormatList) || !formatCollection.numberFormatList) {\n nodeCollection.numberFormatList = formatCollection.numberFormatList;\n }\n if ((index === 0 && formatCollection.bulletFormatList) || !formatCollection.bulletFormatList) {\n nodeCollection.bulletFormatList = formatCollection.bulletFormatList;\n }\n formatCollection = JSON.parse(JSON.stringify(statusCollection));\n }\n return nodeCollection;\n };\n ToolbarStatus.getImmediateBlockNode = function (node) {\n do {\n node = node.parentNode;\n } while (node && CONSTANT.BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) < 0);\n return node;\n };\n ToolbarStatus.getFormatParent = function (docElement, formatCollection, node, targetNode, formatNode, fontSize, fontName) {\n if (targetNode.contains(node) ||\n (node.nodeType === 3 && targetNode.nodeType !== 3 && targetNode.contains(node.parentNode))) {\n do {\n formatCollection = this.isFormattedNode(docElement, formatCollection, node, formatNode, fontSize, fontName);\n node = node.parentNode;\n } while (node && (node !== targetNode));\n }\n return formatCollection;\n };\n ToolbarStatus.isFormattedNode = function (docElement, formatCollection, node, formatNode, fontSize, fontName) {\n if (!formatCollection.bold) {\n formatCollection.bold = IsFormatted.isBold(node);\n }\n if (!formatCollection.italic) {\n formatCollection.italic = IsFormatted.isItalic(node);\n }\n if (!formatCollection.underline) {\n formatCollection.underline = IsFormatted.isUnderline(node);\n }\n if (!formatCollection.strikethrough) {\n formatCollection.strikethrough = IsFormatted.isStrikethrough(node);\n }\n if (!formatCollection.superscript) {\n formatCollection.superscript = IsFormatted.isSuperscript(node);\n }\n if (!formatCollection.subscript) {\n formatCollection.subscript = IsFormatted.isSubscript(node);\n }\n if (!formatCollection.fontcolor) {\n formatCollection.fontcolor = this.isFontColor(docElement, node);\n }\n if (!formatCollection.fontname) {\n formatCollection.fontname = this.isFontName(docElement, node, fontName);\n }\n if (!formatCollection.fontsize) {\n formatCollection.fontsize = this.isFontSize(docElement, node, fontSize);\n }\n if (!formatCollection.backgroundcolor) {\n formatCollection.backgroundcolor = this.isBackgroundColor(node);\n }\n if (!formatCollection.orderedlist) {\n formatCollection.orderedlist = this.isOrderedList(node);\n }\n if (!formatCollection.unorderedlist) {\n formatCollection.unorderedlist = this.isUnorderedList(node);\n }\n if (!formatCollection.alignments) {\n formatCollection.alignments = this.isAlignment(node);\n }\n if (!formatCollection.formats) {\n formatCollection.formats = this.isFormats(node, formatNode);\n if (formatCollection.formats === 'pre') {\n formatCollection.insertcode = true;\n }\n }\n if (!formatCollection.createlink) {\n formatCollection.createlink = this.isLink(node);\n }\n if (!formatCollection.numberFormatList) {\n formatCollection.numberFormatList = this.isNumberFormatList(node);\n }\n if (!formatCollection.bulletFormatList) {\n formatCollection.bulletFormatList = this.isBulletFormatList(node);\n }\n return formatCollection;\n };\n ToolbarStatus.isFontColor = function (docElement, node) {\n var color = node.style && node.style.color;\n if ((color === null || color === undefined || color === '') && node.nodeType !== 3) {\n color = this.getComputedStyle(docElement, node, 'color');\n }\n if (color !== null && color !== '' && color !== undefined) {\n return color;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isLink = function (node) {\n if (node.nodeName.toLocaleLowerCase() === 'a') {\n return true;\n }\n else {\n return false;\n }\n };\n ToolbarStatus.isBackgroundColor = function (node) {\n var backColor = node.style && node.style.backgroundColor;\n if (backColor !== null && backColor !== '' && backColor !== undefined) {\n return backColor;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isFontSize = function (docElement, node, fontSize) {\n var size = node.style && node.style.fontSize;\n if ((size === null || size === undefined || size === '') && node.nodeType !== 3 &&\n node.parentElement.classList.contains('e-content')) {\n size = this.getComputedStyle(docElement, node, 'font-size');\n }\n if ((size !== null && size !== '' && size !== undefined)\n && (fontSize === null || fontSize === undefined || (fontSize.indexOf(size) > -1))) {\n return size;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isFontName = function (docElement, node, fontName) {\n var name = node.style && node.style.fontFamily;\n if ((name === null || name === undefined || name === '') && node.nodeType !== 3) {\n name = this.getComputedStyle(docElement, node, 'font-family');\n }\n var index = null;\n if ((name !== null && name !== '' && name !== undefined)\n && (fontName === null || fontName === undefined || (fontName.filter(function (value, pos) {\n // eslint-disable-next-line\n var pattern = new RegExp(name, 'i');\n if ((value.replace(/\"/g, '').replace(/ /g, '').toLowerCase() === name.replace(/\"/g, '').replace(/ /g, '').toLowerCase()) ||\n (value.split(',')[0] && value.split(',')[0].search(pattern) > -1)) {\n index = pos;\n }\n }) && (index !== null)))) {\n // eslint-disable-next-line\n return (index !== null) ? fontName[index] : name.replace(/\"/g, '');\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isOrderedList = function (node) {\n if (node.nodeName.toLocaleLowerCase() === 'ol') {\n return true;\n }\n else {\n return false;\n }\n };\n ToolbarStatus.isUnorderedList = function (node) {\n if (node.nodeName.toLocaleLowerCase() === 'ul') {\n return true;\n }\n else {\n return false;\n }\n };\n ToolbarStatus.isAlignment = function (node) {\n var align = node.style && node.style.textAlign;\n if (align === 'left') {\n return 'justifyleft';\n }\n else if (align === 'center') {\n return 'justifycenter';\n }\n else if (align === 'right') {\n return 'justifyright';\n }\n else if (align === 'justify') {\n return 'justifyfull';\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isFormats = function (node, formatNode) {\n if (((formatNode === undefined || formatNode === null)\n && CONSTANT.BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) > -1)\n || (formatNode !== null && formatNode !== undefined\n && formatNode.indexOf(node.nodeName.toLocaleLowerCase()) > -1)) {\n return node.nodeName.toLocaleLowerCase();\n }\n else {\n return null;\n }\n };\n ToolbarStatus.getComputedStyle = function (docElement, node, prop) {\n return docElement.defaultView.getComputedStyle(node, null).getPropertyValue(prop);\n };\n ToolbarStatus.isNumberFormatList = function (node) {\n var list = node.style && node.style.listStyleType;\n if (list === 'lower-alpha') {\n return 'Lower Alpha';\n }\n else if (list === 'number') {\n return 'Number';\n }\n else if (list === 'upper-alpha') {\n return 'Upper Alpha';\n }\n else if (list === 'lower-roman') {\n return 'Lower Roman';\n }\n else if (list === 'upper-roman') {\n return 'Upper Roman';\n }\n else if (list === 'lower-greek') {\n return 'Lower Greek';\n }\n else if (list === 'none') {\n return 'None';\n }\n else if (this.isOrderedList(node)) {\n return true;\n }\n else {\n return null;\n }\n };\n ToolbarStatus.isBulletFormatList = function (node) {\n var list = node.style && node.style.listStyleType;\n if (list === 'circle') {\n return 'Circle';\n }\n else if (list === 'square') {\n return 'Square';\n }\n else if (list === 'none') {\n return 'None';\n }\n else if (list === 'disc') {\n return 'Disc';\n }\n else if (this.isUnorderedList(node)) {\n return true;\n }\n else {\n return null;\n }\n };\n return ToolbarStatus;\n}());\nexport { ToolbarStatus };\n","import * as events from '../base/constant';\nimport { ToolbarStatus } from '../../editor-manager/plugin/toolbar-status';\nimport { getDefaultHtmlTbStatus } from '../../common/util';\n/**\n * HtmlToolbarStatus module for refresh the toolbar status\n */\nvar HtmlToolbarStatus = /** @class */ (function () {\n function HtmlToolbarStatus(parent) {\n this.parent = parent;\n this.toolbarStatus = this.prevToolbarStatus = getDefaultHtmlTbStatus();\n this.addEventListener();\n }\n HtmlToolbarStatus.prototype.addEventListener = function () {\n this.parent.on(events.toolbarRefresh, this.onRefreshHandler, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n HtmlToolbarStatus.prototype.removeEventListener = function () {\n this.parent.off(events.toolbarRefresh, this.onRefreshHandler);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n HtmlToolbarStatus.prototype.onRefreshHandler = function (args) {\n if (this.parent.readonly) {\n return;\n }\n var fontsize = [];\n var fontName = [];\n var formats = [];\n this.parent.fontSize.items.forEach(function (item) {\n fontsize.push(item.value);\n });\n this.parent.fontFamily.items.forEach(function (item) {\n fontName.push(item.value);\n });\n this.parent.format.types.forEach(function (item) {\n formats.push(item.value.toLocaleLowerCase());\n });\n this.toolbarStatus = ToolbarStatus.get(this.parent.contentModule.getDocument(), this.parent.contentModule.getEditPanel(), formats, fontsize, fontName, args.documentNode);\n var tbStatusString = JSON.stringify(this.toolbarStatus);\n this.parent.notify(events.toolbarUpdated, this.toolbarStatus);\n if (JSON.stringify(this.prevToolbarStatus) !== tbStatusString) {\n this.parent.notify(events.updateTbItemsStatus, { html: JSON.parse(tbStatusString), markdown: null });\n this.prevToolbarStatus = JSON.parse(tbStatusString);\n }\n };\n return HtmlToolbarStatus;\n}());\nexport { HtmlToolbarStatus };\n","import { getEditValue } from '../base/util';\n/**\n * Content module is used to render Rich Text Editor content\n *\n * @hidden\n\n */\nvar ContentRender = /** @class */ (function () {\n /**\n * Constructor for content renderer module\n *\n * @param {IRichTextEditor} parent - specifies the parent element.\n * @param {ServiceLocator} serviceLocator - specifies the service.\n * @returns {void}\n */\n function ContentRender(parent, serviceLocator) {\n this.parent = parent;\n this.serviceLocator = serviceLocator;\n }\n /**\n * The function is used to render Rich Text Editor content div\n *\n * @returns {void}\n * @hidden\n\n */\n ContentRender.prototype.renderPanel = function () {\n var rteObj = this.parent;\n var div = this.parent.createElement('div', { className: 'e-rte-content', id: this.parent.getID() + 'rte-view' });\n var rteContent = getEditValue(rteObj.value, rteObj);\n this.editableElement = this.parent.createElement('div', {\n className: 'e-content',\n id: this.parent.getID() + '_rte-edit-view',\n attrs: {\n 'contenteditable': 'true'\n },\n innerHTML: rteContent\n });\n div.appendChild(this.editableElement);\n this.setPanel(div);\n rteObj.element.appendChild(div);\n };\n /**\n * Get the content div element of RichTextEditor\n *\n * @returns {Element} - specifies the element.\n * @hidden\n\n */\n ContentRender.prototype.getPanel = function () {\n return this.contentPanel;\n };\n /**\n * Get the editable element of RichTextEditor\n *\n * @returns {Element} - specifies the return element.\n * @hidden\n\n */\n ContentRender.prototype.getEditPanel = function () {\n return this.editableElement;\n };\n /**\n * Returns the text content as string.\n *\n * @returns {string} - specifies the string element.\n */\n ContentRender.prototype.getText = function () {\n var textString = this.getEditPanel().innerText;\n return textString === '\\n' ? '' : textString;\n };\n /**\n * Set the content div element of RichTextEditor\n *\n * @param {Element} panel - specifies the panel element.\n * @returns {void}\n * @hidden\n\n */\n ContentRender.prototype.setPanel = function (panel) {\n this.contentPanel = panel;\n };\n /**\n * Get the document of RichTextEditor\n *\n * @returns {Document} - specifies the document.\n * @hidden\n\n */\n ContentRender.prototype.getDocument = function () {\n return this.getEditPanel().ownerDocument;\n };\n return ContentRender;\n}());\nexport { ContentRender };\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 { ContentRender } from '../renderer/content-renderer';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { getEditValue } from '../base/util';\nvar IFRAMEHEADER = \"\\n \\n \\n \\n \\n \\n \";\n/**\n * Content module is used to render Rich Text Editor content\n *\n * @hidden\n\n */\nvar IframeContentRender = /** @class */ (function (_super) {\n __extends(IframeContentRender, _super);\n function IframeContentRender() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * The function is used to render Rich Text Editor iframe\n *\n * @hidden\n\n */\n IframeContentRender.prototype.renderPanel = function () {\n var rteObj = this.parent;\n var rteContent = getEditValue(rteObj.value, rteObj);\n var iFrameBodyContent = '' +\n rteContent + '';\n var iFrameContent = IFRAMEHEADER + iFrameBodyContent;\n var iframe = this.parent.createElement('iframe', {\n id: this.parent.getID() + '_rte-view',\n className: 'e-rte-content',\n styles: 'display:block;',\n attrs: { 'srcdoc': iFrameContent }\n });\n this.setPanel(iframe);\n rteObj.element.appendChild(iframe);\n iframe.contentDocument.body.id = this.parent.getID() + '_rte-edit-view';\n iframe.contentDocument.body.setAttribute('aria-owns', this.parent.getID());\n iframe.contentDocument.open();\n iFrameContent = this.setThemeColor(iFrameContent, { color: '#333' });\n iframe.contentDocument.write(iFrameContent);\n iframe.contentDocument.close();\n if (rteObj.enableRtl) {\n this.contentPanel.contentDocument.body.setAttribute('class', 'e-rtl');\n }\n };\n IframeContentRender.prototype.setThemeColor = function (content, styles) {\n var fontColor = getComputedStyle(this.parent.element, '.e-richtexteditor').getPropertyValue('color');\n return content.replace(styles.color, fontColor);\n };\n /**\n * Get the editable element of RichTextEditor\n *\n * @returns {Element} - specifies the element.\n * @hidden\n\n */\n IframeContentRender.prototype.getEditPanel = function () {\n var editNode;\n if (!isNullOrUndefined(this.contentPanel.contentDocument)) {\n editNode = this.contentPanel.contentDocument.body;\n }\n else {\n editNode = this.parent.inputElement;\n }\n return editNode;\n };\n /**\n * Get the document of RichTextEditor\n *\n * @returns {void}\n * @hidden\n\n */\n IframeContentRender.prototype.getDocument = function () {\n return this.getEditPanel().ownerDocument;\n };\n return IframeContentRender;\n}(ContentRender));\nexport { IframeContentRender };\n","import { select, detach, extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { getIndex, toObjectLowerCase } from '../base/util';\nimport { templateItems, tools } from '../models/items';\n/**\n * `Color Picker` module is used to handle ColorPicker actions.\n */\nvar ColorPickerInput = /** @class */ (function () {\n function ColorPickerInput(parent, serviceLocator) {\n this.tools = {};\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.addEventListener();\n if (this.parent.toolbarSettings && Object.keys(this.parent.toolbarSettings.itemConfigs).length > 0) {\n extend(this.tools, tools, toObjectLowerCase(this.parent.toolbarSettings.itemConfigs), true);\n }\n else {\n this.tools = tools;\n }\n }\n ColorPickerInput.prototype.initializeInstance = function () {\n this.toolbarRenderer = this.renderFactory.getRenderer(RenderType.Toolbar);\n };\n /**\n * renderColorPickerInput method\n *\n * @param {IColorPickerRenderArgs} args - specify the arguments.\n * @returns {void}\n * @hidden\n\n */\n ColorPickerInput.prototype.renderColorPickerInput = function (args) {\n var _this = this;\n this.initializeInstance();\n var suffixID = args.containerType;\n var tbElement = args.container;\n var targetID;\n var options;\n templateItems.forEach(function (item) {\n if (getIndex(item, args.items) !== -1) {\n switch (item) {\n case 'fontcolor': {\n targetID = _this.parent.getID() + '_' + suffixID + '_FontColor_Target';\n var fontNode = _this.parent.createElement('input');\n fontNode.id = targetID;\n fontNode.classList.add(classes.CLS_FONT_COLOR_TARGET);\n if (!isNullOrUndefined(_this.parent.cssClass)) {\n var allClassName = _this.parent.cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n fontNode.classList.add(allClassName[i]);\n }\n }\n }\n document.body.appendChild(fontNode);\n options = {\n cssClass: _this.tools[item.toLocaleLowerCase()].icon\n + ' ' + classes.CLS_RTE_ELEMENTS + ' ' + classes.CLS_ICONS + ' ' + _this.parent.cssClass,\n value: _this.tools[item.toLocaleLowerCase()].value,\n command: _this.tools[item.toLocaleLowerCase()].command,\n subCommand: _this.tools[item.toLocaleLowerCase()].subCommand,\n element: select('#' + _this.parent.getID() + '_' + suffixID + '_FontColor', tbElement),\n target: (targetID)\n };\n _this.fontColorPicker = _this.toolbarRenderer.renderColorPicker(options, 'fontcolor');\n _this.fontColorDropDown = _this.toolbarRenderer.renderColorPickerDropDown(options, 'fontcolor', _this.fontColorPicker);\n break;\n }\n case 'backgroundcolor': {\n targetID = _this.parent.getID() + '_' + suffixID + '_BackgroundColor_Target';\n var backNode = _this.parent.createElement('input');\n backNode.id = targetID;\n backNode.classList.add(classes.CLS_BACKGROUND_COLOR_TARGET);\n if (!isNullOrUndefined(_this.parent.cssClass)) {\n var allClassName = _this.parent.cssClass.split(' ');\n for (var i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n backNode.classList.add(allClassName[i]);\n }\n }\n }\n document.body.appendChild(backNode);\n options = {\n cssClass: _this.tools[item.toLocaleLowerCase()].icon\n + ' ' + classes.CLS_RTE_ELEMENTS + ' ' + classes.CLS_ICONS + ' ' + _this.parent.cssClass,\n value: _this.tools[item.toLocaleLowerCase()].value,\n command: _this.tools[item.toLocaleLowerCase()].command,\n subCommand: _this.tools[item.toLocaleLowerCase()].subCommand,\n element: select('#' + _this.parent.getID() + '_' + suffixID + '_BackgroundColor', tbElement),\n target: (targetID)\n };\n _this.backgroundColorPicker = _this.toolbarRenderer.renderColorPicker(options, 'backgroundcolor');\n _this.backgroundColorDropDown = _this.toolbarRenderer.renderColorPickerDropDown(options, 'backgroundcolor', _this.backgroundColorPicker, _this.defaultColorPicker);\n break;\n }\n }\n }\n });\n if (this.parent.inlineMode.enable) {\n this.setCssClass({ cssClass: this.parent.cssClass });\n }\n };\n ColorPickerInput.prototype.destroy = function () {\n this.removeEventListener();\n this.destroyColorPicker();\n };\n /**\n * destroyColorPicker method\n *\n * @returns {void}\n * @hidden\n\n */\n ColorPickerInput.prototype.destroyColorPicker = function () {\n if (this.fontColorPicker && !this.fontColorPicker.isDestroyed) {\n this.fontColorPicker.destroy();\n }\n if (this.backgroundColorPicker && !this.backgroundColorPicker.isDestroyed) {\n this.backgroundColorPicker.destroy();\n }\n if (this.fontColorDropDown && !this.fontColorDropDown.isDestroyed) {\n var innerEle = this.fontColorDropDown.element.querySelector('.e-rte-color-content');\n if (innerEle) {\n detach(innerEle);\n }\n this.fontColorDropDown.destroy();\n }\n if (this.backgroundColorDropDown && !this.backgroundColorDropDown.isDestroyed) {\n var innerEle = this.backgroundColorDropDown.element.querySelector('.e-rte-color-content');\n if (innerEle) {\n this.defaultColorPicker = innerEle.children[0].style.borderBottomColor;\n detach(innerEle);\n }\n this.backgroundColorDropDown.destroy();\n }\n };\n ColorPickerInput.prototype.setRtl = function (args) {\n if (this.fontColorPicker) {\n this.fontColorPicker.setProperties({ enableRtl: args.enableRtl });\n this.fontColorDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.backgroundColorPicker) {\n this.backgroundColorPicker.setProperties({ enableRtl: args.enableRtl });\n this.backgroundColorDropDown.setProperties({ enableRtl: args.enableRtl });\n }\n };\n ColorPickerInput.prototype.setCssClass = function (e) {\n this.updateCss(this.fontColorPicker, this.fontColorDropDown, e);\n this.updateCss(this.backgroundColorPicker, this.backgroundColorDropDown, e);\n };\n ColorPickerInput.prototype.updateCss = function (colorPickerObj, dropDownObj, e) {\n if (colorPickerObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n colorPickerObj.setProperties({ cssClass: (colorPickerObj.cssClass + ' ' + e.cssClass).trim() });\n dropDownObj.setProperties({ cssClass: (dropDownObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n colorPickerObj.setProperties({ cssClass: (colorPickerObj.cssClass.replace(e.oldCssClass, '').replace(' ', ' ').trim() + ' ' + e.cssClass).trim() });\n dropDownObj.setProperties({ cssClass: (dropDownObj.cssClass.replace(e.oldCssClass, '').replace(' ', ' ').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n ColorPickerInput.prototype.addEventListener = function () {\n this.parent.on(events.toolbarRenderComplete, this.renderColorPickerInput, this);\n this.parent.on(events.rtlMode, this.setRtl, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.destroyColorPicker, this.destroyColorPicker, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n };\n ColorPickerInput.prototype.onPropertyChanged = function (model) {\n var newProp = model.newProp;\n var element;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'fontColor':\n if (this.fontColorPicker) {\n for (var _b = 0, _c = Object.keys(newProp.fontColor); _b < _c.length; _b++) {\n var font = _c[_b];\n switch (font) {\n case 'default': {\n this.fontColorPicker.setProperties({ value: newProp.fontColor.default });\n element = this.fontColorDropDown.element;\n var fontBorder = element.querySelector('.' + this.tools['fontcolor'].icon);\n fontBorder.style.borderBottomColor = newProp.fontColor.default;\n break;\n }\n case 'mode':\n this.fontColorPicker.setProperties({ mode: newProp.fontColor.mode });\n break;\n case 'columns':\n this.fontColorPicker.setProperties({ columns: newProp.fontColor.columns });\n break;\n case 'colorCode':\n this.fontColorPicker.setProperties({ presetColors: newProp.fontColor.colorCode });\n break;\n case 'modeSwitcher':\n this.fontColorPicker.setProperties({ modeSwitcher: newProp.fontColor.modeSwitcher });\n break;\n }\n }\n }\n break;\n case 'backgroundColor':\n if (this.backgroundColorPicker) {\n for (var _d = 0, _e = Object.keys(newProp.backgroundColor); _d < _e.length; _d++) {\n var background = _e[_d];\n switch (background) {\n case 'default': {\n this.backgroundColorPicker.setProperties({ value: newProp.backgroundColor.default });\n element = this.backgroundColorDropDown.element;\n var backgroundBorder = element.querySelector('.' + this.tools['backgroundcolor'].icon);\n backgroundBorder.style.borderBottomColor = newProp.backgroundColor.default;\n break;\n }\n case 'mode':\n this.backgroundColorPicker.setProperties({ mode: newProp.backgroundColor.mode });\n break;\n case 'columns':\n this.backgroundColorPicker.setProperties({ columns: newProp.backgroundColor.columns });\n break;\n case 'colorCode':\n this.backgroundColorPicker.setProperties({ presetColors: newProp.backgroundColor.colorCode });\n break;\n case 'modeSwitcher':\n this.backgroundColorPicker.setProperties({ modeSwitcher: newProp.backgroundColor.modeSwitcher });\n break;\n }\n }\n }\n break;\n }\n }\n };\n ColorPickerInput.prototype.removeEventListener = function () {\n this.parent.off(events.toolbarRenderComplete, this.renderColorPickerInput);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.rtlMode, this.setRtl);\n this.parent.off(events.destroyColorPicker, this.destroyColorPicker);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n this.parent.off(events.bindCssClass, this.setCssClass);\n };\n return ColorPickerInput;\n}());\nexport { ColorPickerInput };\n","import * as events from '../base/constant';\nimport { detach, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * XhtmlValidation module called when set enableXhtml as true\n */\nvar XhtmlValidation = /** @class */ (function () {\n function XhtmlValidation(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n XhtmlValidation.prototype.addEventListener = function () {\n this.parent.on(events.xhtmlValidation, this.enableXhtmlValidation, this);\n this.parent.on(events.destroy, this.removeEventListener, this);\n };\n XhtmlValidation.prototype.removeEventListener = function () {\n this.parent.off(events.xhtmlValidation, this.enableXhtmlValidation);\n this.parent.off(events.destroy, this.removeEventListener);\n };\n XhtmlValidation.prototype.enableXhtmlValidation = function () {\n if (this.parent.enableXhtml) {\n if (isNullOrUndefined(this.parent.inputElement)) {\n this.currentElement = this.parent.element;\n }\n else {\n this.currentElement = this.parent.inputElement;\n }\n this.clean(this.currentElement);\n this.ImageTags();\n this.removeTags();\n this.RemoveUnsupported();\n this.currentElement.innerHTML = this.selfEncloseValidation(this.currentElement.innerHTML, this.currentElement.innerText === '\\n' ?\n this.currentElement.innerText.length : this.currentElement.innerText.trim().length);\n this.parent.setProperties({ value: this.currentElement.innerHTML }, true);\n }\n };\n /**\n * @param {string} currentValue - specifies the string value.\n * @param {number} valueLength - specifies the length of the current value.\n * @returns {void}\n\n */\n XhtmlValidation.prototype.selfEncloseValidation = function (currentValue, valueLength) {\n if (valueLength === 0 && currentValue.indexOf('table') < 0 && currentValue.indexOf('img') < 0) {\n var arrayValue = currentValue.split(' ');\n arrayValue[arrayValue.length - 1] = '​' + arrayValue[arrayValue.length - 1];\n currentValue = arrayValue.join('');\n }\n currentValue = currentValue.replace(/
    /g, '
    ').replace(/
    /g, '
    ').replace(/ /g, ' ');\n var valueTemp;\n var valueDupe = [];\n var valueOriginal = [];\n var imgRegexp = [//gi, //gi, //gi, //gi, //gi,\n //gi, //gi, //gi, //gi, //gi,\n //gi, //gi];\n for (var j = 0; j < imgRegexp.length; j++) {\n valueTemp = imgRegexp[j].exec(currentValue);\n while ((valueTemp) !== null) {\n valueDupe.push(valueTemp[0].toString());\n valueTemp = imgRegexp[j].exec(currentValue);\n }\n valueOriginal = valueDupe.slice(0);\n for (var i = 0; i < valueDupe.length; i++) {\n if (valueDupe[i].indexOf('/') === -1 || valueDupe[i].lastIndexOf('/') !== valueDupe[i].length - 2) {\n valueDupe[i] = valueDupe[i].substr(0, valueDupe[i].length - 1) + ' /' +\n valueDupe[i].substr(valueDupe[i].length - 1, valueDupe[i].length);\n }\n }\n for (var g = 0; g <= valueDupe.length - 1; g++) {\n currentValue = currentValue.replace(valueOriginal[g], valueDupe[g]);\n }\n }\n return currentValue;\n };\n XhtmlValidation.prototype.clean = function (node) {\n for (var n = 0; n < node.childNodes.length; n++) {\n var child = node.childNodes[n];\n if (child.nodeType === 8 || child.nodeName === 'V:IMAGE') {\n node.removeChild(child);\n n--;\n }\n else if (child.nodeType === 1) {\n this.clean(child);\n }\n }\n return this.currentElement.innerHTML;\n };\n XhtmlValidation.prototype.ImageTags = function () {\n var imgNodes = this.currentElement.querySelectorAll('IMG');\n for (var i = imgNodes.length - 1; i >= 0; i--) {\n if (!imgNodes[i].hasAttribute('alt')) {\n var img = imgNodes[i];\n img.setAttribute('alt', '');\n }\n }\n };\n XhtmlValidation.prototype.removeTags = function () {\n var removeAttribute = [['br', 'ul'], ['br', 'ol'], ['table', 'span'], ['div', 'span'], ['p', 'span']];\n for (var i = 0; i < removeAttribute.length; i++) {\n this.RemoveElementNode(removeAttribute[i][0], removeAttribute[i][1]);\n }\n };\n XhtmlValidation.prototype.RemoveElementNode = function (rmvNode, parentNode) {\n var parentArray = this.currentElement.querySelectorAll(parentNode);\n for (var i = 0; i < parentArray.length; i++) {\n var rmvArray = parentArray[i].querySelectorAll(rmvNode);\n for (var j = rmvArray.length; j > 0; j--) {\n detach(rmvArray[j - 1]);\n }\n }\n };\n XhtmlValidation.prototype.RemoveUnsupported = function () {\n var underlineEle = this.currentElement.querySelectorAll('u');\n for (var i = underlineEle.length - 1; i >= 0; i--) {\n var spanEle = this.parent.createElement('span');\n spanEle.style.textDecoration = 'underline';\n spanEle.innerHTML = underlineEle[i].innerHTML;\n underlineEle[i].parentNode.insertBefore(spanEle, underlineEle[i]);\n detach(underlineEle[i]);\n }\n var strongEle = this.currentElement.querySelectorAll('strong');\n for (var i = strongEle.length - 1; i >= 0; i--) {\n var boldEle = this.parent.createElement('b');\n boldEle.innerHTML = strongEle[i].innerHTML;\n strongEle[i].parentNode.insertBefore(boldEle, strongEle[i]);\n detach(strongEle[i]);\n }\n var attrArray = ['language', 'role', 'target', 'contenteditable', 'cellspacing',\n 'cellpadding', 'border', 'valign', 'colspan'];\n for (var i = 0; i <= attrArray.length; i++) {\n this.RemoveAttributeByName(attrArray[i]);\n }\n };\n XhtmlValidation.prototype.RemoveAttributeByName = function (attrName) {\n if (this.currentElement.firstChild !== null) {\n if (this.currentElement.firstChild.nodeType !== 3) {\n for (var i = 0; i < this.currentElement.childNodes.length; i++) {\n var ele = this.currentElement.childNodes[i];\n if (ele.nodeType !== 3 && ele.nodeName !== 'TABLE' && ele.nodeName !== 'TBODY' && ele.nodeName !== 'THEAD' &&\n ele.nodeName !== 'TH' && ele.nodeName !== 'TR' && ele.nodeName !== 'TD') {\n if (ele.hasAttribute(attrName)) {\n ele.removeAttribute(attrName);\n }\n if (ele.hasChildNodes()) {\n for (var j = 0; j < ele.childNodes.length; j++) {\n var childEle = ele.childNodes[j];\n if (childEle.nodeType !== 3 && childEle.nodeName !== 'TABLE' && childEle.nodeName !== 'TBODY' &&\n childEle.nodeName !== 'THEAD' && childEle.nodeName !== 'TH' && childEle.nodeName !== 'TR' &&\n childEle.nodeName !== 'TD' && childEle.hasAttribute(attrName) &&\n !childEle.classList.contains('e-mention-chip')) {\n childEle.removeAttribute(attrName);\n }\n if (childEle.hasChildNodes()) {\n for (var k = 0; k < childEle.childNodes.length; k++) {\n if (childEle.childNodes[k].nodeType !== 3 && childEle.childNodes[k].nodeName !== 'TABLE' &&\n childEle.childNodes[k].nodeName !== 'TBODY' && childEle.childNodes[k].nodeName !== 'THEAD' &&\n childEle.childNodes[k].nodeName !== 'TH' && childEle.childNodes[k].nodeName !== 'TR'\n && childEle.childNodes[k].nodeName !== 'TD'\n && childEle.childNodes[k].hasAttribute(attrName)) {\n childEle.childNodes[k].removeAttribute(attrName);\n }\n }\n }\n }\n }\n }\n }\n }\n }\n };\n return XhtmlValidation;\n}());\nexport { XhtmlValidation };\n","import * as events from '../base/constant';\nimport { isNullOrUndefined, closest, attributes, removeClass, addClass, Browser, detach } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { HTMLFormatter } from '../formatter/html-formatter';\nimport { RenderType } from '../base/enum';\nimport * as classes from '../base/classes';\nimport { HtmlToolbarStatus } from './html-toolbar-status';\nimport { IframeContentRender } from '../renderer/iframe-content-renderer';\nimport { ContentRender } from '../renderer/content-renderer';\nimport { ColorPickerInput } from './color-picker';\nimport { NodeSelection } from '../../selection/selection';\nimport { InsertHtml } from '../../editor-manager/plugin/inserthtml';\nimport { getTextNodesUnder, sanitizeHelper, getDefaultValue } from '../base/util';\nimport { isIDevice } from '../../common/util';\nimport { XhtmlValidation } from './xhtml-validation';\nimport { ON_BEGIN } from './../../common/constant';\n/**\n * `HtmlEditor` module is used to HTML editor\n */\nvar HtmlEditor = /** @class */ (function () {\n function HtmlEditor(parent, serviceLocator) {\n this.rangeCollection = [];\n this.isImageDelete = false;\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.xhtmlValidation = new XhtmlValidation(parent);\n this.addEventListener();\n }\n /**\n * Destroys the Markdown.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n HtmlEditor.prototype.destroy = function () {\n this.removeEventListener();\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {void}\n * @hidden\n\n */\n HtmlEditor.prototype.sanitizeHelper = function (value) {\n value = sanitizeHelper(value, this.parent);\n return value;\n };\n HtmlEditor.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.nodeSelectionObj = new NodeSelection();\n this.colorPickerModule = new ColorPickerInput(this.parent, this.locator);\n this.parent.on(events.initialLoad, this.instantiateRenderer, this);\n this.parent.on(events.htmlToolbarClick, this.onToolbarClick, this);\n this.parent.on(events.keyDown, this.onKeyDown, this);\n this.parent.on(events.keyUp, this.onKeyUp, this);\n this.parent.on(events.renderColorPicker, this.renderColorPicker, this);\n this.parent.on(events.initialEnd, this.render, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.selectAll, this.selectAll, this);\n this.parent.on(events.selectRange, this.selectRange, this);\n this.parent.on(events.getSelectedHtml, this.getSelectedHtml, this);\n this.parent.on(events.selectionSave, this.onSelectionSave, this);\n this.parent.on(events.selectionRestore, this.onSelectionRestore, this);\n this.parent.on(events.readOnlyMode, this.updateReadOnly, this);\n this.parent.on(events.paste, this.onPaste, this);\n this.parent.on(events.tableclass, this.isTableClassAdded, this);\n };\n HtmlEditor.prototype.updateReadOnly = function () {\n if (this.parent.readonly) {\n attributes(this.parent.contentModule.getEditPanel(), { contenteditable: 'false' });\n addClass([this.parent.element], classes.CLS_RTE_READONLY);\n }\n else {\n attributes(this.parent.contentModule.getEditPanel(), { contenteditable: 'true' });\n removeClass([this.parent.element], classes.CLS_RTE_READONLY);\n }\n };\n HtmlEditor.prototype.onSelectionSave = function () {\n var currentDocument = this.contentRenderer.getDocument();\n var range = this.nodeSelectionObj.getRange(currentDocument);\n this.saveSelection = this.nodeSelectionObj.save(range, currentDocument);\n };\n HtmlEditor.prototype.onSelectionRestore = function (e) {\n this.parent.isBlur = false;\n this.contentRenderer.getEditPanel().focus();\n if (isNullOrUndefined(e.items) || e.items) {\n this.saveSelection.restore();\n }\n };\n HtmlEditor.prototype.isTableClassAdded = function () {\n var tableElement = this.parent.inputElement.querySelectorAll('table');\n for (var i = 0; i < tableElement.length; i++) {\n if (!tableElement[i].classList.contains('e-rte-table')) {\n tableElement[i].classList.add('e-rte-table');\n }\n }\n };\n HtmlEditor.prototype.onKeyUp = function (e) {\n var args = e.args;\n var restrictKeys = [8, 9, 13, 16, 17, 18, 20, 27, 37, 38, 39, 40, 44, 45, 46, 91,\n 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123];\n var range = this.parent.getRange();\n // eslint-disable-next-line\n var regEx = new RegExp(String.fromCharCode(8203), 'g');\n var pointer;\n var isRootParent = false;\n if (restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey) {\n pointer = range.startOffset;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n range.startContainer.nodeName === '#text' ? range.startContainer.parentElement !== this.parent.inputElement ? range.startContainer.parentElement.classList.add('currentStartMark')\n : isRootParent = true : range.startContainer.classList.add('currentStartMark');\n if (range.startContainer.textContent.charCodeAt(0) === 8203) {\n var previousLength_1 = range.startContainer.textContent.length;\n var previousRange = range.startOffset;\n range.startContainer.textContent = range.startContainer.textContent.replace(regEx, '');\n pointer = previousRange === 0 ? previousRange : previousRange - (previousLength_1 - range.startContainer.textContent.length);\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);\n }\n var previousLength = this.parent.inputElement.innerHTML.length;\n var currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;\n var focusNode = range.startContainer;\n if (previousLength > currentLength && !isRootParent) {\n var currentChild = this.parent.inputElement.firstChild;\n while (!isNOU(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {\n currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');\n currentChild = currentChild.nextElementSibling;\n }\n var currentChildNode = this.parent.inputElement.querySelector('.currentStartMark').childNodes;\n if (currentChildNode.length > 1) {\n for (var i = 0; i < currentChildNode.length; i++) {\n if (currentChildNode[i].nodeName === '#text' && currentChildNode[i].textContent.length === 0) {\n detach(currentChildNode[i]);\n i--;\n }\n if (focusNode.textContent.replace(regEx, '') === currentChildNode[i].textContent) {\n pointer = focusNode.textContent.length > 1 ?\n (focusNode.textContent === currentChildNode[i].textContent ? pointer :\n pointer - (focusNode.textContent.length - focusNode.textContent.replace(regEx, '').length)) :\n focusNode.textContent.length;\n focusNode = currentChildNode[i];\n }\n }\n }\n else if (currentChildNode.length === 1) {\n if (focusNode.textContent.replace(regEx, '') === currentChildNode[0].textContent) {\n focusNode = currentChildNode[0];\n }\n }\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), focusNode, pointer);\n }\n var currentElem = this.parent.inputElement.querySelector('.currentStartMark');\n if (!isNOU(currentElem)) {\n currentElem.classList.remove('currentStartMark');\n if (currentElem.getAttribute('class').trim() === '') {\n currentElem.removeAttribute('class');\n }\n }\n if (!isNOU(range.startContainer.previousSibling) && !isNOU(range.startContainer.previousSibling.parentElement) &&\n range.startContainer.parentElement === range.startContainer.previousSibling.parentElement &&\n range.startContainer.previousSibling.textContent.charCodeAt(0) === 8203 &&\n range.startContainer.previousSibling.textContent.length <= 1) {\n range.startContainer.previousSibling.textContent = range.startContainer.previousSibling.textContent.replace(regEx, '');\n }\n if (range.endContainer.textContent.charCodeAt(range.endOffset) === 8203) {\n pointer = range.startOffset;\n range.endContainer.textContent = range.endContainer.textContent.replace(regEx, '');\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);\n }\n }\n };\n HtmlEditor.prototype.onKeyDown = function (e) {\n var _this = this;\n var currentRange;\n var args = e.args;\n if (Browser.info.name === 'chrome') {\n currentRange = this.parent.getRange();\n this.backSpaceCleanup(e, currentRange);\n this.deleteCleanup(e, currentRange);\n }\n if (args.keyCode === 9 && this.parent.enableTabKey) {\n if (!isNOU(args.target) && isNullOrUndefined(closest(args.target, '.e-rte-toolbar'))) {\n var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());\n var parentNode = this.nodeSelectionObj.getParentNodeCollection(range);\n if (!((parentNode[0].nodeName === 'LI' || closest(parentNode[0], 'li') ||\n closest(parentNode[0], 'table')) && range.startOffset === 0)) {\n args.preventDefault();\n if (!args.shiftKey) {\n InsertHtml.Insert(this.contentRenderer.getDocument(), '    ');\n this.rangeCollection.push(this.nodeSelectionObj.getRange(this.contentRenderer.getDocument()));\n }\n else if (this.rangeCollection.length > 0 &&\n this.rangeCollection[this.rangeCollection.length - 1].startContainer.textContent.length === 4) {\n var textCont = this.rangeCollection[this.rangeCollection.length - 1].startContainer;\n this.nodeSelectionObj.setSelectionText(this.contentRenderer.getDocument(), textCont, textCont, 0, textCont.textContent.length);\n InsertHtml.Insert(this.contentRenderer.getDocument(), document.createTextNode(''));\n this.rangeCollection.pop();\n }\n }\n }\n }\n if (e.args.action === 'space' ||\n e.args.action === 'enter' ||\n e.args.keyCode === 13) {\n this.spaceLink(e.args);\n if (this.parent.editorMode === 'HTML' && !this.parent.readonly) {\n var currentLength = this.parent.getText().trim().length;\n var selectionLength = this.parent.getSelection().length;\n var totalLength = (currentLength - selectionLength) + 1;\n if (!(this.parent.maxLength === -1 || totalLength <= this.parent.maxLength) &&\n e.args.keyCode === 13) {\n e.args.preventDefault();\n return;\n }\n else {\n this.parent.notify(events.enterHandler, { args: e.args });\n }\n }\n }\n if (e.args.action === 'space') {\n var currentRange_1 = this.parent.getRange();\n var editorValue = currentRange_1.startContainer.textContent.slice(0, currentRange_1.startOffset);\n var orderedList_1 = this.isOrderedList(editorValue);\n var unOrderedList = this.isUnOrderedList(editorValue);\n if (orderedList_1 && !unOrderedList || unOrderedList && !orderedList_1) {\n var eventArgs_1 = {\n callBack: null,\n event: e.args,\n name: 'keydown-handler'\n };\n var actionBeginArgs = {\n cancel: false,\n item: { command: 'Lists', subCommand: orderedList_1 ? 'OL' : 'UL' },\n name: 'actionBegin',\n originalEvent: e.args,\n requestType: orderedList_1 ? 'OL' : 'UL'\n };\n this.parent.trigger(events.actionBegin, actionBeginArgs, function (actionBeginArgs) {\n if (!actionBeginArgs.cancel) {\n _this.parent.formatter.editorManager.observer.notify(ON_BEGIN, eventArgs_1);\n _this.parent.trigger(events.actionComplete, {\n editorMode: _this.parent.editorMode,\n elements: _this.parent.formatter.editorManager.domNode.blockNodes(),\n event: e.args,\n name: events.actionComplete,\n range: _this.parent.getRange(),\n requestType: orderedList_1 ? 'OL' : 'UL'\n });\n }\n });\n }\n }\n if (Browser.info.name === 'chrome' && (!isNullOrUndefined(this.rangeElement) && !isNullOrUndefined(this.oldRangeElement) ||\n !isNullOrUndefined(this.deleteRangeElement) && !isNullOrUndefined(this.deleteOldRangeElement)) &&\n currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH') {\n this.rangeElement = null;\n this.oldRangeElement = null;\n this.deleteRangeElement = null;\n this.deleteOldRangeElement = null;\n if (!this.isImageDelete) {\n args.preventDefault();\n }\n args.preventDefault();\n }\n };\n HtmlEditor.prototype.isOrderedList = function (editorValue) {\n editorValue = editorValue.replace(/\\u200B/g, '');\n var olListStartRegex = [/^[1]+[.]+$/, /^[i]+[.]+$/, /^[a]+[.]+$/];\n if (!isNullOrUndefined(editorValue)) {\n for (var i = 0; i < olListStartRegex.length; i++) {\n if (olListStartRegex[i].test(editorValue)) {\n return true;\n }\n }\n }\n return false;\n };\n HtmlEditor.prototype.isUnOrderedList = function (editorValue) {\n editorValue = editorValue.replace(/\\u200B/g, '');\n var ulListStartRegex = [/^[*]$/, /^[-]$/];\n if (!isNullOrUndefined(editorValue)) {\n for (var i = 0; i < ulListStartRegex.length; i++) {\n if (ulListStartRegex[i].test(editorValue)) {\n return true;\n }\n }\n }\n return false;\n };\n HtmlEditor.prototype.backSpaceCleanup = function (e, currentRange) {\n var isLiElement = false;\n var isPreviousNotContentEditable = true;\n if (!isNOU(currentRange.startContainer.previousSibling) &&\n currentRange.startContainer.previousSibling.nodeName === 'SPAN') {\n isPreviousNotContentEditable = currentRange.startContainer.previousSibling.contentEditable === 'false' ? false : true;\n }\n if (e.args.code === 'Backspace' && e.args.keyCode === 8 && currentRange.startOffset === 0 &&\n currentRange.endOffset === 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.textContent.length > 0 &&\n currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH' &&\n isPreviousNotContentEditable) {\n var checkNode = currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer;\n if (!this.parent.formatter.editorManager.domNode.isBlockNode(checkNode) &&\n !isNOU(checkNode.previousSibling) && checkNode.previousSibling.nodeName === 'BR') {\n return;\n }\n this.rangeElement = this.getRootBlockNode(currentRange.startContainer);\n if (this.rangeElement.tagName === 'OL' || this.rangeElement.tagName === 'UL') {\n var liElement = this.getRangeLiNode(currentRange.startContainer);\n if (liElement.previousElementSibling && liElement.previousElementSibling.childElementCount > 0) {\n this.oldRangeElement = liElement.previousElementSibling.lastElementChild.nodeName === 'BR' ?\n liElement.previousElementSibling : liElement.previousElementSibling.lastElementChild;\n if (!isNullOrUndefined(liElement.lastElementChild) && liElement.lastElementChild.nodeName !== 'BR') {\n this.rangeElement = liElement.lastElementChild;\n isLiElement = true;\n }\n else {\n this.rangeElement = liElement;\n }\n }\n }\n else if (this.rangeElement === this.parent.inputElement || this.rangeElement.tagName === 'TABLE' ||\n (!isNullOrUndefined(this.rangeElement.previousElementSibling) && this.rangeElement.previousElementSibling.tagName === 'TABLE')) {\n return;\n }\n else {\n this.oldRangeElement = this.rangeElement.previousElementSibling;\n }\n if (isNullOrUndefined(this.oldRangeElement)) {\n return;\n }\n else {\n if (this.oldRangeElement.tagName === 'OL' || this.oldRangeElement.tagName === 'UL') {\n this.oldRangeElement = this.oldRangeElement.lastElementChild.lastElementChild\n ? this.oldRangeElement.lastElementChild.lastElementChild :\n this.oldRangeElement.lastElementChild;\n }\n var lastNode = this.oldRangeElement.lastChild;\n while (lastNode.nodeType !== 3 && lastNode.nodeName !== '#text' &&\n lastNode.nodeName !== 'BR') {\n lastNode = lastNode.lastChild;\n }\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), \n // eslint-disable-next-line\n lastNode, lastNode.textContent.length);\n if (this.oldRangeElement.querySelectorAll('BR').length === 1) {\n detach(this.oldRangeElement.querySelector('BR'));\n }\n if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {\n while (this.rangeElement.firstChild) {\n this.oldRangeElement.appendChild(this.rangeElement.childNodes[0]);\n }\n // eslint-disable-next-line\n !isLiElement ? detach(this.rangeElement) : detach(this.rangeElement.parentElement);\n this.oldRangeElement.normalize();\n }\n }\n }\n };\n HtmlEditor.prototype.deleteCleanup = function (e, currentRange) {\n var isLiElement = false;\n var liElement;\n var rootElement;\n if (e.args.code === 'Delete' && e.args.keyCode === 46 &&\n this.parent.contentModule.getText().trim().length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&\n currentRange.startContainer.parentElement.tagName !== 'TH') {\n this.deleteRangeElement = rootElement = this.getRootBlockNode(currentRange.startContainer);\n if (this.deleteRangeElement.tagName === 'OL' || this.deleteRangeElement.tagName === 'UL') {\n liElement = this.getRangeLiNode(currentRange.startContainer);\n if (liElement.nextElementSibling && liElement.nextElementSibling.childElementCount > 0\n && !liElement.nextElementSibling.querySelector('BR')) {\n if (!isNullOrUndefined(liElement.lastElementChild)) {\n this.deleteRangeElement = liElement.lastElementChild;\n isLiElement = true;\n }\n else {\n this.deleteRangeElement = liElement;\n }\n }\n else {\n this.deleteRangeElement = this.getRangeElement(liElement);\n }\n }\n else if (this.deleteRangeElement.nodeType === 3 || (this.deleteRangeElement.tagName === 'TABLE' ||\n (!isNullOrUndefined(this.deleteRangeElement.nextElementSibling) && this.deleteRangeElement.nextElementSibling.tagName === 'TABLE'))) {\n return;\n }\n if (this.getCaretIndex(currentRange, this.deleteRangeElement) === this.deleteRangeElement.textContent.length) {\n if (!isNullOrUndefined(liElement)) {\n if (isLiElement || !isNullOrUndefined(liElement.nextElementSibling)) {\n this.deleteOldRangeElement = this.getRangeElement(liElement.nextElementSibling);\n }\n else {\n this.deleteOldRangeElement = rootElement.nextElementSibling;\n }\n }\n else {\n this.deleteOldRangeElement = this.deleteRangeElement.nextElementSibling;\n }\n if (isNullOrUndefined(this.deleteOldRangeElement)) {\n return;\n }\n else {\n if (currentRange.startOffset === 0 && currentRange.endOffset === 1 &&\n this.deleteRangeElement.childNodes[0].nodeName === 'IMG') {\n this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement, 0, 1);\n this.isImageDelete = true;\n }\n else {\n this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement.childNodes.length);\n this.isImageDelete = false;\n }\n if (this.deleteRangeElement.querySelector('BR')) {\n detach(this.deleteRangeElement.querySelector('BR'));\n }\n if (!isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')\n && this.deleteOldRangeElement !== this.deleteRangeElement) {\n while (this.deleteOldRangeElement.firstChild) {\n this.deleteRangeElement.appendChild(this.deleteOldRangeElement.childNodes[0]);\n }\n if (!isLiElement) {\n detach(this.deleteOldRangeElement);\n }\n else {\n detach(this.deleteOldRangeElement.parentElement);\n }\n this.deleteRangeElement.normalize();\n }\n else {\n this.deleteRangeElement = null;\n this.deleteOldRangeElement = null;\n }\n }\n }\n else {\n this.deleteRangeElement = null;\n }\n }\n };\n HtmlEditor.prototype.getCaretIndex = function (currentRange, element) {\n var position = 0;\n if (this.parent.contentModule.getDocument().getSelection().rangeCount !== 0) {\n var preCaretRange = currentRange.cloneRange();\n preCaretRange.selectNodeContents(element);\n preCaretRange.setEnd(currentRange.endContainer, currentRange.endOffset);\n position = preCaretRange.toString().length;\n }\n return position;\n };\n HtmlEditor.prototype.getRangeElement = function (element) {\n var rangeElement = element.lastElementChild ? element.lastElementChild.tagName === 'BR' ?\n element.lastElementChild.previousElementSibling ? element.lastElementChild.previousElementSibling\n : element : element.lastElementChild : element;\n return rangeElement;\n };\n HtmlEditor.prototype.getRootBlockNode = function (rangeBlockNode) {\n // eslint-disable-next-line\n for (; rangeBlockNode && this.parent && this.parent.inputElement !== rangeBlockNode; rangeBlockNode = rangeBlockNode) {\n if (rangeBlockNode.parentElement === this.parent.inputElement) {\n break;\n }\n else {\n rangeBlockNode = rangeBlockNode.parentElement;\n }\n }\n return rangeBlockNode;\n };\n HtmlEditor.prototype.getRangeLiNode = function (rangeLiNode) {\n var node = rangeLiNode.parentElement;\n while (node !== this.parent.inputElement) {\n if (node.nodeType === 1 && node.tagName === 'LI') {\n break;\n }\n node = node.parentElement;\n }\n return node;\n };\n HtmlEditor.prototype.onPaste = function (e) {\n // eslint-disable-next-line\n var regex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)|(www\\.))(\\S+))/gi);\n if (e.text.match(regex)) {\n if (e.isWordPaste) {\n return;\n }\n e.args.preventDefault();\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());\n // eslint-disable-next-line\n var saveSelection = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());\n // eslint-disable-next-line\n var httpRegex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)))/gi);\n var wwwRegex = new RegExp(/([^\\S]|^)(((www\\.))(\\S+))/gi);\n var enterSplitText = e.text.split('\\n');\n var contentInnerElem = '';\n for (var i = 0; i < enterSplitText.length; i++) {\n if (enterSplitText[i].trim() === '') {\n contentInnerElem += getDefaultValue(this.parent);\n }\n else {\n var contentWithSpace = '';\n var spaceBetweenContent = true;\n var spaceSplit = enterSplitText[i].split(' ');\n for (var j = 0; j < spaceSplit.length; j++) {\n if (spaceSplit[j].trim() === '') {\n contentWithSpace += spaceBetweenContent ? ' ' : ' ';\n }\n else {\n spaceBetweenContent = false;\n contentWithSpace += spaceSplit[j] + ' ';\n }\n }\n if (i === 0) {\n contentInnerElem += '' + contentWithSpace.trim() + '';\n }\n else {\n contentInnerElem += '

    ' + contentWithSpace.trim() + '

    ';\n }\n }\n }\n var divElement = this.parent.createElement('div');\n divElement.setAttribute('class', 'pasteContent');\n divElement.style.display = 'inline';\n divElement.innerHTML = contentInnerElem.replace('¶', '&para');\n var paraElem = divElement.querySelectorAll('span, p');\n for (var i = 0; i < paraElem.length; i++) {\n var splitTextContent = paraElem[i].innerHTML.split(' ');\n var resultSplitContent = '';\n for (var j = 0; j < splitTextContent.length; j++) {\n if (splitTextContent[j].match(httpRegex) || splitTextContent[j].match(wwwRegex)) {\n resultSplitContent += '' + splitTextContent[j] + ' ';\n }\n else {\n resultSplitContent += splitTextContent[j] + ' ';\n }\n }\n paraElem[i].innerHTML = resultSplitContent.trim();\n }\n if (!isNullOrUndefined(this.parent.pasteCleanupModule)) {\n e.callBack(divElement.innerHTML);\n }\n else {\n this.parent.formatter.editorManager.execCommand('insertHTML', null, null, null, divElement);\n }\n }\n };\n HtmlEditor.prototype.spaceLink = function (e) {\n var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());\n var selectNodeEle = this.nodeSelectionObj.getParentNodeCollection(range);\n var text = range.startContainer.textContent.substr(0, range.endOffset);\n var splitText = text.split(' ');\n var urlText = splitText[splitText.length - 1];\n var urlTextRange = range.startOffset - (text.length - splitText[splitText.length - 1].length);\n urlText = urlText.slice(0, urlTextRange);\n // eslint-disable-next-line\n var regex = new RegExp(/([^\\S]|^)(((https?\\:\\/\\/)|(www\\.))(\\S+))/gi);\n if (selectNodeEle[0].nodeName !== 'A' && urlText.match(regex)) {\n var selection = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());\n var url = urlText.indexOf('http') > -1 ? urlText : 'http://' + urlText;\n var selectParent = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);\n var value = {\n url: url,\n selection: selection, selectParent: selectParent,\n text: urlText,\n title: '',\n target: '_blank'\n };\n this.parent.formatter.process(this.parent, {\n item: {\n 'command': 'Links',\n 'subCommand': 'CreateLink'\n }\n }, e, value);\n }\n };\n HtmlEditor.prototype.onToolbarClick = function (args) {\n var _this = this;\n var save;\n var selectNodeEle;\n var selectParentEle;\n var item = args.item;\n var closestElement = closest(args.originalEvent.target, '.e-rte-quick-popup');\n if (item.command !== 'FormatPainter') {\n if (closestElement && !closestElement.classList.contains('e-rte-inline-popup')) {\n if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||\n item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {\n if (isIDevice() && item.command === 'Images') {\n this.nodeSelectionObj.restore();\n }\n var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());\n save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());\n selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);\n selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);\n }\n if (item.command === 'Images') {\n this.parent.notify(events.imageToolbarAction, {\n member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Audios') {\n this.parent.notify(events.audioToolbarAction, {\n member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Videos') {\n this.parent.notify(events.videoToolbarAction, {\n member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Links') {\n this.parent.notify(events.linkToolbarAction, {\n member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n if (item.command === 'Table') {\n this.parent.notify(events.tableToolbarAction, {\n member: 'table', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n }\n }\n else {\n var linkDialog = document.getElementById(this.parent.getID() + '_rtelink');\n var imageDialog = document.getElementById(this.parent.getID() + '_image');\n if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||\n item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {\n var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());\n if (isNullOrUndefined(linkDialog) && isNullOrUndefined(imageDialog)) {\n save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());\n }\n selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);\n selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);\n }\n switch (item.subCommand) {\n case 'Maximize':\n this.parent.notify(events.enableFullScreen, { args: args });\n break;\n case 'Minimize':\n this.parent.notify(events.disableFullScreen, { args: args });\n break;\n case 'CreateLink':\n this.parent.notify(events.insertLink, {\n member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'RemoveLink':\n this.parent.notify(events.unLink, {\n member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'Print':\n this.parent.print();\n break;\n case 'Image':\n this.parent.notify(events.insertImage, {\n member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'Audio':\n this.parent.notify(events.insertAudio, {\n member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'Video':\n this.parent.notify(events.insertVideo, {\n member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'CreateTable':\n this.parent.notify(events.createTable, {\n member: 'table', args: args, selection: save\n });\n break;\n case 'SourceCode':\n this.parent.notify(events.sourceCode, { member: 'viewSource', args: args });\n break;\n case 'Preview':\n this.parent.notify(events.updateSource, { member: 'updateSource', args: args });\n break;\n case 'FontColor':\n case 'BackgroundColor':\n break;\n case 'File':\n this.parent.notify(events.renderFileManager, {\n member: 'fileManager', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle\n });\n break;\n case 'EmojiPicker':\n this.parent.notify(events.emojiPicker, { member: 'emojiPicker', args: args });\n break;\n default:\n this.parent.formatter.process(this.parent, args, args.originalEvent, null);\n break;\n }\n }\n }\n else {\n if (args.originalEvent.detail === 1) {\n clearTimeout(this.clickTimeout);\n this.clickTimeout = setTimeout(function () {\n _this.parent.notify(events.formatPainterClick, {\n member: 'formatPainter', args: args\n });\n }, 200);\n }\n else {\n clearTimeout(this.clickTimeout);\n this.parent.notify(events.formatPainterDoubleClick, {\n member: 'formatPainter', args: args\n });\n }\n }\n };\n HtmlEditor.prototype.renderColorPicker = function (args) {\n this.colorPickerModule.renderColorPickerInput(args);\n };\n HtmlEditor.prototype.instantiateRenderer = function () {\n if (this.parent.iframeSettings.enable) {\n this.renderFactory.addRenderer(RenderType.Content, new IframeContentRender(this.parent, this.locator));\n }\n else {\n this.renderFactory.addRenderer(RenderType.Content, new ContentRender(this.parent, this.locator));\n }\n };\n HtmlEditor.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.render);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n this.parent.off(events.htmlToolbarClick, this.onToolbarClick);\n this.parent.off(events.renderColorPicker, this.renderColorPicker);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.keyDown, this.onKeyDown);\n this.parent.off(events.initialLoad, this.instantiateRenderer);\n this.parent.off(events.selectAll, this.selectAll);\n this.parent.off(events.selectRange, this.selectRange);\n this.parent.off(events.getSelectedHtml, this.getSelectedHtml);\n this.parent.off(events.selectionSave, this.onSelectionSave);\n this.parent.off(events.selectionRestore, this.onSelectionRestore);\n this.parent.off(events.readOnlyMode, this.updateReadOnly);\n this.parent.off(events.paste, this.onPaste);\n this.parent.off(events.tableclass, this.isTableClassAdded);\n };\n HtmlEditor.prototype.render = function () {\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n var editElement = this.contentRenderer.getEditPanel();\n var option = { undoRedoSteps: this.parent.undoRedoSteps, undoRedoTimer: this.parent.undoRedoTimer };\n if (isNullOrUndefined(this.parent.formatter)) {\n var formatterClass = new HTMLFormatter({\n currentDocument: this.contentRenderer.getDocument(),\n element: editElement,\n options: option,\n formatPainterSettings: this.parent.formatPainterSettings\n });\n this.parent.setProperties({ formatter: formatterClass }, true);\n }\n else {\n this.parent.formatter.updateFormatter(editElement, this.contentRenderer.getDocument(), option);\n }\n if (this.parent.enableXhtml) {\n this.parent.notify(events.xhtmlValidation, {});\n }\n if (this.parent.toolbarSettings.enable) {\n this.toolbarUpdate = new HtmlToolbarStatus(this.parent);\n }\n if (this.parent.inlineMode.enable) {\n if (!isNullOrUndefined(this.parent.fontFamily.default)) {\n editElement.style.fontFamily = this.parent.fontFamily.default;\n }\n if (!isNullOrUndefined(this.parent.fontSize.default)) {\n editElement.style.fontSize = this.parent.fontSize.default;\n }\n }\n this.parent.notify(events.bindOnEnd, {});\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the editor model\n * @returns {void}\n * @hidden\n\n */\n HtmlEditor.prototype.onPropertyChanged = function (e) {\n // On property code change here\n if (!isNullOrUndefined(e.newProp.formatter)) {\n var editElement = this.contentRenderer.getEditPanel();\n var option = { undoRedoSteps: this.parent.undoRedoSteps,\n undoRedoTimer: this.parent.undoRedoTimer };\n this.parent.formatter.updateFormatter(editElement, this.contentRenderer.getDocument(), option);\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string value\n * @hidden\n */\n HtmlEditor.prototype.getModuleName = function () {\n return 'htmlEditor';\n };\n /**\n * For selecting all content in RTE\n *\n * @returns {void}\n * @private\n * @hidden\n */\n HtmlEditor.prototype.selectAll = function () {\n var nodes = getTextNodesUnder(this.parent.contentModule.getDocument(), this.parent.contentModule.getEditPanel());\n if (nodes.length > 0) {\n this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), nodes[0], nodes[nodes.length - 1], 0, nodes[nodes.length - 1].textContent.length);\n }\n };\n /**\n * For selecting all content in RTE\n *\n * @param {NotifyArgs} e - specifies the notified arguments\n * @returns {void}\n * @private\n * @hidden\n */\n HtmlEditor.prototype.selectRange = function (e) {\n this.parent.formatter.editorManager.nodeSelection.setRange(this.parent.contentModule.getDocument(), e.range);\n };\n /**\n * For get a selected text in RTE\n *\n * @param {NotifyArgs} e - specifies the notified arguments\n * @returns {void}\n * @hidden\n */\n HtmlEditor.prototype.getSelectedHtml = function (e) {\n e.callBack(this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument()).toString());\n };\n return HtmlEditor;\n}());\nexport { HtmlEditor };\n","import { detach, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport * as events from '../base/constant';\nimport { RenderType } from '../base/enum';\nimport { CLS_COUNT, CLS_WARNING, CLS_ERROR } from '../base/classes';\n/**\n * `Count` module is used to handle Count actions.\n */\nvar Count = /** @class */ (function () {\n function Count(parent, serviceLocator) {\n this.parent = parent;\n this.locator = serviceLocator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.addEventListener();\n }\n Count.prototype.initializeInstance = function () {\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n this.editPanel = this.contentRenderer.getEditPanel();\n this.addEventListener();\n };\n /**\n * renderCount method\n *\n * @returns {void}\n * @hidden\n\n */\n Count.prototype.renderCount = function () {\n this.initializeInstance();\n this.element = this.parent.createElement('span', { className: CLS_COUNT });\n this.contentRenderer.getPanel().parentElement.appendChild(this.element);\n this.appendCount();\n if (this.parent.maxLength !== -1) {\n this.charCountBackground(this.htmlLength);\n }\n };\n Count.prototype.appendCount = function () {\n var htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value :\n this.editPanel.textContent;\n if (this.parent.editorMode !== 'Markdown' && htmlText.indexOf('\\u200B') !== -1) {\n this.htmlLength = htmlText.replace(/\\u200B/g, '').length;\n }\n else {\n this.htmlLength = htmlText.length;\n }\n var string = this.parent.maxLength === -1 ? this.htmlLength : this.htmlLength + ' / ' + this.parent.maxLength;\n this.element.innerHTML = string;\n };\n Count.prototype.charCountBackground = function (htmlLength) {\n var percentage = (htmlLength / this.parent.maxLength) * 100;\n if (percentage < 85) {\n this.element.classList.remove(CLS_WARNING);\n this.element.classList.remove(CLS_ERROR);\n }\n else if (percentage > 85 && percentage <= 90) {\n this.element.classList.remove(CLS_ERROR);\n this.element.classList.add(CLS_WARNING);\n }\n else if (percentage > 90) {\n this.element.classList.remove(CLS_WARNING);\n this.element.classList.add(CLS_ERROR);\n }\n };\n /**\n * @returns {void}\n * @hidden\n\n */\n Count.prototype.refresh = function () {\n if (!isNullOrUndefined(this.editPanel)) {\n this.appendCount();\n if (this.parent.maxLength !== -1) {\n this.charCountBackground(this.htmlLength);\n }\n }\n };\n /**\n * Destroys the Count.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n Count.prototype.destroy = function () {\n if (this.element && !isNullOrUndefined(this.parent.element.querySelector('.' + CLS_COUNT))) {\n detach(this.element);\n }\n this.removeEventListener();\n };\n Count.prototype.toggle = function (e) {\n this.element.style.display = (e.member === 'viewSource') ? 'none' : 'block';\n };\n Count.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.initialEnd, this.renderCount, this);\n this.parent.on(events.keyUp, this.refresh, this);\n this.parent.on(events.count, this.refresh, this);\n this.parent.on(events.refreshBegin, this.refresh, this);\n this.parent.on(events.mouseDown, this.refresh, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.sourceCode, this.toggle, this);\n this.parent.on(events.updateSource, this.toggle, this);\n };\n Count.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.renderCount);\n this.parent.off(events.keyUp, this.refresh);\n this.parent.off(events.refreshBegin, this.refresh);\n this.parent.off(events.count, this.refresh);\n this.parent.off(events.mouseDown, this.refresh);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.sourceCode, this.toggle);\n this.parent.off(events.updateSource, this.toggle);\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string value\n */\n Count.prototype.getModuleName = function () {\n return 'count';\n };\n return Count;\n}());\nexport { Count };\n","import { detach, getUniqueID, append, closest, selectAll, select, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, Browser, isNullOrUndefined, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isCollide, Tooltip } from '@syncfusion/ej2-popups';\nimport * as events from '../base/constant';\nimport * as classes from '../base/classes';\nimport { RenderType } from '../base/enum';\nimport { setToolbarStatus, updateUndoRedoStatus, isIDevice } from '../base/util';\nimport { BaseToolbar } from './base-toolbar';\nimport { DropDownButtons } from './dropdown-buttons';\nimport { ColorPickerInput } from './color-picker';\n/**\n * `Quick toolbar` module is used to handle Quick toolbar actions.\n */\nvar BaseQuickToolbar = /** @class */ (function () {\n function BaseQuickToolbar(parent, locator) {\n this.parent = parent;\n this.locator = locator;\n this.isDOMElement = false;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n this.popupRenderer = this.renderFactory.getRenderer(RenderType.Popup);\n this.dropDownButtons = new DropDownButtons(this.parent, this.locator);\n this.colorPickerObj = new ColorPickerInput(this.parent, this.locator);\n }\n BaseQuickToolbar.prototype.appendPopupContent = function () {\n this.toolbarElement = this.parent.createElement('div', { className: classes.CLS_QUICK_TB });\n this.element.appendChild(this.toolbarElement);\n };\n /**\n * render method\n *\n * @param {IQuickToolbarOptions} args - specifies the arguments\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.render = function (args) {\n var className;\n if (args.popupType === 'Image') {\n className = classes.CLS_IMAGE_POP;\n }\n else if (args.popupType === 'Inline') {\n className = classes.CLS_INLINE_POP;\n }\n else {\n className = '';\n }\n var popupId = getUniqueID(args.popupType + '_Quick_Popup');\n this.stringItems = args.toolbarItems;\n this.element = this.parent.createElement('div', { id: popupId, className: className + ' ' + classes.CLS_RTE_ELEMENTS });\n this.element.setAttribute('aria-owns', this.parent.getID());\n this.appendPopupContent();\n this.createToolbar(args.toolbarItems, args.mode, args.cssClass);\n this.popupRenderer.renderPopup(this);\n this.addEventListener();\n };\n BaseQuickToolbar.prototype.createToolbar = function (items, mode, cssClass) {\n this.quickTBarObj = new BaseToolbar(this.parent, this.locator);\n this.quickTBarObj.render({\n container: 'quick',\n target: this.toolbarElement,\n items: items,\n mode: mode,\n cssClass: cssClass\n });\n this.quickTBarObj.toolbarObj.refresh();\n };\n BaseQuickToolbar.prototype.setPosition = function (e) {\n var x;\n var y;\n var imgWrapper = closest(e.target, '.e-img-caption');\n var isAligned = (e.target.classList.contains('e-imginline') ||\n e.target.classList.contains('e-imgbreak')) ? false : true;\n var target = !isNOU(imgWrapper) ? imgWrapper : e.target;\n addClass([this.toolbarElement], [classes.CLS_RM_WHITE_SPACE]);\n var targetOffsetTop = target.offsetTop;\n var parentOffsetTop = window.pageYOffset + e.parentData.top;\n if ((targetOffsetTop - e.editTop) > e.popHeight) {\n y = parentOffsetTop + e.tBarElementHeight + (targetOffsetTop - e.editTop) - e.popHeight - 5;\n }\n else if (((e.editTop + e.editHeight) - (targetOffsetTop + target.offsetHeight)) > e.popHeight) {\n y = parentOffsetTop + e.tBarElementHeight + (targetOffsetTop - e.editTop) + target.offsetHeight + 5;\n }\n else {\n y = e.y;\n }\n target = isAligned ? e.target : target;\n if (target.offsetWidth > e.popWidth) {\n x = (target.offsetWidth / 2) - (e.popWidth / 2) + e.parentData.left + target.offsetLeft;\n }\n else {\n x = e.parentData.left + target.offsetLeft;\n }\n this.popupObj.position.X = ((x + e.popWidth) > e.parentData.right) ? e.parentData.right - e.popWidth : x;\n this.popupObj.position.Y = (y >= 0) ? y : e.y + 5;\n this.popupObj.dataBind();\n removeClass([this.toolbarElement], [classes.CLS_RM_WHITE_SPACE]);\n };\n BaseQuickToolbar.prototype.checkCollision = function (e, viewPort, type) {\n var x;\n var y;\n var parentTop = e.parentData.top;\n var contentTop = e.windowY + parentTop + e.tBarElementHeight;\n var collision = [];\n if (viewPort === 'document') {\n collision = isCollide(e.popup);\n }\n else {\n collision = isCollide(e.popup, e.parentElement);\n }\n for (var i = 0; i < collision.length; i++) {\n switch (collision[i]) {\n case 'top':\n if (viewPort === 'document') {\n y = e.windowY;\n }\n else {\n y = (window.pageYOffset + parentTop) + e.tBarElementHeight;\n }\n break;\n case 'bottom': {\n var posY = void 0;\n if (viewPort === 'document') {\n if (type === 'inline') {\n posY = (e.y - e.popHeight - 10);\n }\n else {\n if ((e.windowHeight - (parentTop + e.tBarElementHeight)) > e.popHeight) {\n if ((contentTop - e.windowHeight) > e.popHeight) {\n posY = (contentTop + (e.windowHeight - parentTop)) - e.popHeight;\n }\n else {\n posY = contentTop;\n }\n }\n else {\n posY = e.windowY + (parentTop + e.tBarElementHeight);\n }\n }\n }\n else {\n if (e.target.tagName !== 'IMG') {\n posY = (e.parentData.bottom + window.pageYOffset) - e.popHeight - 10;\n }\n else {\n posY = (e.parentData.bottom + window.pageYOffset) - e.popHeight - 5;\n }\n }\n y = posY;\n break;\n }\n case 'right':\n if (type === 'inline') {\n x = window.pageXOffset + (e.windowWidth - (e.popWidth + e.bodyRightSpace + 10));\n }\n else {\n x = e.x - e.popWidth;\n }\n break;\n case 'left':\n if (type === 'inline') {\n x = 0;\n }\n else {\n x = e.parentData.left;\n }\n break;\n }\n }\n this.popupObj.position.X = (x) ? x : this.popupObj.position.X;\n this.popupObj.position.Y = (y) ? y : this.popupObj.position.Y;\n this.popupObj.dataBind();\n };\n /**\n * showPopup method\n *\n * @param {number} x - specifies the x value\n * @param {number} y - specifies the y value\n * @param {Element} target - specifies the element\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.showPopup = function (x, y, target) {\n var _this = this;\n var eventArgs = { popup: this.popupObj, cancel: false, targetElement: target,\n positionX: x, positionY: y };\n this.parent.trigger(events.beforeQuickToolbarOpen, eventArgs, function (beforeQuickToolbarArgs) {\n if (!beforeQuickToolbarArgs.cancel) {\n var editPanelTop = void 0;\n var editPanelHeight = void 0;\n var bodyStyle = window.getComputedStyle(document.body);\n var bodyRight = parseFloat(bodyStyle.marginRight.split('px')[0]) + parseFloat(bodyStyle.paddingRight.split('px')[0]);\n var windowHeight = window.innerHeight;\n var windowWidth = window.innerWidth;\n var parent_1 = _this.parent.element;\n var toolbarAvail = !isNullOrUndefined(_this.parent.getToolbar());\n var tbHeight = toolbarAvail && _this.parent.toolbarModule.getToolbarHeight();\n var expTBHeight = toolbarAvail && _this.parent.toolbarModule.getExpandTBarPopHeight();\n var tBarHeight = (toolbarAvail) ? (tbHeight + expTBHeight) : 0;\n addClass([_this.element], [classes.CLS_HIDE]);\n if (Browser.isDevice && !isIDevice()) {\n addClass([_this.parent.getToolbar()], [classes.CLS_HIDE]);\n }\n if (_this.parent.iframeSettings.enable) {\n var cntEle = _this.contentRenderer.getPanel().contentWindow;\n editPanelTop = cntEle.pageYOffset;\n editPanelHeight = cntEle.innerHeight;\n }\n else {\n var cntEle = closest(target, '.' + classes.CLS_RTE_CONTENT);\n editPanelTop = (cntEle) ? cntEle.scrollTop : 0;\n editPanelHeight = (cntEle) ? cntEle.offsetHeight : 0;\n }\n if (!_this.parent.inlineMode.enable && !closest(target, 'table')) {\n _this.parent.disableToolbarItem(_this.parent.toolbarSettings.items);\n _this.parent.enableToolbarItem(['Undo', 'Redo']);\n }\n append([_this.element], document.body);\n if (_this.parent.showTooltip) {\n _this.tooltip = new Tooltip({\n target: '#' + _this.element.id + ' [title]',\n openDelay: 400,\n showTipPointer: true\n });\n _this.tooltip.appendTo(_this.element);\n }\n _this.popupObj.position.X = beforeQuickToolbarArgs.positionX + 20;\n _this.popupObj.position.Y = beforeQuickToolbarArgs.positionY + 20;\n _this.popupObj.dataBind();\n _this.popupObj.element.classList.add('e-popup-open');\n _this.dropDownButtons.renderDropDowns({\n container: _this.toolbarElement,\n containerType: 'quick',\n items: _this.stringItems\n });\n _this.colorPickerObj.renderColorPickerInput({\n container: _this.toolbarElement,\n containerType: 'quick',\n items: _this.stringItems\n });\n var showPopupData = {\n x: x, y: y,\n target: target,\n editTop: editPanelTop,\n editHeight: editPanelHeight,\n popup: _this.popupObj.element,\n popHeight: _this.popupObj.element.offsetHeight,\n popWidth: _this.popupObj.element.offsetWidth,\n parentElement: parent_1,\n bodyRightSpace: bodyRight,\n windowY: window.pageYOffset,\n windowHeight: windowHeight,\n windowWidth: windowWidth,\n parentData: parent_1.getBoundingClientRect(),\n tBarElementHeight: tBarHeight\n };\n if (target.tagName === 'IMG' || target.tagName === 'AUDIO' || target.tagName === 'VIDEO' || target.tagName === 'IFRAME' || (target.classList &&\n (target.classList.contains(classes.CLS_AUDIOWRAP) || target.classList.contains(classes.CLS_CLICKELEM) ||\n target.classList.contains(classes.CLS_VID_CLICK_ELEM)))) {\n _this.setPosition(showPopupData);\n }\n if (!_this.parent.inlineMode.enable) {\n _this.checkCollision(showPopupData, 'parent', '');\n }\n _this.checkCollision(showPopupData, 'document', ((_this.parent.inlineMode.enable) ? 'inline' : ''));\n _this.popupObj.element.classList.remove('e-popup-open');\n removeClass([_this.element], [classes.CLS_HIDE]);\n _this.popupObj.show({ name: 'ZoomIn', duration: (Browser.isIE ? 250 : 400) });\n if (_this.popupObj && _this.parent.cssClass) {\n removeClass([_this.popupObj.element], _this.parent.cssClass);\n addClass([_this.popupObj.element], _this.parent.cssClass);\n }\n setStyleAttribute(_this.element, {\n maxWidth: window.outerWidth + 'px'\n });\n addClass([_this.element], [classes.CLS_POP]);\n _this.isDOMElement = true;\n }\n });\n };\n /**\n * hidePopup method\n *\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.hidePopup = function () {\n var viewSourcePanel = this.parent.sourceCodeModule.getViewPanel();\n if (Browser.isDevice && !isIDevice()) {\n removeClass([this.parent.getToolbar()], [classes.CLS_HIDE]);\n }\n if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap'))) {\n if (!isNullOrUndefined(document.querySelector('#' + this.element.id + ' [data-tooltip-id]'))) {\n var tooltipTargetEle = document.querySelector('#' + this.element.id + ' [data-tooltip-id]');\n var dataContent = tooltipTargetEle.getAttribute('data-content');\n tooltipTargetEle.removeAttribute('data-content');\n tooltipTargetEle.setAttribute('title', dataContent);\n tooltipTargetEle.removeAttribute('data-tooltip-id');\n }\n this.tooltip.destroy();\n }\n else {\n if (!isNullOrUndefined(this.tooltip)) {\n this.tooltip.destroy();\n }\n }\n if (!isNullOrUndefined(this.parent.getToolbar()) && !this.parent.inlineMode.enable) {\n if (isNullOrUndefined(viewSourcePanel) || viewSourcePanel.style.display === 'none') {\n this.parent.enableToolbarItem(this.parent.toolbarSettings.items);\n }\n }\n this.removeEleFromDOM();\n this.isDOMElement = false;\n };\n /**\n * @param {string} item - specifies the string value\n * @param {number} index - specifies the index value\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.addQTBarItem = function (item, index) {\n this.quickTBarObj.toolbarObj.addItems(this.quickTBarObj.getItems(item, 'toolbar'), index);\n };\n /**\n * @param {number} index - specifies the index value\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.removeQTBarItem = function (index) {\n this.quickTBarObj.toolbarObj.removeItems(index);\n };\n BaseQuickToolbar.prototype.removeEleFromDOM = function () {\n var element = this.popupObj.element;\n if (this.isDOMElement) {\n this.dropDownButtons.destroyDropDowns();\n this.colorPickerObj.destroyColorPicker();\n removeClass([this.element], [classes.CLS_POP]);\n detach(element);\n var args = this.popupObj;\n this.parent.trigger(events.quickToolbarClose, args);\n }\n };\n BaseQuickToolbar.prototype.updateStatus = function (args) {\n var options = {\n args: args,\n dropDownModule: this.dropDownButtons,\n parent: this.parent,\n tbElements: selectAll('.' + classes.CLS_TB_ITEM, this.element),\n tbItems: this.quickTBarObj.toolbarObj.items\n };\n setToolbarStatus(options, true, this.parent);\n if (!select('.e-rte-srctextarea', this.parent.element)) {\n updateUndoRedoStatus(this.parent.getBaseToolbarObject(), this.parent.formatter.editorManager.undoRedoManager.getUndoStatus());\n }\n };\n /**\n * Destroys the Quick toolbar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.destroy = function () {\n if (this.popupObj && !this.popupObj.isDestroyed) {\n this.popupObj.destroy();\n this.removeEleFromDOM();\n }\n this.removeEventListener();\n };\n /**\n * addEventListener method\n *\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n if (this.parent.inlineMode.enable) {\n this.parent.on(events.toolbarUpdated, this.updateStatus, this);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the model element\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.onPropertyChanged = function (e) {\n if (!isNullOrUndefined(e.newProp.inlineMode)) {\n for (var _i = 0, _a = Object.keys(e.newProp.inlineMode); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enable':\n if (e.newProp.inlineMode.enable) {\n this.parent.on(events.toolbarUpdated, this.updateStatus, this);\n }\n else {\n this.parent.off(events.toolbarUpdated, this.updateStatus);\n }\n break;\n }\n }\n }\n };\n /**\n * removeEventListener method\n *\n * @returns {void}\n * @hidden\n\n */\n BaseQuickToolbar.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n if (this.parent.inlineMode.enable) {\n this.parent.off(events.toolbarUpdated, this.updateStatus);\n }\n };\n return BaseQuickToolbar;\n}());\nexport { BaseQuickToolbar };\n","import { Popup } from '@syncfusion/ej2-popups';\nimport { CLS_QUICK_POP } from '../base/classes';\nimport * as events from '../base/constant';\n/**\n * `Popup renderer` module is used to render popup in RichTextEditor.\n *\n * @hidden\n\n */\nvar PopupRenderer = /** @class */ (function () {\n /**\n * Constructor for popup renderer module\n *\n * @param {IRichTextEditor} parent - specifies the parent.\n */\n function PopupRenderer(parent) {\n this.parent = parent;\n }\n PopupRenderer.prototype.quickToolbarOpen = function () {\n var args = this.popupObj;\n this.parent.trigger(events.quickToolbarOpen, args);\n };\n /**\n * renderPopup method\n *\n * @param {BaseQuickToolbar} args - specifies the arguments.\n * @returns {void}\n * @hidden\n\n */\n PopupRenderer.prototype.renderPopup = function (args) {\n this.setPanel(args.element);\n this.renderPanel();\n args.popupObj = new Popup(args.element, {\n targetType: 'relative',\n relateTo: this.parent.element,\n open: this.quickToolbarOpen.bind(this)\n });\n this.popupObj = args.popupObj;\n args.popupObj.hide();\n };\n /**\n * The function is used to add popup class in Quick Toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n PopupRenderer.prototype.renderPanel = function () {\n this.getPanel().classList.add(CLS_QUICK_POP);\n };\n /**\n * Get the popup element of RichTextEditor\n *\n * @returns {Element} - specifies the element\n * @hidden\n\n */\n PopupRenderer.prototype.getPanel = function () {\n return this.popupPanel;\n };\n /**\n * Set the popup element of RichTextEditor\n *\n * @returns {void}\n * @param {Element} panel - specifies the element\n * @hidden\n\n */\n PopupRenderer.prototype.setPanel = function (panel) {\n this.popupPanel = panel;\n };\n return PopupRenderer;\n}());\nexport { PopupRenderer };\n","import { select, isNullOrUndefined, Browser, addClass, removeClass, EventHandler, closest, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { RenderType } from '../base/enum';\nimport * as events from '../base/constant';\nimport { pageYOffset, hasClass, isIDevice } from '../base/util';\nimport { BaseQuickToolbar } from './base-quick-toolbar';\nimport { PopupRenderer } from '../renderer/popup-renderer';\nimport { CLS_INLINE_POP, CLS_INLINE } from '../base/classes';\n/**\n * `Quick toolbar` module is used to handle Quick toolbar actions.\n */\nvar QuickToolbar = /** @class */ (function () {\n function QuickToolbar(parent, locator) {\n this.parent = parent;\n this.locator = locator;\n this.renderFactory = this.locator.getService('rendererFactory');\n this.renderFactory.addRenderer(RenderType.Popup, new PopupRenderer(this.parent));\n this.addEventListener();\n }\n QuickToolbar.prototype.formatItems = function (items) {\n var formattedItems = [];\n items.forEach(function (item) {\n if (typeof item === 'string') {\n switch (item.toLocaleLowerCase()) {\n case 'open':\n formattedItems.push('openLink');\n break;\n case 'edit':\n formattedItems.push('editLink');\n break;\n case 'unlink':\n formattedItems.push('removeLink');\n break;\n default:\n formattedItems.push(item);\n break;\n }\n }\n else {\n formattedItems.push(item);\n }\n });\n return formattedItems;\n };\n QuickToolbar.prototype.getQTBarOptions = function (popType, mode, items, type) {\n return {\n popupType: popType,\n toolbarItems: items,\n mode: mode,\n renderType: type,\n cssClass: this.parent.cssClass\n };\n };\n /**\n * createQTBar method\n *\n * @param {string} popupType - specifies the string value\n * @param {string} mode - specifies the string value.\n * @param {string} items - specifies the string.\n * @param {RenderType} type - specifies the render type.\n * @returns {BaseQuickToolbar} - specifies the quick toolbar\n * @hidden\n\n */\n QuickToolbar.prototype.createQTBar = function (popupType, mode, items, type) {\n if (items.length < 1) {\n return null;\n }\n var qTBar = new BaseQuickToolbar(this.parent, this.locator);\n qTBar.render(this.getQTBarOptions(popupType, mode, this.formatItems(items), type));\n return qTBar;\n };\n QuickToolbar.prototype.initializeQuickToolbars = function () {\n this.parent.quickToolbarModule = this;\n this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);\n if (this.parent.inlineMode.enable && this.parent.inlineMode.onSelection && isIDevice()) {\n EventHandler.add(this.contentRenderer.getDocument(), 'selectionchange', this.selectionChangeHandler, this);\n }\n };\n // eslint-disable-next-line\n QuickToolbar.prototype.onMouseDown = function (e) {\n this.parent.isBlur = false;\n this.parent.isRTE = true;\n };\n QuickToolbar.prototype.keyUpQT = function (e) {\n if (e.which === 27) {\n this.hideQuickToolbars();\n }\n };\n QuickToolbar.prototype.renderQuickToolbars = function () {\n if (this.linkQTBar || this.imageQTBar || this.audioQTBar || this.videoQTBar || this.textQTBar || this.tableQTBar) {\n return;\n }\n this.linkQTBar = this.createQTBar('Link', 'Scrollable', this.parent.quickToolbarSettings.link, RenderType.LinkToolbar);\n this.renderFactory.addRenderer(RenderType.LinkToolbar, this.linkQTBar);\n this.textQTBar = this.createQTBar('Text', 'Scrollable', this.parent.quickToolbarSettings.text, RenderType.TextToolbar);\n this.renderFactory.addRenderer(RenderType.TextToolbar, this.textQTBar);\n this.imageQTBar = this.createQTBar('Image', 'MultiRow', this.parent.quickToolbarSettings.image, RenderType.ImageToolbar);\n this.renderFactory.addRenderer(RenderType.ImageToolbar, this.imageQTBar);\n this.audioQTBar = this.createQTBar('Audio', 'MultiRow', this.parent.quickToolbarSettings.audio, RenderType.AudioToolbar);\n this.renderFactory.addRenderer(RenderType.AudioToolbar, this.audioQTBar);\n this.videoQTBar = this.createQTBar('Video', 'MultiRow', this.parent.quickToolbarSettings.video, RenderType.VideoToolbar);\n this.renderFactory.addRenderer(RenderType.VideoToolbar, this.videoQTBar);\n this.tableQTBar = this.createQTBar('Table', 'MultiRow', this.parent.quickToolbarSettings.table, RenderType.TableToolbar);\n this.renderFactory.addRenderer(RenderType.TableToolbar, this.tableQTBar);\n if (this.linkQTBar) {\n EventHandler.add(this.linkQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.linkQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.imageQTBar) {\n EventHandler.add(this.imageQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.imageQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.audioQTBar) {\n EventHandler.add(this.audioQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.audioQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.videoQTBar) {\n EventHandler.add(this.videoQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.videoQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.textQTBar) {\n EventHandler.add(this.textQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.textQTBar.element, 'keyup', this.keyUpQT, this);\n }\n if (this.tableQTBar) {\n EventHandler.add(this.tableQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.tableQTBar.element, 'keyup', this.keyUpQT, this);\n }\n };\n QuickToolbar.prototype.renderInlineQuickToolbar = function () {\n if (this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n addClass([this.parent.element], [CLS_INLINE]);\n this.inlineQTBar = this.createQTBar('Inline', 'MultiRow', this.parent.toolbarSettings.items, RenderType.InlineToolbar);\n this.renderFactory.addRenderer(RenderType.InlineToolbar, this.inlineQTBar);\n EventHandler.add(this.inlineQTBar.element, 'mousedown', this.onMouseDown, this);\n EventHandler.add(this.inlineQTBar.element, 'keyup', this.keyUpQT, this);\n }\n };\n /**\n * Method for showing the inline quick toolbar\n *\n * @param {number} x -specifies the value of x.\n * @param {number} y - specifies the y valu.\n * @param {HTMLElement} target - specifies the target element.\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.showInlineQTBar = function (x, y, target) {\n if (this.parent.readonly || target.tagName.toLowerCase() === 'img') {\n return;\n }\n this.inlineQTBar.showPopup(x, y, target);\n };\n /**\n * Method for hidding the inline quick toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.hideInlineQTBar = function () {\n if (this.inlineQTBar && !hasClass(this.inlineQTBar.element, 'e-popup-close')) {\n this.inlineQTBar.hidePopup();\n }\n };\n /**\n * Method for hidding the quick toolbar\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.hideQuickToolbars = function () {\n if (this.linkQTBar && !hasClass(this.linkQTBar.element, 'e-popup-close') && document.body.contains(this.linkQTBar.element)) {\n this.linkQTBar.hidePopup();\n }\n if (this.textQTBar && !hasClass(this.textQTBar.element, 'e-popup-close') && document.body.contains(this.textQTBar.element)) {\n this.textQTBar.hidePopup();\n }\n if (this.imageQTBar && !hasClass(this.imageQTBar.element, 'e-popup-close') && document.body.contains(this.imageQTBar.element)) {\n this.imageQTBar.hidePopup();\n }\n if (this.audioQTBar && !hasClass(this.audioQTBar.element, 'e-popup-close') && document.body.contains(this.audioQTBar.element)) {\n this.audioQTBar.hidePopup();\n }\n if (this.videoQTBar && !hasClass(this.videoQTBar.element, 'e-popup-close') && document.body.contains(this.videoQTBar.element)) {\n this.videoQTBar.hidePopup();\n }\n if (this.tableQTBar && !hasClass(this.tableQTBar.element, 'e-popup-close') && document.body.contains(this.tableQTBar.element)) {\n this.tableQTBar.hidePopup();\n }\n if (!isNOU(this.parent) && this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n this.hideInlineQTBar();\n }\n };\n QuickToolbar.prototype.deBounce = function (x, y, target) {\n var _this = this;\n clearTimeout(this.deBouncer);\n this.deBouncer = window.setTimeout(function () {\n _this.showInlineQTBar(x, y, target);\n }, 1000);\n };\n QuickToolbar.prototype.mouseUpHandler = function (e) {\n if (this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n var args = e.args.touches ?\n e.args.changedTouches[0] : e.args;\n var range = this.parent.getRange();\n var target = e.args.target;\n if (isNullOrUndefined(select('.' + CLS_INLINE_POP, document.body))) {\n if (isIDevice() && e.touchData && e.touchData.prevClientX !== e.touchData.clientX\n && e.touchData.prevClientY !== e.touchData.clientY) {\n return;\n }\n this.hideInlineQTBar();\n var parentLeft = this.parent.element.getBoundingClientRect().left;\n this.offsetX = this.parent.iframeSettings.enable ? window.pageXOffset + parentLeft + args.clientX : args.pageX;\n this.offsetY = pageYOffset(args, this.parent.element, this.parent.iframeSettings.enable);\n if (target.nodeName === 'TEXTAREA') {\n this.showInlineQTBar(this.offsetX, this.offsetY, target);\n }\n else {\n var closestAnchor = closest(target, 'a');\n target = closestAnchor ? closestAnchor : target;\n var startNode = this.parent.getRange().startContainer.parentElement;\n var endNode = this.parent.getRange().endContainer.parentElement;\n if ((isNOU(closest(startNode, 'A')) || isNOU(closest(endNode, 'A'))) && (!closest(target, 'td,th') || !range.collapsed) &&\n (target.tagName !== 'IMG' || this.parent.getRange().startOffset !== this.parent.getRange().endOffset)) {\n if (this.parent.inlineMode.onSelection && range.collapsed) {\n return;\n }\n this.target = target;\n this.showInlineQTBar(this.offsetX, this.offsetY, target);\n }\n }\n }\n }\n };\n QuickToolbar.prototype.keyDownHandler = function () {\n if ((this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice()))\n && !isNullOrUndefined(select('.' + CLS_INLINE_POP, document))) {\n this.hideInlineQTBar();\n }\n };\n QuickToolbar.prototype.inlineQTBarMouseDownHandler = function () {\n if ((this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice()))\n && !isNullOrUndefined(select('.' + CLS_INLINE_POP, document))) {\n this.hideInlineQTBar();\n }\n };\n QuickToolbar.prototype.keyUpHandler = function (e) {\n if (this.parent.inlineMode.enable && !Browser.isDevice) {\n var args = e.args;\n if (this.parent.inlineMode.onSelection) {\n if (this.parent.getSelection().length > 0) {\n if ((args.ctrlKey && args.keyCode === 65) || (args.shiftKey && (args.keyCode === 33 || args.keyCode === 34 ||\n args.keyCode === 35 || args.keyCode === 36 || args.keyCode === 37 || args.keyCode === 38 ||\n args.keyCode === 39 || args.keyCode === 40))) {\n this.showInlineQTBar(this.offsetX, this.offsetY, args.target);\n }\n }\n return;\n }\n this.deBounce(this.offsetX, this.offsetY, args.target);\n }\n };\n QuickToolbar.prototype.selectionChangeHandler = function (e) {\n var _this = this;\n clearTimeout(this.deBouncer);\n this.deBouncer = window.setTimeout(function () {\n _this.onSelectionChange(e);\n }, 1000);\n };\n QuickToolbar.prototype.onSelectionChange = function (e) {\n if (!isNullOrUndefined(select('.' + CLS_INLINE_POP, document.body))) {\n return;\n }\n var selection = this.contentRenderer.getDocument().getSelection();\n if (!selection.isCollapsed) {\n this.mouseUpHandler({ args: e });\n }\n };\n /**\n * getInlineBaseToolbar method\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.getInlineBaseToolbar = function () {\n return this.inlineQTBar && this.inlineQTBar.quickTBarObj;\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.destroy = function () {\n if (this.linkQTBar) {\n EventHandler.remove(this.linkQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.linkQTBar.element, 'keyup', this.keyUpQT);\n this.linkQTBar.destroy();\n }\n if (this.textQTBar) {\n EventHandler.remove(this.textQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.textQTBar.element, 'keyup', this.keyUpQT);\n this.textQTBar.destroy();\n }\n if (this.imageQTBar) {\n EventHandler.remove(this.imageQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.imageQTBar.element, 'keyup', this.keyUpQT);\n this.imageQTBar.destroy();\n }\n if (this.audioQTBar) {\n EventHandler.remove(this.audioQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.audioQTBar.element, 'keyup', this.keyUpQT);\n this.audioQTBar.destroy();\n }\n if (this.videoQTBar) {\n EventHandler.remove(this.videoQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.videoQTBar.element, 'keyup', this.keyUpQT);\n this.videoQTBar.destroy();\n }\n if (this.tableQTBar) {\n EventHandler.remove(this.tableQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.tableQTBar.element, 'keyup', this.keyUpQT);\n this.tableQTBar.destroy();\n }\n if (this.inlineQTBar) {\n EventHandler.remove(this.inlineQTBar.element, 'mousedown', this.onMouseDown);\n EventHandler.remove(this.inlineQTBar.element, 'keyup', this.keyUpQT);\n if (isIDevice()) {\n EventHandler.remove(document, 'selectionchange', this.selectionChangeHandler);\n }\n this.inlineQTBar.destroy();\n }\n this.removeEventListener();\n };\n QuickToolbar.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n QuickToolbar.prototype.wireInlineQTBarEvents = function () {\n this.parent.on(events.mouseUp, this.mouseUpHandler, this);\n this.parent.on(events.mouseDown, this.inlineQTBarMouseDownHandler, this);\n this.parent.on(events.keyDown, this.keyDownHandler, this);\n this.parent.on(events.keyUp, this.keyUpHandler, this);\n this.parent.on(events.sourceCodeMouseDown, this.mouseUpHandler, this);\n this.parent.on(events.renderInlineToolbar, this.renderInlineQuickToolbar, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n QuickToolbar.prototype.unWireInlineQTBarEvents = function () {\n this.parent.off(events.mouseUp, this.mouseUpHandler);\n this.parent.off(events.mouseDown, this.inlineQTBarMouseDownHandler);\n this.parent.off(events.keyDown, this.keyDownHandler);\n this.parent.off(events.keyUp, this.keyUpHandler);\n this.parent.off(events.sourceCodeMouseDown, this.mouseUpHandler);\n this.parent.off(events.renderInlineToolbar, this.renderInlineQuickToolbar);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n // eslint-disable-next-line\n QuickToolbar.prototype.toolbarUpdated = function (args) {\n if (this.linkQTBar && !hasClass(this.linkQTBar.element, 'e-popup-close')) {\n this.linkQTBar.hidePopup();\n }\n if (this.imageQTBar && !hasClass(this.imageQTBar.element, 'e-popup-close')) {\n this.imageQTBar.hidePopup();\n }\n if (this.audioQTBar && !hasClass(this.audioQTBar.element, 'e-popup-close')) {\n this.audioQTBar.hidePopup();\n }\n if (this.videoQTBar && !hasClass(this.videoQTBar.element, 'e-popup-close')) {\n this.videoQTBar.hidePopup();\n }\n if (this.tableQTBar && !hasClass(this.tableQTBar.element, 'e-popup-close')) {\n this.tableQTBar.hidePopup();\n }\n };\n /**\n * addEventListener\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.initialEnd, this.initializeQuickToolbars, this);\n this.parent.on(events.mouseDown, this.renderQuickToolbars, this);\n this.parent.on(events.toolbarUpdated, this.toolbarUpdated, this);\n this.parent.on(events.drop, this.renderQuickToolbars, this);\n this.wireInlineQTBarEvents();\n this.parent.on(events.modelChanged, this.onPropertyChanged, this);\n if (this.parent.quickToolbarSettings.actionOnScroll === 'hide') {\n this.parent.on(events.scroll, this.hideQuickToolbars, this);\n this.parent.on(events.contentscroll, this.hideQuickToolbars, this);\n }\n this.parent.on(events.focusChange, this.hideQuickToolbars, this);\n this.parent.on(events.iframeMouseDown, this.onIframeMouseDown, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.keyDown, this.onKeyDown, this);\n this.parent.on(events.rtlMode, this.setRtl, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n };\n QuickToolbar.prototype.onKeyDown = function (e) {\n var args = e.args;\n if (args.which === 8 || args.which === 46) {\n if (this.imageQTBar && !hasClass(this.imageQTBar.element, 'e-popup-close')) {\n this.imageQTBar.hidePopup();\n }\n if (this.audioQTBar && !hasClass(this.audioQTBar.element, 'e-popup-close')) {\n this.audioQTBar.hidePopup();\n }\n if (this.videoQTBar && !hasClass(this.videoQTBar.element, 'e-popup-close')) {\n this.videoQTBar.hidePopup();\n }\n }\n };\n QuickToolbar.prototype.onIframeMouseDown = function () {\n this.hideQuickToolbars();\n this.hideInlineQTBar();\n };\n QuickToolbar.prototype.updateCss = function (baseQTObj, e) {\n if (baseQTObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass && baseQTObj.quickTBarObj.toolbarObj.cssClass !== e.cssClass)) {\n baseQTObj.quickTBarObj.toolbarObj.setProperties({ cssClass: (baseQTObj.quickTBarObj.toolbarObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n baseQTObj.quickTBarObj.toolbarObj.setProperties({ cssClass: (baseQTObj.quickTBarObj.toolbarObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n QuickToolbar.prototype.setCssClass = function (e) {\n var baseQuickToolbarObj = [\n this.inlineQTBar, this.imageQTBar, this.linkQTBar, this.textQTBar, this.tableQTBar\n ];\n for (var i = 0; i < baseQuickToolbarObj.length; i++) {\n this.updateCss(baseQuickToolbarObj[i], e);\n }\n };\n QuickToolbar.prototype.setRtl = function (args) {\n if (this.inlineQTBar) {\n this.inlineQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.imageQTBar) {\n this.imageQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.audioQTBar) {\n this.audioQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.videoQTBar) {\n this.videoQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n if (this.linkQTBar) {\n this.linkQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });\n }\n };\n /**\n * removeEventListener\n *\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.initialEnd, this.initializeQuickToolbars);\n this.parent.off(events.mouseDown, this.renderQuickToolbars);\n this.parent.off(events.toolbarUpdated, this.toolbarUpdated);\n this.parent.off(events.drop, this.renderQuickToolbars);\n this.unWireInlineQTBarEvents();\n this.parent.off(events.modelChanged, this.onPropertyChanged);\n if (this.parent.quickToolbarSettings.actionOnScroll === 'hide') {\n this.parent.off(events.scroll, this.hideQuickToolbars);\n this.parent.off(events.contentscroll, this.hideQuickToolbars);\n }\n this.parent.off(events.focusChange, this.hideQuickToolbars);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.iframeMouseDown, this.onIframeMouseDown);\n this.parent.off(events.keyDown, this.onKeyDown);\n this.parent.off(events.rtlMode, this.setRtl);\n this.parent.off(events.bindCssClass, this.setCssClass);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {RichTextEditorModel} e - specifies the element.\n * @returns {void}\n * @hidden\n\n */\n QuickToolbar.prototype.onPropertyChanged = function (e) {\n if (!isNullOrUndefined(e.newProp.quickToolbarSettings)) {\n for (var _i = 0, _a = Object.keys(e.newProp.quickToolbarSettings); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'actionOnScroll':\n if (e.newProp.quickToolbarSettings.actionOnScroll === 'none') {\n this.parent.off(events.scroll, this.hideQuickToolbars);\n this.parent.off(events.contentscroll, this.hideQuickToolbars);\n }\n else {\n this.parent.on(events.scroll, this.hideQuickToolbars, this);\n this.parent.on(events.contentscroll, this.hideQuickToolbars, this);\n }\n break;\n }\n }\n }\n if (e.module !== this.getModuleName()) {\n return;\n }\n if (this.inlineQTBar) {\n removeClass([this.parent.element], [CLS_INLINE]);\n this.unWireInlineQTBarEvents();\n this.hideInlineQTBar();\n }\n if (this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice())) {\n addClass([this.parent.element], [CLS_INLINE]);\n this.wireInlineQTBarEvents();\n }\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n * @hidden\n */\n QuickToolbar.prototype.getModuleName = function () {\n return 'quickToolbar';\n };\n return QuickToolbar;\n}());\nexport { QuickToolbar };\n","import { detach, closest, Browser, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, EventHandler, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport * as events from '../base/constant';\nimport { RenderType } from '../base/enum';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport * as classes from '../base/classes';\nimport { dispatchEvent, parseHtml, hasClass } from '../base/util';\n/**\n * `Table` module is used to handle table actions.\n */\nvar Table = /** @class */ (function () {\n function Table(parent, serviceLocator) {\n this.ensureInsideTableList = true;\n this.pageX = null;\n this.pageY = null;\n this.moveEle = null;\n this.currentColumnResize = '';\n this.currentMarginLeft = 0;\n this.parent = parent;\n this.rteID = parent.element.id;\n this.l10n = serviceLocator.getService('rteLocale');\n this.rendererFactory = serviceLocator.getService('rendererFactory');\n this.dialogRenderObj = serviceLocator.getService('dialogRenderObject');\n this.addEventListener();\n }\n Table.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on(events.createTable, this.renderDlgContent, this);\n this.parent.on(events.initialEnd, this.afterRender, this);\n this.parent.on(events.dynamicModule, this.afterRender, this);\n this.parent.on(events.showTableDialog, this.showDialog, this);\n this.parent.on(events.closeTableDialog, this.closeDialog, this);\n this.parent.on(events.docClick, this.docClick, this);\n this.parent.on(events.editAreaClick, this.editAreaClickHandler, this);\n this.parent.on(events.clearDialogObj, this.clearDialogObj, this);\n this.parent.on(events.tableToolbarAction, this.onToolbarAction, this);\n this.parent.on(events.dropDownSelect, this.dropdownSelect, this);\n this.parent.on(events.keyDown, this.keyDown, this);\n this.parent.on(events.mouseUp, this.selectionTable, this);\n this.parent.on(events.tableModulekeyUp, this.tableModulekeyUp, this);\n this.parent.on(events.bindCssClass, this.setCssClass, this);\n this.parent.on(events.destroy, this.destroy, this);\n this.parent.on(events.moduleDestroy, this.moduleDestroy, this);\n };\n Table.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.createTable, this.renderDlgContent);\n this.parent.off(events.initialEnd, this.afterRender);\n this.parent.off(events.dynamicModule, this.afterRender);\n this.parent.off(events.docClick, this.docClick);\n this.parent.off(events.showTableDialog, this.showDialog);\n this.parent.off(events.closeTableDialog, this.closeDialog);\n this.parent.off(events.editAreaClick, this.editAreaClickHandler);\n this.parent.off(events.clearDialogObj, this.clearDialogObj);\n this.parent.off(events.tableToolbarAction, this.onToolbarAction);\n this.parent.off(events.dropDownSelect, this.dropdownSelect);\n this.parent.off(events.mouseDown, this.cellSelect);\n this.parent.off(events.tableColorPickerChanged, this.setBGColor);\n this.parent.off(events.keyDown, this.keyDown);\n this.parent.off(events.mouseUp, this.selectionTable);\n this.parent.off(events.tableModulekeyUp, this.tableModulekeyUp);\n this.parent.off(events.bindCssClass, this.setCssClass);\n this.parent.off(events.destroy, this.destroy);\n this.parent.off(events.moduleDestroy, this.moduleDestroy);\n };\n Table.prototype.updateCss = function (currentObj, e) {\n if (currentObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n currentObj.setProperties({ cssClass: (currentObj.cssClass + ' ' + e.cssClass).trim() });\n }\n else {\n currentObj.setProperties({ cssClass: (currentObj.cssClass.replace(e.oldCssClass, '').trim() + ' ' + e.cssClass).trim() });\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/tslint/config\n Table.prototype.setCssClass = function (e) {\n if (this.popupObj && e.cssClass) {\n if (isNullOrUndefined(e.oldCssClass)) {\n addClass([this.popupObj.element], e.cssClass);\n }\n else {\n removeClass([this.popupObj.element], e.oldCssClass);\n addClass([this.popupObj.element], e.cssClass);\n }\n }\n this.updateCss(this.createTableButton, e);\n this.updateCss(this.editdlgObj, e);\n var numericTextBoxObj = [\n this.columnTextBox, this.rowTextBox, this.tableWidthNum, this.tableCellPadding, this.tableCellSpacing\n ];\n for (var i = 0; i < numericTextBoxObj.length; i++) {\n this.updateCss(numericTextBoxObj[i], e);\n }\n };\n Table.prototype.selectionTable = function (e) {\n var target = e.args.target;\n if (Browser.info.name === 'mozilla' && !isNOU(closest(target, 'table')) && closest(target, 'table').tagName === 'TABLE') {\n this.parent.contentModule.getEditPanel().setAttribute('contenteditable', 'true');\n }\n };\n Table.prototype.afterRender = function () {\n if (isNullOrUndefined(this.contentModule)) {\n this.contentModule = this.rendererFactory.getRenderer(RenderType.Content);\n this.parent.on(events.tableColorPickerChanged, this.setBGColor, this);\n this.parent.on(events.mouseDown, this.cellSelect, this);\n if (this.parent.tableSettings.resize) {\n EventHandler.add(this.parent.contentModule.getEditPanel(), Browser.touchStartEvent, this.resizeStart, this);\n }\n if (!Browser.isDevice && this.parent.tableSettings.resize) {\n EventHandler.add(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper, this);\n }\n }\n };\n Table.prototype.dropdownSelect = function (e) {\n var item = e.item;\n if (!document.body.contains(document.body.querySelector('.e-rte-quick-toolbar')) || item.command !== 'Table') {\n return;\n }\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());\n var args = {\n args: e,\n selection: this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument()),\n selectParent: this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range)\n };\n switch (item.subCommand) {\n case 'InsertRowBefore':\n case 'InsertRowAfter':\n this.addRow(args.selection, e);\n break;\n case 'InsertColumnLeft':\n case 'InsertColumnRight':\n this.addColumn(args.selection, e);\n break;\n case 'DeleteColumn':\n case 'DeleteRow':\n this.removeRowColumn(args.selection, e);\n break;\n case 'AlignTop':\n case 'AlignMiddle':\n case 'AlignBottom':\n this.verticalAlign(args, e);\n break;\n case 'Dashed':\n case 'Alternate':\n case 'Custom':\n this.tableStyles(args, item.subCommand);\n break;\n case 'Merge':\n case 'VerticalSplit':\n case 'HorizontalSplit':\n this.UpdateCells(args.selection, e);\n break;\n }\n };\n Table.prototype.UpdateCells = function (selectCell, e) {\n this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });\n this.hideTableQuickToolbar();\n };\n Table.prototype.keyDown = function (e) {\n var event = e.args;\n // eslint-disable-next-line\n var proxy = this;\n switch (event.action) {\n case 'escape':\n break;\n case 'insert-table':\n this.openDialog(true, e);\n event.preventDefault();\n break;\n }\n if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule\n && event.code !== 'KeyK') {\n var selection = void 0;\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());\n var ele = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range)[0];\n ele = (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') ? ele.parentElement : ele;\n if ((event.keyCode === 8 || event.keyCode === 46) ||\n (event.ctrlKey && event.keyCode === 88)) {\n if (ele && ele.tagName === 'TBODY') {\n if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule) {\n selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());\n }\n event.preventDefault();\n proxy.removeTable(selection, event, true);\n }\n else if (ele && ele.querySelectorAll('table').length > 0) {\n this.removeResizeElement();\n this.hideTableQuickToolbar();\n }\n }\n if (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') {\n var closestTd = closest(ele, 'td');\n ele = !isNullOrUndefined(closestTd) && this.parent.inputElement.contains(closestTd) ? closestTd : ele;\n }\n if (ele && (ele.tagName === 'TD' || ele.tagName === 'TH')) {\n if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule) {\n selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());\n }\n switch (event.keyCode) {\n case 9:\n case 37:\n case 39:\n proxy.tabSelection(event, selection, ele);\n break;\n case 40:\n case 38:\n proxy.tableArrowNavigation(event, selection, ele);\n break;\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Table.prototype.tableModulekeyUp = function (e) {\n if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule) {\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());\n var ele = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range)[0];\n ele = (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') ? ele.parentElement : ele;\n if (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') {\n var closestTd = closest(ele, 'td');\n ele = !isNullOrUndefined(closestTd) && this.parent.inputElement.contains(closestTd) ? closestTd : ele;\n }\n if (this.previousTableElement !== ele && !isNullOrUndefined(this.previousTableElement)) {\n this.previousTableElement.classList.remove(classes.CLS_TABLE_SEL);\n }\n }\n };\n Table.prototype.openDialog = function (isInternal, e) {\n if (!isInternal) {\n this.parent.contentModule.getEditPanel().focus();\n }\n if (this.parent.editorMode === 'HTML') {\n var docElement = this.parent.contentModule.getDocument();\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(docElement);\n var selection = this.parent.formatter.editorManager.nodeSelection.save(range, docElement);\n var args = {\n originalEvent: e ? e.args : { action: 'insert-table' },\n item: {\n command: 'Table',\n subCommand: 'CreateTable'\n },\n name: !isInternal ? 'showDialog' : null\n };\n this.insertTableDialog({ self: this, args: args, selection: selection });\n }\n };\n Table.prototype.showDialog = function () {\n this.openDialog(false);\n this.setCssClass({ cssClass: this.parent.cssClass });\n };\n Table.prototype.closeDialog = function () {\n if (this.editdlgObj) {\n this.editdlgObj.hide({ returnValue: true });\n }\n };\n Table.prototype.onToolbarAction = function (args) {\n var item = args.args.item;\n switch (item.subCommand) {\n case 'TableHeader':\n this.tableHeader(args.selection, args.args);\n break;\n case 'TableRemove':\n this.removeTable(args.selection, args.args);\n break;\n case 'TableEditProperties':\n this.editTable(args);\n break;\n }\n };\n Table.prototype.verticalAlign = function (args, e) {\n var tdEle = closest(args.selectParent[0], 'td') || closest(args.selectParent[0], 'th');\n if (tdEle) {\n this.parent.formatter.process(this.parent, e, e, { tableCell: tdEle, subCommand: e.item.subCommand });\n }\n };\n Table.prototype.tableStyles = function (args, command) {\n var table = closest(args.selectParent[0], 'table');\n if (command === 'Dashed') {\n /* eslint-disable */\n (this.parent.element.classList.contains(classes.CLS_TB_DASH_BOR)) ?\n this.parent.element.classList.remove(classes.CLS_TB_DASH_BOR) : this.parent.element.classList.add(classes.CLS_TB_DASH_BOR);\n (table.classList.contains(classes.CLS_TB_DASH_BOR)) ? table.classList.remove(classes.CLS_TB_DASH_BOR) :\n table.classList.add(classes.CLS_TB_DASH_BOR);\n }\n if (command === 'Alternate') {\n (this.parent.element.classList.contains(classes.CLS_TB_ALT_BOR)) ?\n this.parent.element.classList.remove(classes.CLS_TB_ALT_BOR) : this.parent.element.classList.add(classes.CLS_TB_ALT_BOR);\n (table.classList.contains(classes.CLS_TB_ALT_BOR)) ? table.classList.remove(classes.CLS_TB_ALT_BOR) :\n table.classList.add(classes.CLS_TB_ALT_BOR);\n /* eslint-enable */\n }\n if (args.args && args.args.item.cssClass) {\n var classList = args.args.item.cssClass.split(' ');\n for (var i = 0; i < classList.length; i++) {\n if (table.classList.contains(classList[i])) {\n table.classList.remove(classList[i]);\n }\n else {\n table.classList.add(classList[i]);\n }\n }\n }\n this.parent.formatter.saveData();\n this.parent.formatter.editorManager.nodeSelection.restore();\n };\n Table.prototype.insideList = function (range) {\n var blockNodes = this.parent.formatter.editorManager.domNode.blockNodes();\n var nodes = [];\n for (var i = 0; i < blockNodes.length; i++) {\n if (blockNodes[i].parentNode.tagName === 'LI') {\n nodes.push(blockNodes[i].parentNode);\n }\n else if (blockNodes[i].tagName === 'LI' && blockNodes[i].childNodes[0].tagName !== 'P' &&\n (blockNodes[i].childNodes[0].tagName !== 'OL' &&\n blockNodes[i].childNodes[0].tagName !== 'UL')) {\n nodes.push(blockNodes[i]);\n }\n }\n if (nodes.length > 1 || nodes.length && ((range.startOffset === 0 && range.endOffset === 0))) {\n this.ensureInsideTableList = true;\n return true;\n }\n else {\n this.ensureInsideTableList = false;\n return false;\n }\n };\n Table.prototype.tabSelection = function (event, selection, ele) {\n this.previousTableElement = ele;\n var insideList = this.insideList(selection.range);\n if ((event.keyCode === 37 || event.keyCode === 39) && selection.range.startContainer.nodeType === 3 ||\n insideList) {\n return;\n }\n event.preventDefault();\n ele.classList.remove(classes.CLS_TABLE_SEL);\n if (!event.shiftKey && event.keyCode !== 37) {\n var nextElement = (!isNullOrUndefined(ele.nextSibling)) ? ele.nextSibling :\n (!isNullOrUndefined(closest(ele, 'tr').nextSibling) ? closest(ele, 'tr').nextSibling.childNodes[0] :\n (!isNullOrUndefined(closest(ele, 'table').nextSibling)) ?\n (closest(ele, 'table').nextSibling.nodeName.toLowerCase() === 'td') ?\n closest(ele, 'table').nextSibling : ele : ele);\n if (ele === nextElement && ele.nodeName === 'TH') {\n nextElement = closest(ele, 'table').rows[1].cells[0];\n }\n if (event.keyCode === 39 && ele === nextElement) {\n nextElement = closest(ele, 'table').nextSibling;\n }\n if (nextElement) {\n // eslint-disable-next-line\n (nextElement.textContent.trim() !== '' && closest(nextElement, 'td')) ?\n selection.setSelectionNode(this.contentModule.getDocument(), nextElement) :\n selection.setSelectionText(this.contentModule.getDocument(), nextElement, nextElement, 0, 0);\n }\n if (ele === nextElement && event.keyCode !== 39 && nextElement) {\n ele.classList.add(classes.CLS_TABLE_SEL);\n this.addRow(selection, event, true);\n ele.classList.remove(classes.CLS_TABLE_SEL);\n nextElement = nextElement.parentElement.nextSibling ? nextElement.parentElement.nextSibling.firstChild :\n nextElement.parentElement.firstChild;\n // eslint-disable-next-line\n (nextElement.textContent.trim() !== '' && closest(nextElement, 'td')) ?\n selection.setSelectionNode(this.contentModule.getDocument(), nextElement) :\n selection.setSelectionText(this.contentModule.getDocument(), nextElement, nextElement, 0, 0);\n }\n }\n else {\n var prevElement = (!isNullOrUndefined(ele.previousSibling)) ? ele.previousSibling :\n (!isNullOrUndefined(closest(ele, 'tr').previousSibling) ?\n closest(ele, 'tr').previousSibling.childNodes[closest(ele, 'tr').previousSibling.childNodes.length - 1] :\n (!isNullOrUndefined(closest(ele, 'table').previousSibling)) ?\n (closest(ele, 'table').previousSibling.nodeName.toLowerCase() === 'td') ? closest(ele, 'table').previousSibling :\n ele : ele);\n if (ele === prevElement && ele.cellIndex === 0 &&\n closest(ele, 'table').tHead) {\n var clsTble = closest(ele, 'table');\n prevElement = clsTble.rows[0].cells[clsTble.rows[0].cells.length - 1];\n }\n if (event.keyCode === 37 && ele === prevElement) {\n prevElement = closest(ele, 'table').previousSibling;\n }\n if (prevElement) {\n // eslint-disable-next-line\n (prevElement.textContent.trim() !== '' && closest(prevElement, 'td')) ?\n selection.setSelectionNode(this.contentModule.getDocument(), prevElement) :\n selection.setSelectionText(this.contentModule.getDocument(), prevElement, prevElement, 0, 0);\n }\n }\n };\n Table.prototype.tableArrowNavigation = function (event, selection, ele) {\n var selText = selection.range.startContainer;\n if ((event.keyCode === 40 && selText.nodeType === 3 && (selText.nextSibling && selText.nextSibling.nodeName === 'BR' ||\n selText.parentNode && selText.parentNode.nodeName !== 'TD')) ||\n (event.keyCode === 38 && selText.nodeType === 3 && (selText.previousSibling && selText.previousSibling.nodeName === 'BR' ||\n selText.parentNode && selText.parentNode.nodeName !== 'TD'))) {\n return;\n }\n event.preventDefault();\n ele.classList.remove(classes.CLS_TABLE_SEL);\n if (event.keyCode === 40) {\n ele = (!isNullOrUndefined(closest(ele, 'tr').nextElementSibling)) ?\n closest(ele, 'tr').nextElementSibling.children[ele.cellIndex] :\n (closest(ele, 'table').tHead && ele.nodeName === 'TH') ?\n closest(ele, 'table').rows[1].cells[ele.cellIndex] :\n (!isNullOrUndefined(closest(ele, 'table').nextSibling)) ? closest(ele, 'table').nextSibling :\n ele;\n }\n else {\n ele = (!isNullOrUndefined(closest(ele, 'tr').previousElementSibling)) ?\n closest(ele, 'tr').previousElementSibling.children[ele.cellIndex] :\n (closest(ele, 'table').tHead && ele.nodeName !== 'TH') ?\n closest(ele, 'table').tHead.rows[0].cells[ele.cellIndex] :\n (!isNullOrUndefined(closest(ele, 'table').previousSibling)) ? closest(ele, 'table').previousSibling :\n ele;\n }\n if (ele) {\n selection.setSelectionText(this.contentModule.getDocument(), ele, ele, 0, 0);\n }\n };\n Table.prototype.setBGColor = function (args) {\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());\n // eslint-disable-next-line\n var selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());\n // eslint-disable-next-line\n var selectedCells = this.curTable.querySelectorAll('.e-cell-select');\n for (var i = 0; i < selectedCells.length; i++) {\n selectedCells[i].style.backgroundColor = args.item.value;\n }\n this.parent.formatter.saveData();\n };\n Table.prototype.hideTableQuickToolbar = function () {\n if (this.quickToolObj && this.quickToolObj.tableQTBar && document.body.contains(this.quickToolObj.tableQTBar.element)) {\n this.quickToolObj.tableQTBar.hidePopup();\n }\n };\n Table.prototype.tableHeader = function (selection, e) {\n this.parent.formatter.process(this.parent, e, e.originalEvent, { selection: selection, subCommand: e.item.subCommand });\n };\n Table.prototype.editAreaClickHandler = function (e) {\n if (this.parent.readonly || !isNOU(closest(e.args.target, '.e-img-caption'))) {\n return;\n }\n var args = e.args;\n var showOnRightClick = this.parent.quickToolbarSettings.showOnRightClick;\n if (args.which === 2 || (showOnRightClick && args.which === 1) || (!showOnRightClick && args.which === 3)) {\n return;\n }\n if (this.parent.editorMode === 'HTML' && this.parent.quickToolbarModule && this.parent.quickToolbarModule.tableQTBar) {\n this.quickToolObj = this.parent.quickToolbarModule;\n var target = args.target;\n this.contentModule = this.rendererFactory.getRenderer(RenderType.Content);\n var isPopupOpen = this.quickToolObj.tableQTBar.element.classList.contains('e-rte-pop');\n if (isPopupOpen) {\n return;\n }\n var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());\n var closestTable = closest(target, 'table');\n var startNode = this.parent.getRange().startContainer.parentElement;\n var endNode = this.parent.getRange().endContainer.parentElement;\n if (target && target.nodeName !== 'A' && target.nodeName !== 'IMG' && target.nodeName !== 'VIDEO' && !target.classList.contains(classes.CLS_CLICKELEM) &&\n target.nodeName !== 'AUDIO' && startNode === endNode && (target.nodeName === 'TD' || target.nodeName === 'TH' ||\n target.nodeName === 'TABLE' || (closestTable && this.parent.contentModule.getEditPanel().contains(closestTable)))\n && !(range.startContainer.nodeType === 3 && !range.collapsed)) {\n var range_1 = this.parent.formatter.editorManager.nodeSelection.getRange(this.contentModule.getDocument());\n this.parent.formatter.editorManager.nodeSelection.save(range_1, this.contentModule.getDocument());\n this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());\n var pageX = void 0;\n var pageY = void 0;\n if (Browser.isDevice && e.args.touches) {\n pageX = e.args.changedTouches[0].pageX;\n pageY = e.args.changedTouches[0].pageY;\n }\n else {\n pageX = (this.parent.iframeSettings.enable) ? window.pageXOffset\n + this.parent.element.getBoundingClientRect().left + args.clientX : args.pageX;\n pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset +\n this.parent.element.getBoundingClientRect().top + args.clientY : args.pageY;\n }\n this.quickToolObj.tableQTBar.showPopup(pageX, pageY, target);\n this.parent.formatter.editorManager.nodeSelection.restore();\n }\n else {\n this.hideTableQuickToolbar();\n }\n }\n };\n Table.prototype.tableCellSelect = function (e) {\n var target = e.target;\n var row = Array.prototype.slice.call(target.parentElement.parentElement.children).indexOf(target.parentElement);\n var col = Array.prototype.slice.call(target.parentElement.children).indexOf(target);\n var list = this.dlgDiv.querySelectorAll('.e-rte-tablecell');\n Array.prototype.forEach.call(list, function (item) {\n var parentIndex = Array.prototype.slice.call(item.parentElement.parentElement.children).indexOf(item.parentElement);\n var cellIndex = Array.prototype.slice.call(item.parentElement.children).indexOf(item);\n removeClass([item], 'e-active');\n if (parentIndex <= row && cellIndex <= col) {\n addClass([item], 'e-active');\n }\n });\n this.tblHeader.innerHTML = (col + 1) + 'x' + (row + 1);\n };\n // eslint-disable-next-line\n Table.prototype.tableMouseUp = function (e) {\n EventHandler.remove(this.curTable, 'mousemove', this.tableMove);\n };\n // eslint-disable-next-line\n Table.prototype.tableCellLeave = function (e) {\n removeClass(this.dlgDiv.querySelectorAll('.e-rte-tablecell'), 'e-active');\n addClass([this.dlgDiv.querySelector('.e-rte-tablecell')], 'e-active');\n this.tblHeader.innerHTML = 1 + 'x' + 1;\n };\n Table.prototype.tableCellClick = function (e) {\n var target = e.target;\n var row = Array.prototype.slice.call(target.parentElement.parentElement.children).indexOf(target.parentElement) + 1;\n var col = Array.prototype.slice.call(target.parentElement.children).indexOf(target) + 1;\n this.self.tableInsert(row, col, e, this);\n };\n Table.prototype.tableInsert = function (row, col, e, selectionObj) {\n var proxy = (selectionObj.self) ? selectionObj.self : this;\n var startContainer = selectionObj.selection.range.startContainer;\n if (startContainer.nodeName === 'P' && startContainer.textContent.trim() === '' && !(startContainer.childNodes.length > 0)) {\n startContainer.innerHTML = '
    ';\n }\n var parentNode = startContainer.parentNode;\n if (proxy.parent.editorMode === 'HTML' &&\n ((proxy.parent.iframeSettings.enable && !hasClass(parentNode.ownerDocument.querySelector('body'), 'e-lib')) ||\n // eslint-disable-next-line\n (!proxy.parent.iframeSettings.enable && isNOU(closest(parentNode, '[id=' + \"'\" + proxy.contentModule.getPanel().id + \"'\" + ']'))))) {\n proxy.contentModule.getEditPanel().focus();\n var range = proxy.parent.formatter.editorManager.nodeSelection.getRange(proxy.contentModule.getDocument());\n selectionObj.selection = proxy.parent.formatter.editorManager.nodeSelection.save(range, proxy.contentModule.getDocument());\n }\n var value = {\n rows: row, columns: col, width: {\n minWidth: proxy.parent.tableSettings.minWidth,\n maxWidth: proxy.parent.tableSettings.maxWidth,\n width: proxy.parent.tableSettings.width\n },\n selection: selectionObj.selection\n };\n if (proxy.popupObj) {\n proxy.popupObj.hide();\n }\n if (proxy.editdlgObj) {\n proxy.editdlgObj.hide();\n }\n proxy.parent.formatter.process(proxy.parent, selectionObj.args, selectionObj.args.originalEvent, value);\n proxy.contentModule.getEditPanel().focus();\n proxy.parent.on(events.mouseDown, proxy.cellSelect, proxy);\n };\n Table.prototype.cellSelect = function (e) {\n var target = e.args.target;\n var tdNode = closest(target, 'td,th');\n target = (target.nodeName !== 'TD' && tdNode && this.parent.contentModule.getEditPanel().contains(tdNode)) ?\n tdNode : target;\n removeClass(this.contentModule.getEditPanel().querySelectorAll('table td, table th'), classes.CLS_TABLE_SEL);\n if (target && (target.tagName === 'TD' || target.tagName === 'TH')) {\n addClass([target], classes.CLS_TABLE_SEL);\n this.activeCell = target;\n this.curTable = (this.curTable) ? this.curTable : closest(target, 'table');\n EventHandler.add(this.curTable, 'mousemove', this.tableMove, this);\n EventHandler.add(this.curTable, 'mouseup', this.tableMouseUp, this);\n this.removeResizeElement();\n if (this.helper && this.contentModule.getEditPanel().contains(this.helper)) {\n detach(this.helper);\n }\n }\n if (Browser.info.name === 'mozilla' && !isNOU(closest(target, 'table')) &&\n closest(target, 'table').tagName === 'TABLE') {\n this.parent.contentModule.getEditPanel().setAttribute('contenteditable', 'false');\n }\n };\n Table.prototype.tableMove = function (event) {\n this.parent.formatter.editorManager.observer.notify('TABLE_MOVE', { event: event, selectNode: [this.activeCell] });\n };\n Table.prototype.resizeHelper = function (e) {\n if (this.parent.readonly) {\n return;\n }\n var target = e.target || e.targetTouches[0].target;\n var closestTable = closest(target, 'table.e-rte-table');\n if (!isNOU(this.curTable) && !isNOU(closestTable) && closestTable !== this.curTable &&\n this.parent.contentModule.getEditPanel().contains(closestTable)) {\n this.removeResizeElement();\n this.removeHelper(e);\n this.cancelResizeAction();\n }\n if (target.nodeName === 'TABLE' || target.nodeName === 'TD' || target.nodeName === 'TH') {\n this.curTable = (closestTable && this.parent.contentModule.getEditPanel().contains(closestTable))\n && (target.nodeName === 'TD' || target.nodeName === 'TH') ?\n closestTable : target;\n this.removeResizeElement();\n this.tableResizeEleCreation(this.curTable, e);\n }\n };\n Table.prototype.tableResizeEleCreation = function (table, e) {\n this.parent.preventDefaultResize(e);\n var columns = table.rows[this.calMaxCol(table)].cells;\n var rows = [];\n for (var i = 0; i < table.rows.length; i++) {\n rows.push(Array.prototype.slice.call(table.rows[i].cells, 0, 1)[0]);\n }\n var height = parseInt(getComputedStyle(table).height, 10);\n var width = parseInt(getComputedStyle(table).width, 10);\n var pos = this.calcPos(table);\n for (var i = 0; columns.length >= i; i++) {\n var colReEle = this.parent.createElement('span', {\n attrs: {\n 'data-col': (i).toString(), 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n colReEle.classList.add(classes.CLS_RTE_TABLE_RESIZE, classes.CLS_TB_COL_RES);\n if (columns.length === i) {\n colReEle.style.cssText = 'height: ' + height + 'px; width: 4px; top: ' + pos.top +\n 'px; left:' + (pos.left + this.calcPos(columns[i - 1]).left + columns[i - 1].offsetWidth) + 'px;';\n }\n else {\n colReEle.style.cssText = 'height: ' + height + 'px; width: 4px; top: ' + pos.top +\n 'px; left:' + (pos.left + this.calcPos(columns[i]).left) + 'px;';\n }\n this.contentModule.getEditPanel().appendChild(colReEle);\n }\n for (var i = 0; rows.length > i; i++) {\n var rowReEle = this.parent.createElement('span', {\n attrs: {\n 'data-row': (i).toString(), 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n rowReEle.classList.add(classes.CLS_RTE_TABLE_RESIZE, classes.CLS_TB_ROW_RES);\n var rowPosLeft = !isNOU(table.getAttribute('cellspacing')) || table.getAttribute('cellspacing') !== '' ?\n 0 : this.calcPos(rows[i]).left;\n rowReEle.style.cssText = 'width: ' + width + 'px; height: 4px; top: ' +\n (this.calcPos(rows[i]).top + pos.top + rows[i].offsetHeight - 2) +\n 'px; left:' + (rowPosLeft + pos.left) + 'px;';\n this.contentModule.getEditPanel().appendChild(rowReEle);\n }\n var tableReBox = this.parent.createElement('span', {\n className: classes.CLS_TB_BOX_RES + ' ' + this.parent.cssClass, attrs: {\n 'data-col': columns.length.toString(), 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n tableReBox.style.cssText = 'top: ' + (pos.top + height - 4) +\n 'px; left:' + (pos.left + width - 4) + 'px;';\n if (Browser.isDevice) {\n tableReBox.classList.add('e-rmob');\n }\n this.contentModule.getEditPanel().appendChild(tableReBox);\n };\n Table.prototype.removeResizeElement = function () {\n var item = this.parent.contentModule.getEditPanel().\n querySelectorAll('.e-column-resize, .e-row-resize, .e-table-box');\n if (item.length > 0) {\n for (var i = 0; i < item.length; i++) {\n detach(item[i]);\n }\n }\n };\n Table.prototype.calcPos = function (elem) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset = elem.getBoundingClientRect();\n var doc = elem.ownerDocument;\n var offsetParent = elem.offsetParent || doc.documentElement;\n var isNestedTable = false;\n while (offsetParent &&\n (offsetParent === doc.body || offsetParent === doc.documentElement) &&\n offsetParent.style.position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n if (offsetParent.nodeName === 'TD' && elem.nodeName === 'TABLE') {\n offsetParent = closest(offsetParent, '.e-rte-content');\n isNestedTable = true;\n }\n if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\n parentOffset = offsetParent.getBoundingClientRect();\n }\n if (isNestedTable) {\n isNestedTable = false;\n var topValue = this.parent.inputElement && this.parent.inputElement.scrollTop > 0 ?\n (this.parent.inputElement.scrollTop + offset.top) - parentOffset.top : offset.top - parentOffset.top;\n var leftValue = this.parent.inputElement && this.parent.inputElement.scrollLeft > 0 ?\n (this.parent.inputElement.scrollLeft + offset.left) - parentOffset.left : offset.left - parentOffset.left;\n return {\n top: topValue,\n left: leftValue\n };\n }\n else {\n return {\n top: elem.offsetTop,\n left: elem.offsetLeft\n };\n }\n };\n Table.prototype.getPointX = function (e) {\n if (e.touches && e.touches.length) {\n return e.touches[0].pageX;\n }\n else {\n return e.pageX;\n }\n };\n Table.prototype.getPointY = function (e) {\n if (e.touches && e.touches.length) {\n return e.touches[0].pageY;\n }\n else {\n return e.pageY;\n }\n };\n Table.prototype.resizeStart = function (e) {\n var _this = this;\n if (this.parent.readonly) {\n return;\n }\n if (Browser.isDevice) {\n this.resizeHelper(e);\n }\n var target = e.target;\n if (target.classList.contains(classes.CLS_TB_COL_RES) ||\n target.classList.contains(classes.CLS_TB_ROW_RES) ||\n target.classList.contains(classes.CLS_TB_BOX_RES)) {\n e.preventDefault();\n this.parent.preventDefaultResize(e);\n removeClass(this.curTable.querySelectorAll('td,th'), classes.CLS_TABLE_SEL);\n this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());\n this.pageX = this.getPointX(e);\n this.pageY = this.getPointY(e);\n this.resizeBtnInit();\n this.hideTableQuickToolbar();\n if (target.classList.contains(classes.CLS_TB_COL_RES)) {\n this.resizeBtnStat.column = true;\n if (parseInt(target.getAttribute('data-col'), 10) === this.curTable.rows[this.calMaxCol(this.curTable)].cells.length) {\n this.currentColumnResize = 'last';\n this.columnEle = this.curTable.rows[this.calMaxCol(this.curTable)].cells[parseInt(target.getAttribute('data-col'), 10) - 1];\n }\n else {\n if (parseInt(target.getAttribute('data-col'), 10) === 0) {\n this.currentColumnResize = 'first';\n }\n else {\n this.currentColumnResize = 'middle';\n }\n this.columnEle = this.curTable.rows[this.calMaxCol(this.curTable)].cells[parseInt(target.getAttribute('data-col'), 10)];\n }\n this.colIndex = this.columnEle.cellIndex;\n this.moveEle = e.target;\n this.appendHelper();\n }\n if (target.classList.contains(classes.CLS_TB_ROW_RES)) {\n this.rowEle = this.curTable.rows[parseInt(target.getAttribute('data-row'), 10)];\n this.resizeBtnStat.row = true;\n this.appendHelper();\n }\n if (target.classList.contains(classes.CLS_TB_BOX_RES)) {\n this.resizeBtnStat.tableBox = true;\n }\n if (Browser.isDevice && this.helper && !this.helper.classList.contains('e-reicon')) {\n this.helper.classList.add('e-reicon');\n EventHandler.add(document, Browser.touchStartEvent, this.removeHelper, this);\n EventHandler.add(this.helper, Browser.touchStartEvent, this.resizeStart, this);\n }\n else {\n var args = { event: e, requestType: 'Table' };\n this.parent.trigger(events.resizeStart, args, function (resizeStartArgs) {\n if (resizeStartArgs.cancel) {\n _this.cancelResizeAction();\n }\n });\n }\n EventHandler.add(this.contentModule.getDocument(), Browser.touchMoveEvent, this.resizing, this);\n EventHandler.add(this.contentModule.getDocument(), Browser.touchEndEvent, this.resizeEnd, this);\n }\n };\n Table.prototype.removeHelper = function (e) {\n var cls = e.target.classList;\n if (!(cls.contains('e-reicon')) && this.helper) {\n EventHandler.remove(document, Browser.touchStartEvent, this.removeHelper);\n EventHandler.remove(this.helper, Browser.touchStartEvent, this.resizeStart);\n if (this.helper && this.contentModule.getEditPanel().contains(this.helper)) {\n detach(this.helper);\n }\n this.pageX = null;\n this.helper = null;\n }\n };\n Table.prototype.appendHelper = function () {\n this.helper = this.parent.createElement('div', {\n className: 'e-table-rhelper' + ' ' + this.parent.cssClass\n });\n if (Browser.isDevice) {\n this.helper.classList.add('e-reicon');\n }\n this.contentModule.getEditPanel().appendChild(this.helper);\n this.setHelperHeight();\n };\n Table.prototype.setHelperHeight = function () {\n var pos = this.calcPos(this.curTable);\n if (this.resizeBtnStat.column) {\n this.helper.classList.add('e-column-helper');\n this.helper.style.cssText = 'height: ' + getComputedStyle(this.curTable).height + '; top: ' +\n pos.top + 'px; left:' + ((pos.left + this.calcPos(this.columnEle).left) +\n (this.currentColumnResize === 'last' ? this.columnEle.offsetWidth + 2 : 0) - 1) + 'px;';\n }\n else {\n this.helper.classList.add('e-row-helper');\n this.helper.style.cssText = 'width: ' + getComputedStyle(this.curTable).width + '; top: ' +\n (this.calcPos(this.rowEle).top + pos.top + this.rowEle.offsetHeight) +\n 'px; left:' + (this.calcPos(this.rowEle).left + pos.left) + 'px;';\n }\n };\n Table.prototype.updateHelper = function () {\n var pos = this.calcPos(this.curTable);\n if (this.resizeBtnStat.column) {\n var left = (pos.left + this.calcPos(this.columnEle).left) +\n (this.currentColumnResize === 'last' ? this.columnEle.offsetWidth + 2 : 0) - 1;\n this.helper.style.left = left + 'px';\n }\n else {\n var top_1 = this.calcPos(this.rowEle).top + pos.top + this.rowEle.offsetHeight;\n this.helper.style.top = top_1 + 'px';\n }\n };\n Table.prototype.calMaxCol = function (element) {\n var max = 0;\n var maxRowIndex;\n for (var i = 0; i < element.rows.length; i++) {\n if (max < element.rows[i].cells.length) {\n maxRowIndex = i;\n max = element.rows[i].cells.length;\n }\n }\n return maxRowIndex;\n };\n Table.prototype.resizing = function (e) {\n var _this = this;\n var pageX = this.getPointX(e);\n var pageY = this.getPointY(e);\n var mouseX = (this.parent.enableRtl) ? -(pageX - this.pageX) : (pageX - this.pageX);\n var mouseY = (this.parent.enableRtl) ? -(pageY - this.pageY) : (pageY - this.pageY);\n this.pageX = pageX;\n this.pageY = pageY;\n var maxiumWidth;\n var currentTdElement = this.curTable.closest('td');\n var args = { event: e, requestType: 'table' };\n this.parent.trigger(events.onResize, args, function (resizingArgs) {\n if (resizingArgs.cancel) {\n _this.cancelResizeAction();\n }\n else {\n var tableReBox = _this.contentModule.getEditPanel().querySelector('.e-table-box');\n var tableWidth = parseInt(getComputedStyle(_this.curTable).width, 10);\n var tableHeight = parseInt(getComputedStyle(_this.curTable).height, 10);\n var paddingSize = +getComputedStyle(_this.contentModule.getEditPanel()).paddingRight.match(/\\d/g).join('');\n var rteWidth = _this.contentModule.getEditPanel().offsetWidth -\n (_this.contentModule.getEditPanel().offsetWidth -\n _this.contentModule.getEditPanel().clientWidth) - paddingSize * 2;\n var widthCompare = void 0;\n if (!isNOU(_this.curTable.parentElement.closest('table')) && !isNOU(_this.curTable.closest('td')) &&\n _this.contentModule.getEditPanel().contains(_this.curTable.closest('td'))) {\n var currentTd = _this.curTable.closest('td');\n var currentTDPad = +getComputedStyle(currentTd).paddingRight.match(/\\d/g).join('');\n // Padding of the current table with the parent element multiply with 2.\n widthCompare = currentTd.offsetWidth - (currentTd.offsetWidth - currentTd.clientWidth) - currentTDPad * 2;\n }\n else {\n widthCompare = rteWidth;\n }\n if (_this.resizeBtnStat.column) {\n var width = parseFloat(_this.columnEle.offsetWidth.toString());\n var cellRow = _this.curTable.rows[0].cells[0].nodeName === 'TH' ? 1 : 0;\n var currentTableWidth = parseFloat(_this.curTable.style.width.split('%')[0]);\n var currentColumnCellWidth = parseFloat(_this.curTable.rows[cellRow].cells[_this.colIndex >= _this.curTable.rows[cellRow].cells.length ? _this.curTable.rows[cellRow].cells.length - 1 : _this.colIndex].style.width.split('%')[0]);\n if (_this.currentColumnResize === 'first') {\n mouseX = mouseX - 0.75; //This was done for to make the gripper and the table first/last column will be close.\n _this.removeResizeElement();\n if (currentTdElement) {\n maxiumWidth = _this.curTable.getBoundingClientRect().right - _this.calcPos(currentTdElement).left;\n _this.curTable.style.maxWidth = maxiumWidth + 'px';\n }\n // Below the value '100' is the 100% width of the parent element.\n if (((mouseX !== 0 && 5 < currentColumnCellWidth) || mouseX < 0) && currentTableWidth <= 100 &&\n _this.convertPixelToPercentage(tableWidth - mouseX, widthCompare) <= 100) {\n var firstColumnsCell = _this.findFirstLastColCells(_this.curTable, true);\n _this.curTable.style.width = _this.convertPixelToPercentage(tableWidth - mouseX, widthCompare) > 100 ? (100 + '%') :\n (_this.convertPixelToPercentage(tableWidth - mouseX, widthCompare) + '%');\n var differenceWidth = currentTableWidth - _this.convertPixelToPercentage(tableWidth - mouseX, widthCompare);\n _this.currentMarginLeft = _this.currentMarginLeft + differenceWidth;\n _this.curTable.style.marginLeft = 'calc(' + (_this.curTable.style.width === '100%' ? 0 : _this.currentMarginLeft) + '%)';\n for (var i = 0; i < firstColumnsCell.length; i++) {\n _this.curTable.rows[i].cells[_this.colIndex].style.width = (currentColumnCellWidth - differenceWidth) + '%';\n }\n }\n }\n else if (_this.currentColumnResize === 'last') {\n mouseX = mouseX + 0.75; //This was done for to make the gripper and the table first/last column will be close.\n _this.removeResizeElement();\n if (currentTdElement) {\n maxiumWidth = currentTdElement.getBoundingClientRect().right - _this.curTable.getBoundingClientRect().left;\n _this.curTable.style.maxWidth = maxiumWidth + 'px';\n }\n // Below the value '100' is the 100% width of the parent element.\n if (((mouseX !== 0 && 5 < currentColumnCellWidth) || mouseX > 0) &&\n currentTableWidth <= 100 && _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) <= 100) {\n var lastColumnsCell = _this.findFirstLastColCells(_this.curTable, false);\n _this.curTable.style.width = _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) > 100 ? (100 + '%') : (_this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) + '%');\n var differenceWidth = currentTableWidth - _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare);\n for (var i = 0; i < lastColumnsCell.length; i++) {\n if (_this.curTable.rows[i].cells[_this.colIndex]) {\n _this.curTable.rows[i].cells[_this.colIndex].style.width = (currentColumnCellWidth - differenceWidth) + '%';\n }\n }\n }\n }\n else {\n var cellColl = _this.curTable.rows[_this.calMaxCol(_this.curTable)].cells;\n var actualwid = width - mouseX;\n var totalwid = parseFloat(_this.columnEle.offsetWidth.toString()) +\n parseFloat(cellColl[_this.colIndex - 1].offsetWidth.toString());\n for (var i = 0; i < _this.curTable.rows.length; i++) {\n if ((totalwid - actualwid) > 20 && actualwid > 20 && _this.curTable.rows[i].cells[i]) {\n var leftColumnWidth = totalwid - actualwid;\n var rightColWidth = actualwid;\n var index = _this.curTable.rows[i].cells[i].hasAttribute('colspan') ?\n parseInt(_this.curTable.rows[i].cells[i].getAttribute('colspan'), 10) - 1 : _this.colIndex;\n if (!isNOU(_this.curTable.rows[i].cells[index - 1])) {\n _this.curTable.rows[i].cells[index - 1].style.width =\n _this.convertPixelToPercentage(leftColumnWidth, tableWidth) + '%';\n }\n if (!isNOU(_this.curTable.rows[i].cells[index])) {\n _this.curTable.rows[i].cells[index].style.width =\n _this.convertPixelToPercentage(rightColWidth, tableWidth) + '%';\n }\n }\n }\n }\n _this.updateHelper();\n }\n else if (_this.resizeBtnStat.row) {\n _this.parent.preventDefaultResize(e);\n var height = parseFloat(_this.rowEle.clientHeight.toString()) + mouseY;\n if (height > 20) {\n _this.rowEle.style.height = height + 'px';\n }\n _this.curTable.style.height = '';\n if (!isNOU(tableReBox)) {\n tableReBox.style.cssText = 'top: ' + (_this.calcPos(_this.curTable).top + tableHeight - 4) +\n 'px; left:' + (_this.calcPos(_this.curTable).left + tableWidth - 4) + 'px;';\n }\n _this.updateHelper();\n }\n else if (_this.resizeBtnStat.tableBox) {\n if (!Browser.isDevice) {\n EventHandler.remove(_this.contentModule.getEditPanel(), 'mouseover', _this.resizeHelper);\n }\n if (currentTdElement) {\n // eslint-disable-next-line max-len\n var tableBoxPosition = _this.curTable.getBoundingClientRect().left - currentTdElement.getBoundingClientRect().left;\n maxiumWidth = Math.abs(tableBoxPosition - currentTdElement.getBoundingClientRect().width) - 5;\n _this.curTable.style.maxWidth = maxiumWidth + 'px';\n }\n var widthType = _this.curTable.style.width.indexOf('%') > -1;\n _this.curTable.style.width = widthType ? _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) + '%'\n : tableWidth + mouseX + 'px';\n _this.curTable.style.height = tableHeight + mouseY + 'px';\n tableReBox.classList.add('e-rbox-select');\n tableReBox.style.cssText = 'top: ' + (_this.calcPos(_this.curTable).top + tableHeight - 4) +\n 'px; left:' + (_this.calcPos(_this.curTable).left + tableWidth - 4) + 'px;';\n }\n }\n });\n };\n Table.prototype.findFirstLastColCells = function (table, isFirst) {\n var resultColumns = [];\n var rows = table.querySelectorAll('tr');\n for (var i = 0; i < rows.length; i++) {\n if (rows[i].closest('table') === table) {\n var columns = rows[i].querySelectorAll('th, td');\n resultColumns.push(isFirst ? columns[0] : columns[columns.length - 1]);\n }\n }\n return resultColumns;\n };\n Table.prototype.convertPixelToPercentage = function (value, offsetValue) {\n return (value / offsetValue) * 100;\n };\n Table.prototype.cancelResizeAction = function () {\n EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.resizing);\n EventHandler.remove(this.contentModule.getDocument(), Browser.touchEndEvent, this.resizeEnd);\n this.removeResizeElement();\n };\n Table.prototype.resizeEnd = function (e) {\n this.resizeBtnInit();\n EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.resizing);\n EventHandler.remove(this.contentModule.getDocument(), Browser.touchEndEvent, this.resizeEnd);\n if (this.contentModule.getEditPanel().querySelector('.e-table-box') &&\n this.contentModule.getEditPanel().contains(this.contentModule.getEditPanel().querySelector('.e-table-box'))) {\n if (!Browser.isDevice) {\n EventHandler.add(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper, this);\n }\n this.removeResizeElement();\n }\n if (this.helper && this.contentModule.getEditPanel().contains(this.helper)) {\n detach(this.helper);\n this.helper = null;\n }\n this.pageX = null;\n this.pageY = null;\n this.moveEle = null;\n var args = { event: e, requestType: 'table' };\n this.parent.trigger(events.resizeStop, args);\n this.parent.formatter.saveData();\n };\n Table.prototype.resizeBtnInit = function () {\n return this.resizeBtnStat = { column: false, row: false, tableBox: false };\n };\n Table.prototype.addRow = function (selectCell, e, tabkey) {\n var cmd;\n if (tabkey) {\n cmd = {\n item: { command: 'Table', subCommand: 'InsertRowAfter' }\n };\n }\n var value = {\n selection: selectCell,\n subCommand: (tabkey) ? cmd.item.subCommand : e.item.subCommand\n };\n this.parent.formatter.process(this.parent, (tabkey) ? cmd : e, e, value);\n };\n Table.prototype.addColumn = function (selectCell, e) {\n this.parent.formatter.process(this.parent, e, e, { selection: selectCell, width: this.parent.tableSettings.width, subCommand: e.item.subCommand });\n };\n Table.prototype.removeRowColumn = function (selectCell, e) {\n this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });\n this.hideTableQuickToolbar();\n };\n Table.prototype.removeTable = function (selection, args, delKey) {\n var cmd;\n if (delKey) {\n cmd = { item: { command: 'Table', subCommand: 'TableRemove' } };\n }\n var value = {\n selection: selection,\n subCommand: (delKey) ? cmd.item.subCommand : args.item.subCommand\n };\n this.parent.formatter.process(this.parent, (delKey) ? cmd : args, args.originalEvent, value);\n this.contentModule.getEditPanel().focus();\n if (this.parent.inputElement.innerHTML === null || this.parent.inputElement.innerHTML === '') {\n if (this.parent.enterKey === 'DIV') {\n this.contentModule.getEditPanel().innerHTML = '

    ';\n }\n else if (this.parent.enterKey === 'BR') {\n this.contentModule.getEditPanel().innerHTML = '
    ';\n }\n else {\n this.contentModule.getEditPanel().innerHTML = '


    ';\n }\n }\n this.removeResizeElement();\n this.hideTableQuickToolbar();\n };\n Table.prototype.renderDlgContent = function (args) {\n var _this = this;\n if (Browser.isDevice || this.parent.inlineMode.enable) {\n this.insertTableDialog(args);\n return;\n }\n if (this.popupObj) {\n this.popupObj.hide();\n return;\n }\n this.hideTableQuickToolbar();\n var header = '1X1';\n var insertbtn = this.l10n.getConstant('inserttablebtn');\n this.dlgDiv = this.parent.createElement('div', { className: 'e-rte-table-popup' + ' ' + this.parent.cssClass, id: this.rteID + '_table' });\n this.tblHeader = this.parent.createElement('div', { className: 'e-rte-popup-header' + ' ' + this.parent.cssClass });\n this.tblHeader.innerHTML = header;\n this.dlgDiv.appendChild(this.tblHeader);\n var tableDiv = this.parent.createElement('div', { className: 'e-rte-table-span' + ' ' + this.parent.cssClass });\n this.drawTable(tableDiv, args);\n this.dlgDiv.appendChild(tableDiv);\n this.dlgDiv.appendChild(this.parent.createElement('span', { className: 'e-span-border' + ' ' + this.parent.cssClass }));\n var btnEle = this.parent.createElement('button', {\n className: 'e-insert-table-btn' + ' ' + this.parent.cssClass, id: this.rteID + '_insertTable',\n attrs: { type: 'button', tabindex: '0' }\n });\n if (!isNOU(this.parent.getToolbarElement().querySelector('.e-expended-nav'))) {\n this.parent.getToolbarElement().querySelector('.e-expended-nav').setAttribute('tabindex', '1');\n }\n this.dlgDiv.appendChild(btnEle);\n this.createTableButton = new Button({\n iconCss: 'e-icons e-create-table', content: insertbtn, cssClass: 'e-flat' + ' ' + this.parent.cssClass,\n enableRtl: this.parent.enableRtl, locale: this.parent.locale\n });\n this.createTableButton.isStringTemplate = true;\n this.createTableButton.appendTo(btnEle);\n EventHandler.add(btnEle, 'click', this.insertTableDialog, { self: this, args: args.args, selection: args.selection });\n this.parent.getToolbar().appendChild(this.dlgDiv);\n var target = args.args.originalEvent.target;\n target = target.classList.contains('e-toolbar-item') ? target.firstChild : target.parentElement;\n this.popupObj = new Popup(this.dlgDiv, {\n targetType: 'relative',\n relateTo: target,\n collision: { X: 'fit', Y: 'none' },\n offsetY: 8,\n viewPortElement: this.parent.element,\n position: { X: 'left', Y: 'bottom' },\n enableRtl: this.parent.enableRtl,\n zIndex: 10001,\n // eslint-disable-next-line\n close: function (event) {\n _this.parent.isBlur = false;\n _this.popupObj.destroy();\n detach(_this.popupObj.element);\n _this.popupObj = null;\n }\n });\n addClass([this.popupObj.element], 'e-popup-open');\n if (!isNOU(this.parent.cssClass)) {\n addClass([this.popupObj.element], this.parent.cssClass);\n }\n this.popupObj.refreshPosition(target);\n };\n Table.prototype.docClick = function (e) {\n var target = e.args.target;\n // eslint-disable-next-line\n if (target && target.classList && ((this.popupObj && !closest(target, '[id=' + \"'\" + this.popupObj.element.id + \"'\" + ']') ||\n (this.editdlgObj && !closest(target, '#' + this.editdlgObj.element.id)))) && !target.classList.contains('e-create-table') &&\n target.offsetParent && !target.offsetParent.classList.contains('e-rte-backgroundcolor-dropdown')) {\n if (this.popupObj) {\n this.popupObj.hide();\n }\n if (this.editdlgObj) {\n this.editdlgObj.hide();\n }\n this.parent.isBlur = true;\n dispatchEvent(this.parent.element, 'focusout');\n }\n var closestEle = closest(target, 'td');\n var isExist = closestEle && this.parent.contentModule.getEditPanel().contains(closestEle) ? true : false;\n if (target && target.tagName !== 'TD' && target.tagName !== 'TH' && !isExist &&\n closest(target, '.e-rte-quick-popup') === null && target.offsetParent &&\n !target.offsetParent.classList.contains('e-quick-dropdown') &&\n !target.offsetParent.classList.contains('e-rte-backgroundcolor-dropdown') && !closest(target, '.e-rte-dropdown-popup')\n && !closest(target, '.e-rte-elements')) {\n removeClass(this.parent.inputElement.querySelectorAll('table td'), classes.CLS_TABLE_SEL);\n if (!Browser.isIE) {\n this.hideTableQuickToolbar();\n }\n }\n if (target && target.classList && !target.classList.contains(classes.CLS_TB_COL_RES) &&\n !target.classList.contains(classes.CLS_TB_ROW_RES) && !target.classList.contains(classes.CLS_TB_BOX_RES)) {\n this.removeResizeElement();\n }\n };\n Table.prototype.drawTable = function (tableDiv, args) {\n var rowDiv;\n var tableCell;\n for (var row = 0; row < 3; row++) {\n rowDiv = this.parent.createElement('div', { className: 'e-rte-table-row' + ' ' + this.parent.cssClass, attrs: { 'data-column': '' + row } });\n for (var col = 0; col < 10; col++) {\n var display = (row > 2) ? 'none' : 'inline-block';\n tableCell = this.parent.createElement('div', { className: 'e-rte-tablecell e-default' + ' ' + this.parent.cssClass, attrs: { 'data-cell': '' + col } });\n rowDiv.appendChild(tableCell);\n tableCell.style.display = display;\n if (col === 0 && row === 0) {\n addClass([tableCell], 'e-active');\n }\n EventHandler.add(tableCell, 'mousemove', this.tableCellSelect, this);\n EventHandler.add(rowDiv, 'mouseleave', this.tableCellLeave, this);\n EventHandler.add(tableCell, 'mouseup', this.tableCellClick, { self: this, args: args.args, selection: args.selection });\n }\n tableDiv.appendChild(rowDiv);\n }\n };\n Table.prototype.editTable = function (args) {\n var _this = this;\n this.createDialog(args);\n var editContent = this.tableDlgContent(args);\n var update = this.l10n.getConstant('dialogUpdate');\n var cancel = this.l10n.getConstant('dialogCancel');\n var editHeader = this.l10n.getConstant('tableEditHeader');\n this.editdlgObj.setProperties({\n height: 'initial', width: '290px', content: editContent, header: editHeader,\n buttons: [{\n click: this.applyProperties.bind(this, args),\n buttonModel: { content: update, cssClass: 'e-flat e-size-update' + ' ' + this.parent.cssClass, isPrimary: true }\n },\n {\n click: function (e) {\n _this.cancelDialog(e);\n },\n buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + this.parent.cssClass, content: cancel }\n }],\n cssClass: this.editdlgObj.cssClass + ' e-rte-edit-table-prop-dialog'\n });\n this.editdlgObj.element.style.maxHeight = 'none';\n this.editdlgObj.content.querySelector('input').focus();\n this.hideTableQuickToolbar();\n };\n Table.prototype.insertTableDialog = function (args) {\n var proxy = (this.self) ? this.self : this;\n if (proxy.popupObj) {\n proxy.popupObj.hide();\n }\n proxy.createDialog(args);\n var dlgContent = proxy.tableCellDlgContent();\n var insert = proxy.l10n.getConstant('dialogInsert');\n var cancel = proxy.l10n.getConstant('dialogCancel');\n if (isNullOrUndefined(proxy.editdlgObj)) {\n return;\n }\n proxy.editdlgObj.setProperties({\n height: 'initial', width: '290px', content: dlgContent,\n buttons: [{\n click: proxy.customTable.bind(this, args),\n buttonModel: { content: insert, cssClass: 'e-flat e-insert-table' + ' ' + proxy.parent.cssClass, isPrimary: true }\n },\n {\n click: function (e) {\n proxy.cancelDialog(e);\n },\n buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + proxy.parent.cssClass, content: cancel }\n }]\n });\n if (!isNOU(proxy.parent.cssClass)) {\n proxy.editdlgObj.setProperties({ cssClass: proxy.parent.cssClass });\n }\n proxy.editdlgObj.element.style.maxHeight = 'none';\n proxy.editdlgObj.content.querySelector('input').focus();\n };\n Table.prototype.tableCellDlgContent = function () {\n var tableColumn = this.l10n.getConstant('columns');\n var tableRow = this.l10n.getConstant('rows');\n var tableWrap = this.parent.createElement('div', { className: 'e-cell-wrap' + ' ' + this.parent.cssClass });\n var content = '
    '\n + '
    ';\n var contentElem = parseHtml(content);\n tableWrap.appendChild(contentElem);\n this.columnTextBox = new NumericTextBox({\n format: 'n0',\n min: 1,\n value: 3,\n placeholder: tableColumn,\n floatLabelType: 'Auto',\n max: 50,\n enableRtl: this.parent.enableRtl, locale: this.parent.locale,\n cssClass: this.parent.cssClass\n });\n this.columnTextBox.isStringTemplate = true;\n this.columnTextBox.appendTo(tableWrap.querySelector('#tableColumn'));\n this.rowTextBox = new NumericTextBox({\n format: 'n0',\n min: 1,\n value: 3,\n placeholder: tableRow,\n floatLabelType: 'Auto',\n max: 50,\n enableRtl: this.parent.enableRtl, locale: this.parent.locale,\n cssClass: this.parent.cssClass\n });\n this.rowTextBox.isStringTemplate = true;\n this.rowTextBox.appendTo(tableWrap.querySelector('#tableRow'));\n return tableWrap;\n };\n Table.prototype.clearDialogObj = function () {\n if (this.editdlgObj) {\n this.editdlgObj.destroy();\n detach(this.editdlgObj.element);\n this.editdlgObj = null;\n }\n };\n // eslint-disable-next-line\n Table.prototype.createDialog = function (args) {\n var _this = this;\n if (this.editdlgObj) {\n this.editdlgObj.hide({ returnValue: true });\n return;\n }\n var tableDialog = this.parent.createElement('div', {\n className: 'e-rte-edit-table' + ' ' + this.parent.cssClass, id: this.rteID + '_tabledialog'\n });\n this.parent.element.appendChild(tableDialog);\n var insert = this.l10n.getConstant('dialogInsert');\n var cancel = this.l10n.getConstant('dialogCancel');\n var header = this.l10n.getConstant('tabledialogHeader');\n var dialogModel = {\n header: header,\n cssClass: classes.CLS_RTE_ELEMENTS + ' ' + this.parent.cssClass,\n enableRtl: this.parent.enableRtl,\n locale: this.parent.locale,\n showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px', height: 'initial',\n position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },\n isModal: Browser.isDevice,\n buttons: [{\n buttonModel: { content: insert, cssClass: 'e-flat e-insert-table' + ' ' + this.parent.cssClass, isPrimary: true }\n },\n {\n click: function (e) {\n _this.cancelDialog(e);\n },\n buttonModel: { cssClass: 'e-flat e-cancel' + ' ' + this.parent.cssClass, content: cancel }\n }],\n target: (Browser.isDevice) ? document.body : this.parent.element,\n animationSettings: { effect: 'None' },\n close: function (event) {\n _this.parent.isBlur = false;\n _this.editdlgObj.destroy();\n detach(_this.editdlgObj.element);\n _this.dialogRenderObj.close(event);\n _this.editdlgObj = null;\n }\n };\n this.editdlgObj = this.dialogRenderObj.render(dialogModel);\n this.editdlgObj.appendTo(tableDialog);\n if (this.quickToolObj && this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {\n this.quickToolObj.inlineQTBar.hidePopup();\n }\n };\n Table.prototype.customTable = function (args, e) {\n var proxy = (this.self) ? this.self : this;\n if (proxy.rowTextBox.value && proxy.columnTextBox.value) {\n var argument = ((Browser.isDevice || (!isNullOrUndefined(args.args)\n && !isNullOrUndefined(args.args.originalEvent) &&\n args.args.originalEvent.action === 'insert-table')\n || proxy.parent.inlineMode.enable) ? args : this);\n proxy.tableInsert(proxy.rowTextBox.value, proxy.columnTextBox.value, e, argument);\n }\n };\n // eslint-disable-next-line\n Table.prototype.cancelDialog = function (e) {\n this.parent.isBlur = false;\n this.editdlgObj.hide({ returnValue: true });\n };\n // eslint-disable-next-line\n Table.prototype.applyProperties = function (args, e) {\n var dialogEle = this.editdlgObj.element;\n var table = closest(args.selectNode[0], 'table');\n table.style.width = dialogEle.querySelector('.e-table-width').value + 'px';\n if (dialogEle.querySelector('.e-cell-padding').value !== '') {\n var tdElm = table.querySelectorAll('td');\n for (var i = 0; i < tdElm.length; i++) {\n var padVal = '';\n if (tdElm[i].style.padding === '') {\n padVal = tdElm[i].getAttribute('style') + ' padding:' +\n dialogEle.querySelector('.e-cell-padding').value + 'px;';\n }\n else {\n tdElm[i].style.padding = dialogEle.querySelector('.e-cell-padding').value + 'px';\n padVal = tdElm[i].getAttribute('style');\n }\n tdElm[i].setAttribute('style', padVal);\n }\n }\n table.cellSpacing = dialogEle.querySelector('.e-cell-spacing').value;\n if (!isNOU(table.cellSpacing) || table.cellSpacing !== '0') {\n addClass([table], classes.CLS_TABLE_BORDER);\n }\n else {\n removeClass([table], classes.CLS_TABLE_BORDER);\n }\n this.parent.formatter.saveData();\n this.editdlgObj.hide({ returnValue: true });\n };\n Table.prototype.tableDlgContent = function (e) {\n var selectNode = e.selectParent[0];\n var tableWidth = this.l10n.getConstant('tableWidth');\n var cellPadding = this.l10n.getConstant('cellpadding');\n var cellSpacing = this.l10n.getConstant('cellspacing');\n var tableWrap = this.parent.createElement('div', { className: 'e-table-sizewrap' + ' ' + this.parent.cssClass });\n var widthVal = closest(selectNode, 'table').getClientRects()[0].width;\n var padVal = closest(selectNode, 'td').style.padding;\n var brdSpcVal = closest(selectNode, 'table').getAttribute('cellspacing');\n var content = '
    ' + '
    '\n + '
    ';\n var contentElem = parseHtml(content);\n tableWrap.appendChild(contentElem);\n this.tableWidthNum = new NumericTextBox({\n format: 'n0',\n min: 0,\n value: widthVal,\n placeholder: tableWidth,\n floatLabelType: 'Auto',\n enableRtl: this.parent.enableRtl, locale: this.parent.locale\n });\n this.tableWidthNum.isStringTemplate = true;\n this.tableWidthNum.appendTo(tableWrap.querySelector('#tableWidth'));\n this.tableCellPadding = new NumericTextBox({\n format: 'n0',\n min: 0,\n // eslint-disable-next-line\n value: padVal !== '' ? parseInt(padVal, null) : 0,\n placeholder: cellPadding,\n floatLabelType: 'Auto',\n enableRtl: this.parent.enableRtl, locale: this.parent.locale\n });\n this.tableCellPadding.isStringTemplate = true;\n this.tableCellPadding.appendTo(tableWrap.querySelector('#cellPadding'));\n this.tableCellSpacing = new NumericTextBox({\n format: 'n0',\n min: 0,\n // eslint-disable-next-line\n value: brdSpcVal !== '' && !isNOU(brdSpcVal) ? parseInt(brdSpcVal, null) : 0,\n placeholder: cellSpacing,\n floatLabelType: 'Auto',\n enableRtl: this.parent.enableRtl, locale: this.parent.locale\n });\n this.tableCellSpacing.isStringTemplate = true;\n this.tableCellSpacing.appendTo(tableWrap.querySelector('#cellSpacing'));\n return tableWrap;\n };\n /**\n * Destroys the ToolBar.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n\n */\n Table.prototype.destroy = function () {\n this.removeEventListener();\n };\n Table.prototype.moduleDestroy = function () {\n this.parent = null;\n };\n /**\n * For internal use only - Get the module name.\n *\n * @returns {void}\n */\n Table.prototype.getModuleName = function () {\n return 'table';\n };\n return Table;\n}());\nexport { Table };\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 (typeof baseTemplate !== 'function' && 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 (typeof template !== 'function' && 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 if (this.getModuleName() === 'listbox' && templateName === 'noRecordsTemplate') {\n if (noDataCompTemp[i].nodeName === '#text') {\n var liElem = this.createElement('li');\n liElem.textContent = noDataCompTemp[i].textContent;\n liElem.classList.add('e-list-nrt');\n liElem.setAttribute('role', 'option');\n ele.appendChild(liElem);\n }\n else {\n noDataCompTemp[i].classList.add('e-list-nr-template');\n ele.appendChild(noDataCompTemp[i]);\n }\n }\n else {\n ele.appendChild(noDataCompTemp[i]);\n }\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 = void 0;\n if (this.properties.allowCustomValue && this.properties.value && this.properties.value instanceof Array && this.properties.value.length > 0) {\n item = this.typeOfData(this.properties.value);\n }\n else {\n item = this.typeOfData(this.listData);\n }\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 if (this.getModuleName() !== 'listbox') {\n ulElement.setAttribute('tabindex', '0');\n }\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 (typeof this.groupTemplate !== 'function' && 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 (typeof this.itemTemplate !== 'function' && 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 if (element) {\n element.dispatchEvent(evt);\n }\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 if (this.getModuleName() === 'listbox') {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content, attrs: { 'tabindex': '0' } });\n }\n else {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content });\n }\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 = typeof this.itemTemplate !== 'function' &&\n 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 (this.getModuleName() === 'listbox' && this.isReact) {\n this.renderReactTemplates();\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","/**\n * Function helps to find which highlightSearch is to call based on your data.\n *\n * @param {HTMLElement} element - Specifies an li element.\n * @param {string} query - Specifies the string to be highlighted.\n * @param {boolean} ignoreCase - Specifies the ignoreCase option.\n * @param {HightLightType} type - Specifies the type of highlight.\n * @returns {void}\n */\nexport function highlightSearch(element, query, ignoreCase, type) {\n if (query === '') {\n return;\n }\n else {\n var ignoreRegex = ignoreCase ? 'gim' : 'gm';\n // eslint-disable-next-line\n query = /^[a-zA-Z0-9- ]*$/.test(query) ? query : query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n var replaceQuery = type === 'StartsWith' ? '^(' + query + ')' : type === 'EndsWith' ?\n '(' + query + ')$' : '(' + query + ')';\n // eslint-disable-next-line security/detect-non-literal-regexp\n findTextNode(element, new RegExp(replaceQuery, ignoreRegex));\n }\n}\n/* eslint-enable jsdoc/require-param, valid-jsdoc */\n/**\n *\n * @param {HTMLElement} element - Specifies the element.\n * @param {RegExp} pattern - Specifies the regex to match the searched text.\n * @returns {void}\n */\nfunction findTextNode(element, pattern) {\n for (var index = 0; element.childNodes && (index < element.childNodes.length); index++) {\n if (element.childNodes[index].nodeType === 3 && element.childNodes[index].textContent.trim() !== '') {\n var value = element.childNodes[index].nodeValue.trim().replace(pattern, '$1');\n element.childNodes[index].nodeValue = '';\n element.innerHTML = element.innerHTML.trim() + value;\n break;\n }\n else {\n findTextNode(element.childNodes[index], pattern);\n }\n }\n}\n/**\n * Function helps to remove highlighted element based on your data.\n *\n * @param {HTMLElement} content - Specifies an content element.\n * @returns {void}\n */\nexport function revertHighlightSearch(content) {\n var contentElement = content.querySelectorAll('.e-highlight');\n for (var i = contentElement.length - 1; i >= 0; i--) {\n var parent_1 = contentElement[i].parentNode;\n var text = document.createTextNode(contentElement[i].textContent);\n parent_1.replaceChild(text, contentElement[i]);\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 { KeyboardEvents, compile, Property, EventHandler, Animation, formatUnit, append, attributes } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, detach, Event, Complex, addClass, removeClass, closest, isUndefined, getValue, NotifyPropertyChanges, Browser } from '@syncfusion/ej2-base';\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { Popup, isCollide, createSpinner, showSpinner, hideSpinner, getZindexPartial } from '@syncfusion/ej2-popups';\nimport { highlightSearch, revertHighlightSearch } from '../common/highlight-search';\n/**\n * The Mention component is used to list someone or something based on user input in textarea, input,\n * or any other editable element from which the user can select.\n */\nvar Mention = /** @class */ (function (_super) {\n __extends(Mention, _super);\n /**\n * * Constructor for creating the widget\n *\n * @param {MentionModel} options - Specifies the MentionComponent model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function Mention(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.\n *\n * @param {MentionModel} newProp - Returns the dynamic property value of the component.\n * @param {MentionModel} 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 Mention.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 'minLength':\n this.minLength = newProp.minLength;\n break;\n case 'suffixText':\n this.suffixText = newProp.suffixText;\n break;\n case 'allowSpaces':\n this.allowSpaces = newProp.allowSpaces;\n break;\n case 'mentionChar':\n this.mentionChar = newProp.mentionChar;\n break;\n case 'showMentionChar':\n this.showMentionChar = newProp.showMentionChar;\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n }\n }\n };\n Mention.prototype.updateCssClass = 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 this.setCssClass(newClass, [this.inputElement], oldClass);\n if (this.popupObj) {\n this.setCssClass(newClass, [this.popupObj.element], oldClass);\n }\n };\n Mention.prototype.setCssClass = function (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 Mention.prototype.initializeData = function () {\n this.isSelected = false;\n this.isFiltered = false;\n this.beforePopupOpen = false;\n this.initRemoteRender = false;\n this.isListResetted = false;\n this.isPopupOpen = false;\n this.isCollided = false;\n this.lineBreak = false;\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 /**\n * Execute before render the list items\n *\n * @private\n * @returns {void}\n */\n Mention.prototype.preRender = function () {\n this.initializeData();\n _super.prototype.preRender.call(this);\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Mention.prototype.render = function () {\n var isSelector = typeof this.target === 'string';\n this.inputElement = !isNullOrUndefined(this.target) ?\n this.checkAndUpdateInternalComponent(isSelector\n ? document.querySelector(this.target)\n : this.target) : this.element;\n if (this.isContentEditable(this.inputElement)) {\n this.inputElement.setAttribute('contenteditable', 'true');\n addClass([this.inputElement], ['e-mention']);\n if (isNullOrUndefined(this.target)) {\n addClass([this.inputElement], ['e-editable-element']);\n }\n }\n this.inputElement.setAttribute('role', 'textbox');\n this.queryString = this.elementValue();\n this.wireEvent();\n };\n Mention.prototype.wireEvent = function () {\n EventHandler.add(this.inputElement, 'keyup', this.onKeyUp, this);\n this.bindCommonEvent();\n };\n Mention.prototype.unWireEvent = function () {\n EventHandler.remove(this.inputElement, 'keyup', this.onKeyUp);\n this.unBindCommonEvent();\n };\n Mention.prototype.bindCommonEvent = function () {\n if (!Browser.isDevice) {\n this.keyboardModule = new KeyboardEvents(this.inputElement, {\n keyAction: this.keyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @private\n * @returns {void}\n */\n Mention.prototype.hideSpinner = function () {\n this.hideWaitingSpinner();\n };\n Mention.prototype.hideWaitingSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n }\n if (!isNullOrUndefined(this.spinnerTemplate) && !isNullOrUndefined(this.spinnerTemplateElement)) {\n detach(this.spinnerTemplateElement);\n }\n };\n Mention.prototype.checkAndUpdateInternalComponent = function (targetElement) {\n if (!this.isVue && targetElement.classList.contains('e-richtexteditor')) {\n return targetElement.querySelector('.e-content');\n }\n if (this.isVue && targetElement.nodeName === 'TEXTAREA' && targetElement.classList.contains('e-rte-hidden')) {\n var parentElement = targetElement.parentElement;\n if (parentElement && parentElement.classList.contains('e-richtexteditor')) {\n return parentElement.querySelector('.e-content');\n }\n }\n return targetElement;\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n Mention.prototype.showWaitingSpinner = function () {\n if (!isNullOrUndefined(this.popupObj)) {\n if (isNullOrUndefined(this.spinnerTemplate) && isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = this.popupObj.element;\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n if (!isNullOrUndefined(this.spinnerTemplate)) {\n this.setSpinnerTemplate();\n }\n }\n };\n Mention.prototype.keyActionHandler = function (e) {\n var isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'\n || e.action === 'home' || e.action === 'end');\n var isTabAction = e.action === 'tab' || e.action === 'close';\n if (this.list === undefined && !this.isRequested && !isTabAction && e.action !== 'escape' && e.action !== 'space') {\n this.renderList();\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n isNavigation && this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if (e.action === 'escape') {\n e.preventDefault();\n }\n this.isSelected = e.action === 'escape' ? false : this.isSelected;\n switch (e.action) {\n case 'down':\n case 'up':\n this.updateUpDownAction(e);\n break;\n case 'tab':\n if (this.isPopupOpen) {\n e.preventDefault();\n var li = this.list.querySelector('.' + dropDownBaseClasses.selected);\n if (li) {\n this.setSelection(li, e);\n }\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n }\n break;\n case 'enter':\n if (this.isPopupOpen) {\n e.preventDefault();\n if (this.popupObj && this.popupObj.element.contains(this.selectedLI)) {\n this.updateSelectedItem(this.selectedLI, e, false, true);\n }\n }\n break;\n case 'escape':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n }\n break;\n }\n };\n Mention.prototype.updateUpDownAction = function (e) {\n var focusEle = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (this.isSelectFocusItem(focusEle)) {\n this.setSelection(focusEle, e);\n }\n else if (!isNullOrUndefined(this.liCollections)) {\n var li = this.list.querySelector('.' + dropDownBaseClasses.selected);\n if (!isNullOrUndefined(li)) {\n var value = this.getFormattedValue(li.getAttribute('data-value'));\n this.activeIndex = this.getIndexByValue(value);\n }\n var index = e.action === 'down' ? this.activeIndex + 1 : this.activeIndex - 1;\n var startIndex = 0;\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 var nextItem = isNullOrUndefined(this.activeIndex) ?\n this.liCollections[startIndex] : this.liCollections[index];\n if (!isNullOrUndefined(nextItem)) {\n this.setSelection(nextItem, e);\n }\n }\n if (this.isPopupOpen) {\n e.preventDefault();\n }\n };\n Mention.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n Mention.prototype.unBindCommonEvent = function () {\n if (!Browser.isDevice) {\n this.keyboardModule.destroy();\n }\n };\n Mention.prototype.onKeyUp = function (e) {\n var rangetextContent;\n this.isTyped = e.code !== 'Enter' && e.code !== 'Space' && e.code !== 'ArrowDown' && e.code !== 'ArrowUp' ? true : false;\n if (document.activeElement != this.inputElement) {\n this.inputElement.focus();\n }\n if (this.isContentEditable(this.inputElement)) {\n this.range = this.getCurrentRange();\n rangetextContent = this.range.startContainer.textContent.split('');\n }\n var currentRange = this.getTextRange();\n var lastWordRange = this.getLastLetter(currentRange);\n // eslint-disable-next-line security/detect-non-literal-regexp\n var Regex = new RegExp(this.mentionChar, 'g');\n var charRegex = new RegExp('[a-zA-Z]', 'g');\n if (e.key === 'Shift' || e.keyCode === 37 || e.keyCode === 39) {\n return;\n }\n if ((!currentRange || !lastWordRange) || e.code === 'Enter' || e.keyCode === 27 ||\n (lastWordRange.match(Regex) && lastWordRange.match(Regex).length > 1) ||\n (this.isContentEditable(this.inputElement) && this.range.startContainer &&\n this.range.startContainer.previousElementSibling && this.range.startContainer.textContent.split('').length > 0 &&\n (rangetextContent.length === 1 || rangetextContent[rangetextContent.length - 2].indexOf('') === -1 ||\n this.range.startContainer.nodeType === 1))) {\n if (this.allowSpaces && currentRange && currentRange.trim() !== '' && charRegex.test(currentRange) && currentRange.indexOf(this.mentionChar) !== -1\n && !this.isMatchedText() && (currentRange.length > 1 && currentRange.replace(/\\u00A0/g, ' ').charAt(currentRange.length - 2) !== ' ') &&\n (this.list && this.list.querySelectorAll('ul').length > 0)) {\n this.queryString = currentRange.substring(currentRange.lastIndexOf(this.mentionChar) + 1).replace('\\u00a0', ' ');\n this.searchLists(e);\n }\n else if (this.isPopupOpen && (!this.allowSpaces || !lastWordRange) && (e.code !== 'ArrowDown' && e.code !== 'ArrowUp')) {\n this.hidePopup();\n this.lineBreak = true;\n }\n return;\n }\n this.queryString = lastWordRange.replace(this.mentionChar, '');\n if (this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0) &&\n this.queryString !== '' && e.keyCode !== 38 && e.keyCode !== 40 && !this.lineBreak) {\n this.searchLists(e);\n if (!this.isPopupOpen && this.queryString.length >= this.minLength) {\n if (!this.isContentEditable(this.inputElement)) {\n this.showPopup();\n }\n else if (this.isContentEditable(this.inputElement) && this.range && this.range.startContainer !== this.inputElement && e.keyCode !== 9) {\n this.showPopup();\n }\n }\n }\n else if (lastWordRange.indexOf(this.mentionChar) === 0 && !this.isPopupOpen && e.keyCode !== 8 && (!this.popupObj ||\n (isNullOrUndefined(this.target) && !document.body.contains(this.popupObj.element) ||\n !isNullOrUndefined(this.target) && document.body.contains(this.popupObj.element)))) {\n if (this.initRemoteRender && this.list && this.list.classList.contains('e-nodata')) {\n this.searchLists(e);\n }\n this.resetList(this.dataSource, this.fields);\n if (isNullOrUndefined(this.list)) {\n this.initValue();\n }\n if (!this.isPopupOpen && e.keyCode !== 38 && e.keyCode !== 40) {\n this.didPopupOpenByTypingInitialChar = true;\n this.showPopup();\n if (this.initRemoteRender && this.list.querySelectorAll('li').length === 0) {\n this.showWaitingSpinner();\n }\n this.lineBreak = false;\n }\n }\n else if (this.allowSpaces && this.queryString !== '' && currentRange && currentRange.trim() !== '' && currentRange.replace('\\u00a0', ' ').lastIndexOf(' ') < currentRange.length - 1 &&\n e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 8 && this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0)) {\n this.queryString = currentRange.substring(currentRange.lastIndexOf(this.mentionChar) + 1).replace('\\u00a0', ' ');\n this.searchLists(e);\n }\n else if (this.queryString === '' && this.isPopupOpen && e.keyCode !== 38 && e.keyCode !== 40 && this.mentionChar.charCodeAt(0) === lastWordRange.charCodeAt(0)) {\n this.searchLists(e);\n if (!this.isListResetted) {\n this.resetList(this.dataSource, this.fields);\n }\n }\n this.isListResetted = false;\n };\n Mention.prototype.isMatchedText = function () {\n var isMatched = false;\n for (var i = 0; i < (this.liCollections && this.liCollections.length); i++) {\n if (this.getTextRange() &&\n this.getTextRange().substring(this.getTextRange().lastIndexOf(this.mentionChar) + 1).replace('\\u00a0', ' ').trim() === this.liCollections[i].getAttribute('data-value').toLowerCase()) {\n isMatched = true;\n }\n }\n return isMatched;\n };\n Mention.prototype.getCurrentRange = function () {\n this.range = this.inputElement.ownerDocument.getSelection().getRangeAt(0);\n return this.range;\n };\n Mention.prototype.searchLists = function (e) {\n var _this = this;\n this.isDataFetched = false;\n if (isNullOrUndefined(this.list)) {\n _super.prototype.render.call(this);\n this.unWireListEvents();\n this.wireListEvents();\n }\n if (e.type !== 'mousedown' && (e.keyCode === 40 || e.keyCode === 38)) {\n this.queryString = this.queryString === '' ? null : this.queryString;\n this.beforePopupOpen = true;\n this.resetList(this.dataSource, this.fields);\n return;\n }\n this.isSelected = false;\n this.activeIndex = null;\n var eventArgs = {\n preventDefaultAction: false,\n text: this.queryString,\n updateData: function (dataSource, query, fields) {\n if (eventArgs.cancel) {\n return;\n }\n _this.isFiltered = true;\n _this.filterAction(dataSource, query, fields);\n },\n cancel: false\n };\n this.trigger('filtering', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isFiltered && !eventArgs.preventDefaultAction) {\n _this.filterAction(_this.dataSource, null, _this.fields);\n }\n });\n };\n Mention.prototype.filterAction = function (dataSource, query, fields) {\n this.beforePopupOpen = true;\n if (this.queryString.length >= this.minLength) {\n this.resetList(dataSource, fields, query);\n this.isListResetted = true;\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n this.beforePopupOpen = false;\n }\n this.setDataIndex();\n this.renderReactTemplates();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Mention.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n if (this.isActive) {\n if (!isNullOrUndefined(ulElement)) {\n attributes(ulElement, { 'id': this.inputElement.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\n }\n var focusItem = ulElement.querySelector('.' + dropDownBaseClasses.li);\n if (focusItem) {\n focusItem.classList.add(dropDownBaseClasses.selected);\n this.selectedLI = focusItem;\n var value = this.getFormattedValue(focusItem.getAttribute('data-value'));\n this.selectEventCallback(focusItem, this.getDataByValue(value), value, true);\n }\n }\n };\n Mention.prototype.setDataIndex = function () {\n for (var i = 0; this.liCollections && i < this.liCollections.length; i++) {\n this.liCollections[i].setAttribute('data-index', i.toString());\n }\n };\n Mention.prototype.listOption = function (dataSource, fieldsSettings) {\n var _this = this;\n var fields = _super.prototype.listOption.call(this, dataSource, fieldsSettings);\n if (isNullOrUndefined(fields.itemCreated)) {\n fields.itemCreated = function (e) {\n if (_this.highlight) {\n if (_this.inputElement.tagName === _this.getNgDirective() && _this.itemTemplate) {\n setTimeout(function () {\n highlightSearch(e.item, _this.queryString, _this.ignoreCase, _this.filterType);\n }, 0);\n }\n else {\n highlightSearch(e.item, _this.queryString, _this.ignoreCase, _this.filterType);\n }\n }\n };\n }\n else {\n var itemCreated_1 = fields.itemCreated;\n fields.itemCreated = function (e) {\n if (_this.highlight) {\n highlightSearch(e.item, _this.queryString, _this.ignoreCase, _this.filterType);\n }\n itemCreated_1.apply(_this, [e]);\n };\n }\n return fields;\n };\n Mention.prototype.elementValue = function () {\n if (!this.isContentEditable(this.inputElement)) {\n return this.inputElement.value.replace(this.mentionChar, '');\n }\n else {\n return this.inputElement.textContent.replace(this.mentionChar, '');\n }\n };\n Mention.prototype.getQuery = function (query) {\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = (this.queryString === '' && !isNullOrUndefined(this.elementValue())) ? 'equal' : this.filterType;\n var queryString = (this.queryString === '' && !isNullOrUndefined(this.elementValue())) ?\n this.elementValue() : this.queryString;\n if (this.isFiltered) {\n return filterQuery;\n }\n if (this.queryString !== null && this.queryString !== '') {\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', filterType, queryString, this.ignoreCase, this.ignoreAccent);\n }\n else {\n var mapping = !isNullOrUndefined(this.fields.text) ? this.fields.text : '';\n filterQuery.where(mapping, filterType, queryString, this.ignoreCase, this.ignoreAccent);\n }\n }\n if (!isNullOrUndefined(this.suggestionCount)) {\n // Since defualt value of suggestioncount is 25, checked the condition\n if (this.suggestionCount !== 25) {\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\n if (filterQuery.queries[queryElements].fn === 'onTake') {\n filterQuery.queries.splice(queryElements, 1);\n }\n }\n }\n filterQuery.take(this.suggestionCount);\n }\n return filterQuery;\n };\n Mention.prototype.renderHightSearch = function () {\n if (this.highlight) {\n for (var i = 0; i < this.liCollections.length; i++) {\n var isHighlight = this.ulElement.querySelector('.e-active');\n if (!isHighlight) {\n revertHighlightSearch(this.liCollections[i]);\n highlightSearch(this.liCollections[i], this.queryString, this.ignoreCase, this.filterType);\n }\n }\n }\n };\n Mention.prototype.getTextRange = function () {\n var text;\n if (!this.isContentEditable(this.inputElement)) {\n var component = this.inputElement;\n if (!isNullOrUndefined(component)) {\n var startPos = component.selectionStart;\n if (component.value && startPos >= 0) {\n text = component.value.substring(0, startPos);\n }\n }\n }\n else {\n if (this.range) {\n var selectedElem = this.range.startContainer;\n if (!isNullOrUndefined(selectedElem)) {\n var workingNodeContent = selectedElem.textContent;\n var selectStartOffset = this.range.startOffset;\n if (workingNodeContent && selectStartOffset >= 0) {\n text = workingNodeContent.substring(0, selectStartOffset);\n }\n }\n }\n }\n return text;\n };\n Mention.prototype.getLastLetter = function (text) {\n if (isNullOrUndefined(text)) {\n return '';\n }\n var textValue = text.replace(/\\u00A0/g, ' ');\n var words = textValue.split(/\\s+/);\n var wordCnt = words.length - 1;\n return words[wordCnt].trim();\n };\n Mention.prototype.isContentEditable = function (element) {\n return element && element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA';\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n */\n Mention.prototype.showPopup = function () {\n this.beforePopupOpen = true;\n if (document.activeElement != this.inputElement) {\n this.inputElement.focus();\n }\n this.queryString = this.didPopupOpenByTypingInitialChar ? this.queryString : '';\n this.didPopupOpenByTypingInitialChar = false;\n if (this.isContentEditable(this.inputElement)) {\n this.range = this.getCurrentRange();\n }\n if (!this.isTyped) {\n this.resetList(this.dataSource, this.fields);\n }\n if (isNullOrUndefined(this.list)) {\n this.initValue();\n }\n this.renderPopup();\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElementID });\n if (this.selectedElementID == null) {\n this.inputElement.removeAttribute('aria-activedescendant');\n }\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 Mention.prototype.hidePopup = function (e) {\n this.removeSelection();\n this.closePopup(0, e);\n };\n Mention.prototype.closePopup = function (delay, e) {\n var _this = this;\n if (!(this.popupObj && document.body.contains(this.popupObj.element) && this.beforePopupOpen)) {\n return;\n }\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\n this.inputElement.removeAttribute('aria-owns');\n this.inputElement.removeAttribute('aria-activedescendant');\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('closed', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel && _this.popupObj) {\n if (_this.isPopupOpen) {\n _this.popupObj.hide(new Animation(eventArgs.animation));\n }\n else {\n _this.destroyPopup();\n }\n }\n });\n };\n Mention.prototype.renderPopup = function () {\n var _this = this;\n var args = { cancel: false };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n var popupEle_1;\n if (isNullOrUndefined(_this.target)) {\n popupEle_1 = _this.createElement('div', {\n id: _this.inputElement.id + '_popup', className: 'e-mention e-popup ' + (_this.cssClass != null ? _this.cssClass : '')\n });\n }\n else {\n popupEle_1 = _this.element;\n if (_this.cssClass != null) {\n addClass([popupEle_1], _this.cssClass.split(' '));\n }\n }\n if (!isNullOrUndefined(_this.target)) {\n popupEle_1.id = _this.inputElement.id + '_popup';\n }\n _this.listHeight = formatUnit(_this.popupHeight);\n if (!isNullOrUndefined(_this.list.querySelector('li')) && !_this.initRemoteRender) {\n var li = _this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(li)) {\n _this.selectedLI = li;\n var value = _this.getFormattedValue(li.getAttribute('data-value'));\n _this.selectEventCallback(li, _this.getDataByValue(value), value, true);\n }\n }\n append([_this.list], popupEle_1);\n if (_this.inputElement.parentElement && _this.inputElement.parentElement.parentElement &&\n _this.inputElement.parentElement.parentElement.classList.contains('e-richtexteditor')) {\n if (popupEle_1.firstElementChild && popupEle_1.firstElementChild.childElementCount > 0) {\n popupEle_1.firstElementChild.setAttribute('aria-owns', _this.inputElement.parentElement.parentElement.id);\n }\n }\n if ((!_this.popupObj || !document.body.contains(_this.popupObj.element)) ||\n !document.contains(popupEle_1) && isNullOrUndefined(_this.target)) {\n document.body.appendChild(popupEle_1);\n }\n var coordinates_1;\n popupEle_1.style.visibility = 'hidden';\n _this.setHeight(popupEle_1);\n var offsetValue = 0;\n var left = 0;\n _this.initializePopup(popupEle_1, offsetValue, left);\n _this.checkCollision(popupEle_1);\n popupEle_1.style.visibility = 'visible';\n addClass([popupEle_1], ['e-mention', 'e-popup', 'e-popup-close']);\n if (!isNullOrUndefined(_this.list)) {\n _this.unWireListEvents();\n _this.wireListEvents();\n }\n _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;\n attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options', 'aria-activedescendant': _this.selectedElementID });\n if (_this.selectedElementID == null) {\n _this.inputElement.removeAttribute('aria-activedescendant');\n }\n var animModel = { name: 'FadeIn', duration: 100 };\n _this.beforePopupOpen = true;\n var popupInstance = _this.popupObj;\n var eventArgs = { popup: popupInstance, cancel: false, animation: animModel };\n _this.trigger('opened', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.renderReactTemplates();\n _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.inputElement : null);\n if (isNullOrUndefined(_this.getTriggerCharPosition())) {\n return;\n }\n coordinates_1 = _this.getCoordinates(_this.inputElement, _this.getTriggerCharPosition());\n if (!_this.isCollided) {\n popupEle_1.style.cssText = 'top: '.concat(coordinates_1.top.toString(), 'px;\\n left: ').concat(coordinates_1.left.toString(), 'px;\\nposition: absolute;\\n display: block;');\n }\n else {\n popupEle_1.style.left = formatUnit(coordinates_1.left);\n popupEle_1.style.top = formatUnit(coordinates_1.top - parseInt(_this.popupHeight.toString()));\n _this.isCollided = false;\n }\n popupEle_1.style.width = _this.popupWidth !== '100%' && !isNullOrUndefined(_this.popupWidth) ? formatUnit(_this.popupWidth) : 'auto';\n _this.setHeight(popupEle_1);\n popupEle_1.style.zIndex = _this.zIndex === 1000 ? getZindexPartial(popupEle_1).toString() : _this.zIndex.toString();\n }\n else {\n _this.beforePopupOpen = false;\n _this.destroyPopup();\n }\n });\n }\n else {\n _this.beforePopupOpen = false;\n }\n });\n };\n Mention.prototype.setHeight = function (popupEle) {\n if (this.popupHeight !== 'auto' && this.list) {\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 };\n Mention.prototype.checkCollision = function (popupEle) {\n if (!Browser.isDevice || (Browser.isDevice && !(this.getModuleName() === 'mention'))) {\n var coordinates = this.getCoordinates(this.inputElement, this.getTriggerCharPosition());\n var collision = isCollide(popupEle, null, coordinates.left, coordinates.top);\n if (collision.length > 0) {\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\n this.isCollided = true;\n }\n this.popupObj.resolveCollision();\n }\n };\n Mention.prototype.getTriggerCharPosition = function () {\n var mostRecentTriggerCharPos;\n var currentRange = this.getTextRange();\n if (currentRange !== undefined && currentRange !== null) {\n mostRecentTriggerCharPos = 0;\n var idx = currentRange.lastIndexOf(this.mentionChar);\n if (idx >= mostRecentTriggerCharPos) {\n mostRecentTriggerCharPos = idx;\n }\n }\n return mostRecentTriggerCharPos ? mostRecentTriggerCharPos : 0;\n };\n Mention.prototype.initializePopup = function (element, offsetValue, left) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.setWidth(), targetType: 'relative',\n relateTo: this.inputElement, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,\n enableRtl: this.enableRtl, offsetX: left, position: { X: 'left', Y: 'bottom' }, actionOnScroll: 'hide',\n zIndex: this.zIndex,\n close: function () {\n _this.destroyPopup();\n },\n open: function () {\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\n _this.isPopupOpen = true;\n _this.setDataIndex();\n }\n });\n };\n Mention.prototype.setWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.inputElement.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n Mention.prototype.destroyPopup = function () {\n this.isPopupOpen = false;\n this.popupObj.destroy();\n if (isNullOrUndefined(this.target)) {\n detach(this.popupObj.element);\n }\n else {\n this.popupObj.element.innerHTML = '';\n this.popupObj.element.removeAttribute('style');\n this.popupObj.element.removeAttribute('aria-disabled');\n }\n };\n Mention.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, '#' + this.popupObj.element.id))) {\n this.hidePopup(e);\n }\n };\n Mention.prototype.getCoordinates = function (element, position) {\n var properties = ['direction', 'boxSizing', 'width', 'height', 'overflowX', 'overflowY', 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'fontStyle', 'fontVariant', 'fontWeight', 'fontStretch', 'fontSize', 'fontSizeAdjust', 'lineHeight', 'fontFamily', 'textAlign', 'textTransform', 'textIndent', 'textDecoration', 'letterSpacing', 'wordSpacing'];\n var div;\n var span;\n var range;\n var globalRange;\n var coordinates;\n var computed;\n var rect;\n if (!this.isContentEditable(this.inputElement)) {\n div = this.createElement('div', { className: 'e-form-mirror-div' });\n document.body.appendChild(div);\n computed = getComputedStyle(element);\n div.style.position = 'absolute';\n div.style.visibility = 'hidden';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n properties.forEach(function (prop) {\n // eslint-disable-next-line security/detect-object-injection\n div.style[prop] = computed[prop];\n });\n div.textContent = element.value.substring(0, position);\n if (this.inputElement.nodeName === 'INPUT') {\n div.textContent = div.textContent.replace(/\\s/g, '\\u00a0');\n }\n span = this.createElement('span');\n span.textContent = element.value.substring(position) || '.';\n div.appendChild(span);\n rect = element.getBoundingClientRect();\n }\n else {\n var selectedNodePosition = this.getTriggerCharPosition();\n globalRange = this.range;\n range = document.createRange();\n if (this.getTextRange() && this.getTextRange().lastIndexOf(this.mentionChar) !== -1) {\n range.setStart(globalRange.startContainer, selectedNodePosition);\n range.setEnd(globalRange.startContainer, selectedNodePosition);\n }\n else {\n range.setStart(globalRange.startContainer, globalRange.startOffset);\n range.setEnd(globalRange.startContainer, globalRange.endOffset);\n }\n this.isTyped = false;\n range.collapse(false);\n rect = range.getBoundingClientRect().top === 0 ? range.startContainer.getClientRects()[0] : range.getBoundingClientRect();\n }\n var doc = document.documentElement;\n var windowLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n var windowTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n var width = 0;\n if (!isNullOrUndefined(range) && range.getBoundingClientRect().top === 0) {\n for (var i = 0; i < this.range.startContainer.childNodes.length; i++) {\n if (this.range.startContainer.childNodes[i].nodeType !== Node.TEXT_NODE && this.range.startContainer.childNodes[i].textContent.trim() !== '') {\n width += this.range.startContainer.childNodes[i].getClientRects()[0].width;\n }\n else if (this.range.startContainer.childNodes[i].textContent !== '') {\n var span_1 = document.createElement(\"span\");\n span_1.innerHTML = this.range.startContainer.childNodes[i].nodeValue;\n document.body.appendChild(span_1);\n var textNodeWidth = span_1.offsetWidth;\n document.body.removeChild(span_1);\n width += textNodeWidth;\n }\n }\n }\n if (!this.isContentEditable(this.inputElement)) {\n coordinates = {\n top: rect.top + windowTop + span.offsetTop + parseInt(computed.borderTopWidth, 10) +\n parseInt(computed.fontSize, 10) + 3 - element.scrollTop - (this.isCollided ? 10 : 0),\n left: rect.left + windowLeft + span.offsetLeft + parseInt(computed.borderLeftWidth, 10)\n };\n document.body.removeChild(div);\n }\n else {\n coordinates = {\n top: rect.top + windowTop + parseInt(getComputedStyle(this.inputElement).fontSize, 10) - (this.isCollided ? 10 : 0),\n left: rect.left + windowLeft + width\n };\n }\n return coordinates;\n };\n Mention.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 Mention.prototype.updateValues = function () {\n var li = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (!isNullOrUndefined(li)) {\n this.setSelection(li, null);\n }\n };\n Mention.prototype.renderList = function () {\n _super.prototype.render.call(this);\n this.unWireListEvents();\n this.wireListEvents();\n };\n /**\n * Event binding for list\n *\n * @returns {void}\n */\n Mention.prototype.wireListEvents = function () {\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 * Event un binding for list items.\n *\n * @returns {void}\n */\n Mention.prototype.unWireListEvents = function () {\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 Mention.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.isSelected = true;\n this.setSelection(li, e);\n var delay = 100;\n this.closePopup(delay, e);\n this.inputElement.focus();\n };\n Mention.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 (!preventSelect && !isNullOrUndefined(e) && !(e.action === \"down\" || e.action === \"up\")) {\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 _this.isSelected = false;\n _this.isSelectCancel = true;\n }\n else {\n _this.selectEventCallback(li, selectedData, value);\n if (isSelection) {\n _this.setSelectOptions(li, e);\n }\n }\n });\n }\n else {\n this.selectEventCallback(li, selectedData, value);\n if (isSelection) {\n this.setSelectOptions(li, e);\n }\n }\n };\n Mention.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 Mention.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.isPopupOpen && !isNullOrUndefined(this.selectedLI)) {\n this.setScrollPosition(e);\n }\n if (e && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n if (isNullOrUndefined(e) || this.setValue(e)) {\n return;\n }\n };\n Mention.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 Mention.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 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 Mention.prototype.scrollTop = function () {\n if (!isNullOrUndefined(this.selectedLI)) {\n var nextOffset = this.selectedLI.offsetTop - this.list.scrollTop;\n nextOffset = this.fields.groupBy && 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;\n }\n }\n };\n Mention.prototype.selectEventCallback = function (li, selectedData, value, selectLi) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\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 if (selectLi) {\n addClass([li], dropDownBaseClasses.selected);\n }\n li.setAttribute('aria-selected', 'true');\n this.activeIndex = this.getIndexByValue(value);\n };\n Mention.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 Mention.prototype.setValue = function (e) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n if (!isNullOrUndefined(this.displayTemplate)) {\n this.setDisplayTemplate();\n }\n this.updateMentionValue(e);\n return true;\n }\n else {\n if (!isNullOrUndefined(this.displayTemplate)) {\n this.setDisplayTemplate(e);\n }\n else {\n this.updateMentionValue(e);\n }\n return true;\n }\n };\n Mention.prototype.updateMentionValue = function (e) {\n var dataItem = this.getItemData();\n var textSuffix;\n var value;\n var endPos;\n var range;\n var globalRange;\n var selection = this.inputElement.ownerDocument.getSelection();\n var startPos = this.getTriggerCharPosition();\n textSuffix = typeof this.suffixText === 'string' ? this.suffixText : '';\n if (this.isSelectCancel) {\n this.isSelectCancel = false;\n return;\n }\n if (dataItem.text !== null) {\n value = this.mentionVal(dataItem.text);\n }\n if (!this.isContentEditable(this.inputElement)) {\n var myField = this.inputElement;\n var currentTriggerSnippet = this.getTextRange().substring(startPos + this.mentionChar.length, this.getTextRange().length);\n value += textSuffix;\n endPos = startPos + this.mentionChar.length;\n endPos += currentTriggerSnippet.length;\n myField.value = myField.value.substring(0, startPos) + value + myField.value.substring(endPos, myField.value.length);\n myField.selectionStart = startPos + value.length;\n myField.selectionEnd = startPos + value.length;\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n this.onChangeEvent(e);\n }\n else {\n endPos = this.getTriggerCharPosition() + this.mentionChar.length;\n if (this.range && (this.range.startContainer.textContent.trim() !== this.mentionChar)) {\n endPos = this.range.endOffset;\n }\n globalRange = this.range;\n range = document.createRange();\n if (((this.getTextRange() && this.getTextRange().lastIndexOf(this.mentionChar) !== -1) || this.getTextRange() && this.getTextRange().trim() === this.mentionChar)) {\n range.setStart(globalRange.startContainer, startPos);\n range.setEnd(globalRange.startContainer, endPos);\n }\n else {\n if (globalRange.commonAncestorContainer.textContent.trim() !== '' && !isNullOrUndefined(globalRange.commonAncestorContainer.textContent.trim()) && this.getTextRange() && this.getTextRange().lastIndexOf(this.mentionChar) !== -1) {\n range.setStart(globalRange.startContainer, globalRange.startOffset - 1);\n range.setEnd(globalRange.startContainer, globalRange.endOffset - 1);\n }\n else {\n range.setStart(globalRange.startContainer, globalRange.startOffset);\n range.setEnd(globalRange.startContainer, globalRange.endOffset);\n }\n }\n this.isTyped = false;\n range.deleteContents();\n var element = this.createElement('div');\n element.innerHTML = value;\n var frag = document.createDocumentFragment();\n var node = void 0;\n var lastNode = void 0;\n // eslint-disable-next-line no-cond-assign\n while (node = element.firstChild) {\n lastNode = frag.appendChild(node);\n }\n range.insertNode(frag);\n if (lastNode) {\n range = range.cloneRange();\n range.setStartAfter(lastNode);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n this.onChangeEvent(e);\n }\n };\n Mention.prototype.mentionVal = function (value) {\n var showChar = this.showMentionChar ? this.mentionChar : '';\n if (!isNullOrUndefined(this.displayTemplate) && !isNullOrUndefined(this.displayTempElement)) {\n value = this.displayTempElement.innerHTML;\n }\n if (this.isContentEditable(this.inputElement)) {\n return '' + showChar + value + ''.concat(typeof this.suffixText === 'string' ? this.suffixText : ' ');\n }\n else {\n return showChar + value;\n }\n };\n Mention.prototype.setDisplayTemplate = function (e) {\n var _this = this;\n var compiledString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['displayTemplate']);\n if (this.displayTempElement) {\n detach(this.displayTempElement);\n this.displayTempElement = null;\n }\n }\n if (!this.displayTempElement) {\n this.displayTempElement = this.createElement('div');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.displayTempElement.innerHTML = '';\n }\n compiledString = compile(this.displayTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var displayCompTemp = compiledString(this.itemData, this, 'displayTemplate', this.displayTemplateId, this.isStringTemplate, null, this.displayTempElement);\n if (displayCompTemp && displayCompTemp.length > 0) {\n append(displayCompTemp, this.displayTempElement);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.renderTemplates();\n }\n else {\n this.renderTemplates(function () {\n _this.updateMentionValue(e);\n });\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Mention.prototype.renderTemplates = function (callBack) {\n this.renderReactTemplates(callBack);\n };\n Mention.prototype.setSpinnerTemplate = function () {\n var _this = this;\n var compiledString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['spinnerTemplate']);\n if (this.spinnerTemplateElement) {\n detach(this.spinnerTemplateElement);\n this.spinnerTemplateElement = null;\n }\n }\n if (!this.spinnerTemplateElement) {\n this.spinnerTemplateElement = this.createElement('div');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.spinnerTemplateElement.innerHTML = '';\n }\n compiledString = compile(this.spinnerTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var spinnerCompTemp = compiledString(null, this, 'spinnerTemplate', this.spinnerTemplateId, this.isStringTemplate, null, this.spinnerTemplateElement);\n if (spinnerCompTemp && spinnerCompTemp.length > 0) {\n for (var i = 0; i < spinnerCompTemp.length; i++) {\n this.spinnerTemplateElement.appendChild(spinnerCompTemp[i]);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.renderTemplates();\n this.popupObj.element.appendChild(this.spinnerTemplateElement);\n }\n else {\n this.renderTemplates(function () {\n _this.popupObj.element.appendChild(_this.spinnerTemplateElement);\n });\n }\n };\n Mention.prototype.onChangeEvent = function (eve) {\n this.isSelected = false;\n var items = this.detachMentionChanges(this.itemData);\n var preItems;\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 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.item.innerHTML,\n element: this.inputElement\n };\n this.trigger('change', eventArgs);\n };\n Mention.prototype.detachMentionChanges = 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 Mention.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 Mention.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 Mention.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n this.setHover(currentLi);\n };\n Mention.prototype.setHover = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n };\n Mention.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 Mention.prototype.isValidLI = function (li) {\n return (li && li.hasAttribute('role') && li.getAttribute('role') === 'option');\n };\n Mention.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n /**\n * Search the entered text and show it in the suggestion list if available.\n *\n * @returns {void}\n */\n Mention.prototype.search = function (text, positionX, positionY) {\n if (this.isContentEditable(this.inputElement)) {\n this.range = this.getCurrentRange();\n }\n var currentRange = this.getTextRange();\n var lastWordRange = this.getLastLetter(currentRange);\n if ((this.ignoreCase && (text === lastWordRange || text === lastWordRange.toLowerCase()))\n || !this.ignoreCase && text === lastWordRange) {\n this.resetList(this.dataSource, this.fields);\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup();\n }\n return;\n }\n if (isNullOrUndefined(this.list)) {\n this.renderList();\n this.renderPopup();\n }\n else {\n this.showPopup();\n }\n this.popupObj.element.style.left = formatUnit(positionX);\n this.popupObj.element.style.top = formatUnit(positionY);\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 Mention.prototype.destroy = function () {\n this.hidePopup();\n this.unWireEvent();\n if (this.list) {\n this.unWireListEvents();\n }\n if (this.inputElement && !this.inputElement.classList.contains('e-' + this.getModuleName())) {\n return;\n }\n _super.prototype.destroy.call(this);\n };\n Mention.prototype.getLocaleName = function () {\n return 'mention';\n };\n Mention.prototype.getNgDirective = function () {\n return 'EJS-MENTION';\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 Mention.prototype.getModuleName = function () {\n return 'mention';\n };\n __decorate([\n Property(null)\n ], Mention.prototype, \"cssClass\", void 0);\n __decorate([\n Property('@')\n ], Mention.prototype, \"mentionChar\", void 0);\n __decorate([\n Property(false)\n ], Mention.prototype, \"showMentionChar\", void 0);\n __decorate([\n Property(false)\n ], Mention.prototype, \"allowSpaces\", void 0);\n __decorate([\n Property(null)\n ], Mention.prototype, \"suffixText\", void 0);\n __decorate([\n Property(25)\n ], Mention.prototype, \"suggestionCount\", void 0);\n __decorate([\n Property(0)\n ], Mention.prototype, \"minLength\", void 0);\n __decorate([\n Property('None')\n ], Mention.prototype, \"sortOrder\", void 0);\n __decorate([\n Property(true)\n ], Mention.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(false)\n ], Mention.prototype, \"highlight\", void 0);\n __decorate([\n Property()\n ], Mention.prototype, \"locale\", void 0);\n __decorate([\n Property('auto')\n ], Mention.prototype, \"popupWidth\", void 0);\n __decorate([\n Property('300px')\n ], Mention.prototype, \"popupHeight\", void 0);\n __decorate([\n Property(null)\n ], Mention.prototype, \"displayTemplate\", void 0);\n __decorate([\n Property(null)\n ], Mention.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], Mention.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property(null)\n ], Mention.prototype, \"spinnerTemplate\", void 0);\n __decorate([\n Property()\n ], Mention.prototype, \"target\", void 0);\n __decorate([\n Property([])\n ], Mention.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], Mention.prototype, \"query\", void 0);\n __decorate([\n Property('Contains')\n ], Mention.prototype, \"filterType\", void 0);\n __decorate([\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n ], Mention.prototype, \"fields\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"opened\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"closed\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Mention.prototype, \"destroyed\", void 0);\n Mention = __decorate([\n NotifyPropertyChanges\n ], Mention);\n return Mention;\n}(DropDownBase));\nexport { Mention };\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 { Mention } from '@syncfusion/ej2-dropdowns';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * The Mention component contains a list of predefined values, from which the user can choose a single value.\n * ```\n * \n * ```\n */\nvar MentionComponent = /** @class */ (function (_super) {\n __extends(MentionComponent, _super);\n function MentionComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = [\"itemTemplate\"];\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n MentionComponent.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 MentionComponent;\n}(Mention));\nexport { MentionComponent };\napplyMixins(MentionComponent, [ComponentBase, React.Component]);\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!./RT.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!./RT.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { FC, useState, useEffect, useRef } from 'react';\r\nimport { ToolbarSettingsModel, QuickToolbarSettingsModel, RichTextEditorComponent, Toolbar, Inject, Image, HtmlEditor, Count, Link, QuickToolbar, Table, FontColorModel, BackgroundColorModel, FontSizeModel } from '@syncfusion/ej2-react-richtexteditor';\r\nimport styled from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPaperclip } from '@fortawesome/pro-solid-svg-icons';\r\nimport { MentionComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { Query } from '@syncfusion/ej2-data';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport './RT.css';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { Button, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { Avatar } from '../Avatar/Avatar';\r\nimport { ContextMenu } from '../ContextMenu/ContextMenu';\r\nimport { useDropdown } from '../../../tools/hooks';\r\nimport { Attachment } from '../Attachment/Attachment';\r\nimport { EProfileType, ISingleFile } from '../../../entities/IGlobal';\r\nimport { checkAttachmentType } from '../../../tools/attachment';\r\nimport { EHintType, Hint } from '../Hint/Hint';\r\nimport { IState } from '../../../reducers';\r\nimport { IClusterReducer } from '../../../reducers/clustersReducer';\r\nimport { LabelWithEllipsis } from '../Label/Label';\r\nimport { MandatoryFieldStar } from '../MandatoryFieldStar/MandatoryFieldStar';\r\n\r\nconst ButtonBox = styled.div`\r\n display: flex;\r\n background: ${colorStack.whiteGrey};\r\n padding: 1rem 1rem 0 1rem;\r\n justify-content: flex-end;\r\n border-radius: 0 0 6px 6px;\r\n padding: .5rem;\r\n > button {\r\n margin-left: .5rem;\r\n }\r\n`;\r\n\r\nconst UploadFromComputer = styled.div`\r\n overflow: hidden;\r\n position: relative;\r\n color: ${colorStack.content};\r\n font-size: ${fontSize[16]};\r\n padding: .5rem;\r\n font-weight: 500;\r\n width: 100%;\r\n text-align: left;\r\n transition: all .3s;\r\n cursor: pointer;\r\n margin: 0!important;\r\n span {\r\n white-space: nowrap;\r\n }\r\n &:hover {\r\n background: ${colorStack.whiteBlue};\r\n }\r\n input[type=\"file\"] {\r\n cursor: pointer;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n opacity: 0;\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n border: 2px solid ${colorStack.ligthGrey};\r\n border-radius: 8px;\r\n position: relative;\r\n .e-toolbar {\r\n background: ${colorStack.white};\r\n border-radius: 8px;\r\n }\r\n .e-toolbar .e-toolbar-item .e-tbar-btn:hover {\r\n background: ${colorStack.middleBlue};\r\n color: ${colorStack.white};\r\n border-radius: 4px;\r\n }\r\n .e-toolbar .e-toolbar-item .e-tbar-btn:hover .e-icons {\r\n color: ${colorStack.white};\r\n }\r\n .e-richtexteditor, .e-rte-content {\r\n border: none!important;\r\n }\r\n .e-richtexteditor .e-toolbar-wrapper {\r\n overflow: hidden;\r\n border-radius: 8px 8px 0 0;\r\n border-bottom: none;\r\n }\r\n .e-rte-content {\r\n background: ${colorStack.whiteGrey};\r\n border-radius: 8px;\r\n }\r\n .e-richtexteditor .e-rte-toolbar {\r\n border-bottom: none!important;\r\n }\r\n .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-backgroundcolor-dropdown:hover .e-rte-color-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-backgroundcolor-dropdown:hover .e-rte-list-primary-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-fontcolor-dropdown:hover .e-rte-color-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-fontcolor-dropdown:hover .e-rte-list-primary-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-numberformatlist-dropdown:hover .e-rte-color-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-numberformatlist-dropdown:hover .e-rte-list-primary-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-bulletformatlist-dropdown:hover .e-rte-color-content:hover, .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-rte-bulletformatlist-dropdown:hover .e-rte-list-primary-content:hover {\r\n background: ${colorStack.middleBlue};\r\n }\r\n .e-richtexteditor .e-rte-toolbar .e-toolbar-item .e-icons {\r\n color: ${colorStack.darkGrey};\r\n }\r\n .e-toolbar .e-toolbar-items {\r\n background: ${colorStack.white};\r\n }\r\n .e-toolbar .e-toolbar-item .e-tbar-btn {\r\n background: ${colorStack.white};\r\n }\r\n .e-content p {\r\n text-align: left;\r\n font-weight: 400;\r\n color: ${colorStack.content};\r\n }\r\n .e-content ol{\r\n list-style: decimal;\r\n }\r\n .e-content ul{\r\n list-style: disc;\r\n }\r\n .e-content ol, .e-content ul {\r\n padding-left: 3rem;\r\n }\r\n`;\r\n\r\nconst MentionItem = styled.div`\r\n padding: 0.5rem;\r\n border-radius: 4px;\r\n &:hover {\r\n background: ${colorStack.ligthGrey};\r\n }\r\n`;\r\n\r\nconst MentionElem = styled.span`\r\n a {\r\n color: ${colorStack.middleBlue}!important;\r\n font-weight: 600;\r\n }\r\n`;\r\n\r\nconst AttachmentBox = styled.div`\r\n padding: 1rem;\r\n border-top: 2px solid ${colorStack.ligthGrey};\r\n`;\r\n\r\nexport interface IData {\r\n display: string;\r\n id: string;\r\n picture: string;\r\n type: EProfileType;\r\n}\r\n\r\ninterface IProps {\r\n content: string;\r\n label?: string;\r\n required?: boolean;\r\n autofocus?: boolean;\r\n attachmentArray?: (ISingleFile | File)[];\r\n loading?: boolean;\r\n withoutClear?: boolean;\r\n allowEmptyMsg?: boolean;\r\n onChange(data: string);\r\n sendHandler?(plainText: string, newFilesArray: File[], files: ISingleFile[]);\r\n getMention?();\r\n onChangeGetMentionData?(elem: IData);\r\n setAttachmentArray?(files: File[]);\r\n openClusterDocPopup?();\r\n}\r\n\r\nexport const NewRT: FC = props => {\r\n const intl = useIntl();\r\n const { currentClusterData } = useSelector(state => ({ ...state.clusters }));\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown, openDropdown] = useDropdown();\r\n const [plainText, setPlainText] = useState('');\r\n const [attachmentsArray, setAttachmentsArray] = useState([]);\r\n const [currentFilesArray, setCurrentFilesArray] = useState([]);\r\n const [content, setContent] = useState('');\r\n const [fileError, setFileError] = useState(false);\r\n const inputRef = useRef();\r\n const rteObj = useRef(undefined);\r\n\r\n let dataSource = props.getMention?.() || undefined;\r\n\r\n const removeAll = () => {\r\n rteObj.current.updateValue('');\r\n };\r\n\r\n const getHTMLAndText = () => {\r\n props.onChange(rteObj.current.getHtml());\r\n setPlainText(rteObj.current.getText());\r\n };\r\n\r\n useEffect(() => {\r\n if (props.attachmentArray?.length > 0) {\r\n setCurrentFilesArray(props.attachmentArray.filter((elem: ISingleFile) => elem.fileId) as ISingleFile[]);\r\n setAttachmentsArray(props.attachmentArray.filter((elem: ISingleFile) => !elem.fileId) as File[]);\r\n } else {\r\n setCurrentFilesArray([]);\r\n setAttachmentsArray([]);\r\n }\r\n }, [props.attachmentArray]);\r\n\r\n useEffect(() => {\r\n if (props.attachmentArray?.length > 0) {\r\n setCurrentFilesArray(props.attachmentArray.filter((elem: ISingleFile) => elem.fileId) as ISingleFile[]);\r\n setAttachmentsArray(props.attachmentArray.filter((elem: ISingleFile) => !elem.fileId) as File[]);\r\n }\r\n if (props.content) {\r\n setContent(props.content);\r\n }\r\n rteObj?.current.element?.addEventListener('keyup', getHTMLAndText);\r\n rteObj?.current.element?.addEventListener('click', getHTMLAndText);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setContent(props.content);\r\n }, [props.content]);\r\n\r\n useEffect(() => {\r\n if (!props.loading && !props.withoutClear) {\r\n rteObj.current.updateValue('');\r\n }\r\n }, [props.loading]);\r\n\r\n const items = ['Bold', 'Italic', 'Underline', 'StrikeThrough', '|',\r\n 'FontSize', '|', 'Alignments', 'OrderedList', 'UnorderedList', '|', 'FontColor', 'BackgroundColor', {\r\n template: ``,\r\n undo: true,\r\n click: removeAll,\r\n tooltipText: intl.formatMessage({ id: 'global.remove' })\r\n }\r\n ];\r\n\r\n const toolbarSettings: ToolbarSettingsModel = {\r\n items: items\r\n };\r\n\r\n const fontColorSettings: FontColorModel = {\r\n mode: 'Palette',\r\n colorCode: {\r\n 'blue': ['#232C47', '#3C8BF8', '#68A8FF', '#CDE2FE', '#E4F0FF'],\r\n 'green': ['#095107', '#008001', '#53A450', '#97D0A5', '#D4EDD9'],\r\n 'orange': ['#B45917', '#FFB901', '#F3A83B', '#ECD081', '#F2E5C4'],\r\n 'purple': ['#521776', '#9945B7', '#D689F1', '#EFC2FF', '#FCE8FF'],\r\n 'red': ['#CA100E', '#FF0100', '#F18989', '#F5C6CA', '#FFE8EB'],\r\n 'grey': ['#616161', '#858585', '#C5C5C5', '#E0E0E0', '#F5F5F5'],\r\n 'other': ['#242424', '#424242', '#F0F0F0', '#fff', '#000']\r\n }\r\n };\r\n\r\n const backgroundColorSettings: BackgroundColorModel = {\r\n mode: 'Palette',\r\n colorCode: {\r\n 'blue': ['#232C47', '#3C8BF8', '#68A8FF', '#CDE2FE', '#E4F0FF'],\r\n 'green': ['#095107', '#008001', '#53A450', '#97D0A5', '#D4EDD9'],\r\n 'orange': ['#B45917', '#FFB901', '#F3A83B', '#ECD081', '#F2E5C4'],\r\n 'purple': ['#521776', '#9945B7', '#D689F1', '#EFC2FF', '#FCE8FF'],\r\n 'red': ['#CA100E', '#FF0100', '#F18989', '#F5C6CA', '#FFE8EB'],\r\n 'grey': ['#616161', '#858585', '#C5C5C5', '#E0E0E0', '#F5F5F5'],\r\n 'other': ['#242424', '#424242', '#F0F0F0', '#fff', '#000']\r\n }\r\n };\r\n\r\n const fontSizeSettings: FontSizeModel = {\r\n width: '40px',\r\n default: fontSize[16],\r\n items: [\r\n { text: '10', value: fontSize[10] },\r\n { text: '13', value: fontSize[13] },\r\n { text: '16', value: fontSize[16] },\r\n { text: '20', value: fontSize[20] },\r\n { text: '25', value: fontSize[25] },\r\n { text: '31', value: fontSize[31] },\r\n { text: '39', value: fontSize[39] },\r\n { text: '49', value: fontSize[49] },\r\n { text: '61', value: fontSize[61] },\r\n { text: '76', value: fontSize[76] },\r\n { text: '95', value: fontSize[95] }\r\n ]\r\n };\r\n\r\n const quickToolbarSettings: QuickToolbarSettingsModel = {\r\n table: ['TableHeader', 'TableRows', 'TableColumns', 'TableCell', '-', 'BackgroundColor', 'TableRemove', 'TableCellVerticalAlign', 'Styles']\r\n };\r\n\r\n const sendHandler = () => {\r\n props.sendHandler(rteObj.current.getText(), attachmentsArray, currentFilesArray);\r\n if (!props.withoutClear) {\r\n removeAll();\r\n setPlainText(rteObj.current.getText());\r\n setContent('');\r\n }\r\n };\r\n\r\n let fieldsData = { text: 'display' };\r\n\r\n const noRecordsTemplate = `
    ${intl.formatMessage({ id: 'global.noRecord' })}
    `;\r\n\r\n const itemTemplate = (data: IData) => {\r\n const getMentionData = () => {\r\n if (props.onChangeGetMentionData) {\r\n props.onChangeGetMentionData(data);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const displayTemplate = (data: IData) => {\r\n return (\r\n \r\n {data.type !== EProfileType.Cluster ? (\r\n {data.display}\r\n ) : (\r\n {data.display}\r\n )\r\n }\r\n \r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (props.autofocus && rteObj.current) {\r\n setTimeout(() => {\r\n const elementToAutoFocus: any = rteObj.current?.element.querySelector('.e-content');\r\n elementToAutoFocus?.focus();\r\n }, 1000);\r\n }\r\n }, []);\r\n\r\n const addAttachment = (e: React.ChangeEvent) => {\r\n const targetFiles = e.target.files;\r\n let arrayFiles = [];\r\n for (let i = 0; i < targetFiles.length; i++) {\r\n const attachType = checkAttachmentType(targetFiles[i].name.split('.')[targetFiles[i].name.split('.').length - 1], 'cluster');\r\n if (attachType.isValid) {\r\n arrayFiles.push(targetFiles[i]);\r\n setFileError(false);\r\n } else {\r\n setFileError(true);\r\n }\r\n }\r\n setAttachmentsArray(state => state ? [...state, ...arrayFiles] : arrayFiles);\r\n props.setAttachmentArray?.(props.attachmentArray ? [...props.attachmentArray, ...arrayFiles] : arrayFiles);\r\n toggleDropdown();\r\n getHTMLAndText();\r\n };\r\n\r\n const removeAttachment = (index: number, existing: boolean) => {\r\n if (existing) {\r\n setCurrentFilesArray(state => state.filter((attachment, i) => i !== index));\r\n } else {\r\n setAttachmentsArray(state => state.filter((attachment, i) => i !== index));\r\n props.setAttachmentArray?.(props.attachmentArray.filter((attachment, i) => i !== index) as File[]);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {props.label &&\r\n \r\n {props.label}\r\n {props.required &&\r\n \r\n }\r\n \r\n }\r\n \r\n props.onChange(data.value)}\r\n fontSize={fontSizeSettings}\r\n showTooltip={false}\r\n fontColor={fontColorSettings}\r\n height={220}\r\n value={content}\r\n backgroundColor={backgroundColorSettings}\r\n toolbarSettings={toolbarSettings}\r\n quickToolbarSettings={quickToolbarSettings}\r\n >\r\n \r\n
    \r\n {(props.sendHandler || props.setAttachmentArray || props.openClusterDocPopup) &&\r\n \r\n {(props.setAttachmentArray || props.openClusterDocPopup) &&\r\n \r\n \r\n {dropdownOpen &&\r\n ,\r\n customRender: \r\n \r\n { event.currentTarget.value = undefined; }}\r\n />\r\n ,\r\n visible: true\r\n }, {\r\n name: ,\r\n action: props.openClusterDocPopup,\r\n visible: !!props.openClusterDocPopup\r\n }]}\r\n openFromRight\r\n />\r\n }\r\n \r\n }\r\n {props.sendHandler &&\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n {props.getMention &&\r\n \r\n }\r\n {(currentFilesArray?.length > 0 || attachmentsArray?.length > 0) &&\r\n \r\n {(currentFilesArray ? [...currentFilesArray, ...attachmentsArray] : attachmentsArray).map((attachment, index) =>\r\n <>\r\n {attachment.name &&\r\n removeAttachment(index, !!(attachment as ISingleFile).fileId)}\r\n />\r\n }\r\n \r\n )}\r\n \r\n }\r\n \r\n {fileError &&\r\n \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\n\r\nconst Wrapper = styled.div`\r\n font-size: ${fontSize[16]};\r\n line-height: 1;\r\n p {\r\n text-align: left;\r\n font-weight: 400;\r\n font-size: inherit;\r\n line-height: 1;\r\n color: ${colorStack.content};\r\n word-wrap: break-word;\r\n }\r\n ol, ul {\r\n padding-left: 3rem;\r\n font-size: inherit;\r\n line-height: 1;\r\n }\r\n ol {\r\n list-style: decimal;\r\n font-size: inherit;\r\n line-height: 1;\r\n }\r\n ul {\r\n list-style: disc;\r\n font-size: inherit;\r\n line-height: 1;\r\n }\r\n span {\r\n font-size: inherit;\r\n line-height: 1;\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n content: string;\r\n}\r\n\r\nexport const NewRtView: FC = props => {\r\n return (\r\n \r\n );\r\n};","import React, { Component, RefObject, createRef, Children, PropsWithChildren, ReactNode } from 'react';\r\nimport Scrollbars, { positionValues, ScrollbarProps } from 'react-custom-scrollbars';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { Loader } from '../../../components/Common/Loader/Loader';\r\n\r\ninterface ICustomScrollWrapper {\r\n height?: string;\r\n}\r\n\r\nexport const MessagesWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n flex: 1;\r\n`;\r\n\r\nexport const CustomScrollWrapper = styled.div`\r\n height: ${(props: ICustomScrollWrapper) => props.height || '100%'};\r\n overflow: auto;\r\n\r\n .ms-Spinner {\r\n margin: 1rem 0;\r\n }\r\n`;\r\n\r\nconst CustomScrollbars = styled(Scrollbars) <{ $hideScrollbar?: boolean, $noRightMargin?: boolean }>`\r\n width: 99%!important;\r\n :first-child {\r\n right: -5px;\r\n }\r\n ${props => props.$noRightMargin && css`\r\n >div:first-child {\r\n margin-right: 0 !important;\r\n }\r\n `}\r\n ${props => props.$hideScrollbar && css`\r\n >div:last-child {\r\n display: none\r\n }\r\n `}\r\n`;\r\n\r\ninterface IScrollBoxProps {\r\n hasMore: boolean;\r\n autoHide?: boolean;\r\n loadingLabel?: ReactNode;\r\n heigth?: string;\r\n isReverse?: boolean;\r\n pageStart?: number;\r\n innerRef?: React.RefObject;\r\n additionalBottomElement?: ReactNode;\r\n additionalTopElement?: ReactNode;\r\n className?: string;\r\n withoutChildrenCount?: boolean;\r\n hideScrollbar?: boolean;\r\n resetPage?: boolean;\r\n noRightMargin?: boolean;\r\n children?: ReactNode;\r\n onScrollResults(page: number): void;\r\n getRef?(scrollRef: Scrollbars): void;\r\n hideBreadcrumbs?(hideBreadcrumbs: boolean);\r\n}\r\n\r\ninterface IScrollBoxState {\r\n page: number;\r\n lastPage: number;\r\n}\r\n\r\ntype IProps = ScrollbarProps & IScrollBoxProps;\r\n\r\nexport default class ScrollBox extends Component {\r\n topRef: RefObject = createRef();\r\n bottomRef: RefObject = createRef();\r\n rootRef: RefObject = createRef();\r\n observer: IntersectionObserver;\r\n\r\n constructor(props: IScrollBoxProps) {\r\n super(props);\r\n const initialPage = props.pageStart || 0;\r\n\r\n this.state = {\r\n page: initialPage,\r\n lastPage: initialPage - 1\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.observer = new IntersectionObserver(this.handleObserver, {\r\n root: this.rootRef.current,\r\n rootMargin: '0px',\r\n threshold: 0\r\n });\r\n\r\n this.observer.observe(this.props.isReverse ? this.topRef.current : this.bottomRef.current);\r\n }\r\n\r\n componentDidUpdate(prevProps: PropsWithChildren) {\r\n const { withoutChildrenCount, resetPage, children } = this.props;\r\n\r\n if (!withoutChildrenCount && (Children.count(prevProps.children) < Children.count(children))) {\r\n this.setState(currentState => ({ page: currentState.page + 1 }));\r\n }\r\n\r\n if (withoutChildrenCount && resetPage && this.state.page > 0) {\r\n this.setState({\r\n page: 0,\r\n lastPage: -1\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.observer.disconnect();\r\n }\r\n\r\n handleObserver = (entries: IntersectionObserverEntry[]) => {\r\n const { onScrollResults, withoutChildrenCount, hasMore, resetPage } = this.props;\r\n const { page, lastPage } = this.state;\r\n\r\n if (!withoutChildrenCount && entries[0].isIntersecting && lastPage < page) {\r\n this.setState(currentState => ({\r\n lastPage: currentState.page\r\n }), () => {\r\n onScrollResults(page + 1);\r\n });\r\n } else if (entries[0].isIntersecting && withoutChildrenCount && hasMore && !resetPage) {\r\n this.setState(currentState => ({\r\n page: currentState.page + 1\r\n }), () => {\r\n onScrollResults(page + 1);\r\n });\r\n }\r\n }\r\n\r\n assigneRef = (ref: Scrollbars) => {\r\n const { getRef } = this.props;\r\n !!getRef && getRef(ref);\r\n }\r\n\r\n moveBreadcrumbs = (frame: positionValues) => {\r\n this.props.hideBreadcrumbs(!!frame.scrollTop);\r\n }\r\n\r\n render() {\r\n const { children, hasMore, loadingLabel, heigth, isReverse, additionalBottomElement, additionalTopElement, autoHide, innerRef, className, hideScrollbar, noRightMargin, onScroll } = this.props;\r\n return (\r\n \r\n \r\n \r\n
    \r\n {hasMore && isReverse && (\r\n \r\n )}\r\n
    \r\n {additionalTopElement}\r\n {children}\r\n {additionalBottomElement}\r\n
    \r\n {hasMore && !isReverse && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { useDispatch } from 'react-redux';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { getReferentials } from '../../../actions/globalActions';\r\nimport { EContextList, EReferentials } from '../../../entities/IGlobal';\r\nimport { IValue } from '../../../entities/IPickers';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { cardsShadow } from '../../../styleHelpers/mixins/shadow';\r\nimport { TextComponent } from '../Inputs/TextComponent';\r\nimport { NoData } from '../NoData/NoData';\r\nimport { ESpinnerSize, Spinner } from '../Spinner/Spinner';\r\n\r\ntype GetReferentials = ReturnType;\r\n\r\nconst OptionsWrapper = styled.div<{documentHeightUnderElement: number}>`\r\n ${cardsShadow()};\r\n border-radius: 4px;\r\n background: ${colorStack.white};\r\n padding: 0.5rem;\r\n overflow: hidden;\r\n position: absolute;\r\n width: 100%;\r\n z-index: 99;\r\n margin: 3px 0 0 0;\r\n ${props => props.documentHeightUnderElement < 195 && css`\r\n bottom: 100%;\r\n `}\r\n ${props => !props.documentHeightUnderElement && css`\r\n display: none;\r\n `}\r\n`;\r\n\r\nconst LoadingBox = styled.div`\r\n margin: 1rem 0;\r\n`;\r\n\r\nconst ScrollBarsWrapper = styled.div<{ height: number }>`\r\n max-height: 130px;\r\n height: 42px;\r\n ${props => props.height > 0 && css`\r\n height: ${`${props.height}px`};\r\n `}\r\n margin: 1rem 0 0 0;\r\n`;\r\n\r\nconst OptionsResults = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst SingleOption = styled.button`\r\n height: 42px;\r\n display: flex;\r\n align-items: center;\r\n background-color: ${colorStack.white};\r\n transition: background-color .3s;\r\n cursor: pointer;\r\n border: none;\r\n padding: 0 .5rem;\r\n &:hover {\r\n background-color: ${colorStack.ligthGrey};\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n loading?: boolean;\r\n options?: IValue[];\r\n refsOptions?: {\r\n context: EContextList;\r\n type: EReferentials;\r\n }\r\n value?: IValue[];\r\n onChange(item: IValue);\r\n}\r\n\r\nconst heightOfSingleOption = 42;\r\n\r\nexport const SearchMenu = (props: IProps) => {\r\n const dispatch = useDispatch();\r\n const searchMenuRef = useRef(undefined);\r\n const [searchValue, setSearchValue] = useState('');\r\n const [options, setOptions] = useState([]);\r\n const [documentHeightUnderElement, setDocumentHeightUnderElement] = useState(undefined);\r\n\r\n useEffect(() => {\r\n const element = searchMenuRef?.current?.parentNode as HTMLDivElement;\r\n const elementRect = element?.getBoundingClientRect();\r\n const elementHeight = elementRect?.height;\r\n const elementOffsetTop = elementRect?.top + window.scrollY;\r\n setDocumentHeightUnderElement(Math.max(document.documentElement.scrollHeight, document.body.scrollHeight) - (elementOffsetTop + elementHeight));\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (props.refsOptions) {\r\n dispatch(getReferentials('', props.refsOptions.type, props.refsOptions.context)).then(ref => {\r\n setOptions(ref.map(elem => ({\r\n key: elem.id,\r\n text: elem.name,\r\n data: elem\r\n })));\r\n });\r\n } else {\r\n setOptions(props.options);\r\n }\r\n }, [props.options]);\r\n\r\n const changeSearchValue = useCallback((e: React.ChangeEvent) => {\r\n const text = e.target.value;\r\n setSearchValue(text);\r\n }, []);\r\n\r\n const filteredOptions = useMemo(() => options?.filter(singleOption => props.value ? !props.value?.map(el => el.key).includes(singleOption.key) : singleOption).filter(elem => elem.text.toLowerCase().includes(searchValue.toLowerCase())), [options, props.value, searchValue]);\r\n\r\n return (\r\n \r\n \r\n {props.loading ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {filteredOptions?.length > 0 ? (filteredOptions.map((option, i, arr) =>\r\n props.onChange(option)}>{option.text})) : \r\n }\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};","import React, { FC, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { Field } from 'formik';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { cardsShadow, headersShadow } from '../../../styleHelpers/mixins/shadow';\r\n\r\nconst Card = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n user-select: none;\r\n overflow: hidden;\r\n transition: all .2s;\r\n position: relative;\r\n span {\r\n margin-top: 30px;\r\n }\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst CardContainer = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: inherit;\r\n`;\r\n\r\nconst LabelWrapper = styled.div`\r\n height: 100%;\r\n label {\r\n height: inherit;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst Wrapper = styled.div<{ maxSize?: number }>`\r\n width: 48%;\r\n max-width: 300px;\r\n border-radius: 8px;\r\n ${headersShadow()};\r\n background: ${colorStack.white};\r\n transition: all .3s;\r\n &:hover {\r\n ${cardsShadow()};\r\n }\r\n ${(props) =>\r\n props.maxSize &&\r\n css`\r\n max-width:${`${props.maxSize}px`};\r\n `}\r\n input[type=\"radio\"] {\r\n display: none;\r\n }\r\n input:checked + ${CardContainer} {\r\n &:after {\r\n content: '';\r\n border: 3px solid ${colorStack.middleBlue};\r\n height: inherit;\r\n width: 300px;\r\n ${(props) =>\r\n props.maxSize &&\r\n css`\r\n width:${`${props.maxSize}px`};\r\n `}\r\n position: absolute;\r\n top: 0;\r\n left: -3px;\r\n border-radius: 7px;\r\n }\r\n }\r\n\r\n input:checked + ${CardContainer} ${Card} {\r\n &:before {\r\n content: \"✔\";\r\n position: absolute;\r\n width: 0px;\r\n right: 22px;\r\n top: 5px;\r\n color: white;\r\n z-index: 1;\r\n }\r\n &:after {\r\n content: \"\";\r\n width: 0px;\r\n height: 0px;\r\n position: absolute;\r\n border-left: 25px solid ${colorStack.middleBlue};\r\n border-right: 25px solid transparent;\r\n border-top: 25px solid ${colorStack.middleBlue};\r\n border-bottom: 25px solid transparent;\r\n right: 0px;\r\n top: 0px;\r\n transform: rotate(90deg);\r\n }\r\n }\r\n\r\n`;\r\n\r\nconst Image = styled.div<{ src: string }>`\r\n ${props => props.src && css`\r\n background-image: url(${props.src});\r\n `}\r\n border-radius: 4px 4px 0 0;\r\n width: 100%;\r\n background-size: cover;\r\n height: 136px;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n`;\r\n\r\nconst Title = styled.div`\r\n color: ${colorStack.content};\r\n font-size: ${fontSize[25]};\r\n margin: 2rem 2rem 1rem 2rem;\r\n`;\r\n\r\nconst Description = styled.div`\r\n color: ${colorStack.content};\r\n font-size: ${fontSize[16]};\r\n margin: 0 2rem 1rem 2rem;\r\n`;\r\n\r\ninterface IProps {\r\n field: string;\r\n value: string;\r\n imageKey: string;\r\n name: string;\r\n description: string;\r\n maxSize?: number;\r\n testingDataAttr?: string;\r\n}\r\n\r\nexport const SelectCard: FC = props => {\r\n\r\n const checkImage = useCallback(path => {\r\n try {\r\n const img = require(`../../../../wwwroot/assets/images/wizardCard/${path}.png`);\r\n return img;\r\n } catch (e) {\r\n return false;\r\n }\r\n }, [props.imageKey]);\r\n\r\n return (\r\n <>\r\n {checkImage(props.imageKey) &&\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};","import { Dropdown, IDropdownProps } from '@fluentui/react';\r\nimport { faCaretDown } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { FC } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize, fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport { newDesignBoxShadowString } from '../../../styleHelpers/mixins/shadow';\r\nimport { EHintType, Hint } from '../Hint/Hint';\r\nimport { LabelWithEllipsis } from '../Label/Label';\r\nimport { MandatoryFieldStar } from '../MandatoryFieldStar/MandatoryFieldStar';\r\n\r\nconst Wrapper = styled.div<{ disabled?: boolean; $width?: number | 'auto'; error: boolean }>`\r\n position: relative;\r\n ${props =>\r\n props.$width && typeof props.$width === 'number'\r\n ? css`\r\n width: ${`${props.$width}px`};\r\n `\r\n : css`\r\n width: auto;\r\n `}\r\n > div {\r\n width: 100%;\r\n }\r\n .custom-input {\r\n max-width: 100%;\r\n > span {\r\n border: none;\r\n }\r\n }\r\n .ms-Dropdown {\r\n &:focus::after {\r\n border: none;\r\n }\r\n &:hover::after {\r\n border: none;\r\n }\r\n &:active::after {\r\n border: none;\r\n }\r\n &.is-open {\r\n .ms-Dropdown-caretDownWrapper {\r\n transform: rotate(180deg);\r\n };\r\n .ms-Dropdown-title {\r\n border: 2px solid ${colorStack.middleBlue} !important;\r\n }\r\n }\r\n }\r\n .ms-Dropdown .ms-Dropdown-title {\r\n ${fontSizeAndHeight[16]};\r\n font-weight: 400;\r\n color: ${colorStack.content};\r\n height: 40px;\r\n outline: none;\r\n font-weight: 400;\r\n transition: all .3s;\r\n border: 2px solid ${colorStack.ligthGrey} !important;\r\n ${({ error }) => error && css`\r\n border: 2px solid ${colorStack.middleRed} !important;\r\n `}\r\n &.ms-Dropdown-titleIsPlaceHolder {\r\n font-size: 1rem!important;\r\n color: ${colorStack.content};\r\n font-family: 'Roboto', sans-serif;\r\n }\r\n\r\n }\r\n .ms-Dropdown-title {\r\n border-radius: 8px;\r\n &:hover {\r\n border: 2px solid ${colorStack.middleBlue} !important;\r\n border-radius: 8px !important;\r\n }\r\n &:focus {\r\n border: 2px solid ${colorStack.middleBlue} !important;\r\n border-radius: 8px !important;\r\n }\r\n &:active {\r\n border: 2px solid ${colorStack.middleBlue} !important;\r\n border-radius: 8px !important;\r\n }\r\n ${({ error }) => error && css`\r\n &:hover {\r\n border: 2px solid ${colorStack.middleRed} !important;\r\n }\r\n &:focus {\r\n border: 2px solid ${colorStack.middleRed} !important;\r\n }\r\n &:active {\r\n border: 2px solid ${colorStack.middleRed} !important;\r\n }\r\n `};\r\n }\r\n .ms-Dropdown-caretDownWrapper {\r\n right: 1rem;\r\n svg {\r\n color: ${colorStack.darkGrey};\r\n }\r\n }\r\n ${props =>\r\n props.disabled &&\r\n css`\r\n .ms-Dropdown .ms-Dropdown-title {\r\n background: ${colorStack.whiteGrey};\r\n color: ${colorStack.disabled};\r\n &:hover {\r\n border: 2px solid ${colorStack.ligthGrey} !important;\r\n }\r\n &:focus {\r\n border: 2px solid ${colorStack.ligthGrey} !important;\r\n }\r\n &:active {\r\n border: 2px solid ${colorStack.ligthGrey} !important;\r\n }\r\n }\r\n `}\r\n`;\r\n\r\nexport type ISelectInputProps = IDropdownProps & {\r\n inputLabel?: React.ReactNode;\r\n required?: boolean;\r\n defaultSelect?: boolean;\r\n tooltipMsg?: string;\r\n tooltipTitle?: string;\r\n};\r\n\r\nexport const SelectInput: FC = props => {\r\n const intl = useIntl();\r\n return (\r\n \r\n {props.inputLabel && (\r\n \r\n {props.inputLabel}\r\n {props.required && }\r\n \r\n )}\r\n }\r\n styles={{\r\n dropdownItemSelected: {\r\n background: colorStack.lightBlue,\r\n fontSize: fontSize[16],\r\n padding: '9px 16px',\r\n minHeight: '46px',\r\n fontFamily: `'Roboto'!important`,\r\n fontWeight: '500',\r\n selectors: {\r\n ':focus': {\r\n background: colorStack.whiteBlue\r\n }\r\n }\r\n },\r\n dropdownItem: {\r\n color: colorStack.content,\r\n fontSize: fontSize[16],\r\n padding: '9px 16px',\r\n minHeight: '46px',\r\n fontWeight: '400',\r\n fontFamily: `'Roboto'!important`,\r\n selectors: {\r\n ':focus': {\r\n background: colorStack.whiteBlue\r\n }\r\n }\r\n },\r\n callout: {\r\n borderRadius: '8px',\r\n border: 'none',\r\n boxShadow: newDesignBoxShadowString(),\r\n overflow: 'hidden',\r\n margin: '3px 0 0 0',\r\n maxHeight: '200px!important'\r\n },\r\n title: {\r\n fontFamily: `'Roboto'!important`,\r\n lineHeight: '38px!important',\r\n height: '40px!important',\r\n fontWeight: '400'\r\n },\r\n caretDownWrapper: { height: '40px', lineHeight: '38px' },\r\n caretDown: { color: colorStack.darkGrey, fontSize: fontSize[16] }\r\n }}\r\n />\r\n {props.errorMessage && (\r\n <>\r\n {props.errorMessage}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { spinner } from '../../../styleHelpers/global/keyframes';\r\n\r\nexport enum ESpinnerSize {\r\n BUTTONSIZE = 'BUTTONSIZE',\r\n XSMALL = 'XSMALL',\r\n SMALL = 'SMALL',\r\n MEDIUM = 'MEDIUM',\r\n LARGE = 'LARGE'\r\n}\r\n\r\ninterface CssProps {\r\n size: number;\r\n}\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\nconst Circle = styled.div`\r\n box-sizing: border-box;\r\n animation-name: ${spinner};\r\n animation-duration: 1.3s;\r\n animation-iteration-count: infinite;\r\n animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67);\r\n width: ${props => `calc(${props.size} * 12px)`};\r\n height: ${props => `calc(${props.size} * 12px)`};\r\n border-radius: 50%;\r\n border-width: ${props => `calc(${props.size} * 0.5px)`};\r\n border-style: solid;\r\n border-color: ${colorStack.darkBlue} ${colorStack.whiteBlue} ${colorStack.whiteBlue};\r\n border-image: initial;\r\n`;\r\n\r\nconst Label = styled.span`\r\n color: ${colorStack.darkBlue};\r\n margin: 5px 0 0 0;\r\n font-size: ${props => `${props.size}rem`};\r\n`;\r\n\r\nconst sizeNum = {\r\n BUTTONSIZE: 0.684,\r\n XSMALL: 0.684,\r\n SMALL: 1,\r\n MEDIUM: 1.322,\r\n LARGE: 1.322\r\n};\r\n\r\ninterface ISpinnerProps {\r\n className?: string;\r\n label?: string | React.ReactNode;\r\n size: ESpinnerSize;\r\n}\r\n\r\nexport const Spinner: FC = ({ label, size, className }) => (\r\n \r\n \r\n {label &&\r\n \r\n }\r\n \r\n);\r\n","import React, { Fragment, ReactNode } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { faPlus } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { cardsShadow } from '../../../styleHelpers/mixins/shadow';\r\nimport { Button, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { Delete } from '../Icons';\r\n\r\nconst Wrapper = styled.div`\r\n & > button {\r\n align-items: center;\r\n }\r\n`;\r\n\r\nconst List = styled.ul`\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n`;\r\n\r\nconst ListItem = styled.li<{ editMode?: boolean }>`\r\n border-radius: 8px;\r\n position: relative;\r\n padding: 1rem ${fontSize[25]};\r\n\r\n & > svg {\r\n display: none;\r\n }\r\n\r\n ${({ editMode }) => editMode && css`\r\n &:focus,\r\n &:hover {\r\n background-color: ${colorStack.whiteGrey};\r\n\r\n & > svg {\r\n display: block;\r\n }\r\n }\r\n `}\r\n`;\r\n\r\nconst RemoveItemButton = styled(Delete)`\r\n position: absolute;\r\n cursor: pointer;\r\n right: -10px;\r\n top: -10px;\r\n`;\r\n\r\nconst Separator = styled.div`\r\n height: 1px;\r\n margin: 10px 1rem;\r\n background-color: ${colorStack.ligthGrey};\r\n`;\r\n\r\nconst AddNewIconWrapper = styled.div`\r\n width: 32px;\r\n height: 32px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-right: 20px;\r\n border-radius: 16px;\r\n flex-shrink: 0;\r\n ${cardsShadow()};\r\n\r\n svg {\r\n fill: ${colorStack.middleBlue};\r\n stroke: ${colorStack.middleBlue};\r\n }\r\n`;\r\n\r\ninterface ISpliceList {\r\n items: T[];\r\n addButtonText: ReactNode;\r\n disabled?: boolean;\r\n editMode: boolean;\r\n itemRenderer(item: T, index: number): ReactNode;\r\n onAddItem(): void;\r\n onRemoveItem(id: T['id'], index: number): void;\r\n}\r\n\r\nexport const SpliceList = (props: ISpliceList) => {\r\n const items = (props.items || []).map((item, index) => (\r\n \r\n \r\n {props.itemRenderer(item, index)}\r\n {props.editMode && !props.disabled && props.onRemoveItem(item.id, index)} width={20} />}\r\n \r\n {(props.editMode || (index < (props.items.length - 1))) && }\r\n \r\n ));\r\n\r\n return (\r\n \r\n {items}\r\n {props.editMode && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport { useIntl } from 'react-intl';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { AllStatusEnums } from '../../../entities/IGlobal';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { getStatusColor, getStatusText } from '../../../tools/statusHelper';\r\n\r\nconst Dot = styled.div<{ color: string, size: number }>`\r\n width: 0.5rem;\r\n height: 0.5rem;\r\n border-radius: 100%;\r\n margin-right: 0.5rem;\r\n background: ${props => props.color || colorStack.white};\r\n ${props => props.size && css`\r\n width: ${props.size}px;\r\n height: ${props.size}px;\r\n `};\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nconst Name = styled.span<{color: string}>`\r\n color: ${props => props.color || colorStack.content};\r\n width: calc(100% - 1.5rem);\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n`;\r\n\r\ninterface IStatusDotProps {\r\n status: AllStatusEnums;\r\n size?: number;\r\n extended?: boolean;\r\n}\r\n\r\nexport const StatusDot: FC = props => {\r\n const intl = useIntl();\r\n return (\r\n \r\n \r\n {props.extended &&\r\n {getStatusText(props.status, intl)}\r\n }\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\n\r\nconst SWrapper = styled.div<{ active: boolean, noPadding?: boolean }>`\r\n flex-direction: column;\r\n padding: 1rem;\r\n display: none;\r\n ${props => props.active && css`\r\n display: flex;\r\n `}\r\n ${props => props.noPadding && css`\r\n padding: 0;\r\n `}\r\n`;\r\n\r\nconst SHeader = styled.div<{ active: boolean }>`\r\n display: flex;\r\n flex-direction: column;\r\n color: ${colorStack.darkBlue};\r\n margin-bottom: 1rem;\r\n div {\r\n color: ${colorStack.content};\r\n &:nth-child(2) {\r\n margin-top: 10px;\r\n color: ${colorStack.darkBlue};\r\n font-size: ${fontSize[20]};\r\n font-weight: 400;\r\n margin-bottom: 20px;\r\n }\r\n }\r\n`;\r\n\r\nconst SContent = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n`;\r\n\r\ninterface IProps {\r\n data: {\r\n title: string;\r\n name?: string;\r\n };\r\n isActive: boolean;\r\n noPadding?: boolean;\r\n}\r\n\r\nexport const SingleStep: FC = props => {\r\n return (\r\n \r\n {props.isActive && (\r\n <>\r\n {(props.data.name || props.data.title) &&\r\n \r\n {props.data?.name &&\r\n
    \r\n {props.data?.name}\r\n
    \r\n }\r\n {props.data?.title &&\r\n
    \r\n {props.data?.title}\r\n
    \r\n }\r\n
    \r\n }\r\n \r\n {props.children}\r\n \r\n \r\n )}\r\n
    \r\n );\r\n};","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\n\r\nexport enum EProgressBarSize {\r\n SMALL = 'SMALL',\r\n MEDIUM = 'MEDIUM'\r\n}\r\n\r\nexport enum EProgressBarColorTheme {\r\n ACTIVE = 'ACTIVE',\r\n DISABLED = 'DISABLED',\r\n GREEN = 'GREEN',\r\n RED = 'RED',\r\n ORANGE = 'ORANGE'\r\n}\r\n\r\nconst Wrapper = styled.div`\r\n border-radius: 4px;\r\n height: 8px;\r\n width: 100%;\r\n background: ${colorStack.ligthGrey};\r\n overflow: hidden;\r\n display: flex;\r\n align-items: center;\r\n margin: .3rem 0 0 0;\r\n ${props => props.size === EProgressBarSize.MEDIUM && css`\r\n height: 16px;\r\n `};\r\n &:before {\r\n content: '';\r\n display: block;\r\n background: ${colorStack.middleBlue};\r\n border-radius: 4px;\r\n height: 8px;\r\n width: 100%;\r\n position: relative;\r\n transition: right .3s;\r\n ${props => props.size === EProgressBarSize.MEDIUM && css`\r\n height: 16px;\r\n `};\r\n ${props => props.percent && css`\r\n right: ${`calc(100% - ${props.percent}%)`};\r\n `}\r\n ${props => props.themeColor === EProgressBarColorTheme.DISABLED && css`\r\n background: ${colorStack.disabled};\r\n `};\r\n ${props => props.themeColor === EProgressBarColorTheme.GREEN && css`\r\n background: ${colorStack.middleGreen};\r\n `};\r\n ${props => props.themeColor === EProgressBarColorTheme.RED && css`\r\n background: ${colorStack.middleRed};\r\n `};\r\n ${props => props.themeColor === EProgressBarColorTheme.ORANGE && css`\r\n background: ${colorStack.middleOrange};\r\n `};\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n size?: EProgressBarSize;\r\n themeColor?: EProgressBarColorTheme;\r\n percent: number;\r\n}\r\n\r\nexport const ProgressBar: FC = props => {\r\n return (\r\n \r\n );\r\n};","import React, { useCallback, useState, useEffect, FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { FormattedMessage, useIntl } from 'react-intl';\r\nimport Scrollbars from 'react-custom-scrollbars';\r\nimport { rgba } from 'polished';\r\nimport { faEllipsisH } from '@fortawesome/pro-regular-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faXmark } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { useDropdown } from '../../../tools/hooks';\r\nimport { useEscKey } from '../../../tools/keyboardTools';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize, fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\nimport boxShadow, { modalsShadow } from '../../../styleHelpers/mixins/shadow';\r\nimport { Button, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { EPopupSizes } from '../../../entities/IGlobal';\r\nimport { SingleStep } from './SingleStep';\r\nimport { ETemplateTypes } from '../../../entities/IClusters';\r\nimport { ProgressBar } from '../ProgressBar/ProgressBar';\r\n\r\nconst SWrapper = styled.div`\r\n position: fixed;\r\n width: 100%;\r\n height: 100%;\r\n background: ${rgba(colorStack.label, .75)};\r\n top: 0;\r\n left: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 99999;\r\n ${modalsShadow()};\r\n`;\r\n\r\nconst RightMenuWrapper = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst SWrapperInner = styled.div<{ size: EPopupSizes }>`\r\n background: ${colorStack.white};\r\n font-family: 'Roboto', sans-serif;\r\n letter-spacing: 0.5px;\r\n border-radius: 8px;\r\n ${boxShadow()};\r\n max-width: 100%;\r\n ${props => props.size === EPopupSizes.SMALL && css`\r\n width: auto;\r\n max-width: 700px;\r\n `}\r\n ${props => props.size === EPopupSizes.SMALL && css`\r\n width: 700px;\r\n `}\r\n ${props => props.size === EPopupSizes.MEDIUM && css`\r\n width: 768px;\r\n `}\r\n ${props => props.size === EPopupSizes.BIG && css`\r\n width: 1024px;\r\n `}\r\n ${props => props.size === EPopupSizes.MONSTER && css`\r\n width: 1200px;\r\n `}\r\n`;\r\n\r\nconst ContextMenuWrapper = styled.div`\r\n position: relative;\r\n > svg {\r\n color: ${colorStack.middleBlue};\r\n margin: 0 1rem 0 0;\r\n font-size: ${fontSize[20]};\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst SHeader = styled.div`\r\n padding: 1.5rem;\r\n border-radius: 8px 8px 0 0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n background: ${colorStack.whiteGrey};\r\n svg {\r\n fill: ${colorStack.disabled};\r\n &:hover{\r\n fill: ${colorStack.red}\r\n }\r\n }\r\n`;\r\nconst STitle = styled.div`\r\n font-weight: 700;\r\n color: ${colorStack.content};\r\n ${fontSizeAndHeight[20]};\r\n`;\r\nconst SClosePopup = styled.div`\r\n cursor: pointer;\r\n svg {\r\n font-size: 24px;\r\n }\r\n`;\r\n\r\nconst SContent = styled.div`\r\n padding: .5rem;\r\n`;\r\n\r\nconst SpinnerWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\nconst SFooter = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 1.5rem;\r\n border-radius: 0 0 8px 8px;\r\n`;\r\nconst SSteps = styled.div`\r\n width:55%;\r\n ${fontSizeAndHeight[16]};\r\n color: ${colorStack.content};\r\n span {\r\n margin-left: 24px;\r\n ${fontSizeAndHeight[13]};\r\n color: ${colorStack.middleGrey};\r\n }\r\n`;\r\nconst SButtonBox = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n gap: .5rem;\r\n`;\r\n\r\nexport interface IProps {\r\n showPopup: boolean;\r\n size?: EPopupSizes;\r\n title: React.ReactNode;\r\n confirmDisabled: boolean;\r\n steps: {\r\n title?: string;\r\n content: React.ReactNode;\r\n name?: string;\r\n nextStepButtonText?: string;\r\n showSteps?: boolean\r\n }[];\r\n isNextButtonDisabled?: boolean;\r\n confirmFinished?: boolean;\r\n sendButtonText?: React.ReactNode;\r\n lastButtonText?: React.ReactNode;\r\n showDeclareNew?: boolean;\r\n wizardType?: string;\r\n isFormValid?: boolean;\r\n dirty?: boolean;\r\n lastThanksScreen?: number;\r\n sendButtonType?: 'button' | 'submit' | 'reset';\r\n contextMenu?: React.ReactNode;\r\n noPadding?: boolean;\r\n loadingData?: boolean;\r\n confirmHandler?();\r\n finishHandler?();\r\n clearForm?();\r\n}\r\n\r\nexport const StepsPopup: FC = props => {\r\n const intl = useIntl();\r\n const [wrapperRef, dropdownOpen, toggleDropdown, closeDropdown] = useDropdown();\r\n const [currentStep, setCurrentStep] = useState(1);\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n\r\n useEscKey(() => setShowPopup(false));\r\n useEffect(() => {\r\n if (props.showPopup) {\r\n setCurrentStep(1);\r\n }\r\n setShowPopup(props.showPopup);\r\n }, [props.showPopup]);\r\n\r\n const handleScrollbarsMount = useCallback((scrollbar) => {\r\n scrollbar?.scrollToTop();\r\n }, [currentStep]);\r\n\r\n const addStep = useCallback(() => {\r\n setCurrentStep(step => step + 1);\r\n }, []);\r\n\r\n useEffect(() => {\r\n props.confirmFinished && addStep();\r\n }, [props.confirmFinished]);\r\n\r\n const substractStep = useCallback(() => {\r\n setCurrentStep(step => step - 1);\r\n }, []);\r\n\r\n const confirm = () => {\r\n if (props.confirmHandler) {\r\n setLoading(true);\r\n\r\n const ret = props.confirmHandler();\r\n if (ret.then) {\r\n ret.then(() => setLoading(false));\r\n } else {\r\n setLoading(false);\r\n }\r\n }\r\n };\r\n\r\n const finish = useCallback(() => {\r\n setLoading(false);\r\n props.finishHandler();\r\n }, [props.finishHandler]);\r\n\r\n const declareNew = useCallback(() => {\r\n props.clearForm();\r\n setCurrentStep(1);\r\n }, [currentStep]);\r\n\r\n const openContextMenu = useCallback(() => {\r\n toggleDropdown();\r\n }, [toggleDropdown]);\r\n\r\n return (\r\n <>\r\n {showPopup &&\r\n \r\n \r\n \r\n {props.title}\r\n \r\n {props.contextMenu &&\r\n \r\n \r\n {dropdownOpen &&\r\n <>\r\n {props.contextMenu}\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.steps.map((step, index) =>\r\n \r\n {step.content}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {props?.steps?.length > 2 && currentStep !== props.steps?.length && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {(currentStep > 1 && currentStep !== props.steps.length) &&\r\n \r\n }\r\n {currentStep < props.steps.length - 1 &&\r\n \r\n \r\n \r\n }\r\n {currentStep === props.steps.length && (\r\n <>\r\n {props.showDeclareNew && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n {(currentStep === props.steps.length - 1 || (props.confirmHandler && props.steps.length === 1)) &&\r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSizeAndHeight } from '../../../styleHelpers/fontSizes';\r\n\r\nconst Circle = styled.div<{disabled: boolean, isActive: boolean}>`\r\n background: ${colorStack.white};\r\n border-radius: 100%;\r\n width: 16px;\r\n height: 16px;\r\n position: relative;\r\n left: 4px;\r\n transition: all 0.3s;\r\n ${({ disabled }) => disabled && css`\r\n background: ${colorStack.disabled};\r\n `}\r\n ${({ isActive }) => isActive === true && css`\r\n left: 22px;\r\n `}\r\n`;\r\n\r\nconst Box = styled.div<{disabled: boolean, isActive: boolean}>`\r\n border-radius: 999px;\r\n width: 42px;\r\n height: 24px;\r\n display: flex;\r\n align-items: center;\r\n margin-right: 10px;\r\n cursor: pointer;\r\n transition: background-color .2s ease;\r\n background: ${colorStack.middleBlue};\r\n ${({ disabled }) => disabled && css`\r\n background: ${colorStack.ligthGrey};\r\n cursor: default;\r\n `};\r\n ${({ isActive }) => !isActive && css`\r\n background: ${colorStack.ligthGrey};\r\n `};\r\n`;\r\n\r\nconst Wrapper = styled.div<{disabled: boolean}>`\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n > span {\r\n ${fontSizeAndHeight[16]};\r\n transition: color .2s ease;\r\n color: ${colorStack.content};\r\n ${({ disabled }) => disabled && css`\r\n color: ${colorStack.disabled};\r\n `};\r\n }\r\n`;\r\ninterface IProps {\r\n state: boolean | null;\r\n activeText?: string;\r\n className?: string;\r\n notActiveText?: string;\r\n disabled?: boolean;\r\n changeHandler?(value: boolean | null);\r\n}\r\n\r\nexport const Switch: FC = props => {\r\n\r\n const onChange = () => {\r\n props.changeHandler(!props.state);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {(props.activeText && props.notActiveText) &&\r\n \r\n {props.state ? props.activeText : props.notActiveText}\r\n \r\n }\r\n \r\n );\r\n};\r\n","import React, { FC, useCallback } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\nimport { ITag, ETagPickerColor } from './ITagPicker';\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport boxShadow from '../../../styleHelpers/mixins/shadow';\r\n\r\ninterface IWrapperProps {\r\n tagColor?: ETagPickerColor;\r\n withRemoveBtn?: boolean;\r\n noShadow?: boolean;\r\n}\r\n\r\nconst Wrapper = styled.span`\r\n ${boxShadow()}\r\n position: relative;\r\n display: inline-flex;\r\n flex-wrap: nowrap;\r\n background: ${colorStack.whiteGrey};\r\n color: ${colorStack.darkBlue};\r\n border: 1px solid ${colorStack.whiteGrey};\r\n margin-bottom: 0.2rem;\r\n margin-right: 0.3rem;\r\n border-radius: 3px;\r\n font-size: ${fontSize[13]};\r\n align-items: center;\r\n justify-content: center;\r\n ${props => props.withRemoveBtn ? css`\r\n padding: 0 1.75rem 0 .5rem;\r\n ` : css`\r\n padding: .4rem .5rem;\r\n `}\r\n min-height: 1.5rem;\r\n ${props => props.noShadow && css`\r\n box-shadow: none;\r\n `}\r\n\r\n > button {\r\n background: none;\r\n border: 1px solid ${colorStack.darkBlue};\r\n width: 16px;\r\n height: 16px;\r\n position: absolute;\r\n margin-left: 0.5rem;\r\n cursor: pointer;\r\n outline: 0;\r\n border-radius: 50%;\r\n right: 7px;\r\n\r\n &:after, &:before {\r\n content: '';\r\n height: 1px;\r\n width: 9px;\r\n background: ${colorStack.darkBlue};\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n\r\n }\r\n\r\n\r\n &:before {\r\n transform: translate(-50%, -50%) rotate(45deg);\r\n }\r\n\r\n &:after {\r\n transform: translate(-50%, -50%) rotate(-45deg);\r\n }\r\n }\r\n`;\r\n\r\ninterface ITagProps {\r\n tag?: ITag;\r\n tagColor?: ETagPickerColor;\r\n className?: string;\r\n noShadow?: boolean;\r\n onRemove?(tag: ITag);\r\n}\r\n\r\nexport const Tag: FC = ({ tag, onRemove, tagColor, children, className, noShadow }) => {\r\n const onRemoveClick = useCallback((e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n onRemove?.(tag);\r\n }, [tag?.value, tag?.id]);\r\n\r\n return (\r\n \r\n {tag?.value || children}\r\n {!!onRemove && (\r\n \r\n {onSavelClick ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}>\r\n \r\n {!nonCollapsable && (\r\n \r\n )}\r\n {withIcon}\r\n {title || ''}\r\n {counter}\r\n \r\n \r\n {(!collapsed || nonCollapsable) && (\r\n <>\r\n \r\n \r\n {children}\r\n \r\n \r\n )}\r\n \r\n );\r\n};","import React, { FC, useEffect, useCallback, useState } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { fontSize } from '../../../styleHelpers/fontSizes';\r\nimport { IState } from '../../../reducers';\r\nimport { IAvatarReducer } from '../../../reducers/avatarReducer';\r\nimport { setUserColor } from '../../../actions/avatarActions';\r\n\r\ntype SetUserColor = ReturnType;\r\n\r\nconst Wrapper = styled.div<{ size?: { width: number, height: number }, bigView: boolean }>`\r\n position: relative;\r\n border-radius: 8px;\r\n a {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n }\r\n ${props => props.bigView && css`\r\n height: 190px;\r\n `}\r\n`;\r\n\r\nconst CurrentItem = styled.img<{ size?: { width: number, height: number }, bigView: boolean }>`\r\n border-radius: 8px;\r\n height: 32px;\r\n width: 32px;\r\n border: 1px solid ${colorStack.white};\r\n ${props => props.size && css`\r\n height: ${`${props.size.height - 2}px`};\r\n width: ${`${props.size.width - 2}px`};\r\n `}\r\n ${props => props.bigView && css`\r\n height: 100%;\r\n width: 100%;\r\n border: none;\r\n display: block;\r\n object-fit: cover;\r\n border-radius: 0;\r\n `}\r\n`;\r\n\r\nconst TextWrapper = styled.div<{ bgColor: string; size?: { width: number, height: number }, bigView: boolean }>`\r\n ${props => props.bgColor && css`\r\n background: ${props.bgColor};\r\n `}\r\n height: 32px;\r\n width: 32px;\r\n display: flex;\r\n justify-content: center;\r\n border-radius: 8px;\r\n ${props => props.bigView && css`\r\n height: 100%;\r\n width: 100%;\r\n border-radius: 0;\r\n `}\r\n > div {\r\n margin: auto 0;\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n font-weight: 500;\r\n ${props => props.bigView && css`\r\n font-size: ${fontSize[31]};\r\n `}\r\n }\r\n`;\r\n\r\n// there is a similar component 'Avatar.tsx'. Carefully choose the one you need.\r\n\r\ninterface IProps {\r\n picture: string;\r\n name: string;\r\n id: string;\r\n bigView?: boolean;\r\n size?: {\r\n width: 20 | 28 | 32 | 42 | 64;\r\n height: 20 | 28 | 32 | 42 | 64;\r\n };\r\n}\r\n\r\nexport const WorkspaceLogo: FC = props => {\r\n const dispatch = useDispatch();\r\n const [initials, setInitials] = useState(undefined);\r\n\r\n const { usersColor } = useSelector(state => state.avatar);\r\n\r\n const selectInitials = props.name?.replace(/[`~!@#$%^&*()_|+\\-=?;:'\",.<>\\{\\}\\[\\]\\\\\\/]/gi, '').split(' ').map(item => item.toUpperCase().substring(0, 1)).join('');\r\n\r\n useEffect(() => {\r\n if (!props.picture) {\r\n dispatch(setUserColor(props.id));\r\n setInitials(props.bigView ? selectInitials : selectInitials.substring(0, 2));\r\n }\r\n }, [props?.bigView, props?.picture, selectInitials]);\r\n\r\n return (\r\n \r\n {props.picture ? (\r\n \r\n ) : (\r\n \r\n
    \r\n {initials}\r\n
    \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport { IClusterPersonInCharge } from '../../../entities/IClusters';\r\nimport { Avatar, EAvatarSize } from '../Avatar/Avatar';\r\n\r\nconst PeopleInCharge = styled.div<{ width?: string }>`\r\n display: flex;\r\n align-items: center;\r\n ${props => props.width && css`\r\n width: ${props.width};\r\n `}\r\n`;\r\n\r\ninterface IPeopleInChargeBrief {\r\n peopleInCharge: IClusterPersonInCharge[];\r\n margin?: string;\r\n containerWidth?: string;\r\n}\r\n\r\nexport const PeopleInChargeBrief: FC = ({ peopleInCharge, containerWidth, margin }) => (\r\n \r\n {peopleInCharge.map(person =>\r\n \r\n \r\n \r\n )}\r\n \r\n);","import React, { FC, useCallback, useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCommentAlt, faUserFriends, faFileAlt } from '@fortawesome/pro-light-svg-icons';\r\nimport { faTrash } from '@fortawesome/pro-regular-svg-icons';\r\nimport { Link } from 'react-router-dom';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport moment from 'moment';\r\n\r\nimport { IContextReducer } from '../../reducers/contextReducer';\r\nimport { IState } from '../../reducers';\r\nimport { ILanguageReducer } from '../../reducers/languageReducer';\r\nimport { textColorByCode } from '../../tools/textColorByCode';\r\nimport { getTextFromDraft } from '../../tools/draftJS';\r\nimport { ISingleWorkElem } from '../../entities/IWork';\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { fontSize } from '../../styleHelpers/fontSizes';\r\nimport boxShadow from '../../styleHelpers/mixins/shadow';\r\nimport { PeopleInChargeBrief } from '../Common/PeopleInCharge/PeopleInChargeBrief';\r\nimport { media } from '../../styleHelpers/breakpoint';\r\nimport { Button, EButtonTypeSchema } from '../Common/Buttons/NewButton';\r\nimport { StatusDot } from '../Common/StatusDot/StatusDot';\r\nimport { NewRtView } from '../Common/RichText/NewRtView';\r\n\r\nconst Wrapper = styled.div`\r\n ${boxShadow()};\r\n background: ${colorStack.white};\r\n padding: .5rem 1rem;\r\n margin: 0 0 1rem 0;\r\n border-radius: 4px;\r\n`;\r\n\r\nconst Title = styled(Link)`\r\n color: ${colorStack.darkBlue};\r\n font-weight: 600;\r\n font-size: ${fontSize[16]};\r\n &:hover {\r\n text-decoration: none;\r\n }\r\n &:visited {\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nconst Description = styled.p`\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.middleBlue};\r\n margin: 1rem 0 0 0;\r\n text-align: left;\r\n`;\r\n\r\nconst Metas = styled.div`\r\n display: flex;\r\n margin: 1rem 0 0 0;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nconst Workspace = styled.span`\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.middleGrey};\r\n`;\r\n\r\nconst Updated = styled.span`\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.middleGrey};\r\n`;\r\n\r\nconst Template = styled.span<{ templateColor: string }>`\r\n font-size: ${fontSize[13]};\r\n color: ${props => props.templateColor ? textColorByCode(props.templateColor) : colorStack.darkBlue};\r\n background: ${props => props.templateColor || 'transparent'};\r\n padding: 4px .5rem;\r\n border-radius: 4px;\r\n svg {\r\n margin: 0 .5rem 0 0;\r\n }\r\n`;\r\n\r\nconst WithIcon = styled.div`\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n display: flex;\r\n margin: 0 1rem 0 0;\r\n svg {\r\n margin: 0 3px 0 0;\r\n }\r\n`;\r\n\r\nconst Meta = styled.div`\r\n display: flex;\r\n align-items: center;\r\n margin: 0 0 .5rem 0;\r\n ${media.desktop`\r\n margin: 0;\r\n `}\r\n`;\r\n\r\nconst Bullet = styled.span`\r\n margin: 0 .5rem;\r\n`;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin: 0 0 .5rem 0;\r\n`;\r\n\r\ninterface ISingleWorkElemProps {\r\n data: ISingleWorkElem;\r\n unreadMessages: number;\r\n deleteButton?: boolean;\r\n removeHandler?(id: string);\r\n}\r\n\r\nexport const SingleWorkElem: FC = props => {\r\n const { contextOrganizations } = useSelector(state => ({\r\n ...state.context,\r\n ...state.language\r\n }));\r\n const organizationName = contextOrganizations.byUrl[props.data.organizationUrlName]?.details?.name;\r\n\r\n const removeHandler = useCallback(() => {\r\n props.removeHandler(props.data.id);\r\n }, [props.removeHandler, props.data.id]);\r\n\r\n const hasDescription = useMemo(() => {\r\n const { description } = props.data;\r\n const plainText: string = getTextFromDraft(description);\r\n return typeof plainText === 'string' && !!plainText.trim();\r\n }, [props.data.description]);\r\n\r\n return (\r\n \r\n
    \r\n {props.data.name}\r\n {props.deleteButton &&\r\n \r\n \r\n \r\n }\r\n
    \r\n \r\n {hasDescription && (\r\n \r\n )}\r\n \r\n \r\n {!!organizationName &&\r\n \r\n {organizationName}\r\n \r\n \r\n }\r\n {props.data.clusterTemplate &&\r\n \r\n \r\n \r\n \r\n }\r\n {props.data.status &&\r\n \r\n \r\n \r\n \r\n }\r\n {(props.data.updated?.user && props.data.updated?.date) &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {props.data.peopleInCharge?.length > 0 &&\r\n \r\n \r\n \r\n \r\n }\r\n {props.unreadMessages > 0 &&\r\n \r\n \r\n {props.unreadMessages}\r\n \r\n }\r\n {props.data.numbersOfMembers > 0 &&\r\n \r\n \r\n {props.data.numbersOfMembers}\r\n \r\n }\r\n {props.data.numberOfDocuments > 0 &&\r\n \r\n \r\n {props.data.numberOfDocuments}\r\n \r\n }\r\n \r\n
    \r\n );\r\n};\r\n","export const textColorByCode = (code: string) => {\r\n const colorsBase = {\r\n '#FFFFFF': '#000000',\r\n '#CFDFFF': '#2750AE',\r\n '#D0F0FD': '#0B76B7',\r\n '#C2F5E9': '#06A09B',\r\n '#D1F7C4': '#338A17',\r\n '#FFEAB6': '#B87503',\r\n '#FEE2D5': '#D74D26',\r\n '#FFDCE5': '#BA1E45',\r\n '#FFDAF6': '#B2158B',\r\n '#EDE2FE': '#6B1CB0',\r\n '#EEEEEE': '#444444',\r\n '#9CC7FF': '#2750AE',\r\n '#77D1F3': '#0B76B7',\r\n '#72DDC3': '#06A09B',\r\n '#93E088': '#338A17',\r\n '#FFD66E': '#B87503',\r\n '#FFA981': '#D74D26',\r\n '#FF9EB7': '#BA1E45',\r\n '#F99DE2': '#B2158B',\r\n '#CDB0FF': '#6B1CB0',\r\n '#CCCCCC': '#444444',\r\n '#2750AE': '#CFDFFF',\r\n '#18BFFF': '#D0F0FD',\r\n '#0ECAC3': '#C2F5E9',\r\n '#20C933': '#D1F7C4',\r\n '#FCB400': '#FFEAB6',\r\n '#FF6F2C': '#FEE2D5',\r\n '#F82B60': '#FFDCE5',\r\n '#FF08C2': '#FFDAF6',\r\n '#8B46FF': '#EDE2FE',\r\n '#666666': '#EEEEEE',\r\n '#0B76B7': '#D0F0FD',\r\n '#06A09B': '#C2F5E9',\r\n '#338A17': '#D1F7C4',\r\n '#B87503': '#FFEAB6',\r\n '#D74D26': '#FEE2D5',\r\n '#BA1E45': '#FFDCE5',\r\n '#B2158B': '#FFDAF6',\r\n '#6B1CB0': '#EDE2FE',\r\n '#444444': '#EEEEEE'\r\n };\r\n return colorsBase[code];\r\n};","/*\r\n USE: \r\n*/\r\n\r\nimport React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nimport { EProfileType } from '../../entities/IGlobal';\r\nimport { ConversationMember } from '../../entities/Messaging/IMessaging';\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { Avatar as NewAvatar, EAvatarSize } from '../Common/Avatar/Avatar';\r\n\r\nconst MultiWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n span {\r\n width: 70%;\r\n height: 70%;\r\n display: block;\r\n position: absolute;\r\n left: 0;\r\n bottom: 2px;\r\n padding: 0;\r\n border: 3px solid ${colorStack.white};\r\n &:nth-child(2) {\r\n right: 0;\r\n top: 2px;\r\n left: auto;\r\n }\r\n }\r\n`;\r\n\r\ninterface IProps {\r\n members: ConversationMember[];\r\n currentUserId: string;\r\n}\r\n\r\nexport const Avatar: React.FC = (props) => {\r\n\r\n const singleMember = props.members.find((user: ConversationMember) => user.id !== props.currentUserId) || props.members[0];\r\n return (\r\n <>\r\n {props.members.length > 2 ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};","import styled, { css } from 'styled-components';\r\n\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { fontSize } from '../../styleHelpers/fontSizes';\r\nimport { media } from '../../styleHelpers/breakpoint';\r\n\r\n// Main - global styles\r\n// please make sure when changing height that scrollbar for hole page doesn't appear\r\nexport const MainContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n .left-side{\r\n width: 70px;\r\n ${media.tabletSm`\r\n width: 40%;\r\n `}\r\n\r\n ${media.tablet`\r\n width: 25.5%;\r\n `}\r\n }\r\n .right-side{\r\n flex: 1;\r\n }\r\n .padding-inner{\r\n padding: 0 15px;\r\n display: flex;\r\n width: 100%;\r\n }\r\n .flex-row{\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n .button-wrapper {\r\n background: ${colorStack.lightBlue};\r\n color: ${colorStack.white};\r\n font-size: ${fontSize[13]};\r\n font-weight: 500;\r\n width: 80%;\r\n padding: 15px 0;\r\n border-radius: 100px;\r\n margin: 12px auto 0 auto;\r\n text-align: center;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nexport const MainContainerInner = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: row;\r\n width: 100%;\r\n padding: 0;\r\n align-items: stretch;\r\n\r\n ${props => (props.theme || {}).iOS ? css`\r\n height: calc(100vh - 130px); /* this is fix for iOS Safari ;(*/\r\n ` : css`\r\n height: calc(100vh - 130px); /* this is fix for IE11 ;(*/\r\n ${media.desktop`\r\n height: calc(100vh - 140px); /* this is fix for IE11 ;(*/\r\n `}\r\n `}\r\n\r\n ${media.desktopLegacy`\r\n max-width: 1100px;\r\n `}\r\n\r\n .left-side, .right-side {\r\n display: flex;\r\n align-items: stretch;\r\n }\r\n .left-side > div, .right-side > div {\r\n flex: 1;\r\n }\r\n`;\r\n\r\n// TopBar styles\r\nexport const TopBarContainer = styled.div`\r\n background: ${colorStack.white};\r\n display: flex;\r\n flex-direction: row;\r\n border-bottom: 1px solid ${colorStack.ligthGrey};\r\n margin: 1rem 0 0 0;\r\n`;\r\n\r\nexport const TopBarContainerInner = styled.div`\r\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n max-width: 1100px;\r\n .new-message{\r\n width: 32px;\r\n margin: 16px 0 0 5px;\r\n cursor: pointer;\r\n }\r\n .back-arrow{\r\n cursor: pointer;\r\n width: 19px;\r\n }\r\n\r\n .left-side {\r\n width: auto;\r\n\r\n ${media.tabletSm`\r\n width: 40%;\r\n `}\r\n\r\n ${media.tablet`\r\n width: 25.5%;\r\n `}\r\n }\r\n`;\r\n\r\nexport const UserPhoto = styled.div`\r\n width: 56px;\r\n height: 56px;\r\n`;\r\n\r\nexport const UserBox = styled.div`\r\n padding: 0 0 0 17px;\r\n height: 79px;\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const UserMeta = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n margin: 0 0 0 15px;\r\n .name {\r\n font-weight: 500;\r\n color: ${colorStack.darkBlue};\r\n font-size: ${fontSize[13]};\r\n margin: 0 0 4px 0;\r\n\r\n &.members {\r\n color: ${colorStack.disabled};\r\n max-width: 350px;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n }\r\n }\r\n .job, .company {\r\n color: ${colorStack.disabled};\r\n font-size: ${fontSize[13]};\r\n }\r\n`;\r\n\r\nexport const Dots = styled.div`\r\n background: url('../assets/images/svgicons/dots.svg') center center no-repeat;\r\n background-size: 17px;\r\n border: 1px solid ${colorStack.black};\r\n border-radius: 20px;\r\n width: 41px;\r\n height: 22px;\r\n cursor: pointer;\r\n`;\r\n\r\nexport const RightSideInner = styled.div`\r\n height: 79px;\r\n`;\r\n\r\nexport const SearchWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin: 0 0 0 5px;\r\n input {\r\n border: none;\r\n font-size: ${fontSize[13]};\r\n color: ${colorStack.darkBlue};\r\n }\r\n`;\r\n\r\nexport const LeftWrapper = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\n// Context Menu styles\r\n\r\nexport const ContextMenuContainer = styled.div`\r\n display: flex;\r\n padding: 0 19px 0 0px;\r\n svg {\r\n margin: 0 0 0 1rem;\r\n }\r\n`;","import styled from 'styled-components';\r\nimport { rgba } from 'polished';\r\n\r\nimport { colorStack } from '../../../styleHelpers/colors';\r\nimport { media } from '../../../styleHelpers/breakpoint';\r\n\r\nexport const MessageBoxContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n height: 100%;\r\n width: 100%;\r\n justify-content: space-between;\r\n padding: 0 0 0 20px;\r\n position: relative;\r\n ${media.tabletSm`\r\n padding: 0 0 0 20px;\r\n `}\r\n`;\r\n\r\nexport const MessageBoxContainerInner = styled.div`\r\n flex: 1;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n background: ${colorStack.whiteGrey};\r\n .spinner {\r\n margin-top: 50px;\r\n }\r\n`;\r\n\r\nexport const MessageMenuWrapper = styled.div`\r\n position: absolute;\r\n right: 0;\r\n width: 300px;\r\n background: ${colorStack.white};\r\n margin: 0 0 0 13px;\r\n ${media.tabletSm`\r\n position: static;\r\n height: 100%;\r\n `}\r\n > div {\r\n height: 100%;\r\n }\r\n`;\r\n\r\nexport const MessagesWrapper = styled.div`\r\n flex: 1;\r\n margin: -36px 0 10px 0;\r\n .scroll-wrapper {\r\n padding: 1rem 1rem 1.2rem 0;\r\n ${media.desktop`\r\n padding: 50px 1rem 0 1rem;\r\n `}\r\n }\r\n mark {\r\n background-color: ${colorStack.middleGrey};\r\n }\r\n ${media.desktop`\r\n margin: 0 0 10px 0;\r\n `}\r\n`;\r\n\r\nexport const ClearBar = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background: ${rgba(colorStack.white, 0.95)};\r\n padding: 1.5rem;\r\n position: sticky;\r\n bottom: 0;\r\n overflow-y: auto;\r\n margin-top: 2rem; \r\n`;\r\n\r\n","import React, { createRef } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport styled from 'styled-components';\r\nimport { rgba } from 'polished';\r\nimport Textarea from 'react-textarea-autosize';\r\nimport { last } from 'lodash';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPaperclip } from '@fortawesome/pro-regular-svg-icons';\r\nimport { faPaperPlane } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { IState } from '../../reducers/index';\r\nimport { colorStack } from '../../styleHelpers/colors';\r\nimport { fontSize } from '../../styleHelpers/fontSizes';\r\nimport { media } from '../../styleHelpers/breakpoint';\r\nimport placeholder from '../../styleHelpers/mixins/placeholder';\r\nimport { ISingleMessage, ICreateMessage, EAllMessageTypes, ETranslationKey } from '../../entities/Messaging/IMessaging';\r\nimport { Loader } from '../Common/Loader/Loader';\r\nimport { checkAttachmentSize, checkAttachmentType } from '../../tools/attachment';\r\nimport { IMessagingReducer } from '../../reducers/messagingReducer';\r\nimport { IProfileReducer } from '../../reducers/profileReducer';\r\nimport * as messageActions from '../../actions/messagingActions';\r\nimport { ESpinnerSize } from '../Common/Spinner/Spinner';\r\n\r\ninterface ISendButtonProps {\r\n blocked: boolean;\r\n}\r\n\r\nconst FileUploadButtonWrapper = styled.div`\r\n width: 21px;\r\n height: 19px;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n margin: auto;\r\n right: 70px;\r\n ${media.tabletSm`\r\n right: 80px;\r\n `}\r\n cursor: pointer;\r\n\r\n label {\r\n color: ${colorStack.darkBlue};\r\n cursor: pointer;\r\n font-size: ${fontSize[16]};\r\n }\r\n\r\n input[type=file] {\r\n opacity: 0;\r\n position: absolute;\r\n width: 0.1px;\r\n height: 0.1px;\r\n }\r\n`;\r\n\r\nconst SendMessageContainer = styled.div`\r\n width: 100%;\r\n margin: 0 0 .5rem 0;\r\n .error-message {\r\n margin: 0 0 10px 50px;\r\n }\r\n`;\r\nconst SendMessageContainerInner = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n padding: 0 5px 0 0;\r\n width: 100%;\r\n position: relative;\r\n align-items: center;\r\n ${media.tabletSm`\r\n padding: 0 0 0 15px;\r\n `}\r\n img {\r\n display: block;\r\n width: 100%;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst SendButton = styled.div`\r\n color: ${props => props.blocked ? rgba(colorStack.darkBlue, 0.5) : colorStack.darkBlue};\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n ${media.tabletSm`\r\n width: 50px;\r\n height: 50px;\r\n `}\r\n cursor: pointer;\r\n`;\r\n\r\nconst SendInputWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 25px;\r\n background: ${colorStack.white};\r\n box-shadow: inset 0px 0px 5px ${rgba(colorStack.black, 0.2)};\r\n margin: 0 5px 0 0;\r\n padding: 3px 44px 3px 15px;\r\n width: calc(100% - 52px);\r\n\r\n textarea {\r\n width: 100%;\r\n border: none;\r\n font-size: ${fontSize[16]};\r\n color: ${colorStack.darkBlue};\r\n margin: 10px 0;\r\n padding: 1px;\r\n resize: none;\r\n min-height: 0;\r\n font-weight: 100;\r\n\r\n ${placeholder({ 'color': colorStack.disabled })};\r\n }\r\n\r\n ${media.tabletSm`\r\n margin: 0 15px 0 0;\r\n padding: 3px 46px 3px 24px;\r\n width: calc(100% - 65px);\r\n `}\r\n\r\n .attachment-wrapper {\r\n width: 100%;\r\n flex: 1;\r\n padding: 0 0 20px 0;\r\n font-weight: 500;\r\n font-size: ${fontSize[13]};\r\n display: flex;\r\n align-items: center;\r\n &::before{\r\n content: '';\r\n display: inline-block;\r\n background: url('../assets/images/icons/messaging/file.png') center center no-repeat;\r\n width: 20px;\r\n height: 20px;\r\n background-size: contain;\r\n margin: 0 10px 0 0;\r\n }\r\n .remove-attachment{\r\n background: url('../assets/images/icons/messaging/close.png') center center no-repeat;\r\n width: 10px;\r\n height: 10px;\r\n background-size: contain;\r\n margin: 0 0 0 10px;\r\n display: inline-block;\r\n cursor: pointer;\r\n }\r\n .single-attachment {\r\n word-break: break-all;\r\n }\r\n }\r\n`;\r\n\r\nconst LoaderWrapper = styled.div`\r\n position: absolute;\r\n left: 20px;\r\n`;\r\n\r\ninterface SelfState {\r\n inputText: string;\r\n blockInput: boolean;\r\n attachmentsArray: {}[];\r\n attachmentError: boolean;\r\n attachmentErrorMessage: string;\r\n}\r\n\r\ninterface SelfProps {\r\n conversationIdToDispatch?: string;\r\n isPopup?: boolean;\r\n sendAction();\r\n updateMessages?(message: ISingleMessage);\r\n}\r\n\r\ntype SendMessageProps = IMessagingReducer & IProfileReducer & SelfProps & typeof messageActions;\r\n\r\nclass SendMessage extends React.Component {\r\n\r\n inputRef: React.RefObject = createRef();\r\n\r\n state = {\r\n inputText: '',\r\n blockInput: false,\r\n attachmentsArray: [],\r\n attachmentError: false,\r\n attachmentErrorMessage: ''\r\n\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.activeConversationId !== prevProps.activeConversationId) {\r\n this.setState({\r\n inputText: ''\r\n });\r\n }\r\n }\r\n\r\n createSendObject = (activeConversation) => {\r\n return ({\r\n content: this.state.inputText,\r\n conversationId: activeConversation.id,\r\n createdDate: new Date().toISOString(),\r\n id: `tempMessageId-${this.props.currentMessages ? this.props.currentMessages.length : 0}`,\r\n tempId: `tempMessageId-${this.props.currentMessages ? this.props.currentMessages.length : 0}`,\r\n senderUserId: this.props.currentUserProfile.id,\r\n type: this.state.attachmentsArray.length > 0 ? 'Attachment' : 'Text',\r\n status: '',\r\n attachData: this.state.attachmentsArray[0]\r\n }) as ISingleMessage;\r\n }\r\n\r\n checkConnection = () => {\r\n this.setState({\r\n blockInput: true\r\n }, () => {\r\n const connection = this.props.getSignalRHubConnection();\r\n if (connection && (connection as any).connectionState === 0) { // because for some stupid reason connectionState is private, but should be public\r\n connection.start().then(() => {\r\n this.sendMessage();\r\n });\r\n } else {\r\n this.sendMessage();\r\n }\r\n });\r\n }\r\n\r\n sendMessage = async () => {\r\n const { activeConversationId, currentConversation, currentUserProfile, conversationIdToDispatch, activeConversations, isPopup } = this.props;\r\n const { blockInput, inputText, attachmentsArray } = this.state;\r\n const conversationToDispatch = conversationIdToDispatch ? activeConversations[conversationIdToDispatch].conversation : currentConversation;\r\n const activeConversation: ICreateMessage = {\r\n conversationMembers: conversationToDispatch.conversationMembers,\r\n createDate: new Date().toISOString(),\r\n content: this.state.inputText.trim(),\r\n type: this.state.attachmentsArray.length > 0 ? EAllMessageTypes.Attachment : EAllMessageTypes.Text,\r\n translationId: ETranslationKey.NotTranslatable,\r\n conversationId: conversationToDispatch.id,\r\n title: conversationToDispatch.title,\r\n tempId: conversationIdToDispatch || activeConversationId,\r\n id: conversationIdToDispatch || activeConversationId\r\n };\r\n\r\n if (activeConversation.id.includes('tempGroup-') && blockInput && (inputText.trim().length > 0 || attachmentsArray.length > 0)) {\r\n const res: ISingleMessage = await this.props.createMessages(activeConversation as any, !isPopup);\r\n if (res) {\r\n this.props.updateSingleMessage(res);\r\n if (attachmentsArray.length > 0) {\r\n this.props.uploadAttachment(res.id, attachmentsArray[0]);\r\n }\r\n }\r\n\r\n this.setState({\r\n inputText: '',\r\n blockInput: false,\r\n attachmentsArray: []\r\n });\r\n this.props.sendAction();\r\n\r\n } else if (blockInput && (inputText.trim().length > 0 || attachmentsArray.length > 0)) {\r\n const res: ISingleMessage = await this.props.createMessages(this.createSendObject(activeConversation), !isPopup);\r\n if (res) {\r\n this.props.updateMessages ? this.props.updateMessages(res) : this.props.updateSingleMessage(res);\r\n if (attachmentsArray.length > 0) {\r\n this.props.uploadAttachment(res.id, attachmentsArray[0]);\r\n }\r\n }\r\n\r\n this.setState({\r\n inputText: '',\r\n blockInput: false,\r\n attachmentsArray: []\r\n });\r\n this.props.sendAction();\r\n } else {\r\n this.setState({ blockInput: false });\r\n }\r\n }\r\n\r\n onChange = (e: React.ChangeEvent) => {\r\n const { value } = e.target;\r\n this.setState({\r\n inputText: value\r\n });\r\n }\r\n\r\n onKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 13 && !event.shiftKey) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.checkConnection();\r\n }\r\n }\r\n\r\n fileInputChange = (e: React.ChangeEvent) => {\r\n const file = e.target.files[0];\r\n const attachSize = checkAttachmentSize(file.size, 'messaging');\r\n const attachType = checkAttachmentType(last(file.name.split('.')).toLowerCase(), 'messaging');\r\n if (attachSize.isValid && attachType.isValid) {\r\n this.setState(currentState => ({\r\n attachmentsArray: [...currentState.attachmentsArray, file],\r\n attachmentError: false,\r\n attachmentErrorMessage: attachSize.message\r\n }));\r\n } else {\r\n this.setState({\r\n attachmentError: true,\r\n attachmentErrorMessage: attachType.message || attachSize.message\r\n });\r\n }\r\n }\r\n\r\n removeAttachment = () => {\r\n this.setState({\r\n attachmentsArray: []\r\n });\r\n }\r\n\r\n render() {\r\n const { inputText, attachmentsArray, attachmentError, attachmentErrorMessage, blockInput } = this.state;\r\n return (\r\n \r\n {attachmentError &&\r\n
    {attachmentErrorMessage}
    \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {txt =>