{"version":3,"file":"main.7080d7b6fab0575d9522.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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AO,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,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,EAAE3lF,WAAY,KAAK9V,gBAAgB8kG,EAAU74G,SAASmC,EAAE0nB,WAAY,KAAKovL,UAGxH,EACAZ,EAAmBM,cAAgB,WAC/B,IAAI5vF,EAAW3zH,KAAKsjN,YAAYhtH,iBAAiBt2F,KAAK8iN,WAAW/+M,KAAK,MAClE4vH,EAASnwH,OAAS,GAClBmwH,EAAS/vH,SAAQ,SAAUR,GACvBi5L,GAAOj5L,EACX,GAKR,EACA6/M,EAAmBO,eAAiB,WAChC,IAAI7vF,EAAW3zH,KAAKsjN,YAAYhtH,iBAAiB,IAAM0sH,GAASj/M,KAAK,OAAS,KAC1E4vH,EAASnwH,OAAS,GAClBmwH,EAAS/vH,SAAQ,SAAUR,GACvB4/M,GAASp/M,SAAQ,SAAU2hI,GACnBniI,EAAQwhF,aAAa2gD,IACrBniI,EAAQub,gBAAgB4mH,EAEhC,GACJ,GAKR,EACA09E,EAAmBQ,eAAiB,WAChC,IAAIxhN,EAAQjC,KAEZA,KAAK+iN,YAAYn/M,SAAQ,SAAUkmB,EAAMhhB,GACrC,IAAI6qH,EAAW1xH,EAAMqhN,YAAYhtH,iBAAiBxsE,EAAK1e,UACnDuoH,EAASnwH,OAAS,GAClBmwH,EAAS/vH,SAAQ,SAAUR,GACvBA,EAAQub,gBAAgBmL,EAAK25F,UACjC,GAER,GACJ,EACOw/F,CACX,CA7EuC,oFCxEhC,SAASwE,EAAYrkN,GAGxB,IAFA,IAAI0jH,EACA4gG,EAAYtkN,EAAQ0B,WACfiI,EAAI,EAAGA,EAAI26M,EAAUlkN,OAAQuJ,IAElC,GAAsB,KADtB+5G,EAAO4gG,EAAU36M,IACR2O,SACL,OAAOorG,EAGf,OAAO,IACX,CAwDO,SAAS6gG,EAAepjN,EAAeiiM,EAAcz+L,QACnC,IAAjBy+L,IAA2BA,GAAe,QAC9B,IAAZz+L,IAAsBA,EAAU,CAAC,GACrC,IAAI4kB,EAAUpoB,EAAc,MAAO,CAAE9B,UAAW,6BAOhD,GANIsF,EAAQk8M,WACR,QAAS,CAACt3L,GAAU5kB,EAAQk8M,SAASz8M,MAAM,MAE3CO,EAAQmkM,WACRv/K,EAAQi3C,UAAUjoD,IAAI,SAEtB6qL,EAAc,CACd,IAAIqf,EAAathN,EAAc,OAAQ,CAAE9B,UAAW,wBACpD,QAAaojN,EAAY,CAAEtgB,gBAAgB,EAAM1zF,SAAU,MAC3DllF,EAAQjpB,YAAYmiN,EACxB,CACA,IAAIC,EAAYvhN,EAAc,OAAQ,CAAE9B,UAAW,oBAKnD,GAJIsF,EAAQue,SACRw/L,EAAUliJ,UAAUjoD,IAAI,WAE5BgR,EAAQjpB,YAAYoiN,GAChB/9M,EAAQsgB,MAAO,CACf,IAAIu/L,EAAYrjN,EAAc,OAAQ,CAAE9B,UAAW,YAC/CsF,EAAQ8/M,kBACRD,EAAU7kH,YAAch7F,EAAQsgB,MAGhCu/L,EAAU7/E,UAAYhgI,EAAQsgB,MAElCsE,EAAQjpB,YAAYkkN,EACxB,CACA,OAAOj7L,CACX,CASO,SAASm7L,EAAmBrkN,EAAGoiN,GAClC,GAAIA,EAAY,CACZ,IAAIhxL,EAAUn2B,SAASqV,YAAY,eACnC8gB,EAAQyhF,UAAU7yG,EAAEsd,MAAM,GAAO,GACjC8kM,EAAW5xM,cAAc4gB,EAC7B,CACJ,qDCvJQ+tK,aADJ73B,GACI63B,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,EAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIy8K,EAAU,QACVC,EAAc,YAGdC,EAAe,cACfC,EAAoB,oBACpBC,EAAmB,mBACnBC,EAAiB,eACjBC,EAAsB,qBACtBC,EAAqB,oBACrBC,EAAa,kBACbC,EAAc,mBACdC,EAAmB,yBACnBC,EAAkB,wBAclBC,EAAyB,SAAUvjR,GAQnC,SAASujR,EAAQhwR,EAAS3E,GACtB,OAAOoR,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,IAClD,CAobA,OA7bA+qK,EAAUgtH,EAASvjR,GAgBnBujR,EAAQr2R,UAAUirM,UAAY,WAC1B3sM,KAAKg4R,QAAU,KAAQxvI,KAAK5gJ,KAC5B5H,KAAKi4R,aAAgC,YAAjBj4R,KAAKg4R,QACzBh4R,KAAKi5L,SAAW,KAAQA,SACxBj5L,KAAK0qR,YAAa,EAClB,IAAItnR,EAAUpD,KAAKoD,QACnBpD,KAAKk4R,QAA2B,SAAjBl4R,KAAKg4R,SAAuC,SAAjBh4R,KAAKg4R,QAC/Ch4R,KAAKwmK,aACc,KAAfpjK,EAAQs0B,KACRt0B,EAAQs0B,IAAK,QAAY,WACzB13B,KAAKo2B,UAAW,GAEpBhzB,EAAQgG,MAAMwjB,QAAU,QACpB5sB,KAAKksM,WACL9oM,EAAQwgE,UAAUjoD,IAAIw7Q,EAE9B,EAOAY,EAAQr2R,UAAU6a,OAAS,WACvBvc,KAAKshO,YAAc,IAAI,KAAMthO,KAAKoD,QAAS,CAAE+0R,OAAQn4R,KAAKo4R,aAAaz9P,KAAK36B,MAAOuhO,MAAOvhO,KAAKq4R,aAAa19P,KAAK36B,QACjH,KAAa2b,IAAI3b,KAAKs4R,UAAW,SAAUt4R,KAAK+sO,cAAe/sO,MAC1DA,KAAKi5L,UAINj5L,KAAKoD,QAAQwgE,UAAUjoD,IAAIg8Q,GAC3B33R,KAAKu4R,cAAcv4R,KAAKoD,UAJxBpD,KAAKw4R,cAAcx4R,KAAKoD,SAM5BpD,KAAKy4R,gBACT,EACAV,EAAQr2R,UAAU+2R,eAAiB,YAC3B,QAAkBz4R,KAAK04R,aAAe14R,KAAK04R,WAAa,GACxD14R,KAAK04R,WAAa14R,KAAKs4R,UAAUnxP,YACjCnnC,KAAK0qR,YAAa,GAGlB1qR,KAAK0qR,YAAa,CAE1B,EACAqN,EAAQr2R,UAAU8kK,WAAa,WAC3B,IAAI8xH,EAAYt4R,KAAKuE,cAAc,MAAO,CAAE9B,UAtF/B,sBAuFTonH,EAAY7pH,KAAKuE,cAAc,MAAO,CAAE9B,UAxF/B,kBAyFbonH,EAAUplH,aAAa,WAAY,MAGnC,IAFA,IAAI62L,EAAMt7L,KAAKoD,QAENgC,EAAK,EAAGuzR,EADF,GAAGxsR,MAAMuI,KAAK4mL,EAAIj+K,UACOjY,EAAKuzR,EAAWn1R,OAAQ4B,IAAM,CAClE,IAAIk7Q,EAAQqY,EAAWvzR,GACvBkzR,EAAU50R,YAAY48Q,EAC1B,CACAz2J,EAAUnmH,YAAY40R,GACtBh9F,EAAI53L,YAAYmmH,GAChBA,EAAUzgH,MAAMy4C,UAAY,SAC5B7hD,KAAKs4R,UAAYzuK,EACjB7pH,KAAK44R,YAAcN,CACvB,EACAP,EAAQr2R,UAAUqsM,eAAiB,WAE/B,OAAO/tM,KAAKuuM,aADI,CAAC,cAErB,EAOAwpF,EAAQr2R,UAAU69L,cAAgB,WAC9B,MAAO,SACX,EAMAw4F,EAAQr2R,UAAUguL,QAAU,WACxB,IAAI4L,EAAMt7L,KAAKoD,QACfk4L,EAAIlyL,MAAMwjB,QAAU,GACpB0uK,EAAI13H,UAAUC,OA9HP,aA+HPy3H,EAAI13H,UAAUC,OAAO8zN,GACrBr8F,EAAI13H,UAAUC,OAAOszN,GACrB,IAAIluR,GAAM,QAAU,MAAQqyL,EAAI5jK,GAAK,QAAU8/P,EAAgBl8F,GAC3D9mH,GAAU,QAAU,IAAMojN,EAAat8F,GAC3C,GAAGnvL,MAAMuI,KAAK8/D,GAAS5wE,SAAQ,SAAU03L,IACrC,QAAOA,EACX,IACA,IAAK,IAAIl2L,EAAK,EAAG7F,EAAK,GAAG4M,MAAMuI,KAAK1U,KAAK44R,YAAYv7Q,UAAWjY,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAClF,IAAI4oE,EAAOzuE,EAAG6F,GACdk2L,EAAI53L,YAAYsqE,EACpB,CACIhuE,KAAKo2B,UACLp2B,KAAKoD,QAAQub,gBAAgB,OAEjC,QAAO3e,KAAKs4R,WACRrvR,EAAIzF,OAAS,KACb,QAAOyF,EAAI,KACN,QAAkBA,EAAI,MACvB,QAAOA,EAAI,KAGnB,KAAa46D,OAAO7jE,KAAKs4R,UAAW,SAAUt4R,KAAK+sO,eACnD/sO,KAAKshO,YAAY5xC,UACjB1vL,KAAKshO,YAAc,KACnB9sN,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,KAClC,EAQA+3R,EAAQr2R,UAAU29P,QAAU,SAAU51P,GAClC,IAAIovR,GAAU,QAAU,sBAAwBzB,EAAc,IAAKp3R,KAAKoD,SACpEqG,EACAzJ,KAAKoD,QAAQwgE,UAAUjoD,IAAIy7Q,GAG3Bp3R,KAAKoD,QAAQwgE,UAAUC,OAAOuzN,GAElC,GAAGjrR,MAAMuI,KAAKmkR,GAASj1R,SAAQ,SAAU22D,GACrCA,EAAG91D,aAAa,WAAagF,EAAc,KAAN,IACzC,GACJ,EACAsuR,EAAQr2R,UAAU62R,cAAgB,SAAUn1R,GACxC,IAAIs0B,EAAKt0B,EAAQs0B,GAAGrvB,OAAO,QACvBywR,EAAkB94R,KAAKuE,cAAc,MAAO,CAAE9B,UAAWm1R,EAAc,IAAMC,IAC7EkB,EAAW,KAAO31R,EAAQs0B,GAAGrvB,OAAO,QAAUmvR,EAAiB,IAAMC,GACrEuB,EAAWh5R,KAAKuE,cAAc,MAAO,CAAEmzB,GAAIA,EAAGrvB,OAAO,UAAW5F,UAAWs2R,IAC3EE,EAAUj5R,KAAKuE,cAAc,MAAO,CAAE9B,UAAW60R,EAAoB,IAAMD,EAAe,aAC9F2B,EAASt1R,YAAYu1R,GACrB,IAAIC,EAAUl5R,KAAKuE,cAAc,MAAO,CAAE9B,UAAWm1R,EAAc,IAAME,IACrE93R,KAAKk4R,SACLc,EAASp1N,UAAUjoD,IAAI,cAE3BvY,EAAQM,YAAYo1R,GACpB11R,EAAQM,YAAYs1R,GACpB51R,EAAQ2B,aAAam0R,EAAS91R,EAAQmU,YACtCvX,KAAKm5R,aAAa,CAACH,GACvB,EACAjB,EAAQr2R,UAAU82R,cAAgB,SAAUp1R,GACxC,IAAIs0B,EAAKt0B,EAAQs0B,GAAGrvB,OAAO,QACvB0wR,EAAW,KAAO31R,EAAQs0B,GAAGrvB,OAAO,QAAUmvR,EAAiB,IAAMC,GACrE2B,EAAkB,CAAE,KAAQ,SAAU,GAAM1hQ,EAAGrvB,OAAO,UAAW,aAAc,gBAC/EY,EAAMjJ,KAAKuE,cAAc,MAAO,CAAE9B,UAAWs2R,EAAUj5I,MAAOs5I,IAClEnwR,EAAIxE,aAAa,gBAAiB,SAClC,IAAIw0R,EAAUj5R,KAAKuE,cAAc,MAAO,CAAE9B,UAAW60R,EAAoB,IAAMD,EAAe,aAC1FgC,EAAU,KAAOj2R,EAAQs0B,GAAGrvB,OAAO,QAAUmvR,EAAiB,IAAME,GACpE4B,EAAiB,CAAE,KAAQ,SAAU,GAAM5hQ,EAAGrvB,OAAO,SAAU,aAAc,eAC7EkxR,EAASv5R,KAAKuE,cAAc,MAAO,CAAE9B,UAAW42R,EAAU,IAAMjC,EAAat3I,MAAOw5I,IACxFC,EAAO90R,aAAa,gBAAiB,QACrC,IAAI+0R,EAAcx5R,KAAKuE,cAAc,MAAO,CAAE9B,UAAW80R,EAAmB,IAAMF,EAAe,aACjGkC,EAAO71R,YAAY81R,GACnBvwR,EAAIvF,YAAYu1R,GAChB71R,EAAQM,YAAYuF,GACpB7F,EAAQ2B,aAAaw0R,EAAQn2R,EAAQmU,YACjCvX,KAAKk4R,UACLjvR,EAAI26D,UAAUjoD,IAAI,cAClB49Q,EAAO31N,UAAUjoD,IAAI,eAEzB3b,KAAKm5R,aAAa,CAAClwR,EAAKswR,GAC5B,EACAxB,EAAQr2R,UAAUgsC,WAAa,SAAUjqC,GACrC,IAAIxB,EAAQjC,KACE,UAAVyD,EAAEf,MAKF1C,KAAKy5R,SAAWn6R,OAAOk8B,YAAW,WAH9Bv5B,EAAMy3R,YAAa,EACnBz3R,EAAM03R,aAAa,GAAIl2R,EAAE2J,QAAQ,EAIrC,GAAG,KAEX,EACA2qR,EAAQr2R,UAAUugC,QAAU,SAAUx+B,GACpB,UAAVA,EAAEf,MAGF1C,KAAK05R,WACL15R,KAAK05R,YAAa,EAGlBj2R,EAAE2J,OAAO2gC,QAEbxS,aAAav7B,KAAKy5R,UACtB,EACA1B,EAAQr2R,UAAUy3R,aAAe,SAAU79F,GACvC,IAAIr5L,EAAQjC,KACZ,GAAGmM,MAAMuI,KAAK4mL,GAAK13L,SAAQ,SAAU22D,GACjC,IAAI,KAAMA,EAAI,CAAEq/N,QAAS33R,EAAM43R,eAAel/P,KAAK14B,GAAQyuM,iBAAkB,MAC7En2I,EAAG3+C,iBAAiB,UAAW3Z,EAAMyrC,WAAW/S,KAAK14B,IACrDs4D,EAAG3+C,iBAAiB,QAAS3Z,EAAMggC,QAAQtH,KAAK14B,IAChDs4D,EAAG3+C,iBAAiB,UAAW3Z,EAAM63R,aAAan/P,KAAK14B,IACvDs4D,EAAG3+C,iBAAiB,WAAY3Z,EAAM63R,aAAan/P,KAAK14B,IACxDs4D,EAAG3+C,iBAAiB,eAAe,SAAUnY,GACzCA,EAAEkW,gBACN,IACA,KAAagC,IAAI4+C,EAAI,QAASt4D,EAAM83R,kBAAmB93R,EAC3D,GACJ,EACA81R,EAAQr2R,UAAUo4R,aAAe,WAC7BloL,cAAc5xG,KAAKsnJ,QACvB,EACAywI,EAAQr2R,UAAUm4R,eAAiB,SAAUp2R,GACzC,IAAIxB,EAAQjC,KACRg6R,EAAOv2R,EAAEg6J,cAAcrwJ,OAC3B4sR,EAAOh6R,KAAKgF,SAASg1R,EAAMxC,GAAkBwC,EAAK76Q,kBAAoB66Q,EAKtEh6R,KAAKsnJ,QAAUhoJ,OAAO2yG,aAAY,WAF9BhwG,EAAM03R,aAFM,GAEkBK,GAAM,EAIxC,GAAG,GACP,EACAjC,EAAQr2R,UAAUsD,SAAW,SAAUs2L,EAAK74L,GACxC,OAAO64L,EAAI13H,UAAU5+D,SAASvC,EAClC,EACAs1R,EAAQr2R,UAAUi4R,aAAe,SAAUM,EAAWD,EAAME,GACxD,IAAIC,EAAUn6R,KAAKoD,QACfwgE,EAAYo2N,EAAKp2N,UACjBA,EAAU5+D,SAASwyR,KACnB5zN,EAAYo2N,EAAK/0R,cAAc,IAAMoyR,GAAczzN,WAEnD5jE,KAAKgF,SAASm1R,EAAShD,IAAYn3R,KAAKi4R,eACxCgC,GAAaA,IAEXj6R,KAAKgF,SAASm1R,EAAShD,IAAYn3R,KAAKi4R,cAAiBj4R,KAAKk4R,QAC5Dt0N,EAAU5+D,SAASsyR,GACnBt3R,KAAKo6R,mBAAmBH,EAAW,MAAOC,GAG1Cl6R,KAAKo6R,mBAAmBH,EAAW,GAAIC,GAIvCt2N,EAAU5+D,SAASuyR,GACnBv3R,KAAKo6R,mBAAmBH,EAAW,MAAOC,GAG1Cl6R,KAAKo6R,mBAAmBH,EAAW,GAAIC,EAGnD,EACAnC,EAAQr2R,UAAUq4R,kBAAoB,SAAUt2R,GAC5CzD,KAAK25R,aAAa35R,KAAK04R,WAAYj1R,EAAE2J,QAAQ,EACjD,EACA2qR,EAAQr2R,UAAU22R,aAAe,SAAU50R,GACvC,IACIwc,EADAo6Q,EAAWr6R,KAAKs4R,UAGhBr4Q,EADAxc,EAAE84M,UAAY,EACH94M,EAAE24M,WAA0B,GAAb34M,EAAE84M,UAGjB94M,EAAE24M,UAAY34M,EAAE84M,SAE/B,IAAI7sH,EAAQ,GACRo0G,EAAU,WACV,IAAIW,EAAOrqL,KAAKkgR,IAAI5qM,GAChB+0G,GAAQ,EACRnlM,OAAOq9C,qBAAqB8nJ,IAGH,SAArBhhM,EAAEw5M,eACFo9E,EAASt0F,YAAc9lL,EAAWwkL,EAER,UAArBhhM,EAAEw5M,iBACPo9E,EAASt0F,YAAc9lL,EAAWwkL,GAEtC/0G,GAAS,GACTpwF,OAAO8E,sBAAsB0/L,GAErC,EACAA,GACJ,EACAi0F,EAAQr2R,UAAU64R,eAAiB,SAAUC,EAAW9xF,GACrC,QAAXA,EACA1oM,KAAKs4R,UAAUvyF,YAAcy0F,EAG7Bx6R,KAAKs4R,UAAUvyF,YAAcy0F,EAE7Bx6R,KAAKksM,WAAalsM,KAAKs4R,UAAUvyF,WAAa,IAC9C/lM,KAAKs4R,UAAUvyF,WAAa,EAEpC,EACAgyF,EAAQr2R,UAAU04R,mBAAqB,SAAUI,EAAW9xF,EAAQwxF,GAChE,IAAIj4R,EAAQjC,KAEZ,GAAIk6R,EACAl6R,KAAKu6R,eAAeC,EAAW9xF,OADnC,CAIK1oM,KAAK0qR,YACN,GAAGv+Q,MAAMuI,MAAK,QAAU,IAAMkjR,EAAa53R,KAAKoD,UAAUQ,SAAQ,SAAU22D,GACxEigO,GAAajgO,EAAGpzB,WACpB,IAEJ,IAAI28J,EAAU,WACV,IAAI22F,EACA/B,EACAz2R,EAAM+C,SAAS/C,EAAMmB,QAAS+zR,IAAYl1R,EAAMg2R,cAChDwC,GAAeD,EACf9B,GAfG,KAkBH+B,EAAcD,EACd9B,EAnBG,IAqBH+B,EArBG,GAsBHn7R,OAAOq9C,qBAAqB+7O,IAG5Bz2R,EAAMs4R,eAAe7B,EAAYhwF,GACjC8xF,GAAa9B,EACbp5R,OAAO8E,sBAAsB0/L,GAErC,EACAA,GA1BA,CA2BJ,EACAi0F,EAAQr2R,UAAU02R,aAAe,SAAU30R,GACvC,IAAI63L,EAAMt7L,KAAKs4R,UACXr4Q,EAAWxc,EAAE24M,UACZp8M,KAAY,SAAKA,KAAKgF,SAAShF,KAAKoD,QAAS+zR,KAC9Cl3Q,GAAYA,GAEU,SAAtBxc,EAAE64M,gBACFhhB,EAAIyK,WAAazK,EAAIyK,WAAa9lL,EAEP,UAAtBxc,EAAE64M,kBACPhhB,EAAIyK,WAAazK,EAAIyK,WAAa9lL,EAE1C,EACA83Q,EAAQr2R,UAAUg5R,eAAiB,SAAUC,EAAYC,GACrD,GAAI56R,KAAKi5L,SAAU,CACf,IACI4hG,IADW,QAAkBF,GAAcC,EAAgBD,GACtC11R,cAAc,IAAMoyR,IACzC,QAAkBsD,IAClB,QAAUE,EAAW,CAACvD,GAAoB,CAACC,KAG3C,QAAUsD,EAAW,CAACtD,GAAmB,CAACD,GAElD,MACSqD,GAAcC,IACnBD,EAAW/2N,UAAUjoD,IAAIy7Q,GACzBuD,EAAWl2R,aAAa,gBAAiB,QACzCk2R,EAAWh8Q,gBAAgB,YAC3Bi8Q,EAAch3N,UAAUC,OAAOuzN,GAC/BwD,EAAcn2R,aAAa,gBAAiB,SAC5Cm2R,EAAcn2R,aAAa,WAAY,MAE3CzE,KAAK85R,cACT,EACA/B,EAAQr2R,UAAUqrO,cAAgB,SAAUtpO,GACxC,IAAI2J,EAAS3J,EAAE2J,OACXuN,EAAQvN,EAAO+5B,YAEf2zP,GADU96R,KAAKoD,QACFpD,KAAKoD,QAAQ6B,cAAc,IAAMyyR,IAC9CqD,EAAc/6R,KAAKoD,QAAQ6B,cAAc,IAAMwyR,GAC/CuD,EAAch7R,KAAKoD,QAAQ6B,cAAc,IAAM6yR,GAC/CmD,EAAej7R,KAAKoD,QAAQ6B,cAAc,IAAM4yR,GAChD9xF,EAAa34L,EAAO24L,WAsBxB,GArBIA,GAAc,IACdA,GAAcA,GAEd/lM,KAAKi5L,YACDj5L,KAAKksM,WAAelsM,KAAKi4R,cAAgBj4R,KAAKk4R,UAC9C8C,EAAch7R,KAAKoD,QAAQ6B,cAAc,IAAM4yR,GAC/CoD,EAAej7R,KAAKoD,QAAQ6B,cAAc,IAAM6yR,IAGhDkD,EAAY5xR,MAAMuR,MADlBorL,EApZK,GAqZqBA,EAAa,KAGb,OAEzB34L,EAAO8sE,YAAc9/D,KAAKkvG,KAAK3uG,EAAQorL,GA1ZnC,GA2ZLk1F,EAAa7xR,MAAMuR,MAASvN,EAAO8sE,YAAc9/D,KAAKkvG,KAAK3uG,EAAQorL,GAAe,KAGlFk1F,EAAa7xR,MAAMuR,MAAQ,QAGhB,IAAforL,EACA/lM,KAAK06R,eAAeI,EAAYC,QAE/B,GAAI3gR,KAAKkvG,KAAK3uG,EAAQorL,EAAa,KAAO34L,EAAO8sE,YAClDl6E,KAAK06R,eAAeK,EAAaD,OAEhC,CACD,IAAII,EAASl7R,KAAKoD,QAAQ6B,cAAc,IAAMuyR,EAAiB,IAAMJ,GACjE8D,IACAA,EAAOt3N,UAAUC,OAAOuzN,GACxB8D,EAAOz2R,aAAa,gBAAiB,SACrCy2R,EAAOz2R,aAAa,WAAY,KAExC,CACJ,EASAszR,EAAQr2R,UAAUm9L,kBAAoB,SAAUoG,EAASC,GACrD,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,aACDpF,KAAKy4R,iBACL,MACJ,IAAK,YACDxzF,EAAQiH,UAAYlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAIw7Q,GAAWn3R,KAAKoD,QAAQwgE,UAAUC,OAAOszN,GAIxG,EACAr0F,EAAW,EACP,QAAS,OACVi1F,EAAQr2R,UAAW,kBAAc,GAC1BohM,EAAW,CACjB,MACDi1F,EAEP,CA/b4B,CA+b1B,yJCleK,SAASoD,EAAa52R,EAAeujC,EAAWzC,EAAS+1P,EAAYlvF,EAAWtlJ,GACnF,IAAIy0O,EACAC,EACAC,EAAazzP,EAAUryB,cAS3B,GARmB,YAAf2lR,GACAC,EAAkBz0O,GAAU9e,EAAUloB,wBAAwBiB,OAC9Dy6Q,EAAgBj2P,EAAQzlB,wBAAwBiB,SAGhDw6Q,EAAkBvzP,EAAUloB,wBAAwBjF,MACpD2gR,EAAgBj2P,EAAQzlB,wBAAwBjF,OAEhD0gR,EAAkBC,EAClB,OAAOE,EAAgBj3R,EAAeujC,EAAWzC,EAAS+1P,EAAYlvF,EAAWtlJ,GAEhF,GAAI20O,EAAY,CACjB,IAAI5gR,EAAQ4gR,EAAW37Q,wBAAwBjF,MAC/C,OAAIA,EAAQ0gR,GAAkC,YAAfD,GAC3BE,EAAgB3gR,EAChBmtB,EAAU1+B,MAAM+lB,SAAWxU,EAAQ,KAC5B6gR,EAAgBj3R,EAAeujC,EAAWzC,EAAS+1P,EAAYlvF,EAAWtlJ,IAE9EvhB,CACX,CAEI,OAAOA,CAEf,CAaA,SAASm2P,EAAgBj3R,EAAeujC,EAAWzC,EAAS+1P,EAAYlvF,EAAWtlJ,GAC/E,IAAI0xO,EAAY/zR,EAAc,MAAO,CAAE9B,UAAW,UAAY24R,IAoB9D,OAnBAtzP,EAAUpkC,YAAY40R,GACtBA,EAAU50R,YAAY2hC,GAClBuhB,GACA0xO,EAAUlvR,MAAM4mB,SAAW,SAC3BsoQ,EAAUlvR,MAAMyX,OAAS+lC,EAAS,OAGlC0xO,EAAUlvR,MAAMgnB,UAAY0X,EAAU1+B,MAAMgnB,UAC5C0X,EAAU1+B,MAAM4mB,SAAW,UAGZ,YAAforQ,EACY,IAAI,IAAQ,CAAElvF,UAAWA,GAAaosF,GACxCI,YAAa,QAAO,MAAQ0C,EAAa,OAAQtzP,GAAWojD,aAAe,EAGzE,IAAI,IAAQ,CAAEghH,UAAWA,GAAaosF,GACxCI,YAAa,QAAO,MAAQ0C,EAAa,OAAQtzP,GAAWX,YAEnEmxP,CACX,CAUO,SAASmD,EAAcC,EAAWt4R,EAASu4R,GAC9C,GAAID,EAAW,CACX,IAAIE,GAAO,QAAO,iBAAkBx4R,GAChCw4R,EACKD,GAAWA,IAAYC,IACxBF,EAAUhsG,UACVtsL,EAAQqS,cAAc/R,YAAYk4R,IAClC,QAAOx4R,KAIXs4R,EAAUhsG,WACV,QAAOtsL,GAEf,CACJ,CCtGA,IACQw/L,EADJ73B,GACI63B,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,EAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAaImhL,EAAQ,QACRC,EAAS,SACTC,EAAU,YACVC,EAAS,gBACTpzE,EAAW,aACXqzE,EAAY,cACZC,EAAU,UACVC,EAAY,YACZC,EAAY,YACZC,EAAa,aACbC,EAAO,OACPC,EAAM,MACNC,EAAM,MACNC,EAAQ,UACRC,EAAO,cACP73E,EAAW,aACX83E,EAAO,cACPC,EAAQ,UACRx3E,EAAM,QACNy3E,EAAQ,eAKRxlC,EAA+B,SAAU7iP,GAEzC,SAAS6iP,IACL,OAAkB,OAAX7iP,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAsBA,OAzBA+qK,EAAUssF,EAAe7iP,GAIzBsuL,EAAW,EACP,QAAS,OACVu0D,EAAc31P,UAAW,cAAU,GACtCohM,EAAW,EACP,QAAS,aACVu0D,EAAc31P,UAAW,gBAAY,GACxCohM,EAAW,EACP,QAAS,SACVu0D,EAAc31P,UAAW,YAAQ,GACpCohM,EAAW,EACP,QAAS,YACVu0D,EAAc31P,UAAW,eAAW,GACvCohM,EAAW,EACP,QAAS,QACVu0D,EAAc31P,UAAW,WAAO,GACnCohM,EAAW,EACP,QAAS,cACVu0D,EAAc31P,UAAW,iBAAa,GACzCohM,EAAW,EACP,QAAS,UACVu0D,EAAc31P,UAAW,gBAAY,GACjC21P,CACX,CA3BkC,CA2BhC,MAKE7sF,EAA0B,SAAUh2J,GAEpC,SAASg2J,IACL,OAAkB,OAAXh2J,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAmBA,OAtBA+qK,EAAUP,EAAUh2J,GAIpBsuL,EAAW,EACP,QAAS,OACVt4B,EAAS9oK,UAAW,eAAW,GAClCohM,EAAW,EACP,QAAS,KACVt4B,EAAS9oK,UAAW,UAAM,GAC7BohM,EAAW,EACP,SAAS,IACVt4B,EAAS9oK,UAAW,iBAAa,GACpCohM,EAAW,EACP,QAAW,GAAIt4B,IAChBA,EAAS9oK,UAAW,aAAS,GAChCohM,EAAW,EACP,QAAS,KACVt4B,EAAS9oK,UAAW,YAAQ,GAC/BohM,EAAW,EACP,QAAS,KACVt4B,EAAS9oK,UAAW,WAAO,GACvB8oK,CACX,CAxB6B,CAwB3B,MAKEsyH,EAAuC,SAAUtoR,GAEjD,SAASsoR,IACL,OAAkB,OAAXtoR,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAUA,OAbA+qK,EAAU+xH,EAAuBtoR,GAIjCsuL,EAAW,EACP,QAAS,cACVg6F,EAAsBp7R,UAAW,cAAU,GAC9CohM,EAAW,EACP,QAAS,MACVg6F,EAAsBp7R,UAAW,gBAAY,GAChDohM,EAAW,EACP,QAAS,SACVg6F,EAAsBp7R,UAAW,cAAU,GACvCo7R,CACX,CAf0C,CAexC,MAOEC,EAA0B,SAAUvoR,GASpC,SAASuoR,EAASh1R,EAAS3E,GACvB,IAAInB,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAMnD,OALAiC,EAAM+6R,OAAS,GACf/6R,EAAMkiM,UAAY,IAAI,KAAU,CAAC,GACjCliM,EAAMg7R,WAAY,EAClBh7R,EAAMi7R,SAAW,GACjBj7R,EAAMk7R,cAAgB,OACfl7R,CACX,CAgnEA,OAhoEA8oK,EAAUgyH,EAAUvoR,GAuBpBuoR,EAASr7R,UAAUirM,UAAY,WAC3B,IAAK3sM,KAAKo9R,OAAQ,CACd,IAAI9S,OAAK,EACT,GAA6B,oBAAzBtqR,KAAKoD,QAAQ4b,QAA+B,CAC5CsrQ,EAAKtqR,KAAKuE,cAAc,KAAM,CAC1BmzB,IAAI,QAAY13B,KAAKu/L,iBAAkB98L,UAAW,qBAAuBzC,KAAKu/L,kBAElF,IAAI89F,GAAS,QAAS,gBAAiBr9R,KAAKoD,UAC5C,QAAY,CAACpD,KAAKoD,SAAU,CAAC,YAAa,QAAS,KAAOpD,KAAKu/L,kBAC/Dv/L,KAAKs9R,cAAgBt9R,KAAKoD,QAC1BpD,KAAKoD,QAAUknR,GACf,QAAS,gBAAiB+S,EAAQr9R,KAAKoD,QAC3C,KACK,CACDknR,EAAKtqR,KAAKuE,cAAc,KAAM,CAAEmzB,IAAI,QAAY13B,KAAKu/L,oBACrD,QAAO,GAAGpzL,MAAMuI,KAAK1U,KAAKoD,QAAQg5C,WAAU,GAAM/+B,UAAWitQ,GAC7D,IAAIpa,EAASlwQ,KAAKoD,QAAQuB,mBACtBurQ,EACAlwQ,KAAKoD,QAAQqS,cAAc1Q,aAAaulR,EAAIpa,GAG5ClwQ,KAAKoD,QAAQqS,cAAc/R,YAAY4mR,GAE3CtqR,KAAKs9R,cAAgBhT,CACzB,CACAtqR,KAAKs9R,cAAcl0R,MAAMwjB,QAAU,MACvC,CACA,GAA6B,aAAzB5sB,KAAKoD,QAAQ4b,QAAwB,CAKrC,IAJA,IAAIs8K,EAAMt7L,KAAKoD,QACXkkN,GAAa,QAAS,gBAAiBhsB,GAEvC3uK,GADA29P,EAAKtqR,KAAKuE,cAAc,MACdvE,KAAKuE,cAAc,WAAY,CAAE9B,UAAW,KAAOzC,KAAKu/L,gBAAkB,cAC/EhwH,EAAM,EAAG+kC,EAAMgnF,EAAIzyD,WAAWrlI,OAAQ+rE,EAAM+kC,EAAK/kC,IACtD+6M,EAAG7lR,aAAa62L,EAAIzyD,WAAWt5D,GAAKg4I,SAAUjsB,EAAIzyD,WAAWt5D,GAAKi4I,WAEtElsB,EAAIrtH,WAAWlpE,aAAa4nB,EAAS2uK,IACrC,QAAOA,GACPA,EAAMgvF,EACN39P,EAAQjpB,YAAY43L,IACpB,QAAS,gBAAiBgsB,EAAYhsB,GACtCt7L,KAAKs9R,cAAgB3wQ,EACrB3sB,KAAKoD,QAAUk4L,EACVt7L,KAAKoD,QAAQs0B,KACd13B,KAAKoD,QAAQs0B,IAAK,QAAY13B,KAAKu/L,iBAE3C,CACJ,EAOAw9F,EAASr7R,UAAU6a,OAAS,WACxB,IAAIta,EAAQjC,KACZA,KAAKwmK,aACLxmK,KAAK01F,cACL11F,KAAKu4M,aACLv4M,KAAKqtM,iBACL,IAAI1gL,EAAU3sB,KAAK+lN,aAEf/lN,KAAK0hN,UAAY1hN,KAAKu9R,kBAAoBv9R,KAAKo8P,SAAWp8P,KAAK2tN,YAC/DvpN,uBAAsB,WAClB+2R,EAAal5R,EAAMsC,cAAeooB,EAAS1qB,EAAMmB,QAAS,UAAWnB,EAAMiqM,UAC/E,GAER,EACA6wF,EAASr7R,UAAU8kK,WAAa,WAC5B,IAAI75I,EAAU3sB,KAAK+lN,aACdp5L,IACDA,EAAU3sB,KAAKuE,cAAc,MAAO,CAAE9B,UAAW,KAAOzC,KAAKu/L,gBAAkB,aAC3Ev/L,KAAKo9R,OACLp9R,KAAKoD,QAAQqS,cAAc1Q,aAAa4nB,EAAS3sB,KAAKoD,SAGtD1E,SAAS+c,KAAK/X,YAAYipB,IAG9B3sB,KAAKikN,WACL,QAAS,CAACt3L,GAAU3sB,KAAKikN,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAEpExH,KAAKksM,WACLv/K,EAAQi3C,UAAUjoD,IAAIypM,GAE1Bz4L,EAAQjpB,YAAY1D,KAAKoD,SACrBpD,KAAKo9R,QAAUp9R,KAAKw9R,gBACfx9R,KAAKoN,QACNpN,KAAKy9R,sBAAsB9wQ,IAGnC3sB,KAAK09R,cAAgB19R,KAAK29R,eAC9B,EACAZ,EAASr7R,UAAUg0F,YAAc,WAC7B,IAAK11F,KAAKmqB,MAAM3mB,OAAQ,CACpB,IAAI2mB,EAAQ,KAASuvO,sBAAsB15P,KAAKoD,QAAS,CAAE2sE,OAAQ,CAAE7wD,MAAO,WAC5Elf,KAAKk+L,cAAc,CAAE/zK,MAAOA,IAAS,IACjC,YAAenqB,KAAKo9R,OACpBp9R,KAAKoD,QAAUpD,KAAK49R,mBAAmB59R,KAAKoD,SAG5CpD,KAAKoD,QAAQ2kI,UAAY,EAEjC,CACA,IAAIuiJ,EAAKtqR,KAAK69R,YAAY79R,KAAKmqB,OAG/B,IAFA,QAAOlkB,MAAMvE,UAAUyK,MAAMuI,KAAK41Q,EAAGjtQ,UAAWrd,KAAKoD,SACrDpD,KAAKoD,QAAQwgE,UAAUjoD,IAAI,iBACvB3b,KAAKo9R,UACAp9R,KAAKw9R,eAAiBx9R,KAAKoD,QAAQwgE,UAAU5+D,SAAS,eACvDhF,KAAK89R,kBAAkB99R,KAAKoD,SAE5BpD,KAAKu9R,iBAAiB,CACtB,IAAI5wQ,EAAU3sB,KAAK+lN,aACf/lN,KAAKoD,QAAQwgE,UAAU5+D,SAAS,cAChCm2R,EAAan7R,KAAKuE,cAAeooB,EAAS3sB,KAAKoD,QAAS,UAAWpD,KAAKksM,WAGxEivF,EAAan7R,KAAKuE,cAAeooB,EAAS3sB,KAAKoD,QAAS,UAAWpD,KAAKksM,UAEhF,CAER,EACA6wF,EAASr7R,UAAU62M,WAAa,WAC5B,IAAI5rL,EAAU3sB,KAAK+lN,aACnB,GAAI/lN,KAAKoN,OAAQ,CAGb,IAFA,IAAIA,OAAS,EACT2wR,GAAc,QAAU/9R,KAAKoN,QACxBL,EAAI,EAAGunG,EAAMypL,EAAYv6R,OAAQuJ,EAAIunG,EAAKvnG,IAC/CK,EAAS2wR,EAAYhxR,GACjB/M,KAAKo9R,OACL,KAAazhR,IAAIvO,EAAQ,QAASpN,KAAKg+R,uBAAwBh+R,MAG3D,KAAQw5L,MACR,IAAI,KAAMpsL,EAAQ,CAAEwsR,QAAS55R,KAAKo4R,aAAaz9P,KAAK36B,QAGpD,KAAa2b,IAAIvO,EAAQ,cAAepN,KAAKi+R,aAAcj+R,MAKvE,GADAA,KAAK+e,cAAgB3R,GAChBpN,KAAKo9R,OAAQ,CACd,KAAazhR,IAAI3b,KAAK+e,cAAe,4BAA6B/e,KAAK+sO,cAAe/sO,MACtF,IAAK,IAAIoF,EAAK,EAAG7F,GAAK,QAAoBS,KAAK+e,eAAgB3Z,EAAK7F,EAAGiE,OAAQ4B,IAAM,CACjF,IAAIoyG,EAAWj4G,EAAG6F,GAClB,KAAauW,IAAI67F,EAAU,4BAA6Bx3G,KAAK+sO,cAAe/sO,KAChF,CACJ,CACJ,CACK,KAAQi5L,WACTj5L,KAAKk+R,qBAAuBl+R,KAAKm+R,aAAaxjQ,KAAK36B,MACnDA,KAAKo+R,yBAA2Bp+R,KAAKyrO,iBAAiB9wM,KAAK36B,MAC3D,KAAa2b,IAAI3b,KAAKo9R,OAAS1+R,SAAWiuB,EAAS,YAAa3sB,KAAKk+R,qBAAsBl+R,MAC3F,KAAa2b,IAAIjd,SAAU,YAAasB,KAAKo+R,yBAA0Bp+R,OAE3EA,KAAKq+R,qBAAuBr+R,KAAKgmN,aAAarrL,KAAK36B,MACnD,KAAa2b,IAAIjd,SAAU,QAASsB,KAAKq+R,qBAAsBr+R,MAC/DA,KAAKs+R,kBAAkB3xQ,GACvB3sB,KAAKwoO,UAAW,QAAa77M,EAAS,CAAEvhB,SAAU,IAAMsxR,GAC5D,EACAK,EAASr7R,UAAU48R,kBAAoB,SAAUl7R,GAC7C,IAAIi2M,EAAa,CACbklF,UAAWpC,EACXqC,QAAStC,EACTziR,MAAOoiR,EACP4C,UAAWrC,EACXsC,WAAYrC,EACZ/6P,OAAQw6P,GAER97R,KAAKo9R,SACL/jF,EAAWjgM,KAAOkjR,EAClBjjF,EAAW9/L,IAAMgjR,EACjBljF,EAAW3gM,IAAM8jR,GAErB,IAAI,KAAep5R,EAAS,CACxBu2M,UAAW35M,KAAK2+R,gBAAgBhkQ,KAAK36B,MACrCq5M,WAAYA,GAEpB,EACA0jF,EAASr7R,UAAU+pO,iBAAmB,SAAUhoO,IACxC,QAAQA,EAAE2J,OAAQ,MAAQpN,KAAKu/L,gBAAkB,cAAgBv/L,KAAK+lN,eACjE,QAAQtiN,EAAE2J,OAAQ,MAAQpN,KAAKu/L,gBAAkB,WACtDv/L,KAAK4+R,UAAU5+R,KAAKo9R,OAAS,KAAOp9R,KAAKg9R,OAAOx5R,OAAQC,EAEhE,EACAs5R,EAASr7R,UAAUu/B,WAAa,SAAUx9B,GACpB,KAAdA,EAAE8gF,SAAgC,KAAd9gF,EAAE8gF,SAClB9gF,EAAE2J,SAAW3J,EAAE2J,OAAOw2D,UAAU5+D,SAAS,kBAAoBvB,EAAE2J,OAAOw2D,UAAU5+D,SAAS,iBACzFvB,EAAEkW,gBAGd,EACAojR,EAASr7R,UAAUi9R,gBAAkB,SAAUl7R,GAC3C,IAAIo7R,EAAa,GACb7E,EAAOv2R,EAAE2J,OACT0xR,EAAe9+R,KAAKo9R,SAAWp9R,KAAKw9R,gBAAkBx9R,KAAKoD,QAAQwgE,UAAU5+D,SAAS,eACnFhF,KAAKg9R,OAAOx5R,OAAS,EAK5B,GAJAC,EAAEkW,iBACE3Z,KAAKu9R,iBAAiC,KAAd95R,EAAE8gF,SAAkBy1M,EAAKp2N,UAAU5+D,SAAS,iBACpEhF,KAAK++R,qBAAqB,CAAChD,EAASnzE,GAAW,EAAC,QAAQoxE,EAAM,MAAQh6R,KAAKu/L,gBAAkB,cAE7Fu/F,EACA,OAAQr7R,EAAEilM,QACN,KAAK2zF,EACDwC,EAAaxC,EACb54R,EAAEilM,OAASyzF,EACX,MACJ,KAAKC,EACDyC,EAAazC,EACb34R,EAAEilM,OAASwzF,EACX,MACJ,KAAKC,EACD0C,EAAa1C,EACb14R,EAAEilM,OAAS2zF,EACX,MACJ,KAAKH,EACD2C,EAAa3C,EACbz4R,EAAEilM,OAAS,QAIlB,GAAI1oM,KAAKksM,UACV,OAAQzoM,EAAEilM,QACN,KAAK0zF,EACD0C,GAAe,EACfD,EAAazC,EACb34R,EAAEilM,OAAS2zF,EACX,MACJ,KAAKA,EACDyC,GAAe,EACfD,EAAaxC,EACb54R,EAAEilM,OAAS0zF,EAIvB,OAAQ34R,EAAEilM,QACN,KAAKyzF,EACL,KAAKD,EACL,KAAKK,EACL,KAAKD,EACL,KAAKE,EACDx8R,KAAKg/R,iBAAiBv7R,GACtB,MACJ,KAAK44R,EACDr8R,KAAKi/R,qBAAqBx7R,GAC1B,MACJ,KAAK24R,EACDp8R,KAAKk/R,kBAAkBz7R,GACvB,MACJ,KAAKo4R,EACG77R,KAAKw9R,eAAkC,SAAjBxD,EAAKh7Q,SAAsBg7Q,EAAKp2N,UAAU5+D,SAAS,eACzEhF,KAAKg+R,uBAAuBv6R,GAG5BzD,KAAKi/R,qBAAqBx7R,GAE9B,MACJ,KAAKq4R,EACD97R,KAAKk/R,kBAAkBz7R,GAG3Bq7R,IACAr7R,EAAEilM,OAASm2F,EAEnB,EACA9B,EAASr7R,UAAUs9R,iBAAmB,SAAUv7R,GAC5C,IAAI07R,EAAMn/R,KAAKo/R,gBACXC,EAAc57R,EAAEilM,SAAWyzF,GAAa14R,EAAEilM,SAAW4zF,GAAQ74R,EAAEilM,SAAW8zF,EAAO,EAAI2C,EAAIhkC,kBAAoB,EAC7GmkC,EAASD,EACTE,EAAMv/R,KAAKw/R,aAAaL,EAAKpD,GAC7BwD,IACI97R,EAAEilM,SAAW6zF,GAAO94R,EAAEilM,SAAW4zF,IACjCgD,EAASt/R,KAAKy/R,OAAON,EAAKI,IAE9BA,EAAI37N,UAAUC,OAAOk4N,GACjBt4R,EAAEilM,SAAW6zF,GAAO94R,EAAEilM,SAAW4zF,IAC7B74R,EAAEilM,SAAWyzF,EACbmD,IAGAA,IAEAA,KAAY77R,EAAEilM,SAAWyzF,EAAYgD,EAAIhkC,mBAAqB,KAC9DmkC,EAASD,KAIrB,IAAIK,EAAMP,EAAI9hR,SAASiiR,GACvBA,EAASt/R,KAAK6sO,UAAU6yD,EAAKJ,EAAQ77R,EAAEilM,QACvCy2F,EAAI9hR,SAASiiR,GAAQ17N,UAAUjoD,IAAIogR,GACnCoD,EAAI9hR,SAASiiR,GAAQ1pR,OACzB,EACAmnR,EAASr7R,UAAUmrO,UAAY,SAAU6yD,EAAK52R,EAAO4/L,GACjD,IAAIy2F,EAAMn/R,KAAKo/R,gBACXC,EAAc32F,IAAWyzF,GAAazzF,IAAW4zF,GAAQ5zF,IAAW8zF,EAAO,EAAI2C,EAAIhkC,kBAAoB,EAmB3G,OAlBIukC,EAAI97N,UAAU5+D,SAASi3R,IAAcyD,EAAI97N,UAAU5+D,SAAS6/M,IAAa66E,EAAI97N,UAAU5+D,SAAS23R,MAC5Fj0F,IAAWyzF,GAAarzR,IAAUq2R,EAAIhkC,kBAAoB,GAGrDzyD,IAAWwzF,GAAqB,IAAVpzR,EAF3BA,EAAQu2R,EAKF32F,IAAWyzF,GAAezzF,IAAW2zF,EAC3CvzR,IAGAA,OAGR42R,EAAMP,EAAI9hR,SAASvU,IACX86D,UAAU5+D,SAASi3R,IAAcyD,EAAI97N,UAAU5+D,SAAS6/M,IAAa66E,EAAI97N,UAAU5+D,SAAS23R,MAChG7zR,EAAQ9I,KAAK6sO,UAAU6yD,EAAK52R,EAAO4/L,IAEhC5/L,CACX,EACAi0R,EAASr7R,UAAU09R,cAAgB,SAAUO,GACzC,IAAI19R,EAAQjC,KAEZ,QADkB,IAAd2/R,IAAwBA,EAAY3/R,KAAKg9R,OAAOx5R,QAChDxD,KAAKo9R,OAAQ,CACb,IAAI16D,EAAQ,CAAC1iO,KAAK+lN,cAAc19M,OAAO,GAAG8D,MAAMuI,MAAK,QAAU,IAAMmoR,KAAS8C,GAC1EC,EAAW,GAQf,OAPe,QAAU,IAAM/C,GACtBj5R,SAAQ,SAAUoqE,GACnB/rE,EAAMmB,QAAQs0B,KAAOs2C,EAAKt2C,GAAGlwB,MAAM,KAAK,IACxCo4R,EAAS19R,KAAK8rE,EAEtB,IACA00J,EAAQ,CAAC1iO,KAAK+lN,cAAc19M,OAAO,GAAG8D,MAAMuI,KAAKkrR,IAAWD,IACrD,QAAkBj9D,GAAS,MAAO,QAAO,iBAAkBA,EACtE,CAEI,OAAO1iO,KAAK+lN,aAAa1oM,SAASsiR,EAE1C,EACA5C,EAASr7R,UAAUu9R,qBAAuB,SAAUx7R,GAChD,IAAI0yG,EACAgpL,EAAMn/R,KAAKo/R,gBACXG,EAAMv/R,KAAKw/R,aAAaL,EAAKpD,GACjC,GAAIwD,EAAK,CACL,IAAID,EAASt/R,KAAKy/R,OAAON,EAAKI,GAC1BvC,EAASh9R,KAAKg9R,OAAO30R,OAAOi3R,GAC5Bx1Q,EAAO9pB,KAAKolH,QAAQ43K,GACpBlzQ,EAAKK,MAAM3mB,QACXxD,KAAKg9R,OAAO96R,KAAKo9R,GACjBt/R,KAAK6/R,QAAU,QACf7/R,KAAK0oM,OAASjlM,EAAEilM,OAChB1oM,KAAKyvC,SAAS8vP,EAAKz1Q,GAAO,GAAI,EAAGrmB,IAG7BA,EAAEilM,SAAWmzF,IACT77R,KAAKo9R,QAAiC,IAAvBp9R,KAAKg9R,OAAOx5R,OAC3BxD,KAAK++R,qBAAqB,CAACn2E,GAAW,CAAC5oN,KAAK+lN,eAG5Cw5E,EAAI37N,UAAUC,OAAOk4N,GAEzBwD,EAAI37N,UAAUjoD,IAAIitM,GAClBzyG,EAAY,CAAE/yG,QAASm8R,EAAKz1Q,KAAMA,EAAMvW,MAAO9P,GAC/CzD,KAAKg7L,QAAQ,SAAU7kF,GACvBn2G,KAAK4+R,UAAU,KAAMn7R,GAGjC,CACJ,EACAs5R,EAASr7R,UAAUw9R,kBAAoB,SAAUz7R,GACzCzD,KAAKg9R,OAAOx5R,QACZxD,KAAK6/R,QAAU,OACf7/R,KAAK4+R,UAAU5+R,KAAKg9R,OAAOx5R,OAAQC,IAG/BA,EAAEilM,SAAWozF,GACb97R,KAAK4+R,UAAU,KAAMn7R,EAGjC,EACAs5R,EAASr7R,UAAUqrO,cAAgB,SAAUtpO,GACzCzD,KAAK4+R,UAAU,KAAMn7R,EACzB,EACAs5R,EAASr7R,UAAU02R,aAAe,SAAU30R,GACxCzD,KAAKi9R,WAAY,EACjBj9R,KAAKi+R,aAAax6R,EAAEg6J,cACxB,EACAs/H,EAASr7R,UAAUu8R,aAAe,SAAUx6R,GACxCA,EAAEkW,iBACF3Z,KAAKqyB,cAAgB5uB,EAAE2J,OACvBpN,KAAK8/R,SAAU,EACf9/R,KAAK8lM,MAAQriM,EAAE2tM,eAAiB3tM,EAAE2tM,eAAe,GAAGtL,MAAQ,EAAIriM,EAAEqiM,MAAQ,EAC1E9lM,KAAKimM,MAAQxiM,EAAE2tM,eAAiB3tM,EAAE2tM,eAAe,GAAGnL,MAAQ,EAAIxiM,EAAEwiM,MAAQ,EAC1EjmM,KAAK4+R,UAAU,KAAMn7R,GACjBzD,KAAK8/R,UACD9/R,KAAK+/R,QAAQt8R,EAAE2J,SACfpN,KAAKyvC,SAAS,KAAM,KAAMzvC,KAAKimM,MAAOjmM,KAAK8lM,MAAOriM,GAEtDzD,KAAK8/R,SAAU,EAEvB,EAEA/C,EAASr7R,UAAUk9R,UAAY,SAAUoB,EAASv8R,EAAGw8R,GACjD,IAAIh+R,EAAQjC,KAGZ,QAFgB,IAAZggS,IAAsBA,EAAU,QAC1B,IAANv8R,IAAgBA,EAAI,MACpBzD,KAAKkgS,gBAAiB,CACtB,IACIC,EAGA5jQ,EAJA6jQ,OAAM,EAENC,EAAYrgS,KAAK+lN,aACjBqpD,OAAkB,EAElBkxB,EAAStgS,KAAKugS,YACdC,GAAU,EACVp+E,EAAMpiN,KAAKo9R,OAASkD,EAAO98R,OAAS,EAAI68R,EAAUllC,kBAClDslC,EAAOzgS,KAAKo9R,QAAkB,IAARh7E,GAAY,QAAO,QAASk+E,EAAOl+E,EAAM,KAC7D,QAAU,iBAAkBi+E,GAAWj+E,EAAM,GAQnD,GAPIpiN,KAAKo9R,QAAUqD,EAAK78N,UAAU5+D,SAAS,aACvCo7R,EAAMpgS,KAAKw/R,aAAaiB,EAAM73E,KAE1Bw3E,EAAIx8N,UAAUC,OAAO+kJ,GAEzB43E,GAAU,IAETA,EAAS,CACV,IAAIE,EAAWj9R,GAAKA,EAAE2J,QAAUpN,KAAK2gS,MAAMl9R,EAAE2J,QAEzCpN,KAAK0/R,IADLgB,GAIWD,EAAKpjR,SAAS,GAE7B8iR,EAASngS,KAAKg9R,OAAOx5R,OAASxD,KAAKolH,QAAQplH,KAAKg9R,QAAU,KAC1DzgQ,EAAU4jQ,EAASA,EAAOh2Q,MAAQnqB,KAAKmqB,MACvCilP,EAAkB,CAAEhsQ,QAASq9R,EAAMG,WAAYT,EAAQh2Q,MAAOoS,EAAShpB,MAAO9P,EAAGuvG,QAAQ,EAAO5gB,WAAW,GAC3GpyF,KAAKg7L,QAAQ,cAAeo0E,GAAiB,SAAUC,GACnD,IAAIpJ,EACA46B,EAEA9hE,EA+BA+hE,EACAC,EACAC,EAlCAC,EAAU,GAEV/3O,GAAUmmN,EAAkBr8J,QAC5B9pD,GAAUjnD,EAAM69R,WACZ79R,EAAMm7R,QACNn3B,GAAW,QAAQw6B,EAAM,IAAM5D,GAC3B56R,EAAMu7R,gBACNv3B,EAASxwP,cAAcrM,MAAM+mB,UAAY,IACzC,QAAQswQ,EAAM,gBAAgBh8R,aAAa,gBAAiB,UAEhExC,EAAMi/R,oBAAoBj7B,GAC1Bw1B,GAAc,QAAYx1B,EAAS5oP,SAAS,GAAI,KAAU4oP,EAAS5oP,SAAS,KAC5E0hN,GAAW,QAAYknC,EAAU,OACxBvmC,OACTuhE,EAAUh7B,EAASvuO,GACnBqnM,EAASrvC,WACT,QAAOu2E,IAGPhkQ,EAAMk/R,gBAAgBV,GAAM,GAEhCI,EAAY,CAAEz9R,QAASq9R,EAAMG,WAAYT,EAAQh2Q,MAAOoS,GACxDt6B,EAAM+4L,QAAQ,UAAW6lG,GACzB5+R,EAAM+6R,OAAOzmR,MACRtU,EAAMm7R,SACP,KAAav5N,OAAO48N,EAAM,UAAWx+R,EAAMg/B,YACrB,UAAlBh/B,EAAM49R,UACN59R,EAAM49R,QAAU,MAI5B59R,EAAMm/R,sBAIN,IAAIC,EAAYp/R,EAAM8jN,cAAgB9jN,EAAMm9R,gBACxCn9R,EAAM69R,UACF79R,EAAM89R,QAAQt8R,EAAE2J,SAChBnL,EAAMwtC,SAAS,KAAM,KAAMxtC,EAAMgkM,MAAOhkM,EAAM6jM,MAAOriM,GAEzDxB,EAAM69R,SAAU,GAEhB79R,EAAMm7R,QAAUiE,GAAaJ,EAAQz9R,QAErCs9R,EAAW,IAAIzuK,OAAO,gBAAkBpwH,EAAMmB,QAAQs0B,GAAK,UAAU/rB,KAAKs1R,GAAS,GACnFF,EAAWM,EAAUp8R,cAAc,QAAU67R,EAAW,MACxDE,EAAUN,GAAYW,EAAUp8R,cAAc,QAAUy7R,EAAShpQ,GAAK,OAEjE2pQ,IACLN,EAAWM,EAAUp8R,cAAc,2BACnC+7R,EAAUN,GAAYW,EAAUp8R,cAAc,QAAUy7R,EAAShpQ,GAAK,OAE1E,IAAI4pQ,EAAWZ,GAAYA,EAASpqM,iBAAiB,gBACrD,GAAIptC,GAAUjnD,EAAMu7R,eAAiBwC,IAAasB,EAAe,OAC7Dr/R,EAAMs/R,eAAe99R,QAEpB,GAAIylD,IAAWjnD,EAAMu7R,eAAiBuD,IAAaC,GAA4B,SAAlB/+R,EAAM49R,UAAuB59R,EAAM+6R,OAAOx5R,SAAWvB,EAAMm7R,QAAkC,IAAxBn7R,EAAM+6R,OAAOx5R,QAAe,CAC/J,IAAI83L,EAAO73L,GAAKA,EAAE2J,OAAOw2D,UAAU5+D,SAAS,cACtC,QAAQvB,EAAE2J,OAAQ,mBAAqB,KACzCkuL,GACAA,EAAMA,EAAIr2L,cAAc,iBACpBhD,EAAM07R,iBAAoBriG,GAAOr5L,EAAMu/R,SAASlmG,EAAI5jK,IAAI,GAAMl0B,QAAUvB,EAAM+6R,OAAOx5R,SACrFvB,EAAM28R,UAAU38R,EAAM+6R,OAAO/6R,EAAM+6R,OAAOx5R,OAAS,GAAIC,GAAG,IAI9DxB,EAAM28R,UAAU38R,EAAM+6R,OAAO/6R,EAAM+6R,OAAOx5R,OAAS,GAAIC,EAE/D,MACK,GAAIylD,IAAW+2O,IAAeD,IAAa/9R,EAAMu7R,eAAiBv7R,EAAM+6R,OAAOx5R,QACxD,IAAxBvB,EAAM+6R,OAAOx5R,QAAgBk9R,GAAYW,IAAcX,EAASjrR,eAChExT,EAAM28R,UAAU,KAAMn7R,QAErB,GAAIylD,IAAU,QAAkB82O,IAAY/9R,EAAM+6R,OAAOx5R,OAC1DvB,EAAM28R,UAAU,KAAMn7R,QAErB,IAAIylD,GAAWjnD,EAAMm7R,QAAW4C,GAAmC,IAAxB/9R,EAAM+6R,OAAOx5R,QAAiBvB,EAAMw/R,cAI/E,GAAIv4O,GAAUjnD,EAAMm7R,QAAU35R,GAAKA,EAAE2J,QACd,IAAxBnL,EAAM+6R,OAAOx5R,SAAgB,QAAQC,EAAE2J,OAAQ,4BAC/CnL,EAAM28R,UAAU,EAAGn7R,QAElB,GAAIylD,IAAWjnD,EAAMm7R,SAAU,QAAU,iBAAkBiD,GAAWL,EAAU,IAAkB,IAAZv8R,EAAE+T,MACzFvV,EAAM28R,UAAU,KAAMn7R,OAErB,CACD,IAAIylD,GAA6B,UAAlBjnD,EAAM49R,SAAyC,UAAlB59R,EAAM49R,QAG7C,CACD,IAAIV,EAAMl9R,EAAMm9R,gBACZsC,EAAQz/R,EAAMu9R,aAAaL,EAAKv2E,GAWpC,GAVI84E,IACAA,EAAMj9R,aAAa,gBAAiB,SACpCi9R,EAAM99N,UAAUC,OAAO+kJ,IACnBymD,EAAkBj9K,WAAasuM,GAA8B,SAAlBz+R,EAAM49R,WACjD6B,EAAM99N,UAAUjoD,IAAIogR,GACft4R,EAAE2J,QAAW3J,EAAE2J,OAAOw2D,UAAU5+D,SAAS,oBAC1C08R,EAAM9rR,WAIbszC,GAAUjnD,EAAMu7R,eAAiBkD,GAAuD,UAA3CA,EAAS9hS,aAAa,kBACzB,SAA3C8hS,EAAS9hS,aAAa,iBAA6B,EAC/C,QAAQ8hS,EAAU,4BAClBz+R,EAAM+6R,OAAS,GAGf/6R,EAAM+6R,OAAOzmR,MAEjBtU,EAAM+6R,OAAO96R,KAAKD,EAAM0/R,QACxB,IAAIC,EAAS3/R,EAAMmjH,QAAQnjH,EAAM+6R,QACjC0D,EAASj8R,aAAa,gBAAiB,QACvCxC,EAAMwtC,SAASixP,EAAUkB,GAAS,GAAI,EAAGn+R,EAC7C,CACJ,MA5BIxB,EAAMs/R,eAAe99R,GA6BrBxB,EAAM+6R,OAAOx5R,OAAS,IACM,UAAxBvB,EAAMk7R,eAAqD,UAAxBl7R,EAAMk7R,gBACzCl7R,EAAM07R,gBAAkB17R,EAAMy7R,cAC9Bz7R,EAAMk7R,cAAgB,QAGlC,MA/CIl7R,EAAMw/R,eAAgB,EACtBx/R,EAAM28R,UAAU,EAAGn7R,GA+CvBxB,EAAM4/R,oBACV,GACJ,CACJ,CACJ,EACA9E,EAASr7R,UAAU0/R,oBAAsB,WAErC,GAAIphS,KAAKo8P,SAAWp8P,KAAK0hN,UAAmC,IAAvB1hN,KAAKg9R,OAAOx5R,OAAc,CAE3D,IAAIs+R,EAAU9hS,KAAK8hS,QAAQp0R,OAAO,EAAG1N,KAAKmqB,MAAM3mB,QAChDxD,KAAKiuM,cAAc,CAAC,aAEpBjuM,KAAK8hS,QAAUA,EACf9hS,KAAKguM,sBACT,CACJ,EACA+uF,EAASr7R,UAAUqgS,iBAAmB,SAAUj4Q,EAAM8sN,GAClD,IAAI,QAAkB9sN,GAClB,OAAO,MAEP,QAAkB8sN,KAClBA,EAAQ,GAEZ,IAAI7mK,EAAS/vE,KAAKgiS,UAAUprD,GAC5B,MAAO,CAAEvrN,KAAMvB,EAAKimD,EAAO1kD,MAAOqM,GAAI5N,EAAKimD,EAAOr4C,IAAKvN,MAAOL,EAAKimD,EAAO7wD,OAAQ+iR,UAAWn4Q,EAAKimD,EAAOkyN,WACrG39E,QAASx6L,EAAKimD,EAAOu0I,SAAU9nJ,IAAK1yC,EAAKimD,EAAOvT,KACxD,EACAugO,EAASr7R,UAAU6+R,UAAY,WAC3B,IAAIt+R,EAAQjC,KACRsgS,EAAS,GAMb,MALA,GAAGn0R,MAAMuI,KAAKhW,SAAS43F,iBAAiB,IAAMumM,IAAQj5R,SAAQ,SAAUoqE,KAC/D,QAAkBA,EAAK/oE,cAAc,IAAMy3R,KAAUz6R,EAAMu/R,SAASxzN,EAAK/oE,cAAc,IAAMy3R,GAAMhlQ,IAAI,GAAMl0B,QAC9G88R,EAAOp+R,KAAK8rE,EAEpB,IACOsyN,CACX,EACAvD,EAASr7R,UAAUw+R,cAAgB,WAC/B,OAAQlgS,KAAKg9R,OAAOx5R,OAAS,GAAMxD,KAAKoD,QAAQwgE,UAAU5+D,SAAS,mBAAoB,QAAUhF,KAAKoD,SAASkrN,SACnH,EACAyuE,EAASr7R,UAAUq+R,QAAU,SAAU3yR,GACnC,IAAI2yR,GAAU,EACd,GAAI//R,KAAKmC,OAAQ,CACb49R,GAAU,EAEV,IADA,IAAI59R,EAASnC,KAAKmC,OAAOqF,MAAM,KACtBuF,EAAI,EAAGunG,EAAMnyG,EAAOqB,OAAQuJ,EAAIunG,EAAKvnG,IAC1C,IAAI,QAAQK,EAAQ,IAAMjL,EAAO4K,IAAK,CAClCgzR,GAAU,EACV,KACJ,CAER,CACA,OAAOA,CACX,EACAhD,EAASr7R,UAAU+tC,SAAW,SAAUw8L,EAAIniN,EAAMxP,EAAK1C,EAAMnU,EAAG2J,GAC5D,IAAInL,EAAQjC,UACA,IAARsa,IAAkBA,EAAM,QACf,IAAT1C,IAAmBA,EAAO,QACpB,IAANnU,IAAgBA,EAAI,WACT,IAAX2J,IAAqBA,EAASpN,KAAK+e,eACvC,IAAI4N,EAAU3sB,KAAK+lN,aACnB/lN,KAAKkiS,MAAQj2D,EACb,IAAIk2D,EAA6B,KAApBniS,KAAKoD,QAAQs0B,GAAY13B,KAAKoD,QAAQs0B,GAAK,OAQxD,GAPA13B,KAAKyhS,eAAgB,GACjB,QAAkBnnR,KAClBA,GAAO,IAEP,QAAkB1C,KAClBA,GAAQ,GAERq0N,EAAI,CAEJ,GADAjsO,KAAKoiS,MAAQpiS,KAAK69R,YAAY/zQ,EAAK9pB,KAAKi9O,SAAS,WAAYj9O,KAAKg9R,OAAOx5R,OAAS,MAC7ExD,KAAKo9R,QAAU,KAAQnkG,SAAU,CAClCtsK,EAAQnT,UAAUpQ,MAAMwjB,QAAU,OAClC,IAAIoO,EAAO,CACP3P,KAAMvB,EAAK9pB,KAAKi9O,SAAS,SAASxoN,WAAY6vL,QAASs4E,EAAQ,eAE/DyF,EAAQ,IAAI73H,EAASxqK,KAAKmqB,MAAM,GAAI,QAAS6Q,GAAM,GACnDsnQ,EAAMtiS,KAAK69R,YAAY,CAACwE,IAAQhlR,SAAS,GAC7CilR,EAAI1+N,UAAUjoD,IAAIqgR,GAClBh8R,KAAKoiS,MAAMr9R,aAAau9R,EAAKtiS,KAAKoiS,MAAM/kR,SAAS,GACrD,CACIrd,KAAKo9R,QACLp9R,KAAKgwN,aAAehwN,KAAKuE,cAAc,MAAO,CAC1C9B,UAAW,KAAOzC,KAAKu/L,gBAAkB,YAAcs9F,EAAOnlQ,GAAIu0M,EAAGv0M,GAAK,YAAcyqQ,EAAS,WAEjGniS,KAAKw9R,eACLljR,EAAM2xN,EAAG/gJ,aACT+gJ,EAAGvoO,YAAY1D,KAAKgwN,eAGpBtxN,SAAS+c,KAAK/X,YAAY1D,KAAKgwN,cAEnChwN,KAAKuiS,mBAAqBviS,KAAKoD,QAAQwgE,UAAU5+D,SAAS,eAAwC,IAAvBhF,KAAKg9R,OAAOx5R,OACvFxD,KAAK++N,SAAW/+N,KAAKwiS,cAAcxiS,KAAKgwN,aAAchwN,KAAKoiS,MAAOn2D,EAAIjsO,KAAKuiS,oBACvEviS,KAAK0hN,UACL1hN,KAAKguM,uBAELhuM,KAAKw9R,cACLx9R,KAAKyiS,oBAAoBziS,KAAKoiS,MAAOn2D,IAGjCjsO,KAAKikN,WACL,QAAS,CAACjkN,KAAKgwN,cAAehwN,KAAKikN,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAElFxH,KAAK++N,SAASW,QAEb1/N,KAAKw9R,eAAkBx9R,KAAK29R,kBAAmB39R,KAAK0iS,WAKrD1iS,KAAK2iS,kBAAkB12D,EAAIjsO,KAAKoiS,MAAOt4Q,EAAMrmB,EAAG,EAAG,EAAG,SAJtDnE,OAAOsyG,cAAc5xG,KAAK4iS,OAC1B5iS,KAAK4iS,MAAQtjS,OAAOk8B,YAAW,WAAcv5B,EAAM0gS,kBAAkB12D,EAAIhqO,EAAMmgS,MAAOt4Q,EAAMrmB,EAAG,EAAG,EAAG,OAAS,GAAGzD,KAAK0iS,eAO1H1iS,KAAKoiS,MAAMh5R,MAAMm4C,OAASvhD,KAAKoD,QAAQgG,MAAMm4C,OAC7C50B,EAAQjpB,YAAY1D,KAAKoiS,QACpBpiS,KAAK29R,iBAAmB39R,KAAK0iS,YAC9BpjS,OAAOsyG,cAAc5xG,KAAK4iS,OAC1B5iS,KAAK4iS,MAAQtjS,OAAOk8B,YAAW,WAAcv5B,EAAM0gS,kBAAkB12D,EAAIhqO,EAAMmgS,MAAOt4Q,EAAMrmB,EAAG6W,EAAK1C,EAAM,OAAS,GAAG5X,KAAK0iS,aAG3H1iS,KAAK2iS,kBAAkB12D,EAAIjsO,KAAKoiS,MAAOt4Q,EAAMrmB,EAAG6W,EAAK1C,EAAM,QAGvE,MAII,GAFA5X,KAAKoiS,MAAQpiS,KAAKoD,QAClBpD,KAAKoiS,MAAMh5R,MAAMm4C,QAAS,QAAiBn0C,GAAkBpN,KAAKoD,SAASqxB,YACvE,QAAkBhxB,GAAI,CAEtB,IAAI6P,EAAK5U,SAASqV,YAAY,eAC9BT,EAAGgjG,UAAU,SAAS,GAAM,GAE5B,IAAIusL,EAAc7iS,KAAK8iS,WAAWxvR,EAAI,CAAC,GACvCuvR,EAAYz1R,OAASy1R,EAAYprF,WAAarqM,EAC9Cy1R,EAAYxwQ,cAAgBjlB,EAE5BpN,KAAK2iS,kBAAkB12D,EAAIjsO,KAAKoiS,MAAOt4Q,EAAM+4Q,EAAavoR,EAAK1C,EAAM,OACzE,MAEI5X,KAAK2iS,kBAAkB12D,EAAIjsO,KAAKoiS,MAAOt4Q,EAAMrmB,EAAG6W,EAAK1C,EAAM,OAGvE,EACAmlR,EAASr7R,UAAUohS,WAAa,SAAUz9L,EAAQG,GAC9C,IAAK,IAAI7/F,KAAQ0/F,EACbG,EAAY,GAAK7/F,GAAQ0/F,EAAO,GAAK1/F,GAEzC,OAAO6/F,CACX,EACAu3L,EAASr7R,UAAU+gS,oBAAsB,SAAUnY,EAAIr+C,GACnD,IAAI82D,EAAU9/K,iBAAiBgpH,GAC3B+2D,EAAWp4R,SAASm4R,EAAQtzQ,WAAY,IACxCzvB,KAAKg9R,OAAOx5R,OAAS,IAAMyoO,EAAGroK,UAAU5+D,SAAS,eACjDg+R,GAAY,EAGZA,GAAaA,EAAW,EAE5B1Y,EAAGlhR,MAAMqmB,WAAauzQ,EAAW,KACjC,IAAIC,EAAgB3Y,EAAGh0L,iBAAiB,gBACxC,GAAI2sM,GAAiBA,EAAcz/R,OAI/B,IAHA,IAAI0/R,EAAe5Y,EAAGrlR,cAAc,gBAChCk+R,EAAoBlgL,iBAAiBigL,GACrCE,EAAmBx4R,SAASu4R,EAAkB9vP,YAAa,IAAM6vP,EAAa/7P,YAAc67P,EACvFj2R,EAAI,EAAGA,EAAIk2R,EAAcz/R,OAAQuJ,IACtCk2R,EAAcl2R,GAAG3D,MAAMqmB,WAAa2zQ,EAAkB,IAGlE,EACArG,EAASr7R,UAAU8gS,cAAgB,SAAUxyE,EAAcs6D,EAAIr+C,EAAIs2D,GAC/D,IAAItgS,EAAQjC,KACR++N,EAAW,IAAI,KAAM/O,EAAc,CACnCqzE,eAAgBrjS,KAAKw9R,cAAgB,OAAS,aAC9Cx8D,SAAUiL,EACV7K,UAAWphO,KAAKw9R,cAAgB,CAAEv8D,EAAG,OAAQC,EAAG,QAAW,CAAED,EAAGshE,GACxDviS,KAAKksM,UAAY,OAAS,OAAQg1B,EAAG,OAC7C/yM,SAAWo0Q,IAAuBviS,KAAKw9R,cAAiB,CAAEv8D,EAAG,QAASC,EAAG,OAAU,CAAED,EAAG,OAAQC,EAAG,UACnGC,WAAY,WACZj1B,UAAWlsM,KAAKksM,UAChB7mK,QAASilP,EACTh4M,KAAM,WACF,IAAIgmN,GAAY,QAAO,kBAAmBv5D,EAAS37N,SAC/Ck1R,IACAA,EAAUlvR,MAAMyX,OAAS,UACzBy3Q,EAAUlvR,MAAMgnB,UAAY,IAEhC,IAAIk6P,GAAK,QAAO,QAASvrD,EAAS37N,SAClC27N,EAAS37N,QAAQgG,MAAMgnB,UAAY,GACnCk6P,EAAG10Q,QACH3T,EAAMqhS,YAAYhZ,EACtB,IAEJ,OAAOvrD,CACX,EACAg+D,EAASr7R,UAAU+7R,sBAAwB,SAAU9wQ,GACjDA,EAAUA,GAAW3sB,KAAK+lN,aAC1B,IAAIw9E,EAAWvjS,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,KAAOzC,KAAKu/L,gBAAkB,YACjFikG,EAAaxjS,KAAwB,oBAAI,KAAmBojN,SAASpjN,KAAKupB,OAASvpB,KAAKupB,MACxFk6Q,EAAYzjS,KAAKuE,cAAc,OAAQ,CACvC9B,UAAW,KAAOzC,KAAKu/L,gBAAkB,SAAUx3D,UAAWy7J,IAE9DE,EAAW1jS,KAAKuE,cAAc,OAAQ,CACtC9B,UAAW,aAAezC,KAAKu/L,gBAAkB,QAASz/C,MAAO,CAAE,SAAY,OAEnFyjJ,EAAS7/R,YAAY+/R,GACrBF,EAAS7/R,YAAYggS,GACrB/2Q,EAAQ5nB,aAAaw+R,EAAUvjS,KAAKoD,QACxC,EACA25R,EAASr7R,UAAUiiS,kBAAoB,SAAUlgS,GACzCzD,KAAKw9R,eACLx9R,KAAK2iS,kBAAkB,KAAM3iS,KAAKoD,QAAS,KAAMK,EAAG,EAAG,EAAG,YAElE,EACAs5R,EAASr7R,UAAUkiS,mBAAqB,SAAUngS,GAC9C,IAAIxB,EAAQjC,KACRovQ,EAAkB,CAAEhsQ,QAASpD,KAAKoD,QAASw9R,WAAY,KAAMrtR,MAAO9P,EACpE0mB,MAAOnqB,KAAKmqB,MAAO6oF,QAAQ,GAC/BhzG,KAAKg7L,QAAQ,cAAeo0E,GAAiB,SAAUy0B,GAC9CA,EAA2B7wL,SAC5B/wG,EAAM28R,UAAU,KAAMn7R,GACtBxB,EAAMmB,QAAQwgE,UAAUjoD,IAAI,eAC5B1Z,EAAM+4L,QAAQ,UAAW,CAAE53L,QAASnB,EAAMmB,QAASw9R,WAAY,KAAMz2Q,MAAOloB,EAAMkoB,QAE1F,GACJ,EACA4yQ,EAASr7R,UAAUoiS,QAAU,SAAU1gS,EAAS8W,EAAG8+B,EAAG1+B,EAAK1C,GACvD,OAAO,QAAIxU,EAAS,KAAM,CAAE69N,EAAG/mN,EAAGgnN,EAAGloL,GAAK,CAAE1+B,IAAKA,EAAK1C,KAAMA,GAChE,EACAmlR,EAASr7R,UAAUihS,kBAAoB,SAAU12D,EAAIq+C,EAAIxgQ,EAAMrmB,EAAG6W,EAAK1C,EAAMmJ,GACzE,IAAI9e,EAAQjC,KACRmqB,EAAQ8hN,EAAKniN,EAAK9pB,KAAKi9O,SAAS,WAAYj9O,KAAKg9R,OAAOx5R,OAAS,IAAMxD,KAAKmqB,MAC5EgsF,EAAY,CACZ/yG,QAASknR,EAAIngQ,MAAOA,EAAOy2Q,WAAY92Q,EAAMvW,MAAO9P,EAAGuvG,QAAQ,EAAO14F,IAAKA,EAAK1C,KAAMA,EAAMulR,cAAe,QAE3G4G,EAAWhjR,EACf/gB,KAAKg7L,QAAQ,aAAc7kF,GAAW,SAAU6tL,GAC5C,OAAQD,GACJ,IAAK,OACI9hS,EAAMu7R,gBACgC,SAAnCwG,EAAiB7G,gBACjBl7R,EAAM07R,iBAAmB17R,EAAMy7R,cAC/Bz7R,EAAMk7R,cAAgB6G,EAAiB7G,eAE3Cl7R,EAAMqY,IAAM0pR,EAAiB1pR,IAC7BrY,EAAM2V,KAAOosR,EAAiBpsR,MAElC3V,EAAM+tN,aAAa5mN,MAAMwjB,QAAU,QAC9B3qB,EAAMu7R,gBACPv7R,EAAM+tN,aAAa5mN,MAAMgnB,UAAYnuB,EAAM+tN,aAAapwM,wBAAwBiB,OAAS,KACrF5e,EAAMs7R,iBACNpC,EAAal5R,EAAMsC,cAAetC,EAAM+tN,aAAc/tN,EAAMmgS,MAAO,UAAWngS,EAAMiqM,WAExFjqM,EAAMgiS,kBAAkBxgS,IAEvBxB,EAAMu7R,eAAkBv7R,EAAM2V,MAAS3V,EAAMqY,KAsB9CrY,EAAM88N,SAASqC,UAAY,CAAEH,EAAG,OAAQC,EAAG,QAC3Cj/N,EAAM+tN,aAAa5mN,MAAMwjB,QAAU,KAtBnC3qB,EAAM88N,SAAS4D,gBAAgB1gO,EAAMigS,OAAO,GAC5CjgS,EAAM2V,KAAOhN,SAAS3I,EAAM+tN,aAAa5mN,MAAMwO,KAAM,IACrD3V,EAAMqY,IAAM1P,SAAS3I,EAAM+tN,aAAa5mN,MAAMkR,IAAK,IAC/CrY,EAAMiqM,YACNjqM,EAAM2V,KACF3V,EAAMsgS,mBAAqBtgS,EAAM2V,KAAO3V,EAAM+tN,aAAa7oL,YAAcllC,EAAMigS,MAAMzsR,cAAc0xB,YAAc,EAC3GllC,EAAM2V,KAAO3V,EAAM+tN,aAAa7oL,YAAcllC,EAAMigS,MAAM/6P,aAGpEllC,EAAMy/M,WAAaz/M,EAAMm6P,SAAWn6P,EAAM0rN,WAC1CvpN,uBAAsB,WAClBnC,EAAMm/N,YACNn/N,EAAM+tN,aAAa5mN,MAAMwjB,QAAU,EACvC,KAGA3qB,EAAMm/N,YACNn/N,EAAM+tN,aAAa5mN,MAAMwjB,QAAU,KAO3C,MACJ,IAAK,OACD3qB,EAAMqY,IAAM0pR,EAAiB1pR,IAC7BrY,EAAM2V,KAAOosR,EAAiBpsR,KAC9B,MACJ,IAAK,YACIosR,EAAiBhxL,SAClB/wG,EAAMmB,QAAQwgE,UAAUC,OAAO,eAC/B5hE,EAAMqhS,YAAYrhS,EAAMmB,UAIpC,GAAiB,cAAb2gS,EACA,GAAIC,EAAiBhxL,OACb/wG,EAAMm7R,QACNn7R,EAAM88N,SAASrvC,WACf,QAAOztL,EAAM+tN,eAERs6D,EAAG7nR,UAAU8E,QAAQ,SAAW,IACrC,QAAO+iR,GAEXroR,EAAM+6R,OAAOzmR,WAGb,GAAItU,EAAMm7R,OACN,GAAIn7R,EAAMu7R,cACNv7R,EAAM+tN,aAAa5mN,MAAMkR,IAAMrY,EAAMqY,IAAM,KAC3CrY,EAAM+tN,aAAa5mN,MAAMwO,KAAO,MAChC3V,EAAMk/R,gBAAgBl/R,EAAM+tN,kBAE3B,CACD/tN,EAAM67R,kBAAkB77R,EAAM+tN,cAC9B/tN,EAAMq8R,kBAAkBr8R,EAAM+tN,eAC9B,QAAa/tN,EAAM+tN,aAAc,CAAE5kN,SAAU,IAAMsxR,IACnDz6R,EAAM+tN,aAAa5mN,MAAMwO,KAAO3V,EAAM2V,KAAO,KAC7C3V,EAAM+tN,aAAa5mN,MAAMkR,IAAMrY,EAAMqY,IAAM,KAC3C,IAAI4pR,EAAsD,SAAnCjiS,EAAMkiS,kBAAkB72E,OAAoB,CAC/D1lN,KAAM3F,EAAMkiS,kBAAkB72E,OAAQz7G,SAAU5vG,EAAMkiS,kBAAkBtyL,SACxEizF,eAAgB7iM,EAAMkiS,kBAAkB/gG,QACxC,KACJnhM,EAAM88N,SAAS/lJ,KAAKkrN,EAAkBjiS,EAAMigS,MAChD,MAGAjgS,EAAM67R,kBAAkB77R,EAAMmgS,OAC9BngS,EAAMmiS,YAAYniS,EAAMigS,MAAOjgS,EAAMmgS,MAAOngS,EAAMqY,IAAKrY,EAAM2V,MAC7D3V,EAAMk/R,gBAAgBl/R,EAAMmgS,OAIxC,GAAsB,UAAlBngS,EAAM49R,QAAqB,CAC3B,IAAIV,EAAMl9R,EAAMm9R,gBAMhB,GALAnzD,EAAGroK,UAAUC,OAAOk4N,GAChB95R,EAAMm7R,QAAkC,IAAxBn7R,EAAM+6R,OAAOx5R,QAC7BvB,EAAM88R,qBAAqB,CAACn2E,GAAW,CAAC3mN,EAAM8jN,eAElDkmB,EAAGroK,UAAUjoD,IAAIitM,GACb3mN,EAAMymM,SAAWmzF,EAAO,CACxB,IAAI52B,EAAc,CAAE7hQ,QAAS6oO,EAAIniN,KAAMA,EAAMvW,MAAO9P,GACpDxB,EAAM+4L,QAAQ,SAAUiqE,EAC5B,CACAh5B,EAAGr2N,QACHupR,EAAMl9R,EAAMm9R,gBACZ,IAAIt2R,EAAQ7G,EAAM4qO,UAAUsyD,EAAI9hR,SAAS,GAAI,EAAGpb,EAAMymM,QACtDy2F,EAAI9hR,SAASvU,GAAO86D,UAAUjoD,IAAIogR,GAClCoD,EAAI9hR,SAASvU,GAAO8M,OACxB,CACJ,GACJ,EACAmnR,EAASr7R,UAAU0/N,UAAY,WAC3B,IAAIijE,EAEJ,GADAA,GAAU,QAAUrkS,KAAKgwN,aAAc,KAAMhwN,KAAK4X,KAAM5X,KAAKsa,MACxDta,KAAKuiS,oBAAsBviS,KAAKksM,aAAem4F,EAAQ98R,QAAQ,UAAY,GACzE88R,EAAQ98R,QAAQ,SAAW,GAAI,CAClCvH,KAAK++N,SAASqC,UAAUH,EAAI,OAC5B,IAAIqjE,GAAW,QAAQtkS,KAAKkiS,MAAO,MAAQliS,KAAKu/L,gBAAkB,YAAYp4J,YAC9EnnC,KAAK4X,KACD5X,KAAKksM,WAAY,OAAkBlsM,KAAKkiS,MAAOliS,KAAKuiS,mBAAqB,QAAU,OAAQ,OAAO3qR,KAC5F5X,KAAK4X,KAAO5X,KAAKgwN,aAAa7oL,YAAcm9P,EAAW,CACrE,GACAD,GAAU,QAAUrkS,KAAKgwN,aAAc,KAAMhwN,KAAK4X,KAAM5X,KAAKsa,MACjD/S,QAAQ,SAAW,GAAK88R,EAAQ98R,QAAQ,UAAY,KAC5DvH,KAAK4X,KAAO5X,KAAK8jS,QAAQ9jS,KAAKgwN,cAAc,GAAM,EAAOhwN,KAAKsa,IAAKta,KAAK4X,MAAMA,MAElF5X,KAAKgwN,aAAa5mN,MAAMwO,KAAO5X,KAAK4X,KAAO,IAC/C,EACAmlR,EAASr7R,UAAUo8R,kBAAoB,SAAUlC,GAC7C,IAAI2I,EAAgB,GAAGp4R,MAAMuI,KAAKknR,EAAKr1F,uBAAuB,gBAC9D,GAAKg+F,EAAc/gS,OAAnB,CAGA,IAAIghS,EAAS5I,EAAK32R,cAAc,oDAChC,GAAKu/R,EAAL,CAGA,IAAIv8Q,EAAOu8Q,EAAOv/R,cAAc,gBAChC,GAAKgjB,EAAL,CAGA,IAAIw8Q,EAAUzkS,KAAKksM,UAAY,CAAE19K,QAAS,eAAgBoB,OAAQ,cAC9D,CAAEpB,QAAS,cAAeoB,OAAQ,eAClC80Q,EAAezhL,iBAAiBh7F,GAChC08Q,EAAW/5R,SAAS85R,EAAar0Q,SAAU,IACzCzlB,SAAS85R,EAAa/pR,MAAO,KAAO/P,SAAS85R,EAAa/pR,MAAO,IAAMgqR,IACzEA,EAAW/5R,SAAS85R,EAAa/pR,MAAO,KAG5C,IAAIS,EAAOupR,EAAW/5R,SAEtB85R,EAAaD,EAAQ70Q,QAAS,IAAMhlB,SAASq4G,iBAAiBuhL,GAAQC,EAAQj2Q,SAAU,IAAM,KAC9F+1Q,EAAc3gS,SAAQ,SAAUqoO,GAE5BA,EAAG7iO,MAAMq7R,EAAQj2Q,SAAWpT,CAChC,GAfA,CAJA,CAJA,CAyBJ,EACA2hR,EAASr7R,UAAUuiS,kBAAoB,SAAUxgS,GAC7C,IAAIkpB,EAAU3sB,KAAK+lN,aACnB,GAAIp5L,EAAQtP,SAAS,GAAGumD,UAAU5+D,SAAS,mBAA4C,IAAvBhF,KAAKg9R,OAAOx5R,OAAc,CACtF,IAAIw2R,GAAO,QAAkBv2R,GAAKzD,KAAKoD,SAAU,QAAQK,EAAE2J,OAAQ,IAAMsvR,GACrEkI,GAAY,QAAO,iBAAkBj4Q,GACrCi4Q,EAAU7+F,WAAai0F,EAAKpmF,aAC5BgxF,EAAU7+F,YAAe6+F,EAAU7+F,WAAai0F,EAAKpmF,YAEzD,IAAIA,EAAagxF,EAAU7+F,WAAa6+F,EAAUz9P,YAC9C09P,EAAc7K,EAAKpmF,WAAaomF,EAAK7yP,YACrCysK,EAAaixF,IACbD,EAAU7+F,YAAe8+F,EAAcjxF,EAE/C,CACJ,EACAmpF,EAASr7R,UAAU0iS,YAAc,SAAUn4D,EAAIq+C,EAAIhwQ,EAAK1C,GACpD,IAAIktR,EAAK,KAET,GADA9kS,KAAK+kS,gBAAgBza,GACjBA,IAAOtqR,KAAKoD,SAAYwU,GAAQ,GAAK0C,GAAO,EAAI,CAKhD,IAJI+pR,GAAU,QAAU/Z,EAAI,KAAM1yQ,EAAM0C,IAC5B/S,QAAQ,UAAY,IAC5BqQ,GAAc0yQ,EAAGnjP,aAEjBk9P,EAAQ98R,QAAQ,WAAa,IAE7B+S,GADIssC,EAAS5mD,KAAK8jS,QAAQxZ,GAAI,GAAO,EAAMhwQ,EAAK1C,IACnC0C,IAAM,IACT,EAAG,CACT,IAAI0qR,EAAUnxF,YAAcn1M,SAASC,gBAAgB6hB,aAAgB8pQ,EAAG1qQ,wBAAwBiB,OAC5FmkR,GAAU,IACV1qR,EAAM0qR,EAEd,EAEJX,GAAU,QAAU/Z,EAAI,KAAM1yQ,EAAM0C,IACxB/S,QAAQ,SAAW,IAE3BqQ,GADIgvC,EAAS5mD,KAAK8jS,QAAQxZ,GAAI,GAAM,EAAOhwQ,EAAK1C,IAClCA,KAEtB,MAEI,GAAI,KAAQqhL,SACR3+K,EAAM8jE,OAAOp+E,KAAKoD,QAAQgG,MAAMkR,IAAIhQ,QAAQw6R,EAAI,KAChDltR,EAAOwmE,OAAOp+E,KAAKoD,QAAQgG,MAAMwO,KAAKtN,QAAQw6R,EAAI,SAEjD,CACD,IACIl+O,EADA1sC,EAAIla,KAAKksM,UAAY,OAAS,QAElC5xL,GADIssC,GAAS,OAAkBqlL,EAAI/xN,EAAG,QACzBI,IACb1C,EAAOgvC,EAAOhvC,KACd,IAAIysR,EACAY,GADAZ,GAAU,QAAU/Z,EAAI,KAAMtqR,KAAKksM,UAAYt0L,EAAO0yQ,EAAGnjP,YAAcvvB,EAAM0C,IACxD/S,QAAQ,SAAW,GAAK88R,EAAQ98R,QAAQ,UAAY,EACzE09R,IAEArtR,GADAgvC,GAAS,OAAkBqlL,EAAIjsO,KAAKksM,UAAY,QAAU,OAAQ,QACpDt0L,OAEd5X,KAAKksM,WAAa+4F,KAClBrtR,EAAQ5X,KAAKksM,WAAa+4F,EAAcrtR,EAAOA,EAAO0yQ,EAAGnjP,aAEzDk9P,EAAQ98R,QAAQ,WAAa,IAE7B+S,GADAssC,EAAS5mD,KAAK8jS,QAAQxZ,GAAI,GAAO,EAAMhwQ,EAAK1C,IAC/B0C,IAErB,CAEJta,KAAK+kS,gBAAgBza,GAAI,GACzBA,EAAGlhR,MAAMkR,IAAMA,EAAMwqR,EACrBxa,EAAGlhR,MAAMwO,KAAOA,EAAOktR,CAC3B,EACA/H,EAASr7R,UAAUqjS,gBAAkB,SAAUza,EAAItnK,QAC7B,IAAdA,IAAwBA,GAAY,GACxCsnK,EAAGlhR,MAAMyoB,WAAamxF,EAAY,SAAW,GAC7CsnK,EAAGlhR,MAAMwjB,QAAUo2F,EAAY,QAAU,MAC7C,EACA+5K,EAASr7R,UAAUm8R,YAAc,SAAU1zQ,GACvC,IAAIloB,EAAQjC,KACR42O,EAAQ52O,KAAKg9R,OAASh9R,KAAKg9R,OAAOx5R,OAAS,EAC3CusE,EAAS/vE,KAAKgiS,UAAUprD,GACxBwmB,EAAWp9P,KAAKklS,SAAS/6Q,EAAOnqB,KAAKi9O,SAAS,UAAWrG,IACzD1H,EAAkB,CAClBkuB,SAAUA,EACVprC,WAAY,OACZjiJ,OAAQA,EACR2xI,SAAU1hN,KAAK0hN,SACfkyE,eAAe,EACfS,aAAc,SAAU1xR,GACfA,EAAKsmL,QAAQtmL,EAAKotE,OAAOA,EAAOr4C,OACjC/0B,EAAKsmL,QAAQtmL,EAAKotE,OAAOA,EAAOr4C,MAAO,QAAY,cAEnD,QAAkB/0B,EAAKsmL,QAAQm+B,kBAC/BzkN,EAAKsmL,QAAQm+B,eAAiB,CAAC,GAEnCjhN,OAAO+gH,OAAOvkH,EAAKsmL,QAAQm+B,eAAgB,CAAE1uL,KAAM,WAAYysQ,SAAU,OACrEljS,EAAMm7R,SAAWz6R,EAAKsmL,QAAQhnL,EAAMg7O,SAAS,YAAarG,MAC1Dj0O,EAAKsmL,QAAQm+B,eAAe,cAAgBzkN,EAAKsmL,QAAQtmL,EAAKotE,OAAO1kD,MACjE1oB,EAAKsmL,QAAQtmL,EAAKotE,OAAO1kD,MAAQ1oB,EAAKsmL,QAAQtmL,EAAKotE,OAAOr4C,KAEhB,KAA9C/0B,EAAKsmL,QAAQtmL,EAAKotE,OAAOA,EAAOu0I,YAChC3hN,EAAKsmL,QAAQtmL,EAAKotE,OAAOA,EAAOu0I,UAAY,KAEpD,EACA6qB,YAAa,SAAUxsO,GASnB,GARIA,EAAKsmL,QAAQhnL,EAAMg7O,SAAS,YAAarG,MACzCj0O,EAAKmnB,KAAK85C,UAAUjoD,IAAIsgR,GACxBt5R,EAAKmnB,KAAKrlB,aAAa,OAAQ,eAE/B24P,GAAaz6P,EAAKsmL,QAAQtmL,EAAKotE,OAAOu0I,UAClC3hN,EAAKsmL,QAAQhnL,EAAMg7O,SAAS,YAAarG,KAC7Cj0O,EAAKmnB,KAAK85C,UAAUjoD,IAAI,eAExBhZ,EAAKsmL,QAAQtmL,EAAKotE,OAAO7wD,QACtBvc,EAAKsmL,QAAQtmL,EAAKotE,OAAO7wD,OAAO1b,OAAQ,CAC3C,IAAIu/E,EAAO9gF,EAAMsC,cAAc,OAAQ,CAAE9B,UAAWm6R,EAAQ,IAAMH,IAClE95R,EAAKmnB,KAAKpmB,YAAYq/E,GACtBpgF,EAAKmnB,KAAKrlB,aAAa,gBAAiB,QACxC9B,EAAKmnB,KAAKrlB,aAAa,gBAAiB,SACxC9B,EAAKmnB,KAAK85C,UAAUjoD,IAAI,oBAC5B,CACI1Z,EAAMm7R,QAAUn7R,EAAMy/M,WACtB/+M,EAAKmnB,KAAKrlB,aAAa,KAAM9B,EAAKsmL,QAAQtmL,EAAKotE,OAAOr4C,IAAIjD,YAC1D9xB,EAAKmnB,KAAKnL,gBAAgB,YACtBhc,EAAKmnB,KAAK85C,UAAU5+D,SAAS,cAC7BrC,EAAKmnB,KAAK85C,UAAUC,OAAO,aAE3BlhE,EAAKmnB,KAAK85C,UAAU5+D,SAAS,gBAC7BrC,EAAKmnB,KAAK85C,UAAUC,OAAO,eAE/BlhE,EAAKmnB,KAAKnL,gBAAgB,eAE9B,IAAIw3F,EAAY,CAAErsF,KAAMnnB,EAAKsmL,QAAS7lL,QAAST,EAAKmnB,MACpD7nB,EAAM+4L,QAAQ,mBAAoB7kF,EACtC,GAEJn2G,KAAKk+L,cAAc,CAAE,MAASl+L,KAAKmqB,QAAS,GACxCnqB,KAAKo9R,SACLluD,EAAgByuB,WAAa39P,KAAKoD,QAAQs0B,GAjrC9B,YAmrChB,IAAI4yP,EAAK,KAAS5kD,WAAW1lO,KAAKuE,cAAe4lB,EAAO+kN,GAAkBlvO,KAAK0hN,SAAU1hN,MAQzF,OAPAsqR,EAAG7lR,aAAa,WAAY,KACxBzE,KAAKo9R,OACL9S,EAAG7lR,aAAa,OAAQ,QAGxB6lR,EAAG7lR,aAAa,OAAQ,WAErB6lR,CACX,EACAyS,EAASr7R,UAAUy8R,aAAe,SAAU16R,GACxC,IAAIu2R,EAAOv2R,EAAE2J,OACbpN,KAAKolS,OAASpL,EACd,IAAI0F,EAAM1/R,KAAK2gS,MAAM3G,GACjBrtQ,EAAU+yQ,GAAM,QAAQA,EAAK,MAAQ1/R,KAAKu/L,gBAAkB,YAAcv/L,KAAK+lN,aAC/Es/E,EAAarlS,KAAK+lN,aAClBjnC,EAAQ,IAAIzsD,OAAO,uBAEnBizK,GAAkB,EACtB,GAAK34Q,EAAL,CASA,IANmB,KAAfA,EAAQ+K,GACDonJ,EAAMnzK,KAAKghB,EAAQ+K,IAAI,GAGvB/K,EAAQ1nB,cAAc,MAAMyyB,MAE1B13B,KAAKoD,QAAQs0B,GAAI,CAE1B,GADA13B,KAAK++R,qBAAqB,CAAChD,EAASnzE,GAAW,CAAC5oN,KAAK+lN,gBACjD/lN,KAAKg9R,OAAOx5R,OAIZ,OAHA8hS,GAAkB,CAK1B,CACI5F,IAAO,QAAQA,EAAK,MAAQ1/R,KAAKu/L,gBAAkB,cAAgB+lG,GACnEtlS,KAAK++R,qBAAqB,CAAChD,GAAU/7R,KAAKo9R,OAAS,CAACzwQ,GAAStkB,OAAOrI,KAAKugS,aAAe,CAAC5zQ,IACzF3sB,KAAK++R,qBAAqB,CAAChD,GAAU/7R,KAAKo9R,OAAS,CAACiI,GAAYh9R,OAAOrI,KAAKugS,aAAe,CAAC8E,IAC5F3F,EAAI97N,UAAUjoD,IAAIogR,GACb/7R,KAAK29R,iBACN39R,KAAKgmN,aAAaviN,IAGjBzD,KAAKo9R,QAAUp9R,KAAK29R,kBAAoB2H,GAC7CtlS,KAAK++R,qBAAqB,CAAChD,GAAU,CAACpvQ,GAAStkB,OAAOrI,KAAKugS,cAE3DvgS,KAAKo9R,SACAp9R,KAAK29R,iBAAoB3D,EAAKvkR,gBAAkBkX,IAAY,QAAQqtQ,EAAM,MAAQh6R,KAAKu/L,gBAAkB,WACrGmgG,KAAQA,GAAQ1/R,KAAKwhS,SAAS9B,EAAIhoQ,IAAI,GAAMl0B,SAAmC,UAAvBxD,KAAKm9R,cAO7DmI,IAAoBtlS,KAAK29R,iBAC1B39R,KAAKg9R,OAAOx5R,SACZxD,KAAKulS,UAAW,EAChBvlS,KAAK4+R,UAAU,KAAMn7R,KATzBzD,KAAK++R,qBAAqB,CAAChD,GAAU,CAACpvQ,IAClC3sB,KAAKg9R,OAAOx5R,SACZxD,KAAKulS,UAAW,EAChBvlS,KAAK4+R,UAAU,KAAMn7R,KASxBzD,KAAKulS,UACNvlS,KAAK6hS,qBAET7hS,KAAKulS,UAAW,EA7CpB,CA+CJ,EACAxI,EAASr7R,UAAUmgS,mBAAqB,WACpC,GAAI7hS,KAAKolS,OAAQ,CACb,IAAIz4Q,GAAU,QAAQ3sB,KAAKolS,OAAQ,mBACP,QAAxBplS,KAAKolS,OAAOpmR,SAAqB2N,GACjC3sB,KAAK++R,qBAAqB,CAAChD,EAASnzE,GAAW,CAACj8L,GAExD,CACJ,EACAowQ,EAASr7R,UAAUq9R,qBAAuB,SAAUn7N,EAAWxgE,GAU3D,IATA,IAAI6oO,EACA3lO,EAAU,SAAUyG,GACpB62D,EAAUhgE,SAAQ,SAAUnB,IACxBwpO,GAAK,QAAO,IAAMxpO,EAAWW,EAAQ2J,MAEjCk/N,EAAGroK,UAAUC,OAAOphE,EAE5B,GACJ,EACSsK,EAAI,EAAGA,EAAI3J,EAAQI,OAAQuJ,IAChCzG,EAAQyG,EAEhB,EACAgwR,EAASr7R,UAAUu7O,SAAW,SAAUlvO,EAAU6oO,QAChC,IAAVA,IAAoBA,EAAQ,GAChC,IAAIN,EAAYt2O,KAAK+vE,OAAO,GAAKhiE,GACjC,MAA4B,iBAAduoO,EAAyBA,EACjCA,EAAUM,GACNN,EAAUM,GAAOniN,WADF6hN,EAAUA,EAAU9yO,OAAS,GAAGixB,UAE7D,EACAsoQ,EAASr7R,UAAUsgS,UAAY,SAAUprD,GAErC,YADc,IAAVA,IAAoBA,EAAQ,GACzB,CACHl/M,GAAI13B,KAAKi9O,SAAS,SAAUrG,GAC5BtyB,QAAStkN,KAAKi9O,SAAS,UAAWrG,GAClCvrN,KAAMrrB,KAAKi9O,SAAS,OAAQrG,GAC5Bp6K,IAAKx8D,KAAKi9O,SAAS,MAAOrG,GAC1B13N,MAAOlf,KAAKi9O,SAAS,WAAYrG,GACjCqrD,UAAWjiS,KAAKi9O,SAAS,YAAarG,GAE9C,EACAmmD,EAASr7R,UAAUwjS,SAAW,SAAU/6Q,EAAO6rN,GAC3C,IAAK,IAAIjpO,EAAI,EAAGunG,EAAMnqF,EAAM3mB,OAAQuJ,EAAIunG,EAAKvnG,IACzC,GAAIod,EAAMpd,GAAG,GAAKipO,GACd,OAAO,EAGf,OAAO,CACX,EACA+mD,EAASr7R,UAAUs8R,uBAAyB,SAAUv6R,IAC9C,QAAQA,EAAE2J,OAAQ,mBAAmBnI,cAAc,oBAAoByyB,KAAO13B,KAAKoD,QAAQs0B,KAG3F13B,KAAKoD,QAAQX,UAAU8E,QAAQ,gBAAkB,EACjDvH,KAAK2jS,kBAAkBlgS,GAGvBzD,KAAK4jS,mBAAmBngS,GAEhC,EACAs5R,EAASr7R,UAAUskN,aAAe,SAAUviN,GACxC,GAAIzD,KAAKi9R,UACLj9R,KAAKi9R,WAAY,MAEhB,CACD,IAAItwQ,EAAU3sB,KAAK+lN,aACfi0E,EAAOv2R,EAAE2J,OACTsyR,EAAM1/R,KAAK0/R,IAAM1/R,KAAK2gS,MAAM3G,GAC5Bl7G,EAAQ,IAAIzsD,OAAO,uBACnBmzK,EAAa9F,GAAM,QAAQA,EAAK,MAAQ1/R,KAAKu/L,gBAAkB,YAAc,KAC7EkmG,EAAW/F,GAAO8F,IAAexlS,KAAKo9R,OAASp9R,KAAKwhS,SAAS9B,EAAIhoQ,IAAI,GAAMl0B,OAAS,EAClFmpB,EAAQxN,kBAAkBuY,KAAO8tQ,EAAWrmR,kBAAkBuY,IAKpE,GAJI,KAAQuhK,UAAYj5L,KAAKo9R,SACzBp9R,KAAK++R,qBAAqB,CAAChD,GAAU,CAACpvQ,GAAStkB,OAAOrI,KAAKugS,cAC3DvgS,KAAKyrO,iBAAiBhoO,IAEtBi8R,GAAO8F,GAAcxlS,KAAKo9R,OAAQ,CAClC,IAAIsI,EAAeF,EAAW9tQ,GAAKonJ,EAAMnzK,KAAK65R,EAAW9tQ,IAAI,GAAK8tQ,EAAWvgS,cAAc,kBAAkByyB,GAC7G,GAAI13B,KAAKoD,QAAQs0B,KAAOguQ,EACpB,MAER,CACA,GAAID,GAAuB,UAAXhiS,EAAEsd,OAAqB2+Q,EAAI97N,UAAU5+D,SAASg3R,GAAS,CACnEh8R,KAAK2lS,cAAcjG,GACnB,IAAI1C,EAASh9R,KAAKwhS,SAAS9B,EAAIhoQ,IAAI,GAE/By+E,EAAY,CAAE/yG,QAASs8R,EAAK51Q,KADrB9pB,KAAKolH,QAAQ43K,GACoBzpR,MAAO9P,GACnDzD,KAAKg7L,QAAQ,SAAU7kF,EAC3B,CACA,GAAIsvL,IAAwB,cAAXhiS,EAAEsd,MAAwB,KAAQk4K,UAAYj5L,KAAK29R,iBAAkB,CAClF,IAAIrT,OAAK,EACT,GAAIoV,EAAI97N,UAAU5+D,SAASg3R,GACvB1R,EAAK39P,EAAQtP,SAASrd,KAAKg9R,OAAOx5R,OAAS,GAC3CxD,KAAKmhS,gBAAgB7W,IACjB8V,EAAMpgS,KAAKw/R,aAAalV,EAAI1hE,KAE5Bw3E,EAAIx8N,UAAUC,OAAO+kJ,IAEzB,QAAO82E,EAAIzxN,YACXjuE,KAAKg9R,OAAOzmR,WAGZ,IAAKmpR,EAAI97N,UAAU5+D,SAASi3R,GAAY,CACpCj8R,KAAK4lS,aAAc,EACnB,IAAIzG,EAAMO,EAAIzxN,WAEd,GADAjuE,KAAK2hS,OAAS3hS,KAAKy/R,OAAON,EAAKO,GAC3B1/R,KAAKo9R,SAAW,KAAQnkG,SAAU,CAClC,IAMQmnG,EANJyF,EAAS7lS,KAAKo9R,OAASn3R,MAAMvE,UAAU6F,QAAQmN,KAAK,CAACiY,GAAStkB,OAAOrI,KAAKugS,cAAc,QAAQpB,EAAK,MAAan/R,KAAKu/L,gBAAkB,aACvIv/L,KAAKy/R,OAAO9yQ,EAASwyQ,GACvBn/R,KAAKg9R,OAAO6I,KAAY7lS,KAAK2hS,SAC7B3hS,KAAK4lS,aAAc,GAEnBC,IAAW7lS,KAAKg9R,OAAOx5R,QAAsB,cAAXC,EAAEsd,OAAwB/gB,KAAK4lS,eAC7DxF,EAAMpgS,KAAKw/R,aAAaL,EAAKv2E,KAE7Bw3E,EAAIx8N,UAAUC,OAAO+kJ,GAEzB5oN,KAAKulS,UAAW,EAChBvlS,KAAK6/R,QAAU,QACX7/R,KAAK29R,iBACL39R,KAAK2lS,cAAcjG,GAEvB1/R,KAAK4+R,UAAUiH,EAAS,EAAGpiS,GACvBzD,KAAK29R,iBACL39R,KAAK2lS,cAAcjG,GAG/B,CACK1/R,KAAKulS,UACNvlS,KAAKuhS,eAAe99R,GAExBzD,KAAKulS,UAAW,CACpB,CAER,MAEI,GAAIvlS,KAAKo9R,QAA2B,QAAjBpD,EAAKh7Q,SAAqBhf,KAAKg9R,OAAOx5R,SAAU,QAAQw2R,EAAM,mBAAoB,CACjG,IAAI/zB,GAAW,QAAQ+zB,EAAM,IAAM6C,GAC/B/8C,EAAO75O,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAKugS,YAAat6B,GAAY,EAClEnmB,EAAO9/O,KAAKg9R,OAAOx5R,SACnBxD,KAAK4+R,UAAU9+C,EAAO,EAAGr8O,GACrBwiQ,GACAjmQ,KAAK++R,qBAAqB,CAAChD,EAASnzE,GAAW,CAACq9C,IAG5D,MACSjmQ,KAAKo9R,QAAUp9R,KAAKw9R,eAAkC,SAAjBxD,EAAKh7Q,SAC5Cg7Q,EAAKp2N,UAAU5+D,SAAS,eAC3BhF,KAAKg+R,uBAAuBv6R,GAGP,OAAjBu2R,EAAKh7Q,UAAqBhf,KAAKo9R,QAASpD,EAAKvkR,cAAcmuD,UAAU5+D,SAAS,mBAC7EhF,KAAKwhS,SAASxH,EAAK/0R,cAAc,IAAMy3R,GAAMhlQ,IAAI,GAAMl0B,OAASw2R,EAAKvkR,gBAAkBkX,KACnF+yQ,GACD1/R,KAAK++R,qBAAqB,CAACn2E,GAAW,CAACj8L,IAEtC+yQ,GAAQA,EAAIz6R,cAAc,IAAMw3R,IACjCz8R,KAAK4+R,UAAU,KAAMn7R,GAKzC,CACJ,EACAs5R,EAASr7R,UAAU6/R,eAAiB,SAAU99R,GAC1C,IAAIyzP,EACJ,GAAIl3P,KAAK4lS,YAAa,CAEd1uC,EADAl3P,KAAK29R,iBAA0C,IAAvB39R,KAAKg9R,OAAOx5R,QACzB,QAAQC,EAAE2J,OAAQ,6BAGlB,QAAQpN,KAAKoD,QAAS,4BAErC,IAAImsE,EAAMvvE,KAAKg9R,OAAO30R,OAAOrI,KAAK2hS,QAC9B73Q,EAAO9pB,KAAKolH,QAAQ71C,GAiBxB,GAhBIzlD,GAAQA,EAAK9pB,KAAKi9O,SAAS,WAAY1tK,EAAI/rE,OAAS,KACpDsmB,EAAK9pB,KAAKi9O,SAAS,WAAY1tK,EAAI/rE,OAAS,IAAIA,SACjC,cAAXC,EAAEsd,MAAyB,KAAQk4K,UAAYj5L,KAAKo9R,SACpDp9R,KAAK2lS,cAAc3lS,KAAK0/R,OAEtB1/R,KAAKw9R,eAAiBtmC,GAAcl3P,KAAKw9R,eAA4D,UAA3Cx9R,KAAK0/R,IAAI9gS,aAAa,oBAClFoB,KAAK0/R,IAAIj7R,aAAa,gBAAiB,QACvCzE,KAAKg9R,OAAO96R,KAAKlC,KAAK2hS,QACtB3hS,KAAKyvC,SAASzvC,KAAK0/R,IAAK51Q,EAAM,KAAM,KAAMrmB,KAI/B,cAAXA,EAAEsd,MACF/gB,KAAK4+R,UAAU,KAAMn7R,IAGxByzP,EAAU,CACX,IAAIioC,EAAMn/R,KAAKo/R,gBACXgB,EAAMpgS,KAAKw/R,aAAaL,EAAKv2E,GAC7Bw3E,IACAA,EAAI37R,aAAa,gBAAiB,SAClC27R,EAAIx8N,UAAUC,OAAO+kJ,GAE7B,CACJ,CACA5oN,KAAK6/R,QAAU,EACnB,EACA9C,EAASr7R,UAAUikS,cAAgB,SAAU15D,GACzC,IAAIm0D,EAAMpgS,KAAKw/R,aAAavzD,EAAGx2N,cAAemzM,GAC1Cw3E,GACAA,EAAIx8N,UAAUC,OAAO+kJ,GAEpB5oN,KAAKo9R,QACNnxD,EAAGroK,UAAUC,OAAOk4N,GAExB9vD,EAAGroK,UAAUjoD,IAAIitM,EACrB,EACAm0E,EAASr7R,UAAU89R,aAAe,SAAUlV,EAAIwb,GAC5C,IAAK,IAAI/4R,EAAI,EAAGunG,EAAMg2K,EAAGjtQ,SAAS7Z,OAAQuJ,EAAIunG,EAAKvnG,IAC/C,GAAIu9Q,EAAGjtQ,SAAStQ,GAAG62D,UAAU5+D,SAAS8gS,GAClC,OAAOxb,EAAGjtQ,SAAStQ,GAG3B,OAAO,IACX,EAQAgwR,EAASr7R,UAAUs9E,aAAe,SAAUl1D,EAAM0gP,GAC9C,IAAIj7L,EAEAA,EADgB,iBAATzlD,EACDA,EAGAA,EAAK4N,GAEf,IAAIquQ,GAAyB,IAAfv7B,EAEd,OADaxqQ,KAAKwhS,SAASjyN,EAAKw2N,EAEpC,EASAhJ,EAASr7R,UAAUyoH,QAAU,SAAUrgG,EAAM4N,EAAI8yO,GAC7C,IAAIj7L,EAEAA,EADAi7L,EACM9yO,GAAU5N,EAAK4N,GAGfA,GAAU5N,EAAKuB,KAEzB,IAAI2xQ,EAASh9R,KAAKwhS,SAASjyN,EAAKi7L,GAC5Bw7B,EAAUhmS,KAAKolH,QAAQ43K,GAC3B72R,OAAO+gH,OAAO8+K,EAASl8Q,EAC3B,EACAizQ,EAASr7R,UAAU0jH,QAAU,SAAU43K,GAEnC,IAAIztN,GADJytN,EAASA,EAAO7wR,SACCoK,MAEjB,OADYvW,KAAK2+E,SAASq+M,GACbztN,EACjB,EACAwtN,EAASr7R,UAAUi9E,SAAW,SAAUq+M,GAEpC,IADA,IAAI7yQ,EAAQnqB,KAAKmqB,MACRpd,EAAI,EAAGA,EAAIiwR,EAAOx5R,OAAQuJ,IAC/Bod,EAAQA,EAAM6yQ,EAAOjwR,IAAI/M,KAAKi9O,SAAS,WAAYlwO,IAEvD,OAAOod,CACX,EACA4yQ,EAASr7R,UAAUs7E,SAAW,SAAUgW,EAAUgqM,GAC9C,IAAI7yQ,EAAQnqB,KAAK2+E,SAASq+M,GAC1B7yQ,EAAMzc,OAAO,EAAGyc,EAAM3mB,QACtB,IAAK,IAAIuJ,EAAI,EAAGA,EAAIimF,EAASxvF,OAAQuJ,IACjCod,EAAMzc,OAAOX,EAAG,EAAGimF,EAASjmF,GAEpC,EACAgwR,EAASr7R,UAAU+9R,OAAS,SAAUnV,EAAIr+C,EAAIg6D,QAC1B,IAAZA,IAAsBA,GAAU,GACpC,IAAI12N,EAAMtpE,MAAMvE,UAAU6F,QAAQmN,KAAK41Q,EAAGjtQ,SAAU4uN,GAIpD,OAHIg6D,GAAW3b,EAAGjtQ,SAAS,GAAGumD,UAAU5+D,SAASg3R,IAC7CzsN,IAEGA,CACX,EACAwtN,EAASr7R,UAAUi/R,MAAQ,SAAU3yN,GACjC,MAAqB,OAAjBA,EAAKhvD,SAAoBgvD,EAAKpK,UAAU5+D,SAAS,eAC1CgpE,GAEJ,QAAQA,EAAM,iBACzB,EACA+uN,EAASr7R,UAAUwkS,oBAAsB,WAGrC,IAFA,IAAI/7Q,EAAQnqB,KAAKmqB,MACb9c,EAAQ,EACHvE,EAAQ,EAAGA,EAAQ9I,KAAKg9R,OAAOx5R,SACpC2mB,EAAQA,EAAMrhB,GAAOqhB,OADuBrhB,IAAS,CAKrDuE,IACA,IAAIi9Q,EAAKtqR,KAAKo/R,cAAc/xR,GAC5B,IAAKi9Q,EACD,MAEJtqR,KAAKmmS,WAAW7b,EAAIngQ,EACxB,CACJ,EACA4yQ,EAASr7R,UAAUk8R,mBAAqB,SAAU5vN,GAC9C,KAAOA,EAAK7uD,mBACR6uD,EAAKvxB,YAAYuxB,EAAK7uD,mBAE1B,OAAO6uD,CACX,EASA+uN,EAASr7R,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAgGtD,IA/FA,IAAIjjM,EAAQjC,KACR2sB,EAAU3sB,KAAK+lN,aACf0kC,EAAU,SAAU9kP,GACpB,OAAQA,GACJ,IAAK,WACGu/L,EAAQ+e,WACR,QAAY,CAACt3L,GAAUu4K,EAAQ+e,SAASz8M,MAAM,MAE9Cy9L,EAAQgf,WACR,QAAS,CAACt3L,GAAUs4K,EAAQgf,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAE3E,MACJ,IAAK,YACDmlB,EAAQi3C,UAAU/0B,OAAOu2K,GACzB,MACJ,IAAK,kBACDpW,EAAOyV,eACPzV,EAAO2uF,gBAAkB14F,EAAQ04F,gBACjC3uF,EAAOuJ,aACP,MACJ,IAAK,kBACD,GAAItT,EAAQs4F,gBAAiB,CACzB,IAAI6I,EACAp3F,EAAO5rM,QAAQwgE,UAAU5+D,SAAS,cAClCm2R,EAAansF,EAAOzqM,cAAeooB,EAASqiL,EAAO5rM,QAAS,UAAW4rM,EAAO9C,WAG9EivF,EAAansF,EAAOzqM,cAAeooB,EAASqiL,EAAO5rM,QAAS,UAAW4rM,EAAO9C,WAElF8C,EAAOuxF,YAAY38R,SAAQ,SAAU+oB,GACjCy5Q,GAAO,QAAO,QAASz5Q,GACvBwuQ,EAAal5R,EAAMsC,cAAeooB,EAASy5Q,EAAM,UAAWnkS,EAAMiqM,UACtE,GACJ,KACK,CACD,IAAIm6F,EAAO15Q,EAAQtP,SAAS,GACxB2xL,EAAO5rM,QAAQwgE,UAAU5+D,SAAS,cAClCy2R,GAAc,QAAY4K,EAAM,KAAUA,GAG1C5K,GAAc,QAAY4K,EAAM,KAAUA,GAE9C15Q,EAAQvjB,MAAM4mB,SAAW,GACzBrD,EAAQjpB,YAAYsrM,EAAO5rM,SAC3B4rM,EAAOuxF,YAAY38R,SAAQ,SAAU+oB,GACjC05Q,EAAO15Q,EAAQtP,SAAS,GACxBo+Q,GAAc,QAAY4K,EAAM,KAAUA,GAC1C15Q,EAAQvjB,MAAM4mB,SAAW,EAC7B,GACJ,CACA,MACJ,IAAK,QACD,IAAIu/C,OAAM,EACNytN,OAAS,EACTlzQ,OAAO,EAKX,GAHIklL,EAAOotD,SAAWptD,EAAO0S,UACzB1S,EAAOf,cAAc,CAAC,aAErB9nM,OAAOC,KAAK8+L,EAAQ/6K,OAAO3mB,OAkB5B,KAAI4C,EAAOD,OAAOC,KAAK6+L,EAAQ96K,OAC/B,IAASpd,EAAI,EAAGA,EAAI3G,EAAK5C,OAAQuJ,KAC7BiwR,EAAShuF,EAAOs3F,oBAAoBrhG,EAAS,GAAI7mH,OAAOh4E,EAAK2G,MAClDvJ,QAAUwrM,EAAO+W,aAAa1oM,SAAS7Z,SAC9C+rE,EAAMytN,EAAOzmR,MACbuT,EAAOklL,EAAOrwH,SAASq+M,GACvBhuF,EAAOu3F,YAAY,CAACz8Q,EAAKylD,IAAOzlD,EAAKylD,GAAKlkD,MAC1C2jL,EAAOp7G,WAAW9pE,EAAMkzQ,EAAQztN,GAChCy/H,EAAOhyH,SAASlzD,EAAMkzQ,IAE1BA,EAAOx5R,OAAS,CAViB,KAlBD,CAUpC,GATAwrM,EAAOm3F,WAAWn3F,EAAO5rM,QAAS4rM,EAAO7kL,OACrC6kL,EAAOuuF,iBAAmBvuF,EAAO5rM,QAAQqS,cAAcmuD,UAAU5+D,SAAS,qBACtEgqM,EAAO5rM,QAAQwgE,UAAU5+D,SAAS,cAClCm2R,EAAansF,EAAOzqM,cAAeooB,EAASqiL,EAAO5rM,QAAS,UAAW4rM,EAAO9C,WAG9EivF,EAAansF,EAAOzqM,cAAeooB,EAASqiL,EAAO5rM,QAAS,UAAW4rM,EAAO9C,aAGjF8C,EAAOwuF,cACR,IAAK,IAAIzwR,EAAI,EAAGM,EAAQsf,EAAQwuO,kBAAmBpuP,EAAIM,EAAON,KAC1D,QAAO4f,EAAQ5M,kBAGvBivL,EAAOguF,OAAS,EACpB,EAkBZ,EACIhuF,EAAShvM,KACJoF,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExDqlP,EADWlrP,EAAG6F,GAGtB,EACA23R,EAASr7R,UAAUykS,WAAa,SAAU7b,EAAIngQ,GAC1C,IAAI,YAAenqB,KAAKo9R,OACpB9S,EAAKtqR,KAAK49R,mBAAmBtT,OAE5B,CACD,GAAItqR,KAAKu9R,gBAAiB,CACtB,IACIiJ,EADWxmS,KAAK+lN,aACD1oM,SAAS,GACxBrd,KAAKoD,QAAQwgE,UAAU5+D,SAAS,cAChCy2R,GAAc,QAAY+K,EAAK,KAAUA,GAGzC/K,GAAc,QAAY+K,EAAK,KAAUA,EAEjD,CACAlc,EAAGviJ,UAAY,EACnB,CACU,GAAG57H,MAAMuI,KAAK1U,KAAK69R,YAAY1zQ,GAAO9M,UAC5CzZ,SAAQ,SAAUqoO,GAClBq+C,EAAG5mR,YAAYuoO,EACnB,GACJ,EACA8wD,EAASr7R,UAAU4kS,oBAAsB,SAAUrhG,EAASn8L,EAAOymE,GAC/DzmE,EAAM5G,KAAKqtE,GACX,IAAI7sE,EAAMyD,OAAOC,KAAK6+L,EAAQ96K,MAAMolD,IAAMh5D,MAC1C,GAAY,UAAR7T,EAAiB,CACjB,IAAIonB,EAAOm7K,EAAQ96K,MAAMolD,GACrBk3N,EAAStgS,OAAOC,KAAK0jB,EAAKK,OAAO5T,MACjCkwR,GACAzmS,KAAKsmS,oBAAoBx8Q,EAAMhhB,EAAOs1E,OAAOqoN,GAErD,KAEgB,kBAAR/jS,GAA2BoG,EAAMtF,OAAS,GAC1CsF,EAAMyN,MAGd,OAAOzN,CACX,EACAi0R,EAASr7R,UAAUkyF,WAAa,SAAU9pE,EAAMkzQ,EAAQztN,GACpDzlD,EAAKpc,OAAO6hE,EAAK,GACjB,IAAIm3N,EAAM1mS,KAAK+lN,aAAa1oM,SACxB2/Q,EAAOx5R,OAASkjS,EAAIljS,SACpB,QAAOkjS,EAAI1J,EAAOx5R,QAAQ6Z,SAASkyD,GAE3C,EAQAwtN,EAASr7R,UAAU+iN,aAAe,SAAUkiF,QAClB,IAAlBA,IAA4BA,EAAgB3mS,KAAKoN,QACrD,IAAIuf,EAAU3sB,KAAK+lN,aACnB,GAAI4gF,EAAe,CAIf,IAHA,IAAIv5R,OAAS,EACTk0N,OAAc,EACdy8D,GAAc,QAAU4I,GACnB55R,EAAI,EAAGunG,EAAMypL,EAAYv6R,OAAQuJ,EAAIunG,EAAKvnG,IAC/CK,EAAS2wR,EAAYhxR,GACjB/M,KAAKo9R,OACL,KAAav5N,OAAOz2D,EAAQ,QAASpN,KAAKg+R,wBAGtC,KAAQxkG,OACR8nC,GAAc,QAAYl0N,EAAQ,QAE9Bk0N,EAAY5xC,UAIhB,KAAa7rH,OAAOz2D,EAAQ,cAAepN,KAAKi+R,cAI5D,IAAKj+R,KAAKo9R,OAAQ,CACd,KAAav5N,OAAO7jE,KAAK+e,cAAe,4BAA6B/e,KAAK+sO,eAC1E,IAAK,IAAI3nO,EAAK,EAAG7F,GAAK,QAAoBS,KAAK+e,eAAgB3Z,EAAK7F,EAAGiE,OAAQ4B,IAAM,CACjF,IAAIwhS,EAAWrnS,EAAG6F,GAClB,KAAay+D,OAAO+iO,EAAU,4BAA6B5mS,KAAK+sO,cACpE,CACJ,CACJ,CACK,KAAQ9zC,WACT,KAAap1H,OAAO7jE,KAAKo9R,OAAS1+R,SAAWiuB,EAAS,YAAa3sB,KAAKk+R,sBACxE,KAAar6N,OAAOnlE,SAAU,YAAasB,KAAKo+R,2BAEpD,KAAav6N,OAAOnlE,SAAU,QAASsB,KAAKq+R,sBAC5Cr+R,KAAKkhS,oBAAoBv0Q,GACzB3sB,KAAKwoO,UACT,EACAu0D,EAASr7R,UAAUw/R,oBAAsB,SAAU99R,GAC/C,IAAI8uN,GAAiB,QAAY9uN,EAAS,MACtC8uN,GACAA,EAAexiC,SAEvB,EACAqtG,EAASr7R,UAAUy/R,gBAAkB,SAAU7W,EAAIuc,GAC/C,IAEIC,EACAC,EAHA9kS,EAAQjC,UACO,IAAf6mS,IAAyBA,GAAa,GAGJ,SAAlC7mS,KAAKmkS,kBAAkB72E,QAAsBu5E,EAI7C7mS,KAAKmkM,UAAUL,QAAQwmF,EAAI,CACvB1iR,KAAM5H,KAAKmkS,kBAAkB72E,OAC7Bz7G,SAAU7xG,KAAKmkS,kBAAkBtyL,SACjCizF,eAAgB9kM,KAAKmkS,kBAAkB/gG,OACvCvxD,MAAO,SAAU9pI,GACT9F,EAAMu7R,eACNuJ,EAAWh/R,EAAQ3E,QAAQqS,cAC3B1N,EAAQ3E,QAAQgG,MAAM+kB,SAAW,WACjC24Q,EAAYC,EAAS77M,aACrBnjF,EAAQ3E,QAAQgG,MAAMgnB,UAAYroB,EAAQ3E,QAAQ8nF,aAAe,KACjE67M,EAAS39R,MAAMgnB,UAAY,KAG3BroB,EAAQ3E,QAAQgG,MAAMwjB,QAAU,QAChC7kB,EAAQ3E,QAAQgG,MAAMgnB,UAAYroB,EAAQ3E,QAAQwc,wBAAwBiB,OAAS,KAE3F,EACAkkL,SAAU,SAAUh9L,GACZ9F,EAAMu7R,gBACNuJ,EAAS39R,MAAM+mB,UAAa22Q,EAAY/+R,EAAQ3E,QAAQ8nF,aAAgB,KAEhF,EACA3xE,IAAK,SAAUxR,GACP9F,EAAMu7R,eACNz1R,EAAQ3E,QAAQgG,MAAM+kB,SAAW,GACjCpmB,EAAQ3E,QAAQgG,MAAMgnB,UAAY,GAClC22Q,EAAS39R,MAAM+mB,UAAY,GAC3BpoB,EAAQ3E,QAAQgG,MAAMkR,IAAM,MAC5BvS,EAAQ3E,QAAQia,SAAS,GAAGzH,QAC5B3T,EAAMqhS,YAAYv7R,EAAQ3E,QAAQia,SAAS,KAG3Cpb,EAAMsX,IAAIxR,EAAQ3E,QAASyjS,EAEnC,IArCJ7mS,KAAKuZ,IAAI+wQ,EAAIuc,EAwCrB,EACA9J,EAASr7R,UAAU4hS,YAAc,SAAUhZ,GACvC,IAAIxgQ,EAAO9pB,KAAKg9R,OAAOx5R,OAASxD,KAAKolH,QAAQplH,KAAKg9R,QAAU,KACxD7mL,EAAY,CACZ/yG,QAASknR,EAAIsW,WAAY92Q,EAAMK,MAAOL,EAAOA,EAAKK,MAAQnqB,KAAKmqB,OAEnEnqB,KAAKg7L,QAAQ,SAAU7kF,GAClBn2G,KAAKo9R,QACN,KAAazhR,IAAI2uQ,EAAI,UAAWtqR,KAAKihC,WAAYjhC,KAEzD,EACA+8R,EAASr7R,UAAU6X,IAAM,SAAU+wQ,EAAIuc,GACnC,GAAIA,EAIA,GAHAvc,EAAGlhR,MAAMwjB,QAAU,QACnB09P,EAAGlhR,MAAMgnB,UAAY,GACrBpwB,KAAKsjS,YAAYhZ,GACbA,EAAGrlR,cAAc,IAAM82R,GACvBzR,EAAGrlR,cAAc,IAAM82R,GAASnmR,YAE/B,CACD,IAAI0lL,EAAMt7L,KAAK+lN,aAAa1oM,SAASrd,KAAKy/R,OAAOz/R,KAAK+lN,aAAcukE,GAAM,GACtEtqR,KAAKqyB,gBACCryB,KAAKqyB,cAAcuxC,UAAU5+D,SAAS,qBAAuBhF,KAAKqyB,cAAcuxC,UAAU5+D,SAAS,cAA+C,UAA/BhF,KAAKqyB,cAAcrT,WAUxIs8K,EACAA,EAAIr2L,cAAc,IAAM2jN,GAAUhzM,QAGlC5V,KAAKoD,QAAQwS,QAGzB,MAGA,GAAI00Q,IAAOtqR,KAAKoD,QAAS,CACrB,IAAIm8R,EAAMv/R,KAAKw/R,aAAax/R,KAAKoD,QAAS24R,GACtCwD,GACAA,EAAI37N,UAAUC,OAAOk4N,GAEzB,IAAIqE,EAAMpgS,KAAKw/R,aAAax/R,KAAKoD,QAASwlN,GACtCw3E,GACAA,EAAIx8N,UAAUC,OAAO+kJ,GAEzB0hE,EAAGlhR,MAAMwjB,QAAU,MACvB,MAEI,QAAO09P,EAGnB,EAMAyS,EAASr7R,UAAUqsM,eAAiB,WAChC,MAAO,EACX,EAOAgvF,EAASr7R,UAAUqkN,WAAa,WAC5B,OAAO,QAAQ/lN,KAAKoD,QAAS,MAAQpD,KAAKu/L,gBAAkB,WAChE,EACAw9F,EAASr7R,UAAU8/R,SAAW,SAAUxmQ,EAAMwvO,EAAYrgP,EAAO68Q,EAAQC,EAAYrwD,GAKjF,IAAI9sN,OAJU,IAAVK,IAAoBA,EAAQnqB,KAAKmqB,YACtB,IAAX68Q,IAAqBA,EAAS,SACf,IAAfC,IAAyBA,GAAa,QAC5B,IAAVrwD,IAAoBA,EAAQ,GAEhCA,EAAQqwD,EAAarwD,EAAQ,EAAI,EACjC,IAAK,IAAI7pO,EAAI,EAAGunG,EAAMnqF,EAAM3mB,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAE9C,GADA+c,EAAOK,EAAMpd,IACRy9P,EAAa1gP,EAAK9pB,KAAKi9O,SAAS,SAAUrG,IAAU9sN,EAAK9pB,KAAKi9O,SAAS,OAAQrG,OAAa57M,EAAM,CACnGgsQ,EAAO9kS,KAAK6K,GACZ,KACJ,CACK,GAAI+c,EAAK9pB,KAAKi9O,SAAS,WAAYrG,KACjC9sN,EAAK9pB,KAAKi9O,SAAS,WAAYrG,IAAQpzO,OAAQ,CAElD,IAAmC,KADnCwjS,EAAShnS,KAAKwhS,SAASxmQ,EAAMwvO,EAAY1gP,EAAK9pB,KAAKi9O,SAAS,WAAYrG,IAASowD,GAAQ,EAAMpwD,IACpFowD,EAAOxjS,OAAS,GAKtB,CACDwjS,EAAO3iL,QAAQt3G,GACf,KACJ,CAPQA,IAAMunG,EAAM,GACZ0yL,EAAOzwR,KAOnB,MAEQxJ,IAAMunG,EAAM,GACZ0yL,EAAO9kS,MAAM,EAGzB,CACA,OAAS+kS,IAA6B,IAAfD,EAAO,GAAkBA,EAAL,EAC/C,EASAjK,EAASr7R,UAAUwlS,YAAc,SAAU/8Q,EAAOmgM,EAAQkgD,GAEtD,IAAI8f,EACA/6M,EACAytN,OAHW,IAAX1yE,IAAqBA,GAAS,GAMlC,IAFA,IACI68E,EADA9wR,EAAWwuM,EAEN93M,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAAK,CAEnC,GADAiwR,EAASh9R,KAAKwhS,SAASr3Q,EAAMpd,GAAIy9P,GAC7BxqQ,KAAKg9R,OAAOx5R,QACZ,GAAsB,IAAlBw5R,EAAOx5R,OAAc,CACrB2jS,GAAW,EACX,IAAK,IAAIxQ,EAAM,EAAGriL,EAAM0oL,EAAOx5R,OAAS,EAAGmzR,EAAMriL,EAAKqiL,IAClD,GAAIqG,EAAOrG,KAAS32R,KAAKg9R,OAAOrG,GAAM,CAClCwQ,GAAW,EACX,KACJ,CAEJ,GAAIA,EACA,QAER,OAGA,GAAsB,IAAlBnK,EAAOx5R,OACP,SAGR+rE,EAAMytN,EAAOzmR,OACb+zQ,EAAKtqR,KAAKo/R,cAAcpC,EAAOx5R,YACpB,QAAkB+rE,KACrB+6I,EACItqN,KAAKo9R,QACL9S,EAAGjtQ,SAASkyD,GAAK3L,UAAUC,OAAOxtD,GAClCi0Q,EAAGjtQ,SAASkyD,GAAK5wD,gBAAgB,kBAG7B,KAAQs6K,WAAaqxF,EAAG1mN,UAAU5+D,SAAS,iBAC3CslR,EAAGjtQ,SAASkyD,EAAM,GAAG3L,UAAUC,OAAOxtD,GAGtCi0Q,EAAGjtQ,SAASkyD,GAAK3L,UAAUC,OAAOxtD,GAKtCrW,KAAKo9R,QACL9S,EAAGjtQ,SAASkyD,GAAK3L,UAAUjoD,IAAItF,GAC/Bi0Q,EAAGjtQ,SAASkyD,GAAK9qE,aAAa,gBAAiB,SAG3C,KAAQw0L,WAAaqxF,EAAG1mN,UAAU5+D,SAAS,iBAC3CslR,EAAGjtQ,SAASkyD,EAAM,GAAG3L,UAAUjoD,IAAItF,GAGnCi0Q,EAAGjtQ,SAASkyD,GAAK3L,UAAUjoD,IAAItF,GAKnD,CACJ,EAQA0mR,EAASr7R,UAAU0lS,UAAY,SAAUj9Q,EAAOqgP,GAC5CxqQ,KAAKqnS,cAAcl9Q,GAAO,EAAOqgP,EACrC,EAQAuyB,EAASr7R,UAAU4lS,UAAY,SAAUn9Q,EAAOqgP,GAC5CxqQ,KAAKqnS,cAAcl9Q,GAAO,EAAMqgP,EACpC,EACAuyB,EAASr7R,UAAU2lS,cAAgB,SAAUl9Q,EAAOo9Q,EAAQ/8B,GAIxD,IAHA,IAAI8f,EACAxhR,EACAk0R,EACKjwR,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAI9B,GAFAjE,GADAk0R,EAASh9R,KAAKwhS,SAASr3Q,EAAMpd,GAAIy9P,IAClBj0P,MACf+zQ,EAAKtqR,KAAKo/R,cAAcpC,EAAOx5R,QACvB,CACJ,IAAIgkS,EAAUh9B,EAAa8f,EAAGjtQ,SAASvU,GAAO4uB,GAAK4yP,EAAGjtQ,SAASvU,GAAOi6F,YAClEwkM,GAAUC,IAAYr9Q,EAAMpd,GAC5Bu9Q,EAAGjtQ,SAASvU,GAAO86D,UAAUjoD,IAAIghR,GAGjCrS,EAAGjtQ,SAASvU,GAAO86D,UAAUC,OAAO84N,EAE5C,CAER,EAQAI,EAASr7R,UAAUmyF,YAAc,SAAU1pE,EAAOqgP,GAI9C,IAHA,IAAIj7L,EACAytN,EACAyK,EACK16R,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAE9BwiE,GADAytN,EAASh9R,KAAKwhS,SAASr3Q,EAAMpd,GAAIy9P,IACpBj0P,MACbkxR,EAASznS,KAAK2+E,SAASq+M,IAClB,QAAkBztN,IACnBvvE,KAAK4zF,WAAW6zM,EAAQzK,EAAQztN,EAG5C,EASAwtN,EAASr7R,UAAU6kS,YAAc,SAAUp8Q,EAAOkB,EAAMm/O,GACpDxqQ,KAAK0nS,YAAYv9Q,EAAOkB,EAAMm/O,EAClC,EASAuyB,EAASr7R,UAAUqD,aAAe,SAAUolB,EAAOkB,EAAMm/O,GACrDxqQ,KAAK0nS,YAAYv9Q,EAAOkB,EAAMm/O,GAAY,EAC9C,EACAuyB,EAASr7R,UAAUgmS,YAAc,SAAUv9Q,EAAOkB,EAAMm/O,EAAYm9B,GAEhE,IAAI17D,EACA18J,EACAytN,EACAyK,EACAG,OALY,IAAZD,IAAsBA,GAAU,GAMpC,IAAK,IAAI56R,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAAK,CAEnCwiE,GADAytN,EAASh9R,KAAKwhS,SAASn2Q,EAAMm/O,IAChBj0P,MACbkxR,EAASznS,KAAK2+E,SAASq+M,GACvB4K,EAAW,IAAIp9H,EAASi9H,EAAO,GAAI,QAASt9Q,EAAMpd,IAAI,GACtD06R,EAAO/5R,OAAOi6R,EAAUp4N,EAAM,EAAIA,EAAK,EAAGq4N,GAC1C,IAAIlB,EAAM1mS,KAAKo9R,OAAS,CAACp9R,KAAK+lN,cAAc19M,OAAOrI,KAAKugS,aAAe,GAAGp0R,MAAMuI,KAAK1U,KAAK+lN,aAAa1oM,UACvG,KAAK,QAAkBkyD,IAAQytN,EAAOx5R,OAASkjS,EAAIljS,OAAQ,CACvD+rE,EAAMo4N,EAAUp4N,EAAM,EAAIA,EAC1B08J,EAAKjsO,KAAK69R,YAAY4J,GAAQpqR,SAASkyD,GACvC,IAAI+6M,EAAKtqR,KAAKo9R,QAAS,QAAO,iBAAkBsJ,EAAI1J,EAAOx5R,SAAWkjS,EAAI1J,EAAOx5R,QACjF8mR,EAAGvlR,aAAaknO,EAAIq+C,EAAGjtQ,SAASkyD,GACpC,CACJ,CACJ,EACAwtN,EAASr7R,UAAUshO,iBAAmB,WAClC,IAAI/gO,EAAQjC,KACZ,CAAC,MAAO,OAAQ,UAAW,WAAW4D,SAAQ,SAAUlB,GACpDT,EAAMmB,QAAQgG,MAAMm7P,eAAe7hQ,EACvC,IACA,CAAC,OAAQ,WAAY,QAAS,SAASkB,SAAQ,SAAUlB,GACzC,UAARA,GAAmBT,EAAMmB,QAAQwgE,UAAU5+D,SAAS,kBACpD/C,EAAMmB,QAAQwgE,UAAUC,OAAO,kBAEM,IAArC,CAAC,QAAS,SAASt8D,QAAQ7E,IAAgBT,EAAMmB,QAAQxE,aAAa8D,IACtET,EAAMmB,QAAQub,gBAAgBjc,GAE9BT,EAAMm7R,QAAkB,UAAR16R,GAAmBT,EAAMmB,QAAQwgE,UAAU5+D,SAAS,eACpE/C,EAAMmB,QAAQwgE,UAAUC,OAAO,aAEvC,GACJ,EAMAk5N,EAASr7R,UAAUguL,QAAU,WACzB,IAAI/iK,EAAU3sB,KAAK+lN,aACnB,GAAIp5L,EAAS,CAET,GADA3sB,KAAKykN,eACAzkN,KAAKo9R,OAgCNp9R,KAAK4+R,aACD,YAAe5+R,KAAKo9R,OACpBp9R,KAAKoD,QAAUpD,KAAK49R,mBAAmB59R,KAAKoD,SAG5CpD,KAAKoD,QAAQ2kI,UAAY,GAE7B/nI,KAAKgjO,mBACLr2M,EAAQshD,WAAWlpE,aAAa/E,KAAKoD,QAASupB,GAC9C3sB,KAAKs9R,cAAgB,SAzCP,CAEd,GADAt9R,KAAKs9R,cAAcl0R,MAAMwjB,QAAU,GACA,oBAA/B5sB,KAAKs9R,cAAct+Q,SACnB,QAAS,CAAChf,KAAKs9R,eAAgB,CAAC,YAAa,QAAS,KAAOt9R,KAAKu/L,kBAClEv/L,KAAKoD,QAAUpD,KAAKs9R,mBAMpB,GAHIt9R,KAAK49L,YAAc59L,KAAKs9R,cAAcniC,mBAAgE,OAA3Cn7P,KAAKs9R,cAAcjgR,SAAS,GAAG2B,SAC1Fhf,KAAKk+L,cAAc,CAAE,MAAS,KAAM,GAEpCx/L,SAASkuD,eAAe5sD,KAAKs9R,cAAc5lQ,IAAK,CAChD,IAAIw4O,EAASlwQ,KAAKs9R,cAAc34R,mBAC5BurQ,GAAUA,IAAWvjP,EACrB3sB,KAAKs9R,cAAc7nR,cAAc1Q,aAAa/E,KAAKoD,QAAS8sQ,GAG5DlwQ,KAAKs9R,cAAc7nR,cAAc/R,YAAY1D,KAAKoD,UAElD,YAAepD,KAAKo9R,OACpBp9R,KAAKoD,QAAUpD,KAAK49R,mBAAmB59R,KAAKoD,SAG5CpD,KAAKoD,QAAQ2kI,UAAY,IAE7B,QAAO,GAAG57H,MAAMuI,KAAK1U,KAAKs9R,cAAcjgR,UAAWrd,KAAKoD,UACxD,QAAOpD,KAAKs9R,eACZt9R,KAAKgjO,kBACT,CAEJhjO,KAAKs9R,cAAgB,IACzB,CAaIt9R,KAAKo9R,QAAUp9R,KAAKs9R,gBACpB,QAAOt9R,KAAKoD,SACZupB,EAAQvjB,MAAMwjB,QAAU,GACxBD,EAAQi3C,UAAUC,OAAO,KAAO7jE,KAAKu/L,gBAAkB,YACvD5yK,EAAQhO,gBAAgB,iBAGxB,QAAOgO,GAEXnY,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,MAC1BA,KAAK0hN,UACL1hN,KAAKiuM,cAAc,CAAC,YAE5B,CACAjuM,KAAKwoO,SAAW,IACpB,EACA1lC,EAAW,EACP,WACDi6F,EAASr7R,UAAW,wBAAoB,GAC3CohM,EAAW,EACP,WACDi6F,EAASr7R,UAAW,kBAAc,GACrCohM,EAAW,EACP,WACDi6F,EAASr7R,UAAW,cAAU,GACjCohM,EAAW,EACP,WACDi6F,EAASr7R,UAAW,mBAAe,GACtCohM,EAAW,EACP,WACDi6F,EAASr7R,UAAW,eAAW,GAClCohM,EAAW,EACP,WACDi6F,EAASr7R,UAAW,cAAU,GACjCohM,EAAW,EACP,WACDi6F,EAASr7R,UAAW,eAAW,GAClCohM,EAAW,EACP,QAAS,KACVi6F,EAASr7R,UAAW,gBAAY,GACnCohM,EAAW,EACP,QAAS,IACVi6F,EAASr7R,UAAW,kBAAc,GACrCohM,EAAW,EACP,SAAS,IACVi6F,EAASr7R,UAAW,uBAAmB,GAC1CohM,EAAW,EACP,QAAS,KACVi6F,EAASr7R,UAAW,cAAU,GACjCohM,EAAW,EACP,QAAS,KACVi6F,EAASr7R,UAAW,cAAU,GACjCohM,EAAW,EACP,QAAS,OACVi6F,EAASr7R,UAAW,gBAAY,GACnCohM,EAAW,EACP,SAAS,IACVi6F,EAASr7R,UAAW,uBAAmB,GAC1CohM,EAAW,EACP,SAAS,IACVi6F,EAASr7R,UAAW,2BAAuB,GAC9CohM,EAAW,EACP,QAAQ,CAAEt/F,OAAQ,KAAMn4E,KAAM,OAAQw8Q,SAAU,WAAYvjF,QAAS,UAAW9nJ,IAAK,MAAOylO,UAAW,YAAa5kR,SAAU,SAAWg6O,IAC1I0lC,EAASr7R,UAAW,cAAU,GACjCohM,EAAW,EACP,QAAW,GAAIt4B,IAChBuyH,EAASr7R,UAAW,aAAS,GAChCohM,EAAW,EACP,QAAQ,CAAEjxF,SAAU,IAAKuxF,OAAQ,OAAQkqB,OAAQ,aAAewvE,IACjEC,EAASr7R,UAAW,yBAAqB,GACjCohM,EAAW,CAClB,MACDi6F,EAEP,CAloE6B,CAkoE3B,yDC3wEMn6F,aADJ73B,GACI63B,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,EAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIy8K,EAAU,QACVC,EAAc,YAGdC,EAAe,cACfyQ,EAAiB,iBACjBC,EAAmB,mBACnBC,EAAiB,eACjBC,EAAmB,kBACnBC,EAAqB,oBACrBvQ,EAAa,kBACbC,EAAc,mBACduQ,EAAgB,sBAChBC,EAAkB,wBAclBC,EAAyB,SAAU7zR,GAQnC,SAAS6zR,EAAQtgS,EAAS3E,GACtB,OAAOoR,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,IAClD,CAwZA,OAjaA+qK,EAAUs9H,EAAS7zR,GAgBnB6zR,EAAQ3mS,UAAUirM,UAAY,WAC1B3sM,KAAKg4R,QAAU,KAAQxvI,KAAK5gJ,KAC5B5H,KAAKi4R,aAAgC,YAAjBj4R,KAAKg4R,QACzBh4R,KAAKi5L,SAAW,KAAQA,SACxBj5L,KAAK0qR,YAAa,EAClB,IAAIpvF,EAAMt7L,KAAKoD,QACfpD,KAAKk4R,QAA2B,SAAjBl4R,KAAKg4R,SAAuC,SAAjBh4R,KAAKg4R,QAC/Ch4R,KAAKwmK,aACU,KAAX80B,EAAI5jK,KACJ4jK,EAAI5jK,IAAK,QAAY,WACrB13B,KAAKo2B,UAAW,GAEpBklK,EAAIlyL,MAAMwjB,QAAU,QAChB5sB,KAAKksM,WACL5Q,EAAI13H,UAAUjoD,IAAIw7Q,EAE1B,EAOAkR,EAAQ3mS,UAAU6a,OAAS,WACvBvc,KAAKshO,YAAc,IAAI,KAAMthO,KAAKoD,QAAS,CAAE+0R,OAAQn4R,KAAKo4R,aAAaz9P,KAAK36B,MAAOuhO,MAAOvhO,KAAKq4R,aAAa19P,KAAK36B,QACjH,KAAa2b,IAAI3b,KAAKs4R,UAAW,SAAUt4R,KAAKsoS,mBAAoBtoS,MAC/DA,KAAKi5L,UAINj5L,KAAKoD,QAAQwgE,UAAUjoD,IAAIg8Q,GAC3B33R,KAAKuoS,qBAAqBvoS,KAAKoD,UAJ/BpD,KAAKw4R,cAAcx4R,KAAKoD,SAM5BpD,KAAKy4R,iBACL,KAAa98Q,IAAI3b,KAAKoD,QAAS,QAASpD,KAAKwoS,kBAAmBxoS,KACpE,EACAqoS,EAAQ3mS,UAAU+2R,eAAiB,YAC3B,QAAkBz4R,KAAK04R,aAAe14R,KAAK04R,WAAa,GACxD14R,KAAK04R,WAAa14R,KAAKs4R,UAAUptM,aACjClrF,KAAK0qR,YAAa,GAGlB1qR,KAAK0qR,YAAa,CAE1B,EACA2d,EAAQ3mS,UAAU8kK,WAAa,WAC3B,IAAIiiI,GAAY,QAAS,MAAO,CAAEhmS,UAvFrB,sBAwFTimS,GAAY,QAAS,MAAO,CAAEjmS,UAzFrB,kBA0FbimS,EAAUjkS,aAAa,WAAY,MAGnC,IAFA,IAAI62L,EAAMt7L,KAAKoD,QAENgC,EAAK,EAAGuzR,EADF,GAAGxsR,MAAMuI,KAAK4mL,EAAIj+K,UACOjY,EAAKuzR,EAAWn1R,OAAQ4B,IAAM,CAClE,IAAIk7Q,EAAQqY,EAAWvzR,GACvBqjS,EAAU/kS,YAAY48Q,EAC1B,CACAooB,EAAUhlS,YAAY+kS,GACtBntG,EAAI53L,YAAYglS,GAChBA,EAAUt/R,MAAM4mB,SAAW,SAC3BhwB,KAAKs4R,UAAYoQ,EACjB1oS,KAAK44R,YAAc6P,CACvB,EACAJ,EAAQ3mS,UAAUqsM,eAAiB,WAE/B,OAAO/tM,KAAKuuM,aADI,CAAC,cAErB,EAOA85F,EAAQ3mS,UAAU69L,cAAgB,WAC9B,MAAO,SACX,EAMA8oG,EAAQ3mS,UAAUguL,QAAU,WACxB,IAAIn1H,EAAKv6D,KAAKoD,QACdm3D,EAAGnxD,MAAMwjB,QAAU,IACnB,QAAY,CAAC5sB,KAAKoD,SAAU,CA/HrB,YA+HgCu0R,EAAYR,IACnD,IAAIwR,GAAO,QAAU,MAAQpuO,EAAG7iC,GAAK,QAAUswQ,EAAgBztO,GAC3DquO,GAAW,QAAU,IAAMhR,EAAar9N,GAC5C,GAAGpuD,MAAMuI,KAAKk0R,GAAUhlS,SAAQ,SAAU03L,IACtC,QAAOA,EACX,IACA,IAAK,IAAIl2L,EAAK,EAAG7F,EAAK,GAAG4M,MAAMuI,KAAK1U,KAAK44R,YAAYv7Q,UAAWjY,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAClF,IAAI4oE,EAAOzuE,EAAG6F,GACdm1D,EAAG72D,YAAYsqE,EACnB,CACIhuE,KAAKo2B,UACLp2B,KAAKoD,QAAQub,gBAAgB,OAEjC,QAAO3e,KAAKs4R,WACRqQ,EAAKnlS,OAAS,KACd,QAAOmlS,EAAK,KACP,QAAkBA,EAAK,MACxB,QAAOA,EAAK,KAGpB,KAAa9kO,OAAO7jE,KAAKs4R,UAAW,SAAUt4R,KAAKsoS,oBACnDtoS,KAAKshO,YAAY5xC,UACjB1vL,KAAKshO,YAAc,KACnB9sN,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,KAClC,EAQAqoS,EAAQ3mS,UAAU29P,QAAU,SAAU51P,GAClC,IAAI8vR,GAAS,QAAU,sBAAwBnC,EAAc,IAAKp3R,KAAKoD,SACnEqG,EACAzJ,KAAKoD,QAAQwgE,UAAUjoD,IAAIy7Q,GAG3Bp3R,KAAKoD,QAAQwgE,UAAUC,OAAOuzN,GAElC,GAAGjrR,MAAMuI,KAAK6kR,GAAQ31R,SAAQ,SAAU22D,GACpCA,EAAG91D,aAAa,WAAagF,EAAc,KAAN,IACzC,GACJ,EACA4+R,EAAQ3mS,UAAU6mS,qBAAuB,SAAUnlS,GAC/C,IAAIs0B,EAAKt0B,EAAQs0B,GAAGrvB,OAAO,QACvBwgS,GAAiB,QAAS,MAAO,CAAEpmS,UAAWm1R,EAAc,IAAMwQ,IAClEU,EAAU,KAAO1lS,EAAQs0B,GAAGrvB,OAAO,QAAU2/R,EAAiB,IAAME,GACpEa,GAAU,QAAS,MAAO,CAAErxQ,GAAIA,EAAGrvB,OAAO,QAAS5F,UAAWqmS,IAC9D7P,GAAU,QAAS,MAAO,CAAEx2R,UAAWslS,EAAmB,IAAM1Q,EAAe,aACnF0R,EAAQrlS,YAAYu1R,GACpB,IAAI+P,GAAQ,QAAS,MAAO,CAAEvmS,UAAWm1R,EAAc,IAAMuQ,IACzDnoS,KAAKk4R,SACL6Q,EAAQnlO,UAAUjoD,IAAI,cAE1BvY,EAAQM,YAAYmlS,GACpBzlS,EAAQM,YAAYqlS,GACpB3lS,EAAQ2B,aAAaikS,EAAO5lS,EAAQmU,YACpCvX,KAAKm5R,aAAa,CAAC4P,GACvB,EACAV,EAAQ3mS,UAAU82R,cAAgB,SAAUp1R,GACxC,IAAIs0B,EAAKt0B,EAAQs0B,GAAGrvB,OAAO,QACvBygS,EAAU,KAAO1lS,EAAQs0B,GAAGrvB,OAAO,QAAU2/R,EAAiB,IAAME,GACpEj/R,GAAM,QAAS,MAAO,CAAEyuB,GAAIA,EAAGrvB,OAAO,SAAU5F,UAAWqmS,IAC/D7/R,EAAIxE,aAAa,gBAAiB,SAClC,IAAIw0R,GAAU,QAAS,MAAO,CAAEx2R,UAAWslS,EAAmB,IAAM1Q,EAAe,aAC/E4R,EAAQ,KAAO7lS,EAAQs0B,GAAGrvB,OAAO,QAAU2/R,EAAiB,IAAMC,GAClEiB,GAAa,QAAS,MAAO,CAAExxQ,GAAIA,EAAGrvB,OAAO,OAAQ5F,UAAWwmS,EAAQ,IAAM7R,IAClF8R,EAAWzkS,aAAa,gBAAiB,QACzC,IAAI0kS,GAAY,QAAS,MAAO,CAAE1mS,UAAWqlS,EAAiB,IAAMzQ,EAAe,aACnF6R,EAAWxlS,YAAYylS,GACvBlgS,EAAIvF,YAAYu1R,GAChBhwR,EAAIxE,aAAa,WAAY,KAC7BrB,EAAQM,YAAYuF,GACpB7F,EAAQ2B,aAAamkS,EAAY9lS,EAAQmU,YACrCvX,KAAKk4R,UACLjvR,EAAI26D,UAAUjoD,IAAI,cAClButR,EAAWtlO,UAAUjoD,IAAI,eAE7B3b,KAAKm5R,aAAa,CAAClwR,EAAKigS,GAC5B,EACAb,EAAQ3mS,UAAUgsC,WAAa,SAAUp6B,GACrC,IAAIrR,EAAQjC,KACG,UAAXsT,EAAG5Q,MAKH1C,KAAKy5R,SAAWn6R,OAAOk8B,YAAW,WAH9Bv5B,EAAMy3R,YAAa,EACnBz3R,EAAM03R,aAAa,GAAIrmR,EAAGlG,QAAQ,EAItC,GAAG,KAEX,EACAi7R,EAAQ3mS,UAAUugC,QAAU,SAAU3uB,GACnB,UAAXA,EAAG5Q,MAGH1C,KAAK05R,WACL15R,KAAK05R,YAAa,EAGlBpmR,EAAGlG,OAAO2gC,QAEdxS,aAAav7B,KAAKy5R,UACtB,EACA4O,EAAQ3mS,UAAUy3R,aAAe,SAAU/1R,GACvC,IAAInB,EAAQjC,KACZ,GAAGmM,MAAMuI,KAAKtR,GAASQ,SAAQ,SAAU03L,GACrC,IAAI,KAAMA,EAAK,CAAEs+F,QAAS33R,EAAM43R,eAAel/P,KAAK14B,GAAQyuM,iBAAkB,MAC9EpV,EAAI1/K,iBAAiB,UAAW3Z,EAAMyrC,WAAW/S,KAAK14B,IACtDq5L,EAAI1/K,iBAAiB,QAAS3Z,EAAMggC,QAAQtH,KAAK14B,IACjDq5L,EAAI1/K,iBAAiB,UAAW3Z,EAAM63R,aAAan/P,KAAK14B,IACxDq5L,EAAI1/K,iBAAiB,WAAY3Z,EAAM63R,aAAan/P,KAAK14B,IACzDq5L,EAAI1/K,iBAAiB,eAAe,SAAUnY,GAC1CA,EAAEkW,gBACN,IACA,KAAagC,IAAI2/K,EAAK,QAASr5L,EAAM83R,kBAAmB93R,EAC5D,GACJ,EACAomS,EAAQ3mS,UAAUo4R,aAAe,WAC7BloL,cAAc5xG,KAAKsnJ,QACvB,EACA+gJ,EAAQ3mS,UAAUm4R,eAAiB,SAAUvmR,GACzC,IAAIrR,EAAQjC,KACRg6R,EAAO1mR,EAAGmqJ,cAAcrwJ,OAC5B4sR,EAAOh6R,KAAKgF,SAASg1R,EAAMgO,GAAkBhO,EAAK76Q,kBAAoB66Q,EAKtEh6R,KAAKsnJ,QAAUhoJ,OAAO2yG,aAAY,WAF9BhwG,EAAM03R,aAFW,GAEkBK,GAAM,EAI7C,GAAG,GACP,EACAqO,EAAQ3mS,UAAUsD,SAAW,SAAU5B,EAASX,GAC5C,OAAOW,EAAQwgE,UAAU5+D,SAASvC,EACtC,EACA4lS,EAAQ3mS,UAAUi4R,aAAe,SAAUM,EAAWD,EAAME,GACxD,IAAIt2N,EAAYo2N,EAAKp2N,UACjBA,EAAU5+D,SAASgjS,KACnBpkO,EAAYo2N,EAAK/0R,cAAc,IAAMoyR,GAAczzN,WAEnDA,EAAU5+D,SAAS+iS,GACnB/nS,KAAKo6R,mBAAmBH,EAAW,MAAOC,GAErCt2N,EAAU5+D,SAAS8iS,IACxB9nS,KAAKo6R,mBAAmBH,EAAW,GAAIC,EAE/C,EACAmO,EAAQ3mS,UAAUq4R,kBAAoB,SAAUxmR,GAC5CvT,KAAK25R,aAAa35R,KAAK04R,WAAYnlR,EAAMnG,QAAQ,EACrD,EACAi7R,EAAQ3mS,UAAU8mS,kBAAoB,SAAU/kS,GAC5CA,EAAEkW,iBACF3Z,KAAKo6R,mBAAmBp6R,KAAK04R,WAAaj1R,EAAE2lS,OAAS,EAAI,MAAQ,IAAK,EAC1E,EACAf,EAAQ3mS,UAAU22R,aAAe,SAAU50R,GACvC,IACIwc,EADAopR,EAAerpS,KAAKs4R,UAGpBr4Q,EADAxc,EAAE84M,UAAY,EACH94M,EAAE44M,WAA0B,GAAb54M,EAAE84M,UAGjB94M,EAAE44M,UAAY54M,EAAE84M,SAE/B,IAAI7sH,EAAQ,GACRo0G,EAAU,WACV,IAAIW,EAAOrqL,KAAKkgR,IAAI5qM,GAChB+0G,GAAQ,EACRnlM,OAAOq9C,qBAAqB8nJ,IAGH,OAArBhhM,EAAEw5M,eACFosF,EAAah+M,WAAaprE,EAAWwkL,EAEX,SAArBhhM,EAAEw5M,iBACPosF,EAAah+M,WAAaprE,EAAWwkL,GAEzC/0G,GAAS,IACTpwF,OAAO8E,sBAAsB0/L,GAErC,EACAA,GACJ,EACAukG,EAAQ3mS,UAAU64R,eAAiB,SAAUC,EAAW9xF,GACrC,QAAXA,EACA1oM,KAAKs4R,UAAUjtM,WAAamvM,EAG5Bx6R,KAAKs4R,UAAUjtM,WAAamvM,CAEpC,EACA6N,EAAQ3mS,UAAU04R,mBAAqB,SAAUK,EAAa/xF,EAAQwxF,GAClE,IAAIj4R,EAAQjC,KAEZ,GAAIk6R,EACAl6R,KAAKu6R,eAAeE,EAAa/xF,OADrC,CAIK1oM,KAAK0qR,YACN,GAAGv+Q,MAAMuI,MAAK,QAAU,IAAMkjR,EAAa53R,KAAKoD,UAAUQ,SAAQ,SAAU22D,GACxEkgO,GAAelgO,EAAG2wB,YACtB,IAEJ,IAAI44G,EAAU,WACN22F,EAXG,GAYHn7R,OAAOq9C,qBAZJ,KAeH16C,EAAMs4R,eAfH,GAewB7xF,GAC3B+xF,GAhBG,GAiBHn7R,OAAO8E,sBAAsB0/L,GAErC,EACAA,GAhBA,CAiBJ,EACAukG,EAAQ3mS,UAAU02R,aAAe,SAAU30R,GACvC,IAAI82D,EAAKv6D,KAAKs4R,UACVr4Q,EAAWxc,EAAE44M,UACS,OAAtB54M,EAAE64M,gBACF/hJ,EAAG8wB,UAAY9wB,EAAG8wB,UAAYprE,EAEH,SAAtBxc,EAAE64M,kBACP/hJ,EAAG8wB,UAAY9wB,EAAG8wB,UAAYprE,EAEtC,EACAooR,EAAQ3mS,UAAUg5R,eAAiB,SAAU4O,EAAeC,GACxD,GAAIvpS,KAAKi5L,SAAU,CACf,IACI4hG,IADW,QAAkByO,GAAiBC,EAAmBD,GAC5CrkS,cAAc,IAAMoyR,IACzC,QAAkBiS,IAClB,QAAUzO,EAAW,CAACkN,GAAmB,CAACD,KAG1C,QAAUjN,EAAW,CAACiN,GAAiB,CAACC,GAEhD,MAEIuB,EAAc1lO,UAAUjoD,IAAIy7Q,GAC5BkS,EAAc7kS,aAAa,gBAAiB,QAC5C6kS,EAAc3qR,gBAAgB,YAC9B4qR,EAAiB3lO,UAAUC,OAAOuzN,GAClCmS,EAAiB9kS,aAAa,gBAAiB,SAC/C8kS,EAAiB9kS,aAAa,WAAY,KAE9CzE,KAAK85R,cACT,EACAuO,EAAQ3mS,UAAU4mS,mBAAqB,SAAU7kS,GAC7C,IAAI2J,EAAS3J,EAAE2J,OACXyT,EAASzT,EAAO89E,aAChBs+M,EAAWxpS,KAAKoD,QAAQ6B,cAAc,IAAMgjS,GAC5CwB,EAAazpS,KAAKoD,QAAQ6B,cAAc,IAAMijS,GAC9CwB,EAAY1pS,KAAKoD,QAAQ6B,cAAc,IAAMkjS,GAC7CwB,EAAc3pS,KAAKoD,QAAQ6B,cAAc,IAAMmjS,GAC/C/8M,EAAYj+E,EAAOi+E,UAkBvB,GAjBIA,GAAa,IACbA,GAAaA,GAEbrrF,KAAKi5L,WAEDywG,EAAUtgS,MAAMyX,OADhBwqE,EAnXK,GAoXoBA,EAAY,KAGZ,OAExBj+E,EAAOynE,aAAez6D,KAAKkvG,KAAKzoG,EAASwqE,GAzXrC,GA0XLs+M,EAAYvgS,MAAMyX,OAAUzT,EAAOynE,aAAez6D,KAAKkvG,KAAKzoG,EAASwqE,GAAc,KAGnFs+M,EAAYvgS,MAAMyX,OAAS,QAGjB,IAAdwqE,EACArrF,KAAK06R,eAAe8O,EAAUC,QAE7B,GAAIrvR,KAAKkvG,KAAKzoG,EAASwqE,EAAY,KAAOj+E,EAAOynE,aAClD70E,KAAK06R,eAAe+O,EAAYD,OAE/B,CACD,IAAItO,EAASl7R,KAAKoD,QAAQ6B,cAAc,IAAM+iS,EAAiB,IAAM5Q,GACjE8D,IACAA,EAAOt3N,UAAUC,OAAOuzN,GACxB8D,EAAOz2R,aAAa,gBAAiB,SACrCy2R,EAAOz2R,aAAa,WAAY,KAExC,CACJ,EASA4jS,EAAQ3mS,UAAUm9L,kBAAoB,SAAUoG,EAASC,GACrD,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,aACDpF,KAAKy4R,iBACL,MACJ,IAAK,YACGxzF,EAAQiH,UACRlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAIw7Q,GAG3Bn3R,KAAKoD,QAAQwgE,UAAUC,OAAOszN,GAKlD,EACAr0F,EAAW,EACP,QAAS,OACVulG,EAAQ3mS,UAAW,kBAAc,GAC1BohM,EAAW,CACjB,MACDulG,EAEP,CAna4B,CAma1B,wDCpdMzlG,mCADJ73B,GACI63B,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,EAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAkBIkvL,EAA6B,SAAUp1R,GASvC,SAASo1R,EAAY7hS,EAAS3E,GAC1B,OAAOoR,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,IAClD,CAmFA,OA7FA+qK,EAAU6+H,EAAap1R,GAiBvBo1R,EAAYloS,UAAUirM,UAAY,WAC9B3sM,KAAKo9R,QAAS,EACdp9R,KAAKoD,QAAQs0B,GAAK13B,KAAKoD,QAAQs0B,KAAM,QAAY,mBACjDljB,EAAO9S,UAAUirM,UAAUj4L,KAAK1U,KACpC,EACA4pS,EAAYloS,UAAU8kK,WAAa,WAC/BhyJ,EAAO9S,UAAU8kK,WAAW9xJ,KAAK1U,OACjC,QAAWA,KAAKoD,QAAS,CAAE,KAAQ,UAAW,SAAY,MAC1DpD,KAAKoD,QAAQgG,MAAMm4C,QAAS,QAAiBvhD,KAAKoD,SAASqxB,UAC/D,EAUAm1Q,EAAYloS,UAAU4wE,KAAO,SAAUh4D,EAAK1C,EAAMxK,GAC9CoH,EAAO9S,UAAU+tC,SAAS/6B,KAAK1U,KAAM,KAAM,KAAMsa,EAAK1C,EAAM,KAAMxK,EACtE,EAOAw8R,EAAYloS,UAAUqvE,MAAQ,WAC1Bv8D,EAAO9S,UAAUk9R,UAAUlqR,KAAK1U,KACpC,EASA4pS,EAAYloS,UAAUm9L,kBAAoB,SAAUoG,EAASC,GACzD1wL,EAAO9S,UAAUm9L,kBAAkBnqL,KAAK1U,KAAMilM,EAASC,GACvD,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,SACDpF,KAAK+wE,QACL/wE,KAAKmC,OAAS8iM,EAAQ9iM,OACtB,MACJ,IAAK,SACDnC,KAAKykN,aAAavf,EAAQ93L,QAC1BpN,KAAKu4M,aAIrB,EAOAqxF,EAAYloS,UAAU69L,cAAgB,WAClC,MAAO,aACX,EACAuD,EAAW,EACP,QAAS,KACV8mG,EAAYloS,UAAW,cAAU,GACpCohM,EAAW,EACP,QAAS,KACV8mG,EAAYloS,UAAW,cAAU,GACpCohM,EAAW,EACP,QAAW,GAAI,OAChB8mG,EAAYloS,UAAW,aAAS,GACrBohM,EAAW,CACrB,MACD8mG,EAEP,CA/FgC,CA+F9B,yDClIMhnG,EAyBGkhB,yDA1BP/4C,GACI63B,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,EAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,GASA,SAAWopG,GAIPA,EAAmB,KAAI,OAIvBA,EAAoB,MAAI,QAIxBA,EAAkB,IAAI,MAItBA,EAAqB,OAAI,QAC5B,CAjBD,CAiBGA,IAAiBA,EAAe,CAAC,IACR,IAAI,KAAzB,IACHC,EACK,QADLA,EAGS,YAHTA,EAIS,aAcTj0K,EAAwB,SAAUt7B,GAQlC,SAASs7B,EAAO/nC,EAAS3E,GACrB,OAAOoR,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,IAClD,CAiSA,OA1SA+qK,EAAUj7H,EAAQt7B,GAUlBs7B,EAAOpuC,UAAUirM,UAAY,WAE7B,EAOA78J,EAAOpuC,UAAU6a,OAAS,WACtBvc,KAAKwmK,aACLxmK,KAAKgkN,oBAAqB,QAAahkN,KAAKoD,QAAS,CAAEgI,SAAU,WACjEpL,KAAKqtM,gBACT,EACAv9J,EAAOpuC,UAAU8kK,WAAa,WAO1B,GANIxmK,KAAKikN,WACL,QAAS,CAACjkN,KAAKoD,SAAUpD,KAAKikN,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAEzExH,KAAKkkN,WACLlkN,KAAKoD,QAAQwgE,UAAUjoD,IAAIooM,KAE1B,YAAe,WAAuC,iBAAzB/jN,KAAKu/L,gBAAqC,CACxE,GAAIv/L,KAAKqlC,QAAS,CACd,IAAI8+K,EAAenkN,KAAwB,oBAAI,KAAmBojN,SAASpjN,KAAKqlC,SAAWrlC,KAAKqlC,QAChGrlC,KAAKoD,QAAQ2kI,UAAYo8E,CAC7B,CACAnkN,KAAKokN,YACT,CACIpkN,KAAKksM,WACLlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAIooM,GAE3B/jN,KAAKqW,SACLrW,KAAKqkN,cAAcrkN,KAAKqW,UAGxBrW,KAAKu4M,YAEb,EACAzoK,EAAOpuC,UAAU2iN,cAAgB,SAAUhuM,GACvCrW,KAAKoD,QAAQiT,SAAWA,CAC5B,EACAy5B,EAAOpuC,UAAU0iN,WAAa,WAC1B,GAAIpkN,KAAKskN,QAAS,CACd,IAAIvhI,EAAO/iF,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,cAAgBzC,KAAKskN,UACnEtkN,KAAKoD,QAAQ2/F,YAAYl3F,QAI1Bk3E,EAAKnf,UAAUjoD,IAAI,UAAY3b,KAAKukN,aAAar7M,eACvB,QAAtBlJ,KAAKukN,cAAgD,WAAtBvkN,KAAKukN,cACpCvkN,KAAKoD,QAAQwgE,UAAUjoD,IAAI,KAAO3b,KAAKukN,aAAar7M,cAAgB,cALxElJ,KAAKoD,QAAQwgE,UAAUjoD,IAAIooM,GAQ/B,IAAIj9F,EAAO9mH,KAAKoD,QAAQ0B,WAAW,IAC/BgiH,GAA+B,SAAtB9mH,KAAKukN,cAAiD,QAAtBvkN,KAAKukN,aAI9CvkN,KAAKoD,QAAQM,YAAYq/E,GAHzB/iF,KAAKoD,QAAQ2B,aAAag+E,EAAM+jC,EAKxC,CACJ,EACAh3E,EAAOpuC,UAAU62M,WAAa,WACtBv4M,KAAK0hF,UACL,KAAa/lE,IAAI3b,KAAKoD,QAAS,QAASpD,KAAKwkN,gBAAiBxkN,KAEtE,EACA8vC,EAAOpuC,UAAU+iN,aAAe,WACxBzkN,KAAK0hF,UACL,KAAa7d,OAAO7jE,KAAKoD,QAAS,QAASpD,KAAKwkN,gBAExD,EACA10K,EAAOpuC,UAAU8iN,gBAAkB,WAC3BxkN,KAAKoD,QAAQwgE,UAAU5+D,SAAS,YAChChF,KAAKoD,QAAQwgE,UAAUC,OAAO,YAG9B7jE,KAAKoD,QAAQwgE,UAAUjoD,IAAI,WAEnC,EAMAm0B,EAAOpuC,UAAUguL,QAAU,WACvB,IAAI9rH,EAAY,CAACmgJ,EAAsBA,EAAkBA,EAAsB,YAAa,SAAU,WAClG,YAAa,SAAU,YAAa,UAAW,WAAY,WAAY,UACvE,iBAAkB,qBAClB/jN,KAAKikN,WACLrgJ,EAAYA,EAAUv7D,OAAOrI,KAAKikN,SAASz8M,MAAM,OAErDgN,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,OAC9B,QAAY,CAACA,KAAKoD,SAAUwgE,GACvB5jE,KAAKoD,QAAQxE,aAAa,UAC3BoB,KAAKoD,QAAQub,gBAAgB,SAE7B3e,KAAKqW,UACLrW,KAAKoD,QAAQub,gBAAgB,YAE7B3e,KAAKqlC,UACLrlC,KAAKoD,QAAQ2kI,UAAY/nI,KAAKoD,QAAQ2kI,UAAUz9H,QAAQtK,KAAKqlC,QAAS,KAE1E,IAAI09C,EAAO/iF,KAAKoD,QAAQ6B,cAAc,mBAClC89E,IACA,QAAOA,GAEX/iF,KAAKykN,eACD,MACAzkN,KAAKgkN,oBAEb,EAOAl0K,EAAOpuC,UAAU69L,cAAgB,WAC7B,MAAO,KACX,EAOAzvJ,EAAOpuC,UAAUqsM,eAAiB,WAC9B,OAAO/tM,KAAKuuM,aAAa,GAC7B,EAOAz+J,EAAO49J,OAAS,WAEhB,EASA59J,EAAOpuC,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAEpD,IADA,IAAIniH,EAAO/iF,KAAKoD,QAAQ6B,cAAc,mBAC7BG,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,YACG6/L,EAAQif,UACRlkN,KAAKoD,QAAQwgE,UAAUjoD,IAAIooM,GAG3B/jN,KAAKoD,QAAQwgE,UAAUC,OAAOkgJ,GAElC,MACJ,IAAK,WACD/jN,KAAKqkN,cAAcpf,EAAQ5uL,UAC3B,MACJ,IAAK,UACG0sE,EACIkiH,EAAQqf,SACRvhI,EAAKtgF,UAAY,cAAgBwiM,EAAQqf,QACrCtkN,KAAKoD,QAAQ2/F,YAAYl3F,SACC,SAAtB7L,KAAKukN,aACLxhI,EAAKnf,UAAUjoD,IAAI,eAGnBonE,EAAKnf,UAAUjoD,IAAI,mBAK3B,QAAOonE,GAIX/iF,KAAKokN,aAET,MAEJ,IAAK,gBACD,QAAY,CAACpkN,KAAKoD,SAAU,CAAC,iBAAkB,uBAC/C2/E,EAAO/iF,KAAKoD,QAAQ6B,cAAc,sBAE9B,QAAO89E,GAEX/iF,KAAKokN,aACL,MACJ,IAAK,WACGlf,EAAQ+e,WACR,QAAY,CAACjkN,KAAKoD,SAAU8hM,EAAQ+e,SAASz8M,MAAM,MAEnDy9L,EAAQgf,WACR,QAAS,CAACjkN,KAAKoD,SAAU6hM,EAAQgf,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAEhF,MACJ,IAAK,YACGy9L,EAAQiH,UACRlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAIooM,GAG3B/jN,KAAKoD,QAAQwgE,UAAUC,OAAOkgJ,GAElC,MACJ,IAAK,WACU,QAAY/jN,KAAKoD,UAExBpD,KAAKoD,QAAQwgE,UAAUC,OAAOkgJ,MAE7B,YAAe,YAAe/jN,KAAKmjL,kBAA6C,iBAAzBnjL,KAAKu/L,mBACzDv/L,KAAK0kN,sBACLzf,EAAQ5/J,QAAU,KAAmB+9K,SAASne,EAAQ5/J,UAE1DrlC,KAAKoD,QAAQ2kI,UAAYk9D,EAAQ5/J,QACjCrlC,KAAKokN,cAET,MAEJ,IAAK,WACGnf,EAAQvjH,SACR,KAAa/lE,IAAI3b,KAAKoD,QAAS,QAASpD,KAAKwkN,gBAAiBxkN,OAG9D,KAAa6jE,OAAO7jE,KAAKoD,QAAS,QAASpD,KAAKwkN,kBAChD,QAAY,CAACxkN,KAAKoD,SAAU,CAAC,cAKjD,EAQA0sC,EAAOpuC,UAAUqsC,MAAQ,WACrB/tC,KAAKoD,QAAQ2qC,OACjB,EAQA+B,EAAOpuC,UAAUijN,QAAU,WACvB3kN,KAAKoD,QAAQwS,OACjB,EACAktL,EAAW,EACP,QAAS,SACVhzJ,EAAOpuC,UAAW,oBAAgB,GACrCohM,EAAW,EACP,QAAS,KACVhzJ,EAAOpuC,UAAW,eAAW,GAChCohM,EAAW,EACP,SAAS,IACVhzJ,EAAOpuC,UAAW,gBAAY,GACjCohM,EAAW,EACP,SAAS,IACVhzJ,EAAOpuC,UAAW,iBAAa,GAClCohM,EAAW,EACP,QAAS,KACVhzJ,EAAOpuC,UAAW,gBAAY,GACjCohM,EAAW,EACP,QAAS,KACVhzJ,EAAOpuC,UAAW,eAAW,GAChCohM,EAAW,EACP,SAAS,IACVhzJ,EAAOpuC,UAAW,gBAAY,GACjCohM,EAAW,EACP,WACDhzJ,EAAOpuC,UAAW,cAAU,GAC/BohM,EAAW,EACP,SAAS,IACVhzJ,EAAOpuC,UAAW,2BAAuB,GAC5CohM,EAAW,EACP,WACDhzJ,EAAOpuC,UAAW,eAAW,GACvBohM,EAAW,CAChB,MACDhzJ,EAEP,CA5S2B,CA4SzB,4BC5WE,EAAwC,WACxC,IAAI8yJ,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,EAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAYImvL,EAAe,aACfC,EAAY,kBACZC,EAAW,iBACX5S,EAAU,QACV6S,EAAgB,cAChBC,EAAgB,kBAChBC,EAAgB,oBAChBC,EAAgB,eAChBC,EAAe,aACfhT,EAAc,YACdiT,EAAgB,iBAChBC,EAAe,eACfC,EAAmB,kBACnBC,EAAkB,kBAElBC,EAAc,YACdC,EAAkB,eAGlBC,EAAiB,mBACjBC,EAAc,aAGdC,EAAiB,gBAEjBC,EAAiB,gBACjBC,EAAY,kBAEZC,EAAiB,eACjBC,EAAiB,WACjBC,EAAa,gBACbC,EAAa,WACbC,EAAe,qBACfC,EAAkB,iBAClBC,EAAyB,uBACzBC,EAA2B,uBAC3BC,EAA0B,qBAC1BC,EAAsB,qBAEtBC,EAAsB,kBAItBC,EAAsB,SAAUn3R,GAEhC,SAASm3R,IACL,OAAkB,OAAXn3R,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAuDA,OA1DA,EAAU2rS,EAAMn3R,GAIhB,EAAW,EACP,QAAS,KACVm3R,EAAKjqS,UAAW,UAAM,GACzB,EAAW,EACP,QAAS,KACViqS,EAAKjqS,UAAW,YAAQ,GAC3B,EAAW,EACP,QAAS,SACViqS,EAAKjqS,UAAW,aAAS,GAC5B,EAAW,EACP,QAAS,KACViqS,EAAKjqS,UAAW,gBAAY,GAC/B,EAAW,EACP,SAAS,IACViqS,EAAKjqS,UAAW,yBAAqB,GACxC,EAAW,EACP,SAAS,IACViqS,EAAKjqS,UAAW,gBAAY,GAC/B,EAAW,EACP,QAAS,KACViqS,EAAKjqS,UAAW,kBAAc,GACjC,EAAW,EACP,QAAS,KACViqS,EAAKjqS,UAAW,kBAAc,GACjC,EAAW,EACP,SAAS,IACViqS,EAAKjqS,UAAW,eAAW,GAC9B,EAAW,EACP,QAAS,SACViqS,EAAKjqS,UAAW,gBAAY,GAC/B,EAAW,EACP,QAAS,KACViqS,EAAKjqS,UAAW,gBAAY,GAC/B,EAAW,EACP,QAAS,WACViqS,EAAKjqS,UAAW,YAAQ,GAC3B,EAAW,EACP,QAAS,SACViqS,EAAKjqS,UAAW,kBAAc,GACjC,EAAW,EACP,QAAS,OACViqS,EAAKjqS,UAAW,sBAAkB,GACrC,EAAW,EACP,QAAS,KACViqS,EAAKjqS,UAAW,mBAAe,GAClC,EAAW,EACP,QAAS,SACViqS,EAAKjqS,UAAW,aAAS,GAC5B,EAAW,EACP,WACDiqS,EAAKjqS,UAAW,aAAS,GAC5B,EAAW,EACP,SAAU,IACXiqS,EAAKjqS,UAAW,gBAAY,GACxBiqS,CACX,CA5DyB,CA4DvB,MAYEC,EAAyB,SAAUp3R,GAQnC,SAASo3R,EAAQ7jS,EAAS3E,GACtB,IAAInB,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAgBnD,OAfAiC,EAAM4pS,cAAgB5pS,EAAM6pS,OAAOnxQ,KAAK14B,GAIxCA,EAAMo3M,WAAa,CACfgW,SAAU,YACVC,UAAW,aACXF,OAAQ,UACRD,SAAU,YACV48E,UAAW,QACXC,WAAY,SACZtzR,IAAK,MACLU,KAAM,OACNG,IAAK,OAEFtX,CACX,CA2mEA,OApoEA,EAAU2pS,EAASp3R,GA+BnBo3R,EAAQlqS,UAAUguL,QAAU,WACxB,IAAIztL,EAAQjC,MACRA,KAAKo8P,SAAWp8P,KAAK2tN,YACrB3tN,KAAKiuM,gBAET,IAAIg+F,EAAWjsS,KAAKoD,QAAQkzF,iBAAiB,oBAa7C,IAZA,GAAGnqF,MAAMuI,KAAKu3R,GAAUroS,SAAQ,SAAU22D,IACjC,QAAMA,KAAQ,QAAMA,EAAGilI,iBAAmB,QAAMjlI,EAAGilI,cAAc,KAASjlI,EAAGilI,cAAc,GAAc,aAC1GjlI,EAAGilI,cAAc,GAAG9P,SAE5B,IACA1vL,KAAK45M,eACL55M,KAAKohN,OAAOx9M,SAAQ,SAAU03L,IACrB,QAAMr5L,EAAMmB,QAAQ6B,cAAcq2L,MACnC58L,SAAS+c,KAAK/X,YAAYzB,EAAMmB,QAAQ6B,cAAcq2L,IAAMlyL,MAAMwjB,QAAU,OAEpF,IACA5sB,KAAKksS,eACElsS,KAAKoD,QAAQ2c,kBAChB/f,KAAKoD,QAAQq5C,YAAYz8C,KAAKoD,QAAQ2c,kBAEtC/f,KAAKmsS,UACLnsS,KAAKoD,QAAQM,YAAY1D,KAAKosS,SAC9BpsS,KAAKmsS,QAAU,KACfnsS,KAAKosS,QAAU,MAEfpsS,KAAKqsS,SACLrsS,KAAKqsS,OAAO38G,WACZ,QAAO1vL,KAAKqsS,OAAOjpS,UAEnBpD,KAAKssS,YACLtsS,KAAKssS,UAAY,MAErBtsS,KAAKqsS,OAAS,KACdrsS,KAAKusS,UAAY,KACjBvsS,KAAKwsS,aAAe,GACpBxsS,KAAK6jE,OAAO7jE,KAAKoD,QAAS,aACtBpD,KAAKikN,WACL,QAAY,CAACjkN,KAAKoD,SAAUpD,KAAKikN,SAASz8M,MAAM,MAEpDxH,KAAKoD,QAAQub,gBAAgB,SAC7B,CAAC,gBAAiB,mBAAoB,QAAQ/a,SAAQ,SAAU6oS,GAC5D,OAAOxqS,EAAMmB,QAAQub,gBAAgB8tR,EACzC,IACAj4R,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,KAClC,EAOA4rS,EAAQlqS,UAAUirM,UAAY,WAC1B,IAAIx2F,EAAY,CAAEu2L,gBAAiB1sS,KAAK0sS,gBAAiBhU,WAAY14R,KAAK04R,YAC1E14R,KAAKg7L,QAAQ,eAAgB7kF,GAC7Bn2G,KAAK0sS,gBAAkBv2L,EAAUu2L,gBACjC1sS,KAAK04R,WAAaviL,EAAUuiL,WAC5B14R,KAAK2sS,aAAe,KACpB3sS,KAAKqsS,OAAS,KACdrsS,KAAKohN,OAAS,GACdphN,KAAKwsS,aAAexsS,KAAKmqB,MACzBnqB,KAAK0gB,aAAa1gB,KAAKoD,QAAQwgE,UAAU5+D,SAAS6kS,GAClD7pS,KAAK4sS,gBAAiB,EACtB5sS,KAAK6sS,cAAgB,EACjB7sS,KAAKksM,WACLlsM,KAAK2b,IAAI3b,KAAKoD,QAAS+zR,EAE/B,EACAyU,EAAQlqS,UAAU62M,WAAa,WAC3B,KAAa58L,IAAI3b,KAAKoD,QAAS,QAASpD,KAAKgmN,aAAchmN,MAC3DV,OAAOsc,iBAAiB,SAAU5b,KAAK6rS,eACnC7rS,KAAK8sS,eACL9sS,KAAKs+R,mBAEb,EACAsN,EAAQlqS,UAAU48R,kBAAoB,WAClCt+R,KAAK+sS,UAAY,IAAI,KAAe/sS,KAAKoD,QAAS,CAC9Cu2M,UAAW35M,KAAKiiQ,iBAAiBtnO,KAAK36B,MACtCq5M,WAAYr5M,KAAKq5M,aAErB,KAAa19L,IAAI3b,KAAKoD,QAAS,UAAWpD,KAAKgtS,WAAYhtS,MAC3DA,KAAKitS,eAAe,IACxB,EACArB,EAAQlqS,UAAUurS,eAAiB,SAAUpuR,GACzC,IAAIy8K,EAAMt7L,KAAKoD,QAAQ6B,cAAc,IAAM8kS,EAAW,SAAW3S,EAAc,WAAa4S,EAAgB,WAAamB,EAAa,MACtI,KAAK,QAAM7vG,MAAS,QAAMA,EAAIn8K,mBAAoB,CAC9C,IAAI+tR,EAAe5xG,EAAIn8K,kBAAkBvgB,aAAa,iBAClDsuS,GAAiC,OAAjBA,GAA2D,UAAlC5xG,EAAIn8K,kBAAkBH,SAC/Ds8K,EAAIn8K,kBAAkB1a,aAAa,WAAYoa,EAEvD,CACJ,EACA+sR,EAAQlqS,UAAUyrS,oBAAsB,WAChCntS,KAAK+sS,YACL,KAAalpO,OAAO7jE,KAAKoD,QAAS,UAAWpD,KAAKgtS,YAClDhtS,KAAK+sS,UAAUr9G,UACf1vL,KAAK+sS,UAAY,KAEzB,EACAnB,EAAQlqS,UAAUsrS,WAAa,SAAUvpS,GACrC,GAAyB,UAArBA,EAAE2J,OAAO4R,QAAb,CAGA,IAAIouR,IAAY,QAAMptS,KAAKqsS,UAAW,QAAUrsS,KAAKqsS,OAAOjpS,UAAkC,aAAtBpD,KAAKo5E,aAC3D,IAAd31E,EAAE8gF,UAA8D,IAA7C9gF,EAAE2J,OAAOw2D,UAAU5+D,SAAS,cAAyBooS,GACxEptS,KAAKqsS,OAAO3sE,KAAK,CAAE93N,KAAM,UAAWiqG,SAAU,OAEpB,KAAdpuG,EAAE8gF,SAAgC,KAAd9gF,EAAE8gF,SAAgC,KAAd9gF,EAAE8gF,SAAgC,KAAd9gF,EAAE8gF,UAE1E9gF,EAAEkW,gBAPN,CASJ,EACAiyR,EAAQlqS,UAAUk4M,aAAe,WAC7B,KAAa/1I,OAAO7jE,KAAKoD,QAAS,QAASpD,KAAKgmN,cAChDhmN,KAAKy7R,gBACLz7R,KAAKmtS,sBACL7tS,OAAOgd,oBAAoB,SAAUtc,KAAK6rS,eAC1C,KAAahoO,OAAOnlE,SAAU,SAAUsB,KAAKqtS,UAC7C,KAAaxpO,OAAOnlE,SAAU,QAASsB,KAAKqtS,SAChD,EACAzB,EAAQlqS,UAAU4rS,cAAgB,WAC9BttS,KAAKutS,QAAU,GACfvtS,KAAKwtS,WAAa,CAAEC,MAAO,GAAIC,QAAS,GAAIC,OAAQ,GACxD,EACA/B,EAAQlqS,UAAU2rS,SAAW,SAAU5pS,GACnC,IAAImqS,GAAS,QAAQnqS,EAAE2J,OAAQ,YAC3BpN,KAAKqsS,SAAU,QAAUrsS,KAAKqsS,OAAOjpS,WAAawqS,GAAgC,UAAtB5tS,KAAKo5E,cACjEp5E,KAAKqsS,OAAO3sE,KAAK,CAAE93N,KAAM,UAAWiqG,SAAU,KAEtD,EACA+5L,EAAQlqS,UAAU+5R,cAAgB,WAC1Bz7R,KAAK2sS,eACD3sS,KAAKusS,WACLvsS,KAAK2b,IAAI3b,KAAK2sS,aAAavpS,QAASwnS,GAExC5qS,KAAK2sS,aAAaj9G,UAClB1vL,KAAK2sS,aAAe,KAE5B,EACAf,EAAQlqS,UAAUwqS,aAAe,WAI7B,GAHIlsS,KAAKoD,SACL,GAAG+I,MAAMuI,KAAK1U,KAAKoD,QAAQkzF,iBAAiB,IAAMyzM,IAAWnmS,SAAQ,SAAU22D,IAAM,QAAOA,EAAK,IAEjGv6D,KAAKusS,UAAW,CAChB,IAAIsB,EAAY7tS,KAAKoD,QAAQ6B,cAAc,IAAM6kS,GACjD,GAAG39R,MAAMuI,KAAKm5R,EAAUxwR,UAAUzZ,SAAQ,SAAU22D,IAChD,QAAOA,EACX,IACAv6D,KAAKusS,WAAY,EACjBvsS,KAAK6jE,OAAOgqO,EAAWjD,EAC3B,CACA5qS,KAAKstS,eACT,EACA1B,EAAQlqS,UAAUosS,YAAc,WACxB9tS,KAAK2sS,eACL3sS,KAAK6jE,OAAO7jE,KAAK2sS,aAAavpS,QAAS+zR,GACvCn3R,KAAKy7R,iBAETz7R,KAAK6jE,OAAO7jE,KAAKoD,QAASsoS,GAC1B1rS,KAAK6jE,OAAO7jE,KAAKoD,QAASooS,GAC1B,IAAIuC,EAAU/tS,KAAKoD,QAAQ6B,cAAc,uBACrC8oS,GACA/tS,KAAK6jE,OAAOkqO,EAAS3C,GAErBprS,KAAKqsS,QACLrsS,KAAKguS,aAAahuS,KAAKqsS,OAAOjpS,SAAS,EAE/C,EACAwoS,EAAQlqS,UAAUia,IAAM,SAAU2/K,EAAKr1E,GACnCq1E,EAAI13H,UAAUjoD,IAAIsqG,EACtB,EACA2lL,EAAQlqS,UAAUmiE,OAAS,SAAUy3H,EAAKr1E,GACtCq1E,EAAI13H,UAAUC,OAAOoiD,EACzB,EACA2lL,EAAQlqS,UAAUusS,aAAe,SAAU3yG,GACvC,IAAI4yG,EAAS5yG,EAAIn8K,kBACb+uR,GACAA,EAAOt4R,QACP5V,KAAKmuS,gBAAgB7yG,IAGrBA,EAAI1lL,OAEZ,EACAg2R,EAAQlqS,UAAU0sS,YAAc,SAAUC,EAAWrU,GAWjD,OATIqU,GAAaruS,KAAKqsS,SAAU,QAAUrsS,KAAKqsS,OAAOjpS,SAC3CpD,KAAKqsS,OAAOjpS,QAAQ6B,cAAc,IAAM8kS,GAE1C/pS,KAAKoD,UAAY42R,GAAQqU,EACvBruS,KAAKoD,QAAQ6B,cAAc,IAAM8kS,EAAW,SAAW3S,EAAc,WAAa4S,EAAgB,WAAamB,EAAa,OAG5H,QAAQnR,EAAM,IAAM+P,EAGnC,EACA6B,EAAQlqS,UAAU4sS,YAAc,SAAUC,EAAM9qS,EAAGu2R,EAAMwU,EAAQC,GAC7D,IAIInzG,EACAsoB,EALAyoF,EAASrsS,KAAKqsS,OACdlS,EAAUn6R,KAAKoD,QACfsrS,EAAa,CAAE9mS,KAAM,UAAWiqG,SAAU,KAC1CpoG,EAAqB,WAAbhG,EAAEilM,OAAsB,WAAa,OAGjD,OAAQjlM,EAAEilM,QACN,IAAK,YACD,GAAI1oM,KAAK0gB,WACL,OAEAy5Q,IAAYH,EACZh6R,KAAKiuS,aAAaM,GAEZC,GACNxuS,KAAK2uS,SAASJ,EAAM,QAExB,MACJ,IAAK,WACD,GAAIvuS,KAAK0gB,WACL,OAEC8tR,GACDxuS,KAAK2uS,SAASJ,EAAM,YAExB,MACJ,IAAK,OACL,IAAK,MACD,GAAIA,EAAM,CACN,IAAIK,GAAa,QAAQL,EAAM,YAC3BM,EAAgB7uS,KAAKoD,QAAQ6B,cAAc,IAAMwmS,GAC3B,aAAtBzrS,KAAKo5E,cAA+By1N,GAAiBA,EAAcjrO,UAAU5+D,SAAS,kBACtF4pS,EAA0B,QAAbnrS,EAAEilM,OAAmBmmG,EAAgB,MAElDD,GACI,QAAU5uS,KAAKqsS,OAAOjpS,WACtBwgN,EAAQ,GAAGz3M,MAAMuI,KAAKk6R,EAAWvxR,UAE7Bi+K,EADa,SAAb73L,EAAEilM,OACI1oM,KAAK8uS,qBAAqBlrF,GAG1B5jN,KAAK+uS,oBAAoBnrF,KAKvCA,EAAQ5jN,KAAKoD,QAAQkzF,iBAAiB,IAAMwzM,EAAY,KAAOC,EAAW,SAAWC,EAAgB,KAEjG1uG,EADa,SAAb73L,EAAEilM,OACI1oM,KAAK8uS,qBAAqBlrF,GAG1B5jN,KAAK+uS,oBAAoBnrF,IAGnCtoB,GACAt7L,KAAKiuS,aAAa3yG,EAE1B,CACA,MACJ,IAAK,SACL,IAAK,WACD,GAAKt7L,KAAK0gB,WAmBW,WAAbjd,EAAEilM,OACF1oM,KAAK2uS,SAASJ,EAAM,YAGpBvuS,KAAK2uS,SAASJ,EAAM,aAtBxB,GAAIlC,IAAU,QAAQrS,EAAM,YAAa,CACrC,IAAI4T,EAASvB,EAAOjpS,QAChB4rS,EAAapB,EAAOzuR,kBACT,aAAV1V,GAAwBulS,IAAeT,EACxCX,EAAO7tR,iBAAiBxI,WAAW3B,QAEpB,SAAVnM,GAAoBmkS,EAAO7tR,mBAAqBwuR,EACrDS,EAAWz3R,WAAW3B,QAGtB5V,KAAK2uS,SAASJ,EAAM9kS,EAE5B,KACsB,aAAbhG,EAAEilM,QAAyB2jG,IAAU,QAAUA,EAAOjpS,UAC3DpD,KAAKiuS,aAAaM,GAW1B,MACJ,IAAK,MACD,IAAKE,IAAcD,EAAQ,CACvB,IAAIluB,EAAQiuB,EAAKpvR,kBACbg7Q,IAAYH,IACRh6R,KAAKssS,UACLtsS,KAAKssS,UAAU12R,SAGf5V,KAAKivS,gBAAgB3uB,GACrBA,EAAM1qQ,SAGlB,CACA,MACJ,IAAK,aACGy2R,GAAgC,aAAtBrsS,KAAKo5E,cACfizN,EAAO3sE,KAAKgvE,GAEhB,MACJ,IAAK,YACD,IAAKF,EACD,OAEAnC,KAAW,QAAUA,EAAOjpS,UAC5BipS,EAAOjpS,QAAQgG,MAAMkR,IAAM6/Q,EAAQjvM,aAAe,KAClDmhN,EAAOrzN,KAAK,CAAEpxE,KAAM,SAAUiqG,SAAU,OAGxCw6L,EAAO3sE,KAAKgvE,GAI5B,EACA9C,EAAQlqS,UAAUugQ,iBAAmB,SAAUx+P,GAC3C,IAAIu2R,EAAOv2R,EAAE2J,OACb,GAAqB,UAAjB4sR,EAAKh7Q,SAAwC,aAAjBg7Q,EAAKh7Q,UAA0Bhf,KAAKoD,QAAQwgE,UAAU5+D,SAASoyR,GAA/F,CAGA3zR,EAAEkW,iBACF,IAAI00R,EAAYrU,EAAKp2N,UAAU5+D,SAASylS,GACpCyE,EAAgBlV,EAAKp2N,UAAU5+D,SAAS0lS,GACxC6D,EAAOvuS,KAAKouS,YAAYC,EAAWrU,IACnCuU,GAAQW,IACRlvS,KAAKsuS,YAAYC,EAAM9qS,EAAGu2R,EAAMqU,EAAWa,EAN/C,CAQJ,EAQAtD,EAAQlqS,UAAU29P,QAAU,SAAU51P,GAClC,IAAI0wR,EAAUn6R,KAAKoD,QACfqG,EACA0wR,EAAQv2N,UAAUjoD,IAAIy7Q,GAGtB+C,EAAQv2N,UAAUC,OAAOuzN,GAEzBp3R,KAAKssS,WACLtsS,KAAKssS,UAAU7nS,aAAa,WAAYzE,KAAKssS,UAAU1tS,aAAa,kBAEpEoB,KAAK2sS,cACL3sS,KAAK2sS,aAAattC,QAAQ51P,GAE1BzJ,KAAKqsS,UACD,QAAUrsS,KAAKqsS,OAAOjpS,UAAkC,aAAtBpD,KAAKo5E,cACvCp5E,KAAKqsS,OAAO3sE,OAEhBy6D,EAAQl1R,cAAc,IAAMk1R,EAAQziQ,GAAK,QAAQjzB,aAAa,WAAagF,EAAc,KAAN,KAE3F,EACAmiS,EAAQlqS,UAAUytS,YAAc,SAAU50O,GACtC,OAAOA,EAAGqJ,UAAU5+D,SAASglS,IAAkBzvO,EAAGqJ,UAAU5+D,SAASoyR,IAAgB78N,EAAG37D,aAAa,aAAe27D,EAAGqJ,UAAU5+D,SAASmmS,MAAgB,QAAU5wO,KAAQA,EAAGqJ,UAAU5+D,SAAS+kS,EACtM,EACA6B,EAAQlqS,UAAUotS,qBAAuB,SAAUlrF,GAG/C,IAFA,IACI96M,EAAQ,EACLA,EAAQ86M,EAAMpgN,QAAQ,CACzB,IAAI83L,EAAMsoB,EAAMh5M,SAAS9B,EAAM2rB,WAAY,KAC3C,IAAK6mK,EAAI13H,UAAU5+D,SAASmmS,KAAgB7vG,EAAI13H,UAAU5+D,SAASoyR,GAC/D,OAAO97F,EAEXxyL,GACJ,CAEJ,EACA8iS,EAAQlqS,UAAUqtS,oBAAsB,SAAUnrF,GAG9C,IAFA,IACI96M,EAAQ86M,EAAMpgN,OAAS,EACpBsF,GAAS,GAAG,CACf,IAAIwyL,EAAMsoB,EAAMh5M,SAAS9B,EAAM2rB,WAAY,KAC3C,IAAK6mK,EAAI13H,UAAU5+D,SAASmmS,KAAgB7vG,EAAI13H,UAAU5+D,SAASoyR,GAC/D,OAAO97F,EAEXxyL,GACJ,CAEJ,EACA8iS,EAAQlqS,UAAUitS,SAAW,SAAU7xG,EAASz7C,GAC5C,IAAI+tJ,EAAMjpS,OAAO22L,GAASz7C,EAAM,kBAChC,GAAI+tJ,EAAK,CAEL,GADcpvS,KAAKmvS,YAAYC,GAG3B,YADApvS,KAAK2uS,SAASS,EAAK/tJ,GAGvBrhJ,KAAKiuS,aAAamB,EACtB,MACK,GAAIpvS,KAAKusS,UAAW,CACrB,IAAIv+N,EAAO7nE,OAAO22L,EAAQrnL,eAAe4rI,EAAM,kBAI/C,IAHK,QAAMrzE,IAAkC,IAAzBA,EAAK3wD,SAAS7Z,SAC9BwqE,EAAO7nE,OAAO6nE,GAAMqzE,EAAM,qBAEzB,QAAMrzE,IAASA,EAAK3wD,SAAS7Z,OAAS,EACvC,GAAY,SAAR69I,EAAgB,CAChB,IAAI9mF,EAAKyT,EAAK/oE,cAAc,IAAM8kS,GAC9B/pS,KAAKmvS,YAAY50O,GACjBv6D,KAAK2uS,SAASp0O,EAAI8mF,IAGlB9mF,EAAGp7C,kBAAkBvJ,QACrB5V,KAAKmuS,gBAAgB5zO,GAE7B,MAEQA,EAAKyT,EAAKjuD,iBACV/f,KAAKmvS,YAAY50O,GACjBv6D,KAAK2uS,SAASp0O,EAAI8mF,GAGlBrhJ,KAAKiuS,aAAa1zO,EAIlC,MACK,KAAK,QAAMuiI,GAAU,CACtB,IAAIuyG,EAAWrvS,KAAKoD,QAAQkzF,iBAAiB,IAAMwzM,EAAY,KAAOC,EAAW,SAAWC,EAA/C,UAAgF5S,EAAhF,UAA+G+T,EAAa,KAC7J,SAAR9pJ,GAAkBguJ,EAClBrvS,KAAKiuS,aAAaoB,EAAS,IAEd,aAARhuJ,GAAsBguJ,GAC3BrvS,KAAKiuS,aAAaoB,EAASA,EAAS7rS,OAAS,GAErD,CACJ,EACAooS,EAAQlqS,UAAUskN,aAAe,SAAUviN,GACvC,IAgBI4yR,EAhBAp0R,EAAQjC,KACRg6R,EAAOv2R,EAAE2J,OACTkuL,EAAMt7L,KAAKoD,QACXksS,IAAkB,SAAM,QAAQtV,EAAM,IAAM8Q,IAC5CyE,EAAUvV,EAAKp2N,UACf4rO,GAAW,QAAQxV,EAAO,IAAMyQ,GAC/B+E,IACDA,EAAWxV,GAEV1+F,EAAIj+K,SAAS,GAAGumD,UAAU5+D,SAAS,cAAiBs2L,EAAIj+K,SAAS,GAAGumD,UAAU5+D,SAAS,eACpFuqS,EAAQvqS,SAASylS,KACrB8E,EAAUvV,EAAK/0R,cAAc,YAAY2+D,YAEzC2rO,EAAQvqS,SAASilS,IAAkBsF,EAAQvqS,SAASklS,KACpDlqS,KAAKyvS,kBAAkBn0G,EAAKk0G,EAAUrY,GAG1C,IAAIoX,GAAO,QAAQ9qS,EAAE2J,OAAQ,IAAM28R,GACnC,KAAK,QAAMwE,KAASA,EAAK3qO,UAAU5+D,SAASoyR,IAAkBoY,EAAS5rO,UAAU5+D,SAASylS,GAA1F,CAGI8D,IAEAlY,EADer2R,KAAKmqB,MAAMnqB,KAAKutS,QAAQhmS,QAAQgnS,KAGnD,IAAIp4L,EAAY,CAAEsnD,cAAeh6J,EAAGqmB,KAAMusQ,GACtCA,KAAY,QAAMA,EAAQtoP,QAC1B/tC,KAAKg7L,QAAQ,SAAWh7L,KAAKutS,QAAQhmS,QAAQgnS,GAAQ,UAAWp4L,GAE/DA,EAAUnD,QACXhzG,KAAKg7L,QAAQ,UAAW7kF,GAAW,SAAUu5L,KACpC,QAAMztS,EAAMoqS,SAAWiD,IAAmBI,EAAY18L,QAAiC,UAAvB/wG,EAAMm3E,cACvEs2N,EAAY5lR,MAAkC,UAA1B4lR,EAAY5lR,KAAK/I,MACrC9e,EAAMoqS,OAAO3sE,KAAK,CAAE93N,KAAM,UAAWiqG,SAAU,KAEvD,GAfJ,CAiBJ,EACA+5L,EAAQlqS,UAAU+tS,kBAAoB,SAAUn0G,EAAKk0G,EAAUrY,GAC3D,IAAIkV,EAASrsS,KAAKqsS,QACd,QAAUA,EAAOjpS,UACjBosS,EAAS5rO,UAAUC,OAAOmnO,GAC1BqB,EAAO3sE,KAAK,CAAE93N,KAAM,UAAWiqG,SAAU,QAGrCypF,EAAI13H,UAAU5+D,SAASmyR,KACvBkV,EAAOngG,WAAY,EACnBmgG,EAAOl+Q,SAAW,CAAE8yM,EAAG,OAAQC,EAAG,QAEf,IAAnBmrE,EAAOxmG,SAAkBvK,EAAI13H,UAAU5+D,SAASmyR,KAChDkV,EAAOngG,WAAY,EACnBmgG,EAAOl+Q,SAAW,CAAE8yM,EAAG,QAASC,EAAG,QAEvCmrE,EAAO/tG,WACP+tG,EAAO1pE,kBACP0pE,EAAOjpS,QAAQgG,MAAMkR,IAAMta,KAAK2vS,oBAAsB,KAC5B,aAAtB3vS,KAAKo5E,eACLizN,EAAOjpS,QAAQgG,MAAM+mB,UAAY,OAErCq/Q,EAAS5rO,UAAUjoD,IAAIqvR,GACvBqB,EAAOrzN,KAAK,CAAEpxE,KAAM,SAAUiqG,SAAU,MAEhD,EAOA+5L,EAAQlqS,UAAU6a,OAAS,WACvBvc,KAAKwmK,aACLxmK,KAAKkqQ,gBACLlqQ,KAAKu4M,aACLv4M,KAAKqtM,gBACT,EACAu+F,EAAQlqS,UAAU8kK,WAAa,WAC3B,IAAI7rJ,GAAQ,QAAW3a,KAAK2a,OACxBkG,GAAS,QAAW7gB,KAAK6gB,QACH,SAAtB,KAAQ2nI,KAAK5gJ,MAAmC,SAAhB5H,KAAK6gB,QAA2C,aAAtB7gB,KAAKo5E,eAC/D,QAASp5E,KAAKoD,QAAS,CAAE,OAAUyd,KAEvC,QAAS7gB,KAAKoD,QAAS,CAAE,MAASuX,IAClC,IAAIi1R,EAAW,CACX,KAAQ,UAAW,gBAAiB,QACpC,mBAAqB5vS,KAAK0gB,WAA4B,WAAf,eAE3C,QAAW1gB,KAAKoD,QAASwsS,GACrB5vS,KAAKikN,WACL,QAAS,CAACjkN,KAAKoD,SAAUpD,KAAKikN,SAASz8M,MAAM,KAErD,EACAokS,EAAQlqS,UAAUwoQ,cAAgB,WAC9B,IAAI5uE,EAAMt7L,KAAKoD,QACfpD,KAAKmsS,QAAW7wG,EAAIj+K,SAAS7Z,OAAS,EAAK83L,EAAIr2L,cAAc,OAAS,KACtEjF,KAAKwtS,WAAa,CAAEC,MAAO,GAAIC,QAAS,GAAIC,OAAQ,IACpD3tS,KAAK01F,cACL11F,KAAK6vS,cACT,EACAjE,EAAQlqS,UAAUmuS,aAAe,WAC7B7vS,KAAK8vS,qBACD9vS,KAAKusS,WACLvsS,KAAK+vS,kBAEL/vS,KAAKqsS,QAAUrsS,KAAKqsS,OAAOjpS,QAAQ+3P,kBAAoB,GAAKn7P,KAAKgwS,kBAAkBhwS,KAAKoD,QAASpD,KAAKqsS,OAAOjpS,UAC7GpD,KAAKguS,aAAahuS,KAAKqsS,OAAOjpS,SAAS,GAE3CpD,KAAKiiS,WACT,EACA2J,EAAQlqS,UAAUuuS,WAAa,SAAU9lR,EAAO+lR,GAC5C,IAAIC,EACAC,EACCpwS,KAAKutS,UACNvtS,KAAKutS,QAAU,IAEnB,IAAK,IAAIxgS,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAC9BojS,EAAYnwS,KAAKqwS,mBAAmBlmR,EAAMvf,SAASmC,EAAE0nB,WAAY,KAAM1nB,IAC9B,IAArC/M,KAAKutS,QAAQhmS,QAAQ4oS,IACrBnwS,KAAKutS,QAAQrrS,KAAKiuS,GAEjBnwS,KAAKusS,WACNvsS,KAAKswS,cAAcnmR,EAAMvf,SAASmC,EAAE0nB,WAAY,KAAMy7Q,EAAYnjS,IAEtEqjS,EAAWF,EAAWjrS,cAAc,cAAgBklB,EAAMvf,SAASmC,EAAE0nB,WAAY,KAAK87Q,MAAMrnS,iBAElFihB,EAAMvf,SAASmC,EAAE0nB,WAAY,KAAK+7Q,mBAAoE,SAA/CrmR,EAAMvf,SAASmC,EAAE0nB,WAAY,KAAKzE,UAC3FhwB,KAAKwtS,YAAYrjR,EAAMvf,SAASmC,EAAE0nB,WAAY,KAAK87Q,MAAQ,KAAKrnS,eAAehH,KAAKiuS,GAExFC,EAAS1sS,YAAYysS,IAGrBD,EAAWxsS,YAAYysS,GAG3BnwS,KAAKo8P,UAELp8P,KAAKgvL,OAAO,gCAAiChvL,KAAiB,SAC9DA,KAAKguM,uBAEb,EAKA49F,EAAQlqS,UAAUyuR,kBAAoB,WAClC,IAAI70F,EAAMt7L,KAAKoD,QACXpD,KAAK0gB,YACL46K,EAAI13H,UAAUC,OAAOgmO,GACrB7pS,KAAK0gB,YAAa,EACE,SAAhB1gB,KAAK6gB,QAAqC,SAAhB7gB,KAAK6gB,SAC/By6K,EAAIlyL,MAAMyX,OAAS7gB,KAAK6gB,QAE5By6K,EAAI72L,aAAa,mBAAoB,gBAGrC62L,EAAI13H,UAAUjoD,IAAIkuR,GAClB7pS,KAAK0gB,YAAa,EAClB46K,EAAI72L,aAAa,mBAAoB,aACrC,QAASzE,KAAKoD,QAAS,CAAE,QAAU,QAAWpD,KAAK6gB,QAAS,OAAS,QAAW7gB,KAAK2a,UAEzF3a,KAAK8tS,cACL9tS,KAAKywS,iBACT,EACA7E,EAAQlqS,UAAUgvS,WAAa,SAAUttS,EAASutS,IACzC3wS,KAAK2sS,cAAgB3sS,KAAK4wS,cAAcxtS,EAASutS,EAAW,MACzD3wS,KAAKusS,WACLvsS,KAAKoD,QAAQ6B,cAAc,IAAM6kS,EAAY,KAAOa,GAAgBhsR,gBAAgB,SAEpF3e,KAAK0gB,WACL1gB,KAAK2sS,aAAe,IAAI,IAAQ,CAAEjU,WAAY14R,KAAK04R,WAAYxsF,UAAWlsM,KAAKksM,WAAaykG,EAAW,IAGvG3wS,KAAK2sS,aAAe,IAAI,IAAQ,CAAEjU,WAAY14R,KAAK04R,WAAYxsF,UAAWlsM,KAAKksM,WAAaykG,EAAW,IAEvG3wS,KAAKikN,WACL,QAAS,CAAC0sF,EAAW,IAAK3wS,KAAKikN,SAASz8M,MAAM,MAElDxH,KAAK6jE,OAAO7jE,KAAK2sS,aAAavpS,QAASwnS,IACvC,QAAS5qS,KAAKoD,QAAS,CAAE4sB,SAAU,WAE3C,EACA47Q,EAAQlqS,UAAUmvS,aAAe,SAAU1mR,GACvC,IAEI/gB,EAFAnH,EAAQjC,KACR2a,EAAQ,EAUZ,MARA,GAAGxO,MAAMuI,MAAK,QAAU,IAAMq1R,EAAU5/Q,IAAQvmB,SAAQ,SAAU22D,IAC1D,QAAUA,KACVnxD,EAAQ9J,OAAO2jH,iBAAiB1oD,GAChC5/C,GAAS1Y,EAAMye,WAAa65C,EAAG2wB,aAAe3wB,EAAGpzB,YACjDxsB,GAASwF,WAAWle,EAAMye,WAAatX,EAAMgqC,UAAYhqC,EAAMiqC,aAC/D14B,GAASwF,WAAWle,EAAMye,WAAatX,EAAMkqC,aAAelqC,EAAM+pC,YAE1E,IACOx4B,CACX,EACAixR,EAAQlqS,UAAUovS,gBAAkB,SAAUX,GAC1C,IAAIY,EAAY/wS,KAAe,WAAI,qBAAuB,qBAC1D,OAAOmwS,EAAUlrS,cAAc8rS,EACnC,EACAnF,EAAQlqS,UAAUkvS,cAAgB,SAAUxtS,EAAS+sS,GACjD,IAAI,QAAM/sS,KAAY,QAAM+sS,MAAe,QAAU/sS,GACjD,OAAO,EAEX,IAAI4tS,EAAWhxS,KAAK0gB,WAAatd,EAAQ8nF,aAAe9nF,EAAQ+jC,YAC5D8pQ,EAAYjxS,KAAK0gB,WAAayvR,EAAUjlN,aAAeilN,EAAUhpQ,aACjEnnC,KAAKusS,WAAavsS,KAAK2sS,cAAiBqE,IAAaC,KACrDA,EAAYjxS,KAAK6wS,aAAa7wS,KAAK2sS,aAAe3sS,KAAK8wS,gBAAgBX,GAAaA,IAExF,IAAIe,EAAS9tS,EAAQ6B,cAAc,IAAMwlS,GACrC0G,EAAY/tS,EAAQ6B,cAAc,IAAMylS,GACxC0G,EAAc,EAOlB,OANIF,EACAE,EAAcpxS,KAAK0gB,WAAawwR,EAAOhmN,aAAegmN,EAAO/pQ,YAExDgqQ,IACLC,EAAcpxS,KAAK0gB,WAAuC,EAAzBywR,EAAUjmN,aAA+C,EAAxBimN,EAAUhqQ,aAE5E8pQ,EAAYD,EAAWI,CAM/B,EAQAxF,EAAQlqS,UAAU+uS,gBAAkB,WAChCzwS,KAAK8rS,QACT,EACAF,EAAQlqS,UAAU2vS,aAAe,SAAUV,GACnC3wS,KAAKusS,YACLvsS,KAAK2b,IAAIg1R,EAAY/F,GACrB5qS,KAAK+vS,kBAEb,EACAnE,EAAQlqS,UAAUouS,mBAAqB,WACnC,IAAIx0G,EAAMt7L,KAAKoD,QACXutS,EAAar1G,EAAIr2L,cAAc,IAAM6kS,GACrCwH,EAAgBtxS,KAAK6sS,cAAgB,EACzC,GAAIvxG,GAAOA,EAAIj+K,SAAS7Z,OAAS,EAM7B,OALAxD,KAAKuxS,UAAYj2G,EAAIn0J,YACrBnnC,KAAK6jE,OAAO7jE,KAAKoD,QAAS,aACA,SAAtB,KAAQolJ,KAAK5gJ,MAAmC,SAAhB5H,KAAK6gB,SACrCy6K,EAAIlyL,MAAMyX,OAAS,IAEf7gB,KAAKo5E,cACT,IAAK,cACG,QAAMp5E,KAAK2sS,eACX3sS,KAAK0wS,WAAWp1G,EAAK,GAAGnvL,MAAMuI,KAAK4mL,EAAIiL,uBAAuBujG,KAElE,MACJ,IAAK,QACD9pS,KAAK2b,IAAI3b,KAAKoD,QAAS,aACnBpD,KAAKusS,WACLvsS,KAAKwxS,qBAELxxS,KAAK4wS,cAAct1G,EAAKq1G,IAAeW,IACvCtxS,KAAKyxS,sBAAsBn2G,GAE/Bt7L,KAAKqxS,aAAaV,GAClB,MACJ,IAAK,WACD3wS,KAAK2b,IAAIg1R,EAAYvF,GACjBprS,KAAK4wS,cAAct1G,EAAKq1G,IAAe3wS,KAAKusS,YAC5CvsS,KAAKwxS,oBACLxxS,KAAK2b,IAAIg1R,EAAYtF,IAEE,WAAvB/vG,EAAIlyL,MAAM4mB,WACVsrK,EAAIlyL,MAAM4mB,SAAW,IAEC,SAAtB,KAAQw4H,KAAK5gJ,MAAwC,SAArB0zL,EAAIlyL,MAAMyX,SAC1Cy6K,EAAIlyL,MAAMyX,OAAS,QAEvB,MACJ,IAAK,WACD7gB,KAAK2b,IAAI3b,KAAKoD,QAASooS,IACnBxrS,KAAK4wS,cAAct1G,EAAKq1G,IAAeW,KACnCtxS,KAAKusS,WACLvsS,KAAKwxS,oBAETxxS,KAAKyxS,sBAAsBn2G,IAE/Bt7L,KAAKqxS,aAAaV,GAGlC,EACA/E,EAAQlqS,UAAU+vS,sBAAwB,SAAUn2G,GAChDt7L,KAAK0xS,eAAep2G,EAAK,GAAGnvL,MAAMuI,MAAK,QAAU,IAAMo1R,EAAY,KAAOC,EAAUzuG,MAKpF,QAAWt7L,KAAKoD,QAAQ6B,cAAc,IAAMwlS,GAJ7B,CACX,SAAY,IAAK,KAAQ,SAAU,gBAAiB,OACpD,aAAc,YAGtB,EACAmB,EAAQlqS,UAAUugS,UAAY,WAC1B,IAAI7+R,EAAUpD,KAAKoD,QACfuuS,EAAU,GAAGxlS,MAAMuI,KAAKtR,EAAQkzF,iBAAiB,IAAM0zM,IACvD4H,EAAWxuS,EAAQ6B,cAAc,IAAMqmS,GACvCuG,EAAYzuS,EAAQ6B,cAAc,IAAMsmS,GACxCuG,EAAsC,aAAtB9xS,KAAKo5E,aAA8Bw4N,EAAWC,EAC5C,OAAlBC,IAC0B,aAAtB9xS,KAAKo5E,aACL04N,EAAcluO,UAAUC,OAAOynO,GAEJ,aAAtBtrS,KAAKo5E,cACV04N,EAAcluO,UAAUC,OAAO0nO,IAGvC,IAAK,IAAIx+R,EAAI,EAAGA,GAAK4kS,EAAQnuS,OAAS,EAAGuJ,IACjC4kS,EAAQ/mS,SAASmC,EAAE0nB,WAAY,KAAKm/K,WAAa,IAAyD,IAAnD+9F,EAAQ/mS,SAASmC,EAAE0nB,WAAY,KAAKm/K,aACjE,aAAtB5zM,KAAKo5E,aACLu4N,EAAQ/mS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAUjoD,IAAI2vR,GAEvB,aAAtBtrS,KAAKo5E,cACVu4N,EAAQ/mS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAUjoD,IAAI4vR,GAIlE,EACAK,EAAQlqS,UAAUgwS,eAAiB,SAAUp2G,EAAKs5F,GAC9C,IAAImd,EAAWz2G,EAAIr2L,cAAc,IAAMwlS,GACnC5yR,EAAW7X,KAAK0gB,WACfqxR,GACD/xS,KAAKgyS,gBAAgB12G,GAEzBy2G,EAAWz2G,EAAIr2L,cAAc,IAAMwlS,GACnC,IAAIwH,EAAep6R,EAAWk6R,EAAS7mN,aAAe6mN,EAAS5qQ,YAC3D6pQ,GAAan5R,EAAWyjL,EAAIpwG,aAAeowG,EAAIn0J,aAAe,EAClEnnC,KAAKoD,QAAQwgE,UAAUC,OAAO,UAC9B,QAAS7jE,KAAKoD,QAAS,CAAEuT,UAAW,YACpC3W,KAAKkyS,cAAc52G,EAAKs5F,EAAUoc,GAAU,GACxChxS,KAAKksM,WACLlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAI,SAE/B3b,KAAKoD,QAAQgG,MAAMm7P,eAAe,aAClCvkQ,KAAK2mQ,aACT,EACAilC,EAAQlqS,UAAUywS,iBAAmB,SAAUC,EAASC,EAAU/2G,EAAKg3G,EAAWC,GAC9E,IAAInvS,EAAUgvS,EAAQhvS,QAClBovS,EAAY,GAAGrmS,MAAMuI,MAAK,QAAU,IAAMq2R,EAAW3nS,EAAQ6B,cAAc,IAAM6kS,KACjFlmF,GAAQ,QAAU,IAAM2mF,EAAkBjvG,GAC1Cm3G,EAAY,EACZC,EAAU,EACdF,EAAU5uS,SAAQ,SAAU22D,EAAIzxD,GAC5B86M,GAAQ,QAAU,IAAM2mF,EAAkBjvG,GACtC/gI,EAAGqJ,UAAU5+D,SAASulS,IAAqB3mF,EAAMpgN,OAAS,EACtD4uS,EAAQO,UAAY/uF,EAAMpgN,OAASsF,GACnCwyL,EAAIv2L,aAAaw1D,EAAIqpJ,EAAMh5M,SAAS9B,EAAM2rB,WAAY,QACpDi+Q,IAGFp3G,EAAIv2L,aAAaw1D,EAAI+gI,EAAIj+K,SAASumM,EAAMpgN,WACtCkvS,GAGDn4O,EAAGqJ,UAAU5+D,SAASulS,IAItB6H,EAAQO,UAAYp4O,EAAGqJ,UAAU5+D,SAASwlS,IAAoBlvG,EAAIj+K,SAAS7Z,OAAS,GAAsB,IAAjBogN,EAAMpgN,QAHpG83L,EAAIv2L,aAAaw1D,EAAI+gI,EAAI/jL,cACvBm7R,GAMGn4O,EAAGqJ,UAAU5+D,SAASwlS,GAC3B6H,EAASnwS,KAAKq4D,GAET63O,EAAQO,UACbr3G,EAAIv2L,aAAaw1D,EAAI+gI,EAAIx2L,WAAW2tS,EAAYC,MAC9CD,GAGFn3G,EAAI53L,YAAY62D,GAEhBA,EAAGqJ,UAAU5+D,SAASglS,IACtB,QAASzvO,EAAI,CAAE3tC,QAAS,GAAI/L,OAAQ0xR,EAAY,QAGhD,QAASh4O,EAAI,CAAE3tC,QAAS,GAAI/L,OAAQyxR,EAAY,MAExD,IACAD,EAASzuS,SAAQ,SAAU22D,GACvB+gI,EAAI53L,YAAY62D,EACpB,IAEA,IADA,IAAIgzO,GAAU,QAAU,IAAMxD,EAAU3mS,EAAQ6B,cAAc,IAAM6kS,IAC3D/8R,EAAIwgS,EAAQ/pS,OAAS,EAAGuJ,GAAK,EAAGA,IAAK,CAC1C,IAAI6lS,EAAcrF,EAAQ3iS,SAASmC,EAAE0nB,WAAY,KACjD,IAAIm+Q,EAAYhvO,UAAU5+D,SAASglS,IAAwC,aAAtBhqS,KAAKo5E,aAItD,OAHA,QAASw5N,EAAa,CAAEhmR,QAAS,QAKzC,CACJ,EACAg/Q,EAAQlqS,UAAUilQ,YAAc,WAC5B,IACI4rC,EACAM,EAFAzvS,EAAUpD,KAAKoD,QAGO,aAAtBpD,KAAKo5E,eACLy5N,EAAUzvS,EAAQ6B,cAAc,IAAM+kS,GACtCuI,EAC8B,SAAzBnvS,EAAQgG,MAAMyX,QAA8C,KAAzBzd,EAAQgG,MAAMyX,OAAiB,KAAQgyR,GAAWA,EAAQ3nN,cAEtG,IAEIowG,EAFAq2G,EAAUvuS,EAAQ6B,cAAc,IAAM8kS,EAAW,SAAWC,EAAgB,UAAYe,EAAY,KACpGuH,EAAsC,SAAzBlvS,EAAQgG,MAAMyX,QAA8C,KAAzBzd,EAAQgG,MAAMyX,OAAiB,KAAQ8wR,GAAWA,EAAQzmN,aAG9G,IAAI,QAAO,IAAM9nF,EAAQs0B,GAAK,UAAYozQ,EAAgB1nS,GACtDk4L,GAAM,QAAO,IAAMl4L,EAAQs0B,GAAK,UAAYozQ,EAAgB1nS,OAE3D,CACD,IAAI0vS,EAAY9yS,KAAKuE,cAAc,MAAO,CACtCmzB,GAAIt0B,EAAQs0B,GAAK,SAAUj1B,UAAWqoS,EAAiB,IAAMW,IAE7DxlC,EAAWjmQ,KAAKuE,cAAc,MAAO,CAAEmzB,GAAIt0B,EAAQs0B,GAAK,SAAUj1B,UAAWqoS,IACjFxvG,EAA4B,aAAtBt7L,KAAKo5E,aAA8B05N,EAAY7sC,CACzD,CACAjmQ,KAAKmyS,iBAAiBnyS,KAXP,GAWuBs7L,EAAKg3G,EAAWC,GACtDvyS,KAAK+yS,UAAU3vS,EAASk4L,EAC5B,EACAswG,EAAQlqS,UAAUiuS,kBAAoB,WAClC,MAA8B,aAAtB3vS,KAAKo5E,cAAwG,eAAzE95E,OAAO2jH,iBAAiBjjH,KAAKoD,SAAS6mH,iBAAiB,cAC/FjqH,KAAKoD,QAAQod,aAAexgB,KAAKoD,QAAQ8nF,YACjD,EACA0gN,EAAQlqS,UAAUqxS,UAAY,SAAU3vS,EAASk4L,GAC7C,GAAKt7L,KAAKqsS,OAsCL,CACD,IAAIpmC,EAAWjmQ,KAAKqsS,OAAOjpS,SAC3B,QAAS6iQ,EAAU,CAAE71O,UAAW,GAAIxD,QAAS,WAC7C,QAASq5O,EAAU,CAAE71O,UAAW61O,EAAS/6K,aAAe,KAAMt+D,QAAS,IAC3E,KA1CkB,CACdxpB,EAAQM,YAAY43L,GAChBt7L,KAAKikN,WACL,QAAS,CAAC3oB,GAAMt7L,KAAKikN,SAASz8M,MAAM,OAExC,QAASxH,KAAKoD,QAAS,CAAE4sB,SAAU,KACnC,IAAIgjR,EAAY1zS,OAAO2jH,iBAAiBjjH,KAAKoD,SACzCs/N,EAAQ,IAAI,KAAM,KAAM,CACxB1B,SAAUhhO,KAAKoD,QACf4iM,QAAUhmM,KAAe,WAAI,EAAIA,KAAK2vS,oBACtCzjG,UAAWlsM,KAAKksM,UAChB55H,KAAMtyE,KAAK+rS,UAAUpxQ,KAAK36B,MAC1B+wE,MAAO/wE,KAAKgsS,WAAWrxQ,KAAK36B,MAC5BohO,UAAW,CAAEF,EAAGlhO,KAAK0sS,gBAAkB,OAAS,QAChDv+Q,SAAUnuB,KAAKksM,UAAY,CAAE+0B,EAAG,OAAQC,EAAG,OAAU,CAAED,EAAG,QAASC,EAAG,SAa1E,GAX0B,aAAtBlhO,KAAKo5E,eACLspJ,EAAM/nN,MAAQwF,WAAW6yR,EAAUr4R,OAAqD,EAA1CwF,WAAW6yR,EAAUlgQ,kBACnE4vL,EAAM78B,QAAU,GAEpB68B,EAAMn2B,SAASjR,GACf,KAAa3/K,IAAIjd,SAAU,SAAUsB,KAAKqtS,SAAS1yQ,KAAK36B,OACxD,KAAa2b,IAAIjd,SAAU,SAAUsB,KAAKqtS,SAAS1yQ,KAAK36B,OACxD0iO,EAAMt/N,QAAQgG,MAAMgnB,UAAYsyM,EAAMt/N,QAAQ8nF,aAAe,KACzDlrF,KAAK0gB,aACLgiN,EAAMt/N,QAAQgG,MAAMyoB,WAAa,UAEjC7xB,KAAK4sS,eAAgB,CACrB,IAAI4C,EAAWxvS,KAAKoD,QAAQ6B,cAAc,IAAMwlS,GAChD+E,EAAS5rO,UAAUjoD,IAAIqvR,IACvB,QAAUwE,EAASrwR,kBAAmB,CAAC8qR,GAAgB,CAACC,IACxDlqS,KAAKoD,QAAQ6B,cAAc,IAAMwmS,GAAqB7nO,UAAUjoD,IAAIwuR,EACxE,MAEIznE,EAAMhD,OAEV1/N,KAAKqsS,OAAS3pE,CAClB,CAMJ,EACAkpE,EAAQlqS,UAAUuxS,iBAAmB,SAAU/pP,GACjB,aAAtBlpD,KAAKo5E,eACDlwB,EACAlpD,KAAK2b,IAAI3b,KAAKoD,QAASsoS,GAGvB1rS,KAAK6jE,OAAO7jE,KAAKoD,QAASsoS,GAGtC,EAEAE,EAAQlqS,UAAUqqS,UAAY,SAAUtoS,GACpC,IAAI4oS,EAASrsS,KAAKqsS,OACbrsS,KAAK0gB,aACN2rR,EAAOrmG,QAAUhmM,KAAK2vS,oBACtBtD,EAAO/tG,YAEX,IAAI2nE,EAAWjmQ,KAAKqsS,OAAOjpS,QACvB8vS,EAAUlzS,KAAKqsS,OAAOjpS,QAAQqS,cAC9B+5R,EAAW0D,EAAQjuS,cAAc,IAAMwlS,GAC3C+E,EAAS/qS,aAAa,gBAAiB,SACvC,QAAS4nS,EAAOjpS,QAAS,CAAEyd,OAAQ,OAAQuP,UAAW,KACtDi8Q,EAAOjpS,QAAQgG,MAAMgnB,UAAYi8Q,EAAOjpS,QAAQ8nF,aAAe,KACrC,aAAtBlrF,KAAKo5E,eACLizN,EAAOjpS,QAAQgG,MAAM+mB,UAAY,IAErC,IAAIgjR,EAAcltC,EAAS96K,UAAY86K,EAAS/6K,cAAe,OAAkBgoN,GAAS54R,IACtF84R,EAAU5D,EAASrwR,kBACvBqwR,EAAS5rO,UAAUjoD,IAAIqvR,IACvB,QAAUoI,EAAS,CAACnJ,GAAgB,CAACC,IACrClqS,KAAKizS,kBAAiB,GACtB,IAAIzY,GAAY,QAAMl7R,OAAO+zS,SAAW,EAAI/zS,OAAO+zS,QACnD,IAAKrzS,KAAK0gB,YAAgBphB,OAAOy6C,YAAcygP,EAAa2Y,GAAiBnzS,KAAKoD,QAAQ+nF,UAAY86K,EAAS/6K,aAAe,CAC1H,IAAIooN,EAAkBrtC,EAAS/6K,cAAiBioN,EAAc7zS,OAAOy6C,YAAcygP,EAAa,GAChG6R,EAAOxrR,OAASyyR,EAAiB,KACjC,IAAK,IAAIvmS,EAAI,EAAGA,GAAKk5P,EAAS9K,kBAAmBpuP,IAAK,CAClD,IAAIuuL,EAAM2qE,EAAS5oP,SAASzS,SAASmC,EAAE0nB,WAAY,KACnD,GAAI6mK,EAAInwG,UAAYmwG,EAAIpwG,aAAeooN,EAAgB,CACnDA,EAAiBh4G,EAAInwG,UACrB,KACJ,CACJ,EACA,QAASkhN,EAAOjpS,QAAS,CAAEgtB,UAAWkjR,EAAiB,MAC3D,MACK,GAAItzS,KAAK0gB,WAAY,CACtB,IAAI6yR,EAAYvzS,KAAKoD,QAAQwc,yBAC7B,QAASysR,EAAOjpS,QAAS,CAAEgtB,UAAYmjR,EAAUj5R,IAAMta,KAAKoD,QAAQ8nF,aAAgB,KAAM1wE,OAAQ,EAAGqX,WAAY,IACrH,CACA,GAAIw6Q,EAAQ,CACR,IAAI3kC,EAAczB,EAASrmP,wBACvB8nP,EAAY1vP,MAAQtZ,SAASC,gBAAgB4rD,aAAem9M,EAAY/sP,MAAQu4R,EAAQtzR,wBAAwBjF,QAChH0xR,EAAOjrE,UAAY,CAAEF,EAAG,QACxBmrE,EAAO/tG,YAEX+tG,EAAO1pE,iBACX,CACJ,EAEAipE,EAAQlqS,UAAUsqS,WAAa,SAAUvoS,GACrC,IACI+rS,EADUxvS,KAAKoD,QACI6B,cAAc,IAAMwlS,GAC3C+E,EAAS/qS,aAAa,gBAAiB,SACvC,IAAI2uS,EAAU5D,EAASrwR,kBACvBqwR,EAAS5rO,UAAUC,OAAOmnO,IAC1B,QAAUoI,EAAS,CAAClJ,GAAgB,CAACD,IACrCjqS,KAAKizS,kBAAiB,EAC1B,EACArH,EAAQlqS,UAAUwwS,cAAgB,SAAU52G,EAAKk4G,EAAOxC,EAAUyC,GAkB9D,IAjBA,IAGIC,EAHAC,EAAc3zS,KAAK6sS,cAAgB,EAEnC+G,EAAS5C,EAGT6C,EAAW,EACXtsQ,EAAY,EACZusQ,EAAe,EACfC,EAAa,SAAUz4G,EAAKr1E,GAC5B,IAAI+tL,GAAO,EAMX,OALA/tL,EAAIriH,SAAQ,SAAUkpI,GACdwuD,EAAI13H,UAAU5+D,SAAS8nI,KACvBknK,GAAO,EAEf,IACOA,CACX,EACSjnS,EAhBCymS,EAAMhwS,OAgBG,EAAGuJ,GAAK,EAAGA,IAAK,CAC/B,IAAIknS,OAAO,EACPC,EAAa50S,OAAO2jH,iBAAiBuwL,EAAM5oS,SAASmC,EAAE0nB,WAAY,MAClEz0B,KAAK0gB,YACLuzR,EAAO9zR,WAAW,EAAaizB,WAC/B6gQ,GAAQ9zR,WAAW,EAAamzB,gBAGhC2gQ,EAAO9zR,WAAW,EAAakzB,aAC/B4gQ,GAAQ9zR,WAAW,EAAagzB,aAEpC,IAAIghQ,EAAcX,EAAM5oS,SAASmC,EAAE0nB,WAAY,OAASz0B,KAAKutS,QAAQ,GACjE4G,IACAn0S,KAAKo0S,YAAcH,GAEvBP,EAAY1zS,KAAK0gB,WAAa8yR,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKy2D,aAAesoN,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAK0S,YACjH,IAAIktQ,EAAWF,EAAeT,EAAYO,EAAQP,EAmBlD,GAlBIK,EAAWP,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAM,CAACy2Q,KAAgByI,IAC/DH,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAUjoD,IAAIovR,GAC5C/qS,KAAK0gB,YACL,QAAS8yR,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAM,CAAE7H,QAAS,OAAQuD,UAAWkkR,EAAW,QAGrF,QAASb,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAM,CAAE7H,QAAS,OAAQ+E,SAAU0iR,EAAW,OAExFP,KAEA9zS,KAAK0gB,WAEA8yR,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAK02D,UAAYqoN,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKy2D,aAAe+oN,EAAQjD,EAIvGwC,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKm/K,WAAa4/F,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAK0S,YAAc8sQ,EAAQjD,EAE/F,CACb,GAAIwC,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAU5+D,SAASglS,IACrD,GAA0B,aAAtBhqS,KAAKo5E,aAED26N,EADAO,EAASd,EAAM5oS,SAASmC,EAAE0nB,WAAY,KACnB,CAACu1Q,EAAeiB,MACnCuI,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAUjoD,IAAIovR,GAChD+I,KAEJvsQ,SAEC,GAA0B,UAAtBvnC,KAAKo5E,aAA0B,CAEhC,IAAIk7N,EADJT,EAAW,GAAKtsQ,IAAcusQ,GAE1BC,EADAO,EAASd,EAAMzmS,EAAIw6B,GAAassQ,EAAW,IACxB,CAAC7J,EAAeiB,MACnC,QAASqJ,EAAQ,CAAE1nR,QAAS,SAGpCinR,IACAtsQ,EAAY,EACZusQ,EAAe,CACnB,OAGAvsQ,IAEAisQ,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAU5+D,SAASulS,IAAqBkJ,GAIpEM,EAAWP,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAM,CAACu1Q,EAAeiB,IAHpE+F,IAAchxS,KAAK0gB,WAAa8yR,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKy2D,aAC9DsoN,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAK0S,aAAe,GAGrDqsQ,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAKmvC,UAAUjoD,IAAIovR,GAC5C/qS,KAAK0gB,YACL,QAAS8yR,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAM,CAAE7H,QAAS,OAAQuD,UAAWkkR,EAAW,QAGrF,QAASb,EAAM5oS,SAASmC,EAAE0nB,WAAY,KAAM,CAAE7H,QAAS,OAAQ+E,SAAU0iR,EAAW,OAExFP,IAMR,CACJ,CACA,GAAIL,EAAK,CACL,IAAIc,GAAW,QAAU,IAAMxK,EAAW,SAAWgB,EAAY,IAAK/qS,KAAKoD,SAC3EpD,KAAKkyS,cAAc52G,EAAKi5G,EAAUX,GAAQ,EAC9C,CACJ,EACAhI,EAAQlqS,UAAUswS,gBAAkB,SAAU5uS,GAC1C,IAAIs0B,EAAKt0B,EAAQs0B,GAAGrvB,OAAO,QACvB5F,EAAY,KAAOW,EAAQs0B,GAAGrvB,OAAO,kBACzC5F,EAAkC,aAAtBzC,KAAKo5E,aAA8B32E,oBAAoCA,EACnF,IAAIwG,EAAMjJ,KAAKuE,cAAc,MAAO,CAAEmzB,GAAIA,EAAIj1B,UAAWA,IAC/B,SAAtB,KAAQ+lJ,KAAK5gJ,MAAyC,SAAtB,KAAQ4gJ,KAAK5gJ,MAC7CqB,EAAI26D,UAAUjoD,IAAI,cAEtB,IAAIs9Q,EAAUj5R,KAAKuE,cAAc,MAAO,CAAE9B,UAAWynS,EAAgB,aACrEjhS,EAAIvF,YAAYu1R,GAChBhwR,EAAIxE,aAAa,WAAY,KAC7BwE,EAAIxE,aAAa,OAAQ,UACzBrB,EAAQM,YAAYuF,EACxB,EACA2iS,EAAQlqS,UAAU8yS,WAAa,SAAUhB,EAAOnpD,EAAMoqD,EAAQl6O,EAAIm6O,EAAKC,EAAOC,EAAKC,EAAI7B,GACnF,IAAI8B,EAAcD,EACdjH,EAAS5tS,KAAKqsS,OAAOjpS,QACrBiyO,EAAQ,IAAM00D,EAAW,SAAWC,EAAgB,UAAYO,EAAmB,IACnFwK,GAAY,QAAU,IAAMhK,EAAY,SAAWR,EAAmB,IAAKqD,GAAQpqS,OACnFuwS,EAAa,SAAUz4G,EAAKr1E,GAC5B,OAAOq1E,EAAI13H,UAAU5+D,SAASihH,EAClC,EACA,GAAuC,KAAnC,QAAUovH,EAAOm+D,GAAOhwS,OAAc,CACtC,IAAIwxS,EAASxB,EAAMn2R,SAASgtO,GAAQA,EAAOoqD,GAAU,GACjDQ,IAAgB,QAAMD,IAAWjB,EAAWiB,EAAQ/J,GACxD,KAAM,QAAM+J,IAAWjB,EAAWiB,EAAQhL,MAAmB,QAAUgL,IAAYC,EAAa,CAC5FD,EAAO5rS,MAAMwjB,QAAU,QACvB,IAAIsoR,EAAcF,EAAO7tQ,YAAyE,EAA1DhnB,WAAW7gB,OAAO2jH,iBAAiB+xL,GAAQ3hQ,aAC/E8hQ,EAAUH,EAAOvyL,uBAChBkyL,EAAQO,EAAeN,GAAOF,GAC/BlB,EAAMzuS,aAAaw1D,EAAIi5O,EAAMn2R,SAAUgtO,EAAOyqD,GAAgBzqD,EAAOoqD,MAChE,QAAMU,KACPA,EAAQ/rS,MAAMwjB,QAAU,OAI5B,QAAS2tC,EAAIy4O,GACTmC,EAAQvxO,UAAU5+D,SAASglS,KAC3BmL,EAAQ/rS,MAAMwjB,QAAU,SAGhCooR,EAAO5rS,MAAMwjB,QAAU,EAC3B,MAEI4mR,EAAMzuS,aAAaw1D,EAAIi5O,EAAMn2R,SAAUgtO,EAAOyqD,GAAgBzqD,EAAOoqD,IAE7E,MAEIjB,EAAMzuS,aAAaw1D,EAAIi5O,EAAMn2R,SAAUgtO,EAAOyqD,EAAeC,GAErE,EACAnJ,EAAQlqS,UAAUssS,aAAe,SAAU/nC,EAAUv2E,GACjD,IAAIztL,EAAQjC,KACRs7L,EAAMt7L,KAAKoD,QACXgyS,EAAQp1S,KAAK0gB,WACbk0Q,EAAWt5F,EAAIr2L,cAAc,IAAM6kS,GACnCoH,EAAS51G,EAAIr2L,cAAc,IAAMwlS,GACrC,KAAI,QAAMyG,GAAV,CAKA,IAAIjwM,EAFJ2zL,EAASj2Q,gBAAgB,SACzBsnP,EAAS78P,MAAMwjB,QAAU,QAGrBq0E,EADAm0M,EACY95G,EAAIpwG,cAAgBgmN,EAAOhmN,aAAe0pM,EAAS1pM,cAGnDowG,EAAIn0J,aAAe+pQ,EAAO/pQ,YAAcytP,EAASztP,aAEjE,IAAIkuQ,EAAgB,EACpB,GAAGlpS,MAAMuI,KAAKuxP,EAAS5oP,UAAUzZ,SAAQ,SAAU22D,GAC/C86O,GAAiBpzS,EAAMozS,cAAc96O,IACrC,QAASA,EAAI,CAAE,SAAY,IAC/B,IACK0mC,GAAam0M,EAAQlE,EAAOhmN,aAAegmN,EAAO/pQ,aAAgB,GAA0C,IAAvBnnC,KAAK6sS,gBAC3Fn9G,GAAU,GAEd1vL,KAAKs1S,gBAAgBr0M,EAAWglK,EAAUv2E,GAC1Cu2E,EAAS78P,MAAMwjB,QAAU,GACQ,IAA7Bq5O,EAAS5oP,SAAS7Z,QAAgB0tS,GAAUlxS,KAAKqsS,UACjD,QAAO6E,GACPA,EAAS,KACTlxS,KAAKqsS,OAAO38G,WACZ,QAAO1vL,KAAKqsS,OAAOjpS,SACnBpD,KAAKqsS,OAAS,KAzBlB,CA2BJ,EACAT,EAAQlqS,UAAU6zS,eAAiB,SAAUzsS,EAAO8rR,GAChD,IAAI4gB,EAAY,GAAGrpS,MAAMuI,KAAKkgR,EAASt+L,iBAAiB,IAAM20M,IAC1DwK,EAAY,GACZpoS,EAAQ,EACZ,OAAImoS,EAAUhyS,OAAS,GACnBgyS,EAAU5xS,SAAQ,SAAU03L,GACxBm6G,EAAUvzS,KAAK,GAAGiK,MAAMuI,KAAKkgR,EAASv3Q,UAAU9V,QAAQ+zL,GAC5D,IAKJm6G,EAAU7xS,SAAQ,SAAUqiH,GACpBA,GAAOn9G,GACPuE,GAER,IACOA,GAPI,CAQf,EACAu+R,EAAQlqS,UAAUsuS,kBAAoB,SAAUx0R,EAAMoyR,GAClDA,EAAOxkS,MAAMwjB,QAAU,QACvB,IAAI+nR,EAAQ30S,KAAKq1S,cAAczH,EAAOzuR,mBACtCyuR,EAAOzuR,kBAAkB/V,MAAMm7P,eAAe,YAC9C,IAAImxC,EAAYl6R,EAAK2rB,YAAc3rB,EAAKvW,cAAc,IAAMwlS,GAAatjQ,YACrEwuQ,EAAen6R,EAAKvW,cAAc,IAAM6kS,GAAW3iQ,YAEvD,OADAymQ,EAAOxkS,MAAMm7P,eAAe,WACxBmxC,EAAaf,EAAQgB,CAI7B,EACA/J,EAAQlqS,UAAU2zS,cAAgB,SAAU96O,GACxCA,EAAGnxD,MAAM+kB,SAAW,WACpB,IAAIynR,EAAU51S,KAAK0gB,WAAa65C,EAAG2wB,aAAe3wB,EAAGpzB,YACjD0uQ,EAAUt7O,EAAGt1D,cAAc,oBAC/B,GAAIs1D,EAAGqJ,UAAU5+D,SAAS,iBAAmBu1D,EAAGqJ,UAAU5+D,SAASslS,GAAe,CAC9E,IAAItgC,EAAMzvM,EAAGl9C,SAAS,KACjB,QAAMw4R,IAAYt7O,EAAGqJ,UAAU5+D,SAASslS,GACzCuL,EAAQzsS,MAAMwjB,QAAU,SAElB,QAAMipR,IAAYt7O,EAAGqJ,UAAU5+D,SAASqlS,KAC9CwL,EAAQzsS,MAAMwjB,QAAU,SAE5Bo9O,EAAI5gQ,MAAMuoB,SAAW,KACrBikR,EAAUz1R,WAAYngB,KAAK0gB,WAAiC65C,EAAGnxD,MAAM+mB,UAA7BoqC,EAAGnxD,MAAMuoB,UACjDq4O,EAAI5gQ,MAAMuoB,SAAW,GACrBq4O,EAAI5gQ,MAAM+mB,UAAY,IACjB,QAAM0lR,KACPA,EAAQzsS,MAAMwjB,QAAU,GAEhC,CACA,OAAOgpR,CACX,EACAhK,EAAQlqS,UAAU4zS,gBAAkB,SAAU36R,EAAOsrP,EAAUv2E,GA8D3D,IA7DA,IAEIqlH,EACAjsS,EAHA6qS,EAAc3zS,KAAK6sS,cAAgB,EACnCiJ,EAAY91S,KAAKutS,QAGjB3Y,EAAW50R,KAAKoD,QAAQ6B,cAAc,IAAM6kS,GAC5CgL,EAAc,EACdxuS,EAAU,SAAUi0D,GACpB,GAAIA,EAAGqJ,UAAU5+D,SAASkmS,IAAeyI,IAAgBjkH,EACrD,MAAO,WAEX,IAAIkmH,EAAU5mG,EAAOqmG,cAAc96O,GAKnC,GAJIA,IAAOy0I,EAAOu+F,QAAQ,KACtBqI,GAAW5mG,EAAOolG,aAEtB75O,EAAGnxD,MAAM+kB,SAAW,KAChBynR,EAAUj7R,GAAS+0K,GA0CnB,MAAO,QAzCP,IAAIqmH,EAAe,CAAEpkR,SAAU4oC,EAAGnxD,MAAMuoB,SAAU9Q,OAAQ05C,EAAGnxD,MAAMyX,OAAQsP,UAAWoqC,EAAGnxD,MAAM+mB,WAM/F,IALA,QAASoqC,EAAI,CAAE5oC,SAAU,GAAI9Q,OAAQ,GAAIsP,UAAW,KAC/CoqC,EAAGqJ,UAAU5+D,SAASwlS,IACvBjwO,EAAGqJ,UAAUC,OAAOknO,GAExBjiS,EAAQkmM,EAAOu+F,QAAQhmS,QAAQgzD,GAC3By0I,EAAOu9F,UAAW,CAClB,IAAIlrJ,EAAM2tD,EAAO7kL,MAAMvf,SAAS9B,EAAM2rB,WAAY,KAAK87Q,MACvDznS,EAAQkmM,EAAOw+F,YAAYnsJ,EAAM,KAAKn4I,eAAe3B,QAAQgzD,GAC7Du7O,EAAY9mG,EAAOw+F,YAAYnsJ,EAAM,KAAKn4I,eAC1C0rR,EAAW5lF,EAAO5rM,QAAQ6B,cAAc,IAAM6kS,EAAN,eAAwCzoJ,EAAIn4I,cACxF,CACA,IAAI8sS,EAAiB,EACO,aAAxBhnG,EAAO51H,cACP08N,EAAU3pS,MAAM,EAAGrD,GAAOlF,SAAQ,SAAU22D,IACpCA,EAAGqJ,UAAU5+D,SAASulS,IAAqBhwO,EAAGqJ,UAAU5+D,SAASglS,MAC7DzvO,EAAGqJ,UAAU5+D,SAASglS,KACtBzvO,EAAGnxD,MAAMwjB,QAAU,GACnBjS,GAAS4/C,EAAGpzB,aAEhB6uQ,IAER,IAEJlB,EAAc9lG,EAAOumG,eAAezsS,EAAO8rR,GACvCr6N,EAAGqJ,UAAU5+D,SAASulS,IACtBv7F,EAAOwlG,WAAW5f,EAAU9rR,EAAOktS,EAAgBz7O,EAAIm1H,EAASkmH,EAASj7R,EAAOm6R,EAAaiB,GAC7Fp7R,GAAS4/C,EAAGpzB,aAEG,IAAVr+B,GACL8rR,EAAS7vR,aAAaw1D,EAAIq6N,EAASr9Q,YACnCoD,GAAS4/C,EAAGpzB,cAGZ4tQ,GAAY,QAAU,IAAMxK,EAAkBv7F,EAAOq9F,OAAOjpS,SAASI,OACrEoxR,EAAS7vR,aAAaw1D,EAAIq6N,EAASv3Q,SAAUvU,EAAQgsS,EAAeC,IACpEp6R,GAAS4/C,EAAGpzB,aAEhBozB,EAAGnxD,MAAMyX,OAAS,EAK1B,EACImuL,EAAShvM,KACJoF,EAAK,EAAG7F,EAAK,GAAG4M,MAAMuI,KAAKuxP,EAAS5oP,UAAWjY,EAAK7F,EAAGiE,QAG5C,UADF8C,EADL/G,EAAG6F,IADwDA,KAMpDpF,KAAK4wS,cAAc5wS,KAAKoD,QAASpD,KAAKoD,QAAQmjM,uBAAuBujG,GAAW,MAC9Ep6G,GAClB1vL,KAAK8vS,oBAEb,EACAlE,EAAQlqS,UAAU8vS,kBAAoB,WAClC,IAAI1nR,EAAO9pB,KAAKoD,QAAQ6B,cAAc,IAAM6kS,GAC5C,KAAI,QAAMhgR,IAAUA,EAAK85C,UAAU5+D,SAAS4lS,GAA5C,CAGA5qS,KAAK6jE,OAAO/5C,EAAM8gR,GAClB,IAAIuF,EAAY,GAAGhkS,MAAMuI,KAAKoV,EAAKhlB,YACnCqrS,EAAU,GAAGxxR,gBAAgB,SAC7BwxR,EAAU,GAAGxxR,gBAAgB,QAJ7B,CAKJ,EACAitR,EAAQlqS,UAAUu0S,mBAAqB,WACnC,IAAInsR,EAAO9pB,KAAKoD,QAAQ6B,cAAc,IAAM6kS,GAC5C9pS,KAAK2b,IAAImO,EAAM8gR,GACf5qS,KAAK+vS,iBACT,EACAnE,EAAQlqS,UAAUquS,gBAAkB,WAChC,IACIngR,EADA9F,EAAO9pB,KAAKoD,QAAQ6B,cAAc,IAAM6kS,GAE5C,KAAI,QAAMhgR,IAAUA,EAAK85C,UAAU5+D,SAAS4lS,GAA5C,CAGA,IACIuF,EADAX,EAAWxvS,KAAKoD,QAAQ6B,cAAc,IAAMwlS,GAEhD,GAAIzqS,KAAK2sS,aAAc,CACnB,IAAIoE,EAAY/wS,KAAe,WAh6CtB,oBADA,oBAk6CTmwS,EAAY,GAAGhkS,MAAMuI,KAAKoV,EAAK7kB,cAAc,IAAM8rS,GAAU1zR,SACjE,MAEI8yR,EAAY,GAAGhkS,MAAMuI,KAAKoV,EAAKhlB,YAG/B8qB,EADA5vB,KAAK0gB,WACIyvR,EAAU,GAAGjlN,aAAeilN,EAAU,GAAGjlN,aAGzCilN,EAAU,GAAGhpQ,YAAcgpQ,EAAU,GAAGhpQ,YAErD,IAAI+uQ,EAAUl2S,KAAK0gB,WAAa1gB,KAAKoD,QAAQ8nF,aAAelrF,KAAKoD,QAAQ+jC,YACzE,GAAIqoQ,EAAU,CACV0G,GAAYl2S,KAAK0gB,WAAa8uR,EAAStkN,aAAeskN,EAASroQ,YAC/D,IAAIgvQ,GAAUn2S,KAAK0gB,WAAa8uR,EAAStkN,aAAeskN,EAASroQ,aAAe,KAChFgpQ,EAAU,GAAGxxR,gBAAgB,SACzB3e,KAAK0gB,WACD1gB,KAAKksM,UACLikG,EAAU,GAAG/mS,MAAMkR,IAAM67R,EAGzBhG,EAAU,GAAG/mS,MAAMoR,OAAS27R,EAI5Bn2S,KAAKksM,UACLikG,EAAU,GAAG/mS,MAAMwO,KAAOu+R,EAG1BhG,EAAU,GAAG/mS,MAAM4O,MAAQm+R,CAGvC,CACA,KAAID,GAAWtmR,GAAf,CAGA,IAAInmB,GAAWysS,EAAUtmR,GAAa5vB,KAAK0gB,WAAwCyvR,EAAU,GAAGjlN,aAAxCilN,EAAU,GAAGhpQ,cAA4C,EACjHgpQ,EAAU,GAAGxxR,gBAAgB,SAC7B,IAAIs1R,GAAUj0S,KAAK0gB,WAAwCyvR,EAAU,GAAGjlN,aAAxCilN,EAAU,GAAGhpQ,aAA2C19B,EAAS,KAC7FzJ,KAAK0gB,WACD1gB,KAAKksM,UACLikG,EAAU,GAAG/mS,MAAMkqC,aAAe2gQ,EAGlC9D,EAAU,GAAG/mS,MAAMgqC,UAAY6gQ,EAI/Bj0S,KAAKksM,UACLikG,EAAU,GAAG/mS,MAAMiqC,YAAc4gQ,EAGjC9D,EAAU,GAAG/mS,MAAM+pC,WAAa8gQ,CAjBxC,CAxCA,CA4DJ,EACArI,EAAQlqS,UAAU4uS,cAAgB,SAAUxmR,EAAMssR,EAAS/0J,GACvD,IAAIp/I,EAAQjC,KACZ,IAAI8pB,EAAK0mR,mBAAuC,SAAlB1mR,EAAKkG,SAAnC,CAGA,IAAIqmR,EAAW,GAIf,GAHAA,EAASn0S,KAAKlC,KAAKuE,cAAc,MAAO,CAAE9B,UAn+C/B,oBAo+CX4zS,EAASn0S,KAAKlC,KAAKuE,cAAc,MAAO,CAAE9B,UAAWkoS,KACrD0L,EAASn0S,KAAKlC,KAAKuE,cAAc,MAAO,CAAE9B,UAt+C9B,qBAu+CA,IAAR4+I,GAA4B,SAAfv3H,EAAKymR,MAClB8F,EAASzyS,SAAQ,SAAU03L,GACvB86G,EAAQ1yS,YAAY43L,EACxB,IACAt7L,KAAKusS,WAAY,EACjBvsS,KAAK2b,IAAIy6R,EAASxL,QAEjB,GAAmB,SAAf9gR,EAAKymR,MAAkB,CAC5B,IAAI+F,EAAWF,EAAQtxS,WACnByxS,EAAcF,EAAS,GAC3B,GAAGlqS,MAAMuI,KAAK4hS,GAAU1yS,SAAQ,SAAU22D,GACtCt4D,EAAMurS,WAAWC,MAAMvrS,KAAKq4D,GAC5Bg8O,EAAY7yS,YAAY62D,EAC5B,IACA67O,EAAQ1yS,YAAY6yS,GACpBH,EAAQ1yS,YAAY2yS,EAAS,IAC7BD,EAAQ1yS,YAAY2yS,EAAS,IAC7Br2S,KAAKusS,WAAY,EACjBvsS,KAAK2b,IAAIy6R,EAASxL,EACtB,CAxBA,CAyBJ,EACAgB,EAAQlqS,UAAU80S,aAAe,WAC7B,IAAIv0S,EAAQjC,KACZA,KAAKosS,QAAUpsS,KAAKmsS,QAAQ/vP,WAAU,GACtCp8C,KAAK2b,IAAI3b,KAAKmsS,QAASrC,GACvB9pS,KAAKutS,QAAU,GACA,GAAGphS,MAAMuI,KAAK1U,KAAKmsS,QAAQ9uR,UACjCzZ,SAAQ,SAAU03L,GACH,QAAhBA,EAAIt8K,UACJ/c,EAAMsrS,QAAQrrS,KAAKo5L,IACd,QAAMA,EAAIn8K,oBACXm8K,EAAIn8K,kBAAkB1a,aAAa,gBAAiB,SAExDxC,EAAM0Z,IAAI2/K,EAAKyuG,GAEvB,GACJ,EACA6B,EAAQlqS,UAAUg0F,YAAc,WAC5B,IAAI4lG,EAAMt7L,KAAKoD,QACX+mB,EAAQnqB,KAAKmqB,MACjB,GAAoB,MAAhBnqB,KAAKmsS,QACLnsS,KAAKw2S,oBAEJ,GAAIl7G,GAAOnxK,EAAM3mB,OAAS,EAAG,CAC9B,IAAI0sS,OAAa,EACb50G,GAAOA,EAAIj+K,SAAS7Z,OAAS,IAC7B0sS,EAAa50G,EAAIr2L,cAAc,IAAM6kS,IAEpCoG,IACDA,EAAalwS,KAAKuE,cAAc,MAAO,CAAE9B,UAAWqnS,KAExD9pS,KAAKiwS,WAAW9lR,EAAO+lR,GACvB50G,EAAI53L,YAAYwsS,EACpB,CACJ,EACAtE,EAAQlqS,UAAU+0S,QAAU,SAAUlxK,EAAMniI,GAGxC,IAFA,IACI42M,EADAt3M,EAAMyD,OAAOC,KAAKm/H,GAEbx4H,EAAI,EAAGA,EAAIrK,EAAIc,OAAQuJ,IAEb,WADfitM,EAASt3M,EAAIkI,SAASmC,EAAE0nB,WAAY,MAEhCz0B,KAAK2b,IAAIvY,EAASmiI,EAAK,GAAKy0E,IAG5B52M,EAAQqB,aAAau1M,EAAQz0E,EAAK,GAAKy0E,GAGnD,EASA4xF,EAAQlqS,UAAUwlS,YAAc,SAAU/8Q,EAAOouP,GAC7C,IAEIj9E,EAFA3nE,EAAWxpG,EACXmqF,EAAMqf,EAASnwH,QAEf,QAAM+0Q,KACNA,GAAW,GAEf,IAAIjuD,EAAS,SAAUiuD,EAAUj9E,GACzBi9E,GACAj9E,EAAI13H,UAAUC,OAAOuzN,IAChB,QAAM97F,EAAIn8K,oBACXm8K,EAAIn8K,kBAAkB1a,aAAa,gBAAiB,WAIxD62L,EAAI13H,UAAUjoD,IAAIy7Q,IACb,QAAM97F,EAAIn8K,oBACXm8K,EAAIn8K,kBAAkB1a,aAAa,gBAAiB,QAGhE,EACA,KAAK,QAAM6vG,IAAQA,GAAO,EAAG,CACzB,IAAK,IAAI7wB,EAAI,EAAGrgF,EAAU,GAAG+I,MAAMuI,KAAKi/G,GAAWlwC,EAAI6wB,EAAK7wB,IAAK,CAC7D,IAAIizN,EAActzS,EAAQwH,SAAS64E,EAAEhvD,WAAY,KACjD,GAA6B,iBAAlB,EAA4B,CAEnC,GADA6mK,EAAMt7L,KAAK22S,kBAAkBD,IACzB,QAAMp7G,GACN,OAGA3nE,EAAS/oH,SAAS64E,EAAEhvD,WAAY,KAAO6mK,CAE/C,MAEIA,EAAMo7G,EAEVpsF,EAAOiuD,EAAUj9E,EACrB,CACIi9E,GACA,QAAY5kJ,EAAUyjK,IAGtB,QAASzjK,EAAUyjK,EAE3B,KACK,CACD,GAA0B,iBAAf,GAEP,GADA97F,EAAMt7L,KAAK22S,kBAAkBhjL,IACzB,QAAM2nE,GACN,YAIJA,EAAMnxK,EAEVmgM,EAAOiuD,EAAUj9E,EACrB,CACJ,EACAswG,EAAQlqS,UAAUi1S,kBAAoB,SAAU7tS,GAC5C,OAAI9I,KAAKutS,QAAQ3iS,SAAS9B,EAAM2rB,WAAY,KACjCz0B,KAAKutS,QAAQ3iS,SAAS9B,EAAM2rB,WAAY,KAE5C,IACX,EAQAm3Q,EAAQlqS,UAAU6oQ,SAAW,SAAUpgP,EAAOrhB,GAC1C,IAAI6nS,EACJ3wS,KAAK42S,eACL,IAAIC,EAAW72S,KAAKoD,QAAQ6B,cAAc,IAAM6kS,GAChD,IAAI,QAAM+M,GACN72S,KAAK82S,cAAc3sR,OADvB,CAIA,IAAIyqQ,EACAmiB,EAAU,QACV,QAAMjuS,KACNA,EAAQ,GAEZqhB,EAAMvmB,SAAQ,SAAUH,IACf,QAAMA,EAAE8sS,QAAsB,SAAZ9sS,EAAE8sS,OAAgC,SAAZwG,IACzCA,EAAUtzS,EAAE8sS,MAEpB,IACA,IAAK,IAAInrS,EAAK,EAAGm3B,EAAUpS,EAAO/kB,EAAKm3B,EAAQ/4B,OAAQ4B,IAAM,CACzD,IAAI0kB,EAAOyS,EAAQn3B,GAOnB,IANI,QAAM0kB,EAAK/I,QACX+I,EAAK/I,KAAO,UAEhB4vR,GAAa,QAAU,IAAM5G,EAAU/pS,KAAKoD,SAC5C0mB,EAAKymR,MAAQwG,EACbniB,EAAW50R,KAAKqwS,mBAAmBvmR,EAAMhhB,GACrC9I,KAAKutS,QAAQ/pS,QAAUsF,GAAS6nS,EAAWntS,QAAU,EAAG,EACpD,QAAMxD,KAAK2sS,eACX3sS,KAAK8tS,cAET,IAAIkJ,EAA6B,MAAlBltR,EAAKymR,MAAM,GAAa,EAAsB,MAAlBzmR,EAAKymR,MAAM,GAAa,EAAI,EACnEj1G,OAAM,EACLt7L,KAAKusS,WAAyB,SAAZwK,EAQd/2S,KAAKusS,YACVjxG,GAAM,QAAQq1G,EAAW,GAAI,IAAM7G,GAAWzsR,SAASzS,SAASosS,EAASviR,WAAY,MACjF1vB,aAAa6vR,EAAUt5F,EAAIj+K,SAASzS,SAAS9B,EAAM2rB,WAAY,MACnEz0B,KAAKwtS,YAAY1jR,EAAKymR,MAAQ,KAAKrnS,eAAewE,OAAO5E,EAAO,EAAG8rR,GACnE50R,KAAKi2S,sBAEsB,IAAtBtF,EAAWntS,QAChBmtS,GAAa,QAAU,IAAM7G,EAAW9pS,KAAKoD,UAClC,GAAGM,YAAYkxR,GAG1B+b,EAAW,GAAG1iO,WAAWlpE,aAAa6vR,EAAU+b,EAAW/lS,SAAS9B,EAAM2rB,WAAY,OAlBtFz0B,KAAKswS,cAAcxmR,EAAM+sR,EAAU,GACnC72S,KAAKusS,WAAY,GACjBjxG,GAAM,QAAQq1G,EAAW,GAAI,IAAM7G,GAAWzsR,SAASzS,SAASosS,EAASviR,WAAY,MACjF/wB,YAAYkxR,GAChB50R,KAAKwtS,YAAY1jR,EAAKymR,MAAQ,KAAKrnS,eAAehH,KAAK0yR,GACvD50R,KAAKi2S,sBAeTj2S,KAAKmqB,MAAMzc,OAAO5E,EAAO,EAAGghB,GACxBA,EAAK43L,UACL1hN,KAAKutS,QAAQ7/R,OAAO1N,KAAKutS,QAAQ/pS,OAAS,EAAG,GAEjDxD,KAAKutS,QAAQ7/R,OAAO5E,EAAO,EAAG8rR,GAC9B9rR,IACA9I,KAAKuxS,UAAYsF,EAAS1vQ,WAC9B,CACJ,CACA0vQ,EAASztS,MAAMuR,MAAQ,GACvB3a,KAAK8vS,qBACD9vS,KAAKo8P,SACLp8P,KAAKguM,sBA1DT,CA4DJ,EAQA49F,EAAQlqS,UAAUmyF,YAAc,SAAUlxF,GACtC,IACImG,EADA6qH,EAAWhxH,EAEXguS,EAAa,GAAGxkS,MAAMuI,MAAK,QAAU,IAAMq1R,EAAU/pS,KAAKoD,UAC9D,GAA0B,iBAAf,EACP0F,EAAQ8B,SAASjI,EAAK8xB,WAAY,IAClCz0B,KAAKi3S,kBAAkBnuS,EAAO6nS,QAG9B,GAAIh9K,GAAYA,EAASnwH,OAAS,EAC9B,IAAK,IAAI4B,EAAK,EAAG7F,EAAK,GAAG4M,MAAMuI,KAAKi/G,GAAWvuH,EAAK7F,EAAGiE,OAAQ4B,IAAM,CACjE,IAAIk2L,EAAM/7L,EAAG6F,GACb0D,EAAQ9I,KAAKutS,QAAQhmS,QAAQ+zL,GAC7Bt7L,KAAKi3S,kBAAkBnuS,EAAO6nS,GAC9BA,GAAa,QAAU,IAAM5G,EAAU/pS,KAAKoD,QAChD,MAGIk4L,EAAO3nE,GAAYA,EAASnwH,QAA8B,IAApBmwH,EAASnwH,OAAgBmwH,EAAS,GAAKhxH,EACjFmG,EAAQ6nS,EAAWppS,QAAQ+zL,GAC3Bt7L,KAAKi3S,kBAAkBnuS,EAAO6nS,GAGtC3wS,KAAK8rS,QACT,EACAF,EAAQlqS,UAAUu1S,kBAAoB,SAAUnuS,EAAO6nS,GACnD,GAAI3wS,KAAKutS,QAAQ3iS,SAAS9B,EAAM2rB,WAAY,MAAQk8Q,EAAW/lS,SAAS9B,EAAM2rB,WAAY,KAAM,CAC5F,IAAIyiR,EAASl3S,KAAKutS,QAAQhmS,QAAQopS,EAAW/lS,SAAS9B,EAAM2rB,WAAY,MACxE,GAAIz0B,KAAKusS,UAAW,CAChB,IAAI4K,EAAWn3S,KAAKwtS,YAAYxtS,KAAKmqB,MAAMvf,SAASssS,EAAOziR,WAAY,KAAK87Q,MAAQ,KAAKrnS,eAAe3B,QAAQvH,KAAKutS,QAAQ3iS,SAASssS,EAAOziR,WAAY,MACzJz0B,KAAKwtS,YAAYxtS,KAAKmqB,MAAMvf,SAASssS,EAAOziR,WAAY,KAAK87Q,MAAQ,KAAKrnS,eAAewE,OAAO9C,SAASusS,EAAS1iR,WAAY,IAAK,EACvI,CACIz0B,KAAKo8P,SACLp8P,KAAKiuM,gBAET,IAAImpG,EAAUzG,EAAW/lS,SAAS9B,EAAM2rB,WAAY,KAAKxvB,cAAc,qBAClE,QAAMmyS,KAAa,QAAMA,EAAQ53G,cAAc,KAAS43G,EAAQ53G,cAAc,GAAc,aAC7F43G,EAAQ53G,cAAc,GAAG9P,WAE7B,QAAOihH,EAAW/lS,SAAS9B,EAAM2rB,WAAY,MAC7Cz0B,KAAKmqB,MAAMzc,OAAOwpS,EAAQ,GAC1Bl3S,KAAKutS,QAAQ7/R,OAAOwpS,EAAQ,EAChC,CACJ,EACAtL,EAAQlqS,UAAU21S,eAAiB,SAAUC,EAAc1iB,EAAU9qQ,EAAMhhB,GACvE,IAEIyuS,EAFA/zQ,EAAW1Z,EAAK/I,KAChBqzL,EAASkjG,EAKb,GAH8B,iBAAnB,IACPC,EAA2C,mBAArBnjG,EAAe,UAEX,iBAAnB,GAAgCmjG,EA0CrB,UAAb/zQ,IACD83J,EAAMt7L,KAAKuE,cAAc,SACzBulB,EAAK4N,GACL4jK,EAAI5jK,GAAK5N,EAAK4N,GAGd4jK,EAAI5jK,IAAK,QAAY,WAEzBk9P,EAASlxR,YAAY43L,GACrB8Y,EAAO7H,SAASjR,QAnDoC,CACpD,IACIr1E,EADAuxL,OAAa,EAEbC,EAAQ,IAAIplL,OAAO,uEACvBpM,EAAiC,iBAAnB,EAA+BqxL,EAAazrS,OAASyrS,EACnE,IACI,GAA8B,iBAAnB,IAAgC,QAAMA,EAAat4R,SAGzD,GAA8B,iBAAnB,GAA+By4R,EAAMt4S,KAAK8mH,GACtD2uK,EAAS7sJ,UAAY9hB,OAEpB,GAAIvnH,SAAS43F,iBAAiB2vB,GAAKziH,OAAQ,CAC5C,IAAI83L,EACAukB,GADAvkB,EAAM58L,SAASuG,cAAcghH,IACfwsB,UAAU5mI,OAC5B+oR,EAASlxR,YAAY43L,GACrBA,EAAIlyL,MAAMwjB,QAAU,IACf,QAAMizL,IACP7/M,KAAKohN,OAAOl/M,KAAK+jH,EAEzB,MAEIuxL,GAAa,QAAiBvxL,QAf9B2uK,EAASlxR,YAAY4zS,EAiB7B,CACA,MAAO7zS,GACH+zS,GAAa,QAAiBvxL,EAClC,CACA,IAAIyxL,OAAY,GACX,QAAMF,KAEPE,EAAYF,EAAW,CAAC,EAAGx3S,KAAM,WADTA,KAAKoD,QAAQs0B,GAAK5uB,EAAQ,YACc9I,KAAK+rM,qBAEpE,QAAM2rG,IAAcA,EAAUl0S,OAAS,GACxC,GAAG2I,MAAMuI,KAAKgjS,GAAW9zS,SAAQ,SAAU03L,IAClC,QAAMA,EAAIt8K,WACXs8K,EAAIlyL,MAAMwjB,QAAU,IAExBgoQ,EAASlxR,YAAY43L,EACzB,GAER,CAYAt7L,KAAK2b,IAAIi5Q,EAAUwV,GACnBpqS,KAAKutS,QAAQrrS,KAAK0yR,EACtB,EACAgX,EAAQlqS,UAAUi2S,gBAAkB,SAAU7tR,EAAM8qQ,GAChD,IAAIvsJ,EAAMroI,KAAKuE,cAAc,SAAU,CAAE9B,UApzD/B,eAqzDV4lI,EAAI5jI,aAAa,OAAQ,UACzB,IACI6/M,EACAszF,EAFAC,EAAU/tR,EAAKuB,KAGfvB,EAAK4N,GACL2wG,EAAI3wG,GAAK5N,EAAK4N,GAGd2wG,EAAI3wG,IAAK,QAAY,aAEzB,IAAIogR,EAAS93S,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,oBACjDo1S,GACAC,EAAO/vK,UAAY/nI,KAAK0kN,oBAAsB,KAAmBtB,SAASy0F,GAAWA,EACrFxvK,EAAI3kI,YAAYo0S,GAChBzvK,EAAIzkE,UAAUjoD,IAAI,eAGlB3b,KAAK2b,IAAIi5Q,EAAU,iBAEnB9qQ,EAAKiuR,YAAcjuR,EAAKkuR,cACnBluR,EAAKiuR,YAAcjuR,EAAKkuR,YAAeluR,EAAKiuR,YAC7CzzF,EAAUx6L,EAAKiuR,WAAa,WAC5BH,EAAU,SAGVtzF,EAAUx6L,EAAKkuR,WAAa,WAC5BJ,EAAU,UAGlB,IAAIK,EAAS,IAAInoQ,EAAO,CAAEw0K,QAASA,EAASC,aAAcqzF,IAM1D,OALAK,EAAO1zS,cAAgBvE,KAAKuE,cAC5B0zS,EAAO1rG,SAASlkE,GACZv+G,EAAKnP,QACL,QAAS0tH,EAAK,CAAE,OAAS,QAAWv+G,EAAKnP,SAEtC0tH,CACX,EACAujK,EAAQlqS,UAAU2uS,mBAAqB,SAAUvmR,EAAMhhB,GACnD,IAAIu/H,EACAusJ,EAAW50R,KAAKuE,cAAc,MAAO,CAAE9B,UAAWsnS,IAClDmO,EAAUl4S,KAAKuE,cAAc,MAAO,CACpCwjI,UAAW/nI,KAAK0kN,oBAAsB,KAAmBtB,SAASt5L,EAAKquR,aAAeruR,EAAKquR,cAc/F,GAZKn4S,KAAKutS,UACNvtS,KAAKutS,QAAU,IAEfzjR,EAAKs9L,gBACLpnN,KAAKy2S,QAAQ3sR,EAAKs9L,eAAgBwtE,GAElC9qQ,EAAKquR,aACLvjB,EAASnwR,aAAa,QAASyzS,EAAQn1M,aAEvCj5E,EAAKm6L,WACL2wE,EAASnyR,UAAYmyR,EAASnyR,UAAY,IAAMqnB,EAAKm6L,UAErDn6L,EAAK43L,SACL1hN,KAAKq3S,eAAevtR,EAAK43L,SAAUkzE,EAAU9qQ,EAAMhhB,QAGnD,OAAQghB,EAAK/I,MACT,IAAK,UACDsnH,EAAMroI,KAAK23S,gBAAgB7tR,EAAM8qQ,IAC7BnwR,aAAa,YAAY,QAAMqlB,EAAKjL,UAAY,KAAOiL,EAAKjL,SAAS4V,YACzE4zG,EAAI5jI,aAAa,iBAAiB,QAAMqlB,EAAKjL,UAAY,KAAOiL,EAAKjL,SAAS4V,YAC9E4zG,EAAI5jI,aAAa,aAAeqlB,EAAKuB,MAAQvB,EAAKquR,aAClD9vK,EAAI5jI,aAAa,gBAAiB,SAClCmwR,EAASlxR,YAAY2kI,GACrBusJ,EAASh5Q,iBAAiB,QAAS5b,KAAKo4S,UAAUz9Q,KAAK36B,OACvD,MACJ,IAAK,YACDA,KAAK2b,IAAIi5Q,EAAUoV,GAI/B,GAAIlgR,EAAKuuR,WAAY,CACjB,IAAIC,EAAOxuR,EAAKuuR,WACH,YAATC,GACAt4S,KAAK2b,IAAIi5Q,EAAUyV,GACnBrqS,KAAK2b,IAAIi5Q,EAAU,iBAEL,aAAT0jB,GACLt4S,KAAK2b,IAAIi5Q,EAAU0V,EAE3B,CACA,GAAIxgR,EAAKkG,SAAU,CACf,IAAIA,EAAWlG,EAAKkG,SACH,SAAbA,EACAhwB,KAAK2b,IAAIi5Q,EAAU2V,GAED,SAAbv6Q,IACA4kQ,EAAShxN,UAAU5+D,SAASglS,IAC7BhqS,KAAK2b,IAAIi5Q,EAAU4V,GAG/B,CAWA,MAVsB,SAAlB1gR,EAAKkG,UAAuBlG,EAAK0mR,oBAAsB5b,EAAShxN,UAAU5+D,SAASglS,KACnFhqS,KAAK2b,IAAIi5Q,EAAUsW,GACnBlrS,KAAK6sS,iBAEL/iR,EAAKzT,UACLrW,KAAK2b,IAAIi5Q,EAAUwC,IAEF,IAAjBttQ,EAAKqL,SACLn1B,KAAK2b,IAAIi5Q,EAAUuW,GAEhBvW,CACX,EACAgX,EAAQlqS,UAAU62S,gBAAkB,SAAUj9G,GAC1C,OAAO,QAAMA,EAAI18L,aAAa,kBAAoB,KAAO08L,EAAI18L,aAAa,gBAC9E,EACAgtS,EAAQlqS,UAAU02S,UAAY,SAAU30S,GACpCzD,KAAKmuS,gBAAgB1qS,EAAE4uB,cAC3B,EACAu5Q,EAAQlqS,UAAUysS,gBAAkB,SAAU7yG,GAC1Ct7L,KAAKivS,gBAAgB3zG,EAAIn8K,mBACzBnf,KAAKssS,UAAU12R,OACnB,EACAg2R,EAAQlqS,UAAUutS,gBAAkB,SAAUzY,IACrC,QAAMx2R,KAAKssS,YACZtsS,KAAKssS,UAAU7nS,aAAa,WAAYzE,KAAKu4S,gBAAgBv4S,KAAKssS,YAEtEtsS,KAAKssS,UAAY9V,EAC4B,OAAzCx2R,KAAKu4S,gBAAgBv4S,KAAKssS,cACtB,QAAMtsS,KAAKmsS,WAAa3V,EAAO/gR,cAAcmuD,UAAU5+D,SAASolS,IAChEpqS,KAAKitS,eAAe,MACpBzW,EAAO73Q,gBAAgB,aAGvB3e,KAAKssS,UAAU7nS,aAAa,WAAYzE,KAAKu4S,gBAAgBv4S,KAAKssS,YAG9E,EACAV,EAAQlqS,UAAUqsM,eAAiB,WAC/B,OAAO/tM,KAAKuuM,aAAa,GAC7B,EAOAq9F,EAAQlqS,UAAU69L,cAAgB,WAC9B,MAAO,SACX,EACAqsG,EAAQlqS,UAAUo1S,cAAgB,SAAU7xG,GACxCjlM,KAAKmqB,MAAQnqB,KAAKwsS,cACdxsS,KAAKo8P,SAAWp8P,KAAK2tN,YACrB3tN,KAAKiuM,gBAETjuM,KAAK8tS,cACL9tS,KAAKksS,eACLlsS,KAAKmqB,MAAQ86K,EACbjlM,KAAKwsS,aAAexsS,KAAKmqB,MACzBnqB,KAAK01F,cACL11F,KAAK8vS,qBACD9vS,KAAKo8P,SACLp8P,KAAKguM,sBAEb,EACA49F,EAAQlqS,UAAUoqS,OAAS,WACvB,IAAIxwG,EAAMt7L,KAAKoD,QACfpD,KAAK2yS,UAAW,EACZ3yS,KAAKusS,WACLvsS,KAAK+vS,kBAEL/vS,KAAKqsS,QAAgC,UAAtBrsS,KAAKo5E,cACpBp5E,KAAKqsS,OAAO3sE,OAEhB,IAAIkxE,EAAgB5wS,KAAK4wS,cAAct1G,EAAKA,EAAIiL,uBAAuBujG,GAAW,IAClF,IAAK8G,EAAe,CAChB5wS,KAAKy7R,gBACL,IAAI+c,EAAcl9G,EAAIr2L,cAAc,IAAM6kS,IACrC,QAAM0O,KACPx4S,KAAK6jE,OAAO20O,EAAanN,GACrBrrS,KAAKusS,WACLvsS,KAAK2b,IAAI68R,EAAa5N,GAGlC,CACA,IAAIgG,IAAiB5wS,KAAK2sS,cAAiB3sS,KAAKuxS,YAAcj2G,EAAIn0J,YAAlE,CAMA,IAHInnC,KAAKuxS,UAAYj2G,EAAIn0J,aAAeypQ,IACpC5wS,KAAK8vS,qBAEL9vS,KAAKqsS,OAAQ,CACb,GAA0B,aAAtBrsS,KAAKo5E,aAA6B,CAClC,IAAI45N,EAAY1zS,OAAO2jH,iBAAiBjjH,KAAKoD,SAC7CpD,KAAKqsS,OAAO1xR,MAAQwF,WAAW6yR,EAAUr4R,OAAqD,EAA1CwF,WAAW6yR,EAAUlgQ,iBAC7E,CACI9yC,KAAKusS,WACLvsS,KAAKwxS,oBAETxxS,KAAKguS,aAAahuS,KAAKqsS,OAAOjpS,SAAS,GACnCpD,KAAKusS,WACLvsS,KAAKi2S,oBAEb,CACIj2S,KAAKoD,QAAQ6B,cAAc,IAAM4lS,KACjC7qS,KAAK04R,WAAa14R,KAAKoD,QAAQ6B,cAAc,IAAM4lS,GAAgB1jQ,aAEvEnnC,KAAKuxS,UAAYj2G,EAAIn0J,YACrBnnC,KAAK2yS,UAAW,EAChB3yS,KAAKiiS,WAtBL,CAuBJ,EACA2J,EAAQlqS,UAAUk1S,aAAe,WAC7B,IAAIxH,EAAMpvS,KAAKoD,QAAQ6B,cAAc,IAAMwmS,GACjB,aAAtBzrS,KAAKo5E,cAA+Bg2N,IACpCpvS,KAAK4sS,eAAiBwC,EAAIxrO,UAAU5+D,SAASmlS,GAErD,EACAyB,EAAQlqS,UAAU+2S,sBAAwB,SAAUn9G,EAAKo9G,EAAUC,EAAWC,EAAUjI,GAChFgI,IACAC,EAAWjI,EAAWppS,QAAQ+zL,IAGlC,IADA,IAAImvC,EAAUkmE,IAAaiI,GACpBnuE,GAAS,CAEZ,IADczqO,KAAKmvS,YAAY1kE,GACjB,CACV,IAAIyiE,EAAeziE,EAAQtrN,kBAAkBvgB,aAAa,iBACtD85S,GAA6B,OAAjBxL,EACZziE,EAAQtrN,kBAAkB1a,aAAa,WAAY,KAE9CyoS,IAAiBziE,EAAQtrN,kBAAkBvgB,aAAa,aAC7D6rO,EAAQtrN,kBAAkB1a,aAAa,WAAYyoS,GAEvD,KACJ,CACAziE,EAAUkmE,IAAaiI,EAC3B,CACJ,EASAhN,EAAQlqS,UAAUm9L,kBAAoB,SAAUoG,EAASC,GACrD,IAAI2zG,EAAO74S,KAAKoD,QACNy1S,EAAK1xQ,YACfnnC,KAAK42S,eACL,IAAK,IAAIxxS,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,QACD,GAAM6/L,EAAQ96K,iBAAiBlkB,OAASi/L,EAAQ/6K,iBAAiBlkB,MAmC7DjG,KAAK82S,cAAc7xG,EAAQ96K,YAjC3B,IADA,IAAI2uR,EAAc3yS,OAAOC,KAAK6+L,EAAQ96K,OAC7Bpd,EAAI,EAAGA,EAAI+rS,EAAYt1S,OAAQuJ,IAAK,CACzC,IAAIjE,EAAQ8B,SAASzE,OAAOC,KAAK6+L,EAAQ96K,OAAOvf,SAASmC,EAAE0nB,WAAY,KAAM,IACzEwrF,EAAW95G,OAAOC,KAAK6+L,EAAQ96K,MAAMvf,SAAS9B,EAAM2rB,WAAY,MAAM,GACtEmhO,EAAczvP,OAAO8+L,EAAQ96K,MAAMvf,SAAS9B,EAAM2rB,WAAY,MAAM,GAAKwrF,GAC7E,GAA2B,mBAAhB21I,EAA4B,CACnC,GAAI51P,KAAKusS,WAA0B,UAAbtsL,EAAsB,CACxCjgH,KAAK0sM,UACL1sM,KAAKg7L,QAAQ,WACb,KACJ,CACA,IAAI+9G,EAA6B,sBAAb94L,IAAqC21I,EACrDojD,EAA4B,aAAb/4L,GAAkD,IAAvBjgH,KAAK6sS,eAC/C,GAAoB7sS,KAAKmqB,MAAMvf,SAAS9B,EAAM2rB,WAAY,KAAsB,mBAAKukR,MACnFh5S,KAAK6sS,eAEP,QAAM7sS,KAAK2sS,eACX3sS,KAAK8tS,cAET,IAAImL,EAAU,GAAG9sS,MAAMuI,MAAK,QAAU,IAAMo1R,EAAY,KAAOC,EAAU8O,IACrE74S,KAAKo8P,SAAWp8P,KAAKmqB,MAAMvf,SAAS9B,EAAM2rB,WAAY,KAAKitL,UAC3D1hN,KAAKiuM,iBAET,QAAOgrG,EAAQruS,SAAS9B,EAAM2rB,WAAY,MAC1Cz0B,KAAKutS,QAAQ7/R,OAAO5E,EAAO,GAC3B9I,KAAKuqQ,SAAS,CAACvqQ,KAAKmqB,MAAMvf,SAAS9B,EAAM2rB,WAAY,MAAO3rB,GAC5D9I,KAAKmqB,MAAMzc,OAAO5E,EAAO,GACrB9I,KAAKmqB,MAAMvf,SAAS9B,EAAM2rB,WAAY,KAAKitL,UAC3C1hN,KAAKutS,QAAQ7/R,OAAO1N,KAAKmqB,MAAM3mB,OAAQ,EAE/C,CACJ,CAKJ,MACJ,IAAK,SACD,QAASq1S,EAAM,CAAE,OAAS,QAAW5zG,EAAQtqL,SAC7C3a,KAAKywS,kBACL,MACJ,IAAK,UACD,QAASzwS,KAAKoD,QAAS,CAAE,QAAU,QAAW6hM,EAAQpkL,UACtD,MACJ,IAAK,eACD7gB,KAAK8tS,cACL9tS,KAAK8vS,qBACD9vS,KAAKksM,WACLlsM,KAAK2b,IAAIk9R,EAAM1hB,GAEnBn3R,KAAKywS,kBACL,MACJ,IAAK,YACGxrG,EAAQiH,UACRlsM,KAAK2b,IAAIk9R,EAAM1hB,GAGfn3R,KAAK6jE,OAAOg1O,EAAM1hB,IAEjB,QAAMn3R,KAAK2sS,gBACR1nG,EAAQiH,UACRlsM,KAAK2b,IAAI3b,KAAK2sS,aAAavpS,QAAS+zR,GAGpCn3R,KAAK6jE,OAAO7jE,KAAK2sS,aAAavpS,QAAS+zR,KAG1C,QAAMn3R,KAAKqsS,UACRpnG,EAAQiH,UACRlsM,KAAK2b,IAAI3b,KAAKqsS,OAAOjpS,QAAS+zR,GAG9Bn3R,KAAK6jE,OAAO7jE,KAAKqsS,OAAOjpS,QAAS+zR,IAGrCn3R,KAAKusS,WACLvsS,KAAK+vS,kBAET,MACJ,IAAK,aACG/vS,KAAK2sS,eACL3sS,KAAK2sS,aAAajU,WAAa14R,KAAK04R,YAExC,MACJ,IAAK,kBACG14R,KAAKqsS,SACLrsS,KAAKqsS,OAAOjrE,UAAY,CAAEF,EAAGlhO,KAAK0sS,gBAAkB,OAAS,SAEjE,MACJ,IAAK,WACGxnG,EAAQ+e,WACR,QAAY,CAACjkN,KAAKoD,SAAU8hM,EAAQ+e,SAASz8M,MAAM,MAEnDy9L,EAAQgf,WACR,QAAS,CAACjkN,KAAKoD,SAAU6hM,EAAQgf,SAASz8M,MAAM,MAEpD,MACJ,IAAK,gBACDxH,KAAKmtS,sBACDloG,EAAQ6nG,eACR9sS,KAAKs+R,oBAKzB,EAQAsN,EAAQlqS,UAAUw3S,SAAW,SAAUpwS,EAAOW,GAC1C,IAEI6xL,EAFAq9G,EAAgC,iBAAZ,EACpBC,EAAW9vS,EAEf,GAAK6vS,KAAa,QAAMC,GAAxB,CAGA,IAAIjI,EAAa,GAAGxkS,MAAMuI,MAAK,QAAU,IAAMq1R,EAAU/pS,KAAKoD,UAC1Du1S,EACAr9G,EAAMxyL,EAED9I,KAAKutS,QAAQ3iS,SAASguS,EAASnkR,WAAY,OAEhD6mK,EADmB,GAAGnvL,MAAMuI,MAAK,QAAU,IAAMq1R,EAAU/pS,KAAKoD,UAC7CwH,SAASguS,EAASnkR,WAAY,MAEjD6mK,IACI7xL,GACA6xL,EAAI13H,UAAUjoD,IAAIwvR,GACb7vG,EAAI13H,UAAU5+D,SAASglS,MACpB,QAAM1uG,EAAIn8K,kBAAkBvgB,aAAa,cACU,OAAnD08L,EAAIn8K,kBAAkBvgB,aAAa,cACnCoB,KAAKy4S,sBAAsBn9G,EAAK7xL,EAAOkvS,EAAWC,EAAUjI,KAKpEr1G,EAAI13H,UAAUC,OAAOsnO,GAChB7vG,EAAI13H,UAAU5+D,SAASglS,IACxBhqS,KAAKy4S,sBAAsBn9G,EAAK7xL,EAAOkvS,EAAWC,EAAUjI,IAGpE3wS,KAAKywS,kBAzBT,CA2BJ,EACA,EAAW,EACP,QAAW,GAAI9E,IAChBC,EAAQlqS,UAAW,aAAS,GAC/B,EAAW,EACP,QAAS,SACVkqS,EAAQlqS,UAAW,aAAS,GAC/B,EAAW,EACP,QAAS,SACVkqS,EAAQlqS,UAAW,cAAU,GAChC,EAAW,EACP,QAAS,KACVkqS,EAAQlqS,UAAW,gBAAY,GAClC,EAAW,EACP,QAAS,eACVkqS,EAAQlqS,UAAW,oBAAgB,GACtC,EAAW,EACP,WACDkqS,EAAQlqS,UAAW,kBAAc,GACpC,EAAW,EACP,SAAS,IACVkqS,EAAQlqS,UAAW,uBAAmB,GACzC,EAAW,EACP,SAAS,IACVkqS,EAAQlqS,UAAW,2BAAuB,GAC7C,EAAW,EACP,SAAS,IACVkqS,EAAQlqS,UAAW,qBAAiB,GACvC,EAAW,EACP,WACDkqS,EAAQlqS,UAAW,eAAW,GACjC,EAAW,EACP,WACDkqS,EAAQlqS,UAAW,eAAW,GACjC,EAAW,EACP,WACDkqS,EAAQlqS,UAAW,iBAAa,GACnC,EAAW,EACP,WACDkqS,EAAQlqS,UAAW,oBAAgB,GAC5B,EAAW,CACjB,MACDkqS,EAEP,CAtoE4B,CAsoE1B,2DCtxEMhpG,+EADJ73B,GACI63B,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,EAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAcI0tG,EAAO,aACP+wF,EAAU,YACVC,EAAc,qBACdC,EAAa,oBACbC,EAAW,cACXC,EAAW,cAGXC,EAAa,gBACbz0E,EAAQ,UACRrK,EAAS,WACT++E,EAAO,kBACPC,EAAU,YACVjxF,EAAO,UACPkxF,EAAW,iBACXC,EAAQ,UACRC,EAAa,gBACbC,EAAY,eACZC,EAAU,YACV30F,EAAM,QACN40F,EAAc,gBAEdC,EAAY,cACZC,EAAW,aACXC,EAAU,YACVC,EAAS,YACTC,EAAW,cACXC,EAAU,aACVC,EAAS,YAETC,EAAU,YACV5xF,EAAW,aACX6xF,EAAW,aACXC,EAAgB,mBAChBC,EAAU,YAEV/1F,EAAQ,UACRG,EAAgB,SAChB61F,EAAe,qBACfC,EAAgB,UAEhB51F,EAAS,WAETggB,EAAQ,eACRt3D,EAAQ,aAIRmtI,EAAwB,qBACxBj2F,EAAW,aACXk2F,EAAgB,YAChBC,GAAe,CACfC,SAAU,QACVp/Q,SAAU,WACVq3P,SAAU,QACVr0B,SAAU,GACVs0B,YAAa,IAKb+nB,GAAgC,SAAU1mS,GAE1C,SAAS0mS,IACL,OAAkB,OAAX1mS,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAoDA,OAvDA+qK,EAAUmwI,EAAgB1mS,GAI1BsuL,EAAW,EACP,QAAS,UACVo4G,EAAex5S,UAAW,aAAS,GACtCohM,EAAW,EACP,QAAS,KACVo4G,EAAex5S,UAAW,kBAAc,GAC3CohM,EAAW,EACP,QAAS,aACVo4G,EAAex5S,UAAW,gBAAY,GACzCohM,EAAW,EACP,QAAS,gBACVo4G,EAAex5S,UAAW,mBAAe,GAC5CohM,EAAW,EACP,QAAS,mBACVo4G,EAAex5S,UAAW,sBAAkB,GAC/CohM,EAAW,EACP,QAAS,YACVo4G,EAAex5S,UAAW,eAAW,GACxCohM,EAAW,EACP,QAAS,OACVo4G,EAAex5S,UAAW,UAAM,GACnCohM,EAAW,EACP,QAAS,aACVo4G,EAAex5S,UAAW,gBAAY,GACzCohM,EAAW,EACP,QAAS,cACVo4G,EAAex5S,UAAW,iBAAa,GAC1CohM,EAAW,EACP,QAAS,aACVo4G,EAAex5S,UAAW,gBAAY,GACzCohM,EAAW,EACP,QAAS,OACVo4G,EAAex5S,UAAW,aAAS,GACtCohM,EAAW,EACP,QAAS,eACVo4G,EAAex5S,UAAW,kBAAc,GAC3CohM,EAAW,EACP,QAAS,aACVo4G,EAAex5S,UAAW,gBAAY,GACzCohM,EAAW,EACP,QAAS,OACVo4G,EAAex5S,UAAW,iBAAa,GAC1CohM,EAAW,EACP,QAAS,SACVo4G,EAAex5S,UAAW,YAAQ,GACrCohM,EAAW,EACP,QAAS,YACVo4G,EAAex5S,UAAW,eAAW,GACxCohM,EAAW,EACP,QAAS,gBACVo4G,EAAex5S,UAAW,mBAAe,GACrCw5S,CACX,CAzDmC,CAyDjC,MAKEC,GAAgC,SAAU3mS,GAE1C,SAAS2mS,IACL,OAAkB,OAAX3mS,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAUA,OAbA+qK,EAAUowI,EAAgB3mS,GAI1BsuL,EAAW,EACP,QAAS,cACVq4G,EAAez5S,UAAW,cAAU,GACvCohM,EAAW,EACP,QAAS,MACVq4G,EAAez5S,UAAW,gBAAY,GACzCohM,EAAW,EACP,QAAS,WACVq4G,EAAez5S,UAAW,cAAU,GAChCy5S,CACX,CAfmC,CAejC,MAKEC,GAAuC,SAAU5mS,GAEjD,SAAS4mS,IACL,OAAkB,OAAX5mS,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA+qK,EAAUqwI,EAAuB5mS,GAIjCsuL,EAAW,EACP,QAAQ,CAAEwqB,OAAQ,UAAWz7G,SAAU,IAAKuxF,OAAQ,UAAY+3G,KACjEC,EAAsB15S,UAAW,gBAAY,GAChDohM,EAAW,EACP,QAAQ,CAAEwqB,OAAQ,YAAaz7G,SAAU,IAAKuxF,OAAQ,UAAY+3G,KACnEC,EAAsB15S,UAAW,cAAU,GACvC05S,CACX,CAZ0C,CAYxC,MAaEC,GAA0B,SAAU7mS,GAEpC,SAAS6mS,EAAStzS,EAAS3E,GACvB,IAAInB,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAkBnD,OAjBAiC,EAAMq5S,aAAc,EACpBr5S,EAAMs5S,eAAgB,EACtBt5S,EAAMu5S,eAAiB,GACvBv5S,EAAMw5S,YAAc,GAEpBx5S,EAAMy5S,SAAW,GACjBz5S,EAAM05S,WAAa,GACnB15S,EAAM25S,eAAiB,GACvB35S,EAAM45S,eAAgB,EACtB55S,EAAM65S,kBAAmB,EACzB75S,EAAM85S,aAAc,EACpB95S,EAAMqjE,eAAgB,EAEtBrjE,EAAM+5S,eAAgB,EACtB/5S,EAAMssN,cAAe,EACrBtsN,EAAMg6S,cAAe,EACrBh6S,EAAMi6S,iBAAkB,EACjBj6S,CACX,CAquJA,IAAIk6S,EA2IJ,OAr4JApxI,EAAUswI,EAAU7mS,GAsBpB2nS,EAAad,EAObA,EAAS35S,UAAU69L,cAAgB,WAC/B,MAAO,UACX,EAMA87G,EAAS35S,UAAUirM,UAAY,WAC3B,IAAI1qM,EAAQjC,KACZA,KAAKo8S,iBAAmB,GACxBp8S,KAAKq8S,gBAAkB,GACvBr8S,KAAKs8S,iBAAkB,EACvBt8S,KAAKu8S,WAAY,EACjBv8S,KAAKq5M,WAAa,CACd/3K,OAAQ,SACR/nB,IAAK,MACLE,MAAO,QACPuiG,GAAI,KACJ5iG,KAAM,OACN+1M,SAAU,YACVE,SAAU,YACVC,UAAW,aACXF,OAAQ,UACRotF,SAAU,iBACVC,OAAQ,eACRC,UAAW,aACXC,SAAU,YACVC,QAAS,WACTC,MAAO,SACPC,UAAW,kBACXC,QAAS,gBACTC,WAAY,cACZC,UAAW,aACXC,SAAU,YACVC,OAAQ,uBACRC,KAAM,qBACNC,QAAS,mBACTC,OAAQ,kBACRC,MAAO,iBACP9lS,MAAO,QACP+lS,WAAY,cACZC,UAAW,cAEfz9S,KAAK09S,eAAiB,CAClBpqB,gBAAgB,EAChBl2B,UAAU,EACVs2B,gBAAiB2lB,EACjB57L,eAAgBu9L,GAChBrnB,mBAAoB,OACpBxkD,YAAa,SAAU1rO,GACnBxB,EAAM07S,iBAAiBl6S,EAC3B,EACAihN,oBAAqB1kN,KAAK0kN,oBAC1BkvE,cAAe5zR,KAAK49S,kBAExB59S,KAAK69S,eAAe79S,KAAK+vE,QACzB/vE,KAAK89S,OAAS,IAAI,KAAU,CAAC,GAC7B99S,KAAK+9S,SAAW,GAChB/9S,KAAKsqE,UAAW,EAChBtqE,KAAKg+S,gBAAiB,EACtBh+S,KAAK47S,eAAiB,GACtB57S,KAAK8I,MAAQ,EACb9I,KAAKi+S,iBACD,QAAMj+S,KAAKk+S,gBACXl+S,KAAKk+L,cAAc,CAAEggH,cAAe,KAAM,IAE1C,QAAMl+S,KAAKm+S,eACXn+S,KAAKk+L,cAAc,CAAEigH,aAAc,KAAM,IAEzC,QAAMn+S,KAAKo+S,eACXp+S,KAAKk+L,cAAc,CAAEkgH,cAAe,KAAM,GAG1Cp+S,KAAKg+S,gBAAiB,CAE9B,EAOA3C,EAAS35S,UAAUqsM,eAAiB,WAEhC,OAAO/tM,KAAKuuM,aADI,CAAC,gBAAiB,eAAgB,iBAEtD,EAOA8sG,EAAS35S,UAAU6a,OAAS,WACxBvc,KAAKq+S,eAAgB,EACrBr+S,KAAKwmK,aACLxmK,KAAKs+S,gBAAe,GACpBt+S,KAAKu+S,kBACLv+S,KAAKw+S,kBACAx+S,KAAKqW,UACNrW,KAAKg6Q,YAETh6Q,KAAKy+S,kBAAkBz+S,KAAK0+S,cAC5B1+S,KAAK2+S,eAAe3+S,KAAK4+S,kBACpB5+S,KAAKqW,UACNrW,KAAKu4M,aAETv4M,KAAKq+S,eAAgB,EACrBr+S,KAAKqtM,gBACT,EACAguG,EAAS35S,UAAU8kK,WAAa,WAC5BxmK,KAAKoD,QAAQqB,aAAa,OAAQ,QAClCzE,KAAKoD,QAAQqB,aAAa,wBAAyBzE,KAAKoD,QAAQs0B,GAAK,WACrE13B,KAAK+/N,YAAY,KAAM//N,KAAKikN,UAC5BjkN,KAAKukO,eACLvkO,KAAK6+S,WAAW7+S,KAAK8+S,eACrB9+S,KAAK++S,cACL/+S,KAAKg/S,eAAiBh/S,KAAKi/S,iBAAiBj/S,KAAKk/S,aACrD,EACA7D,EAAS35S,UAAU68S,gBAAkB,WAC7Bv+S,KAAKqW,SACLrW,KAAKoD,QAAQwgE,UAAUjoD,IAAIkpM,GAG3B7kN,KAAKoD,QAAQwgE,UAAUC,OAAOghJ,EAEtC,EACAw2F,EAAS35S,UAAU6iO,aAAe,YAC7BvkO,KAAKksM,UAAY,KAAW,MAAa,CAAClsM,KAAKoD,SAAUgiN,EAC9D,EACAi2F,EAAS35S,UAAUs4Q,UAAY,WAC3B,IACI30E,EAAc,CACdj6L,SAFU,IAAMovS,EAAU,KAAOb,EAGjCn5G,OAAQ,IAAMm5G,EAAW,OAASlxF,EAAO,KAAOoxF,EAAa,KAAOD,EAAQ,MAAQgB,GAExF56S,KAAKwoO,UAAW,QAAaxoO,KAAKoD,QAASiiM,GAC3C,IAAI85G,EAAY,CACZ/zS,SAAU,IAAMuuS,EAAW,OAASlxF,EACpCljB,gBAAgB,GAEpBvlM,KAAKo/S,cAAe,QAAap/S,KAAKoD,QAAS+7S,EACnD,EACA9D,EAAS35S,UAAUm9S,WAAa,SAAU1hO,IACrCA,EAAY,KAAW,MAAa,CAACn9E,KAAKoD,SAzTjC,iBA0Td,EACAi4S,EAAS35S,UAAU29S,eAAiB,SAAUliO,GAC1C,IAAImiO,GAAU,QAAO,IAAM9F,EAAYx5S,KAAKoD,SACxC+5E,EACAmiO,EAAQ76S,aAAa,uBAAwB,QAG7C66S,EAAQ3gS,gBAAgB,uBAEhC,EAEA08R,EAAS35S,UAAUu9S,iBAAmB,SAAUv9F,GAC5C,GAAIA,EAAU,CACV1hN,KAAK+7S,aAAc,EAGnB/7S,KAAKoD,QAAQwgE,UAAUjoD,IAAIq+R,GAC3B,IACI,MAAwB,mBAAbt4F,GAA2BhjN,SAAS43F,iBAAiBorH,GAAUl+M,QAC/D,QAAQ9E,SAASuG,cAAcy8M,GAAU35E,UAAUl8H,SAGnD,QAAQ61M,EAEvB,CACA,MAAOj+M,GACH,OAAO,QAAQi+M,EACnB,CACJ,CACA1hN,KAAKoD,QAAQwgE,UAAUC,OAAOm2O,EAElC,EACAqB,EAAS35S,UAAU48S,eAAiB,SAAUxC,GAC1C,IAAI75S,EAAQjC,KACZA,KAAK+9S,SAAS77S,KAAK,SACflC,KAAK+vE,OAAOmlK,sBAAsB,KAElCl1O,KAAKy7F,UAAYz7F,KAAK+vE,OAAOmlK,WAAWA,WAAWx5I,QAC/C17F,KAAK+vE,OAAOmlK,WAAW/3D,MACvBn9K,KAAK+vE,OAAOmlK,WAAW/3D,MAAMv9H,MAAK,SAAUn8C,GAExCxB,EAAMw5F,UAAYx5F,EAAM8tE,OAAOmlK,WAAWA,WAAWx5I,QACjDz5F,EAAM8tE,OAAOmlK,sBAAsB,KAAejzO,EAAMw5F,YACxDx5F,EAAM87S,SAASxnS,MACftU,EAAMs9S,SAAW97S,EAAEzF,OACnBiE,EAAMu9S,eAAiBv9S,EAAMw9S,UAC7Bx9S,EAAMy9S,cACNz9S,EAAMyzF,aAAY,GACY,IAA1BzzF,EAAM87S,SAASv6S,QAAiBvB,EAAMqoE,UACtCroE,EAAM09S,WAGlB,IAAGrpK,OAAM,SAAU7yI,GACfxB,EAAM+4L,QAAQ,gBAAiB,CAAEtzH,MAAOjkE,GAC5C,IAGAzD,KAAK+vE,OAAOmlK,WAAWqP,aAAavkP,KAAKoiP,SAASpiP,KAAK+vE,SAASnwB,MAAK,SAAUn8C,GAC3ExB,EAAM87S,SAASxnS,MACftU,EAAMs9S,SAAW97S,EAAEzF,OACnBiE,EAAMu9S,eAAiBv9S,EAAMw9S,UAC7Bx9S,EAAMy9S,cACF5D,IACA75S,EAAM65S,kBAAmB,GAE7B75S,EAAMyzF,aAAY,GAClBzzF,EAAM65S,kBAAmB,EACK,IAA1B75S,EAAM87S,SAASv6S,QAAiBvB,EAAMqoE,UACtCroE,EAAM09S,UAEd,IAAGrpK,OAAM,SAAU7yI,GACfxB,EAAM+4L,QAAQ,gBAAiB,CAAEtzH,MAAOjkE,GAC5C,MAIJzD,KAAK+9S,SAASxnS,OACV,QAAMvW,KAAK+vE,OAAOmlK,YAClBl1O,KAAK4/S,SAAW5/S,KAAKu/S,SAAW,IAGhCv/S,KAAKu/S,SAAW39S,KAAK+yH,MAAM/yH,KAAKC,UAAU7B,KAAK+vE,OAAOmlK,aACtDl1O,KAAK0/S,eAET1/S,KAAKw/S,eAAiBx/S,KAAKy/S,UAC3Bz/S,KAAK01F,aAAY,IAEQ,IAAzB11F,KAAK+9S,SAASv6S,QAAiBxD,KAAKsqE,UACpCtqE,KAAK2/S,UAEb,EACAtE,EAAS35S,UAAU0gP,SAAW,SAAUpiE,EAAQv2K,QAC9B,IAAVA,IAAoBA,EAAQ,MAChC,IACI4rO,EADAg7B,EAAU,GAEd,GAAKrwF,EAAOq1D,MAgBRA,EAAQr1D,EAAOq1D,MAAMj5D,YAhBN,CACfi5D,EAAQ,IAAI,IAEZ,IADA,IAAI1vO,EAAO3F,KAAK0uM,oBAAoB1uB,GAC3B56K,EAAK,EAAG7F,EAAK4G,OAAOC,KAAKT,GAAOP,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC3D,IAAIy6S,EAAMtgT,EAAG6F,GACD,eAARy6S,GAAgC,cAARA,GAA+B,UAARA,GAAqB7/H,EAAO6/H,IAChE,QAARA,IAAmD,IAAlCxvC,EAAQ9oQ,QAAQy4K,EAAO6/H,KAC3CxvC,EAAQnuQ,KAAK89K,EAAO6/H,GAE5B,CACAxqE,EAAMr6H,OAAOq1J,GACT1qQ,EAAKC,eAAe,cACpByvO,EAAMntI,KAAK83E,EAAO04D,UAE1B,CAQA,OAJA,KAASwlB,WAAWl+P,KAAKg9P,UAAWh9E,EAAO30J,KAAMgqN,IAC5C,QAAM5rO,KAAW,QAAMu2K,EAAO8/H,WAC/BzqE,EAAMN,MAAM/0D,EAAO8/H,SAAU,QAAU9/S,KAAKw/S,eAAiBr/R,WAAW1W,GAASA,GAE9E4rO,CACX,EACAgmE,EAAS35S,UAAU+9S,QAAU,WACzB,QAAOz/S,KAAKu/S,SAAS,IAA6D,iBAA/C,QAASv/S,KAAK+vE,OAAOr4C,GAAI13B,KAAKu/S,SAAS,GAC9E,EACAlE,EAAS35S,UAAUg+S,YAAc,WAE7B,GADA1/S,KAAK82L,SAAW92L,KAAK+/S,YAAY//S,KAAKu/S,SAAUv/S,KAAK+vE,QAC/B,IAAlB/vE,KAAK82L,SAAgB,CACrB92L,KAAKggT,YAAchgT,KAAKigT,eAAejgT,KAAKu/S,SAAUv/S,KAAK+vE,OAAO+vO,UAClE,IAAII,EAAYlgT,KAAKmgT,cAAcngT,KAAKu/S,cAAU9gT,GAAW,IACzD,QAAMyhT,GACNlgT,KAAK4/S,SAAW,GAGhB5/S,KAAK4/S,SAAWM,CAExB,MAEIlgT,KAAK4/S,SAAW5/S,KAAKu/S,QAE7B,EACAlE,EAAS35S,UAAUg0F,YAAc,SAAU0qN,GAEvCpgT,KAAK09S,eAAejgM,eAAem5H,MAAQ,EAC3C,IAAI2b,EAAavyP,KAAKqgT,cAAcrgT,KAAK4/S,UACzC5/S,KAAKyxP,UAAY,KAAS/rB,WAAW1lO,KAAKuE,cAAe67S,EAAWpgT,KAAK4/S,SAAWrtD,EAAYvyP,KAAK09S,gBACrG19S,KAAKoD,QAAQM,YAAY1D,KAAKyxP,WAC9B,IAAI6uD,EAAYtgT,KAAKyxP,UAAUn7J,iBAAiB,gBAChD,IAA0B,IAAtBt2F,KAAKugT,aAEL,IADA,IAAIxzS,EAAI,EACDA,EAAIuzS,EAAU98S,QACjBxD,KAAKwgT,iBAAiBF,EAAUvzS,IAAI,EAAM,MAAM,GAChDA,KAIkB,KADV,QAAU,IAAMysS,EAAYx5S,KAAKoD,SAClCI,QAAiB88S,GAAkC,IAArBA,EAAU98S,QAAkBxD,KAAKugT,eAC1EvgT,KAAKygT,aAAazgT,KAAKoD,SAE3BpD,KAAKq8S,gBAAkB,GACvBr8S,KAAK0gT,gBAAkB,GACvB1gT,KAAK2gT,2BACD3gT,KAAK4gT,WAAa5gT,KAAKqzR,eAAiBrzR,KAAKsqE,UAC7CtqE,KAAK6gT,wBAEb,EAIAxF,EAAS35S,UAAUi/S,yBAA2B,SAAUjpR,GAEpD,GADA13B,KAAK27S,WAAa,GACd37S,KAAKu/S,UAAYv/S,KAAKqzR,aAAc,CACpC,GAAsB,IAAlBrzR,KAAK82L,SAAgB,CAGrB,IAFA,IAAI9W,EAAShgL,KAAK+vE,OACd+wO,EAAa,IAAI,IAAY9gT,KAAKu/S,UAAUt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAOh2J,UAAW,SAAS,GAAM,IACvGjd,EAAI,EAAGA,EAAI+zS,EAAWt9S,OAAQuJ,IAAK,CACxC,IAAIg0S,EAAWD,EAAW/zS,GAAG/M,KAAK+vE,OAAOr4C,IAAMopR,EAAW/zS,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KAK1F,GAJgBqsR,EAAW/zS,GAAG/M,KAAK+vE,OAAO+vO,WAAYgB,EAAW/zS,GAAG/M,KAAK+vE,OAAO+vO,UAAUrrR,YAC7C,IAAzCz0B,KAAKm+S,aAAa52S,QAAQw5S,IAAsB/gT,KAAa,UAC7DA,KAAKm+S,aAAaj8S,KAAK6+S,GAEvBD,EAAW/zS,GAAG/M,KAAK+vE,OAAO+iN,aAI1B,IAHA,IAAI/tP,EAAO+7Q,EAAW/zS,GAAG/M,KAAK+vE,OAAOr4C,IACjCspR,EAAY,IAAI,IAAYhhT,KAAKu/S,UACjCt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAO8/H,SAAU,QAAS/6Q,GAAM,IAC1D7lB,EAAQ,EAAGA,EAAQ8hS,EAAUx9S,OAAQ0b,IAAS,CACnD,IAAI+hS,EAAUD,EAAU9hS,GAAOlf,KAAK+vE,OAAOr4C,IAAMspR,EAAU9hS,GAAOlf,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MACnD,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAAmBjhT,KAAK4gT,WAClD5gT,KAAKm+S,aAAaj8S,KAAK++S,EAE/B,CAER,CACA,IAASl0S,EAAI,EAAGA,EAAI/M,KAAKm+S,aAAa36S,OAAQuJ,IAAK,CAC/C,IAAIm0S,EAAWlhT,KAAK+vE,OAChBoxO,EAAa,IAAI,IAAYnhT,KAAKu/S,UAClCt6D,cAAa,IAAI,KAAQlQ,MAAMmsE,EAASxpR,GAAI,QAAS13B,KAAKm+S,aAAapxS,IAAI,IAK/E,GAJIo0S,EAAW,IAAMnhT,KAAK4gT,YACtB5gT,KAAKohT,sBAAsBF,EAAUC,GACrCnhT,KAAKqhT,wBAAwBF,EAAW,KAExCA,EAAW39S,OAAS,EAAG,CACvB,IAAI89S,EAAYH,EAAW,GAAGnhT,KAAK+vE,OAAOr4C,IAAMypR,EAAW,GAAGnhT,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KACvFz0B,KAAKm+S,aAAa52S,QAAQ+5S,IAAc,IAA6C,IAAxCthT,KAAK27S,WAAWp0S,QAAQ+5S,IACrEthT,KAAK27S,WAAWz5S,KAAKo/S,EAE7B,CAGA,IAFA,IAAIC,EAAc,IAAI,IAAYvhT,KAAKu/S,UACnCt6D,cAAa,IAAI,KAAQlQ,MAAMmsE,EAASpB,SAAU,QAAS9/S,KAAKm+S,aAAapxS,IAAI,IAC5EjE,EAAQ,EAAGA,EAAQy4S,EAAY/9S,OAAQsF,IACxCw4S,EAAYC,EAAYz4S,GAAO9I,KAAK+vE,OAAOr4C,IAAM6pR,EAAYz4S,GAAO9I,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MACvD,IAA1Cz0B,KAAKm+S,aAAa52S,QAAQ+5S,IAAqBthT,KAAK4gT,WACpD5gT,KAAKm+S,aAAaj8S,KAAKo/S,GAEvBthT,KAAKm+S,aAAa52S,QAAQ+5S,IAAc,IAA6C,IAAxCthT,KAAK27S,WAAWp0S,QAAQ+5S,IACrEthT,KAAK27S,WAAWz5S,KAAKo/S,EAGjC,CACJ,MACK,GAAsB,IAAlBthT,KAAK82L,UAAmB92L,KAAK+vE,OAAOmlK,sBAAsB,KAC/Dl1O,KAAKy7F,UAAY,CACjB,IAAS3yF,EAAQ,EAAGA,EAAQ9I,KAAKu/S,SAAS/7S,OAAQsF,IAAS,CACvD,IAAI04S,EAAUxhT,KAAKu/S,SAASz2S,GAAO9I,KAAK+vE,OAAOr4C,IAAM13B,KAAKu/S,SAASz2S,GAAO9I,KAAK+vE,OAAOr4C,IAAIjD,WAAa,GACnGz0B,KAAKu/S,SAASz2S,GAAO9I,KAAK+vE,OAAO/lD,aAAgBhqB,KAAa,WAA6C,IAAxCA,KAAKm+S,aAAa52S,QAAQi6S,IAC7FxhT,KAAKm+S,aAAaj8S,KAAKs/S,GAEvBxhT,KAAKm+S,aAAa52S,QAAQi6S,IAAY,IAA2C,IAAtCxhT,KAAK27S,WAAWp0S,QAAQi6S,IACnExhT,KAAK27S,WAAWz5S,KAAKs/S,GAEzB,IAAIC,GAAa,QAASzhT,KAAK+vE,OAAO7wD,MAAMuV,WAAYz0B,KAAKu/S,SAASz2S,IAClE24S,GACAzhT,KAAK0hT,sBAAsBD,EAAYzhT,KAAKu/S,SAASz2S,GAE7D,CACA9I,KAAK27S,WAAc37S,KAAsB,kBAAIA,KAAKm+S,aAAen+S,KAAK27S,UAC1E,CACA37S,KAAKk+L,cAAc,CAAEigH,aAAcn+S,KAAK27S,aAAc,EAC1D,CACJ,EAIAN,EAAS35S,UAAU0/S,sBAAwB,SAAUphI,EAAQ2hI,GACzD,IAAIjqR,EAAKiqR,EAAW,GAAG3hT,KAAK+vE,OAAO+vO,UAAY6B,EAAW,GAAG3hT,KAAK+vE,OAAO+vO,UAAUrrR,WAAa,KAC5FpnB,EAAQ,EACRjK,EAAUpD,KAAKoD,QAAQ6B,cAAc,cAAgB08S,EAAW,GAAG3hT,KAAK+vE,OAAOr4C,IAAM,MACrF46O,EAAYtyQ,KAAKoD,QAAQ6B,cAAc,cAAgB08S,EAAW,GAAG3hT,KAAK+vE,OAAO+vO,UAAY,MACjG,GAAK18S,GAAYkvQ,EAmBRA,KACO,QAAO,IAAM1tD,EAAO0tD,IAE5BtyQ,KAAK2lN,YAAY2sD,EAAW,gBAAiB,MAAM,GAAM,QAtBrC,CACdtyQ,KAAKq8S,gBAAgB74S,QACW,IAAtCxD,KAAKq8S,gBAAgB90S,QAAQmwB,IAC7B13B,KAAKq8S,gBAAgBn6S,KAAKw1B,GAG9B,IADA,IAAI5yB,EAAa9E,KAAKmgT,cAAcngT,KAAKu/S,SAAU7nR,GAC1C3qB,EAAI,EAAGA,EAAIjI,EAAWtB,OAAQuJ,IAAK,CACxC,IAAIk0S,EAAUn8S,EAAWiI,GAAG/M,KAAK+vE,OAAOr4C,IAAM5yB,EAAWiI,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAC7C,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAC1B5zS,IAEAA,IAAUvI,EAAWtB,SAA6C,IAAnCxD,KAAKm+S,aAAa52S,QAAQmwB,IACzD13B,KAAKm+S,aAAaj8S,KAAKw1B,EAE/B,CACA,IAAIkqR,EAAa,IAAI,IAAY5hT,KAAKu/S,UAClCt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAOtoJ,GAAI,QAASA,GAAI,IAC3D13B,KAAKohT,sBAAsBphI,EAAQ4hI,EACvC,CAOJ,EAIAvG,EAAS35S,UAAUm/S,uBAAyB,WAGxC,IAFA,IACIgB,EADAn/P,GAAgB,QAAU,IAAMqiK,EAAe/kN,KAAKoD,SAE/C2J,EAAI,EAAGA,EAAI21C,EAAcl/C,OAAQuJ,IAAK,CAC3C,IAAI+5G,GAAO,QAAQpkE,EAAc31C,GAAI,IAAMusS,GACvCwI,EAASh7L,EAAKloH,aAAa,YAAY61B,WAQvCpnB,EAAQ,EACZ,GAPIw0S,EADkB,IAAlB7hT,KAAK82L,SACiB,IAAI,IAAY92L,KAAKu/S,UACvCt6D,cAAa,IAAI,KAAQlQ,MAAM/0O,KAAK+vE,OAAO+vO,SAAU,QAASgC,GAAQ,IAGpD9hT,KAAKmgT,cAAcngT,KAAKu/S,SAAUuC,GAGnC,CACrB,IAAK,IAAI1nM,EAAI,EAAGA,EAAIynM,EAAoBr+S,OAAQ42G,IAAK,CACjD,IAAI6mM,EAAUY,EAAoBznM,GAAGp6G,KAAK+vE,OAAOr4C,IAAIjD,YACT,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAC1B5zS,GAER,CACA,GAAIA,IAAUw0S,EAAoBr+S,OAAQ,CACtC,IAAIu+S,EAAYj7L,EAAKloH,aAAa,aACY,IAA1CoB,KAAKm+S,aAAa52S,QAAQw6S,IAC1B/hT,KAAKm+S,aAAaj8S,KAAK6/S,GAE3B/hT,KAAK2lN,YAAY7+F,EAAM,QAAS,MAAM,GAAM,EAChD,MACmB,IAAVz5G,GAA4C,IAA7BrN,KAAKm+S,aAAa36S,QACtCxD,KAAK2lN,YAAY7+F,EAAM,UAAW,MAAM,GAAM,EAEtD,CACJ,CACJ,EAIAu0L,EAAS35S,UAAU2/S,wBAA0B,SAAUrmR,GACnD,IAAI53B,GAEAA,EADkB,IAAlBpD,KAAK82L,SACK92L,KAAKoD,QAAQ6B,cAAc,cAAgB+1B,EAAKh7B,KAAK+vE,OAAO+vO,UAAY,MAGxE9/S,KAAKoD,QAAQ6B,cAAc,cAAgB+1B,EAAKh7B,KAAK+vE,OAAOr4C,IAAM,OAIxD,SADFt0B,EAAQ6B,cAAc,IAAM21S,GAAch8S,aAAa,iBAErEoB,KAAK2lN,YAAYviN,EAAS,gBAAiB,MAAM,GAAM,GAGpC,IAAlBpD,KAAK82L,WACA92L,KAAKq8S,gBAAgB74S,QACwC,IAAnExD,KAAKq8S,gBAAgB90S,QAAQyzB,EAAKh7B,KAAK+vE,OAAOr4C,IAAIjD,aAClDz0B,KAAKq8S,gBAAgBn6S,KAAK84B,EAAKh7B,KAAK+vE,OAAOr4C,IAAIjD,YAG3D,EAIA4mR,EAAS35S,UAAUggT,sBAAwB,SAAUD,EAAYlC,GAG7D,IAFA,IAAIlyS,EAAQ,EACR20S,EAAgBzC,EAASv/S,KAAK+vE,OAAOr4C,IAAM6nR,EAASv/S,KAAK+vE,OAAOr4C,IAAIjD,WAAa,GAC5E3rB,EAAQ,EAAGA,EAAQ24S,EAAWj+S,OAAQsF,IAAS,CACpD,IAAIm5S,EAAeR,EAAW34S,GAAO9I,KAAK+vE,OAAOr4C,IAAM+pR,EAAW34S,GAAO9I,KAAK+vE,OAAOr4C,IAAIjD,WAAa,GAClGgtR,EAAW34S,GAAO9I,KAAK+vE,OAAO/lD,aAAgBhqB,KAAa,WAAkD,IAA7CA,KAAKm+S,aAAa52S,QAAQ06S,IAC1FjiT,KAAKm+S,aAAaj8S,KAAK+/S,IAEuB,IAA9CjiT,KAAKm+S,aAAa52S,QAAQy6S,KAAsE,IAA7ChiT,KAAKm+S,aAAa52S,QAAQ06S,IAAwBjiT,KAAK4gT,WAC1G5gT,KAAKm+S,aAAaj8S,KAAK+/S,IAEsB,IAA7CjiT,KAAKm+S,aAAa52S,QAAQ06S,IAAwBjiT,KAAK4gT,WACvDvzS,IAEArN,KAAKm+S,aAAa52S,QAAQ06S,IAAiB,IAAgD,IAA3CjiT,KAAK27S,WAAWp0S,QAAQ06S,IACxEjiT,KAAK27S,WAAWz5S,KAAK+/S,GAEzB,IAAIC,GAAgB,QAASliT,KAAK+vE,OAAO7wD,MAAMuV,WAAYgtR,EAAW34S,IAClEo5S,GAAiBA,EAAc1+S,UACiB,IAA5CxD,KAAK0gT,gBAAgBn5S,QAAQg4S,IAC7Bv/S,KAAK0gT,gBAAgBx+S,KAAKq9S,GAC9Bv/S,KAAK0hT,sBAAsBQ,EAAeT,EAAW34S,KAErDuE,IAAUo0S,EAAWj+S,QAAUxD,KAAK4gT,YAA2D,IAA9C5gT,KAAKm+S,aAAa52S,QAAQy6S,IAC3EhiT,KAAKm+S,aAAaj8S,KAAK8/S,EAE/B,CACA,GAAc,IAAV30S,GAAerN,KAAK4gT,UAAW,CAC/B5gT,KAAKqhT,wBAAwB9B,GAC7B,IAAK,IAAIjrM,EAAM,EAAGA,EAAMt0G,KAAK0gT,gBAAgBl9S,OAAQ8wG,IAC5CirM,IAAav/S,KAAK0gT,gBAAgBpsM,IAAUt0G,KAAK0gT,gBAAgBpsM,IAClEt0G,KAAKqhT,wBAAwBrhT,KAAK0gT,gBAAgBpsM,GAG9D,CACAt0G,KAAK0gT,gBAAkB,EAC3B,EACArF,EAAS35S,UAAUi8S,iBAAmB,SAAUl6S,GAC5C,GAAIzD,KAAKqzR,aAAc,CACnB,IAAI8uB,GAAc,QAAeniT,KAAKuE,eAAe,EAAM,CAAE0/M,SAAUjkN,KAAKoiT,aAC5ED,EAAY19S,aAAa,OAAQ,YACjC09S,EAAY19S,aAAa,aAAc,YACvC,IAAIwjB,GAAO,QAAO,OAASwgM,EAAMhlN,EAAEqmB,MAC/B4N,EAAKj0B,EAAEqmB,KAAKlrB,aAAa,YAC7B6E,EAAEqmB,KAAKhlB,WAAW,GAAGC,aAAao9S,EAAa1+S,EAAEqmB,KAAKhlB,WAAW,GAAGA,YAAW,QAAMmjB,GAAQ,EAAI,IACjG,IAAI4hM,GAAa,QAASpmN,EAAEssE,OAAO/lD,UAAWvmB,EAAEwlL,SAC5CjpL,KAAKm+S,aAAa52S,QAAQmwB,IAAO,IACjC,QAAO,IAAMmjR,EAAesH,GAAav+O,UAAUjoD,IAAIipM,GACvDu9F,EAAY19S,aAAa,eAAgB,QACzCzE,KAAKqiT,SAAS5+S,EAAEqmB,QAEV,QAAM+/L,IAAyC,SAA1BA,EAAWp1L,WAMtC0tR,EAAY19S,aAAa,eAAgB,WALzC,QAAO,IAAMo2S,EAAesH,GAAav+O,UAAUjoD,IAAIipM,GACvDu9F,EAAY19S,aAAa,eAAgB,QACzCzE,KAAKqiT,SAAS5+S,EAAEqmB,OAKpB,IAAIypH,GAAQ,QAAO,IAAMsnK,EAAesH,GACxC,KAAaxmS,IAAI43H,EAAO,YAAavzI,KAAKsiT,kBAAmBtiT,MAC7D,KAAa2b,IAAI43H,EAAO,UAAWvzI,KAAKsiT,kBAAmBtiT,KAC/D,CACIA,KAAK8+S,eACL9+S,KAAKuiT,cAAc9+S,EAAEqmB,MAErB9pB,KAAKwiT,sBAAwB/+S,EAAEqmB,KAAK85C,UAAU5+D,SAAS4jN,IACvDnlN,EAAEqmB,KAAKrlB,aAAa,gBAAiB,SAEzC,IAAIsrE,EAAStsE,EAAEssE,OAKf,GAJA/vE,KAAKyiT,eAAeh/S,EAAGssE,EAAO/nB,SAAU4gK,GACxC5oN,KAAKyiT,eAAeh/S,EAAGssE,EAAOxpD,SAAUk0R,GACxCh3S,EAAEqmB,KAAKrlB,aAAa,WAAY,MAChC,KAAakX,IAAIlY,EAAEqmB,KAAM,QAAS9pB,KAAK2kN,QAAS3kN,QAC3C,QAAMA,KAAKg/S,gBAAiB,CAC7B,IAAI0D,EAAUj/S,EAAEqmB,KAAK7kB,cAAc,IAAMs0S,GACrCoJ,EAASl/S,EAAEqmB,KAAKlrB,aAAa,YACjC8jT,EAAQ36K,UAAY,GACpB/nI,KAAK4iT,mBAAmBn/S,EAAEwlL,QAASy5H,EAASC,EAChD,CACA,IAAIxsM,EAAY,CACZ2Q,KAAMrjH,EAAEqmB,KACR+4R,SAAUp/S,EAAEwlL,QACZ59J,KAAM5nB,EAAE4nB,MAEPrrB,KAAKs7S,cACNt7S,KAAKg7L,QAAQ,WAAY7kF,IACiB,IAAtC1yG,EAAEwlL,QAAQjpL,KAAK+vE,OAAO+yO,aAA0B9iT,KAAKqzR,eACrD5vR,EAAEqmB,KAAK85C,UAAUjoD,IAAIo/R,GACrBt3S,EAAEqmB,KAAK3K,kBAAkB1a,aAAa,QAAS,wBAG3D,EACA42S,EAAS35S,UAAU4gT,kBAAoB,SAAU7+S,GAC7C,IAAIoiN,GAAa,QAAO,sBAAsBpiN,EAAE2J,OAAOqI,gBACvD,QAAmBhS,EAAGoiN,EAC1B,EACAw1F,EAAS35S,UAAU+gT,eAAiB,SAAUh/S,EAAGilM,EAAQub,GACrD,IAAIjpL,EAAOv3B,EAAEwlL,QACT85H,GAAc,QAASr6G,EAAQ1tK,IAC9B,QAAM+nR,IAA2C,UAA3BA,EAAYtuR,YACnChxB,EAAEqmB,KAAK85C,UAAUjoD,IAAIsoM,EAE7B,EACAo3F,EAAS35S,UAAUq+S,YAAc,SAAUtrE,EAAIz0D,GAC3C,GAAIhgL,KAAK+vE,OAAOmlK,sBAAsB,IAAa,CAC/C,IAAK,IAAInoO,EAAI,EAAGA,EAAI0nO,EAAGjxO,OAAQuJ,IAC3B,GAAI/M,KAAKy7F,WACL,GAA6B,iBAAjBukF,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAOu1N,EAAG1nO,QAAS,SAAM,QAASizK,EAAO8/H,SAAUrrE,EAAG1nO,KAClH,OAAO,OAGV,GAA6B,iBAAjBizK,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAOu1N,EAAG1nO,KAC3E,OAAO,EAGf,OAAO,CACX,CACSA,EAAI,EAAb,IAAK,IAAWunG,EAAMmgI,EAAGjxO,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC3C,GAA6B,iBAAjBizK,EAAO9gK,SAAwB,SAAM,QAAS8gK,EAAO9gK,MAAOu1N,EAAG1nO,KACvE,OAAO,EAEX,KAAK,SAAM,QAASizK,EAAO8/H,SAAUrrE,EAAG1nO,QAAS,SAAM,QAASizK,EAAO8yG,YAAar+C,EAAG1nO,KACnF,OAAO,CAEf,CACA,OAAO,CACX,EACAsuS,EAAS35S,UAAUu+S,eAAiB,SAAU/qE,EAAY4d,GAItD,IAHA,IAAIsjC,GAAW,IAAI,KAAQvhD,MAAMie,GAC7Bre,EAAK,KAASwpB,cAAc/oB,EAAYkhD,GACxCE,EAAU,GACLl8K,EAAI,EAAGA,EAAIq6H,EAAGjxO,OAAQ42G,IAAK,CAChC,IAAIi8K,EAAU5hD,EAAGr6H,GAAGjwF,MACpBmsQ,EAAQp0R,KAAKm0R,EACjB,CACA,OAAOC,CACX,EACA+kB,EAAS35S,UAAU2+S,cAAgB,SAAUh9Q,GAIzC,OAHIA,GAA2B,SAAnBrjC,KAAKg9P,YACb35N,EAAO,KAAS46N,cAAc56N,EAAM,KAAS66N,WAAWl+P,KAAKg9P,UAAWh9P,KAAK+vE,OAAO1kD,QAEjFgY,CACX,EACAg4Q,EAAS35S,UAAU++S,aAAe,SAAUr9S,GAExC,IADA,IAAI4/S,GAAS,QAAU,IAAMr1I,EAAOvqK,GAC3Bi3G,EAAI,EAAGA,EAAI2oM,EAAOx/S,OAAQ62G,IAC/B2oM,EAAO3oM,GAAG51G,aAAa,MAAOkpK,GAElC,GAAI3tK,KAAKsqE,SAAU,CAEf,IADA,IAAI24O,GAAS,QAAU,IAAMr6F,EAAUxlN,GAC9B2J,EAAI,EAAGA,EAAIk2S,EAAOz/S,OAAQuJ,IAAK,CACpC/M,KAAKkjT,WAAWD,EAAOl2S,GAAI,MAC3B,KACJ,EACA,QAAYk2S,EAAQr6F,EACxB,CAEA,IADA,IAAIu6F,GAAS,QAAU,IAAM7J,EAAW,SAAWmB,EAAW,IAAKr3S,GAC1Dg3G,EAAI,EAAGA,EAAI+oM,EAAO3/S,OAAQ42G,IAAK,CACpC,IAAInyF,GAAO,QAAO,OAASwgM,EAAM06F,EAAO/oM,IACpCnyF,GAAQA,EAAK27C,UAAU5+D,SAASq0S,IAChCr5S,KAAKojT,kBAAkBD,EAAO/oM,GAEtC,CACA,IAAIipM,GAAS,QAAU,IAAM5I,EAAUr3S,GACvC,IAAKpD,KAAKg+S,eACN,IAASjxS,EAAI,EAAGA,EAAIs2S,EAAO7/S,OAAQuJ,IAC/B/M,KAAKwgT,iBAAiB6C,EAAOt2S,KAGrC,QAAYs2S,EAAQ5I,GACpBz6S,KAAKsjT,aACDtjT,KAAKsqE,UACLtqE,KAAKujT,mBAEb,EACAlI,EAAS35S,UAAU6hT,kBAAoB,WACnC,GAAIvjT,KAAKqzR,aAAc,CACnB,IAAIzvE,EAAQ,GAAGv7M,OAAO,GAAIrI,KAAKm+S,cAC/Bn+S,KAAKk+L,cAAc,CAAEigH,aAAcv6F,IAAS,EAChD,CACJ,EACAy3F,EAAS35S,UAAU8hT,oBAAsB,WACrC,GAAIxjT,KAAK4gT,UAGL,IAFA,IAAIjlD,GAAY,QAAU,KAAM37P,KAAKoD,SAE5B2J,EAAI,EAAGA,EAAI4uP,EAAUn4P,OAAQuJ,IAC9B4uP,EAAU5uP,GAAG62D,UAAU5+D,SAASs0S,MACpB,QAAO,IAAME,EAAY79C,EAAU5uP,IAE3C/M,KAAKyjT,uBAAuB9nD,EAAU5uP,IAGtC/M,KAAK0jT,sBAAsB/nD,EAAU5uP,SAMjD,KAAI21C,GAAgB,QAAU,IAAMqiK,EAAe/kN,KAAKoD,SACxD,IAAS2J,EAAI,EAAGA,EAAI21C,EAAcl/C,OAAQuJ,IACtC21C,EAAc31C,GAAG62D,UAAUC,OAAOkhJ,EAF0B,CAKxE,EACAs2F,EAAS35S,UAAU+hT,uBAAyB,SAAUrgT,GAClD,KAAK,QAAMA,GAAU,CACjB,GAAIA,EAAQwgE,UAAU5+D,SAASojN,GAC3B,OAEJ,IAAIqpC,EAAYruP,EACZA,EAAQwgE,UAAU5+D,SAASs0S,KAC3B7nD,GAAY,QAAO,IAAM+nD,EAAYp2S,IAEzC,IAAI+6S,GAAe,QAAU,IAAMv5F,EAAO6sC,GACtCkyD,GAAqB,QAAU,IAAM5+F,EAAe0sC,GACpD7tC,GAAQ,QAAU,IAAM01F,EAAU7nD,GAClCmyD,EAAcxgT,EAAQmjM,uBAAuBq0G,GAAc,GAC3Dh3F,EAAMpgN,SAAW26S,EAAa36S,OAC9BxD,KAAK2lN,YAAYi+F,EAAa,QAAS,MAAM,GAAM,GAE9CzF,EAAa36S,OAAS,GAAKmgT,EAAmBngT,OAAS,EAC5DxD,KAAK2lN,YAAYi+F,EAAa,gBAAiB,MAAM,GAAM,GAE9B,IAAxBzF,EAAa36S,QAClBxD,KAAK2lN,YAAYi+F,EAAa,UAAW,MAAM,GAAM,GAEzD,IAAIC,GAAW,QAAQzgT,EAAS,IAAMo2S,GACtC,KAAK,QAAMqK,GAAW,CAClB,IAAIC,GAAgB,QAAQD,EAAU,IAAMvK,GAC5Ct5S,KAAKyjT,uBAAuBK,EAChC,CACJ,CACJ,EACAzI,EAAS35S,UAAUgiT,sBAAwB,SAAUtgT,EAASK,GAC1D,KAAK,QAAML,GAAU,CACjB,IAAI2gT,GAAe,QAAO,IAAMvK,EAAYp2S,GACxC4gT,OAAa,EACjB,KAAK,QAAMD,GAAe,CACtBC,GAAa,QAAU,IAAMpJ,EAAcmJ,GAM3C,IALA,IAAI/5R,EAAY5mB,EAAQmjM,uBAAuBs0G,GAAe,GAAGj3O,UAAU5+D,SAAS4/M,GAChFq/F,EAAc7gT,EAAQmjM,uBAAuBs0G,GAAe,GAAGj3O,UAAU5+D,SAAS+/M,GAClFm/F,EAAaH,EAAaztN,iBAAiB,MAE3C6tN,OADcJ,EAAatuS,cAAc7W,aAAa,iBAEjDkK,EAAQ,EAAGA,EAAQk7S,EAAWxgT,OAAQsF,IAAS,CACpD,IAAIm4S,EAAUiD,EAAWp7S,GAAOlK,aAAa,YAC7C,IAAK,QAAMoB,KAAKokT,mBAAqB,SAAM,QAASpkT,KAAK+vE,OAAO/lD,UAAWhqB,KAAKokT,gBAAgBt7S,KAW3F,CACD,IAAIu7S,EAAgBL,EAAWl7S,GAAOy9L,uBAAuBs0G,GAAe,GAAGj3O,UAAU5+D,SAAS4/M,GAC9F56L,GAGKq6R,IAAkBrkT,KAAKsqE,WAGiB,IAAxCtqE,KAAKm+S,aAAa52S,QAAQ05S,IAAmBjhT,KAAKsqE,WAAa25O,GAAej6R,GALnFm6R,EAAe,QAQVD,EAAWp7S,GAAO86D,UAAU5+D,SAp4BjD,kBAo4BsE,QAAYhF,KAAKq8S,kBAAoBr8S,KAAK4gT,YAC5F52R,GAAai6R,KAA2D,IAA3CjkT,KAAKq8S,gBAAgB90S,QAAQ05S,IAIvC,IAAlBjhT,KAAK82L,YAAoB,QAAY92L,KAAKq8S,kBAAoBr8S,KAAK4gT,YACvE52R,GAAai6R,KAA2D,IAA3CjkT,KAAKq8S,gBAAgB90S,QAAQ05S,IAJ3DkD,EAAe,gBACfnkT,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQ05S,GAAU,IAQnEkD,EAAe,SAEvB,MAlCIA,GAAe,QAASnkT,KAAK+vE,OAAO/lD,UAAWhqB,KAAKokT,gBAAgBt7S,IAAU,QAAU,WACtE,IAAd9I,KAAKs7L,MACL6oH,EAAen6R,EAAY,QAAU,WAEnB,YAAjBm6R,KAAiC,QAAYnkT,KAAKq8S,kBAAoBr8S,KAAK4gT,YAC9B,IAA3C5gT,KAAKq8S,gBAAgB90S,QAAQ05S,KAChCjhT,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQ05S,GAAU,GACnEkD,EAAe,iBA4BvBnkT,KAAK2lN,YAAYq+F,EAAWl7S,GAAQq7S,EAAc1gT,GAAG,GAAM,EAC/D,CACJ,CACIzD,KAAK4gT,WAAa5gT,KAAKsqE,UACvBtqE,KAAK6gT,wBAEb,CACJ,EACAxF,EAAS35S,UAAU4iT,iBAAmB,SAAU1gG,EAAO2gG,GAEnD,IADS,QAAU,IAAMjL,EAAUt5S,KAAKoD,UACnC,QAAMwgN,GA6CN,CACD,IAAIogG,GAAa,QAAU,IAAMpJ,EAAc56S,KAAKoD,SACpD,GAAIpD,KAAKugT,aACL,IAAK,IAAIz3S,EAAQ,EAAGA,EAAQk7S,EAAWxgT,OAAQsF,IAC3C9I,KAAKwkT,mBAAmBR,EAAWl7S,GAAQy7S,GAC3CvkT,KAAK2lN,YAAYq+F,EAAWl7S,GAAQy7S,EAAU,QAAU,UAAW,KAAM,KAAM,KAAMA,QAIzF,IAASz7S,EAAQ,EAAGA,EAAQk7S,EAAWxgT,OAAQsF,IAC3C9I,KAAKwkT,mBAAmBR,EAAWl7S,GAAQy7S,GAC3CvkT,KAAK2lN,YAAYq+F,EAAWl7S,GAAQy7S,EAAU,QAAU,UAGpE,MA1DI,IAAK,IAAIjwM,EAAMsvG,EAAMpgN,OAAQ8wG,GAAO,EAAGA,IAAO,CAC1C,IAAImwM,EAOJ,GALIA,EADiB,IAAjB7gG,EAAMpgN,OACExD,KAAKq9K,WAAWumC,EAAMtvG,EAAM,IAG5Bt0G,KAAKq9K,WAAWumC,EAAMtvG,KAE9B,QAAMmwM,GAAV,CACI,IAAI39L,OAAO,EAEX,GAAa,MADbA,EAAO88F,EAAMtvG,EAAMsvG,EAAMpgN,QAAUogN,EAAMtvG,EAAMsvG,EAAMpgN,QAAQixB,WAAamvL,EAAMtvG,GAAOsvG,EAAMtvG,GAAK7/E,WAAa,OAC5F8vR,GAAWz9L,EAC1B9mH,KAAK0kT,oBAAoB59L,GACzB9mH,KAAK2kT,kBAAkB79L,EAAMy9L,QAE5B,IAAyC,IAArCvkT,KAAKm+S,aAAa52S,QAAQu/G,IAAyB,KAATA,IAAgBy9L,EAAS,CACxEvkT,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQu/G,GAAO,GAC1D,IAAI26L,EAAazhT,KAAKmgT,cAAcngT,KAAKu/S,SAAUz4L,GACnD,GAAI26L,EAAY,CACZ,IAAK,IAAI10S,EAAI,EAAGA,EAAI00S,EAAWj+S,OAAQuJ,IAAK,CACxC,IAAI2qB,EAAK+pR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAM+pR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KACpF,IAAuC,IAAnCz0B,KAAKm+S,aAAa52S,QAAQmwB,GAAY,CACtC13B,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQmwB,GAAK,GACxD,IAAI4jK,EAAMt7L,KAAKoD,QAAQ6B,cAAc,cAAgByyB,EAAK,MACtD4jK,GACAt7L,KAAK2lN,YAAYrqB,EAAK,UAAW,KAEzC,CACJ,EAC4C,IAAxCt7L,KAAKq8S,gBAAgB90S,QAAQu/G,IAC7B9mH,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQu/G,GAAO,EAExE,CACIA,GACA9mH,KAAK2kT,kBAAkB79L,EAAMy9L,GAEjCvkT,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ+2C,EAAM,YAAa,KACpE,CAEJ,KA/BA,CAgCA,IAAI+9L,GAAW,QAAO,IAAMrL,EAAa,KAAOoB,EAAc6J,GAC9DzkT,KAAK8kT,kBAAkBD,GAAWN,EAASE,EAAO,KAFlD,CAGJ,CAiBJ,GAAI7gG,EACA,IAAK,IAAIxpG,EAAI,EAAGA,EAAIwpG,EAAMpgN,OAAQ42G,IAC1B0M,EAAO88F,EAAMxpG,GAAKwpG,EAAMxpG,GAAG3lF,WAAa,GACvC8vR,GACDvkT,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ+2C,EAAM,YAAa,MAIxE9mH,KAAK4gT,WACL5gT,KAAK6gT,wBAEb,EACAxF,EAAS35S,UAAU8iT,mBAAqB,SAAU5gQ,EAAU2gQ,GACxD,IAAIQ,GAAS,QAAQnhQ,EAAU,IAAM01P,GACjC5hR,EAAKqtR,EAAOnmT,aAAa,YAEC,SADZoB,KAAKglT,YAAYD,GACnB/6R,WAAyBu6R,GACrCvkT,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,EAAI,YAAa,KAEtE,EAIA2jR,EAAS35S,UAAUijT,kBAAoB,SAAU79L,EAAMy9L,GACnD,GAAsB,IAAlBvkT,KAAK82L,SAAgB,CACrB,IAAIzpL,EAAQ,EACR0zS,EAAW,IAAI,IAAY/gT,KAAKu/S,UAAUt6D,cAAa,IAAI,KAAQlQ,MAAM/0O,KAAK+vE,OAAOr4C,GAAI,QAASovF,GAAM,IAC5G,GAAIi6L,EAAS,GAAI,CACb,IAAIrpR,EAAKqpR,EAAS,GAAG/gT,KAAK+vE,OAAOr4C,IAAMqpR,EAAS,GAAG/gT,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KAC5E+iF,EAAWupM,EAAS,GAAG/gT,KAAK+vE,OAAO+vO,UAAYiB,EAAS,GAAG/gT,KAAK+vE,OAAO+vO,UAAUrrR,WAAa,KAG9F09P,IAFA18Q,EAAgBzV,KAAKoD,QAAQ6B,cAAc,cAAgBuyG,EAAW,SACtC,QAAO,IAAMutG,EAAetvM,GACpDA,GAAgB,QAAO,IAAMmvM,EAAOnvM,GAAiB,MAC7DrS,EAAUpD,KAAKoD,QAAQ6B,cAAc,cAAgByyB,EAAK,MAC1D5yB,EAAa9E,KAAKmgT,cAAcngT,KAAKu/S,SAAU/nM,GACnD,GAAI1yG,EACA,IAAK,IAAIiI,EAAI,EAAGA,EAAIjI,EAAWtB,OAAQuJ,IAAK,CACxC,IAAIk0S,EAAUn8S,EAAWiI,GAAG/M,KAAK+vE,OAAOr4C,IAAM5yB,EAAWiI,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAC7C,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAC1B5zS,GAER,EAEqC,IAArCrN,KAAKm+S,aAAa52S,QAAQu/G,IAAgBrxG,GAAkBiiB,IAAOovF,GAAS9mH,KAAK4gT,UACjF5gT,KAAK2lN,YAAYlwM,EAAe,gBAAiB,OAEP,IAArCzV,KAAKm+S,aAAa52S,QAAQu/G,IAAgB1jH,GAAYs0B,IAAOovF,IAAUy9L,EAC5EvkT,KAAK2lN,YAAYviN,EAAS,UAAW,OAEK,IAArCpD,KAAKm+S,aAAa52S,QAAQu/G,IAAgB1jH,GAAYs0B,IAAOovF,GAASy9L,EAC3EvkT,KAAK2lN,YAAYviN,EAAS,QAAS,OAEO,IAArCpD,KAAKm+S,aAAa52S,QAAQu/G,KAAiB1jH,GAAWqS,GAAkBiiB,IAAOovF,GAAS9mH,KAAK4gT,WACrF,IAAVvzS,EACHrN,KAAK2lN,YAAYlwM,EAAe,gBAAiB,OAEP,IAArCzV,KAAKm+S,aAAa52S,QAAQu/G,KAAiB1jH,GAAWqS,GAAkBiiB,IAAOovF,GAAS9mH,KAAK4gT,WACrF,IAAVvzS,EACHrN,KAAK2lN,YAAYlwM,EAAe,UAAW,MAErCrS,GAAYqS,GAAkBiiB,IAAOovF,IAAS9mH,KAAK4gT,WACzD5gT,KAAKilT,oBAAoBn+L,EAAMy9L,EAEvC,CACJ,MACK,GAAsB,IAAlBvkT,KAAK82L,UAAmB92L,KAAK+vE,OAAOmlK,sBAAsB,KAC/Dl1O,KAAKy7F,UACL,CAAI/jE,OAAK,EAAT,IACIjiB,OAAgB,EAEpB,IADI08Q,OAAQ,EACHplR,EAAI,EAAGA,EAAI/M,KAAKu/S,SAAS/7S,OAAQuJ,IAAK,CAC3C2qB,EAAK13B,KAAKu/S,SAASxyS,GAAG/M,KAAK+vE,OAAOr4C,IAAM13B,KAAKu/S,SAASxyS,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,GAEtF09P,GADA18Q,EAAgBzV,KAAKoD,QAAQ6B,cAAc,cAAgByyB,EAAK,QACxC,QAAO,IAAMktL,EAAOnvM,GAAiB,MACtB,IAAnCzV,KAAKm+S,aAAa52S,QAAQmwB,IAAcjiB,GAAiB08Q,IAAUoyB,GACnEvkT,KAAK2lN,YAAYlwM,EAAe,UAAW,MAE/C,IAAIw+Q,GAAW,QAASj0R,KAAK+vE,OAAO7wD,MAAMuV,WAAYz0B,KAAKu/S,SAASxyS,IAChEknR,GACAj0R,KAAKklT,yBAAyBjxB,EAAUv8P,EAAIovF,EAAMy9L,EAAS7sR,EAEnE,CAde,CAgBvB,EAIA2jR,EAAS35S,UAAUujT,oBAAsB,SAAUn+L,EAAMy9L,GACrD,IAEI31O,EAFAu2O,EAAoBnlT,KAAKolT,YAAYt+L,GACrCz5G,EAAQ,EAEU,IAAlBrN,KAAK82L,WACLloH,EAASu2O,EAAkB,GAAGnlT,KAAK+vE,OAAO+vO,UAAYqF,EAAkB,GAAGnlT,KAAK+vE,OAAO+vO,UAAUrrR,WAAa,MAElH,IAAI3vB,EAAa9E,KAAKmgT,cAAcngT,KAAKu/S,SAAU3wO,GACnD,GAAI9pE,EACA,IAAK,IAAIiI,EAAI,EAAGA,EAAIjI,EAAWtB,OAAQuJ,IAAK,CACxC,IAAIk0S,EAAUn8S,EAAWiI,GAAG/M,KAAK+vE,OAAOr4C,IAAM5yB,EAAWiI,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAC7C,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAC1B5zS,GAER,CAEJ,IAAIoI,EAAgBzV,KAAKoD,QAAQ6B,cAAc,cAAgB2pE,EAAS,MACpEn5D,GAAiB8uS,IAGXA,GAAW9uS,IAA2D,IAA1CzV,KAAKq8S,gBAAgB90S,QAAQqnE,IAA4B,IAAVvhE,EAFjFrN,KAAK2lN,YAAYlwM,EAAe,gBAAiB,OAK3C8uS,GAAW9uS,IAA2D,IAA1CzV,KAAKq8S,gBAAgB90S,QAAQqnE,IAA4B,IAAVvhE,EACjFrN,KAAK2lN,YAAYlwM,EAAe,UAAW,MAErCA,IACD8uS,IAAkD,IAAvCvkT,KAAKm+S,aAAa52S,QAAQqnE,KAA4D,IAA1C5uE,KAAKq8S,gBAAgB90S,QAAQqnE,GAGhF21O,IAAkD,IAAvCvkT,KAAKm+S,aAAa52S,QAAQqnE,KAA4D,IAA1C5uE,KAAKq8S,gBAAgB90S,QAAQqnE,GACzF5uE,KAAKq8S,gBAAgBn6S,KAAK0sE,GAEpB21O,IAAkD,IAAvCvkT,KAAKm+S,aAAa52S,QAAQqnE,KAA4D,IAA1C5uE,KAAKq8S,gBAAgB90S,QAAQqnE,IAC7E,IAAVvhE,GACHrN,KAAKq8S,gBAAgBn6S,KAAK0sE,GAP1B5uE,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQqnE,GAAS,GAStE5uE,KAAKilT,oBAAoBr2O,EAAQ21O,IACU,IAAvCvkT,KAAKm+S,aAAa52S,QAAQqnE,IAAmB21O,GAC7CvkT,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQqnE,GAAS,GAGxE,EAIAysO,EAAS35S,UAAUwjT,yBAA2B,SAAUjxB,EAAUrlN,EAAQk4C,EAAMy9L,EAASrlS,GAErF,IADA,IAAI7R,EAAQ,EACH+sG,EAAI,EAAGA,EAAI65K,EAASzwR,OAAQ42G,IAAK,CACtC,IAAIirM,EAAQpxB,EAAS75K,GAAGp6G,KAAK+vE,OAAOr4C,IAAMu8P,EAAS75K,GAAGp6G,KAAK+vE,OAAOr4C,IAAIjD,WAAa,IACzC,IAAtCz0B,KAAKm+S,aAAa52S,QAAQ89S,IAC1Bh4S,IAEJ,IAAIoI,EAAgBzV,KAAKoD,QAAQ6B,cAAc,cAAgB2pE,EAAS,MACpElsB,EAAgBjtC,GAAgB,QAAO,IAAMsvM,EAAetvM,GAAiB,KAC7E08Q,EAAQ18Q,GAAgB,QAAO,IAAMmvM,EAAOnvM,GAAiB,KAC7DrS,EAAUpD,KAAKoD,QAAQ6B,cAAc,cAAgBogT,EAAQ,MAC7DC,EAAoBliT,GAAU,QAAO,IAAMwhN,EAAOxhN,GAAW,KACjE,IAAyC,IAArCpD,KAAKm+S,aAAa52S,QAAQu/G,IAAgBrxG,GAAkB4vS,IAAUv+L,GAAS9mH,KAAK4gT,UACpF5gT,KAAK2lN,YAAYlwM,EAAe,gBAAiB,WAEhD,IAAyC,IAArCzV,KAAKm+S,aAAa52S,QAAQu/G,KAAgBrxG,GAAkBrS,GAAYiiT,IAAUv+L,GAAUy9L,GAahG,IAAyC,IAArCvkT,KAAKm+S,aAAa52S,QAAQu/G,IAAgB1jH,GAAYiiT,IAAUv+L,IAAUy9L,EAC/EvkT,KAAK2lN,YAAYviN,EAAS,UAAW,WAEpC,IAAyC,IAArCpD,KAAKm+S,aAAa52S,QAAQu/G,IAAgBpkE,GAAkB2iQ,IAAUv+L,GAAS9mH,KAAK4gT,WAAuB,IAAVvzS,IAClGk3S,EACJ7hQ,EAAckhB,UAAUC,OAAOkhJ,QAE9B,IAAyC,IAArC/kN,KAAKm+S,aAAa52S,QAAQu/G,KAAiB1jH,GAAW+uR,GAAUkzB,IAAUv+L,GAAmB,IAAVz5G,EACxFrN,KAAK2lN,YAAYlwM,EAAe,UAAW,WAE1C,IAA0C,IAAtCzV,KAAKm+S,aAAa52S,QAAQ89S,IAAiBjiT,GAAWkiT,GAA+B,IAAVj4S,EAChFrN,KAAK2lN,YAAYviN,EAAS,UAAW,WAEpC,IAAKA,IAAYqS,GAAkB4vS,IAAUv+L,IAAoD,IAA1C9mH,KAAKq8S,gBAAgB90S,QAAQqnE,IAAmB5uE,KAAK4gT,UAAW,CACxH,IAAImD,EAAe/jT,KAAKoD,QAAQ6B,cAAc,cAAgBia,EAAQ,MAClEqlS,GAAqB,IAAVl3S,EACXrN,KAAK2lN,YAAYo+F,EAAc,gBAAiB,MAE3CQ,GAAWl3S,IAAU4mR,EAASzwR,SAAiD,IAAvCxD,KAAKm+S,aAAa52S,QAAQqnE,GACvE5uE,KAAKm+S,aAAaj8S,KAAK0sE,GAEjB21O,GAAqB,IAAVl3S,IAAyD,IAA1CrN,KAAKq8S,gBAAgB90S,QAAQqnE,IAC7D5uE,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQqnE,KAEf,IAA1C5uE,KAAKq8S,gBAAgB90S,QAAQqnE,IAC7B5uE,KAAKq8S,gBAAgBn6S,KAAK0sE,EAElC,OAvCQ5uE,KAAK4gT,UACL5gT,KAAK2lN,YAAYlwM,EAAe,UAAW,MAG7B,IAAVpI,EACArN,KAAK2lN,YAAYlwM,EAAe,gBAAiB,MAGjDzV,KAAK2lN,YAAYlwM,EAAe,UAAW,MAgCvD,IAAI8vS,GAAa,QAASvlT,KAAK+vE,OAAO7wD,MAAMuV,WAAYw/P,EAAS75K,IAC7DmrM,GACAvlT,KAAKklT,yBAAyBK,EAAYF,EAAOv+L,EAAMy9L,EAASrlS,EAExE,CACJ,EACAm8R,EAAS35S,UAAUikN,YAAc,SAAUh5L,EAASugB,EAAOzpC,EAAG+hT,EAAWC,EAAOlB,GAC5E,IACIpuM,EADAl0G,EAAQjC,KAER+kT,GAAS,QAAQp4R,EAAS,IAAM2sR,GAChC3sR,IAAYo4R,IACZp4R,GAAU,QAAO,IAAMiuR,EAAcmK,IAEpCS,EAUDxlT,KAAK0lT,gBAAgB/4R,EAASugB,EAAO63Q,EAAQ5uM,EAAW1yG,EAAG+hT,EAAWC,EAAOlB,IAT7EvkT,KAAKo8S,iBAAmB,GACxBjmM,EAAYn2G,KAAK2lT,cAAcZ,EAAQ73Q,EAAOzpC,GAC9CzD,KAAKg7L,QAAQ,eAAgB7kF,GAAW,SAAU40J,GACzCA,EAAa/3J,QACd/wG,EAAMyjT,gBAAgB/4R,EAASugB,EAAO63Q,EAAQh6C,EAActnQ,EAAG+hT,EAAWC,EAAOlB,EAEzF,IAKR,EACAlJ,EAAS35S,UAAUgkT,gBAAkB,SAAU/4R,EAASugB,EAAO63Q,EAAQ5uM,EAAW1yG,EAAG+hT,EAAWC,EAAOlB,GACnG,IAAIqB,EACA9/F,EAAYn5L,EAAQ45K,uBAAuBs0G,GAAe,GAsB9D,GArBc,UAAV3tQ,GAAsB44K,EAAUliJ,UAAU5+D,SAAS4/M,GAMpC,YAAV13K,IAAwB44K,EAAUliJ,UAAU5+D,SAAS4/M,IAAUkB,EAAUliJ,UAAU5+D,SAAS+/M,MACjG,QAAY,CAACe,GAAY,CAAClB,EAAOG,IACjC/kN,KAAK6lT,YAAYd,GACjBa,EAAY,SAEG,kBAAV14Q,GAA6BltC,KAAK4gT,YACvC96F,EAAUliJ,UAAUC,OAAO+gJ,GAC3BkB,EAAUliJ,UAAUjoD,IAAIopM,GACxB/kN,KAAK6lT,YAAYd,GACjBa,EAAY,UAdZ9/F,EAAUliJ,UAAUC,OAAOkhJ,GAC3Be,EAAUliJ,UAAUjoD,IAAIipM,GACxB5kN,KAAKqiT,SAAS0C,GACda,EAAY,QAahBA,EAAsB,UAAV14Q,EAAoB,OAAmB,YAAVA,EAAsB,QAAU04Q,GACpE,QAAMA,IACPj5R,EAAQloB,aAAa,eAAgBmhT,GAErCH,EAAO,CACP,IAAIzqR,EAAO,GAAG3yB,OAAO,GAAIrI,KAAKo8S,kBAC9BjmM,EAAYn2G,KAAK2lT,cAAcZ,EAAQ73Q,EAAOzpC,IAC1C,QAAY+hT,KACZrvM,EAAUn7E,KAAOA,EAEzB,MACgBv8B,IAAZ8lT,GACAvkT,KAAK8lT,kBAAkBf,EAAQR,GAE9BiB,IACI,QAAMI,KACPj5R,EAAQloB,aAAa,eAAgBmhT,GACrCzvM,EAAUn7E,KAAK,GAAG1U,QAAUs/R,EAC5B5lT,KAAKg7L,QAAQ,cAAe7kF,GAC5Bn2G,KAAKo8S,iBAAmB,GAGpC,EACAf,EAAS35S,UAAU2gT,SAAW,SAAUoC,GACpC,IAAI/sR,EAAK+sR,EAAM7lT,aAAa,aACvB,QAAM84B,KAA0C,IAAnC13B,KAAKm+S,aAAa52S,QAAQmwB,IACxC13B,KAAKm+S,aAAaj8S,KAAKw1B,EAE/B,EACA2jR,EAAS35S,UAAUmkT,YAAc,SAAUpB,GACvC,IAAI37S,EAAQ9I,KAAKm+S,aAAa52S,QAAQk9S,EAAM7lT,aAAa,aACrDkK,GAAS,GACT9I,KAAKm+S,aAAazwS,OAAO5E,EAAO,EAExC,EACAuyS,EAAS35S,UAAUikT,cAAgB,SAAUZ,EAAQr8G,EAAQjlM,GACzDzD,KAAKo8S,iBAAiBl6S,KAAKlC,KAAKglT,YAAYD,IAC5C,IAAIlC,EAAW7iT,KAAKo8S,iBACpB,MAAO,CAAE1zG,OAAQA,EAAQ11F,QAAQ,EAAOu7G,eAAc,QAAM9qN,GAAmBqjH,KAAMi+L,EAAQ/pR,KAAM6nR,EACvG,EACAxH,EAAS35S,UAAUi+S,SAAW,WAC1B,IAAIL,GAAU,QAAO,IAAM9F,EAAYx5S,KAAKoD,SAC5C,KAAK,QAAkBk8S,GAAU,CAC7BA,EAAQ76S,aAAa,OAAQu2S,GAAaC,UAC1Cj7S,KAAKq/S,eAAer/S,KAAKwiT,qBACzB,IAAIuD,GAAY,QAAO,IAAMzM,EAAUt5S,KAAKoD,SACxC2iT,IACAA,EAAUthT,aAAa,WAAY,KACnCzE,KAAKgmT,aAAa,KAAMD,IAExB/lT,KAAKimT,eACLjmT,KAAKkmT,aAETlmT,KAAKguM,uBACLhuM,KAAKmmT,SAASnmT,KAAK4/S,SAAS,IAAK5/S,KAAK4/S,SAAS,GAAGh6S,eAAe5F,KAAK+vE,OAAO+vO,UAC7E9/S,KAAKomT,gBACT,CACJ,EACA/K,EAAS35S,UAAUq9S,YAAc,YAC5B/+S,KAAKimT,cAAgB,KAAW,MAAa,CAACjmT,KAAKoD,SAvyC7C,eAwyCH,KAAQy3L,OACP76L,KAAKimT,cAAgB,KAAW,MAAa,CAACjmT,KAAKoD,SAxyC/C,YA0yCb,EACAi4S,EAAS35S,UAAUwkT,WAAa,SAAUG,GACtC,GAAKrmT,KAAK8+S,cAKV,IAFA,IAAI2F,EAAQ4B,GAAQ,QAAU,IAAM/M,EAAU+M,GAASrmT,KAAKsmT,OACxD9iT,EAASihT,EAAMjhT,OACVuJ,EAAI,EAAGA,EAAIvJ,EAAQuJ,IACxB/M,KAAKumT,cAAc9B,EAAM13S,GAEjC,EACAsuS,EAAS35S,UAAU6kT,cAAgB,SAAU9B,GACzC,IAAIrhT,GAAU,QAAO,IAAMo3S,EAASiK,GAChCrhT,GAAWA,EAAQuB,qBACnBvB,EAAQgG,MAAMyX,OAAS7gB,KAAKimT,cAAgB7iT,EAAQuB,mBAAmBumF,aAAe,KAAO,GAErG,EACAmwN,EAAS35S,UAAU0kT,eAAiB,WAChC,IAAII,EAAQxmT,KAAKo+S,cACjB,GAAIp+S,KAAKg+S,gBAAkBwI,EAAMhjT,OAAS,EAGtC,GAFAxD,KAAKk+L,cAAc,CAAEkgH,cAAe,KAAM,GAEtCp+S,KAAK+vE,OAAOmlK,sBAAsB,IAClCl1O,KAAKymT,iBAAiBD,OAErB,CACD,IAAK,IAAIz5S,EAAI,EAAGA,EAAIy5S,EAAMhjT,OAAQuJ,IAAK,CACnC,IAAI25S,GAAQ,QAAO,cAAgBF,EAAMz5S,GAAK,KAAM/M,KAAKoD,SACzD,IAAK,QAAMsjT,GAOHF,EAAMz5S,KAAiD,IAA3C/M,KAAK47S,eAAer0S,QAAQi/S,EAAMz5S,KAC9C/M,KAAK47S,eAAe15S,KAAKskT,EAAMz5S,GAAG0nB,gBAR1C,CACI,IAAIxM,GAAO,QAAO,IAAMoxR,GAAY,QAAO,IAAMM,EAAU+M,KACtD,QAAMz+R,IACPjoB,KAAK2mT,aAAaD,EAAOz+R,EAAM,KAQvC,CACJ,CACAjoB,KAAK4mT,gBACT,MAGA5mT,KAAK4mT,gBAEb,EACAvL,EAAS35S,UAAU+kT,iBAAmB,SAAUhmL,GAC5C,IAAIunF,EAAQhoN,KACZA,KAAK6mT,eAAepmL,EAAIzgI,KAAK8I,QAAQ,WACjCk/M,EAAMl/M,QACFk/M,EAAMl/M,MAAQ23H,EAAIj9H,OAClBwkN,EAAMy+F,iBAAiBhmL,GAGvBunF,EAAM4+F,gBAEd,GACJ,EACAvL,EAAS35S,UAAUmlT,eAAiB,SAAUC,EAAM9kT,GAChD,IAAI0kT,GAAQ,QAAO,cAAgBI,EAAO,KAAM9mT,KAAKoD,SACrD,IAAK,QAAMsjT,GAUP1kT,QAVe,CACf,IAAIimB,GAAO,QAAO,IAAMoxR,GAAY,QAAO,IAAMM,EAAU+M,KACtD,QAAMz+R,GAIPjmB,IAHAhC,KAAK2mT,aAAaD,EAAOz+R,EAAM,MAAM,EAAOjmB,EAKpD,CAIJ,EACAq5S,EAAS35S,UAAUklT,eAAiB,WAKhC,GAJA5mT,KAAK+mT,oBACL/mT,KAAKujT,oBACLvjT,KAAKu8S,WAAY,EACjBv8S,KAAKg+S,gBAAiB,IAChBh+S,KAAKsqE,UAAYtqE,KAAK67S,iBAAmB77S,KAAKg8S,cAAe,CAC/D,IAAI7lM,EAAY,CAAEn7E,KAAMh7B,KAAKu/S,UAC7Bv/S,KAAKg7L,QAAQ,YAAa7kF,EAC9B,CACAn2G,KAAKsqE,UAAW,EAChBtqE,KAAKg8S,eAAgB,CACzB,EACAX,EAAS35S,UAAUqlT,kBAAoB,WACnC,IAAI9D,GAAS,QAAU,IAAMr6F,EAAU5oN,KAAKoD,SACxC4jT,EAAQhnT,KAAKk+S,cACjB,GAAI8I,EAAMxjT,OAAS,EAAG,CAClBxD,KAAKk+L,cAAc,CAAEggH,cAAe,KAAM,GAC1C,IAAK,IAAInxS,EAAI,EAAGA,EAAIi6S,EAAMxjT,OAAQuJ,IAAK,CACnC,IAAIk6S,GAAQ,QAAO,cAAgBD,EAAMj6S,GAAK,KAAM/M,KAAKoD,SAOzD,GANI6jT,IAAWA,EAAMrjP,UAAU5+D,SAAS,YACpChF,KAAKkjT,WAAW+D,EAAO,MAAM,GAG7BjnT,KAAKk+S,cAAch8S,KAAK8kT,EAAMj6S,KAE7B/M,KAAKwiT,oBACN,KAER,CACJ,MAEIxiT,KAAKknT,iBAAiBjE,IAE1B,QAAYA,EAAQr6F,EACxB,EACAyyF,EAAS35S,UAAUwlT,iBAAmB,SAAUjE,GAC5C,IAAK,IAAIl2S,EAAI,EAAGA,EAAIk2S,EAAOz/S,SAClBy/S,EAAOl2S,GAAG62D,UAAU5+D,SAAS,cAC9BhF,KAAKkjT,WAAWD,EAAOl2S,GAAI,MAAM,GAEhC/M,KAAKwiT,qBAJqBz1S,KAQvC,EACAsuS,EAAS35S,UAAUskN,aAAe,SAAUzyM,GACxC,IAAInG,EAAS,KAAQ6rL,WAAa,KAAQO,MAAQ96L,SAAS24M,iBAAiB9jM,EAAMkqJ,cAAc2zC,eAAe,GAAGv4J,QAAStlC,EAAMkqJ,cAAc2zC,eAAe,GAAGt4J,SAAWvlC,EAAMkqJ,cAAcrwJ,OAEhM,GADA,KAAay2D,OAAO7jE,KAAKoD,QAAS,cAAepD,KAAKmnT,oBACjD/5S,IAAUpN,KAAKs8S,gBAApB,CAII,IAAI14O,EAAYx2D,EAAOw2D,UACnBqoK,GAAK,QAAQ7+N,EAAQ,IAAMksS,GAC/B,GAAKrtE,KAAOA,EAAGroK,UAAU5+D,SAAS+1S,IAAoBn3O,EAAU5+D,SAASq0S,IAAez1O,EAAU5+D,SAASo0S,IAA3G,CAGK,GAAkC,IAA9B7lS,EAAMkqJ,cAAcjmJ,MAAa,CACtC,IAAI4uL,GAAgB,QAAO,oBAAoB6lC,GAC3Cm7E,GAAc,QAAO,IAAM3+F,EAAMwjB,GAGrC,GAFAjsO,KAAK8sO,cACL9sO,KAAKqnT,gBAAgBp7E,GACjBjsO,KAAKqzR,eAAiBpnD,EAAGroK,UAAU5+D,SAAS,aAAc,CAC1D,IAAIsiT,GAAe,QAAQl6S,EAAQ,IAAMwtS,GACzC,KAAK,QAAM0M,GAAe,CACtB,IAAIC,GAAe,QAAO,IAAM1M,EAAeyM,GAG/C,OAFAtnT,KAAK8kT,kBAAkBwC,EAAcC,EAAa3jP,UAAU5+D,SAAS4/M,GAAQqnB,EAAI14N,EAAMkqJ,oBACvFz9J,KAAKwnT,kBAAkBj0S,EAAMkqJ,cAAewuE,EAEhD,CACJ,CACIroK,EAAU5+D,SAASq0S,GACnBr5S,KAAK2mT,aAAa16E,EAAI7+N,EAAQmG,GAEzBqwD,EAAU5+D,SAASo0S,GACxBp5S,KAAKynT,aAAax7E,EAAI7+N,EAAQmG,GAEzB6yL,GAAiBghH,EAClBA,EAAYxjP,UAAU5+D,SAASigN,IAAWmiG,EAAYxjP,UAAU5+D,SAASq0S,GACzEr5S,KAAK2mT,aAAa16E,EAAIm7E,EAAa7zS,GAE9B6zS,EAAYxjP,UAAU5+D,SAASigN,IAAWmiG,EAAYxjP,UAAU5+D,SAASo0S,GAC9Ep5S,KAAKynT,aAAax7E,EAAIm7E,EAAa7zS,GAE7BqwD,EAAU5+D,SAASw0S,IAAgB51O,EAAU5+D,SAASs0S,IAC5Dt5S,KAAK0nT,aAAaz7E,EAAI14N,EAAMkqJ,eAAe,GAI1C75F,EAAU5+D,SAASw0S,IAAgB51O,EAAU5+D,SAASs0S,IACvDt5S,KAAK0nT,aAAaz7E,EAAI14N,EAAMkqJ,eAAe,EAGvD,CACkC,IAA9BlqJ,EAAMkqJ,cAAcjmJ,QACpBxX,KAAKi8S,cAAe,GAExBj8S,KAAKwnT,kBAAkBj0S,EAAMkqJ,cAAewuE,EAJ5C,CAKJ,CACJ,EACAovE,EAAS35S,UAAUimT,iBAAmB,SAAUh7R,EAASgiN,EAASlrO,IACjD,QAAQkpB,EAAS,IAAM2sR,GAApC,IACInjM,EAAYn2G,KAAK2lT,cAAch5R,EAASgiN,EAAU,UAAY,QAASlrO,GAC3E0yG,EAAUn7E,KAAOm7E,EAAUn7E,KAAKttB,OAAO,EAAGyoG,EAAUn7E,KAAKx3B,OAAS,GAClExD,KAAKg7L,QAAQ,cAAe7kF,EAChC,EACAklM,EAAS35S,UAAU8lT,kBAAoB,SAAU/jT,EAAGwoO,GAChD,IAAI91H,EAAY,CACZ5iG,MAAO9P,EACPqjH,KAAMmlH,GAEVjsO,KAAKg7L,QAAQ,cAAe7kF,EAChC,EACAklM,EAAS35S,UAAUkmT,WAAa,SAAU7C,EAAQ98R,EAAMihD,GACpD,IAAIjnE,EAAQjC,KAQZ,GAPAA,KAAKguM,uBACD/lL,EAAK27C,UAAU5+D,SAASy0S,IACxBz5S,KAAKszP,YAAYrrO,GAEhBjoB,KAAKq+S,eACNp2R,EAAK27C,UAAUjoD,IAAI,gBAER,IAAXutD,IAA+B,IAAXA,GAAmB67O,EAAOnhP,UAAU5+D,SAAS,eACjE,IAA2B,IAAvBhF,KAAKu7S,cAAwB,EAC7B,QAAY,CAACtzR,GAAOoxR,IACpB,QAAS,CAACpxR,GAAOmxR,GACjB,IAAIyO,EAAU,EACVC,EAAQ,EACRrkD,EAAUzjQ,KACVygS,GAAO,QAAO,IAAM+Y,EAAYuL,GAChCgD,EAAUhD,EACd/kT,KAAKgoT,UAAUD,EAAStnB,GACxB,IAAIwnB,GAAkB,QAAO,IAAM3O,EAAW,IAAM5+E,EAAQqqF,GACxD/kT,KAAKu8S,YAAcv8S,KAAKs7S,YACxBt7S,KAAK89S,OAAOh6G,QAAQ28F,EAAM,CACtB74R,KAAM5H,KAAKmkM,UAAU8wC,OAAO3nB,OAC5Bz7G,SAAU7xG,KAAKmkM,UAAU8wC,OAAOpjI,SAChCizF,eAAgB9kM,KAAKmkM,UAAU8wC,OAAO7xC,OACtCvxD,MAAO,SAAUlvI,GACbolT,EAAQ3+S,MAAM4mB,SAAW,WACpB,QAAkBi4R,IAAoBA,aAA2B3wM,aAClE2wM,EAAgBrkP,UAAUjoD,IAAIm/R,GAElC+M,EAAUE,EAAQ78N,aAClB48N,GAAQ,QAAO,IAAMnO,EAAUoL,GAAQ75N,YAC3C,EACA65G,SAAU,SAAUpiM,GAChBA,EAAKS,QAAQgG,MAAMwjB,QAAU,QAC7B62O,EAAQykD,cAAcvlT,EAAMklT,EAASC,EACzC,EACAvuS,IAAK,SAAU5W,GACXA,EAAKS,QAAQgG,MAAMwjB,QAAU,UACxB,QAAkBq7R,IAAoBA,aAA2B3wM,aAClE2wM,EAAgBrkP,UAAUC,OAAOi3O,GAErC74S,EAAMkmT,aAAaJ,EAAStnB,EAAMx4Q,EACtC,IAIJjoB,KAAKmoT,aAAaJ,EAAStnB,EAAMx4Q,EAEzC,OAGS,QAAO,IAAMuxR,EAAYuL,GAC/B37S,MAAMwjB,QAAU,OACf5sB,KAAK+vE,OAAOmlK,sBAAsB,KAAgB,IAClDl1O,KAAKu7S,eAAgB,GAGzBv7S,KAAKq+S,eACLp2R,EAAK27C,UAAUjoD,IAAI,cAE3B,EACA0/R,EAAS35S,UAAUymT,aAAe,SAAUpD,EAAQz6B,EAAIriQ,GACpDqiQ,EAAGlhR,MAAMwjB,QAAU,QACnBm4R,EAAO37S,MAAMwjB,QAAU,QACvBm4R,EAAO37S,MAAM4mB,SAAW,GACxB+0R,EAAO37S,MAAMyX,OAAS,IACtB,QAAY,CAACoH,GAAOyxR,GACpB15S,KAAKooT,UAAUrD,GACX/kT,KAAKimT,eAAiBjmT,KAAKsqE,UAAYtqE,KAAKslE,gBAC5CtlE,KAAKkmT,WAAWnB,GAChB/kT,KAAKslE,eAAgB,GAErBtlE,KAAKsqE,UAAYtqE,KAAKqoT,aAAeroT,KAAKs7S,cAC1Ct7S,KAAKqoT,WAAaroT,KAAKsoT,eAAevD,EAAQ,MAC9C/kT,KAAKqoT,WAAW95F,aAAevuN,KAAKuuN,aACpCvuN,KAAKg7L,QAAQ,eAAgBh7L,KAAKqoT,YAE1C,EACAhN,EAAS35S,UAAU0mT,UAAY,SAAU3D,GACrCA,EAAMhgT,aAAa,gBAAiB,SACpC,QAAY,CAACggT,GAAQ/J,GACrB,IAAIhjR,EAAK+sR,EAAM7lT,aAAa,aACvB,QAAM84B,KAA2C,IAApC13B,KAAKo+S,cAAc72S,QAAQmwB,IACzC13B,KAAKo+S,cAAcl8S,KAAKw1B,EAEhC,EACA2jR,EAAS35S,UAAU+lT,aAAe,SAAU1C,EAAQ98R,EAAMxkB,GACtD,IAOI8kT,EAPAtmT,EAAQjC,KACRioB,EAAK27C,UAAU5+D,SAAS00S,MAIxB,QAAS,CAACzxR,GAAOyxR,GAGjB15S,KAAKsqE,UACLi+O,EAAUvoT,KAAKsoT,eAAevD,EAAQthT,GACtCzD,KAAKuuN,aAAeg6F,EAAQh6F,aAC5BvuN,KAAKg7L,QAAQ,iBAAkButH,GAAS,SAAUx9C,GAC1CA,EAAa/3J,QACb,QAAY,CAAC/qF,GAAOyxR,GAGpBz3S,EAAMumT,mBAAmBzD,EAAQ98R,EAAM8iP,EAE/C,KAGA/qQ,KAAKwoT,mBAAmBzD,EAAQ98R,EAAMsgS,GAE9C,EACAlN,EAAS35S,UAAU8mT,mBAAqB,SAAUzD,EAAQ98R,EAAMsgS,GAC5D,IAAItmT,EAAQjC,MACZ,QAAY,CAACioB,GAAOmxR,IACpB,QAAS,CAACnxR,GAAOoxR,GACjB,IAAI3pN,EAAQ,EACRn2E,EAAM,EACNyuM,EAAQhoN,KACRsqR,GAAK,QAAO,IAAMkvB,EAAYuL,GAC9BN,EAAQM,EACR7tS,GAAgB,QAAO,IAAMoiS,EAAW,IAAM5+E,EAAQqqF,GACtD/kT,KAAKu8S,UACLv8S,KAAK89S,OAAOh6G,QAAQwmF,EAAI,CACpB1iR,KAAM5H,KAAKmkM,UAAUskH,SAASn7F,OAC9Bz7G,SAAU7xG,KAAKmkM,UAAUskH,SAAS52M,SAClCizF,eAAgB9kM,KAAKmkM,UAAUskH,SAASrlH,OACxCvxD,MAAO,SAAUlvI,GACb8hT,EAAMr7S,MAAM4mB,SAAW,WAClB,QAAkB9Y,IAAkBA,aAAyBogG,aAC9DpgG,EAAc0sD,UAAUjoD,IAAIm/R,GAEhCprN,GAAQ,QAAO,IAAMiqN,EAAUoL,GAAQ75N,aACvC3xE,EAAMkrS,EAAMv5N,YAChB,EACA65G,SAAU,SAAUpiM,GAChBqlN,EAAMkgG,cAAcvlT,EAAM+sF,EAAOn2E,EACrC,EACAA,IAAK,SAAU5W,GACXA,EAAKS,QAAQgG,MAAMwjB,QAAU,SACxB,QAAkB1V,IAAkBA,aAAyBogG,aAC9DpgG,EAAc0sD,UAAUC,OAAOi3O,GAEnC74S,EAAMymT,cAAcjE,EAAOn6B,EAAIriQ,EAAMsgS,EACzC,IAIJvoT,KAAK0oT,cAAcjE,EAAOn6B,EAAIriQ,EAAMsgS,EAE5C,EACAlN,EAAS35S,UAAUgnT,cAAgB,SAAUjE,EAAOn6B,EAAIriQ,EAAMsgS,GAC1Dj+B,EAAGlhR,MAAMwjB,QAAU,OACnB63R,EAAMr7S,MAAM4mB,SAAW,GACvBy0R,EAAMr7S,MAAMyX,OAAS,IACrB,QAAY,CAACoH,GAAOyxR,GACpB15S,KAAK2oT,aAAalE,GACdzkT,KAAKsqE,YACLi+O,EAAUvoT,KAAKsoT,eAAe7D,EAAO,OAC7Bl2F,aAAevuN,KAAKuuN,aAC5BvuN,KAAKg7L,QAAQ,gBAAiButH,GAEtC,EACAlN,EAAS35S,UAAUinT,aAAe,SAAUlE,EAAOmE,GAC3CA,EACAnE,EAAM9lS,gBAAgB,iBAGtB3e,KAAKojT,kBAAkBqB,GAE3B,IAAI37S,EAAQ9I,KAAKo+S,cAAc72S,QAAQk9S,EAAM7lT,aAAa,aACtDkK,GAAS,GACT9I,KAAKo+S,cAAc1wS,OAAO5E,EAAO,EAEzC,EACAuyS,EAAS35S,UAAU0hT,kBAAoB,SAAUqB,GAC7CA,EAAMhgT,aAAa,gBAAiB,UACpC,QAAS,CAACggT,GAAQ/J,EACtB,EACAW,EAAS35S,UAAUsmT,UAAY,SAAUjD,EAAQz6B,GAC7CA,EAAGlhR,MAAMwjB,QAAU,QACnB09P,EAAGlhR,MAAMyoB,WAAa,SACtBkzR,EAAO37S,MAAMyX,OAASkkS,EAAO75N,aAAe,KAC5Co/L,EAAGlhR,MAAMwjB,QAAU,OACnB09P,EAAGlhR,MAAMyoB,WAAa,EAC1B,EACAwpR,EAAS35S,UAAUwmT,cAAgB,SAAUvlT,EAAM+sF,EAAOn2E,GACtD,IACIsvS,GAAiBtvS,EAAMm2E,KADV/sF,EAAKkvG,SAAWlvG,EAAK6hM,WAAa7hM,EAAKkvG,UACRniB,EAChD/sF,EAAKS,QAAQqS,cAAcrM,MAAMyX,OAASgoS,EAAgB,IAC9D,EACAxN,EAAS35S,UAAU8+S,iBAAmB,SAAUsI,EAAUC,EAAa/mT,EAAUknE,GAC7E,IAMIu4O,EANAx/S,EAAQjC,KACRgpT,GAAQ,QAAO,OAASvgG,EAAMqgG,GAClC,KAAI,QAAME,GAMV,GAHAhpT,KAAKmzP,YAAY61D,GAGbhpT,KAAK+vE,OAAOmlK,sBAAsB,IAAa,CAC/C,IAAI0B,EAAQ52O,KAAKipT,QAAQH,EAAU,IAAMtP,GAAYh2S,OACjD0lT,EAAWlpT,KAAKmpT,eAAenpT,KAAK+vE,OAAQ6mK,EAAO,GACvD,IAAI,QAAMsyE,KAAa,QAAMA,EAASh0E,YAGlC,OAFA,QAAO8zE,QACPhpT,KAAK2oT,aAAaG,GAAU,GAGhC9oT,KAAK+9S,SAAS77S,KAAK,SACflC,KAAK+vE,OAAOmlK,sBAAsB,KAAel1O,KAAKy7F,WACtDz7F,KAAK+9S,SAASxnS,MACdkrS,EAAazhT,KAAKmgT,cAAcngT,KAAKu/S,SAAUuJ,EAASlqT,aAAa,aACrEoB,KAAKopT,UAAU3H,EAAYyH,EAAUF,EAAOF,EAAUC,EAAa/mT,EAAUknE,IAG7EggP,EAASh0E,WAAWqP,aAAavkP,KAAKoiP,SAAS8mE,EAAUJ,EAASlqT,aAAa,cAAcghD,MAAK,SAAUn8C,GACxGxB,EAAM87S,SAASxnS,MACfkrS,EAAah+S,EAAEzF,OACQ,IAAnBiE,EAAM60L,WACN70L,EAAM60L,SAAW,GAErB70L,EAAMmnT,UAAU3H,EAAYyH,EAAUF,EAAOF,EAAUC,EAAa/mT,EAAUknE,EAClF,IAAGotE,OAAM,SAAU7yI,GACfxB,EAAM+4L,QAAQ,gBAAiB,CAAEtzH,MAAOjkE,GAC5C,GAER,KACK,CAGD,GAFAg+S,EAAazhT,KAAKmgT,cAAcngT,KAAKu/S,SAAUuJ,EAASlqT,aAAa,aACrEoB,KAAKokT,gBAAkBpkT,KAAKqgT,cAAcoB,IACtC,QAAMA,IAAqC,IAAtBA,EAAWj+S,OAGhC,OAFA,QAAOwlT,QACPhpT,KAAK2oT,aAAaG,GAAU,GAI5B9oT,KAAK09S,eAAejgM,eAAem5H,MAAQz2N,WAAW2oS,EAASlqT,aAAa,eAAiB,EAC7FkqT,EAASplT,YAAY,KAASgiO,WAAW1lO,KAAKuE,cAAevE,KAAKokT,gBAAiBpkT,KAAK09S,iBACxF19S,KAAK4nT,WAAWkB,EAAUE,EAAO9/O,GACjClpE,KAAKqpT,0BAA0B5H,GAC/BzhT,KAAKspT,gBAAgBR,GACrB9oT,KAAKygT,aAAaqI,GAClB9oT,KAAKupT,iBAAiB9H,GACtBzhT,KAAKwpT,eAAeV,EAAUC,EAAa7/O,EAEnD,CACJ,EACAmyO,EAAS35S,UAAU0nT,UAAY,SAAU3H,EAAYzhI,EAAQgpI,EAAOF,EAAUC,EAAa/mT,EAAUknE,GAEjG,GADAlpE,KAAKokT,gBAAkB3C,GACnB,QAAMA,IAAqC,IAAtBA,EAAWj+S,QAChC,QAAOwlT,GACPhpT,KAAK2oT,aAAaG,GAAU,OAE3B,CAED,GADA9oT,KAAK69S,eAAe79H,GAChBhgL,KAAK+vE,OAAOmlK,sBAAsB,MAAgBl1O,KAAKy7F,UAAW,CAClE,IAAI/jE,EAAKoxR,EAASlqT,aAAa,YAC3BikT,EAAW7iT,KAAKypT,cAAc/xR,IAClC,QAAS,QAAS+pR,EAAYoB,EAClC,CACA7iT,KAAK09S,eAAejgM,eAAem5H,MAAQz2N,WAAW2oS,EAASlqT,aAAa,eAAiB,EAC7FkqT,EAASplT,YAAY,KAASgiO,WAAW1lO,KAAKuE,cAAek9S,EAAYzhT,KAAK09S,iBAC9E19S,KAAK4nT,WAAWkB,EAAUE,EAAO9/O,GACjClpE,KAAKqpT,0BAA0B5H,GAC/BzhT,KAAKspT,gBAAgBR,GACrB9oT,KAAKygT,aAAaqI,GAClB9oT,KAAKupT,iBAAiB9H,GACtBzhT,KAAKwpT,eAAeV,EAAUC,EAAa7/O,EAC/C,CACIlnE,GACAA,IAEyB,IAAzBhC,KAAK+9S,SAASv6S,QAAiBxD,KAAKsqE,UACpCtqE,KAAK2/S,UAEb,EACAtE,EAAS35S,UAAU6nT,iBAAmB,SAAU9H,GAE5C,IADA,IAAI10S,EAAI,EACDA,EAAI00S,EAAWj+S,QAAQ,CAC1B,IAAIk0B,EAAK+pR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAM+pR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,UAC3Dh2B,IAArBuB,KAAKy7S,cAA+D,IAAlCz7S,KAAKy7S,YAAYl0S,QAAQmwB,IAC3D13B,KAAK0pT,gBAAgB,CAAChyR,IAE1B3qB,GACJ,CACJ,EAIAsuS,EAAS35S,UAAU2nT,0BAA4B,SAAUzlG,GACrD,IAAI72M,EACJ,IAAKA,EAAI,EAAGA,EAAI62M,EAAMpgN,OAAQuJ,IAAK,CAC/B,IAAI2qB,EAAKksL,EAAM72M,GAAG/M,KAAK+vE,OAAOr4C,IAAMksL,EAAM72M,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,UAC/Ch2B,IAAvBuB,KAAKk+S,gBAAmE,IAApCl+S,KAAKk+S,cAAc32S,QAAQmwB,IAC/D13B,KAAK+mT,mBAEb,CACJ,EACA1L,EAAS35S,UAAU4nT,gBAAkB,SAAUlmT,GACvCpD,KAAKqzR,eACLrzR,KAAKs7L,IAAOt7L,KAAmB,eAAIA,KAAKw7S,eAAej0S,QAAQnE,EAAQxE,aAAa,aAAe,KAC/FoB,KAAK4gT,YACL5gT,KAAK0jT,sBAAsBtgT,GAC3BpD,KAAKyjT,uBAAuBrgT,KAGpCpD,KAAKokT,gBAAkB,IAC3B,EACA/I,EAAS35S,UAAUsgS,UAAY,SAAUhiH,EAAQ2pI,EAAWC,GACxD,OAAID,IAAcC,EACP5pI,EAGAhgL,KAAKgiS,UAAUhiS,KAAK6pT,eAAe7pI,GAAS2pI,EAAWC,EAAY,EAElF,EACAvO,EAAS35S,UAAUynT,eAAiB,SAAUnpI,EAAQ2pI,EAAWC,GAE7D,OAAID,IAAcC,EACP5pT,KAAK6pT,eAAe7pI,GAGpBhgL,KAAKmpT,eAAenpT,KAAK6pT,eAAe7pI,GAAS2pI,EAAWC,EAAY,EAEvF,EACAvO,EAAS35S,UAAUmoT,eAAiB,SAAU7pI,GAC1C,MAAgC,iBAAjBA,EAAO9gK,QAAsB,QAAM8gK,EAAO9gK,OAAU8gK,EAASA,EAAO9gK,KACvF,EACAm8R,EAAS35S,UAAUy+S,cAAgB,SAAUpsM,EAAK8zL,EAAUiiB,GACxD,IAEIhlT,EAFA7C,EAAQjC,KAGZ,QAFe,IAAX8pT,IAAqBA,GAAS,IAE9B,QAAM/1M,GACN,OAAOjvG,EAEN,GAAsB,IAAlB9E,KAAK82L,SACV,OAAO92L,KAAK+pT,cAAc/pT,KAAKggT,YAAanY,EAAUiiB,GAGtD,GAAiC,iBAAtB9pT,KAAK+vE,OAAO7wD,MAAoB,CACvC,IAAIpW,EAAQirG,EAAI4J,WAAU,SAAU3iF,GAAQ,OAAOA,EAAK/4B,EAAM8tE,OAAOr4C,KAAOsD,EAAK/4B,EAAM8tE,OAAOr4C,IAAIjD,aAAeozQ,CAAU,IAC3H,IAAe,IAAX/+R,EACA,OAAO,QAAS9I,KAAK+vE,OAAO7wD,MAAO60F,EAAIjrG,IAE3C,IAAe,IAAXA,EACA,IAAK,IAAIiE,EAAI,EAAGi9S,EAASj2M,EAAIvwG,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAClD,IAAI2qS,GAAY,QAAS13S,KAAK+vE,OAAO7wD,MAAO60F,EAAIhnG,IAC5C+T,GAAc,QAAM42R,IAAwI,EAA3HA,EAAU/5L,WAAU,SAAU3iF,GAAQ,OAAOA,EAAK/4B,EAAM8tE,OAAOr4C,KAAOsD,EAAK/4B,EAAM8tE,OAAOr4C,IAAIjD,aAAeozQ,CAAU,IAC1J,IAAoB,IAAhB/mR,EACA,OAAO,QAAS9gB,KAAK+vE,OAAO7wD,MAAOw4R,EAAU52R,IAE5C,KAAK,QAAM42R,SAEOj5S,KADnBqG,EAAa9E,KAAKmgT,cAAczI,EAAW7P,IAEvC,KAGZ,CAER,CAEJ,OAAO/iS,CACX,EACAu2S,EAAS35S,UAAUqoT,cAAgB,SAAU/uR,EAAM6sQ,EAAUiiB,GACzD,IAAIhlT,EACJ,IAAI,QAAMk2B,GACN,OAAOl2B,EAEX,IAAK,IAAIiI,EAAI,EAAGi9S,EAAShvR,EAAKx3B,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CACnD,IAAK,QAAMiuB,EAAKjuB,GAAG,MAAQ,SAAM,QAAS/M,KAAK+vE,OAAO+vO,SAAU9kR,EAAKjuB,GAAG,KAKnE,OAAI+8S,EACE9uR,EAAKjuB,GAGL,GARP,IAAI,QAAS/M,KAAK+vE,OAAO+vO,SAAU9kR,EAAKjuB,GAAG,IAAI0nB,aAAeozQ,EAC1D,OAAO7sQ,EAAKjuB,EASxB,CACA,OAAOjI,CACX,EACAu2S,EAAS35S,UAAU8nT,eAAiB,SAAUpmT,EAAS2lT,EAAa7/O,GAChE,GAAI6/O,EAEA,IADA,IAAIkB,GAAS,QAAU,IAAM5Q,EAAYj2S,GAChC2J,EAAI,EAAGunG,EAAM21M,EAAOzmT,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAIkb,EAAOgiS,EAAOl9S,GAClB,GAAI3J,EAAQ6B,cAAc,cAAgBglT,EAAOl9S,GAAI,CACjD,IAAIm9S,GAAQ,QAAQjiS,EAAM,IAAMqxR,GAChCt5S,KAAKqoT,WAAaroT,KAAKsoT,eAAe4B,EAAO,OAC9B,IAAXhhP,GACAlpE,KAAKg7L,QAAQ,gBAAiBh7L,KAAKqoT,YAEvCroT,KAAKwgT,iBAAiB0J,EAAOnB,EAAa,KAAM7/O,EACpD,CACJ,CAER,EACAmyO,EAAS35S,UAAUgmT,aAAe,SAAUz7E,EAAIxoO,EAAGgkD,GAC1CwkL,EAAGroK,UAAU5+D,SAAS,eACnBhF,KAAKwiT,sBAAyB/+S,GAAKA,EAAEgQ,SAAYg0C,IAAgBznD,KAAK8wE,SAASm7J,GAC/EjsO,KAAKmqT,aAAal+E,EAAIxoO,GAGtBzD,KAAKkjT,WAAWj3E,EAAIxoO,EAAGgkD,GAGnC,EACA4zP,EAAS35S,UAAUovE,SAAW,SAAUm7J,GACpC,QAAOA,EAAGroK,UAAU5+D,SAAS01N,EACjC,EACA2gF,EAAS35S,UAAUwhT,WAAa,SAAUj3E,EAAIxoO,EAAGgkD,GAC7C,IAKI0uD,EALAl0G,EAAQjC,MACR,QAAMisO,KAASjsO,KAAKwiT,qBAAuBxiT,KAAK8wE,SAASm7J,MAAQ,QAAMxoO,GACvEzD,KAAKqnT,gBAAgBp7E,GAIrBjsO,KAAKsqE,UACL6rC,EAAYn2G,KAAKoqT,eAAen+E,EAAI,SAAUxoO,GAC9CzD,KAAKg7L,QAAQ,gBAAiB7kF,GAAW,SAAU40J,GACzCA,EAAa/3J,QAAY+3J,EAAajkJ,KAAKljD,UAAU5+D,SAAS+1S,IAChE94S,EAAMooT,iBAAiBp+E,EAAIxoO,EAAGsnQ,EAActjN,EAEpD,KAGAznD,KAAKqqT,iBAAiBp+E,EAAIxoO,EAAG0yG,EAAW1uD,EAEhD,EACA4zP,EAAS35S,UAAU2oT,iBAAmB,SAAUp+E,EAAIxoO,EAAG0yG,EAAW1uD,GAI9D,GAHKznD,KAAKwiT,sBAAyB/6P,GAAiBhkD,KAAMA,GAAMA,EAAEgQ,WAC9DzT,KAAKsqT,kBAELtqT,KAAKwiT,qBAAuB/+S,GAAKA,EAAEkQ,SAAU,CACxC3T,KAAKuqT,YACNvqT,KAAKuqT,UAAYt+E,GAErB,IAAIrsJ,EAAa5/E,KAAKsmT,OAAO/+S,QAAQvH,KAAKuqT,WACtCrrO,EAAWl/E,KAAKsmT,OAAO/+S,QAAQ0kO,GACnC,GAAIrsJ,EAAaV,EAAU,CACvB,IAAIkpG,EAAOxoG,EACXA,EAAaV,EACbA,EAAWkpG,CACf,CACA,IAAK,IAAIr7K,EAAI6yE,EAAY7yE,GAAKmyE,EAAUnyE,IAAK,CACzC,IAAIy9S,EAAWxqT,KAAKsmT,OAAOv5S,IACvB,QAAUy9S,KAAcA,EAAS5mP,UAAU5+D,SAAS,cACpDhF,KAAKyqT,UAAUD,EAEvB,CACJ,MAEIxqT,KAAKuqT,UAAYt+E,EACjBjsO,KAAKyqT,UAAUx+E,GAEfjsO,KAAKsqE,WACL6rC,EAAU0sM,SAAW7iT,KAAKglT,YAAY/4E,GACtCjsO,KAAKg7L,QAAQ,eAAgB7kF,GAC7Bn2G,KAAKi8S,cAAe,GAExBj8S,KAAKi8S,cAAe,CACxB,EACAZ,EAAS35S,UAAUyoT,aAAe,SAAUl+E,EAAIxoO,GAC5C,IACI0yG,EADAl0G,EAAQjC,KAERA,KAAKsqE,UACL6rC,EAAYn2G,KAAKoqT,eAAen+E,EAAI,YAAaxoO,GACjDzD,KAAKg7L,QAAQ,gBAAiB7kF,GAAW,SAAU40J,GAC1CA,EAAa/3J,QACd/wG,EAAMyoT,mBAAmBz+E,EAAI8+B,EAErC,KAGA/qQ,KAAK0qT,mBAAmBz+E,EAAI91H,EAEpC,EACAklM,EAAS35S,UAAUgpT,mBAAqB,SAAUz+E,EAAI91H,GAClDn2G,KAAK2qT,aAAa1+E,GAClBjsO,KAAKqnT,gBAAgBp7E,GACjBjsO,KAAKsqE,WACL6rC,EAAU0sM,SAAW7iT,KAAKglT,YAAY/4E,GACtCjsO,KAAKg7L,QAAQ,eAAgB7kF,GAErC,EACAklM,EAAS35S,UAAU2lT,gBAAkB,SAAUp7E,GAC3C,KAAK,QAAMA,GAAK,CACZ,IAAI2+E,EAAc5qT,KAAK6qT,iBACnBD,KACA,QAAY,CAACA,GAAc3lF,GAC3B2lF,EAAYnmT,aAAa,WAAY,QAEzC,QAAS,CAACwnO,GAAKhH,GACfgH,EAAGxnO,aAAa,WAAY,KAC5B,KAAakX,IAAIswN,EAAI,OAAQjsO,KAAKwgO,SAAUxgO,MAC5CA,KAAKgmT,aAAa4E,EAAa3+E,EACnC,CACJ,EACAovE,EAAS35S,UAAU+oT,UAAY,SAAUhG,GACrCA,EAAMhgT,aAAa,gBAAiB,SACpC,QAAS,CAACggT,GAAQ/pF,GAClB,IAAIhjM,EAAK+sR,EAAM7lT,aAAa,aACvB,QAAM84B,KAA2C,IAApC13B,KAAKk+S,cAAc32S,QAAQmwB,IACzC13B,KAAKk+S,cAAch8S,KAAKw1B,EAEhC,EACA2jR,EAAS35S,UAAUipT,aAAe,SAAUlG,GACpCzkT,KAAKwiT,oBACLiC,EAAMhgT,aAAa,gBAAiB,SAGpCggT,EAAM9lS,gBAAgB,kBAE1B,QAAY,CAAC8lS,GAAQ/pF,GACrB,IAAI5xN,EAAQ9I,KAAKk+S,cAAc32S,QAAQk9S,EAAM7lT,aAAa,aACtDkK,GAAS,GACT9I,KAAKk+S,cAAcxwS,OAAO5E,EAAO,EAEzC,EACAuyS,EAAS35S,UAAU4oT,gBAAkB,WAEjC,IADA,IAAIl0D,EAAap2P,KAAKoD,QAAQkzF,iBAAiB,IAAMokI,GAC5Ct1N,EAAK,EAAG0lT,EAAe10D,EAAYhxP,EAAK0lT,EAAatnT,OAAQ4B,IAAM,CACxE,IAAIk2L,EAAMwvH,EAAa1lT,GACnBpF,KAAKwiT,oBACLlnH,EAAI72L,aAAa,gBAAiB,SAGlC62L,EAAI38K,gBAAgB,gBAE5B,EACA,QAAYy3O,EAAY17B,GACxB16N,KAAKk+L,cAAc,CAAEggH,cAAe,KAAM,EAC9C,EACA7C,EAAS35S,UAAU0oT,eAAiB,SAAUrF,EAAQr8G,EAAQjlM,GAC1D,IAAIo/S,EAAW7iT,KAAKglT,YAAYD,GAChC,MAAO,CAAEr8G,OAAQA,EAAQ11F,QAAQ,EAAOu7G,eAAc,QAAM9qN,GAAmBqjH,KAAMi+L,EAAQlC,SAAUA,EAC3G,EACAxH,EAAS35S,UAAU88S,gBAAkB,WACjCx+S,KAAK+qT,aAAkC,SAAlB/qT,KAAKgrT,SAAwB,KAAQ/xH,SAAW,QAAU,WAAcj5L,KAAKgrT,QACtG,EACA3P,EAAS35S,UAAUupT,cAAgB,SAAUxnT,GACzC,IAAI2J,EAAS3J,EAAEg6J,cAAcrwJ,QACxBA,GAAUA,EAAOw2D,UAAU5+D,SAAS40S,IAAUxsS,EAAOw2D,UAAU5+D,SAASojN,IACzEh7M,EAAOw2D,UAAU5+D,SAASw0S,IAAepsS,EAAOw2D,UAAU5+D,SAASs0S,IACnElsS,EAAOw2D,UAAU5+D,SAASyjN,IAASzoN,KAAKqzR,eAAgB,QAAQjmR,EAAQ,IAAMwtS,IAI9E56S,KAAKkrT,sBAAqB,QAAQ99S,EAAQ,IAAMksS,GAAW71S,EAEnE,EACA43S,EAAS35S,UAAUwpT,qBAAuB,SAAUnG,EAAQthT,GACxD,IAAIwkB,GAAO,QAAO,OAASwgM,EAAMs8F,GACjC,GAAK98R,IAAQA,EAAK27C,UAAU5+D,SAAS00S,GAArC,CAII,IAAI91O,EAAY37C,EAAK27C,UACjBA,EAAU5+D,SAASq0S,GACnBr5S,KAAK2mT,aAAa5B,EAAQ98R,EAAMxkB,GAE3BmgE,EAAU5+D,SAASo0S,IACxBp5S,KAAKynT,aAAa1C,EAAQ98R,EAAMxkB,EAExC,CACJ,EACA43S,EAAS35S,UAAUilT,aAAe,SAAU5B,EAAQ98R,EAAMxkB,EAAGslT,EAAa/mT,GACtE,IAAIC,EAAQjC,KACRioB,EAAK27C,UAAU5+D,SAAS00S,MAIxB,QAAS,CAACzxR,GAAOyxR,GAEjB15S,KAAKsqE,WAAatqE,KAAKs7S,aACvBt7S,KAAKqoT,WAAaroT,KAAKsoT,eAAevD,EAAQthT,GAC9CzD,KAAKuuN,aAAevuN,KAAKqoT,WAAW95F,aACpCvuN,KAAKg7L,QAAQ,gBAAiBh7L,KAAKqoT,YAAY,SAAUt9C,GACjDA,EAAa/3J,QACb,QAAY,CAAC/qF,GAAOyxR,GAGpBz3S,EAAMkpT,iBAAiBpG,EAAQ98R,EAAM8gS,EAAa/mT,EAE1D,KAGAhC,KAAKmrT,iBAAiBpG,EAAQ98R,EAAM8gS,EAAa/mT,GAEzD,EACAq5S,EAAS35S,UAAUypT,iBAAmB,SAAUpG,EAAQ98R,EAAM8gS,EAAa/mT,GACvE,IAAIsoR,GAAK,QAAO,IAAMkvB,EAAYuL,GAClC,GAAIz6B,GAAsB,OAAhBA,EAAG/iE,SACTvnN,KAAK4nT,WAAW7C,EAAQ98R,OAEvB,CACDjoB,KAAKslE,eAAgB,EACrBtlE,KAAKwgT,iBAAiBuE,EAAQgE,EAAa/mT,GAE3C,IADA,IAAIopT,GAAS,QAAU,IAAM9R,EAAUyL,GAC9Bh4S,EAAI,EAAGA,EAAIq+S,EAAO5nT,OAAQuJ,IAAK,CACpC,IAAI2qB,EAAK13B,KAAK+1B,MAAMq1R,EAAOr+S,IAC3B,IAAyC,IAArC/M,KAAK47S,eAAer0S,QAAQmwB,SAAsCj5B,IAAxBuB,KAAK47S,eAA8B,CAC7E,IAAIyP,GAAS,QAAO,IAAMhS,GAAY,QAAO,IAAMM,EAAUyR,EAAOr+S,MAC/D,QAAMs+S,IACPrrT,KAAK2mT,aAAayE,EAAOr+S,GAAIs+S,EAAQ,MAEzCrrT,KAAK47S,eAAeluS,OAAO1N,KAAK47S,eAAer0S,QAAQmwB,GAAK,EAChE,CACJ,CACJ,CACJ,EACA2jR,EAAS35S,UAAUugQ,iBAAmB,SAAUx+P,GAC5C,IAAIxB,EAAQjC,KACRoN,EAAS3J,EAAE2J,OACXw9S,EAAc5qT,KAAK6qT,iBACvB,GAAIz9S,GAAUA,EAAOw2D,UAAU5+D,SAAS40S,GAAxC,CACI,IAAI0R,EAASl+S,EACI,UAAb3J,EAAEilM,OACF4iH,EAAO7rF,OAEW,WAAbh8N,EAAEilM,SACP4iH,EAAO7hT,MAAQzJ,KAAKurT,QACpBD,EAAO7rF,OAGf,KAVA,CAWAh8N,EAAEkW,iBACF,IAAIw8F,EAAY,CACZnD,QAAQ,EACRz/F,MAAO9P,EACPqjH,KAAM8jM,GAEV5qT,KAAKg7L,QAAQ,WAAY7kF,GAAW,SAAU40J,GAC1C,IAAKA,EAAa/3J,OACd,OAAQvvG,EAAEilM,QACN,IAAK,QACGzmM,EAAMoxR,aACNpxR,EAAM0/G,UAAUl+G,GAGhBxB,EAAMylT,aAAakD,EAAannT,GAEpC,MACJ,IAAK,YACDxB,EAAMupT,UAASvpT,EAAMiqM,UAA0BzoM,GAC/C,MACJ,IAAK,WACDxB,EAAMupT,WAASvpT,EAAMiqM,UAA0BzoM,GAC/C,MACJ,IAAK,YACDxB,EAAMwpT,gBAAe,EAAMhoT,GAC3B,MACJ,IAAK,WACL,IAAK,WACL,IAAK,SACDxB,EAAMypT,cAAa,GACnB,MACJ,IAAK,UACDzpT,EAAMwpT,gBAAe,EAAOhoT,GAC5B,MACJ,IAAK,SACL,IAAK,SACL,IAAK,OACDxB,EAAMypT,cAAa,GACnB,MACJ,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,SACDzpT,EAAM0pT,kBAAiB,GACvB,MACJ,IAAK,MACL,IAAK,WACL,IAAK,UACL,IAAK,QACD1pT,EAAM0pT,kBAAiB,GACvB,MACJ,IAAK,QACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,aACL,IAAK,YACD1pT,EAAMylT,aAAakD,EAAannT,GAChC,MACJ,IAAK,KACGxB,EAAMy8S,eAAiBkM,EAAYhnP,UAAU5+D,SAAS,cACtD/C,EAAM2pT,cAAchB,EAAannT,GAErC,MACJ,IAAK,QACD,GAAIxB,EAAMugT,oBAAqB,CAC3B,IAAIS,GAAS,QAAU,IAAM3J,EAAW,SAAW5+E,EAAS,IAAKz4N,EAAMmB,SACvEnB,EAAMilT,iBAAiBjE,EAC3B,EAIhB,GAzEA,CA0EJ,EACA5H,EAAS35S,UAAUmqT,gBAAkB,SAAUhqR,GAC3C,IAAIiqR,EAAY9rT,KAAK6qT,iBAAiB5lT,cAAc,IAAM00S,GACtDt4J,EAAMyqK,EAAUlsS,wBAChBgvD,EAAS5uE,KAAK81M,gBAAgB91M,KAAKoD,SACvC,KAAK,QAAMwrE,GAAS,CAChB,IAAIm9O,EAAYn9O,EAAOhvD,wBACnByhI,EAAI7mI,OAASuxS,EAAUvxS,OACvBo0D,EAAOyc,WAAag2D,EAAI7mI,OAASuxS,EAAUvxS,OAEtC6mI,EAAI/mI,IAAMyxS,EAAUzxS,MACzBs0D,EAAOyc,WAAa0gO,EAAUzxS,IAAM+mI,EAAI/mI,IAEhD,CACgBta,KAAKgsT,oBAAoBF,IAErCA,EAAUl2G,eAAe/zK,EAEjC,EACAw5Q,EAAS35S,UAAUsqT,oBAAsB,SAAUC,GAC/C,IAAI5qK,EAAM4qK,EAAQrsS,wBAClB,OAAQyhI,EAAI/mI,KAAO,GAAK+mI,EAAIzpI,MAAQ,GAAKypI,EAAI7mI,SAAWlb,OAAOy6C,aAAer7C,SAASC,gBAAgB6hB,eACnG6gI,EAAIrpI,QAAU1Y,OAAOw6C,YAAcp7C,SAASC,gBAAgB4rD,YACpE,EACA8wP,EAAS35S,UAAUo0M,gBAAkB,SAAUhvF,GAC3C,OAAI,QAAMA,GACC,KAEHA,EAAKjyC,aAAeiyC,EAAKtmG,aAAgBsmG,EAAO9mH,KAAK81M,gBAAgBhvF,EAAKrxG,cACtF,EACA4lS,EAAS35S,UAAU+pT,eAAiB,SAAUS,EAAWzoT,GACrD,GAAIzD,KAAKwiT,oBAAqB,CAC1B,IAAIoI,EAAc5qT,KAAK6qT,iBACnBsB,EAAWD,EAAYlsT,KAAKosT,YAAYxB,GAAe5qT,KAAKqsT,YAAYzB,GAC5E5qT,KAAK8sO,cACL9sO,KAAKqnT,gBAAgB8E,GACrBnsT,KAAK0nT,aAAayE,EAAU1oT,GAAG,GAC/BzD,KAAK6rT,iBAAiBK,EAC1B,MAEIlsT,KAAK0rT,aAAaQ,EAE1B,EACA7Q,EAAS35S,UAAUigH,UAAY,SAAUl+G,GACrC,IAAImnT,EAAc5qT,KAAK6qT,iBACnByB,GAAY,QAAO,IAAM1R,EAAcgQ,GACvC5gS,GAAY,QAAO,KAAO6wR,EAAeyR,GAAW1oP,UAAU5+D,SAAS4/M,GACtEgmG,EAAYhnP,UAAU5+D,SAAS,cACwC,GAApE4lT,EAAYrkH,uBAAuB,uBAAuB/iM,QAC1DxD,KAAK8kT,kBAAkBwH,EAAWtiS,EAAW4gS,EAAannT,EAGtE,EACA43S,EAAS35S,UAAUojT,kBAAoB,SAAUwH,EAAW39E,EAAS1C,EAAIxoO,GACrE,IAAIxB,EAAQjC,KACR+kT,GAAS,QAAQuH,EAAW,IAAMhT,GACtCt5S,KAAKo8S,iBAAmB,GACxB,IAAIwJ,EAAaj3E,EAAmB,QAAT,QACtB,QAAMi3E,IACP0G,EAAU7nT,aAAa,eAAgBmhT,GAE3C,IAAIzvM,EAAYn2G,KAAK2lT,cAAcZ,EAAQp2E,EAAU,UAAY,QAASlrO,GAC1EzD,KAAKg7L,QAAQ,eAAgB7kF,GAAW,SAAU40J,GACzCA,EAAa/3J,QACd/wG,EAAMsqT,mBAAmBD,EAAW39E,EAAS1C,EAAI8+B,EAActnQ,EAEvE,GACJ,EACA43S,EAAS35S,UAAU6qT,mBAAqB,SAAUD,EAAW39E,EAAS1C,EAAI91H,EAAW1yG,GACjF,IAAkE,IAA9DzD,KAAKw7S,eAAej0S,QAAQ0kO,EAAGrtO,aAAa,eAC5CoB,KAAKw7S,eAAet5S,KAAK+pO,EAAGrtO,aAAa,aACrCoB,KAAK4gT,WAAW,CAChB,IAAI1hS,EAAQlf,KAAKmgT,cAAcngT,KAAKu/S,SAAUtzE,EAAGrtO,aAAa,aACnD,OAAVsgB,EAAkBlf,KAAKwsT,aAAattS,EAAOlf,KAAKw7S,eAAgB,KAAM,MAAM,GAASt8R,EAAQ,IAClG,CAGJ,GADAlf,KAAK2lN,YAAY2mG,EAAW39E,EAAU,UAAY,QAASlrO,GAAG,GAC1DzD,KAAK4gT,UAAW,CAChB5gT,KAAK0jT,sBAAsBz3E,GAC3BjsO,KAAKyjT,wBAAuB,SAAQ,QAAQx3E,EAAI,IAAMutE,GAAa,IAAMF,IACzE,IAAIiL,OAAU,EACW,UAArBpuM,EAAUuyF,OACV67G,GAAU,EAEgB,YAArBpuM,EAAUuyF,SACf67G,GAAU,GAEdvkT,KAAK8lT,kBAAkB75E,EAAIs4E,EAC/B,CACAvkT,KAAK2nT,iBAAiB2E,EAAW39E,EAASlrO,EAC9C,EAIA43S,EAAS35S,UAAUokT,kBAAoB,SAAU75E,EAAIs4E,GACjD,IAAIR,GAAe,QAAO,IAAMvK,EAAYvtE,GACxCwgF,EAAcxgF,EAAGrtO,aAAa,YAC9BohL,EAAShgL,KAAK+vE,OAClB,GAAsB,IAAlB/vE,KAAK82L,UAAkB92L,KAAK4gT,UAE5B,IADA,IAAIE,EAAa,IAAI,IAAY9gT,KAAKu/S,UAAUt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAO8/H,SAAU,QAAS2M,GAAa,IAC7G1/S,EAAI,EAAGA,EAAI+zS,EAAWt9S,OAAQuJ,IAAK,CACxC,IAAIg0S,EAAWD,EAAW/zS,GAAG/M,KAAK+vE,OAAOr4C,IAAMopR,EAAW/zS,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KACtFk6M,EAAUmyE,EAAW/zS,GAAG/M,KAAK+vE,OAAO/lD,WAAa82R,EAAW/zS,GAAG/M,KAAK+vE,OAAO/lD,WAAWyK,WAAa,KACvG,IAAgD,IAA5Cz0B,KAAKm+S,aAAa52S,QAAQklT,KAAgE,IAAzCzsT,KAAKm+S,aAAa52S,QAAQw5S,GAAkB,CAC7F/gT,KAAKm+S,aAAaj8S,KAAK6+S,GACvB,IAAIU,EAAazhT,KAAKmgT,cAAcngT,KAAKu/S,SAAUwB,GACnD/gT,KAAK0sT,cAAcjL,EAAY8C,IACiB,IAA5CvkT,KAAKq8S,gBAAgB90S,QAAQw5S,IAC7B/gT,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQw5S,GAAW,EAE5E,MACK,IAAgD,IAA5C/gT,KAAKm+S,aAAa52S,QAAQklT,IAAwC,OAAjB1I,IACb,IAAzC/jT,KAAKm+S,aAAa52S,QAAQw5S,IAK1B,GAJA/gT,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQw5S,GAAW,GAC9C,SAAZpyE,GACA3uO,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQgxO,EAAU,YAAa,OAExB,IAA5C/gT,KAAKm+S,aAAa52S,QAAQklT,IAAwC,OAAjB1I,IACL,IAA5C/jT,KAAKq8S,gBAAgB90S,QAAQw5S,GAAkB,CAC/C,IAAIj8S,EAAa9E,KAAKmgT,cAAcngT,KAAKu/S,SAAUwB,GACnD/gT,KAAK0sT,cAAc5nT,EAAYy/S,IACiB,IAA5CvkT,KAAKq8S,gBAAgB90S,QAAQw5S,IAC7B/gT,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQw5S,GAAW,EAE5E,OAGIU,EAAazhT,KAAKmgT,cAAcngT,KAAKu/S,SAAUwB,GACnD/gT,KAAK0sT,cAAcjL,EAAY8C,EAEvC,MAEC,GAAsB,IAAlBvkT,KAAK82L,UAAmB92L,KAAK4gT,WAsB9Ba,EAAazhT,KAAKmgT,cAAcngT,KAAKu/S,SAAUkN,KAE/CzsT,KAAK2sT,iBAAiBlL,EAAYgL,EAAa1I,EAAcQ,QAvBjE,GAAKA,EAYD,IAASx3S,EAAI,EAAGA,EAAI/M,KAAKu/S,SAAS/7S,OAAQuJ,IAAK,CAC3C,IAAIu0S,EAAYthT,KAAKu/S,SAASxyS,GAAG/M,KAAK+vE,OAAOr4C,IAAM13B,KAAKu/S,SAASxyS,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MACnD,IAA1Cz0B,KAAKm+S,aAAa52S,QAAQ+5S,IAC1BthT,KAAKm+S,aAAaj8S,KAAKo/S,EAE/B,KAjBU,CACV,IAAIC,EAAc,IAAI,IAAYvhT,KAAKu/S,UAAUt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAOh2J,UAAW,SAAS,GAAM,IACjH,IAASjd,EAAI,EAAGA,EAAIw0S,EAAY/9S,OAAQuJ,IAAK,CACzC,IAAI2qB,EAAK6pR,EAAYx0S,GAAG/M,KAAK+vE,OAAOr4C,IAAM6pR,EAAYx0S,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAC/C,IAAnCz0B,KAAKm+S,aAAa52S,QAAQmwB,IAC1B13B,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQmwB,GAAK,GAE5D13B,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,EAAI,YAAa,KAClE,CACA13B,KAAKm+S,aAAe,EACxB,CAgBR,EACA9C,EAAS35S,UAAUgrT,cAAgB,SAAUjL,EAAY8C,GACrD,IAAK,IAAIx3S,EAAI,EAAGA,EAAI00S,EAAWj+S,OAAQuJ,IAAK,CACxC,IAAIk0S,EAAUQ,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAM+pR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KACrFm4R,EAAenL,EAAW10S,GAAG/M,KAAK+vE,OAAO/lD,WAAay3R,EAAW10S,GAAG/M,KAAK+vE,OAAO/lD,WAAWyK,WAC3F,MACwC,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAAoBsD,GAC9CvkT,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQ05S,GAAU,IAErB,IAAxCjhT,KAAKm+S,aAAa52S,QAAQ05S,IAAmBsD,GAC7CvkT,KAAKm+S,aAAaj8S,KAAK++S,GAEN,SAAjB2L,GAA4BrI,GAC5BvkT,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQkxO,EAAS,YAAa,MAEvE,IAAIiB,EAAgBliT,KAAKmgT,cAAcngT,KAAKu/S,SAAU0B,GAClDiB,EAAc1+S,OAAS,GACvBxD,KAAK0sT,cAAcxK,EAAeqC,EAE1C,CACJ,EAIAlJ,EAAS35S,UAAUirT,iBAAmB,SAAUlL,EAAY7yO,EAAQm1O,EAAcQ,GAC9E,IAAK,IAAIx3S,EAAI,EAAGA,EAAI00S,EAAWj+S,OAAQuJ,IAAK,CACxC,IAAIk1S,EAAeR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAM+pR,EAAW10S,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAa,GAC1Fk6M,EAAU8yE,EAAW10S,GAAG/M,KAAK+vE,OAAO/lD,WAAay3R,EAAW10S,GAAG/M,KAAK+vE,OAAO/lD,WAAWyK,WAAa,KACnGz0B,KAAK4gT,WACsC,IAAvC5gT,KAAKm+S,aAAa52S,QAAQqnE,KAA+D,IAA7C5uE,KAAKm+S,aAAa52S,QAAQ06S,IACtEjiT,KAAKm+S,aAAaj8S,KAAK+/S,IAC6B,IAAhDjiT,KAAKq8S,gBAAgB90S,QAAQ06S,IAC7BjiT,KAAKq8S,gBAAgB3uS,OAAO1N,KAAKq8S,gBAAgB90S,QAAQ06S,GAAe,KAGhC,IAAvCjiT,KAAKm+S,aAAa52S,QAAQqnE,KAA+D,IAA7C5uE,KAAKm+S,aAAa52S,QAAQ06S,IAAyBsC,IACpGvkT,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQ06S,GAAe,GAClD,SAAZtzE,GACA3uO,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQkyO,EAAc,YAAa,OAI1EjiT,KAAK4gT,YACN2D,GAQgD,IAA7CvkT,KAAKm+S,aAAa52S,QAAQ06S,IAC1BjiT,KAAKm+S,aAAaj8S,KAAK+/S,KARsB,IAA7CjiT,KAAKm+S,aAAa52S,QAAQ06S,IAC1BjiT,KAAKm+S,aAAazwS,OAAO1N,KAAKm+S,aAAa52S,QAAQ06S,GAAe,GAEtEjiT,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQkyO,EAAc,YAAa,MACxEjiT,KAAKm+S,aAAe,KAQ5B,IAAIlqB,EAAWj0R,KAAKmgT,cAAc,CAACsB,EAAW10S,IAAKk1S,GAC/ChuB,GACAj0R,KAAK2sT,iBAAiB14B,EAAUrlN,EAAQm1O,EAAcQ,EAE9D,CACJ,EAEAlJ,EAAS35S,UAAU8qT,aAAe,SAAUttS,EAAO2tS,EAAUvmS,EAAS49R,EAAY4I,GAC9E,GAAI5tS,EACA,IAAK,IAAImlK,EAAW,EAAGA,EAAWnlK,EAAM1b,OAAQ6gL,IAAY,CACxD,IAAI48H,GAAU,QAASjhT,KAAK+vE,OAAOr4C,GAAIxY,EAAMmlK,IACzC8tG,EAAQnyR,KAAKoD,QAAQ6B,cAAc,cAAgBg8S,EAAU,OAE3C,IAAlB6L,IAAgF,IAArD9sT,KAAKw7S,eAAej0S,QAAQ05S,EAAQxsR,cAC/C,OAAV09P,KAAmB,QAAMjzQ,EAAMmlK,GAAUrkL,KAAK+vE,OAAO/lD,cAAyD,IAA1C6iS,EAAStlT,QAAQ05S,EAAQxsR,aAC7E,IAAfyvR,GAAgC,IAAZ59R,MACqB,IAA3CpH,EAAMmlK,GAAUrkL,KAAK+vE,OAAO/lD,YAAoC,IAAZ1D,EAAiBumS,EAAS3qT,KAAK++S,EAAQxsR,YACtFyvR,EAAa,KACnBA,GAAyD,IAA3ChlS,EAAMmlK,GAAUrkL,KAAK+vE,OAAO/lD,YAAoC,IAAZ1D,EAAiB,EAAI,OAIjD,IAA1CumS,EAAStlT,QAAQ05S,EAAQxsR,cAAsB,QAAMnO,IACrDumS,EAAS3qT,KAAK++S,EAAQxsR,YAE1B,IAAIs4R,GAAc,QAAS/sT,KAAK+vE,OAAO7wD,MAAMuV,WAAYvV,EAAMmlK,IAE/D,IAA2D,KAAvD,QAASrkL,KAAK+vE,OAAO+iN,YAAa5zQ,EAAMmlK,KAAuB0oI,EAAa,CAC5E,IACIC,EADAt1R,GAAK,QAAS13B,KAAK+vE,OAAOr4C,GAAIxY,EAAMmlK,KAGpC2oI,EADkB,IAAlBhtT,KAAK82L,SACO92L,KAAKmgT,cAAcngT,KAAKu/S,SAAU7nR,EAAGjD,YAGrCs4R,MAGX,QAAMD,GAAkB9sT,KAAKwsT,aAAaQ,EAAWH,EAAUvmS,EAAS49R,GACrElkT,KAAKwsT,aAAaQ,EAAWH,EAAUvmS,EAAS49R,EAAY4I,GAChE5I,EAAa,KAErB,CACAA,EAAa,IACjB,CAER,EACA7I,EAAS35S,UAAU8pT,SAAW,SAAUyB,EAAYxpT,GAChD,IAAImnT,EAAc5qT,KAAK6qT,iBACnB5iS,GAAO,QAAO,OAASwgM,EAAMmiG,GACjC,GAAIqC,EAAY,CACZ,IAAKhlS,EACD,OAEKA,EAAK27C,UAAU5+D,SAASq0S,GAC7Br5S,KAAK2mT,aAAaiE,EAAa3iS,EAAMxkB,GAGrCzD,KAAKktT,cAActC,GAAa,EAExC,MAEI,GAAI3iS,GAAQA,EAAK27C,UAAU5+D,SAASo0S,GAChCp5S,KAAKynT,aAAamD,EAAa3iS,EAAMxkB,OAEpC,CACD,IAAIqlT,GAAW,SAAQ,QAAQ8B,EAAa,IAAMpR,GAAa,IAAMF,GACrE,IAAKwP,EACD,OAGKA,EAASllP,UAAU5+D,SAAS,eAC7BhF,KAAKmtT,SAASvC,EAAa9B,GAC3B9oT,KAAK6rT,iBAAgB,GAGjC,CAER,EACAxQ,EAAS35S,UAAUgqT,aAAe,SAAUQ,GACxC,IAAItB,EAAc5qT,KAAK6qT,iBACvB7qT,KAAKktT,cAActC,EAAasB,EACpC,EACA7Q,EAAS35S,UAAUiqT,iBAAmB,SAAUyB,GAC5C,IAAIxC,EAAc5qT,KAAK6qT,iBACnB9kM,EAAWqnM,EAAcptT,KAAKqtT,cAAgBrtT,KAAKstT,aAClDvnM,EAASniD,UAAU5+D,SAAS,eAC7BhF,KAAKmtT,SAASvC,EAAa7kM,GAC3B/lH,KAAK6rT,gBAAgBuB,GAE7B,EACA/R,EAAS35S,UAAUmpT,eAAiB,WAChC,IAAIruD,EACA+wD,GAAQ,QAAO,IAAMjU,EAAW,iBAAkBt5S,KAAKoD,SAI3D,OAHI,QAAMmqT,KACN/wD,GAAe,QAAO,IAAM88C,EAAUt5S,KAAKoD,WAExC,QAAMmqT,IAAU,QAAM/wD,GAAgBx8P,KAAKoD,QAAQ+b,kBAAoBq9O,EAAgB+wD,CAClG,EACAlS,EAAS35S,UAAUwrT,cAAgB,SAAUjhF,EAAIigF,GAC7C,IAAIC,EAAWD,EAAYlsT,KAAKosT,YAAYngF,GAAMjsO,KAAKqsT,YAAYpgF,GAGnE,GAFAjsO,KAAKmtT,SAASlhF,EAAIkgF,GAClBnsT,KAAK6rT,iBAAiBK,GAClBC,EAASvoP,UAAU5+D,SAAS,aAAc,CAC1C,IAAIwU,EAAY2yS,EAAS3yS,UACO,MAA5B2yS,EAAS9nD,iBAA2B8nD,EAASvoP,UAAU5+D,SAAS,aAChEhF,KAAKktT,cAAcf,GAAU,GAEA,MAAxBA,EAASqB,aAAuBrB,EAASvoP,UAAU5+D,SAAS,qBAGpC,MAAxBmnT,EAASqB,aAAuBh0S,EAAUoqD,UAAU5+D,SAAS20S,GAFlE35S,KAAKktT,cAAcf,GAAU,GAM7BnsT,KAAKktT,cAAcf,EAAUD,EAErC,CACJ,EACA7Q,EAAS35S,UAAU0qT,YAAc,SAAUngF,GACvC,IACIkgF,EADArjT,EAAQ9I,KAAKsmT,OAAO/+S,QAAQ0kO,GAEhC,GAGI,GAFAnjO,IACAqjT,EAAWnsT,KAAKsmT,OAAOx9S,IACnB,QAAMqjT,GACN,OAAOlgF,UAEL,QAAUkgF,IACpB,OAAOA,CACX,EACA9Q,EAAS35S,UAAU2qT,YAAc,SAAUpgF,GACvC,IACIwhF,EADA3kT,EAAQ9I,KAAKsmT,OAAO/+S,QAAQ0kO,GAEhC,GAGI,GAFAnjO,IACA2kT,EAAWztT,KAAKsmT,OAAOx9S,IACnB,QAAM2kT,GACN,OAAOxhF,UAEL,QAAUwhF,IACpB,OAAOA,CACX,EACApS,EAAS35S,UAAU2rT,YAAc,WAC7B,IACItnM,EADAj9G,EAAQ,EAEZ,GACIi9G,EAAW/lH,KAAKsmT,OAAOx9S,GACvBA,YACM,QAAUi9G,IACpB,OAAOA,CACX,EACAs1L,EAAS35S,UAAU4rT,WAAa,WAC5B,IACII,EADA5kT,EAAQ9I,KAAKsmT,OAAO9iT,OAAS,EAEjC,GACIkqT,EAAU1tT,KAAKsmT,OAAOx9S,GACtBA,YACM,QAAU4kT,IACpB,OAAOA,CACX,EACArS,EAAS35S,UAAUyrT,SAAW,SAAUQ,EAASxB,IAC7C,QAAY,CAACwB,GAAU1oF,GACvB0oF,EAAQlpT,aAAa,WAAY,MAC5B0nT,EAASvoP,UAAU5+D,SAAS,cAAiBmnT,EAASvoP,UAAU5+D,SAAS+1S,MAC1E,QAAS,CAACoR,GAAWlnF,GACrBknF,EAAS1nT,aAAa,WAAY,KAClC0nT,EAASv2S,QACT,KAAa+F,IAAIwwS,EAAU,OAAQnsT,KAAKwgO,SAAUxgO,MAClDA,KAAKgmT,aAAa2H,EAASxB,GAEnC,EACA9Q,EAAS35S,UAAUskT,aAAe,SAAU2H,EAASxB,GACjDnsT,KAAKoD,QAAQub,gBAAgB,yBACzBgvS,GACAA,EAAQhvS,gBAAgB,MAE5BwtS,EAAS1nT,aAAa,KAAMzE,KAAKoD,QAAQs0B,GAAK,WAC9C13B,KAAKoD,QAAQqB,aAAa,wBAAyBzE,KAAKoD,QAAQs0B,GAAK,UACzE,EACA2jR,EAAS35S,UAAUijN,QAAU,WACzB,IAAK3kN,KAAKk8S,gBAAiB,CACvB,IAAI79R,EAAiBre,KAAK6qT,iBAC1BxsS,EAAe5Z,aAAa,WAAY,MACxC,QAAS,CAAC4Z,GAAiB4mN,GAC3B,KAAatpN,IAAI0C,EAAgB,OAAQre,KAAKwgO,SAAUxgO,KAC5D,CACAA,KAAKk8S,iBAAkB,CAC3B,EACAb,EAAS35S,UAAU8+N,SAAW,SAAUjtN,GACpC,IAAI8K,EAAiBre,KAAK6qT,iBACtBt3S,EAAMnG,QAAUiR,KAChB,QAAY,CAACA,GAAiB4mN,GAC9B,KAAaphK,OAAOxlD,EAAgB,OAAQre,KAAKwgO,UAEzD,EACA66E,EAAS35S,UAAUgrO,YAAc,SAAUjpO,GACvC,IAAI2J,EAAS3J,EAAE2J,OACXw2D,EAAYx2D,EAAOw2D,UACnB+oK,GAAY,QAAQv/N,EAAQ,IAAMksS,IACjC3sE,GAAa/oK,EAAU5+D,SAASw0S,IAAe51O,EAAU5+D,SAASs0S,GACnEt5S,KAAK8sO,cAIDH,IAAcA,EAAU/oK,UAAU5+D,SAAS,cAC3ChF,KAAK4sO,SAASD,EAG1B,EACA0uE,EAAS35S,UAAUkrO,SAAW,SAAUX,GAC/BA,EAAGroK,UAAU5+D,SAAS+/N,IAAWkH,EAAGroK,UAAU5+D,SAAS+1S,KACxD/6S,KAAK8sO,eACL,QAAS,CAACb,GAAKlH,GAEvB,EAEAs2E,EAAS35S,UAAUk3B,aAAe,SAAUn1B,GACxCzD,KAAK8sO,aACT,EACAuuE,EAAS35S,UAAUorO,YAAc,WAC7B,IAAI8gF,GAAc,QAAU,IAAM7oF,EAAO/kO,KAAKoD,SAC1CwqT,GAAeA,EAAYpqT,SAC3B,QAAYoqT,EAAa7oF,EAEjC,EAEAs2E,EAAS35S,UAAUsjT,YAAc,SAAUD,EAAQ8I,GAC/C,KAAK,QAAM9I,IAAWA,EAAOnhP,UAAU5+D,SAASs0S,MAC3C,SAAM,QAAQyL,EAAQ,IAAM5L,MAAa,QAAQ4L,EAAQ,IAAM5L,GAASv1O,UAAU5+D,SAASojN,GAAO,CACnG,IAAI1wL,EAAKqtR,EAAOnmT,aAAa,YACzBysB,EAAOrrB,KAAKwhG,QAAQujN,EAAQ8I,GAC5BC,GAAQ,QAAQ/I,EAAO92O,WAAY,IAAMqrO,GACzCyU,EAAMD,EAAQA,EAAMlvT,aAAa,YAAc,KAC/CopD,EAAW+8P,EAAOnhP,UAAU5+D,SAAS01N,GACrCooF,GAAaiC,EAAOnhP,UAAU5+D,SAAS+1S,GACvCx0R,EAAqD,SAAzCw+R,EAAOnmT,aAAa,iBAChCk0R,EAAuD,OAAzCiyB,EAAOnmT,aAAa,kBAA8G,QAA1E,QAAO,IAAMy6S,EAAY0L,KAAW,QAAO,IAAM3L,EAAa2L,IACpIz+R,EAAU,KACVkuQ,GAAkB,QAAO,IAAMomB,EAAcmK,GAIjD,OAHI/kT,KAAKqzR,cAAgBmB,IACrBluQ,EAAUkuQ,EAAgB51R,aAAa,iBAEpC,CACH84B,GAAIA,EAAIrM,KAAMA,EAAMy0R,SAAUiO,EAAK/lQ,SAAUA,EAAU86P,WAAYA,EAAYv8R,SAAUA,EACzFyD,UAAW1D,EAASwsQ,YAAaA,EAEzC,CACA,MAAO,CAAEp7P,GAAI,GAAIrM,KAAM,GAAIy0R,SAAU,GAAI93P,UAAU,EAAOzhC,UAAU,EAAOyD,UAAW,GAAI8oQ,aAAa,EAC3G,EACAuoB,EAAS35S,UAAU8/F,QAAU,SAAUujN,EAAQ8I,GAC3C,GAAIA,EAAQ,CACR,IAAIhL,EAAW7iT,KAAKypT,cAAc1E,EAAOnmT,aAAa,aAClDg4O,EAAQz2N,WAAW4kS,EAAOnmT,aAAa,eACvCovT,EAAahuT,KAAKgiS,UAAUhiS,KAAK+vE,OAAQ6mK,EAAO,GACpD,OAAO,QAASo3E,EAAW3iS,KAAMw3R,EACrC,CACA,OAAO,QAAO,IAAMtJ,EAAUwL,GAAQhiN,WAC1C,EACAs4M,EAAS35S,UAAU4mT,eAAiB,SAAUvD,EAAQthT,GAClD,IAAIo/S,EAAW7iT,KAAKglT,YAAYD,GAChC,MAAO,CAAE/xM,QAAQ,EAAOu7G,eAAc,QAAM9qN,GAAmBqjH,KAAMi+L,EAAQlC,SAAUA,EAAUtvS,MAAO9P,EAC5G,EACA43S,EAAS35S,UAAUkhT,mBAAqB,SAAU5nR,EAAM0nR,EAASC,GAC7D,IAAIsL,EAAUjuT,KAAKg/S,eAAehkR,EAAMh7B,KAAM,eAAiB2iT,EAAQ3iT,KAAKoD,QAAQs0B,GAAK,eAAgB13B,KAAK+rM,sBAAkBttM,EAAWikT,EAAS1iT,KAAKwb,MACrJyyS,IACAA,EAAUhoT,MAAMvE,UAAUyK,MAAMuI,KAAKu5S,IACrC,QAAOA,EAASvL,GAExB,EACArH,EAAS35S,UAAUwsT,gBAAkB,SAAUzJ,GAC3CzkT,KAAKiuM,cAAc,CAAC,eAAiBw2G,EAAM7lT,aAAa,aAC5D,EACAy8S,EAAS35S,UAAUysT,cAAgB,WAC/BnuT,KAAK69S,eAAe79S,KAAK+vE,QACrB,KAAQ8qH,MACR76L,KAAKyxP,UAAYzxP,KAAKoD,QAAQ6B,cAAc,uBAC5CjF,KAAKyxP,UAAUh8O,cAAcgnC,YAAYz8C,KAAKyxP,YAG9CzxP,KAAKoD,QAAQ2kI,UAAY,IAExB,QAAM/nI,KAAKg/S,iBACZh/S,KAAKiuM,gBAETjuM,KAAKi+S,gBACLj+S,KAAKk+L,cAAc,CAAEggH,cAAe,GAAIC,aAAc,GAAIC,cAAe,KAAM,GAC/Ep+S,KAAKw7S,eAAiB,GACtBx7S,KAAKsqE,UAAW,EAChBtqE,KAAKs+S,gBAAe,EACxB,EACAjD,EAAS35S,UAAUq+N,YAAc,SAAUypC,EAAUD,IAC5C,QAAMC,IAA0B,KAAbA,IACpB,QAAY,CAACxpQ,KAAKoD,SAAUomQ,EAAShiQ,MAAM,OAE1C,QAAM+hQ,IAA0B,KAAbA,IACpB,QAAS,CAACvpQ,KAAKoD,SAAUmmQ,EAAS/hQ,MAAM,KAEhD,EACA6zS,EAAS35S,UAAU0sT,eAAiB,SAAU3qT,GAC1C,IAAI2J,EAAS3J,EAAE2J,OACf,MAAKA,GAAUA,EAAOw2D,UAAU5+D,SAASojN,IAASh7M,EAAOw2D,UAAU5+D,SAASw0S,IACxEpsS,EAAOw2D,UAAU5+D,SAASs0S,IAAalsS,EAAOw2D,UAAU5+D,SAASyjN,IACjEr7M,EAAOw2D,UAAU5+D,SAAS40S,IAAUxsS,EAAOw2D,UAAU5+D,SAAS60S,IAFlE,CAMI,IAAI4K,GAAQ,QAAQr3S,EAAQ,IAAMksS,GAClCt5S,KAAK4rT,cAAcnH,EAAOhhT,EAC9B,CACJ,EACA43S,EAAS35S,UAAUkqT,cAAgB,SAAUnH,EAAOhhT,GAChD,IAAIxB,EAAQjC,KACRquT,GAAY,QAAO,IAAMvU,EAAW95S,KAAKoD,SACzCirT,GACAA,EAAU5uF,OAEd,IAAIijF,GAAU,QAAO,IAAMnJ,EAAUkL,GACrCzkT,KAAKsuT,cAAc7J,GACnB,IAAI7vB,EAAW50R,KAAKuE,cAAc,QAAS,CAAE9B,UAAWq3S,EAAWh6J,MAAO,CAAEr2I,MAAOzJ,KAAKurT,WACpFp1M,EAAYn2G,KAAKuuT,aAAa9J,EAAO,KAAM7vB,EAASniJ,WACxDzyI,KAAKg7L,QAAQ,cAAe7kF,GAAW,SAAU40J,GAC7C,IAAKA,EAAa/3J,OAAQ,CACtB,IACIw7M,EAAU,UADC9L,EAAQv7Q,YAAc,GACD,MACpC,QAAS,CAACs9Q,GAAQ1K,IACb,QAAM93S,EAAM+8S,iBACb/8S,EAAMisT,gBAAgBzJ,GAEtBxiT,EAAMm6P,QACN5gO,YAAW,WACPv5B,EAAMwsT,cAAct4M,EAAWusM,EAAS8L,EAC5C,GAAG,GAGHvsT,EAAMwsT,cAAct4M,EAAWusM,EAAS8L,EAEhD,CACJ,GACJ,EACAnT,EAAS35S,UAAU+sT,cAAgB,SAAUt4M,EAAWusM,EAASt5S,GAC7Ds5S,EAAQ36K,UAAY5xB,EAAUu4M,UAC9B,IAAIpD,GAAS,QAAO,IAAMxR,EAAW4I,GACrC1iT,KAAK45Q,SAAW,EAAAp+C,EAAMW,YAAY,CAC9B/4N,QAASkoT,EACT1rM,WAAY,CACRssF,UAAWlsM,KAAKksM,YAErBlsM,KAAKuE,eACRvE,KAAK45Q,SAAS9xO,UAAUrjC,aAAa,QAAS2E,GAC9CkiT,EAAO11S,QACP,IAAI8jQ,EAAW4xC,EACf5xC,EAASlqL,kBAAkB,EAAGkqL,EAASjwQ,MAAMjG,QAC7CxD,KAAK2uT,gBAAgBrD,EACzB,EACAjQ,EAAS35S,UAAU4sT,cAAgB,SAAU7J,GACzC,IAAI/sR,EAAK+sR,EAAM7lT,aAAa,YAC5BoB,KAAK4uT,SAAW5uT,KAAKypT,cAAc/xR,GACnC,IAAIk/M,EAAQz2N,WAAWskS,EAAM7lT,aAAa,eAC1CoB,KAAK6uT,WAAa7uT,KAAKgiS,UAAUhiS,KAAK+vE,OAAQ6mK,EAAO,GACrD52O,KAAKurT,SAAU,QAASvrT,KAAK6uT,WAAWxjS,KAAMrrB,KAAK4uT,SACvD,EACAvT,EAAS35S,UAAUotT,cAAgB,SAAUrrT,GACzC,IAAK,QAAO,IAAMq2S,EAAW95S,KAAKoD,SAAlC,CAGA,IAAIgK,EAAS3J,EAAE2J,OACX2hT,EAAU3hT,EAAO3D,MACjBulT,GAAS,QAAQ5hT,EAAQ,IAAMmsS,GAC/BkL,GAAQ,QAAQr3S,EAAQ,IAAMksS,IAClC,QAAOt5S,KAAK45Q,SAAS9xO,WACjB9nC,KAAK+vE,OAAOmlK,sBAAsB,MAAgBl1O,KAAKy7F,UACvDz7F,KAAKivT,cAAc,SAAU,KAAMxK,EAAOsK,EAAS,KAAM,MAAM,GAG/D/uT,KAAKkvT,cAAczK,EAAOuK,EAAQD,GAAS,EAV/C,CAYJ,EACA1T,EAAS35S,UAAUwtT,cAAgB,SAAUzK,EAAOuK,EAAQD,EAASI,GACjE,IAAIltT,EAAQjC,KACRm2G,EAAYn2G,KAAKuuT,aAAa9J,EAAOsK,EAAS,MAClD/uT,KAAKg7L,QAAQ,aAAc7kF,GAAW,SAAU40J,GAC5CgkD,EAAUhkD,EAAa/3J,OAAS+3J,EAAawgD,QAAUxgD,EAAagkD,QACpE9sT,EAAMmtT,WAAW3K,EAAOuK,EAAQD,EAASI,GACrCpkD,EAAawgD,UAAYwD,GACzB9sT,EAAMs1L,aAAa,aAAc,CAACt1L,EAAMotT,QAAQ5K,IAExD,GACJ,EACApJ,EAAS35S,UAAU0tT,WAAa,SAAU3K,EAAOuK,EAAQD,EAASI,GAC9D,IAAIjlE,GAAU,QAASlqP,KAAK6uT,WAAWxjS,KAAM0jS,EAAS/uT,KAAK4uT,UAC3D,IAAK,QAAM5uT,KAAKg/S,gBAOZh/S,KAAK0kN,oBAAsBsqG,EAAO95K,UAAY65K,EAAUC,EAAOjnL,UAAYgnL,MAP9C,CAC7BC,EAAO95K,UAAY,GACnB,IAAIytK,EAAS8B,EAAM7lT,aAAa,YAChCoB,KAAK4iT,mBAAmB14D,EAAS8kE,EAAQrM,GACzC3iT,KAAKguM,sBACT,CAIImhH,KACA,QAAY,CAAC1K,GAAQ1K,GACrB0K,EAAM7uS,QACN,KAAa+F,IAAI8oS,EAAO,OAAQzkT,KAAKwgO,SAAUxgO,OAC/C,QAAS,CAACykT,GAAQx/E,IAElBjlO,KAAKimT,eACLjmT,KAAKumT,cAAc9B,EAE3B,EACApJ,EAAS35S,UAAU27K,WAAa,SAAUie,GACtC,OAAI,QAAMA,GACC,KAEa,iBAARA,EACLt7L,KAAKoD,QAAQ6B,cAAc,cAAgBq2L,EAAM,MAEpC,iBAARA,GACL,QAAWA,GAGX,IAEf,EACA+/G,EAAS35S,UAAUq0B,MAAQ,SAAUulK,GACjC,OAAI,QAAMA,GACC,KAEa,iBAARA,EACLA,EAEa,iBAARA,GACJ,QAAWA,GAAM18L,aAAa,YAG/B,IAEf,EACAy8S,EAAS35S,UAAU6sT,aAAe,SAAU9J,EAAOsK,EAASzD,GAExD,MAAO,CAAEt4M,QAAQ,EAAO+7M,QAASA,EAASjoM,KAAM29L,EAAO5B,SAD5C7iT,KAAKglT,YAAYP,GAC2C8G,QAASvrT,KAAKurT,QAASmD,UAAWpD,EAC7G,EACAjQ,EAAS35S,UAAU+nT,cAAgB,SAAU/xR,GACzC,IAAI5yB,EACJ,IAAI,QAAM4yB,GACN,OAAO5yB,EAEN,GAAsB,IAAlB9E,KAAK82L,SASV,OAAO92L,KAAKsvT,mBAAmBtvT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,GAR3D,IAAK,IAAI3qB,EAAI,EAAGi9S,EAAShqT,KAAKu/S,SAAS/7S,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAC5D,IAAI41S,GAAS,QAAS3iT,KAAK+vE,OAAOr4C,GAAI13B,KAAKu/S,SAASxyS,IACpD,KAAK,QAAM/M,KAAKu/S,SAASxyS,OAAQ,QAAM41S,IAAWA,EAAOluR,aAAeiD,EACpE,OAAO13B,KAAKu/S,SAASxyS,EAE7B,CAKJ,OAAOjI,CACX,EACAu2S,EAAS35S,UAAU4tT,mBAAqB,SAAUv7M,EAAKisE,EAAQtoJ,GAC3D,IAAIq3K,EACJ,IAAI,QAAMh7F,GACN,OAAOg7F,EAEX,IAAK,IAAIhiM,EAAI,EAAGi9S,EAASj2M,EAAIvwG,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAClD,IAAI41S,GAAS,QAAS3iI,EAAOtoJ,GAAIq8E,EAAIhnG,IACrC,GAAIgnG,EAAIhnG,IAAM41S,GAAUA,EAAOluR,aAAeiD,EAC1C,OAAOq8E,EAAIhnG,GAEV,GAA4B,iBAAjBizK,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAO60F,EAAIhnG,MAO1E,GAAI/M,KAAK+vE,OAAOmlK,sBAAsB,OAAgB,SAAM,QAAS,QAASnhI,EAAIhnG,WAGnEtO,KADhBswM,EAAU/uM,KAAKsvT,oBAAmB,QADtB,QACsCv7M,EAAIhnG,IAAK/M,KAAK6pT,eAAe7pI,GAAStoJ,IAEpF,UAX6E,CACjF,IAAIspR,GAAY,QAAShhI,EAAO9gK,MAAO60F,EAAIhnG,IAE3C,QAAgBtO,KADhBswM,EAAU/uM,KAAKsvT,mBAAmBtO,EAAWhhT,KAAK6pT,eAAe7pI,GAAStoJ,IAEtE,KAER,CAQJ,CACA,OAAOq3K,CACX,EACAssG,EAAS35S,UAAUi9S,eAAiB,SAAU4Q,GACtCA,IAAWvvT,KAAKqW,SAChBrW,KAAKwvT,iBAGLxvT,KAAKyvT,aAEb,EACApU,EAAS35S,UAAU8tT,eAAiB,WAChC,IACIE,EADAztT,EAAQjC,KAERgoN,EAAQhoN,KACZA,KAAK2vT,QAAU,IAAI,KAAU3vT,KAAKoD,QAAS,CACvC8vM,gBAAgB,EAAM+B,kBAAkB,EACxCjC,SAAUhzM,KAAKgzM,SACfhB,WAAY,IAAM2nG,EAClBrpG,eAAe,EACfI,iBAAkB,IAClBgE,OAAQ,SAAUjxM,GACdxB,EAAM+vM,WAAavuM,EAAEo0M,OAAOzqM,OAC5B,IAAIwiT,GAAW,QAAQ3tT,EAAM+vM,WAAY,IAAMoW,GAC3CynG,GAAW,QAAQ5tT,EAAM+vM,WAAY,IAAM2nG,GAK/C,GAJA13S,EAAM6tT,QAAS,QAAQ7tT,EAAM+vM,WAAY,IAAMsnG,GAC3Cr3S,EAAM68S,gBAAkB+Q,GAAY5tT,EAAM+vM,WAAWpuI,UAAU5+D,SAASw1S,KACxEqV,EAAW5tT,EAAM+vM,WAAWrtM,qBAE3B1C,EAAM+vM,aAAevuM,EAAEL,QAAQ2sT,WAAWH,KAAcC,GACzD5tT,EAAM+vM,WAAWpuI,UAAU5+D,SAASojN,IAASnmN,EAAM+vM,WAAWpuI,UAAU5+D,SAASw0S,IACjFv3S,EAAM+vM,WAAWpuI,UAAU5+D,SAASs0S,IAAar3S,EAAM6tT,OAAOlsP,UAAU5+D,SAAS,aACjF,OAAO,EAEX,IAAIgrT,EAAYH,EAASzzQ,WAAU,GACnC,IAAI,SAAM,QAAO,OAASqsK,EAAMunG,IAAY,CACxC,IAAI/nS,EAAO+/L,EAAMzjN,cAAc,MAAO,CAAE9B,UAAWgmN,EAAO,IAAM4wF,IAChE2W,EAASjrT,aAAakjB,EAAM+nS,EAAS3yS,SAAS,GAClD,CACA,IAAI4mM,EAAWgsG,eAAiB7nG,EAAO,IAAMnmN,EAAMgiN,SAAW,KAAOhiN,EAAMiqM,UAAYkZ,EAAM,KAC7FsqG,EAAa1nG,EAAMzjN,cAAc,MAAO,CAAE9B,UAAWwhN,KAC1CvgN,YAAYssT,GACvB,IAAIE,EAAOjuT,EAAMi8S,cAAc16S,OAC/B,GAAI0sT,EAAO,GAAKjuT,EAAMugT,qBAAuBvgT,EAAM6tT,OAAOlsP,UAAU5+D,SAAS01N,GAAS,CAClF,IAAIy1F,EAAQnoG,EAAMzjN,cAAc,OAAQ,CAAE9B,UA72F9C,eA62FoEslI,UAAW,GAAKmoL,IAChFR,EAAWhsT,YAAYysT,EAC3B,CAIA,OAHAzxT,SAAS+c,KAAK/X,YAAYgsT,GAC1BhxT,SAAS+c,KAAKrS,MAAMmlB,OAAS,GAC7BtsB,EAAMuyM,SAAWvyM,EAAM+iT,YAAY/iT,EAAM6tT,QAClCJ,CACX,EACA/8G,UAAW,SAAUlvM,IACjB,QAAS,CAACxB,EAAMmB,SAAU82S,GAC1B,IACItjE,EADA33F,GAAW,QAAQx7I,EAAE2J,OAAQ,gBAE7B6xI,IACA23F,EAAQhsO,SAASq0I,EAASrgJ,aAAa,cAAe,KAE1D,IAAIu3G,EAAYl0G,EAAMmuT,aAAa3sT,EAAE8P,MAAOtR,EAAO,KAAMwB,EAAE2J,OAAQ,KAAMsiT,EAAY94E,GACjFzgI,EAAUk6M,YAAYzsP,UAAU5+D,SAAS+0S,IACzC93S,EAAM0tT,QAAQh+G,WAAWluM,EAAE8P,OAC3BtR,EAAMquT,iBAAiBZ,IAGvBztT,EAAM+4L,QAAQ,gBAAiB7kF,GAAW,SAAU40J,GAC5CA,EAAa/3J,QACb/wG,EAAM0tT,QAAQh+G,WAAWluM,EAAE8P,OAC3BtR,EAAMquT,iBAAiBZ,IAGvBztT,EAAMq6S,iBAAkB,CAEhC,GAER,EACAnoG,KAAM,SAAU1wM,GACZxB,EAAM0tT,QAAQzxH,cAAc,CAAE0Z,SAAU,CAAEt9L,MAAO,QAAM7W,EAAE8P,MAAM41G,gBAAkB,KAAQ8vE,SAAY,IAAM,MAC3Gh3L,EAAMsuT,WAAW9sT,EAAGisT,EACxB,EACAh5G,SAAU,SAAUjzM,IAChB,QAAY,CAACxB,EAAMmB,SAAU82S,GAC7Bj4S,EAAMuuT,mBACN,IAAIC,EAAahtT,EAAE2J,OAEfsjT,GAAY,QAAQD,EAAY,IAAMxW,GAErCwW,GAAeC,KAChB,QAAOjtT,EAAEixM,QACTh2M,SAAS+c,KAAKrS,MAAMmlB,OAAS,IAGjC,IACIqoN,EADA33F,GAAW,QAAQwxK,EAAY,gBAE/BxxK,IACA23F,EAAQhsO,SAASq0I,EAASrgJ,aAAa,cAAe,KAE1D,IAAIu3G,EAAYl0G,EAAMmuT,aAAa3sT,EAAE8P,MAAOtR,EAAOwuT,EAAYA,EAAY,KAAMhtT,EAAEixM,OAAQkiC,GAC3FzgI,EAAUw6M,qBAdgB,EAe1B1uT,EAAM+4L,QAAQ,eAAgB7kF,GAAW,SAAU40J,GAC/C9oQ,EAAM2uT,WAAa7lD,EAAa8lD,kBAChC5uT,EAAMs5S,cAAgBxwC,EAAa4lD,oBAC/B5lD,EAAa/3J,SACTvvG,EAAEixM,OAAOzmI,aACT,QAAOxqE,EAAEixM,QAEbh2M,SAAS+c,KAAKrS,MAAMmlB,OAAS,IAGjCtsB,EAAMq6S,iBAAkB,CAC5B,GACJ,IAEJt8S,KAAK8wT,QAAU,IAAI,KAAU9wT,KAAKoD,QAAS,CACvC6kJ,IAAK,SAAUxkJ,KACN,QAAMA,KAAOA,EAAE2J,OAAOw2D,UAAU5+D,SAASm1S,IAAal4S,EAAM6uT,QAAQt8G,SAAS9zF,SAAWz+G,EAAM6uT,QAAQt8G,SAAS9zF,QAAQg0F,OAAO9wI,UAAU5+D,SAASojN,KAClJ1pN,SAAS+c,KAAKrS,MAAMmlB,OAAS,cAErC,EACAwiS,KAAM,SAAUttT,GACZ/E,SAAS+c,KAAKrS,MAAMmlB,OAAS,EACjC,EACA2pL,KAAM,SAAUz0M,GACZxB,EAAM+uT,WAAWvtT,EACrB,GAER,EACA43S,EAAS35S,UAAU4uT,iBAAmB,SAAUZ,IAC5C,QAAOA,IACP,QAAY,CAAC1vT,KAAKoD,SAAU82S,GAC5Bl6S,KAAKs8S,iBAAkB,CAC3B,EACAjB,EAAS35S,UAAU6uT,WAAa,SAAU9sT,EAAGisT,GACzC,IAAIgB,GAAW,QAAQjtT,EAAE2J,OAAQ,IAAM6sS,GACnCgX,GAAW,QAAQxtT,EAAE2J,OAAQ,IAAMusS,GACnC1xR,GAAO,QAAO,OAASwgM,EAAMinG,IACjC,QAAY,CAACznS,GAAO,CAACmyR,EAAQC,EAAUC,EAASC,IAChDv6S,KAAKwwT,mBACL9xT,SAAS+c,KAAKrS,MAAMmlB,OAAS,GAC7B,IAAIq1C,EAAYngE,EAAE2J,OAAOw2D,UAIzB,GAHI5jE,KAAK8+S,gBAAkBmS,KAAa,QAAMrtP,IAAcA,EAAU5+D,SAASw1S,KAC3EyW,EAAWxtT,EAAE2J,OAAOzI,oBAEpB+rT,EAAU,CACV,IAAIQ,GAAS,QAAQztT,EAAE2J,OAAQ,IAAMksS,GACjCgO,GAAe,QAAQ7jT,EAAE2J,OAAQ,IAAMwtS,GACvC6N,GAAW,QAAQhlT,EAAE2J,OAAQ,IAAMgsS,GACnCnkE,GAAS,QAAQxxO,EAAE2J,OAAQ,IAAMisS,GACrC,IAAKqX,EAAS9sP,UAAU5+D,SAASojN,IAAU6oG,IACrCC,EAAOnB,WAAW/vT,KAAK8vT,UAAY9vT,KAAKmxT,aAAanxT,KAAK8vT,OAAQoB,GACpE,GAAIlxT,KAAK+7S,aAAemV,EAAQ,CAC5B,IAAIE,GAAiB,QAAOpxT,KAAK8+S,cAAgB,IAAMtE,EAAU,IAAMb,EAAUuX,GACjF,GAAKztT,IAAOwxO,IAAWwzE,GAAahlT,EAAE8P,MAAMyyL,QAAU,IAAMshH,GAAoBryE,GAAUxxO,EAAE8P,MAAMyyL,QAAU,GAAOyiH,GAAYhlT,EAAE8P,MAAMsyL,QAAU,EAAM,CACnJ,IAAI/8L,EAAQ9I,KAAK8+S,cAAgB,EAAM,EACvC9+S,KAAKqxT,gBAAgBH,EAAQjpS,EAAMnf,EACvC,MACUrF,IAAOwxO,IAAWwzE,IAAcnB,GAAgB8J,GAAkB3tT,EAAE8P,MAAMyyL,QAAUorH,EAAelmO,aAAe,IAAS+pJ,GAAUxxO,EAAE8P,MAAMyyL,QAAU,IAAQyiH,GAAYhlT,EAAE8P,MAAMsyL,QAAU,IAC/L/8L,EAAQ9I,KAAK8+S,cAAgB,EAAM,EACvC9+S,KAAKqxT,gBAAgBH,EAAQjpS,EAAMnf,KAGnC,QAAS,CAACmf,GAAOmyR,EAEzB,MAES8W,GAAUztT,IAAOwxO,IAAWwzE,GAAchlT,EAAE8P,MAAMyyL,QAAU,IAAOshH,GAAoBryE,GAAUxxO,EAAE8P,MAAMyyL,QAAU,GAAOyiH,GAAYhlT,EAAE8P,MAAMsyL,QAAU,GACrJ/8L,EAAQ9I,KAAK8+S,cAAgB,EAAM,EACvC9+S,KAAKqxT,gBAAgBH,EAAQjpS,EAAMnf,IAE7BooT,GAAUztT,IAAOwxO,IAAWwzE,GAAchlT,EAAE2J,OAAO89E,aAAe,GAAKznF,EAAE8P,MAAMyyL,QAAWviM,EAAE2J,OAAO89E,aAAe,KAASo8N,GAAoBryE,GAAUxxO,EAAE8P,MAAMyyL,QAAU,IAAQyiH,GAAYhlT,EAAE8P,MAAMsyL,QAAU,IACnN/8L,EAAQ9I,KAAK8+S,cAAgB,EAAM,EACvC9+S,KAAKqxT,gBAAgBH,EAAQjpS,EAAMnf,KAGnC,QAAS,CAACmf,GAAOmyR,OAIE,OAAtB32S,EAAE2J,OAAOm6M,UAAuB2pG,EAAOnB,WAAW/vT,KAAK8vT,SAAY9vT,KAAKmxT,aAAanxT,KAAK8vT,OAAQoB,GAIlGztT,EAAE2J,OAAOw2D,UAAU5+D,SAASm1S,IACjC,QAAS,CAAClyR,GAAOoyR,IAGjB,QAAS,CAACpyR,GAAOqyR,KAPjB,QAAS,CAACryR,GAAOoyR,GACjBr6S,KAAKsxT,iBAAiB7tT,GAQ9B,MAEI,QAAS,CAACwkB,GAAOsyR,GACjB77S,SAAS+c,KAAKrS,MAAMmlB,OAAS,cAEjC,IACIqoN,EADA33F,GAAW,QAAQx7I,EAAE2J,OAAQ,gBAE7B6xI,IACA23F,EAAQhsO,SAASq0I,EAASrgJ,aAAa,cAAe,KAE1D,IAAIu3G,EAAYn2G,KAAKowT,aAAa3sT,EAAE8P,MAAOvT,KAAMyD,EAAE2J,OAAQ3J,EAAE2J,OAAQ,KAAMsiT,EAAY94E,GACnFzgI,EAAUo7M,gBACV,QAAY,CAACtpS,GAAOkuF,EAAUo7M,eAElCvxT,KAAKg7L,QAAQ,eAAgB7kF,GACzBA,EAAUo7M,gBACV,QAAS,CAACtpS,GAAOkuF,EAAUo7M,cAEnC,EACAlW,EAAS35S,UAAU2vT,gBAAkB,SAAUH,EAAQjpS,EAAMnf,IACzD,QAAS,CAACmf,GAAOoyR,GACjB,IAAImX,EAASxxT,KAAKuE,cAAc,MAAO,CAAE9B,UAAW03S,IACpD+W,EAAOnsT,aAAaysT,EAAQN,EAAO7zS,SAASvU,GAChD,EAEAuyS,EAAS35S,UAAUsvT,WAAa,SAAUvtT,GACtC,IAEIksT,EACA/4E,EAEA66E,EALAzrH,EAAUviM,EAAE8P,MAAMyyL,QAClByqH,EAAahtT,EAAE2J,OAGf8qM,GAAO,EAEP2qG,EAAW,GACX6O,EAAU,GACdD,EAAehuT,EAAE+wM,SAASsD,UAC1B,IAAK,IAAI6+E,EAAM,EAAGA,EAAM86B,EAAajyH,cAAch8L,OAAQmzR,IACvD,GAAI86B,EAAajyH,cAAcm3F,aAAgBwlB,EAAY,CACvDwT,EAAU8B,EAAajyH,cAAcm3F,GACrC,KACJ,CAEJ,GAAIg5B,GAAWA,EAAQ39G,WAAY,CAC/B,IAAIA,EAAa29G,EAAQ39G,WACrB89G,GAAU,QAAQ99G,EAAY,IAAMsnG,GACpC4X,GAAU,QAAQT,EAAY,IAAMnX,GAOxC,GANAoY,EAAQxvT,KAAK4tT,GACC,MAAVoB,GAAkBT,EAAW7sP,UAAU5+D,SAASojN,KAChD8oG,EAAST,EAAWtxS,oBAExB,QAAO1b,EAAEo1M,gBACTn6M,SAAS+c,KAAKrS,MAAMmlB,OAAS,IACxB2iS,GAAUA,EAAOnB,WAAWD,IAAW9vT,KAAKmxT,aAAarB,EAAQoB,GAIlE,YAHIlxT,KAAK+vE,OAAOmlK,sBAAsB,KAAgB,IAClDl1O,KAAKu7S,eAAgB,IAI7B,GAAIoU,EAAQnN,qBAAuBsN,EAAOlsP,UAAU5+D,SAAS01N,GAAS,CAClE,IAAIuoF,GAAS,QAAU,IAAMvoF,EAAQi1F,EAAQvsT,SAE7C,GADAsuT,EAAUzO,EACNx/S,EAAE2J,OAAO89E,cAAgB,IAAM86G,EAAUviM,EAAE2J,OAAO89E,aAAe,IAAM86G,EAAU,EACjF,IAAK,IAAI2rH,EAAM1O,EAAOz/S,OAAS,EAAGmuT,GAAO,EAAGA,IACpCT,EAAOnB,WAAW9M,EAAO0O,KAAS3xT,KAAKmxT,aAAalO,EAAO0O,GAAMT,IAGrElxT,KAAK4xT,WAAWnB,EAAYxN,EAAO0O,GAAMT,EAAQztT,EAAGksT,EAAS3pH,QAIjE,IAAK,IAAI6rH,EAAM,EAAGA,EAAM5O,EAAOz/S,OAAQquT,IAC/BX,EAAOnB,WAAW9M,EAAO4O,KAAS7xT,KAAKmxT,aAAalO,EAAO4O,GAAMX,IAGrElxT,KAAK4xT,WAAWnB,EAAYxN,EAAO4O,GAAMX,EAAQztT,EAAGksT,EAAS3pH,EAGzE,MAEIhmM,KAAK4xT,WAAWnB,EAAYX,EAAQoB,EAAQztT,EAAGksT,EAAS3pH,GAE5D4wC,EAAQhsO,SAASklT,EAAOlxT,aAAa,cAAe,IACpDs5M,GAAO,CACX,CACIl4M,KAAK+vE,OAAOmlK,sBAAsB,KAAgB,IAClDl1O,KAAKu7S,eAAgB,GAEzB,IAAK,IAAIxuS,EAAI,EAAGA,EAAI2kT,EAAQluT,OAAQuJ,IAChC81S,EAAS3gT,KAAKlC,KAAKqvT,QAAQqC,EAAQ3kT,KAEvC/M,KAAKg7L,QAAQ,cAAeh7L,KAAKowT,aAAa3sT,EAAE8P,MAAOo8S,EAASc,EAAYhtT,EAAE2J,OAAQ3J,EAAE+wM,SAASuD,eAAgB,KAAM6+B,EAAO1+B,IAC1Hy3G,EAAQvsT,QAAQs0B,KAAO13B,KAAKoD,QAAQs0B,KACpCi4R,EAAQp4H,aAAa,cAAesrH,GACpC7iT,KAAKg8S,eAAgB,EACrBh8S,KAAK+vE,OAAOmlK,WAAal1O,KAAKu/S,UAElCv/S,KAAKu3L,aAAa,cAAesrH,EACrC,EACAxH,EAAS35S,UAAUkwT,WAAa,SAAUnB,EAAYX,EAAQoB,EAAQztT,EAAGksT,EAAS3pH,GAC9E,IAAIshH,GAAe,QAAQmJ,EAAY,IAAM7V,GACzC6N,GAAW,QAAQhlT,EAAE2J,OAAQ,IAAMgsS,GACnCnkE,GAAS,QAAQxxO,EAAE2J,OAAQ,IAAMisS,GAChCyW,EAAOlsP,UAAU5+D,SAAS,cAAiBsiT,KAAkBryE,GAAUxxO,EAAE8P,MAAMyyL,QAAU,GAAOyiH,GAAYhlT,EAAE8P,MAAMsyL,QAAU,GAAOovC,GAAUxxO,EAAE8P,MAAMyyL,QAAU,IAAQyiH,GAAYhlT,EAAE8P,MAAMsyL,QAAU,KAASovC,IAAWwzE,GAiB5NzoT,KAAK8xT,gBAAgBhC,EAAQoB,EAAQvB,EAAS,KAAMlsT,EAAGuiM,GAAS,GAhBpC,OAAxByqH,EAAWlpG,SACXvnN,KAAK+xT,kBAAkBjC,EAAQoB,EAAQztT,EAAGksT,GAErCc,EAAWtxS,mBAAqBsxS,EAAW7sP,UAAU5+D,SAASojN,GACrB,OAA1CqoG,EAAWtxS,kBAAkBooM,UAC7BvnN,KAAK+xT,kBAAkBjC,EAAQoB,EAAQztT,EAAGksT,GAGxCc,EAAW7sP,UAAU5+D,SAAS,uBAA2ByrT,EAAW7sP,UAAU5+D,SAAS,qBAC7FhF,KAAK+xT,kBAAkBjC,EAAQoB,EAAQztT,EAAGksT,GAG1C3vT,KAAK8xT,gBAAgBhC,EAAQoB,EAAQvB,EAAS,KAAMlsT,EAAGuiM,EAMnE,EACAq1G,EAAS35S,UAAUqwT,kBAAoB,SAAUjC,EAAQoB,EAAQztT,EAAGksT,GAChE,IAGIlc,EAHAue,GAAS,QAAQd,EAAQ,IAAM1X,GAC/ByY,GAAe,QAAQnC,EAAQ,IAAMtW,GACrC0Y,GAAe,QAAQD,EAAc,IAAM3Y,GAgB/C,GAdI71S,EAAE2J,OAAO89E,aAAe,GAAKznF,EAAE8P,MAAMyyL,QAAUviM,EAAE2J,OAAO89E,aAAe,EACvEuoN,GAAM,EAEDhwS,EAAE8P,MAAMyyL,QAAU,EACvBytG,GAAM,GAEDhwS,EAAE2J,OAAOw2D,UAAU5+D,SAAS,sBAAyBvB,EAAE2J,OAAOw2D,UAAU5+D,SAAS,yBACjFvB,EAAE8P,MAAMyyL,QAAU,GAAOviM,EAAE8P,MAAMsyL,QAAU,EAC5C4tG,GAAM,GAEAhwS,EAAE8P,MAAMyyL,QAAU,IAAQviM,EAAE8P,MAAMsyL,QAAU,MAClD4tG,GAAM,IAGThwS,EAAE2J,OAAOw2D,UAAU5+D,SAAS,sBAA0BvB,EAAE2J,OAAOw2D,UAAU5+D,SAAS,sBAAwB,CAC3G,IAAIoI,EAAS3J,EAAE2J,OAAO0vL,QAAQ,MAC9Bk1H,EAAOjtT,aAAa+qT,EAAQrc,EAAMrmS,EAASA,EAAOzI,mBACtD,MAEIqtT,EAAOjtT,aAAa+qT,EAAQrc,EAAMhwS,EAAE2J,OAAS3J,EAAE2J,OAAOzI,oBAE1D3E,KAAKmyT,SAASrC,EAAQoB,EAAQc,EAAQve,EAAKkc,GAC3C3vT,KAAKoyT,cAAcH,EAAcC,GACjClyT,KAAKqyT,gBAAgBvC,GACjBH,EAAQvsT,QAAQs0B,KAAO13B,KAAKoD,QAAQs0B,GACpC13B,KAAKsjT,cAGLqM,EAAQ2C,iBACRtyT,KAAKsyT,iBAEb,EACAjX,EAAS35S,UAAUowT,gBAAkB,SAAUhC,EAAQoB,EAAQvB,EAAS7mT,EAAOrF,EAAG49I,EAAKstF,GACnF,IAGIyiF,EAHAa,GAAe,QAAQnC,EAAQ,IAAMtW,GACrC0Y,GAAe,QAAQD,EAAc,IAAM3Y,GAC3CiZ,GAAe,QAAQrB,EAAQ,IAAM1X,GAKzC,GAHI/1S,GAAKA,EAAE2J,SACPgkT,GAAiB,QAAOpxT,KAAK8+S,cAAgB,IAAMtE,EAAU,IAAMb,EAAUuX,IAE7EztT,GAAM49I,EAAM,IAAOstF,EACnB4jF,EAAaxtT,aAAa+qT,EAAQoB,GAClClxT,KAAKmyT,SAASrC,EAAQoB,EAAQqB,GAAc,EAAM5C,QAEjD,GAAIlsT,GAAMA,EAAE2J,OAAO89E,aAAe,GAAKm2D,EAAO59I,EAAE2J,OAAO89E,aAAe,KAASyjJ,IAAY3uO,KAAK+7S,YACjGwW,EAAaxtT,aAAa+qT,EAAQoB,EAAOvsT,oBACzC3E,KAAKmyT,SAASrC,EAAQoB,EAAQqB,GAAc,EAAO5C,QAElD,GAAI3vT,KAAK+7S,aAAeqV,GAAkB/vK,EAAM+vK,EAAelmO,aAAe,KAAOyjJ,EACtF4jF,EAAaxtT,aAAa+qT,EAAQoB,EAAOvsT,oBACzC3E,KAAKmyT,SAASrC,EAAQoB,EAAQqB,GAAc,EAAO5C,OAElD,CACD,IAAIqC,EAAShyT,KAAKwyT,aAAatB,GAC3BuB,EAAUT,EAAOltT,WAAWgE,GAChCkpT,EAAOjtT,aAAa+qT,EAAQ2C,GAC5BzyT,KAAKmyT,SAASrC,EAAQ2C,EAAST,GAAQ,EAAMrC,EACjD,CACA3vT,KAAKoyT,cAAcH,EAAcC,GACjClyT,KAAKqyT,gBAAgBvC,GACjBH,EAAQvsT,QAAQs0B,KAAO13B,KAAKoD,QAAQs0B,GACpC13B,KAAKsjT,cAGLqM,EAAQ2C,iBACRtyT,KAAKsyT,iBAEb,EACAjX,EAAS35S,UAAUywT,SAAW,SAAUrC,EAAQoB,EAAQc,EAAQve,EAAKkc,GACjE,IAAI+C,GAAe,QAAQV,EAAQ,IAAM1Y,GACrC5hR,EAAK13B,KAAK+1B,MAAM+5R,GAChB6C,EAAchD,EAAQiD,iBAAiBjD,EAAQpQ,SAAUoQ,EAAQ5/O,OAAQr4C,EAAI,KAAM,MAAM,GACzFm7R,EAAQ7yT,KAAK+1B,MAAMm7R,GACnBpoT,EAAQ9I,KAAK8yT,WAAW9yT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ8iP,GACpDhrB,EAAW7nS,KAAK+1B,MAAM28R,GAC1B,GAAsB,IAAlB1yT,KAAK82L,SAAgB,CACrB92L,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ83N,EAAU,eAAe,GACtE,IAAIxmJ,GAAM,QAAMv4I,GAAS9I,KAAKu/S,SAAS/7S,OAAUiwS,EAAM3qS,EAAQA,EAAQ,EACvE,IAAI,QAAM++R,KAAc7nS,KAAKmmT,cAClBwM,EAAY,GAAG3yT,KAAK+vE,OAAO+vO,cAEjC,CACD,IAAIiT,EAAU/yT,KAAKw/S,eAAiBr/R,WAAW0nR,GAAYA,GAC3D,QAAS7nS,KAAK+vE,OAAO+vO,SAAUiT,EAASJ,EAAY,GACxD,CAEA,GADA3yT,KAAKu/S,SAAS7xS,OAAO2zI,EAAK,EAAGsxK,EAAY,IACrChD,EAAQvsT,QAAQs0B,KAAO13B,KAAKoD,QAAQs0B,GAAI,CACxC,IAAIspR,EAAY2O,EAAQqD,iBAAiBt7R,GACzC2pH,IACA,IAAK,IAAIt0I,EAAI,EAAGunG,EAAM0sM,EAAUx9S,OAAQuJ,EAAIunG,EAAKvnG,IAC7C/M,KAAKu/S,SAAS7xS,OAAO2zI,EAAK,EAAG2/J,EAAUj0S,IACvCs0I,IAEJsuK,EAAQ3P,YAAc2P,EAAQ1P,eAAe0P,EAAQpQ,SAAUoQ,EAAQ5/O,OAAO+vO,SAClF,CACA9/S,KAAKggT,YAAchgT,KAAKigT,eAAejgT,KAAKu/S,SAAUv/S,KAAK+vE,OAAO+vO,SACtE,MAEI9/S,KAAKizT,aAAajzT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ83N,EAAU8qB,EAAalf,EAAM3qS,EAAQA,EAAQ,EAEnG,EACAuyS,EAAS35S,UAAU8wT,aAAe,SAAUtB,GACxC,IAAIgC,GAAW,QAAO,OAASzqG,EAAMyoG,GACjCgC,GAAYA,EAAStvP,UAAU5+D,SAASq0S,KAAsC,IAAvBr5S,KAAKu7S,eAC5Dv7S,KAAK2mT,aAAauK,EAAQgC,EAAU,MAExC,IAAIlB,GAAS,QAAO,IAAMxY,EAAY0X,GA8BtC,IA7B2B,IAAvBlxT,KAAKu7S,gBAA2ByW,GAAUkB,GAC1ClzT,KAAKwgT,iBAAiB0Q,GAE1Bc,GAAS,QAAO,IAAMxY,EAAY0X,IAC7B,QAAMc,KAAkC,IAAvBhyT,KAAKu7S,gBACvByW,EAAO5oT,MAAMwjB,QAAU,SAEtB,QAAMolS,KAAkC,IAAvBhyT,KAAKu7S,gBACvByW,EAAO5oT,MAAMwjB,QAAU,UAEvB,QAAMolS,KAAkC,IAAvBhyT,KAAKu7S,iBAClB,QAAM2X,IACN,KAASh8B,aAAal3R,KAAKuE,cAAe2sT,EAAQ7X,EAAYr5S,KAAK09S,iBAEnEz1R,GAAO,QAAO,OAASwgM,EAAMyoG,KAE7BjpS,EAAK27C,UAAUjoD,IAAI,qBAEvBq2S,EAAS,KAASh+B,WAAWh0R,KAAKuE,cAAe,GAAI,KAAMvE,KAAK09S,gBAChEwT,EAAOxtT,YAAYsuT,GACf/pS,GACA,QAAY,CAACA,GAAOmxR,GAGpB,KAASliB,aAAal3R,KAAKuE,cAAe2sT,EAAQ7X,EAAYr5S,KAAK09S,gBAEvEwT,EAAOzsT,aAAa,gBAAiB,SACrCutT,EAAO5oT,MAAMwjB,QAAU,SAEvB,QAAMolS,GAAS,CACf,IAOI/pS,EAPAtlB,EAAO3C,KAAKqoT,aACZ,QAAM1lT,IAAsB,iBAAbA,EAAKiF,OACpB5H,KAAKg7L,QAAQ,gBAAiBh7L,KAAKsoT,eAAe4I,EAAQ,QAE1D,QAAMgC,IACN,KAASh8B,aAAal3R,KAAKuE,cAAe2sT,EAAQ9X,EAAap5S,KAAK09S,iBAEpEz1R,GAAO,QAAO,OAASwgM,EAAMyoG,MAK7B,KAASh6B,aAAal3R,KAAKuE,cAAe2sT,EAAQ9X,EAAap5S,KAAK09S,gBACpEz1R,GAAO,QAAO,OAASwgM,EAAMyoG,KAJ7B,QAAY,CAACjpS,GAAOoxR,GAOxB2Y,EAAS,KAASh+B,WAAWh0R,KAAKuE,cAAe,GAAI,KAAMvE,KAAK09S,gBAChEwT,EAAOxtT,YAAYsuT,GACnBhyT,KAAKooT,UAAU8I,GACflxT,KAAKg7L,QAAQ,eAAgBh7L,KAAKsoT,eAAe4I,EAAQ,MAC7D,CACA,OAAOc,CACX,EACA3W,EAAS35S,UAAU0wT,cAAgB,SAAUH,EAAcC,GACvD,GAAIA,GAAmD,IAAnCD,EAAa92D,kBAAyB,CACtD,IAAIg4D,GAAW,QAAO,OAAS1qG,EAAMypG,IACrC,QAAOD,IACP,QAAOkB,GACP,IAAItrB,EAAW7nS,KAAK+1B,MAAMm8R,GAC1BlyT,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ83N,EAAU,eAAe,GACtE7nS,KAAK2oT,aAAauJ,GAAc,EACpC,CACJ,EACA7W,EAAS35S,UAAU2wT,gBAAkB,SAAUvC,GAC3C,IAAIl5E,EAAQ52O,KAAKipT,QAAQ6G,EAAQ,IAAMtW,GAAYh2S,OACnDssT,EAAOrrT,aAAa,aAAc,GAAKmyO,GACvC52O,KAAKozT,sBAAqB,QAAO,IAAM5Z,EAAYsW,GAASl5E,EAAQ,EACxE,EACAykE,EAAS35S,UAAU0xT,qBAAuB,SAAUhwT,EAASwzO,GACzD,KAAK,QAAMxzO,GAEP,IADA,IAAI+/S,EAAS//S,EAAQ0B,WACZiI,EAAI,EAAGunG,EAAM6uM,EAAO3/S,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAI03S,EAAQtB,EAAOp2S,GACnB03S,EAAMhgT,aAAa,aAAc,GAAKmyO,GACtC52O,KAAKozT,sBAAqB,QAAO,IAAM5Z,EAAYiL,GAAQ7tE,EAAQ,EACvE,CAER,EACAykE,EAAS35S,UAAU4vT,iBAAmB,SAAU7tT,GAC5C,IAAIgwS,EACAhwS,EAAE8P,MAAMyyL,QAAUviM,EAAE2J,OAAO89E,aAAe,EAC1CuoN,GAAM,EAEDhwS,EAAE8P,MAAMyyL,QAAU,IACvBytG,GAAM,GAEV,IAAI+d,EAASxxT,KAAKuE,cAAc,MAAO,CAAE9B,UAAW03S,IAChDrxS,EAAQ9I,KAAK8+S,cAAiBrL,EAAM,EAAI,EAAMA,EAAM,EAAI,EAC5DhwS,EAAE2J,OAAOrI,aAAaysT,EAAQ/tT,EAAE2J,OAAOiQ,SAASvU,GACpD,EACAuyS,EAAS35S,UAAU8uT,iBAAmB,WAClC,IAAI6C,GAAS,QAAO,IAAMlZ,GACtBkZ,IACA,QAAOA,EAEf,EACAhY,EAAS35S,UAAU+tT,YAAc,WACzBzvT,KAAK2vT,SAAW3vT,KAAK8wT,UACrB9wT,KAAK2vT,QAAQjgI,UACb1vL,KAAK8wT,QAAQphI,UAErB,EACA2rH,EAAS35S,UAAU0uT,aAAe,SAAU78S,EAAOwgG,EAAK08M,EAAYrjT,EAAQkmT,EAAUtD,EAAUp5E,EAAO1+B,GACnG,IAAIg5G,EAAST,GAAa,QAAQA,EAAY,IAAMnX,GAAY,KAC5Dia,EAAWrC,EAASlxT,KAAKglT,YAAYkM,GAAU,KAC/Cb,EAAct8M,EAAMA,EAAI+7M,OAASwD,EACjCE,EAAkBz/M,EAAMA,EAAIygG,SAAW,KACvCi/G,EAAYhD,EAAazwT,KAAKipT,QAAQwH,EAAY,IAAMnX,GAAY,KACpEoa,EAAe3/M,EAAI+7M,OAAOr6S,cAC1Bm7S,EAAa78M,EAAI+7M,QAAS,QAAQ4D,EAAc,IAAMpa,GAAY,KAClEqa,EAAe,KACfnvO,EAAa,KACb8/H,EAAU,CAAC+1F,EAAUD,EAAQE,EAASC,GACtCnhC,EAAY,KACZtyJ,GAAiB,IAAToxF,EAAiBm4G,EAAca,EACvCpoT,EAAQg+G,GAAO,QAAQA,EAAM,kBAAoB,KACjD/5G,EAAI,EACJohB,EAAW,KAGf,GAFAyiS,EAAc78M,EAAI+7M,QAAyB,OAAfc,GAAuB,QAAQ8C,EAAc,IAAMtrG,GAAQwoG,EACvFA,GAAuB,IAAT14G,EAAiBl4M,KAAK4wT,WAAaA,EAC7CZ,EACA,KAAOjjT,EAAI,GAAG,CACV,IAAI,QAAO,IAAM07M,EAAMunG,GAAUpsP,UAAU5+D,SAASs/M,EAAQv3M,IAAK,CAC7DqsQ,EAAY90D,EAAQv3M,GACpB,KACJ,CACAA,GACJ,CAEJ,GAAIjE,EAAO,CACP,IAAI8qT,EAAU,EACd,IAAK7mT,EAAI,EAAGA,EAAIjE,EAAMqyP,kBAAmBpuP,IAAK,CAE1C,GADA6mT,GAAoB,IAAT17G,GAAiBpvM,EAAMuU,SAAStQ,KAAOsjT,GAAea,IAAWb,IAAiBuD,EAAUA,GACzF,IAAT17G,GAAiBpvM,EAAMuU,SAAStQ,GAAG62D,UAAU5+D,SAAS,WAAa,CACpEw/E,EAAcjxE,EAAMyyL,SAAW,GAAMj5L,EAAI,EAAIA,EAC7C,KACJ,CACK,GAAIjE,EAAMuU,SAAStQ,KAAO+5G,EAAM,CACnBvzG,EAAMyyL,QAApBxhH,EAAqCz3E,EACrC,KACJ,CACJ,CACAy3E,EAA0B,IAAZovO,IAAmBpvO,EAAaA,EAC9Cr2D,EAAyB,aAAbirP,EAA4B,SAAa7lQ,EAAMyyL,QAAU,EAAK,SAAW,OACzF,CAeA,GAdIyqH,IAEIkD,EADqB,IAArBF,EAAUjwT,OACK,KAEVitT,EAAW7sP,UAAU5+D,SAASs0S,GACpBma,EAAU,GAGVA,EAAU,IAG7BvC,IAAWb,IACXsD,EAAezC,GAEfT,GAAcrjT,EAAO89E,cAAgB,IAAM33E,EAAMyyL,QAAU54L,EAAO89E,aAAe,IAAM33E,EAAMyyL,QAAU,IACvG2tH,EAAezC,GACF,IAATh5G,GAAe,CACf0+B,IAAUA,EACV,IAAIgwD,EAAW+sB,GAAe,QAAO,iBAAkBA,GAAgB,KAEvE,GADAnvO,EAAa,EAAaoiN,EAASvpR,SAAS7Z,OAAS,IAC/CxD,KAAK+vE,OAAOmlK,sBAAsB,MAA6B,OAAb0xD,GAAqB+sB,EAAc,CACvF,IAAIE,EAAWF,EAAa/uO,aAAa,YACrC5kF,KAAKmgT,cAAcngT,KAAK+vE,OAAOmlK,WAAYy+E,EAAa/0T,aAAa,YAAY61B,YAAc,KACnG+vD,EAAa,EAAaqvO,EAASrwT,OAAS,CAChD,CACJ,CAEJ,MAAO,CACHwvG,QAAQ,EACR8gN,WAAY9D,EACZz8S,MAAOA,EACP88S,YAAaA,EACbmD,gBAAiBA,EACjBO,YAAa7C,EACb8C,gBAAiBT,EACjBU,UAAWzvO,EACX0vO,UAAWt9E,EACXi6E,kBAAmBD,EACnBH,WAAYkD,EACZpC,cAAen4C,EACfhsQ,OAAQA,EACR+gB,SAAUA,EAElB,EACAktR,EAAS35S,UAAUyyT,WAAa,SAAUC,GACtC,IAAI9/M,EAAMt0G,KAAKsmT,OAAO9iT,OACtB,GAAI4wT,EACA,IAAK,IAAIrnT,EAAI,EAAGA,EAAIunG,EAAKvnG,IACrB/M,KAAKuiT,cAAcviT,KAAKsmT,OAAOv5S,SAInC,IAASA,EAAI,EAAGA,EAAIunG,EAAKvnG,IAAK,CAC1B,IAAIsnT,GAAS,QAAO,IAAM7Z,EAASx6S,KAAKsmT,OAAOv5S,KAC/C,QAAOsnT,EACX,CAER,EACAhZ,EAAS35S,UAAU6gT,cAAgB,SAAUz4R,GACzC,IAAIuqS,EAASr0T,KAAKuE,cAAc,MAAO,CAAE9B,UAAW+3S,IACpD1wR,EAAK/kB,aAAasvT,EAAQvqS,EAAKhlB,WAAW,GAC9C,EACAu2S,EAAS35S,UAAU4yT,eAAiB,SAAUF,GAC1C,GAAIA,EAEA,IADA,IACShvT,EAAK,EAAGmvT,GADJ,QAAU,IAAMjb,EAAW,+BAAgCt5S,KAAKoD,SACzCgC,EAAKmvT,EAAS/wT,OAAQ4B,IAC5CmvT,EAASnvT,GACfX,aAAa,gBAAiB,cAKtC,IADA,IACSlF,EAAK,EAAGi1T,GADJ,QAAU,IAAMlb,EAAW,0BAA2Bt5S,KAAKoD,SACpC7D,EAAKi1T,EAAShxT,OAAQjE,IAC5Ci1T,EAASj1T,GACfof,gBAAgB,gBAGhC,EACA08R,EAAS35S,UAAU+yT,gBAAkB,SAAUrxT,EAASwzO,EAAO89E,GAC3D,GAAI99E,EAAQ,KAAM,QAAMxzO,GAEpB,IADA,IAAI+/S,EAASnjT,KAAK20T,gBAAgBD,EAAoBtxT,EAAQ0B,YACrDiI,EAAI,EAAGunG,EAAM6uM,EAAO3/S,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAI03S,EAAQtB,EAAOp2S,GACfkb,GAAO,QAAO,IAAMmxR,GAAa,QAAO,IAAMO,EAAU8K,KACvD,QAAMx8R,IACPjoB,KAAKynT,aAAahD,EAAOx8R,EAAM,MAEnCjoB,KAAKy0T,iBAAgB,QAAO,IAAMjb,EAAYiL,GAAQ7tE,EAAQ,EAAG89E,EACrE,CAER,EACArZ,EAAS35S,UAAUkzT,iBAAmB,SAAUF,GAE5C,IADA,IAAIzK,EAASjqT,KAAK20T,gBAAgBD,GAAoB,QAAU,IAAMtb,EAAap5S,KAAKoD,UAC/E2J,EAAI,EAAGunG,EAAM21M,EAAOzmT,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAIkb,EAAOgiS,EAAOl9S,GACd03S,GAAQ,QAAQx8R,EAAM,IAAMqxR,GAChCt5S,KAAKynT,aAAahD,EAAOx8R,EAAM,KACnC,CACJ,EACAozR,EAAS35S,UAAUmzT,cAAgB,SAAUzxT,EAASwzO,EAAO89E,GACzD,GAAI99E,EAAQ,KAAM,QAAMxzO,GAEpB,IADA,IAAIigT,EAASrjT,KAAK20T,gBAAgBD,EAAoBtxT,EAAQ0B,YACrDiI,EAAI,EAAGunG,EAAM+uM,EAAO7/S,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAI03S,EAAQpB,EAAOt2S,GACfkb,GAAO,QAAO,IAAMoxR,GAAY,QAAO,IAAMM,EAAU8K,KACtD,QAAMx8R,IACPjoB,KAAK2mT,aAAalC,EAAOx8R,EAAM,MAEnCjoB,KAAK60T,eAAc,QAAO,IAAMrb,EAAYiL,GAAQ7tE,EAAQ,EAAG89E,EACnE,CAER,EACArZ,EAAS35S,UAAUozT,eAAiB,SAAUJ,GAE1C,IADA,IAAIK,EAAS/0T,KAAK20T,gBAAgBD,GAAoB,QAAU,IAAMrb,EAAYr5S,KAAKoD,UAC9E2J,EAAI,EAAGunG,EAAMygN,EAAOvxT,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAIkb,EAAO8sS,EAAOhoT,GACd03S,GAAQ,QAAQx8R,EAAM,IAAMqxR,GAChCt5S,KAAK2mT,aAAalC,EAAOx8R,EAAM,MAAM,EACzC,CACJ,EACAozR,EAAS35S,UAAUizT,gBAAkB,SAAUD,EAAoB9wG,GAC/D,IAAIoxG,EAAS/uT,MAAMvE,UAAUyK,MAAMuI,KAAKkvM,GACxC,GAAI8wG,EACA,IAAK,IAAI3nT,EAAI,EAAGA,EAAIioT,EAAOxxT,OAAQuJ,KAC1B,QAAUioT,EAAOjoT,MAClBioT,EAAOtnT,OAAOX,EAAG,GACjBA,KAIZ,OAAOioT,CACX,EACA3Z,EAAS35S,UAAUuzT,WAAa,SAAUnuM,GACtC,IAAImrM,GAAe,QAAQnrM,EAAM,IAAM0yL,GACnC0Y,GAAe,QAAQD,EAAc,IAAM3Y,IAC1C,QAAMt5S,KAAKg/S,iBACZh/S,KAAKkuT,gBAAgBpnM,IAEzB,QAAOA,GACP9mH,KAAKoyT,cAAcH,EAAcC,GACjClyT,KAAKk1T,WAAWpuM,EACpB,EACAu0L,EAAS35S,UAAU4wT,eAAiB,WAChCtyT,KAAKsjT,aACLtjT,KAAKm1T,sBACLn1T,KAAKo1T,qBACT,EACA/Z,EAAS35S,UAAU4hT,WAAa,WAC5BtjT,KAAKsmT,OAASrgT,MAAMvE,UAAUyK,MAAMuI,MAAK,QAAU,IAAM4kS,EAAUt5S,KAAKoD,SAC5E,EACAi4S,EAAS35S,UAAUyzT,oBAAsB,WACrCn1T,KAAKk+L,cAAc,CAAEggH,cAAe,KAAM,GAC1C,IAAI+E,GAAS,QAAU,IAAMvoF,EAAQ16N,KAAKoD,SAC1CpD,KAAKknT,iBAAiBjE,EAC1B,EACA5H,EAAS35S,UAAU0zT,oBAAsB,WACrCp1T,KAAKk+L,cAAc,CAAEkgH,cAAe,KAAM,GAE1C,IADA,IAAIiF,GAAS,QAAU,yBAA0BrjT,KAAKoD,SAC7C2J,EAAI,EAAGunG,EAAM+uM,EAAO7/S,OAAQuJ,EAAIunG,EAAKvnG,IAC1C/M,KAAKooT,UAAU/E,EAAOt2S,GAE9B,EACAsuS,EAAS35S,UAAUwzT,WAAa,SAAUpuM,GACtC,GAAsB,IAAlB9mH,KAAK82L,SAAgB,CACrB,IAAIogD,EAAK,IAAI,IAAYl3O,KAAKu/S,UAC1B7nR,EAAK13B,KAAK+1B,MAAM+wF,GAChB9rF,EAAO,CAAC,EACRq6R,EAAQr1T,KAAKw/S,eAAiBr/R,WAAWuX,GAAMA,EACnDsD,EAAKh7B,KAAK+vE,OAAOr4C,IAAM29R,EACvBn+E,EAAGrzK,OAAO7jE,KAAK+vE,OAAOr4C,GAAIsD,GAC1Bh7B,KAAKgzT,iBAAiBt7R,EAC1B,MAEQA,EAAK13B,KAAK+1B,MAAM+wF,GACpB9mH,KAAK4yT,iBAAiB5yT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,EAAI,KAAM,MAAM,EAE1E,EACA2jR,EAAS35S,UAAUsxT,iBAAmB,SAAUnrB,GAC5C,IAAIsb,EAASnjT,KAAK+pT,cAAc/pT,KAAKggT,YAAanY,GAAU,GACxDmZ,EAAY,GAChB,GAAImC,EACA,IAAK,IAAIp2S,EAAI,EAAGunG,EAAM6uM,EAAO3/S,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC/C,IAAImqO,EAAK,IAAI,IAAYl3O,KAAKu/S,UAC1B7nR,GAAK,QAAS13B,KAAK+vE,OAAOr4C,GAAIyrR,EAAOp2S,IAAI0nB,WACzCuG,EAAO,CAAC,EACRs6R,EAASt1T,KAAKw/S,eAAiBr/R,WAAWuX,GAAMA,EACpDsD,EAAKh7B,KAAK+vE,OAAOr4C,IAAM49R,EACvB,IAAIzS,EAAW3rE,EAAGrzK,OAAO7jE,KAAK+vE,OAAOr4C,GAAIsD,GACzCgmR,EAAU9+S,KAAK2gT,EAAS,IACxB7iT,KAAKgzT,iBAAiBt7R,EAC1B,CAEJ,OAAOspR,CACX,EACA3F,EAAS35S,UAAU6zT,cAAgB,SAAU3xG,EAAOx4M,EAAUoqT,GAC1D,IAAK,IAAIzoT,EAAI,EAAGunG,EAAMsvG,EAAMpgN,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC9C,IAAI03S,EAAQzkT,KAAKq9K,WAAWumC,EAAM72M,IAClC,KAAI,QAAM03S,GAAV,CAGA,IAAIx8R,GAAO,QAAO,IAAM7c,GAAU,QAAO,IAAMuuS,EAAU8K,KACpD,QAAMx8R,KACPutS,EAAWx1T,KAAK2mT,aAAalC,EAAOx8R,EAAM,MAAQjoB,KAAKynT,aAAahD,EAAOx8R,EAAM,MAHrF,CAKJ,CACJ,EACAozR,EAAS35S,UAAU+zT,cAAgB,SAAU7xG,EAAOstG,EAAQpoT,EAAO4sT,EAAUC,GACzE,GAAqB,IAAjB/xG,EAAMpgN,OAAV,CAGA,IAAIy/S,EAASjjT,KAAKqgT,cAAcz8F,GAC5BgzB,EAAQs6E,EAAS/wS,WAAW+wS,EAAOtyT,aAAa,eAAiB,EAAI,EACrE82T,GACA11T,KAAK41T,aAAah/E,GAEtB,IAEIi/E,EACAC,EAWA9D,EAdA/lF,EAAK,KAASkwB,uBAAuBn8P,KAAKuE,cAAe0+S,EAAQjjT,KAAK09S,eAAgB9mE,GACtFl/M,EAAK13B,KAAK+1B,MAAMm7R,GAqBpB,IAlBK,QAAkBA,KACnB4E,GAAY,QAAO,OAASrtG,EAAMyoG,IAEhB,IAAlBlxT,KAAK82L,UAAkBg/H,GAAaA,EAAUlyP,UAAU5+D,SAASq0S,MAAgB,QAAMr5S,KAAKoD,QAAQ2/G,gBAAkB/iH,KAAKoD,QAAQ2/G,aAAattG,cAAcmuD,UAAU5+D,SAAS,mBACjLhF,KAAKu7S,eAAgB,GAEH,IAAlBv7S,KAAK82L,WACL92L,KAAKizT,aAAajzT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,EAAIksL,EAAO96M,GACzD9I,KAAKslE,eAAgB,GASzBuwP,GAFI7D,EAJC2D,IACQzE,EAASlxT,KAAKwyT,aAAatB,IAAU,QAAO,IAAM1X,EAAYx5S,KAAKoD,WAK/D0B,WAAWgE,IACvB9I,KAAKslE,eAAmC,IAAlBtlE,KAAK82L,SAAgB,CAC5C,IAAIn0L,EAAO3C,KAAKqoT,WAChB,GAAIwN,GAA8B,SAAnB71T,KAAKg9P,UAAsB,CACtC,IAAK,IAAIjwP,EAAI,EAAGA,EAAIk/N,EAAGzoO,OAAQuJ,IAC3BilT,EAAOjtT,aAAaknO,EAAGl/N,GAAI8oT,GAET,IAAlB71T,KAAK82L,WAAmB,QAAkBo6H,KAAY,QAAMlxT,KAAKoD,QAAQ2/G,eAAkB/iH,KAAKoD,QAAQ2/G,aAAattG,cAAcmuD,UAAU5+D,SAAS,mBACtJhF,KAAKu7S,eAAgB,GACjB2X,GAAW,QAAO,OAASzqG,EAAMyoG,KACrBgC,EAAStvP,UAAU5+D,SAASq0S,MAAgB,QAAM12S,IAAsB,iBAAbA,EAAKiF,OAC5E5H,KAAK2mT,aAAauK,EAAQgC,EAAU,MAGhD,CACA,IAAK2C,IAAgC,cAAnB71T,KAAKg9P,WAAkD,eAAnBh9P,KAAKg9P,WACvD,GAAiC,IAA7Bg1D,EAAOltT,WAAWtB,OAAc,CAChC,IAASuJ,EAAI,EAAGA,EAAIk/N,EAAGzoO,OAAQuJ,IAC3BilT,EAAOjtT,aAAaknO,EAAGl/N,GAAI8oT,GAI3B,IAAI3C,EAFc,IAAlBlzT,KAAK82L,WAAmB,QAAkBo6H,KAAY,QAAMlxT,KAAKoD,QAAQ2/G,eAAkB/iH,KAAKoD,QAAQ2/G,aAAattG,cAAcmuD,UAAU5+D,SAAS,mBACtJhF,KAAKu7S,eAAgB,GACjB2X,GAAW,QAAO,OAASzqG,EAAMyoG,KACrBgC,EAAStvP,UAAU5+D,SAASq0S,MAAgB,QAAM12S,IAAsB,iBAAbA,EAAKiF,OAC5E5H,KAAK2mT,aAAauK,EAAQgC,EAAU,MAGhD,KAEI,KAAI/P,EAAS6O,EAAOltT,WACpB,IAASiI,EAAI,EAAGA,EAAIk/N,EAAGzoO,OAAQuJ,IAC3B,IAAK,IAAIqtG,EAAI,EAAGA,EAAI+oM,EAAO3/S,OAAQ42G,IAAK,CAEpC,GADsC,cAAnBp6G,KAAKg9P,UAA6BmmD,EAAO/oM,GAAGrX,YAAYjK,cAAgBmzI,EAAGl/N,GAAGmoI,UAAUp8C,cAAgBqqN,EAAO/oM,GAAGrX,YAAYjK,cAAgBmzI,EAAGl/N,GAAGmoI,UAAUp8C,cAChK,CACbk5N,EAAOjtT,aAAaknO,EAAGl/N,GAAIo2S,EAAO/oM,IAClC,KACJ,CACA43M,EAAOjtT,aAAaknO,EAAGl/N,GAAIo2S,EAAOA,EAAO3/S,QAC7C,CAT0B,CAa1C,CACA,GAAsB,IAAlBxD,KAAK82L,SAAgB,CACrB92L,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,EAAI,eAAe,GAChE,IAAIm7R,EAAQ7yT,KAAK+1B,MAAM8/R,GACnBx0K,GAAM,QAAMwxK,GAAS7yT,KAAKu/S,SAAS/7S,OAASxD,KAAK8yT,WAAW9yT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ8iP,GAC5F,IAASz4M,EAAI,EAAGA,EAAIwpG,EAAMpgN,OAAQ42G,IAAK,CACnC,KAAK,QAAM1iF,GAAK,CACZ,IAAI49R,EAASt1T,KAAKw/S,eAAiBr/R,WAAWuX,GAAMA,GACpD,QAAS13B,KAAK+vE,OAAO+vO,SAAUwV,EAAQ1xG,EAAMxpG,GACjD,CACAp6G,KAAKu/S,SAAS7xS,OAAO2zI,EAAK,EAAGuiE,EAAMxpG,IACnCinC,GACJ,CACJ,CACArhJ,KAAKygT,aAAauR,EAnFlB,CAoFJ,EACA3W,EAAS35S,UAAUk0T,aAAe,SAAUh/E,GACxC,IAAI52D,EAAoB,IAAV42D,EAAe52O,KAAK+vE,OAAS/vE,KAAKmpT,eAAenpT,KAAK+vE,OAAQ6mK,EAAQ,EAAG,GACvF52O,KAAK69S,eAAe79H,EACxB,EACAq7H,EAAS35S,UAAUm8S,eAAiB,SAAU79H,GAC1C,IAAIr6K,EAAO3F,KAAK0uM,oBAAoB1uB,GACpChgL,KAAK09S,eAAe3tO,OAASpqE,EAC7B3F,KAAK09S,eAAe3tO,OAAOvT,IAAM72D,EAAKC,eAAe,eAAiBD,EAAKowT,YAAc,aAC7F,EACA1a,EAAS35S,UAAUoxT,WAAa,SAAU/+M,EAAKisE,EAAQtoJ,GAEnD,IADA,IAAI2pH,EAAM,KACDt0I,EAAI,EAAGi9S,EAASj2M,EAAIvwG,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAClD,IAAI+0S,GAAS,QAAS9hI,EAAOtoJ,GAAIq8E,EAAIhnG,IACrC,GAAIgnG,EAAIhnG,IAAM+0S,GAAUA,EAAOrtR,aAAeiD,EAC1C,OAAO3qB,EAEN,GAA4B,iBAAjBizK,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAO60F,EAAIhnG,MAO1E,GAAI/M,KAAK+vE,OAAOmlK,sBAAsB,OAAgB,SAAM,QAAS,QAASnhI,EAAIhnG,KAAM,CACzF,IAAIod,GAAQ,QAAS,QAAS4pF,EAAIhnG,IAElC,GAAY,QADZs0I,EAAMrhJ,KAAK8yT,WAAW3oS,EAAOnqB,KAAK6pT,eAAe7pI,GAAStoJ,IAEtD,KAER,MAbqF,CACjF,IAAIsD,GAAO,QAASglJ,EAAO9gK,MAAO60F,EAAIhnG,IAEtC,GAAY,QADZs0I,EAAMrhJ,KAAK8yT,WAAW93R,EAAMh7B,KAAK6pT,eAAe7pI,GAAStoJ,IAErD,KAER,CAQJ,CACA,OAAO2pH,CACX,EACAg6J,EAAS35S,UAAUuxT,aAAe,SAAUl/M,EAAKisE,EAAQtoJ,EAAIsD,EAAMlyB,GAC/D,IAAIktT,EACJ,IAAI,QAAMt+R,GAAK,CACX5uB,GAAQ,QAAMA,GAASirG,EAAIvwG,OAASsF,EACpC,IAAK,IAAIuxG,EAAI,EAAG/F,EAAMt5E,EAAKx3B,OAAQ62G,EAAI/F,EAAK+F,IACxCtG,EAAIrmG,OAAO5E,EAAO,EAAGkyB,EAAKq/E,IAC1BvxG,IAEJ,OAAOktT,CACX,CACA,IAAK,IAAIjpT,EAAI,EAAGi9S,EAASj2M,EAAIvwG,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAClD,IAAI+0S,GAAS,QAAS9hI,EAAOtoJ,GAAIq8E,EAAIhnG,IACrC,GAAIgnG,EAAIhnG,IAAM+0S,GAAUA,EAAOrtR,aAAeiD,EAAI,CAC9C,GAA6B,iBAAjBsoJ,EAAO9gK,OAAuB60F,EAAIhnG,GAAGnH,eAAeo6K,EAAO9gK,QAAmC,OAAzB60F,EAAIhnG,GAAGizK,EAAO9gK,QACzFlf,KAAK+vE,OAAOmlK,sBAAsB,KAAgBnhI,EAAIhnG,GAAGnH,eAAe,SAAW,CACrF,IAAIlD,EAA+B,iBAAjBs9K,EAAO9gK,MAAsB8gK,EAAO9gK,MAAQ,QAC1D8hS,GAAY,QAASt+S,EAAKqxG,EAAIhnG,IAKlC,KAJI,QAAMi0S,KACNA,EAAY,IAEhBl4S,GAAQ,QAAMA,GAASk4S,EAAUx9S,OAASsF,EACjCuxG,EAAI,EAAG/F,EAAMt5E,EAAKx3B,OAAQ62G,EAAI/F,EAAK+F,IACxC2mM,EAAUtzS,OAAO5E,EAAO,EAAGkyB,EAAKq/E,IAChCvxG,GAER,MAEQpG,EAA+B,iBAAjBs9K,EAAO9gK,MAAsB8gK,EAAO9gK,MAAQ,QAC9D60F,EAAIhnG,GAAGrK,GAAOs4B,EAElB,OAAO,CACX,CACK,GAA4B,iBAAjBglJ,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAO60F,EAAIhnG,MAO1E,GAAK/M,KAAK+vE,OAAOmlK,sBAAsB,OAAiB,SAAM,QAAS,QAASnhI,EAAIhnG,OACjFi0S,GAAY,QAAS,QAASjtM,EAAIhnG,SAEtBtO,KADhBu3T,EAAUh2T,KAAKizT,aAAajS,EAAWhhT,KAAK6pT,eAAe7pI,GAAStoJ,EAAIsD,EAAMlyB,KAE1E,UAX6E,CACjF,IAAImtT,GAAW,QAASj2I,EAAO9gK,MAAO60F,EAAIhnG,IAE1C,QAAgBtO,KADhBu3T,EAAUh2T,KAAKizT,aAAagD,EAAUj2T,KAAK6pT,eAAe7pI,GAAStoJ,EAAIsD,EAAMlyB,IAEzE,KAER,CAQJ,CACA,OAAOktT,CACX,EACA3a,EAAS35S,UAAUgoT,gBAAkB,SAAU9lG,GAC3C,IAAI+3F,EAAa37S,KAAK0b,SAASkoM,GAC3BsyG,EAAUl2T,KAAKm2T,aAAaxa,GAChC37S,KAAK07S,SAAW,GAChB,IAAK,IAAI3uS,EAAI,EAAGunG,EAAM4hN,EAAQ1yT,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAChD,IAAI2qB,EAAKw+R,EAAQnpT,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAChCiD,IAAwC,IAAlC13B,KAAKy7S,YAAYl0S,QAAQmwB,IAC/B13B,KAAKy7S,YAAYv5S,KAAKw1B,GAE1B,IAAI+sR,EAAQzkT,KAAKq9K,WAAW3lJ,GACxB+sR,IACAA,EAAMhgT,aAAa,gBAAiB,SACpC,QAAS,CAACggT,GAAQ9J,GAE1B,CACJ,EACAU,EAAS35S,UAAU00T,eAAiB,SAAUxyG,GAE1C,IADA,IAAIyyG,EAAWr2T,KAAK0b,SAASkoM,GACpB72M,EAAI,EAAGunG,EAAM+hN,EAAS7yT,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CACjD,IAAI03S,EAAQzkT,KAAKq9K,WAAWg5I,EAAStpT,IACjC2qB,EAAK2+R,EAAStpT,GACd2qB,IAAwC,IAAlC13B,KAAKy7S,YAAYl0S,QAAQmwB,IAC/B13B,KAAKy7S,YAAY/tS,OAAO1N,KAAKy7S,YAAYl0S,QAAQmwB,GAAK,GAEtD+sR,IACAA,EAAM9lS,gBAAgB,kBACtB,QAAY,CAAC8lS,GAAQ9J,GAE7B,CACJ,EACAU,EAAS35S,UAAUga,SAAW,SAAUkoM,GAEpC,IADA,IAAIsyG,EAAU,GACLnpT,EAAI,EAAGunG,EAAMsvG,EAAMpgN,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC9C,IAAI2qB,OAAK,EACc,iBAAZksL,EAAM72M,GACb2qB,EAAMksL,EAAM72M,GAAM62M,EAAM72M,GAAG0nB,WAAa,KAEf,iBAAbmvL,EAAM72M,KAClB2qB,EAAKksL,EAAM72M,GAAK62M,EAAM72M,GAAGnO,aAAa,YAAY61B,WAAa,OAEvC,GAAxByhS,EAAQ3uT,QAAQmwB,IAChBw+R,EAAQh0T,KAAKw1B,EAErB,CACA,OAAOw+R,CACX,EACA7a,EAAS35S,UAAUy0T,aAAe,SAAUrvM,GACxC,IAAI7kH,EAAQjC,KACZ,GAAsB,IAAlBA,KAAK82L,SACL92L,KAAK07S,SAAW17S,KAAKu/S,SAASp9S,QAAO,SAAU64B,GAC3C,OAA0F,IAAnF8rF,EAAKv/G,QAAQyzB,EAAK/4B,EAAM8tE,OAAOr4C,IAAMsD,EAAK/4B,EAAM8tE,OAAOr4C,IAAIjD,WAAa,KACnF,SAEC,GAAsB,IAAlBz0B,KAAK82L,SACV,IAAK,IAAIz8E,EAAI,EAAGA,EAAIr6G,KAAKu/S,SAAS/7S,OAAQ62G,IAAK,CAC3C,IAAI3iF,EAAK13B,KAAKu/S,SAASllM,GAAGr6G,KAAK+vE,OAAOr4C,IAAM13B,KAAKu/S,SAASllM,GAAGr6G,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAChE,IAAtBqyF,EAAKv/G,QAAQmwB,IACb13B,KAAK07S,SAASx5S,KAAKlC,KAAKu/S,SAASllM,IAErC,IAAIonM,GAAa,QAASzhT,KAAK+vE,OAAO7wD,MAAMuV,WAAYz0B,KAAKu/S,SAASllM,IAClEonM,GACAzhT,KAAKs2T,kBAAkB7U,EAAY36L,EAE3C,CAEJ,OAAO9mH,KAAK07S,QAChB,EACAL,EAAS35S,UAAU40T,kBAAoB,SAAU/W,EAAU37F,GACvD,IAAK,IAAIvpG,EAAI,EAAGA,EAAIklM,EAAS/7S,OAAQ62G,IAAK,CACtC,IAAI3iF,EAAK6nR,EAASllM,GAAGr6G,KAAK+vE,OAAOr4C,IAAM6nR,EAASllM,GAAGr6G,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MACrD,IAAvBmvL,EAAMr8M,QAAQmwB,IACd13B,KAAK07S,SAASx5S,KAAKq9S,EAASllM,IAEhC,IAAIonM,GAAa,QAASzhT,KAAK+vE,OAAO7wD,MAAMuV,WAAY8qR,EAASllM,IAC7DonM,GACAzhT,KAAKs2T,kBAAkB7U,EAAY79F,EAE3C,CACJ,EACAy3F,EAAS35S,UAAUu8S,cAAgB,WAC/B,IAAI3iH,GAAM,QAAQt7L,KAAKoD,QAAS,aAChCpD,KAAKoiT,YAAa,QAAM9mH,GAAO,GArzH3B,SAszHR,EACA+/G,EAAS35S,UAAU60T,kBAAoB,WACnCv2T,KAAKw2T,YAAYx2T,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ,CAAC,WAAY,aAE1D,IADA,IAAI0mP,EAAWz2T,KAAKk+S,cACX5jM,EAAI,EAAGo8M,EAASD,EAASjzT,OAAQ82G,EAAIo8M,EAAQp8M,IAClDt6G,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ0mP,EAASn8M,GAAI,YAAY,GAG1E,IADA,IAAIq8M,EAAS32T,KAAKo+S,cACT/jM,EAAI,EAAGu8M,EAAUD,EAAOnzT,OAAQ62G,EAAIu8M,EAASv8M,IAClDr6G,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ4mP,EAAOt8M,GAAI,YAAY,GAExE,GAAIr6G,KAAKqzR,aAAc,CACnBrzR,KAAKw2T,YAAYx2T,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ,CAAC,cAC9C,IAAI8mP,EAAS72T,KAAKm+S,aACTx7O,EAAI,EAAb,IAAgBi0P,EAAUC,EAAOrzT,OAAQm/D,EAAIi0P,EAASj0P,IAClD3iE,KAAK4kT,YAAY5kT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQ8mP,EAAOl0P,GAAI,aAAa,EAE7E,CACJ,EACA04O,EAAS35S,UAAU80T,YAAc,SAAUziN,EAAKisE,EAAQ3mJ,GACpD,KAAI,QAAM06E,MAAQ,QAAMisE,GAGxB,IAAK,IAAIjzK,EAAI,EAAGi9S,EAASj2M,EAAIvwG,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAClD,IAAK,IAAIqtG,EAAI,EAAGA,EAAI/gF,EAAM71B,OAAQ42G,IAAK,CACnC,IAAI47H,EAAQh2O,KAAK82T,cAAc92I,EAAQ3mJ,EAAM+gF,KACxC,QAAMrG,EAAIhnG,GAAGipO,YACPjiI,EAAIhnG,GAAGipO,EAEtB,CAC4B,iBAAjBh2D,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAO60F,EAAIhnG,KAGjE/M,KAAK+vE,OAAOmlK,sBAAsB,OAAgB,SAAM,QAAS,QAASnhI,EAAIhnG,MACnF/M,KAAKw2T,aAAY,QAAS,QAASziN,EAAIhnG,IAAK/M,KAAK6pT,eAAe7pI,GAAS3mJ,GAHzEr5B,KAAKw2T,aAAY,QAASx2I,EAAO9gK,MAAO60F,EAAIhnG,IAAK/M,KAAK6pT,eAAe7pI,GAAS3mJ,EAKtF,CACJ,EACAgiR,EAAS35S,UAAUo1T,cAAgB,SAAU92I,EAAQs2D,GACjD,OAAQA,GACJ,IAAK,WACD,OAAQ,QAAMt2D,EAAOh4H,UAA8B,WAAlBg4H,EAAOh4H,SAC5C,IAAK,WACD,OAAQ,QAAMg4H,EAAOz5J,UAA8B,WAAlBy5J,EAAOz5J,SAC5C,IAAK,YACD,OAAQ,QAAMy5J,EAAOh2J,WAAgC,YAAnBg2J,EAAOh2J,UAC7C,IAAK,cACD,OAAQ,QAAMg2J,EAAO8yG,aAAoC,cAArB9yG,EAAO8yG,YAC/C,QACI,OAAOx8C,EAEnB,EACA+kE,EAAS35S,UAAUkjT,YAAc,SAAU7wM,EAAKisE,EAAQtoJ,EAAIh1B,EAAK+G,GAE7D,KAAI,QAAMiuB,GAGL,GAAsB,IAAlB13B,KAAK82L,SAAgB,CAC1B,IAAIu+H,EAAQr1T,KAAKw/S,eAAiBr/R,WAAWuX,GAAMA,EAC/CopR,EAAa,IAAI,IAAY9gT,KAAKu/S,UAAUt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAOtoJ,GAAI,QAAS29R,GAAO,KAC1G,QAASr1T,KAAK82T,cAAc92I,EAAQt9K,GAAM+G,EAAOq3S,EAAW,GAChE,MAEI9gT,KAAK4yT,iBAAiB7+M,EAAKisE,EAAQtoJ,EAAIh1B,EAAK+G,EAEpD,EACA4xS,EAAS35S,UAAUkxT,iBAAmB,SAAU7+M,EAAKisE,EAAQtoJ,EAAIh1B,EAAK+G,EAAOo6D,GACzE,IAAI8uP,EACJ,IAAI,QAAM5+M,GACN,OAAO4+M,EAEX,IAAK,IAAI5lT,EAAI,EAAGi9S,EAASj2M,EAAIvwG,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CAClD,IAAI+0S,GAAS,QAAS9hI,EAAOtoJ,GAAIq8E,EAAIhnG,IACrC,GAAIgnG,EAAIhnG,IAAM+0S,GAAUA,EAAOrtR,aAAeiD,EAQ1C,OAPImsC,EACA8uP,EAAc5+M,EAAIrmG,OAAOX,EAAG,KAG5B,QAAS/M,KAAK82T,cAAc92I,EAAQt9K,GAAM+G,EAAOsqG,EAAIhnG,IACrD4lT,EAAc,IAEXA,EAEN,GAA4B,iBAAjB3yI,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAO60F,EAAIhnG,MAO1E,GAAI/M,KAAK+vE,OAAOmlK,sBAAsB,OAAgB,SAAM,QAAS,QAASnhI,EAAIhnG,KAAM,CACzF,IAAI00S,GAAa,QAAS,QAAS1tM,EAAIhnG,IAEvC,QAAoBtO,KADpBk0T,EAAc3yT,KAAK4yT,iBAAiBnR,EAAYzhT,KAAK6pT,eAAe7pI,GAAStoJ,EAAIh1B,EAAK+G,EAAOo6D,IAEzF,KAER,MAbqF,CACjF,IAAIm9O,GAAY,QAAShhI,EAAO9gK,MAAO60F,EAAIhnG,IAE3C,QAAoBtO,KADpBk0T,EAAc3yT,KAAK4yT,iBAAiB5R,EAAWhhT,KAAK6pT,eAAe7pI,GAAStoJ,EAAIh1B,EAAK+G,EAAOo6D,IAExF,KAER,CAQJ,CACA,OAAO8uP,CACX,EACAtX,EAAS35S,UAAU61L,aAAe,SAAUmR,EAAQ5hF,GAEhD,GADA9mH,KAAKguM,uBACU,aAAXtF,EAAuB,CAEvB,IADA,IAAIm6G,EAAW,GACN91S,EAAI,EAAGA,EAAI+5G,EAAKtjH,OAAQuJ,IAC7B81S,EAAS3gT,KAAKlC,KAAKqvT,QAAQrvT,KAAKq9K,YAAW,QAAMv2D,EAAK/5G,GAAG/M,KAAK+vE,OAAOr4C,MAAO,QAAS13B,KAAK+vE,OAAOr4C,GAAIovF,EAAK/5G,IAAI0nB,WAAa,QAE/HqyF,EAAO+7L,CACX,CACA,IAAI1sM,EAAY,CAAEn7E,KAAMh7B,KAAKu/S,SAAU72G,OAAQA,EAAQm6G,SAAU/7L,GACjE9mH,KAAKg7L,QAAQ,oBAAqB7kF,EACtC,EACAklM,EAAS35S,UAAUitT,gBAAkB,SAAUrD,GAC3C,KAAa3vS,IAAI2vS,EAAQ,OAAQtrT,KAAK8uT,cAAe9uT,KACzD,EACAq7S,EAAS35S,UAAU+8S,kBAAoB,SAAU8Q,GAC7C,IAAIttT,EAAQjC,KACZ,GAAIuvT,IAAWvvT,KAAKqW,SAAU,CAC1B,IAAIqzP,EAAU1pQ,KACdA,KAAK+2T,aAAe,IAAI,KAAM/2T,KAAKoD,QAAS,CACxCu5M,IAAK,SAAUl5M,GACPxB,EAAM+0T,eAAevzT,IAAqB,IAAfA,EAAEq3M,WAC7Br3M,EAAEg6J,cAAc9jJ,iBAChB+vP,EAAQ0kD,eAAe3qT,EAAEg6J,eAEjC,GAER,MAEQz9J,KAAK+2T,cACL/2T,KAAK+2T,aAAarnI,SAG9B,EACA2rH,EAAS35S,UAAUu1T,eAAiB,SAAU1H,GAC1C,GAAIA,EAAQ,CACR,IAAI2H,EAAUl3T,KACdA,KAAKm3T,cAAgB,IAAI,KAAMn3T,KAAKoD,QAAS,CACzCu5M,IAAK,SAAUl5M,GACXyzT,EAAQlxG,aAAaviN,EACzB,GAER,MAEQzD,KAAKm3T,eACLn3T,KAAKm3T,cAAcznI,SAG/B,EACA2rH,EAAS35S,UAAU01T,kBAAoB,SAAU7H,GAC7C,IAAIttT,EAAQjC,KACZ,GAAIuvT,EAAQ,CACR,IAAI8H,EAAUr3T,KACdA,KAAKs3T,eAAiB,IAAI,KAAMt3T,KAAKoD,QAAS,CAC1Cu5M,IAAK,SAAUl5M,IACiB,UAAvBxB,EAAM8oT,cAAoD,aAAvB9oT,EAAM8oT,cAA+B9oT,EAAM+0T,eAAevzT,IAAqB,IAAfA,EAAEq3M,WACzE,IAA1Br3M,EAAEg6J,cAAcjmJ,OACnB6/S,EAAQpM,cAAcxnT,EAE9B,GAER,MAEQzD,KAAKs3T,gBACLt3T,KAAKs3T,eAAe5nI,SAGhC,EACA2rH,EAAS35S,UAAU+pO,iBAAmB,SAAUhoO,GAC5CzD,KAAKk8S,iBAAkB,GACnBz4S,EAAEkQ,UAAYlQ,EAAEgQ,UAChBhQ,EAAEkW,iBAEFlW,EAAEgQ,SAAWzT,KAAKwiT,qBAClB,KAAa7mS,IAAI3b,KAAKoD,QAAS,cAAepD,KAAKmnT,mBAAoBnnT,KAE/E,EAEAq7S,EAAS35S,UAAUylT,mBAAqB,SAAU1jT,GAC9CA,EAAEkW,gBACN,EACA0hS,EAAS35S,UAAU62M,WAAa,WAC5B,KAAa58L,IAAI3b,KAAKoD,QAAS,YAAapD,KAAKyrO,iBAAkBzrO,MACnEA,KAAKi3T,gBAAe,GACM,SAAtBj3T,KAAK+qT,cACL/qT,KAAKo3T,mBAAkB,GAE3B,KAAaz7S,IAAI3b,KAAKoD,QAAS,YAAapD,KAAK0sO,YAAa1sO,MAC9D,KAAa2b,IAAI3b,KAAKoD,QAAS,WAAYpD,KAAK44B,aAAc54B,MAC9DA,KAAKkyN,eAAiB,IAAI,KAAelyN,KAAKoD,QAAS,CACnDu2M,UAAW35M,KAAKiiQ,iBAAiBtnO,KAAK36B,MACtCq5M,WAAYr5M,KAAKq5M,WACjBj2L,UAAW,WAEnB,EACAi4R,EAAS35S,UAAU+iN,aAAe,WAC9B,KAAa5gJ,OAAO7jE,KAAKoD,QAAS,YAAapD,KAAKyrO,kBACpDzrO,KAAKi3T,gBAAe,GACpBj3T,KAAKo3T,mBAAkB,GACvB,KAAavzP,OAAO7jE,KAAKoD,QAAS,YAAapD,KAAK0sO,aACpD,KAAa7oK,OAAO7jE,KAAKoD,QAAS,WAAYpD,KAAK44B,cAC9C54B,KAAKqW,UACNrW,KAAKkyN,eAAexiC,SAE5B,EACA2rH,EAAS35S,UAAUunT,QAAU,SAAU7lT,EAASgI,GAG5C,IAFA,IAAImsT,EAAU,GACVh9P,EAAKn3D,EAAQ6qE,aACT,QAAM1T,KACN,QAAQA,EAAInvD,IACZmsT,EAAQr1T,KAAKq4D,GAEjBA,EAAKA,EAAG0T,WAEZ,OAAOspP,CACX,EACAlc,EAAS35S,UAAUs1T,eAAiB,SAAUvzT,GAC1C,IACI+zT,EADApqT,EAAS3J,EAAEg6J,cAAcrwJ,OAU7B,OARIA,GAAU3J,EAAEq3M,WACO,IAAfr3M,EAAEq3M,SACF96M,KAAKy3T,UAAW,QAAQrqT,EAAQ,IAAMksS,GAElB,IAAf71S,EAAEq3M,WACP08G,GAAY,QAAQpqT,EAAQ,IAAMksS,KAGlCt5S,KAAKy3T,WAAaD,CAC9B,EACAnc,EAAS35S,UAAUyvT,aAAe,SAAUviP,EAAQ1vD,GAEhD,IADA,IAAI4nG,EAAO5nG,EAAM+uD,aACT,QAAM64C,IAAO,CACjB,GAAIA,IAASl4C,EACT,OAAO,EAEXk4C,EAAOA,EAAK74C,UAChB,CACA,OAAO,CACX,EACAotO,EAAS35S,UAAUyxP,YAAc,SAAU/vP,IACvC,QAAS,CAACA,GAAUq2S,IACpB,QAAc,CACVrsS,OAAQhK,EACRuX,MAAO,KAAQs+K,SAAW,GAAK,IAChCj5L,KAAKuE,gBACR,QAAYnB,EAChB,EACAi4S,EAAS35S,UAAU4xP,YAAc,SAAUlwP,IACvC,QAAYA,GACZA,EAAQ2kI,UAAY,IACpB,QAAY,CAAC3kI,GAAUq2S,EAC3B,EACA4B,EAAS35S,UAAUg2T,gBAAkB,SAAU9zG,GAC3CA,EAAQhiN,KAAK+yH,MAAM/yH,KAAKC,UAAU+hN,IAClC5jN,KAAK23T,WAAW33T,KAAKm+S,cACrBn+S,KAAKqjD,iBAAiBugK,GAClBA,EAAMpgN,OAAS,GACfxD,KAAK43T,SAASh0G,EAEtB,EAIAy3F,EAAS35S,UAAUgjT,oBAAsB,SAAU59L,GAC/C,GAAsB,IAAlB9mH,KAAK82L,SAAgB,CACrB,IAAI9W,EAAShgL,KAAK+vE,OACd+wO,EAAa,IAAI,IAAY9gT,KAAKu/S,UAAUt6D,cAAa,IAAI,KAAQlQ,MAAM/0D,EAAOtoJ,GAAI,QAASovF,GAAM,IACzG,GAAIg6L,EAAW,KACX9gT,KAAK63T,mBAAmB/W,EAAYh6L,EAAMg6L,EAAW,IACjD9gT,KAAK4gT,WAAW,CAIhB,IAHA,IAAIkX,EAAWhX,EAAW,GAAG9gT,KAAK+vE,OAAO+vO,UAAYgB,EAAW,GAAG9gT,KAAK+vE,OAAO+vO,UAAUrrR,WAAa,KAClG3vB,EAAa9E,KAAKmgT,cAAcngT,KAAKu/S,SAAUuY,GAC/CzqT,EAAQ,EACHinG,EAAM,EAAGA,EAAMxvG,EAAWtB,OAAQ8wG,IAAO,CAC9C,IAAI2sM,EAAUn8S,EAAWwvG,GAAKt0G,KAAK+vE,OAAOr4C,IAAIjD,YACF,IAAxCz0B,KAAKm+S,aAAa52S,QAAQ05S,IAC1B5zS,GAER,CACIA,IAAUvI,EAAWtB,SAAmD,IAAzCxD,KAAKm+S,aAAa52S,QAAQuwT,IAAoBA,GAC7E93T,KAAKm+S,aAAaj8S,KAAK41T,EAE/B,CAER,MACK,GAAsB,IAAlB93T,KAAK82L,SACV,IAAK,IAAIrzG,EAAI,EAAGA,EAAIzjF,KAAKu/S,SAAS/7S,OAAQigF,IAAK,CAE3C,IADYzjF,KAAKu/S,SAAS97N,GAAGzjF,KAAK+vE,OAAOr4C,IAAM13B,KAAKu/S,SAAS97N,GAAGzjF,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAC/EqyF,IAA6C,IAArC9mH,KAAKm+S,aAAa52S,QAAQu/G,GAAc,CAC1D9mH,KAAKm+S,aAAaj8S,KAAK4kH,GACvB,KACJ,CACA,IAAI26L,GAAa,QAASzhT,KAAK+vE,OAAO7wD,MAAMuV,WAAYz0B,KAAKu/S,SAAS97N,IAClEg+N,GACAzhT,KAAK63T,mBAAmBpW,EAAY36L,EAAM9mH,KAAKu/S,SAAS97N,GAEhE,CAER,EAIA43N,EAAS35S,UAAUm2T,mBAAqB,SAAUpW,EAAY36L,EAAMy4L,GAChE,IAAIyC,EACA30S,EAAQ,EACZ,GAAsB,IAAlBrN,KAAK82L,SAAgB,CACjByoH,IACAyC,EAAgBzC,EAASv/S,KAAK+vE,OAAOr4C,IAAM6nR,EAASv/S,KAAK+vE,OAAOr4C,IAAIjD,WAAa,MAErF,IAAK,IAAI3rB,EAAQ,EAAGA,EAAQ24S,EAAWj+S,OAAQsF,IAAS,CACpD,IAAI64G,EAAY8/L,EAAW34S,GAAO9I,KAAK+vE,OAAOr4C,IAAM+pR,EAAW34S,GAAO9I,KAAK+vE,OAAOr4C,IAAIjD,WAAa,KAC/F8qR,GAAYyC,GAAiBhiT,KAAK4gT,YACgB,IAA9C5gT,KAAKm+S,aAAa52S,QAAQy6S,KAAmE,IAA1ChiT,KAAKm+S,aAAa52S,QAAQo6G,IAC7E3hH,KAAKm+S,aAAaj8S,KAAKy/G,GAG3BA,IAAcmF,IAA6C,IAArC9mH,KAAKm+S,aAAa52S,QAAQu/G,IAChD9mH,KAAKm+S,aAAaj8S,KAAK4kH,IAEvBo7L,EAAgBliT,KAAKmgT,cAAcngT,KAAKu/S,SAAU59L,KAElD3hH,KAAK63T,mBAAmB3V,EAAep7L,EAAMy4L,EAErD,CACJ,MAKI,IAHIA,IACAyC,EAAgBzC,EAASv/S,KAAK+vE,OAAOr4C,IAAM6nR,EAASv/S,KAAK+vE,OAAOr4C,IAAIjD,WAAa,IAE5E3rB,EAAQ,EAAGA,EAAQ24S,EAAWj+S,OAAQsF,IAAS,CACpD,IASIo5S,EATAD,EAAeR,EAAW34S,GAAO9I,KAAK+vE,OAAOr4C,IAAM+pR,EAAW34S,GAAO9I,KAAK+vE,OAAOr4C,IAAIjD,WAAa,GAClG8qR,GAAYyC,GAAiBhiT,KAAK4gT,YACgB,IAA9C5gT,KAAKm+S,aAAa52S,QAAQy6S,KAAsE,IAA7ChiT,KAAKm+S,aAAa52S,QAAQ06S,IAC7EjiT,KAAKm+S,aAAaj8S,KAAK+/S,GAG3BA,IAAiBn7L,IAA6C,IAArC9mH,KAAKm+S,aAAa52S,QAAQu/G,IACnD9mH,KAAKm+S,aAAaj8S,KAAK4kH,IAEvBo7L,GAAgB,QAASliT,KAAK+vE,OAAO7wD,MAAMuV,WAAYgtR,EAAW34S,MAElE9I,KAAK63T,mBAAmB3V,EAAep7L,EAAM26L,EAAW34S,KAEX,IAA7C9I,KAAKm+S,aAAa52S,QAAQ06S,IAAwBjiT,KAAK4gT,WACvDvzS,IAEAA,IAAUo0S,EAAWj+S,SAAwD,IAA9CxD,KAAKm+S,aAAa52S,QAAQy6S,IAAyBhiT,KAAK4gT,WACvF5gT,KAAKm+S,aAAaj8S,KAAK8/S,EAE/B,CAER,EACA3G,EAAS35S,UAAU2hD,iBAAmB,SAAUugK,GAC5C,IAAK,IAAI72M,EAAI,EAAGA,EAAI62M,EAAMpgN,OAAQuJ,IAC9B/M,KAAK0kT,oBAAoB9gG,EAAM72M,GAEvC,EACAsuS,EAAS35S,UAAUq2T,eAAiB,SAAUrgS,EAAIwyN,EAAS8tE,EAAgBC,GACvE,GAAsB,IAAlBj4T,KAAK82L,SAAgB,CACrB,IAAIz1C,EAAMrhJ,KAAK8yT,WAAW9yT,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,GAEtD,GADA13B,KAAKu/S,SAAS7xS,OAAO2zI,EAAK,EAAG6oG,GACzB8tE,EAAgB,CAChBh4T,KAAKgzT,iBAAiBt7R,GACtB,IAAK,IAAI0iF,EAAI,EAAGA,EAAI69M,EAAWz0T,OAAQ42G,IACnCp6G,KAAKu/S,SAAS7xS,OAAO2zI,EAAK,EAAG42K,EAAW79M,IACxCinC,GAER,CACArhJ,KAAKggT,YAAchgT,KAAKigT,eAAejgT,KAAKu/S,SAAUv/S,KAAK+vE,OAAO+vO,SACtE,MAEI9/S,KAAKk4T,oBAAoBl4T,KAAKu/S,SAAUv/S,KAAK+vE,OAAQr4C,EAAI,CAACwyN,QAAUzrP,EAE5E,EACA48S,EAAS35S,UAAUw2T,oBAAsB,SAAU3Y,EAAUv/H,EAAQm4I,EAAQjuE,EAASphP,GAElF,IADA,IAAIsnI,EACKrjI,EAAI,EAAGi9S,EAASzK,EAAS/7S,OAAQuJ,EAAIi9S,EAAQj9S,IAAK,CACvD,IAAI+0S,GAAS,QAAS9hI,EAAOtoJ,GAAI6nR,EAASxyS,IAC1C,GAAIwyS,EAASxyS,IAAM+0S,GAAUA,EAAOrtR,aAAe0jS,EAE/C,OADA5Y,EAASxyS,GAAKm9O,EAAQ,IACf,EAEN,GAA4B,iBAAjBlqE,EAAO9gK,QAAuB,SAAM,QAAS8gK,EAAO9gK,MAAOqgS,EAASxyS,MAO/E,GAAI/M,KAAK+vE,OAAOmlK,sBAAsB,OAAgB,SAAM,QAAS,QAASqqE,EAASxyS,KAAM,CAC9F,IAAIi0S,GAAY,QAAS,QAASzB,EAASxyS,IAE3C,QAActO,KADd2xI,EAAQpwI,KAAKk4T,oBAAoBlX,EAAWhhT,KAAK6pT,eAAe7pI,GAASm4I,EAAQjuE,EAASphP,IAEtF,KAER,MAb0F,CACtF,IAAImtT,GAAW,QAASj2I,EAAO9gK,MAAOqgS,EAASxyS,IAE/C,QAActO,KADd2xI,EAAQpwI,KAAKk4T,oBAAoBjC,EAAUj2T,KAAK6pT,eAAe7pI,GAASm4I,EAAQjuE,EAASphP,IAErF,KAER,CAQJ,CACA,OAAOsnI,CACX,EACAirK,EAAS35S,UAAU02T,aAAe,WAC9Bp4T,KAAK2+S,eAAe3+S,KAAK4+S,kBACzB5+S,KAAKy+S,kBAAkBz+S,KAAK0+S,cACvB1+S,KAAKqW,UAKNrW,KAAKykN,eACLzkN,KAAKwoO,WACLxoO,KAAKo/S,iBANLp/S,KAAKu4M,aACLv4M,KAAKg6Q,YAOb,EACAqhC,EAAS35S,UAAUutT,cAAgB,SAAU/xC,EAAWt5D,EAAOx2M,EAAQ2hT,EAASsJ,EAASvvT,EAAOi6N,GAC5F,IAKIu1F,EALAr2T,EAAQjC,KACRg7B,EAAOh7B,KAAK+vE,OAAOmlK,WACnBqjF,EAAa,GACbljF,EAAQr1O,KAAKoiP,SAASpiP,KAAK+vE,QAC3BrtE,EAAM1C,KAAK+vE,OAAOr4C,GAElBy/M,EAAU,CACVG,aAAc,GACdD,eAAgB,GAChBE,eAAgB,IAEhBihF,EAAU,GACV50G,EACA40G,EAAUx4T,KAAK0b,SAASkoM,GAEnBx2M,IACgB,iBAAVA,EACPorT,EAAQ,GAAKprT,EAAOqnB,WAEG,iBAAXrnB,IACZorT,EAAQ,GAAKprT,EAAOxO,aAAa,YAAY61B,aAGrD,IAAK,IAAI1nB,EAAI,EAAGunG,EAAMkkN,EAAQh1T,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAChD,IAAI03S,EAAQzkT,KAAKq9K,WAAWm7I,EAAQzrT,IACpC,KAAI,QAAkB03S,GAAtB,CAGA,IAAIkO,EAAc3yT,KAAKypT,cAAc+O,EAAQzrT,IAC7CwrT,EAAWr2T,KAAKywT,EAFhB,CAGJ,CACA,OAAQz1C,GACJ,IAAK,SACmB,GAAhBt5D,EAAMpgN,OACN80T,EAAOt9R,EAAK6oC,OAAOnhE,EAAK61T,EAAW,GAAIljF,EAAM2E,UAAW3E,IAGxD8B,EAAQE,eAAiBkhF,EACzBD,EAAOt9R,EAAKgkK,YAAYm4C,EAASz0O,EAAK2yO,EAAM2E,UAAW3E,IAE3DijF,EAAK14Q,MAAK,SAAUn8C,GAAK,OAAOxB,EAAMw2T,cAAcD,EAAU,IACzDliL,OAAM,SAAU7yI,GAAK,OAAOxB,EAAMy2T,UAAUj1T,EAAI,IACrD,MACJ,IAAK,SACD80T,EAAW,GAAGv4T,KAAK+vE,OAAO1kD,MAAQ0jS,GAClCuJ,EAAOt9R,EAAKtY,OAAOhgB,EAAK61T,EAAW,GAAIljF,EAAM2E,UAAW3E,IACnDz1L,MAAK,SAAUn8C,GAAK,OAAOxB,EAAM02T,WAAWvrT,EAAQ2hT,EAAShsF,EAAU,IACvEzsF,OAAM,SAAU7yI,GAAK,OAAOxB,EAAMy2T,UAAUj1T,EAAG2J,EAAQ21N,EAAU,IACtE,MACJ,IAAK,SACD,GAAsB,GAAlBs1F,EAAQ70T,OACR80T,EAAOt9R,EAAKo+E,OAAOi/M,EAAQ,GAAIhjF,EAAM2E,UAAW3E,OAE/C,CACD,IAAI50G,EAAM,GACV,IAAS1zH,EAAI,EAAGunG,EAAM+jN,EAAQ70T,OAAQuJ,EAAIunG,EAAKvnG,IAC3C0zH,EAAIv+H,KAAKm2T,EAAQtrT,IAErBoqO,EAAQG,aAAe72G,EACvB63L,EAAOt9R,EAAKgkK,YAAYm4C,EAASz0O,EAAK2yO,EAAM2E,UAAW3E,EAC3D,CACAijF,EAAK14Q,MAAK,SAAUn8C,GAChB,IAAIytT,EAASjvT,EAAMo7K,WAAWjwK,GAC9BnL,EAAM22T,WAAWP,EAASnH,EAAQpoT,GAClC7G,EAAMs5S,eAAgB,CAC1B,IAAGjlK,OAAM,SAAU7yI,GAAK,OAAOxB,EAAMy2T,UAAUj1T,EAAI,IAG/D,EACA43S,EAAS35S,UAAU+2T,cAAgB,SAAU70G,GAEzC,IADA,IAAIi/F,EAAW,GACN91S,EAAI,EAAGunG,EAAMsvG,EAAMpgN,OAAQuJ,EAAIunG,EAAKvnG,IAAK,CAC9C,IAAI03S,EAAQzkT,KAAKq9K,WAAWumC,EAAM72M,IAClC81S,EAAS3gT,KAAKlC,KAAKqvT,QAAQ5K,KACvB,QAAMA,IAGVzkT,KAAKi1T,WAAWxQ,EACpB,CACAzkT,KAAKsyT,iBACiB,IAAlBtyT,KAAK82L,WACL92L,KAAKggT,YAAchgT,KAAKigT,eAAejgT,KAAKu/S,SAAUv/S,KAAK+vE,OAAO+vO,WAEtE9/S,KAAKu3L,aAAa,aAAcsrH,EACpC,EACAxH,EAAS35S,UAAUi3T,WAAa,SAAUvrT,EAAQ2hT,EAAShsF,GACvD,IAAI0hF,EAAQzkT,KAAKq9K,WAAWjwK,GACxB4hT,GAAS,QAAO,IAAMzV,EAAUkL,GACpCzkT,KAAKkvT,cAAczK,EAAOuK,EAAQD,EAAShsF,EAC/C,EACAs4E,EAAS35S,UAAUk3T,WAAa,SAAUh1G,EAAOstG,EAAQpoT,GACrD,IAAIkpT,EACA/pS,EAAOipS,EAASA,EAAOjsT,cAAc,IAAMwjN,GAAQ,KACnDT,EAAQhoN,KACRkxT,GAAUjpS,GAAQA,EAAK27C,UAAU5+D,SAASq0S,IACC,OAA3C6X,EAAOjsT,cAAc,IAAMu0S,GAC3BxxF,EAAMw4F,iBAAiB0Q,EAAQ,MAAM,WACjCc,EAASd,EAAOjsT,cAAc,IAAMu0S,GACpCxxF,EAAMytG,cAAc7xG,EAAOstG,EAAQpoT,GAAO,EAAMkpT,GAChDhqG,EAAMzwB,aAAa,WAAYqsB,EACnC,KAGA5jN,KAAKy1T,cAAc7xG,EAAOstG,EAAQpoT,GAAO,GACzC9I,KAAKu3L,aAAa,WAAYqsB,GAEtC,EACAy3F,EAAS35S,UAAUg3T,UAAY,SAAUj1T,EAAG2J,EAAQ21N,GAC5C31N,GACApN,KAAK64T,mBAAmBzrT,EAAQ21N,GAEpC/iO,KAAKg7L,QAAQ,gBAAiB,CAAEtzH,MAAOjkE,GAC3C,EACA43S,EAAS35S,UAAUm3T,mBAAqB,SAAUzrT,EAAQ21N,GACtD,IAAI0hF,EAAQzkT,KAAKq9K,WAAWjwK,GACxB4hT,GAAS,QAAO,IAAMzV,EAAUkL,GACpCzkT,KAAKovT,WAAW3K,EAAOuK,EAAQhvT,KAAKurT,QAASxoF,EACjD,EACAs4E,EAAS35S,UAAUo3T,wBAA0B,SAAUhyM,EAAM9rF,EAAM+9R,GAC/D,IAAI92T,EAAQjC,KACR8I,EAAQkyB,EAAK2iF,WAAU,SAAU3iF,GAAQ,OAAOA,EAAK/4B,EAAM8tE,OAAOr4C,KAAOsD,EAAK/4B,EAAM8tE,OAAOr4C,IAAIjD,aAAeqyF,CAAM,IACxH,IAAc,GAAVh+G,EACA,IAAK,IAAIiE,EAAI,EAAGA,EAAIiuB,EAAKx3B,OAAQuJ,IAAK,CAClC,IAAI00S,GAAa,QAASzhT,KAAK+vE,OAAO7wD,MAAMuV,WAAYuG,EAAKjuB,IAC7D,KAAK,QAAM00S,GAAa,CAEpB,GADA34S,EAAQ24S,EAAW9jM,WAAU,SAAU3iF,GAAQ,OAAOA,EAAK/4B,EAAM8tE,OAAOr4C,KAAOsD,EAAK/4B,EAAM8tE,OAAOr4C,IAAIjD,aAAeqyF,CAAM,KAC5G,GAAVh+G,EAGC,CACDiwT,EAAU72T,KAAK84B,EAAKjuB,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,YACvCz0B,KAAK84T,wBAAwB99R,EAAKjuB,GAAG/M,KAAK+vE,OAAOr4C,IAAIjD,WAAYz0B,KAAKu/S,SAAUwZ,GAChF,KACJ,CANI/4T,KAAK84T,wBAAwBhyM,EAAM26L,EAAYsX,EAOvD,CACJ,CAEJ,OAAOA,CACX,EAQA1d,EAAS35S,UAAUm9L,kBAAoB,SAAUoG,EAASC,GACtD,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,mBACDpF,KAAK2+S,eAAe3+S,KAAK4+S,kBACzB,MACJ,IAAK,WACG5+S,KAAK4+S,mBACL5+S,KAAK2vT,QAAQ38G,SAAWhzM,KAAKgzM,UAEjC,MACJ,IAAK,eACDhzM,KAAKy+S,kBAAkBz+S,KAAK0+S,cAC5B,MACJ,IAAK,sBACD,GAAI1+S,KAAKk+S,cAAc16S,OAAS,EAAG,CAC/B,IAAIyjT,EAAQjnT,KAAKq9K,WAAWr9K,KAAKk+S,cAAc,IAC/Cl+S,KAAKsqE,UAAW,EAChBtqE,KAAKsqT,kBACLtqT,KAAKkjT,WAAW+D,EAAO,MACvBjnT,KAAKsqE,UAAW,CACpB,CACAtqE,KAAKq/S,eAAer/S,KAAKwiT,qBACzBxiT,KAAKs0T,eAAet0T,KAAKwiT,qBACzB,MACJ,IAAK,gBACDxiT,KAAK++S,cACL/+S,KAAKkmT,aACL,MACJ,IAAK,eACGlmT,KAAKqzR,eACLrzR,KAAKm+S,aAAej5G,EAAQi5G,aAC5Bn+S,KAAK03T,gBAAgBzyH,EAAQk5G,eAEjC,MACJ,IAAK,YACGn+S,KAAKqzR,eACLrzR,KAAK4gT,UAAY37G,EAAQ27G,UACzB5gT,KAAKwjT,uBAET,MACJ,IAAK,WACDxjT,KAAK+/N,YAAY76B,EAAQ+e,SAAUhf,EAAQgf,UAC3C,MACJ,IAAK,YACDjkN,KAAKukO,eACL,MACJ,IAAK,gBACDvkO,KAAKu8S,WAAY,EACjBv8S,KAAKk+L,cAAc,CAAEkgH,cAAe,KAAM,GAC1Cp+S,KAAKg5T,cACLh5T,KAAKg+S,gBAAiB,EACtBh+S,KAAKk+L,cAAc,CAAEkgH,eAAe,QAAMn5G,EAAQm5G,eAAiB,GAAKn5G,EAAQm5G,gBAAiB,GACjGp+S,KAAKomT,iBACLpmT,KAAKg+S,gBAAiB,EACtBh+S,KAAKu8S,WAAY,EACjB,MACJ,IAAK,WACDv8S,KAAKo3T,mBAAkB,GACvBp3T,KAAKw+S,kBACqB,SAAtBx+S,KAAK+qT,cAA4B/qT,KAAKqW,UACtCrW,KAAKo3T,mBAAkB,GAE3B,MACJ,IAAK,WACDp3T,KAAKu+S,kBACLv+S,KAAKo4T,eACL,MACJ,IAAK,SACDp4T,KAAKu8S,WAAY,EACjBv8S,KAAK67S,eAAgB,EACrB77S,KAAKq+S,eAAgB,EACrBr+S,KAAKmuT,gBACLnuT,KAAKq+S,eAAgB,EACrBr+S,KAAKu8S,WAAY,EACjBv8S,KAAK67S,eAAgB,EACrB,MACJ,IAAK,gBACD77S,KAAK6+S,WAAW7+S,KAAK8+S,eACrB9+S,KAAKm0T,WAAWn0T,KAAK8+S,eACjB9+S,KAAKimT,gBACLjmT,KAAK++S,cACL/+S,KAAKkmT,cAET,MACJ,IAAK,eACD,IAA0B,IAAtBlmT,KAAKugT,eAA2BvgT,KAAKi5T,SAAU,CAG/C,IAFA,IAAIr1G,EAAQ5jN,KAAKoD,QAAQkzF,iBAAiB,MACtCvpF,EAAI,EACDA,EAAI62M,EAAMpgN,QACkC,SAA3CogN,EAAM72M,GAAGnO,aAAa,kBACtBoB,KAAKwgT,iBAAiB58F,EAAM72M,IAAI,EAAM,MAAM,GAEhDA,IAEJ/M,KAAKi5T,UAAW,CACpB,CACA,MACJ,IAAK,eACDj5T,KAAK+7S,aAAc,EACnB/7S,KAAKg/S,eAAiBh/S,KAAKi/S,iBAAiBj/S,KAAKk/S,cACjDl/S,KAAKmuT,gBACL,MACJ,IAAK,gBACDnuT,KAAKsqT,kBACLtqT,KAAKk+L,cAAc,CAAEggH,cAAej5G,EAAQi5G,gBAAiB,GAC7Dl+S,KAAK+mT,oBACL,MACJ,IAAK,eAGL,IAAK,YACD/mT,KAAKmuT,gBACL,MACJ,IAAK,mBACDnuT,KAAKk+L,cAAc,CAAE0/G,iBAAkB34G,EAAQ24G,mBAAoB,GACnE59S,KAAK09S,eAAe9pB,cAAgB3uF,EAAQ24G,iBAC5C59S,KAAKmuT,gBAIrB,EAIA9S,EAAS35S,UAAUguL,QAAU,WACzB1vL,KAAKiuM,gBACLjuM,KAAKoD,QAAQub,gBAAgB,yBAC7B3e,KAAKykN,eACLzkN,KAAKy+S,mBAAkB,GAClBz+S,KAAKqW,WACNrW,KAAKwoO,WACLxoO,KAAKo/S,gBAETp/S,KAAK+/N,YAAY//N,KAAKikN,SAAU,MAChCjkN,KAAK2+S,gBAAe,GACpB3+S,KAAK6+S,YAAW,GACZ7+S,KAAKyxP,WAAazxP,KAAKyxP,UAAUh8O,eACjCzV,KAAKyxP,UAAUh8O,cAAcgnC,YAAYz8C,KAAKyxP,WAElDj9O,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,KAClC,EASAq7S,EAAS35S,UAAUw3T,SAAW,SAAUt1G,EAAOx2M,EAAQtE,EAAO6nT,GAC1D,KAAI,QAAM/sG,GAAV,CAGAA,EAAQhiN,KAAK+yH,MAAM/yH,KAAKC,UAAU+hN,IAClC,IAAIstG,EAASlxT,KAAKq9K,WAAWjwK,GAE7B,GADApN,KAAKu7S,cAAgBoV,EACjB3wT,KAAK+vE,OAAOmlK,sBAAsB,IAC7Bl1O,KAAKy7F,UAINz7F,KAAK44T,WAAWh1G,EAAOstG,EAAQpoT,GAH/B9I,KAAKivT,cAAc,SAAU,KAAM7hT,EAAQ,KAAMw2M,EAAO96M,EAAO9I,KAAKu7S,oBAMvE,GAAsB,IAAlBv7S,KAAK82L,SACV92L,KAAKy1T,cAAc7xG,EAAOstG,EAAQpoT,OAEjC,CACD,GAAIooT,EACAlxT,KAAKy1T,cAAc7xG,EAAOstG,EAAQpoT,OAEjC,CACD86M,EAAQ5jN,KAAKqgT,cAAcz8F,GAC3B,IAAK,IAAI72M,EAAI,EAAGA,EAAI62M,EAAMpgN,OAAQuJ,IAAK,CACnC,IAAIghT,GAAM,QAAS/tT,KAAK+vE,OAAO+vO,SAAUl8F,EAAM72M,IAC/CmkT,EAASnD,EAAM/tT,KAAKq9K,WAAW0wI,EAAIt5R,YAAcs5R,EACjD/tT,KAAKy1T,cAAc,CAAC7xG,EAAM72M,IAAKmkT,EAAQpoT,EAC3C,CACJ,CACA9I,KAAKggT,YAAchgT,KAAKigT,eAAejgT,KAAKu/S,SAAUv/S,KAAK+vE,OAAO+vO,SACtE,CACA9/S,KAAK2gT,2BACD3gT,KAAKqzR,cAAgB69B,GACrBlxT,KAAKyjT,uBAAuByN,GAE3BlxT,KAAK+vE,OAAOmlK,sBAAsB,KAAgB,IACnDl1O,KAAKu7S,eAAgB,EACrBv7S,KAAKu3L,aAAa,WAAYqsB,GAnClC,CAqCJ,EAOAy3F,EAAS35S,UAAUy3T,UAAY,SAAUryM,GACrC,IAAIw0E,EAAMt7L,KAAKq9K,WAAWv2D,IACtB,QAAMw0E,IAAQt7L,KAAKqW,UAGvBrW,KAAK4rT,cAActwH,EAAK,KAC5B,EAMA+/G,EAAS35S,UAAUk2T,SAAW,SAAUh0G,GAChC5jN,KAAKqzR,cACLrzR,KAAKskT,iBAAiB1gG,GAAO,EAErC,EASAy3F,EAAS35S,UAAUs3T,YAAc,SAAUp1G,EAAOgzB,EAAO89E,IAChD,QAAM9wG,GAIHgzB,EAAQ,EACR52O,KAAKy0T,iBAAgB,QAAO,IAAMjb,EAAYx5S,KAAKoD,SAAUwzO,EAAO89E,GAGpE10T,KAAK40T,iBAAiBF,GAP1B10T,KAAKu1T,cAAc3xG,EAAOw1F,GAAa,EAU/C,EAKAiC,EAAS35S,UAAU03T,aAAe,SAAUx1G,IACnC,QAAMA,IACP5jN,KAAK0pT,gBAAgB9lG,EAE7B,EAKAy3F,EAAS35S,UAAU23T,YAAc,SAAUz1G,IAClC,QAAMA,IACP5jN,KAAKo2T,eAAexyG,EAE5B,EAOAy3F,EAAS35S,UAAU43T,cAAgB,SAAUxyM,GACzC,IAAIyyM,EAAY,GAChB,GAAqB,GAAjBv5T,KAAK82L,SAEL,IADA,IAAI+rH,EAAW7iT,KAAKolT,YAAYt+L,GACN,GAAnB+7L,EAASr/S,UAAgB,QAAMq/S,EAAS,GAAG7iT,KAAK+vE,OAAO+vO,YAC1DyZ,EAAUr3T,KAAK2gT,EAAS,GAAG7iT,KAAK+vE,OAAO+vO,UAAUrrR,YACjDouR,EAAW7iT,KAAKolT,YAAYvC,EAAS,GAAG7iT,KAAK+vE,OAAO+vO,UAAUrrR,iBAG5C,GAAjBz0B,KAAK82L,WACVyiI,EAAYv5T,KAAK84T,wBAAwBhyM,EAAM9mH,KAAKu/S,SAAUga,GAAWztT,WAE7E9L,KAAKw5T,UAAUD,GACf,IAAI9U,EAAQzkT,KAAKq9K,WAAWv2D,GAC5B,KAAK,QAAM29L,GAAQ,CACf,GAAmB,iBAAR39L,EAAkB,CACzB,IAAImiM,EAAUjpT,KAAKipT,QAAQxE,EAAO,IAAMnL,GACxCt5S,KAAKw5T,UAAUvQ,EACnB,CACAztR,YAAW,WAAcipR,EAAM7uG,eAAe,CAAE6jH,SAAU,UAAa,GAAG,IAC9E,CACJ,EASApe,EAAS35S,UAAU83T,UAAY,SAAU51G,EAAOgzB,EAAO89E,IAC9C,QAAM9wG,GAIHgzB,EAAQ,EACR52O,KAAK60T,eAAc,QAAO,IAAMrb,EAAYx5S,KAAKoD,SAAUwzO,EAAO89E,GAGlE10T,KAAK80T,eAAeJ,GAPxB10T,KAAKu1T,cAAc3xG,EAAOy1F,GAAY,EAU9C,EAIAgC,EAAS35S,UAAUg4T,mBAAqB,WAEpC,OADiB15T,KAAKm+S,YAE1B,EAIA9C,EAAS35S,UAAUi4T,iBAAmB,WAElC,OADoB35T,KAAKy7S,WAE7B,EAKAJ,EAAS35S,UAAU2tT,QAAU,SAAUvoM,GACnC,IAAIw0E,EAAMt7L,KAAKq9K,WAAWv2D,GAC1B,OAAO9mH,KAAKglT,YAAY1pH,GAAK,EACjC,EAUA+/G,EAAS35S,UAAU0jT,YAAc,SAAUt+L,GACvC,IAAIpvF,EAAK13B,KAAK+1B,MAAM+wF,GAEpB,GADA9mH,KAAKu2T,qBACD,QAAM7+R,GACN,OAAO13B,KAAKu/S,SAGZ,IAAIvkR,EAAOh7B,KAAKypT,cAAc/xR,GAC9B,OAAO,QAAMsD,GAAQ,GAAK,CAACA,EAEnC,EAQAqgR,EAAS35S,UAAUk4T,UAAY,SAAUC,EAAazsT,EAAQtE,EAAO6nT,GACjE,IAAIO,EAASlxT,KAAKq9K,WAAWjwK,GACzBy1S,EAAW,GACf,KAAI,QAAMqO,GAAV,CAGA,IAAK,IAAInkT,EAAI,EAAGA,EAAI8sT,EAAYr2T,OAAQuJ,IAAK,CACzC,IAAI+iT,EAAS9vT,KAAKq9K,WAAWw8I,EAAY9sT,IACzC81S,EAAS3gT,KAAKlC,KAAKqvT,QAAQS,KACvB,QAAMA,IAAWoB,EAAOnB,WAAWD,IAAW9vT,KAAKmxT,aAAarB,EAAQoB,KAG5ElxT,KAAKu7S,cAAgBoV,EACrB3wT,KAAK8xT,gBAAgBhC,EAAQoB,EAAQlxT,KAAM8I,GAC/C,CACI9I,KAAK+vE,OAAOmlK,sBAAsB,KAAgB,IAClDl1O,KAAKu7S,eAAgB,GAEzBv7S,KAAKu3L,aAAa,YAAasrH,EAb/B,CAcJ,EAMAxH,EAAS35S,UAAUo4T,YAAc,SAAU1sT,EAAQ88O,GAC/C,KAAI,QAAM98O,MAAW,QAAM88O,GAA3B,CAGA,IAAIxyN,EACAsgS,GAAiB,EACrB,GAAqB,GAAjBh4T,KAAK82L,UAAiBozD,EAAQ1mP,OAAS,EACvCw0T,GAAiB,OAEhB,GAAqB,GAAjBh4T,KAAK82L,UAAoC,IAAnBozD,EAAQ1mP,OAAc,CACjD,IAAIu2T,GAAoB,QAAS/5T,KAAK+vE,OAAO7wD,MAAMuV,WAAYy1N,EAAQ,KAClE,QAAM6vE,KACP/B,GAAiB,EAEzB,CACA,IAKIgC,EACAC,EANAxV,EAAQzkT,KAAKq9K,WAAWjwK,GAO5B,GANAsqB,EAAK+sR,EAAQA,EAAM7lT,aAAa,YAAe,EAAWwO,EAAOqnB,WAAa,KAC9Ez0B,KAAKk6T,YAAcl6T,KAAKypT,cAAc/xR,GACtCwyN,EAAUtoP,KAAK+yH,MAAM/yH,KAAKC,UAAUqoP,IAIf,GAAjBlqP,KAAK82L,UAAiBkhI,EAAgB,CACtC,IAAK,IAAI39M,EAAI,EAAGA,EAAI6vI,EAAQ1mP,OAAQ62G,IAChC,IAAI,QAAM6vI,EAAQ7vI,GAAGr6G,KAAK+vE,OAAO+vO,WAAY,CACzCma,EAAa/vE,EAAQ7vI,GACrB6vI,EAAQx8O,OAAO2sG,EAAG,GAClB,KACJ,CAEJ2/M,GAAc,QAAO,CAAC,EAAGh6T,KAAKk6T,YAAaD,EAC/C,MAEID,GAAc,QAAO,CAAC,EAAGh6T,KAAKk6T,YAAahwE,EAAQ,IAEvD,IAAI,QAAMu6D,GACNzkT,KAAK+3T,eAAergS,EAAIsiS,EAAahC,EAAgB9tE,OADzD,CAIAlqP,KAAKs7S,aAAc,EACnB,IAAI1kE,EAAQz2N,WAAWskS,EAAM7lT,aAAa,eACtCu7T,EAAW,KAASh+D,uBAAuBn8P,KAAKuE,cAAe,CAACy1T,GAAch6T,KAAK09S,eAAgB9mE,GACnG0zC,GAAK,QAAO,IAAMkvB,EAAYiL,GAC9BhD,GAAa,QAASzhT,KAAK+vE,OAAO7wD,MAAMuV,WAAYulS,GACxD,GAAKhC,GAAkB1tC,GAAQ0tC,KAAmB,QAAMvW,GAAc,CAClE,IAAInvC,EAAYmyC,EAAMhvS,cAClB3M,EAAQ7C,MAAMvE,UAAU6F,QAAQmN,KAAK49P,EAAUxtQ,WAAY2/S,IAC/D,QAAOA,GACPnyC,EAAUvtQ,aAAao1T,EAAS,GAAI7nD,EAAUxtQ,WAAWgE,IACzD9I,KAAK+3T,eAAergS,EAAIsiS,EAAahC,EAAgB9tE,GACjD8tE,GAAkB1tC,GAClBtqR,KAAKw5T,UAAU,CAAC9hS,GAExB,KACK,CACD,IAAIs3R,GAAS,QAAO,IAAMrV,EAAU8K,GAChC2V,GAAa,QAAO,IAAMzgB,EAAUwgB,EAAS,IAC7ClyS,GAAO,QAAO,OAASwgM,EAAMumG,GAC7BqL,GAAU,QAAO,OAAS5xG,EAAM2xG,GAChCnyS,GAAQoyS,IACJA,EAAQz2P,UAAU5+D,SAASq0S,IAAepxR,EAAK27C,UAAU5+D,SAASo0S,KAClE,QAAY,CAACihB,GAAUhhB,IACvB,QAAS,CAACghB,GAAUjhB,IAEfihB,EAAQz2P,UAAU5+D,SAASo0S,IAAgBnxR,EAAK27C,UAAU5+D,SAASq0S,KACxE,QAAY,CAACghB,GAAUjhB,IACvB,QAAS,CAACihB,GAAUhhB,IAEfpxR,EAAK27C,UAAU5+D,SAAS,iBAC7B,QAAS,CAACq1T,GAAU,iBAG5B,QAAOrL,GACP,IAAIsL,GAAU,QAAO,IAAM9f,EAASiK,GACpC6V,EAAQrsP,WAAWlpE,aAAaq1T,EAAYE,EAAQ9M,aACpDxtT,KAAK+3T,eAAergS,EAAIsiS,EAAahC,EAAgB9tE,EACzD,CAKA,GAJAu6D,EAAQzkT,KAAKq9K,WAAWjwK,GACpB4sT,EAAYh6T,KAAK+vE,OAAO8xB,UACxB4iN,EAAMhgT,aAAa,QAASu1T,EAAYh6T,KAAK+vE,OAAO8xB,UAEpDm4N,EAAYp0T,eAAe5F,KAAK+vE,OAAOq3I,iBAAmB4yG,EAAYh6T,KAAK+vE,OAAOq3I,gBAAiB,CACnG,IAAI7hF,EAAO,CAAC,GACZ,QAAMA,EAAMy0L,EAAYh6T,KAAK+vE,OAAOq3I,iBAChC7hF,EAAK2L,QACL,QAAS,CAACuzK,GAAQl/K,EAAK2L,MAAM1pI,MAAM,aAC5B+9H,EAAK2L,QAGZ,QAAWuzK,EAAOl/K,EAE1B,EACwC,IAApCvlI,KAAKk+S,cAAc32S,QAAQmwB,KAC3B+sR,EAAMhgT,aAAa,gBAAiB,SACpC,QAAS,CAACggT,GAAQ/pF,IAEtB16N,KAAKs7S,aAAc,EACnBt7S,KAAKu3L,aAAa,cAAe,CAACv3L,KAAKqvT,QAAQ5K,IA3D/C,CAnCA,CA+FJ,EAKApJ,EAAS35S,UAAU64T,YAAc,SAAU32G,IAClC,QAAMA,KACH5jN,KAAK+vE,OAAOmlK,sBAAsB,MAAgBl1O,KAAKy7F,UACvDz7F,KAAKivT,cAAc,SAAUrrG,GAG7B5jN,KAAKy4T,cAAc70G,GAG/B,EAMAy3F,EAAS35S,UAAU84T,WAAa,SAAUptT,EAAQ2hT,GAC9C,IAAI9sT,EAAQjC,KACZ,KAAI,QAAMoN,MAAW,QAAM2hT,IAAa/uT,KAAK0+S,aAA7C,CAGA,IAAI+F,EAAQzkT,KAAKq9K,WAAWjwK,GAC5B,KAAI,QAAMq3S,GAAV,CAGA,IAAIuK,GAAS,QAAO,IAAMzV,EAAUkL,GACpCzkT,KAAKsuT,cAAc7J,GACnB,IAAItuM,EAAYn2G,KAAKuuT,aAAa9J,EAAO,KAAM,MAC/CzkT,KAAKg7L,QAAQ,cAAe7kF,GAAW,SAAU40J,GACxCA,EAAa/3J,SACV/wG,EAAM8tE,OAAOmlK,sBAAsB,MAAgBjzO,EAAMw5F,UACzDx5F,EAAMgtT,cAAc,SAAU,KAAM7hT,EAAQ2hT,EAAS,KAAM,MAAM,GAGjE9sT,EAAMitT,cAAczK,EAAOuK,EAAQD,GAAS,GAGxD,GAbA,CAJA,CAkBJ,EAMA1T,EAAS35S,UAAUi2T,WAAa,SAAU/zG,GAClC5jN,KAAKqzR,cACLrzR,KAAKskT,iBAAiB1gG,GAAO,EAErC,EAEA9gB,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,wBAAoB,GAC3CohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,oBAAgB,GACvCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,2BAAuB,GAC9CohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,qBAAiB,GACxCohM,EAAW,EACP,QAAQ,CAAC,EAAGs4G,KACbC,EAAS35S,UAAW,iBAAa,GACpCohM,EAAW,EACP,WACDu4G,EAAS35S,UAAW,oBAAgB,GACvCohM,EAAW,EACP,QAAS,KACVu4G,EAAS35S,UAAW,gBAAY,GACnCohM,EAAW,EACP,SAAS,IACVu4G,EAAS35S,UAAW,gBAAY,GACnCohM,EAAW,EACP,QAAS,OACVu4G,EAAS35S,UAAW,gBAAY,GACnCohM,EAAW,EACP,SAAS,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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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,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAA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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,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,gBAC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UAAW,oBAAgB,GAClC,GAAW,EACP,QAAS,QACV83d,EAAI93d,UAAW,uBAAmB,GACrC,GAAW,EACP,QAAS,YACV83d,EAAI93d,UAAW,wBAAoB,GACtC,GAAW,EACP,QAAS,eACV83d,EAAI93d,UAAW,oBAAgB,GAClC,GAAW,EACP,QAAS,YACV83d,EAAI93d,UAAW,cAAU,GAC5B,GAAW,EACP,SAAS,IACV83d,EAAI93d,UAAW,yBAAqB,GACvC,GAAW,EACP,SAAS,IACV83d,EAAI93d,UAAW,2BAAuB,GACzC,GAAW,EACP,SAAS,IACV83d,EAAI93d,UAAW,uBAAmB,GACrC,GAAW,EACP,SAAS,IACV83d,EAAI93d,UAAW,wBAAoB,GACtC,GAAW,EACP,WACD83d,EAAI93d,UAAW,kBAAc,GAChC,GAAW,EACP,WACD83d,EAAI93d,UAAW,gBAAY,GAC9B,GAAW,EACP,SAAS,IACV83d,EAAI93d,UAAW,wBAAoB,GACtC,GAAW,EACP,QAAQ,CAAC,EAAG43d,KACbE,EAAI93d,UAAW,iBAAa,GAC/B,GAAW,EACP,WACD83d,EAAI93d,UAAW,eAAW,GAC7B,GAAW,EACP,WACD83d,EAAI93d,UAAW,cAAU,GAC5B,GAAW,EACP,WACD83d,EAAI93d,UAAW,aAAS,GAC3B,GAAW,EACP,WACD83d,EAAI93d,UAAW,iBAAa,GAC/B,GAAW,EACP,WACD83d,EAAI93d,UAAW,gBAAY,GAC9B,GAAW,EACP,WACD83d,EAAI93d,UAAW,gBAAY,GAC9B,GAAW,EACP,WACD83d,EAAI93d,UAAW,eAAW,GAC7B,GAAW,EACP,WACD83d,EAAI93d,UAAW,mBAAe,GACjC,GAAW,EACP,WACD83d,EAAI93d,UAAW,gBAAY,GAC9B,GAAW,EACP,WACD83d,EAAI93d,UAAW,eAAW,GAC7B,GAAW,EACP,WACD83d,EAAI93d,UAAW,iBAAa,GACzB,GAAW,CACb,MACD83d,EAEP,CAntEwB,CAmtEtB,MD/3EE,GAAwC,WACxC,IAAI52R,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnm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MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,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,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAA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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,YACA,eACA,SACA,WACA,iBACA,YACA,eACA,eACA,eACA,UACA,oBAEA,GAAoC,WACpC,SAAS63M,IACT,CA0EA,OAzEAA,EAAmBC,eAAiB,WAChC,MAAO,CACHv2M,UAAW,CACPw2M,KAAM,GACNt6E,WAAY,IAGxB,EACAo6E,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,EAAE3lF,WAAY,KAAK9V,gBAAgB8kG,EAAU74G,SAASmC,EAAE0nB,WAAY,KAAKovL,UAGxH,EACAZ,EAAmBM,cAAgB,WAC/B,IAAI5vF,EAAW3zH,KAAKsjN,YAAYhtH,iBAAiBt2F,KAAK8iN,WAAW/+M,KAAK,MAClE4vH,EAASnwH,OAAS,GAClBmwH,EAAS/vH,SAAQ,SAAUR,GACvB,GAAOA,EACX,GAKR,EACA6/M,EAAmBO,eAAiB,WAChC,IAAI7vF,EAAW3zH,KAAKsjN,YAAYhtH,iBAAiB,IAAM,GAASvyF,KAAK,OAAS,KAC1E4vH,EAASnwH,OAAS,GAClBmwH,EAAS/vH,SAAQ,SAAUR,GACvB,GAASQ,SAAQ,SAAU2hI,GACnBniI,EAAQwhF,aAAa2gD,IACrBniI,EAAQub,gBAAgB4mH,EAEhC,GACJ,GAKR,EACA09E,EAAmBQ,eAAiB,WAChC,IAAIxhN,EAAQjC,KAEZA,KAAK+iN,YAAYn/M,SAAQ,SAAUkmB,EAAMhhB,GACrC,IAAI6qH,EAAW1xH,EAAMqhN,YAAYhtH,iBAAiBxsE,EAAK1e,UACnDuoH,EAASnwH,OAAS,GAClBmwH,EAAS/vH,SAAQ,SAAUR,GACvBA,EAAQub,gBAAgBmL,EAAK25F,UACjC,GAER,GACJ,EACOw/F,CACX,CA7EuC,GCxEhC,SAAS,GAAY7/M,GAGxB,IAFA,IAAI0jH,EACA4gG,EAAYtkN,EAAQ0B,WACfiI,EAAI,EAAGA,EAAI26M,EAAUlkN,OAAQuJ,IAElC,GAAsB,KADtB+5G,EAAO4gG,EAAU36M,IACR2O,SACL,OAAOorG,EAGf,OAAO,IACX,CClDA,IA0BW,GA1BP,GAAwC,WACxC,IAAI87E,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,GASA,SAAWopG,GAIPA,EAAmB,KAAI,OAIvBA,EAAoB,MAAI,QAIxBA,EAAkB,IAAI,MAItBA,EAAqB,OAAI,QAC5B,CAjBD,CAiBG,KAAiB,GAAe,CAAC,IACR,IAAI,GAAzB,IACH,GACK,QADL,GAGS,YAHT,GAIS,aAcT,GAAwB,SAAUtvM,GAQlC,SAASs7B,EAAO/nC,EAAS3E,GACrB,OAAOoR,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,IAClD,CAiSA,OA1SA,GAAU8vC,EAAQt7B,GAUlBs7B,EAAOpuC,UAAUirM,UAAY,WAE7B,EAOA78J,EAAOpuC,UAAU6a,OAAS,WdoMvB,IAAsBnZ,EACrBiiM,EA2BgBD,Ec/NhBplM,KAAKwmK,aACLxmK,KAAKgkN,oBdkMgB5gN,EclMkBpD,KAAKoD,SdoMjB,KA0BXgiM,Ec9NqC,CAAEh6L,SAAU,UdmMjEi6L,EA4Bc,CACdj6L,SAAUg6L,GAAiBA,EAAch6L,SAAWg6L,EAAch6L,SAAW,KAC7Eo1L,OAAQ4E,GAAiBA,EAAc5E,OAAS4E,EAAc5E,OAAS,KACvE8E,WAAYF,GAAiBA,EAAcE,WAC3CC,eAAgBH,GAAiBA,EAAcG,eAC/C1zF,SAAUuzF,GAAiBA,EAAcvzF,SAAWuzF,EAAcvzF,SAAW,MAhCjEyzF,iBAAoD7mM,IAA3B4mM,EAAYC,WAC1C,WAEN,GAELliM,EAAQqB,aAAa,cAAe,QACpC,GAAakX,IAAIvY,EAAS,YAAa,GAAe,CAAEwrE,OAAQxrE,EAASgiM,cAAeC,IACxF,GAAa1pL,IAAIvY,EAAS,UAAW,GAAiB,CAAEwrE,OAAQxrE,EAASgiM,cAAeC,EAAavkE,KATpDA,YAUjD,GAAanlH,IAAIvY,EAAS,aAAc,GAAoB,CAAEwrE,OAAQxrE,EAASgiM,cAAeC,IAC1F,GAAQrM,WACR,GAAar9K,IAAIvY,EAAS,gBAAiB,GAAoB,CAAEwrE,OAAQxrE,EAASgiM,cAAeC,IAE9F,WACHjiM,EAAQub,gBAAgB,eACxB,GAAaklD,OAAOzgE,EAAS,YAAa,IAC1C,GAAaygE,OAAOzgE,EAAS,UAAW,IACxC,GAAaygE,OAAOzgE,EAAS,aAAc,IAC3C,GAAaygE,OAAOzgE,EAAS,gBAAiB,GACjD,IcrNGpD,KAAKqtM,gBACT,EACAv9J,EAAOpuC,UAAU8kK,WAAa,WAO1B,GANIxmK,KAAKikN,UACL,GAAS,CAACjkN,KAAKoD,SAAUpD,KAAKikN,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAEzExH,KAAKkkN,WACLlkN,KAAKoD,QAAQwgE,UAAUjoD,IAAI,KAE1B,MAAe,MAAuC,iBAAzB3b,KAAKu/L,gBAAqC,CACxE,GAAIv/L,KAAKqlC,QAAS,CACd,IAAI8+K,EAAenkN,KAAwB,oBAAI,GAAmBojN,SAASpjN,KAAKqlC,SAAWrlC,KAAKqlC,QAChGrlC,KAAKoD,QAAQ2kI,UAAYo8E,CAC7B,CACAnkN,KAAKokN,YACT,CACIpkN,KAAKksM,WACLlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAI,IAE3B3b,KAAKqW,SACLrW,KAAKqkN,cAAcrkN,KAAKqW,UAGxBrW,KAAKu4M,YAEb,EACAzoK,EAAOpuC,UAAU2iN,cAAgB,SAAUhuM,GACvCrW,KAAKoD,QAAQiT,SAAWA,CAC5B,EACAy5B,EAAOpuC,UAAU0iN,WAAa,WAC1B,GAAIpkN,KAAKskN,QAAS,CACd,IAAIvhI,EAAO/iF,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,cAAgBzC,KAAKskN,UACnEtkN,KAAKoD,QAAQ2/F,YAAYl3F,QAI1Bk3E,EAAKnf,UAAUjoD,IAAI,UAAY3b,KAAKukN,aAAar7M,eACvB,QAAtBlJ,KAAKukN,cAAgD,WAAtBvkN,KAAKukN,cACpCvkN,KAAKoD,QAAQwgE,UAAUjoD,IAAI,KAAO3b,KAAKukN,aAAar7M,cAAgB,cALxElJ,KAAKoD,QAAQwgE,UAAUjoD,IAAI,IAQ/B,IAAImrG,EAAO9mH,KAAKoD,QAAQ0B,WAAW,IAC/BgiH,GAA+B,SAAtB9mH,KAAKukN,cAAiD,QAAtBvkN,KAAKukN,aAI9CvkN,KAAKoD,QAAQM,YAAYq/E,GAHzB/iF,KAAKoD,QAAQ2B,aAAag+E,EAAM+jC,EAKxC,CACJ,EACAh3E,EAAOpuC,UAAU62M,WAAa,WACtBv4M,KAAK0hF,UACL,GAAa/lE,IAAI3b,KAAKoD,QAAS,QAASpD,KAAKwkN,gBAAiBxkN,KAEtE,EACA8vC,EAAOpuC,UAAU+iN,aAAe,WACxBzkN,KAAK0hF,UACL,GAAa7d,OAAO7jE,KAAKoD,QAAS,QAASpD,KAAKwkN,gBAExD,EACA10K,EAAOpuC,UAAU8iN,gBAAkB,WAC3BxkN,KAAKoD,QAAQwgE,UAAU5+D,SAAS,YAChChF,KAAKoD,QAAQwgE,UAAUC,OAAO,YAG9B7jE,KAAKoD,QAAQwgE,UAAUjoD,IAAI,WAEnC,EAMAm0B,EAAOpuC,UAAUguL,QAAU,WACvB,IAAI9rH,EAAY,CAAC,GAAsB,GAAkB,GAAsB,YAAa,SAAU,WAClG,YAAa,SAAU,YAAa,UAAW,WAAY,WAAY,UACvE,iBAAkB,qBAClB5jE,KAAKikN,WACLrgJ,EAAYA,EAAUv7D,OAAOrI,KAAKikN,SAASz8M,MAAM,OAErDgN,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,MAC9B,GAAY,CAACA,KAAKoD,SAAUwgE,GACvB5jE,KAAKoD,QAAQxE,aAAa,UAC3BoB,KAAKoD,QAAQub,gBAAgB,SAE7B3e,KAAKqW,UACLrW,KAAKoD,QAAQub,gBAAgB,YAE7B3e,KAAKqlC,UACLrlC,KAAKoD,QAAQ2kI,UAAY/nI,KAAKoD,QAAQ2kI,UAAUz9H,QAAQtK,KAAKqlC,QAAS,KAE1E,IAAI09C,EAAO/iF,KAAKoD,QAAQ6B,cAAc,mBAClC89E,GACA,GAAOA,GAEX/iF,KAAKykN,cAIT,EAOA30K,EAAOpuC,UAAU69L,cAAgB,WAC7B,MAAO,KACX,EAOAzvJ,EAAOpuC,UAAUqsM,eAAiB,WAC9B,OAAO/tM,KAAKuuM,aAAa,GAC7B,EAOAz+J,EAAO49J,OAAS,WAEhB,EASA59J,EAAOpuC,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAEpD,IADA,IAAIniH,EAAO/iF,KAAKoD,QAAQ6B,cAAc,mBAC7BG,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,YACG6/L,EAAQif,UACRlkN,KAAKoD,QAAQwgE,UAAUjoD,IAAI,IAG3B3b,KAAKoD,QAAQwgE,UAAUC,OAAO,IAElC,MACJ,IAAK,WACD7jE,KAAKqkN,cAAcpf,EAAQ5uL,UAC3B,MACJ,IAAK,UACG0sE,EACIkiH,EAAQqf,SACRvhI,EAAKtgF,UAAY,cAAgBwiM,EAAQqf,QACrCtkN,KAAKoD,QAAQ2/F,YAAYl3F,SACC,SAAtB7L,KAAKukN,aACLxhI,EAAKnf,UAAUjoD,IAAI,eAGnBonE,EAAKnf,UAAUjoD,IAAI,kBAK3B,GAAOonE,GAIX/iF,KAAKokN,aAET,MAEJ,IAAK,eACD,GAAY,CAACpkN,KAAKoD,SAAU,CAAC,iBAAkB,uBAC/C2/E,EAAO/iF,KAAKoD,QAAQ6B,cAAc,qBAE9B,GAAO89E,GAEX/iF,KAAKokN,aACL,MACJ,IAAK,WACGlf,EAAQ+e,UACR,GAAY,CAACjkN,KAAKoD,SAAU8hM,EAAQ+e,SAASz8M,MAAM,MAEnDy9L,EAAQgf,UACR,GAAS,CAACjkN,KAAKoD,SAAU6hM,EAAQgf,SAAS35M,QAAQ,OAAQ,KAAKuB,OAAOrE,MAAM,MAEhF,MACJ,IAAK,YACGy9L,EAAQiH,UACRlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAI,IAG3B3b,KAAKoD,QAAQwgE,UAAUC,OAAO,IAElC,MACJ,IAAK,UACU,GAAY7jE,KAAKoD,UAExBpD,KAAKoD,QAAQwgE,UAAUC,OAAO,MAE7B,MAAe,OAAe7jE,KAAKmjL,kBAA6C,iBAAzBnjL,KAAKu/L,mBACzDv/L,KAAK0kN,sBACLzf,EAAQ5/J,QAAU,GAAmB+9K,SAASne,EAAQ5/J,UAE1DrlC,KAAKoD,QAAQ2kI,UAAYk9D,EAAQ5/J,QACjCrlC,KAAKokN,cAET,MAEJ,IAAK,WACGnf,EAAQvjH,SACR,GAAa/lE,IAAI3b,KAAKoD,QAAS,QAASpD,KAAKwkN,gBAAiBxkN,OAG9D,GAAa6jE,OAAO7jE,KAAKoD,QAAS,QAASpD,KAAKwkN,iBAChD,GAAY,CAACxkN,KAAKoD,SAAU,CAAC,cAKjD,EAQA0sC,EAAOpuC,UAAUqsC,MAAQ,WACrB/tC,KAAKoD,QAAQ2qC,OACjB,EAQA+B,EAAOpuC,UAAUijN,QAAU,WACvB3kN,KAAKoD,QAAQwS,OACjB,EACA,GAAW,CACP,GAAS,SACVk6B,EAAOpuC,UAAW,oBAAgB,GACrC,GAAW,CACP,GAAS,KACVouC,EAAOpuC,UAAW,eAAW,GAChC,GAAW,CACP,IAAS,IACVouC,EAAOpuC,UAAW,gBAAY,GACjC,GAAW,CACP,IAAS,IACVouC,EAAOpuC,UAAW,iBAAa,GAClC,GAAW,CACP,GAAS,KACVouC,EAAOpuC,UAAW,gBAAY,GACjC,GAAW,CACP,GAAS,KACVouC,EAAOpuC,UAAW,eAAW,GAChC,GAAW,CACP,IAAS,IACVouC,EAAOpuC,UAAW,gBAAY,GACjC,GAAW,CACP,MACDouC,EAAOpuC,UAAW,cAAU,GAC/B,GAAW,CACP,IAAS,IACVouC,EAAOpuC,UAAW,2BAAuB,GAC5C,GAAW,CACP,MACDouC,EAAOpuC,UAAW,eAAW,GACvB,GAAW,CAChB,IACDouC,EAEP,CA5S2B,CA4SzB,oDCtWE2qL,GAAQ,UACRo/E,GAAa,gBACbowV,GAAa,gBAEbC,GAAW,cACXC,GAAc,iBAKPC,GAAqB,CAC5B,EAAK,QACL,EAAK,SACL,IAAK,WACL,EAAK,WACL,IAAK,YACL,IAAK,SACL,EAAK,QACL,EAAK,cACL,EAAK,gBAOF,SAASr+Z,KAKZ,IAJA,QAAW/rO,KAAKoD,QAAS,CACrB,KAAQ,UAAW,aAAgB,MAAO,eAAkB,MAC5D,WAAc,QAAS,YAAa,cAEpCpD,KAAK8vI,KAAM,CAEX,IADA,IAAIu6f,EAAYrqoB,KAAK8vI,KAAKtoI,MAAM,KACvBuF,EAAI,EAAGA,EAAIs9nB,EAAU7moB,OAAQuJ,IAClC,GAA8C,OAA1Cs9nB,EAAUt9nB,GAAGs9nB,EAAUt9nB,GAAGvJ,OAAS,GAAa,CAChD6moB,EAAUt9nB,GAAKs9nB,EAAUt9nB,GAAK,IAE9B,IADA,IAAIu9nB,EAAiBD,EAAUt9nB,GAAGvF,MAAM,KAC/B4yG,EAAI,EAAGA,EAAIkwhB,EAAe9moB,OAAQ42G,IACiB,OAApDkwhB,EAAelwhB,GAAGkwhB,EAAelwhB,GAAG52G,OAAS,KAC7C8moB,EAAelwhB,GAAKkwhB,EAAelwhB,GAAK,KAE5CmwhB,GAAqB71nB,KAAK1U,KAAMsqoB,EAAelwhB,GAEvD,MAGI,IADIkwhB,EAAiBD,EAAUt9nB,GAAGvF,MAAM,MACrBhE,OAAS,EACxB,KAAIgnoB,GAAW,EACf,IAASpwhB,EAAI,EAAGA,EAAIkwhB,EAAe9moB,OAAQ42G,IACb,OAAtBkwhB,EAAelwhB,IACfp6G,KAAKyqoB,mBAAmBvooB,KAAK,KAC7BlC,KAAK0qoB,YAAcJ,EAAelwhB,GAAK,KAEZ,KAAtBkwhB,EAAelwhB,GACpBowhB,GAAW,EAEiB,KAAtBF,EAAelwhB,IAAaowhB,GAAapwhB,IAAMkwhB,EAAe9moB,OAAS,GAC7ExD,KAAKyqoB,mBAAmBvooB,KAAK,IAAMoooB,EAAelwhB,GAAK,KACvDp6G,KAAK0qoB,YAAc1qoB,KAAK2qoB,WACxBH,GAAW,GAGXD,GAAqB71nB,KAAK1U,KAAMsqoB,EAAelwhB,GAfnC,MAoBpBmwhB,GAAqB71nB,KAAK1U,KAAMsqoB,EAAe,IAM3D,GAFAtqoB,KAAK4qoB,gBAAkB5qoB,KAAK0qoB,WAC5B1qoB,KAAK6qoB,WAAa7qoB,KAAK0qoB,WAAWpgoB,QAAQ,eAAgBtK,KAAK2qoB,cAC1D,QAAkB3qoB,KAAK8qoB,kBACxB,IAAS/9nB,EAAI,EAAGA,EAAI/M,KAAK6qoB,WAAWrnoB,OAAQuJ,KACnC,QAAkB/M,KAAK8qoB,iBAAiB9qoB,KAAK6qoB,WAAW99nB,OAEzD/M,KAAK6qoB,WAAa7qoB,KAAK6qoB,WAAWvgoB,QAAQ,IAAI+nH,OAAOryH,KAAK6qoB,WAAW99nB,GAAI,KAAM/M,KAAK2qoB,aAIhG,IAAII,EAAe,EACnB,GAAI/qoB,KAAK0qoB,WAAWh/nB,MAAM,IAAI2mH,OAAO,OACjC,IAAStlH,EAAI,EAAGA,EAAI/M,KAAK0qoB,WAAWlnoB,OAAQuJ,IACpCqtG,EAAI,EACJrtG,GAAK,IACLqtG,EAAIrtG,GAGRqtG,GADA2whB,EAAe/qoB,KAAK0qoB,WAAWlnoB,OAASxD,KAAK6qoB,WAAWrnoB,OAEnDuJ,EAAI,GAAgC,OAA3B/M,KAAK0qoB,WAAW39nB,EAAI,KAAwC,MAAvB/M,KAAK0qoB,WAAW39nB,IACxC,MAAvB/M,KAAK0qoB,WAAW39nB,IAAqC,MAAvB/M,KAAK0qoB,WAAW39nB,MAC9C/M,KAAK6qoB,WAAa7qoB,KAAK6qoB,WAAW79nB,UAAU,EAAGotG,GAC3Cp6G,KAAK6qoB,WAAW79nB,UAAWD,EAAI,EAAKg+nB,EAAc/qoB,KAAK6qoB,WAAWrnoB,QACtExD,KAAK4qoB,gBAAkB5qoB,KAAK4qoB,gBAAgB59nB,UAAU,EAAGotG,GACrDp6G,KAAK4qoB,gBAAgB59nB,UAAWD,EAAI,EAAKg+nB,EAAc/qoB,KAAK4qoB,gBAAgBpnoB,SAEzD,OAAvBxD,KAAK0qoB,WAAW39nB,KAChB/M,KAAK6qoB,WAAa7qoB,KAAK6qoB,WAAW79nB,UAAU,EAAGotG,GAAKp6G,KAAK0qoB,WAAW39nB,EAAI,GACpE/M,KAAK6qoB,WAAW79nB,UAAWD,EAAI,EAAKg+nB,EAAc/qoB,KAAK6qoB,WAAWrnoB,QACtExD,KAAK4qoB,gBAAkB5qoB,KAAK4qoB,gBAAgB59nB,UAAU,EAAGotG,GAAKp6G,KAAK4qoB,gBAAgB79nB,EAAI,GACnF/M,KAAK4qoB,gBAAgB59nB,UAAWD,EAAI,EAAKg+nB,EAAc/qoB,KAAK4qoB,gBAAgBpnoB,cAKxFxD,KAAK6qoB,WAAa7qoB,KAAK6qoB,WAAWvgoB,QAAQ,SAAU,IACpDtK,KAAK4qoB,gBAAkB5qoB,KAAK0qoB,WAAWpgoB,QAAQ,SAAU,KAE7D,QAAWtK,KAAKoD,QAAS,CAAE,eAAgB,SAC/C,CACJ,CAMO,SAAS4noB,KACZztX,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAChCI,GAAav2nB,KAAK1U,KAAMA,KAAKyJ,MACjC,CAMO,SAAS8uM,KACZ,KAAa58L,IAAI3b,KAAKoD,QAAS,UAAW8noB,GAAyBlroB,MACnE,KAAa2b,IAAI3b,KAAKoD,QAAS,WAAY+noB,GAA0BnroB,MACrE,KAAa2b,IAAI3b,KAAKoD,QAAS,QAASgooB,GAAuBproB,MAC/D,KAAa2b,IAAI3b,KAAKoD,QAAS,QAASiooB,GAAkBrroB,MAC1D,KAAa2b,IAAI3b,KAAKoD,QAAS,QAASkooB,GAAuBtroB,MAC/D,KAAa2b,IAAI3b,KAAKoD,QAAS,OAAQmooB,GAAsBvroB,MAC7D,KAAa2b,IAAI3b,KAAKoD,QAAS,QAASoooB,GAAuBxroB,MAC/D,KAAa2b,IAAI3b,KAAKoD,QAAS,MAAOqooB,GAAqBzroB,MAC3D,KAAa2b,IAAI3b,KAAKoD,QAAS,OAAQsooB,GAAsB1roB,MAC7D,KAAa2b,IAAI3b,KAAKoD,QAAS,YAAauooB,GAA2B3roB,MACvE,KAAa2b,IAAI3b,KAAKoD,QAAS,UAAWwooB,GAAyB5roB,MAC/DA,KAAKuqH,UACL20G,GAAexqN,KAAK1U,MAChBA,KAAK2+N,aACL,KAAahjN,IAAI3b,KAAK2+N,YAAa,QAASC,GAAkB5+N,MAG1E,CAMO,SAAS45M,KACZ,KAAa/1I,OAAO7jE,KAAKoD,QAAS,UAAW8noB,IAC7C,KAAarnkB,OAAO7jE,KAAKoD,QAAS,WAAY+noB,IAC9C,KAAatnkB,OAAO7jE,KAAKoD,QAAS,QAASgooB,IAC3C,KAAavnkB,OAAO7jE,KAAKoD,QAAS,QAASiooB,IAC3C,KAAaxnkB,OAAO7jE,KAAKoD,QAAS,QAASkooB,IAC3C,KAAaznkB,OAAO7jE,KAAKoD,QAAS,OAAQmooB,IAC1C,KAAa1nkB,OAAO7jE,KAAKoD,QAAS,QAASoooB,IAC3C,KAAa3nkB,OAAO7jE,KAAKoD,QAAS,MAAOqooB,IACzC,KAAa5nkB,OAAO7jE,KAAKoD,QAAS,YAAauooB,IAC/C,KAAa9nkB,OAAO7jE,KAAKoD,QAAS,UAAWwooB,IACzC5roB,KAAK2+N,aACL,KAAa96J,OAAO7jE,KAAK2+N,YAAa,QAASC,GAEvD,CAMO,SAASM,KACRl/N,KAAK68N,iBACL,KAAalhN,IAAI3b,KAAK45Q,SAASn7C,YAAa,uBAAwBC,GAAc1+N,KAE1F,CACA,SAAS0+N,GAAaj7N,GAClBA,EAAEkW,iBACG3Z,KAAK45Q,SAASn7C,YAAY76J,UAAU5+D,SAAS,uBAAyBhF,KAAK45Q,SAAS9xO,UAAU87B,UAAU5+D,SAAS,oBAClHkrF,GAAMx7E,KAAK1U,KAAMyD,GACjBzD,KAAKyJ,MAAQ,GAErB,CACA,SAASymF,GAAM38E,GACX,IAAI9J,EAAQzJ,KAAKoD,QAAQqG,MACzB8zQ,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAChC7qoB,KAAK6roB,WAAWxnhB,QAAQ,CACpB56G,MAAOzJ,KAAK6qoB,WAAYjrjB,WAAY5/E,KAAKoD,QAAQ4d,eAAgBk+D,SAAUl/E,KAAKoD,QAAQ8d,eAE5F4qnB,GAAuBp3nB,KAAK1U,KAAMuT,EAAO9J,GACzCzJ,KAAKoD,QAAQosF,kBAAkB,EAAG,EACtC,CACA,SAASovI,KACwB,sBAAzB5+N,KAAKoD,QAAQ4b,QACbu+P,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAGhC7qoB,KAAKyJ,MAAQzJ,KAAK+roB,cAE1B,CAMO,SAASC,GAAgB5ooB,GAC5B,OAAOA,EAAQqG,KACnB,CAMO,SAASwioB,GAAc7ooB,EAAS8ooB,GACnC,IAAIzioB,EAAQ,GACR4wG,EAAI,EACJ8xhB,GAAY,EACZC,GAAc,QAAkBF,IAA8B,QAAkB9ooB,KAC/E,QAAkBpD,MAAyBksoB,EAAhB9ooB,EAAQqG,MADWyioB,EAEnD,GAAIE,IAAcpsoB,KAAK6qoB,WACnB,IAAK,IAAI99nB,EAAI,EAAGA,EAAI/M,KAAKyqoB,mBAAmBjnoB,OAAQuJ,IAC5Co/nB,IACAA,GAAY,GAEmB,MAA/BnsoB,KAAKyqoB,mBAAmBpwhB,IAA6C,MAA/Br6G,KAAKyqoB,mBAAmBpwhB,IAC/B,MAA/Br6G,KAAKyqoB,mBAAmBpwhB,IAA6C,OAA/Br6G,KAAKyqoB,mBAAmBpwhB,OAC5DttG,EACFo/nB,GAAY,GAEXA,GACIC,EAAUr/nB,KAAO/M,KAAK2qoB,cAAiB,QAAkB3qoB,KAAKyqoB,mBAAmBpwhB,MAChFr6G,KAAKqsoB,qBAAsB,QAAkBrsoB,KAAKssoB,aAAatsoB,KAAKyqoB,mBAAmBpwhB,MACpFr6G,KAAKyqoB,mBAAmBpwhB,GAAG72G,OAAS,GAAuC,MAAlCxD,KAAKyqoB,mBAAmBpwhB,GAAG,IACK,MAAtEr6G,KAAKyqoB,mBAAmBpwhB,GAAGr6G,KAAKyqoB,mBAAmBpwhB,GAAG72G,OAAS,MACjE,QAAkBxD,KAAK8qoB,qBACnB,QAAkB9qoB,KAAK8qoB,iBAAiB9qoB,KAAKyqoB,mBAAmBpwhB,OAA2B,KAAd+xhB,IACvF3ioB,GAAS2ioB,EAAUr/nB,MAGzBstG,EAMV,OAHkB,OAAdr6G,KAAK8vI,MAA+B,KAAd9vI,KAAK8vI,WAA8BrxI,IAAfuB,KAAKyJ,SAC/CA,EAAQ2ioB,GAEL3ioB,CACX,CACA,SAAS8goB,GAAqB9goB,GAC1B,IAAK,IAAI4wG,EAAI,EAAGA,EAAI5wG,EAAMjG,OAAQ62G,IAC9Br6G,KAAK0qoB,YAAcjhoB,EAAM4wG,GACR,OAAb5wG,EAAM4wG,IACNr6G,KAAKyqoB,mBAAmBvooB,KAAKuH,EAAM4wG,GAG/C,CACO,SAASsxhB,KACZ3roB,KAAKusoB,WAAY,CACrB,CACO,SAASX,KACZ5roB,KAAKusoB,WAAY,CACrB,CACO,SAASjB,GAAsB/3nB,GAClC,IA2GyB8X,EA3GrBppB,EAAQjC,KACR6uF,EAAe7uF,KAAKoD,QACpBw8E,EAAa,EACb4sjB,EAAaP,GAAcv3nB,KAAK1U,KAAM6uF,GACtC49iB,GAAiB,EACjBC,GAAkB,EAClBv2hB,EAAY,CACZn1F,eAAgB6tE,EAAa7tE,eAC7BzN,MAAOA,EACP9J,MAAOzJ,KAAKyJ,MACZkjoB,YAAa99iB,EAAaplF,MAC1Bq+B,WAAY,QAAkB9nC,KAAK45Q,UAAsC55Q,KAAK45Q,SAA/B55Q,KAAK45Q,SAAS9xO,UAC7D5mB,aAAc2tE,EAAa3tE,cAK/B,GAHKlhB,KAAKusoB,WACNK,GAAal4nB,KAAK1U,KAAMm2G,EAAWtnB,GAEnC7uF,KAAK8vI,OACkB,OAAf08f,GAAsC,KAAfA,GAA8C,WAAxBxsoB,KAAKu7N,gBACjC,OAArBv7N,KAAKupD,aAA6C,KAArBvpD,KAAKupD,cAClCslC,EAAaplF,MAAQzJ,KAAK6qoB,YAE9BrvmB,YAAW,WACP,GAAIqzD,EAAa7tE,iBAAmB/e,EAAM4ooB,WAAWrnoB,QACjDqrF,EAAaplF,MAAMolF,EAAa7tE,kBAAoB/e,EAAM0ooB,WAC1D8B,GAAiB,OAGjB,IAAK,IAAI1/nB,EAAI8hF,EAAa7tE,eAAgBjU,EAAI9K,EAAM4ooB,WAAWrnoB,OAAQuJ,IAAK,CACxE,GAAI8hF,EAAaplF,MAAMsD,KAAO9K,EAAM0ooB,WAM/B,CACD8B,GAAiB,EACjB,KACJ,CARI,GAAK59iB,EAAaplF,MAAMsD,KAAO9K,EAAM4ooB,WAAW99nB,GAAK,CACjD0/nB,GAAiB,EACjB,KACJ,CAMR,CAER,IACAjxmB,YAAW,WACP,IAAIqxmB,EAAqBh+iB,EAAa7tE,eAAiB,EACvD,GAAI6rnB,IAAuB5qoB,EAAM4ooB,WAAWrnoB,OAAS,GACjDqrF,EAAaplF,MAAMojoB,KAAwB5qoB,EAAM0ooB,WACjD+B,GAAkB,OAGlB,IAAK,IAAI3/nB,EAAI8/nB,EAAoB9/nB,GAAK,EAAGA,IAAK,CAC1C,GAAI8hF,EAAaplF,MAAMsD,KAAO9K,EAAM0ooB,WAM/B,CACD+B,GAAkB,EAClB,KACJ,CARI,GAAK79iB,EAAaplF,MAAMsD,KAAO9K,EAAM4ooB,WAAW99nB,GAAK,CACjD2/nB,GAAkB,EAClB,KACJ,CAMR,CAER,IACK1soB,KAAKusoB,WAAsC,WAAxBvsoB,KAAKu7N,iBACR,OAAfixa,GAAsC,KAAfA,IACC,OAArBxsoB,KAAKupD,aAA6C,KAArBvpD,KAAKupD,aAAwB,CAC/D,IAAKq2B,EAAa,EAAGA,EAAa5/E,KAAK6qoB,WAAWrnoB,OAAQo8E,IACtD,GAAIiP,EAAaplF,MAAMm2E,KAAgB5/E,KAAK2qoB,WAAY,CACpDnvmB,YAAW,YACHixmB,GAAkBC,KAClB79iB,EAAa3tE,aAAe0+D,EAC5BiP,EAAa7tE,eAAiB4+D,GAElCu2B,EAAY,CACRn1F,eAAgB6tE,EAAa7tE,eAC7BzN,MAAOA,EACP9J,MAAOxH,EAAMwH,MACbkjoB,YAAa99iB,EAAaplF,MAC1Bq+B,WAAY,QAAkB7lC,EAAM23Q,UAAuC33Q,EAAM23Q,SAAjC33Q,EAAM23Q,SAAS9xO,UAC/D5mB,aAAc2tE,EAAa3tE,cAE/B0rnB,GAAal4nB,KAAKzS,EAAOk0G,EAAWtnB,EACxC,GAAG,KACH,KACJ,EAEA,QAAkBA,EAAaplF,MAAMiC,OAqBxB2f,EArB2CrrB,KAAK2qoB,YAsBjE,QAAkBt/mB,GAA2DA,EAAnDA,EAAK/gB,QAAQ,2BAA4B,aArB/D6rG,EAAY,CACRn1F,eAAgB6tE,EAAa7tE,eAC7BzN,MAAOA,EACP9J,MAAOzJ,KAAKyJ,MACZkjoB,YAAa99iB,EAAaplF,MAC1Bq+B,WAAY,QAAkB9nC,KAAK45Q,UAAsC55Q,KAAK45Q,SAA/B55Q,KAAK45Q,SAAS9xO,UAC7D5mB,aAAc2tE,EAAa3tE,cAE/B0rnB,GAAal4nB,KAAK1U,KAAMm2G,EAAWtnB,IAEvC7uF,KAAKusoB,WAAY,CACrB,CAER,CACO,SAASK,GAAaz2hB,EAAWtnB,GACpC7uF,KAAKg7L,QAAQ,QAAS7kF,GAAW,SAAUA,GACvCtnB,EAAa7tE,eAAiBm1F,EAAUn1F,eACxC6tE,EAAa3tE,aAAei1F,EAAUj1F,YAC1C,GACJ,CAIO,SAASqqnB,GAAqBh4nB,GAQjC,GAPAvT,KAAKqgR,cAAgB,CACjB9sQ,MAAOA,EACP9J,MAAOzJ,KAAKyJ,MACZkjoB,YAAa3soB,KAAKoD,QAAQqG,MAC1Bq+B,WAAY,QAAkB9nC,KAAK45Q,UAAsC55Q,KAAK45Q,SAA/B55Q,KAAK45Q,SAAS9xO,WAEjE9nC,KAAKg7L,QAAQ,OAAQh7L,KAAKqgR,eACtBrgR,KAAK8vI,OACL9vI,KAAK8soB,SAAU,EACX9soB,KAAKupD,aAAevpD,KAAKoD,QAAQqG,QAAUzJ,KAAK6qoB,YAAsC,WAAxB7qoB,KAAKu7N,gBAA6B,CAChGgiD,GAAgB7oQ,KAAK1U,KAAM,IAC3B,IAAIk8mB,EAAel8mB,KAAKoD,QAAQ6qE,WAAWhpE,cAAc,iBAC7B,SAAxBjF,KAAKu7N,kBAA8B,QAAkB2gZ,IAAiBA,EAAat4iB,UAAU5+D,SAASkloB,MACtG,QAAY,CAAChuB,GAAeguB,GAEpC,CAER,CACA,SAASsB,GAAsBj4nB,GAC3B,IAAItR,EAAQjC,KACZ,GAAIA,KAAK8vI,OAAS9vI,KAAK+7N,SAAU,CAC7B,IAAIgxa,EAAW/soB,KAAKoD,QAAQ4d,eACxBgsnB,EAAWhtoB,KAAKoD,QAAQ8d,aACxB+rnB,EAAajtoB,KAAKoD,QAAQqG,MAC9B8zQ,GAAgB7oQ,KAAK1U,KAAM,IAC3BA,KAAKqsoB,mBAAoB,EACzB7wmB,YAAW,WACP,IAAI/xB,EAAQxH,EAAMmB,QAAQqG,MAAMa,QAAQ,KAAM,IAC1CrI,EAAM4poB,WAAWrooB,OAAS,GAAKvB,EAAM4poB,WAAW,GAAGpioB,QAAUxH,EAAMmB,QAAQqG,QAC3EA,EAAQwioB,GAAcv3nB,KAAKzS,EAAOA,EAAMmB,UAE5Cm6Q,GAAgB7oQ,KAAKzS,EAAOgroB,GAC5BhroB,EAAMmB,QAAQ4d,eAAiB+rnB,EAC/B9qoB,EAAMmB,QAAQ8d,aAAe8rnB,EAC7B,IAAIjgoB,EAAI,EACR9K,EAAMiroB,cAAe,EACrB,GACIn/Z,GAAcr5N,KAAKzS,EAAOwH,EAAMsD,IAAI,EAAO,QACzCA,QACGA,EAAItD,EAAMjG,QAGnB,GAFAvB,EAAMiroB,cAAe,EACrBjroB,EAAMoqoB,mBAAoB,EACtBpqoB,EAAMmB,QAAQqG,QAAUwjoB,EAAY,CACpC,IAAIt2W,EAAM,EACV10R,EAAMiroB,cAAe,EACrB,GACIn/Z,GAAcr5N,KAAKzS,EAAOwH,EAAMktR,IAAM,EAAO,QAC3CA,QACGA,EAAMltR,EAAMjG,QACrBvB,EAAMiroB,cAAe,CACzB,MAEIpB,GAAuBp3nB,KAAKzS,EAAOsR,EAAO05nB,EAElD,GAAG,EACP,CACJ,CACA,SAASxB,GAAoBl4nB,GACzB,IAAItR,EAAQjC,KACZ,GAAIA,KAAK8vI,OAAS9vI,KAAK+7N,SAAU,CAC7B,IAAIoxa,EAAantoB,KAAKoD,QAAQqG,MAC1B2joB,EAAWptoB,KAAKoD,QAAQ4d,eACxBqsnB,EAASrtoB,KAAKoD,QAAQ8d,aAC1BlhB,KAAKstoB,WAAWproB,KAAK,CAAEuH,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eAAgBk+D,SAAUl/E,KAAKoD,QAAQ8d,eAClH,IAAI+sN,EAAUjuO,KAAKoD,QAAQqG,MAAMuD,UAAU,EAAGogoB,GAAYptoB,KAAK6qoB,WAAW79nB,UAAUogoB,EAAUC,GAC1FrtoB,KAAKoD,QAAQqG,MAAMuD,UAAUqgoB,GACjC7xmB,YAAW,WACP+hP,GAAgB7oQ,KAAKzS,EAAOgsO,GAC5BhsO,EAAMmB,QAAQ4d,eAAiB/e,EAAMmB,QAAQ8d,aAAeksnB,EACxDnroB,EAAMmB,QAAQqG,QAAU0joB,GACxBrB,GAAuBp3nB,KAAKzS,EAAOsR,EAAO,KAElD,GAAG,EACP,CACJ,CACO,SAASm4nB,GAAqBn4nB,GACjCA,EAAMoG,gBACV,CACA,SAAS0xnB,GAAiB93nB,GACtB,KAAqB,IAAjB,KAAQsnL,MAAwC,KAAvB76L,KAAKoD,QAAQqG,OAAwC,UAAxBzJ,KAAKu7N,mBAI/D,QAAOhoN,EADS,CAAEE,SAAS,EAAO8wE,QAAS,MAEvCvkF,KAAK8vI,MAAM,CAaX,GAZ2B,KAAvB9vI,KAAKoD,QAAQqG,OACbzJ,KAAK6roB,WAAWxnhB,QAAQ,CACpB56G,MAAOzJ,KAAK6qoB,WAAYjrjB,WAAY5/E,KAAKoD,QAAQ4d,eAAgBk+D,SAAUl/E,KAAKoD,QAAQ8d,eAG9D,IAA9BlhB,KAAKoD,QAAQqG,MAAMjG,SACnBxD,KAAKoD,QAAQqG,MAAQzJ,KAAKoD,QAAQqG,MAAQzJ,KAAK6qoB,WAC/C7qoB,KAAKoD,QAAQosF,kBAAkB,EAAG,IAEjCxvF,KAAKqsoB,mBACNkB,GAAsB74nB,KAAK1U,KAAMuT,GAEjCvT,KAAKoD,QAAQqG,MAAMjG,OAASxD,KAAK6qoB,WAAWrnoB,OAAQ,CACpD,IAAIo8E,EAAa5/E,KAAKoD,QAAQ4d,eAC1BwsnB,EAAcxtoB,KAAKoD,QAAQqG,MAAMjG,OAASxD,KAAK6qoB,WAAWrnoB,OAC1DiG,EAAQzJ,KAAKoD,QAAQqG,MAAMuD,UAAU4yE,EAAa4tjB,EAAa5tjB,GACnE5/E,KAAKktoB,cAAe,EACpB,IAAIngoB,EAAI,EACR,GACIghO,GAAcr5N,KAAK1U,KAAMyJ,EAAMsD,GAAIwG,EAAME,QAASF,KAChDxG,QACGA,EAAItD,EAAMjG,QACfxD,KAAKoD,QAAQqG,QAAUzJ,KAAKytoB,WAC5B3B,GAAuBp3nB,KAAK1U,KAAMuT,EAAO,KAEjD,CACA,IAAI0yG,EAAMgmhB,GAAcv3nB,KAAK1U,KAAMA,KAAKoD,SACxCpD,KAAKi2B,UAAYgwF,EACjBjmH,KAAKyJ,MAAQw8G,EACD,KAARA,IACAs3J,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAChC7qoB,KAAKoD,QAAQosF,kBAAkB,EAAG,GAE1C,CACJ,CACA,SAAS07iB,GAAwB33nB,GAC7B,GAAIvT,KAAK8vI,OAAS9vI,KAAK+7N,SAAU,CACP,MAAlBxoN,EAAMgxE,WACFhxE,EAAME,SAA8B,KAAlBF,EAAMgxE,SAAoC,KAAlBhxE,EAAMgxE,SAChDhxE,EAAMoG,iBAEV4znB,GAAsB74nB,KAAK1U,KAAMuT,IAErC,IAAIu3Q,EAAa9qR,KAAKoD,QAAQqG,MAC9B,GAAI8J,EAAME,UAA8B,KAAlBF,EAAMgxE,SAAoC,KAAlBhxE,EAAMgxE,SAAiB,CACjE,IAAImpjB,OAAS,EACS,KAAlBn6nB,EAAMgxE,SAAkBvkF,KAAKstoB,WAAW9poB,OAAS,GAAKsnR,IAAe9qR,KAAKstoB,WAAWttoB,KAAKstoB,WAAW9poB,OAAS,GAAGiG,OACjHikoB,EAAS1toB,KAAKstoB,WAAWttoB,KAAKstoB,WAAW9poB,OAAS,GAClDxD,KAAK6roB,WAAWxnhB,QAAQ,CACpB56G,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eACpDk+D,SAAUl/E,KAAKoD,QAAQ8d,eAE3Bq8P,GAAgB7oQ,KAAK1U,KAAM0toB,EAAOjkoB,OAClCzJ,KAAKoD,QAAQ4d,eAAiB0snB,EAAO9tjB,WACrC5/E,KAAKoD,QAAQ8d,aAAewsnB,EAAOxujB,SACnCl/E,KAAKstoB,WAAW5/nB,OAAO1N,KAAKstoB,WAAW9poB,OAAS,EAAG,IAE5B,KAAlB+P,EAAMgxE,SAAkBvkF,KAAK6roB,WAAWrooB,OAAS,GAAKsnR,IAAe9qR,KAAK6roB,WAAW,GAAGpioB,QAC7FikoB,EAAS1toB,KAAK6roB,WAAW,GACzB7roB,KAAKstoB,WAAWproB,KAAK,CACjBuH,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eACpDk+D,SAAUl/E,KAAKoD,QAAQ8d,eAE3Bq8P,GAAgB7oQ,KAAK1U,KAAM0toB,EAAOjkoB,OAClCzJ,KAAKoD,QAAQ4d,eAAiB0snB,EAAO9tjB,WACrC5/E,KAAKoD,QAAQ8d,aAAewsnB,EAAOxujB,SACnCl/E,KAAK6roB,WAAWn+nB,OAAO,EAAG,GAElC,CACJ,CACJ,CACO,SAASigoB,KACZ,IAAID,EACAE,EAAS5toB,KAAKoD,QAAQ4d,eACtBqsnB,EAASrtoB,KAAKoD,QAAQ8d,aACtBlhB,KAAK6roB,WAAWrooB,OAAS,GACzBkqoB,EAAS1toB,KAAK6roB,WAAW,GACzBtuX,GAAgB7oQ,KAAK1U,KAAM0toB,EAAOjkoB,OAC7BikoB,EAAO9tjB,WAAagujB,GAAY,GACjC5toB,KAAKoD,QAAQ4d,eAAiB0snB,EAAO9tjB,WACrC5/E,KAAKoD,QAAQ8d,aAAewsnB,EAAOxujB,WAGnCl/E,KAAKoD,QAAQ4d,eAAiB4snB,EAAS,EACvC5toB,KAAKoD,QAAQ8d,aAAemsnB,EAAS,KAIzC9vX,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAChC7qoB,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAe0snB,EAElE,CACA,SAASC,GAAwBC,EAAUC,EAAax6nB,GAOpD,MANmB,UAAfA,EAAMwN,OACN+snB,GAAW,EACXC,EAAc/toB,KAAKoD,QAAQqG,MAC3B8zQ,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAChCI,GAAav2nB,KAAK1U,KAAM+toB,IAErBD,CACX,CACA,SAASP,GAAsBh6nB,GAC3B,IACIw6nB,EADAD,GAAW,EAEXE,GAAY,EACZhuoB,KAAKoD,QAAQqG,MAAMjG,OAASxD,KAAK6qoB,WAAWrnoB,SAC5CsqoB,GAAW,EACXC,EAAc/toB,KAAKoD,QAAQqG,MAC3BqkoB,EAAWD,GAAwBn5nB,KAAK1U,KAAM8toB,EAAUC,EAAax6nB,GACrEo6nB,GAAqBj5nB,KAAK1U,OAE1BA,KAAKoD,QAAQqG,MAAMjG,QAAUxD,KAAK6qoB,WAAWrnoB,QAAyB,UAAf+P,EAAMwN,OAC7D+snB,EAAWD,GAAwBn5nB,KAAK1U,KAAM8toB,EAAUC,EAAax6nB,IAEzE,IAAI06nB,EAAiBjuoB,KAAKoD,QAAQ4d,eAC9BktnB,EAAeluoB,KAAKoD,QAAQ8d,aAC5B0+D,EAAa5/E,KAAKoD,QAAQ4d,eAC1Bk+D,EAAWl/E,KAAKoD,QAAQ8d,aACxBkrnB,EAAYpsoB,KAAK0qoB,WAAWpgoB,QAAQ,WAAY,IAChD6joB,EAAU/B,EAAUxsjB,EAAa,GACjCwujB,EAAiBpuoB,KAAKoD,QAAQ8d,aAClC,GAAI4snB,GAA8B,IAAlBv6nB,EAAMgxE,SAAmC,KAAlBhxE,EAAMgxE,QAAgB,CACzDvkF,KAAKstoB,WAAWproB,KAAK,CAAEuH,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eAAgBk+D,SAAUA,IACrG,IAAImvjB,GAAc,EACdC,EAAWtuoB,KAAKoD,QAAQqG,MAC5B,GAAIm2E,EAAa,IAAyB,IAAlBrsE,EAAMgxE,SAAmC,KAAlBhxE,EAAMgxE,UAAmB3E,EAAa5/E,KAAKoD,QAAQqG,MAAMjG,QAC/FxD,KAAKoD,QAAQ8d,aAAe0+D,IAAgB5/E,KAAKoD,QAAQqG,MAAMjG,OAAU,CAC9E,IAAIsF,EAAQ82E,EACRA,IAAeV,GACfU,EAAaV,EACS,KAAlB3rE,EAAMgxE,UACN8pjB,GAAc,IAGK,KAAlB96nB,EAAMgxE,UACTz7E,IAGAA,EAEN,IAAK,IAAIuxG,EAAIz6B,EAA+B,IAAlBrsE,EAAMgxE,SAAiBupjB,GAAYO,EAAeh0hB,EAAIvxG,EAAQuxG,EAAIvxG,EAA0B,IAAlByK,EAAMgxE,SAAiBupjB,GAAYO,EAAeh0hB,IAAMA,IACxJ,IAAK,IAAIttG,EAAI6yE,EAA+B,IAAlBrsE,EAAMgxE,SAAiBupjB,GAAYO,EAAethoB,EAAI,EAAIA,EAAI/M,KAAKoD,QAAQqG,MAAMjG,OAA2B,IAAlB+P,EAAMgxE,SAAiBupjB,GAAYO,EAAethoB,IAAMA,IAAK,CAC7K,IAAI6goB,OAAS,GACW,IAAlBr6nB,EAAMgxE,SAAiB8pjB,KAAkBJ,IAAmBC,GAAgBD,IAAmBrujB,GAChGqujB,IAAmBC,IAAmBJ,GACvCK,EAAU/B,EAAUr/nB,EAAI,GACxB6goB,EAAShujB,EAAa,IAGtBuujB,EAAU/B,EAAUr/nB,GACpB6goB,EAAShujB,IACPA,GAEN,IAAIyQ,EAAWrwF,KAAKoD,QAAQqG,MAAMmkoB,GAClC,IAAK,QAAkB5toB,KAAKssoB,aAAa,GAAK6B,OAAe,QAAkBnuoB,KAAK8qoB,oBAC7E,QAAkB9qoB,KAAK8qoB,iBAAiB,GAAKqD,KAC3CnuoB,KAAK0qoB,WAAWkD,KAAY5toB,KAAK2qoB,YAAqD,MAAvC3qoB,KAAKyqoB,mBAAmBmD,GAAQ,IACG,MAAhF5toB,KAAKyqoB,mBAAmBmD,GAAQ5toB,KAAKyqoB,mBAAmBmD,GAAQpqoB,OAAS,IAC5ExD,KAAK6qoB,WAAW+C,KAAY5toB,KAAK2qoB,aAAc,QAAkB3qoB,KAAK8qoB,kBAC1E9qoB,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAe0snB,EAC1Dr6nB,EAAMoG,iBACgB,KAAlBpG,EAAMgxE,SAAmB8pjB,KACvBruoB,KAAKoD,QAAQ4d,mBAGlB,CACD,IAAIvX,EAAQzJ,KAAKoD,QAAQqG,MACrB8koB,EAAWvuoB,KAAK2qoB,WAChBn8Z,EAAe/kO,EAAMuD,UAAU,EAAG4goB,GAAUW,EAAW9koB,EAAMuD,UAAU4yE,EAAYn2E,EAAMjG,QAC7F+5Q,GAAgB7oQ,KAAK1U,KAAMwuO,GAC3Bj7N,EAAMoG,iBACgB,KAAlBpG,EAAMgxE,SAAmB8pjB,GACzBT,IAEJ5toB,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAe0snB,EAC1DI,GAAY,CAChB,CAUA,GATApujB,EAAa5/E,KAAKoD,QAAQ4d,gBACpBgtnB,GAA+B,IAAlBz6nB,EAAMgxE,SAAkB8pjB,IAAiBL,GAAiC,KAAlBz6nB,EAAMgxE,QAC7EqpjB,EAAShujB,EAAa,GAGtBgujB,EAAShujB,EACToujB,GAAY,GAEhB39iB,EAAWrwF,KAAKoD,QAAQqG,MAAMmkoB,GACxBK,IAAmBC,GAAkBluoB,KAAKoD,QAAQ4d,iBAAmBitnB,GACnEjuoB,KAAK6qoB,WAAW+C,KAAY5toB,KAAK2qoB,YAAiBt6iB,IAAarwF,KAAK6qoB,WAAW+C,IAClF5toB,KAAK6qoB,WAAW+C,KAAY5toB,KAAK2qoB,cAAgB,QAAkB3qoB,KAAK8qoB,kBACzE,KAER,CAER,CACsB,KAAlBv3nB,EAAMgxE,SAAkB8pjB,GAAeL,IACvChuoB,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAektnB,GAE1B,IAAhCpuoB,KAAKoD,QAAQ4d,gBAAyBhhB,KAAKoD,QAAQ8d,eAAiBlhB,KAAKoD,QAAQqG,MAAMjG,SACvF+5Q,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YAChCt3nB,EAAMoG,iBACN3Z,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAe0+D,GAE9D5/E,KAAK6roB,WAAWxnhB,QAAQ,CACpB56G,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eACpDk+D,SAAUl/E,KAAKoD,QAAQ8d,eAEvBlhB,KAAKoD,QAAQqG,QAAU6koB,GACvBxC,GAAuBp3nB,KAAK1U,KAAMuT,EAAOw6nB,EAEjD,CACJ,CACA,SAAS5C,GAAyB53nB,GAC9B,GAAIvT,KAAK8vI,OAAS9vI,KAAK+7N,SAAU,CAC7B,IAAI1rI,EAAWrwF,KAAKoD,QAAQqG,MAC5B,IAAM8J,EAAME,UAAWF,EAAMG,UAAcH,EAAME,SAAWF,EAAMG,UAA2B,SAAfH,EAAMxE,MAAkC,SAAfwE,EAAMxE,MACvF,SAAfwE,EAAMxE,MAAkC,SAAfwE,EAAMxE,MAAkC,SAAfwE,EAAMxE,MAAkC,SAAfwE,EAAMxE,KAAkB,CACtG/O,KAAKktoB,cAAe,EACpB,IAAIxqoB,EAAM6Q,EAAM7Q,IACJ,aAARA,IACAA,EAAM6H,OAAOqpH,aAAargH,EAAMgxE,UAE/B7hF,EAMIA,GAAsB,IAAfA,EAAIc,SAChBuqO,GAAcr5N,KAAK1U,KAAM0C,EAAK6Q,EAAME,QAASF,GAC7CA,EAAMoG,mBAPN3Z,KAAKwuoB,cAAe,EACpBzga,GAAcr5N,KAAK1U,KAAMuK,OAAOqpH,aAAargH,EAAMgxE,SAAUhxE,EAAME,QAASF,GAC5EA,EAAMoG,iBACN3Z,KAAKwuoB,cAAe,GAMF,KAAlBj7nB,EAAMgxE,SAA0B,MAAR7hF,GAAmC,MAApB1C,KAAK2qoB,aAC5C3qoB,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAelhB,KAAKoD,QAAQ4d,eAAiBte,EAAIc,OAEpG,CACIxD,KAAKoD,QAAQqG,QAAU4mF,GACvBy7iB,GAAuBp3nB,KAAK1U,KAAMuT,EAAO88E,EAEjD,CACJ,CAEA,SAASy7iB,GAAuBv4nB,EAAO88E,GACnC,IAAI8gM,EAAenxR,KAAKw9L,oBACxB,KAAK,QAAkBx9L,KAAKmmN,mBAAqBnmN,KAAK8nQ,UAAW,CAC7D,IAAI3xJ,EAAY,CAAC,EACjBn2G,KAAKmmN,gBAAkB,CAAE18M,MAAOzJ,KAAKoD,QAAQqG,MAAOkjoB,YAAa3soB,KAAKoD,QAAQqG,MAAOs0Q,eAAe,EAAOxvD,cAAc,GACrHvuN,KAAK8vI,OACL9vI,KAAKmmN,gBAAgB18M,MAAQwioB,GAAcv3nB,KAAK1U,KAAMA,KAAKoD,WAE1D,QAAkBmQ,KACnBvT,KAAKmmN,gBAAgBoI,cAAe,EACpCvuN,KAAKmmN,gBAAgB43D,eAAgB,EACrC/9Q,KAAKmmN,gBAAgB5yM,MAAQA,GAEjCvT,KAAKw9L,qBAAsB,EAC3Bx9L,KAAKyJ,MAAQzJ,KAAKmmN,gBAAgB18M,MAClCzJ,KAAKw9L,oBAAsB2zF,GAC3B,QAAMh7K,EAAWn2G,KAAKmmN,iBAElBnmN,KAAK2tN,WAAa3tN,KAAK0tN,cACvB1tN,KAAK0tN,eAAgB,EAGrB1tN,KAAKg7L,QAAQ,SAAU7kF,EAE/B,CACAn2G,KAAKytoB,UAAYztoB,KAAKoD,QAAQqG,MAC9BzJ,KAAKi2B,UAAYg2mB,GAAcv3nB,KAAK1U,KAAMA,KAAKoD,QACnD,CACA,SAASgooB,GAAsB73nB,GAC3B,GAAIvT,KAAK8vI,OAAS9vI,KAAK+7N,SAAU,CAC7B,IAAI2xa,OAAS,EACb,GAAK1toB,KAAKktoB,cAAkC,MAAlB35nB,EAAMgxE,QAkC5BkqjB,GAAgB/5nB,KAAK1U,UAlCwB,CAC7C,IAAI+toB,OAAc,EAKlB,GAJkC,IAA9B/toB,KAAKoD,QAAQqG,MAAMjG,SACnBxD,KAAKoD,QAAQqG,MAAQzJ,KAAKoD,QAAQqG,MAAQzJ,KAAK6qoB,WAC/C7qoB,KAAKoD,QAAQosF,kBAAkB,EAAG,IAElCxvF,KAAKoD,QAAQqG,MAAMjG,OAASxD,KAAK6qoB,WAAWrnoB,OAAQ,CACpD,IAAIo8E,EAAa5/E,KAAKoD,QAAQ4d,eAC1BwsnB,EAAcxtoB,KAAKoD,QAAQqG,MAAMjG,OAASxD,KAAK6qoB,WAAWrnoB,OAC1DkroB,EAAQ1uoB,KAAKoD,QAAQqG,MAAMuD,UAAU4yE,EAAa4tjB,EAAa5tjB,GACnE,GAAI5/E,KAAKstoB,WAAW9poB,OAAS,EAAG,CAC5BkqoB,EAAS1toB,KAAKstoB,WAAWttoB,KAAKstoB,WAAW9poB,OAAS,GAClD,IAAImroB,EAAe3uoB,KAAKoD,QAAQ4d,eAChC+snB,EAAcL,EAAOjkoB,MACrB,IAAI02L,EAASutc,EAAOjkoB,MAAMuD,UAAU2hoB,EAAenB,EAAamB,GAChEjB,EAAS1toB,KAAK6roB,WAAW,GACzB6C,EAAQA,EAAM7ioB,OACd,IAAI+ioB,EAAU,KAAQ96Y,WAAuB,KAAV46Y,EAC9BE,GAAWzuc,IAAWuuc,GAAShB,EAAOjkoB,MAAMuD,UAAU2hoB,EAAenB,EAAamB,KAAkBD,EAGhGE,GACLC,GAAyBn6nB,KAAK1U,KAAMuT,EAAOo7nB,EAAe,EAAG3uoB,KAAKoD,QAAQ8d,aAAe,EAAGwtnB,EAAOn7nB,EAAME,SAAS,GAHlHs6N,GAAcr5N,KAAK1U,KAAM0uoB,EAAOn7nB,EAAME,QAASF,EAKvD,MAEIw6nB,EAAc/toB,KAAK6qoB,WACnB98Z,GAAcr5N,KAAK1U,KAAM0uoB,EAAOn7nB,EAAME,QAASF,GAEnDvT,KAAKktoB,cAAe,EACpBpB,GAAuBp3nB,KAAK1U,KAAMuT,EAAOw6nB,EAC7C,CACJ,CAIA,IAAI9nhB,EAAMgmhB,GAAcv3nB,KAAK1U,KAAMA,KAAKoD,UACD,IAAhCpD,KAAKoD,QAAQ4d,gBAA0BhhB,KAAK6qoB,aAAe7qoB,KAAKoD,QAAQqG,OAAkB,KAARw8G,GACzE,KAARA,GAAcjmH,KAAKyJ,QAAUw8G,KACjCjmH,KAAKi2B,UAAYgwF,EACjBjmH,KAAKyJ,MAAQw8G,EAErB,MAEI6lhB,GAAuBp3nB,KAAK1U,KAAMuT,GAEtC,GAAoC,IAAhCvT,KAAKoD,QAAQ4d,gBAAsD,IAA9BhhB,KAAKoD,QAAQ8d,aAAoB,CAEtE,IAAI4tnB,EAAS9uoB,KAAKoD,QAClBo4B,YAAW,WACPszmB,EAAOt/iB,kBAAkB,EAAG,EAChC,GAAG,EACP,CACJ,CACA,SAASu/iB,GAAiBrsoB,GACtB,GAAIA,EAAIc,OAAS,GAAOxD,KAAK6qoB,WAAWrnoB,OAASd,EAAIc,OAAUxD,KAAKoD,QAAQqG,MAAMjG,OAAS,CACvF,IAAIgrO,EAAexuO,KAAK6roB,WAAW,GAAGpioB,MAAMuD,UAAU,EAAGhN,KAAK6roB,WAAW,GAAGjsjB,YAAcl9E,EACtF1C,KAAK6roB,WAAW,GAAGpioB,MAAMuD,UAAUhN,KAAK6roB,WAAW,GAAGjsjB,WAAY5/E,KAAK6roB,WAAW,GAAGpioB,MAAMjG,QAC/F+5Q,GAAgB7oQ,KAAK1U,KAAMwuO,GAC3BxuO,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAelhB,KAAK6roB,WAAW,GAAGjsjB,WAAal9E,EAAIc,MAClG,CACAxD,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ4d,eAAiBte,EAAIc,OAChExD,KAAKoD,QAAQ8d,aAAelhB,KAAKoD,QAAQ8d,aAAexe,EAAIc,MAChE,CACA,SAASwroB,GAAiBtsoB,GACjB1C,KAAKktoB,cACN6B,GAAiBr6nB,KAAK1U,KAAM0C,EAEpC,CACA,SAASqrO,GAAcrrO,EAAKw2M,EAAW3lM,GAEnC,GADAy7nB,GAAiBt6nB,KAAK1U,KAAM0C,KACxB,QAAkB1C,SAAS,QAAkB0C,GAWjD,IARA,IAEIyroB,EAGAc,EALArvjB,EAAa5/E,KAAKoD,QAAQ4d,eAC1BitnB,EAAiBrujB,EAEjBsvjB,GAAY,EACZzloB,EAAQzJ,KAAKoD,QAAQqG,MAErB0loB,GAAc,EACdC,GAAa,EACR/0hB,EAAI,EAAGA,EAAI33G,EAAIc,OAAQ62G,IAAK,CACjC,IAAIg1hB,EAAW3soB,EAAI23G,GAKnB,GAJAz6B,EAAa5/E,KAAKoD,QAAQ4d,eACrBhhB,KAAKktoB,cAAgBe,IAAmBrujB,IACzCA,GAA0By6B,IAExBr6G,KAAKktoB,cAAgBttjB,EAAa5/E,KAAK6qoB,WAAWrnoB,OAAS,CAC7D,IAAK,IAAIuJ,EAAI6yE,EAAY7yE,EAAI/M,KAAK6qoB,WAAWrnoB,OAAQuJ,IAEjDohoB,EADgBnuoB,KAAK4qoB,gBACDhrjB,GACgB,OAAhC5/E,KAAK0qoB,WAAW9qjB,IAAwB5/E,KAAK0qoB,WAAW9qjB,EAAa,KAAOl9E,IAC5E0soB,GAAa,KAEZ,QAAkBpvoB,KAAKssoB,aAAa,GAAK6B,OAAc,QAAkBnuoB,KAAK8qoB,qBAC1E,QAAkB9qoB,KAAK8qoB,oBAAqB,QAAkB9qoB,KAAK8qoB,iBAAiB,GAAKqD,MACzFnuoB,KAAK0qoB,WAAW9qjB,KAAgB5/E,KAAK2qoB,YAAyD,MAA3C3qoB,KAAKyqoB,mBAAmB7qjB,GAAY,IACG,MAAxF5/E,KAAKyqoB,mBAAmB7qjB,GAAY5/E,KAAKyqoB,mBAAmB7qjB,GAAYp8E,OAAS,IACnFxD,KAAK6qoB,WAAWjrjB,KAAgB5/E,KAAK2qoB,aAAe,QAAkB3qoB,KAAK8qoB,mBAC5E9qoB,KAAK2qoB,aAAewD,GAAWnuoB,KAAK4qoB,kBAAoB5qoB,KAAK8vI,QACjE9vI,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAe0+D,EAAa,EACvEA,EAAa5/E,KAAKoD,QAAQ4d,eAC1BmtnB,EAAUnuoB,KAAK0qoB,WAAW9qjB,IAGlC,IAAK,QAAkB5/E,KAAK8qoB,oBAAsB,QAAkB9qoB,KAAK8qoB,iBAAiB,GAAKqD,OAYrF,QAAkBnuoB,KAAKssoB,aAAa,GAAK6B,KAAakB,EAAS3joB,MAAM,IAAI2mH,OAAOryH,KAAKssoB,aAAa,GAAK6B,MAC1GnuoB,KAAK6qoB,WAAWjrjB,KAAgB5/E,KAAK2qoB,YAGnC3qoB,KAAK6qoB,WAAWjrjB,KAAgB5/E,KAAK2qoB,YAAyD,MAA3C3qoB,KAAKyqoB,mBAAmB7qjB,GAAY,IACD,MAAxF5/E,KAAKyqoB,mBAAmB7qjB,GAAY5/E,KAAKyqoB,mBAAmB7qjB,GAAYp8E,OAAS,IAEjF6roB,EAAS3joB,MAAM,IAAI2mH,OAAOryH,KAAKyqoB,mBAAmB7qjB,QALrDsvjB,GAAY,OAbZ,KACII,EADetvoB,KAAK8qoB,iBAAiB,GAAKqD,GACd3moB,MAAM,KACtC,IAASuF,EAAI,EAAGA,EAAIuioB,EAAa9roB,OAAQuJ,IAErC,GAAIsioB,EAAS3joB,MAAM,IAAI2mH,OAAO,IAAMi9gB,EAAavioB,GAAK,MAAO,CACzDmioB,GAAY,EACZ,KACJ,CAPkD,CAqB1D,KAAMlvoB,KAAKktoB,cAAgBttjB,EAAa5/E,KAAK0qoB,WAAWlnoB,SAAW0roB,EAAW,CAC1E,GAAU,IAAN70hB,EACA,GAAIr6G,KAAKktoB,aACLltoB,KAAKstoB,WAAWproB,KAAK,CAAEuH,MAAOA,EAAOm2E,WAAYA,EAAYV,SAAUU,QAEtE,CACD,IAAIgujB,EAAS5toB,KAAKoD,QAAQ4d,eACtBqsnB,EAASrtoB,KAAKoD,QAAQ8d,aACtBlhB,KAAK6roB,WAAWrooB,OAAS,GACzByroB,EAAcjvoB,KAAK6roB,WAAW,GAAGpioB,MACjC8zQ,GAAgB7oQ,KAAK1U,KAAMivoB,GAC3BjvoB,KAAKstoB,WAAWproB,KAAKlC,KAAK6roB,WAAW,MAGrC7roB,KAAKstoB,WAAWproB,KAAK,CAAEuH,MAAOzJ,KAAK6qoB,WAAYjrjB,WAAYA,EAAYV,SAAUU,IACjFqvjB,EAAcjvoB,KAAK6qoB,WACnBttX,GAAgB7oQ,KAAK1U,KAAMivoB,IAE/BjvoB,KAAKoD,QAAQ4d,eAAiB4snB,EAC9B5toB,KAAKoD,QAAQ8d,aAAemsnB,CAChC,CAEJztjB,EAAa5/E,KAAKoD,QAAQ4d,eAC1BuunB,GAAqB76nB,KAAK1U,KAAMuT,EAAOqsE,EAAYyvjB,EAAUJ,EAAaG,GAC1ED,GAAc,EACV90hB,IAAM33G,EAAIc,OAAS,GACnBxD,KAAK6roB,WAAWxnhB,QAAQ,CACpB56G,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eAAgBk+D,SAAUl/E,KAAKoD,QAAQ8d,eAGnGgunB,GAAY,CAChB,MAEItvjB,EAAa5/E,KAAKoD,QAAQ4d,eAC1B6tnB,GAAyBn6nB,KAAK1U,KAAMuT,EAAOqsE,EAAYqujB,EAAgBvroB,EAAKw2M,EAAWi2b,GAEvF90hB,IAAM33G,EAAIc,OAAS,GAAM0roB,KACpB,KAAQp7Y,WAAc,KAAQA,WAAal0K,EAAa5/E,KAAK6qoB,WAAWrnoB,SACzExD,KAAK6roB,WAAWxnhB,QAAQ,CACpB56G,MAAOzJ,KAAKoD,QAAQqG,MAAOm2E,WAAY5/E,KAAKoD,QAAQ4d,eAAgBk+D,SAAUl/E,KAAKoD,QAAQ8d,cAI3G,MAEuB,IAAfxe,EAAIc,QAAiB01M,IAAc,QAAkB3lM,IACrDi8nB,GAAkB96nB,KAAK1U,KAGnC,CACJ,CACA,SAASuvoB,GAAqBh8nB,EAAOqsE,EAAYyvjB,EAAUJ,EAAaG,GAIpE,GAHIpvoB,KAAK0qoB,WAAWlnoB,OAASxD,KAAK6qoB,WAAWrnoB,SACzC6roB,EAAWI,GAAuB/6nB,KAAK1U,KAAMqvoB,EAAUrvoB,KAAKoD,QAAQqG,SAEnE2loB,EAAY,CACb,IAAI3loB,EAAQzJ,KAAKoD,QAAQqG,MACrB+kO,EAAe/kO,EAAMuD,UAAU,EAAG4yE,GAAcyvjB,EAAW5loB,EAAMuD,UAAU4yE,EAAa,EAAGn2E,EAAMjG,QACrG+5Q,GAAgB7oQ,KAAK1U,KAAMwuO,GAC3BxuO,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAe0+D,EAAa,CAC3E,CACJ,CACA,SAASivjB,GAAyBt7nB,EAAOm8nB,EAAMngkB,EAAK7sE,EAAKu2G,EAAM02hB,GAC3D,IAAK3voB,KAAKktoB,aAAc,CACpB,IAAIzjoB,EAAQzJ,KAAKoD,QAAQqG,MACrBimoB,GAAQ1voB,KAAK6qoB,WAAWrnoB,OACxB+5Q,GAAgB7oQ,KAAK1U,KAAMyJ,EAAMuD,UAAU,EAAG0ioB,KAG1CngkB,IAAQmgkB,EACRnyX,GAAgB7oQ,KAAK1U,KAAMyJ,EAAMuD,UAAU,EAAG0ioB,GAAQjmoB,EAAMuD,UAAU0ioB,EAAO,EAAGjmoB,EAAMjG,SAGlFxD,KAAK6qoB,WAAWrnoB,SAAWxD,KAAKoD,QAAQqG,MAAMjG,OAC9C+5Q,GAAgB7oQ,KAAK1U,KAAMyJ,EAAMuD,UAAU,EAAG0ioB,GAAQjmoB,EAAMuD,UAAU0ioB,EAAMjmoB,EAAMjG,SAGlF+5Q,GAAgB7oQ,KAAK1U,KAAMyJ,EAAMuD,UAAU,EAAGuiE,GAAO9lE,EAAMuD,UAAUuiE,EAAM,EAAG9lE,EAAMjG,SAG5FxD,KAAKoD,QAAQ4d,eAAiBhhB,KAAKoD,QAAQ8d,aAAgByunB,GACvD3voB,KAAKoD,QAAQqG,MAAM8lE,KAASvvE,KAAK2qoB,WAAc+E,EAAOngkB,GAE9DigkB,GAAkB96nB,KAAK1U,KAC3B,CACmB,IAAf0C,EAAIc,QAAiBy1G,IAAS,QAAkB1lG,IAChDi8nB,GAAkB96nB,KAAK1U,KAE/B,CACA,SAASwvoB,KACL,IAAIvtoB,EAAQjC,KACRyV,EAAgBzV,KAAKoD,QAAQ6qE,WAC7B20N,EAAQ,IACRntR,EAAcmuD,UAAU5+D,SAAS60S,KAAepkS,EAAcmuD,UAAU5+D,SAASiloB,KACjF,QAAS,CAACx0nB,GAAgBglN,KAG1B,QAAS,CAACz6N,KAAKoD,SAAUq3N,KAEH,IAAtBz6N,KAAKwuoB,eACL5rW,EAAQ,MAEZ,QAAW5iS,KAAKoD,QAAS,CAAE,eAAgB,SAC3Co4B,YAAW,WACFv5B,EAAMiroB,cACPuB,GAAgB/5nB,KAAKzS,EAE7B,GAAG2gS,EACP,CACA,SAAS6rW,KACL,IAAIh5nB,EAAgBzV,KAAKoD,QAAQ6qE,YAC5B,QAAkBx4D,KACnB,QAAY,CAACA,GAAgBglN,KAEjC,QAAY,CAACz6N,KAAKoD,SAAUq3N,KAC5B,QAAWz6N,KAAKoD,QAAS,CAAE,eAAgB,SAC/C,CAMA,SAASqsoB,GAAuB/soB,EAAK+G,GACjC,IAAIohoB,EACA99nB,EACA6ioB,EAASnmoB,EACTomoB,EAAY,EAChB,IAAK9ioB,EAAI,EAAGA,EAAI/M,KAAK0qoB,WAAWlnoB,OAAQuJ,IAUpC,GAT2B,OAAvB/M,KAAK0qoB,WAAW39nB,KAChB89nB,EAAa+E,EAAO5ioB,UAAU,EAAGD,GAAK,KAAO6ioB,EAAO5ioB,UAAUD,EAAG6ioB,EAAOpsoB,SAEjD,MAAvBxD,KAAK0qoB,WAAW39nB,IAAqC,MAAvB/M,KAAK0qoB,WAAW39nB,IAAqC,MAAvB/M,KAAK0qoB,WAAW39nB,KACxE/M,KAAK0qoB,WAAW39nB,KAAO6ioB,EAAO7ioB,KAC9B89nB,EAAa+E,EAAO5ioB,UAAU,EAAGD,GAAK/M,KAAK0qoB,WAAW39nB,GAAK6ioB,EAAO5ioB,UAAUD,EAAG6ioB,EAAOpsoB,WAExFqsoB,GAEFhF,EAAY,CACZ,GAAMA,EAAW99nB,KAAO/M,KAAK2qoB,YAAgB59nB,EAAI/M,KAAKoD,QAAQ4d,gBACzDhhB,KAAKoD,QAAQqG,MAAMlC,QAAQvH,KAAK2qoB,YAAc,GAAM3qoB,KAAKoD,QAAQ4d,eAAiB6unB,IAAe9ioB,EAAI,CACtG8ioB,EAAY,EACZ,KACJ,CACAD,EAAS/E,CACb,CAEJ,KAAO99nB,GAAK,GAAK89nB,GAAY,CACzB,GAAU,IAAN99nB,GAAiC,OAAtB89nB,EAAW99nB,EAAI,GAAa,CACvC,GAAsB,MAAlB89nB,EAAW99nB,GAAY,CACvBrK,EAAMA,EAAIo2F,cACV,KACJ,CACK,GAAsB,MAAlB+xiB,EAAW99nB,GAAY,CAC5BrK,EAAMA,EAAIwG,cACV,KACJ,CACK,GAAsB,MAAlB2hoB,EAAW99nB,GAChB,KAER,GACEA,CACN,CACA,OAAOrK,CACX,CAMO,SAASuooB,GAAahlhB,GACzB,GAAIjmH,KAAK8vI,WAAgBrxI,IAARwnH,SAAyCxnH,IAAnBuB,KAAKi2B,WAA2Bj2B,KAAKi2B,YAAcgwF,GAAM,CAO5F,GANAjmH,KAAKktoB,cAAe,EACpB3vX,GAAgB7oQ,KAAK1U,KAAMA,KAAK6qoB,YACpB,KAAR5khB,GAAwB,OAARA,GAAwC,UAAxBjmH,KAAKu7N,gBAA8Bv7N,KAAKupD,cACxEvpD,KAAKoD,QAAQ4d,eAAiB,EAC9BhhB,KAAKoD,QAAQ8d,aAAe,GAEpB,OAAR+kG,EACA,IAAK,IAAIl5G,EAAI,EAAGA,EAAIk5G,EAAIziH,OAAQuJ,IAC5BghO,GAAcr5N,KAAK1U,KAAMimH,EAAIl5G,IAAI,EAAO,MAGhD,IAAIm1d,EAAS+pK,GAAcv3nB,KAAK1U,KAAMA,KAAKoD,SAC3CpD,KAAKi2B,UAAYisc,EACjBlie,KAAKyJ,MAAQy4d,EACb4pK,GAAuBp3nB,KAAK1U,KAAM,KAAM,MACxCA,KAAKktoB,cAAe,EACpB,IAAIhxB,EAAel8mB,KAAKoD,QAAQ6qE,WAAWhpE,cAAc,iBACrDjF,KAAKoD,QAAQqG,QAAUzJ,KAAK6qoB,YAAsC,SAAxB7qoB,KAAKu7N,gBAA6Bv7N,KAAKupD,eAChF,QAAkB2yjB,IAAiBA,EAAat4iB,UAAU5+D,SAASkloB,MAAclqoB,KAAK8soB,WACvF,QAAY,CAAC5wB,GAAeguB,KAC5B,QAAS,CAAChuB,GAAeiuB,IACzB5sX,GAAgB7oQ,KAAK1U,KAAM,IAEnC,EACkB,OAAdA,KAAK8vI,MAA+B,KAAd9vI,KAAK8vI,WAA8BrxI,IAAfuB,KAAKyJ,QAC/C8zQ,GAAgB7oQ,KAAK1U,KAAMA,KAAKyJ,MAExC,CAMO,SAAS8zQ,GAAgBt3J,EAAK7iH,IAC5BpD,KAAK8soB,SAAmC,SAAxB9soB,KAAKu7N,gBAA6Bv7N,KAAKupD,cAAe,QAAkBvpD,KAAKyJ,SAC9Fw8G,EAAM,IAEV,IAAIx8G,EAAQwioB,GAAcv3nB,KAAK1U,KAAOoD,GAAoBpD,KAAKoD,QAAU6iH,GAC3D,OAAVx8G,GAA4B,KAAVA,GAClB,GAAA+xN,EAAMn5M,SAAS4jG,EAAM7iH,GAAoBpD,KAAKoD,QAAUpD,KAAKu7N,gBAAgB,GACzEv7N,KAAK68N,iBACL78N,KAAK45Q,SAASn7C,YAAY76J,UAAUjoD,IAAI,sBAI5C,GAAA6/M,EAAMn5M,SAAS4jG,EAAM7iH,GAAoBpD,KAAKoD,QAAUpD,KAAKu7N,eAAgBv7N,KAAK68N,gBAE1F,CA0Ee,IANX,WACA,EAFJ,IChlCWiza,GC5CP,GAAwC,WACxC,IAAIltc,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAWIq1hB,GAAkB,gBAClBC,GAAc,CAAC,QAAS,QAAS,SAajCC,GAA+B,SAAUz7nB,GAQzC,SAASy7nB,EAAclooB,EAAS3E,GAC5B,IAAInB,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAMnD,OALAiC,EAAM8poB,eAAiB,GACvB9poB,EAAM0rN,WAAY,EAClB1rN,EAAMyrN,eAAgB,EACtBzrN,EAAMsqoB,WAAY,EAClBtqoB,EAAMiuoB,YAAcnooB,EACb9F,CACX,CA8cA,OA7dA,GAAUguoB,EAAez7nB,GAsBzBy7nB,EAAcvuoB,UAAU69L,cAAgB,WACpC,MAAO,eACX,EAOA0wc,EAAcvuoB,UAAUirM,UAAY,WAChC3sM,KAAK6qoB,WAAa,GAClB7qoB,KAAK0qoB,WAAa,GAClB1qoB,KAAK4qoB,gBAAkB,GACvB5qoB,KAAKssoB,aAAelC,GACpBpqoB,KAAKyqoB,mBAAqB,GAC1BzqoB,KAAKstoB,WAAa,GAClBttoB,KAAK6roB,WAAa,GAClB7roB,KAAKmmN,gBAAkB,CAAC,EACxBnmN,KAAKmgR,eAAiB,CAAC,EACvBngR,KAAKqgR,cAAgB,CAAC,EACtBrgR,KAAKktoB,cAAe,EACpBltoB,KAAK8soB,SAAU,EACf9soB,KAAK8nQ,WAAY,EACjB9nQ,KAAKwuoB,cAAe,EACpB,IAAIlnb,GAAa,QAAS,gBAAiBtnN,KAAKoD,SAKhD,GAJApD,KAAKimO,aAAejmO,KAAKoD,QAAQg5C,WAAU,IAC3C,QAAY,CAACp8C,KAAKimO,cAAe,CAhE3B,YADE,kBAiE8C,UACtDjmO,KAAKk7Q,eAAiB,KACtBl7Q,KAAK2+N,aAAc,QAAQ3+N,KAAKoD,QAAS,QACZ,sBAAzBpD,KAAKoD,QAAQ4b,QAAiC,CAC9Chf,KAAKk7Q,eAAiBl7Q,KAAKoD,QAAQ4b,QAEnC,IADA,IAAI0kC,EAAQ1jD,KAAKuE,cAAc,SACtBwI,EAAI,EAAGA,EAAI/M,KAAKoD,QAAQylI,WAAWrlI,OAAQuJ,IAChD22C,EAAMj/C,aAAazE,KAAKoD,QAAQylI,WAAW97H,GAAGw6M,SAAUvnN,KAAKoD,QAAQylI,WAAW97H,GAAGy6M,WACnF9jK,EAAMqkF,UAAY/nI,KAAKoD,QAAQ2kI,UAE/B/nI,KAAKoD,QAAQwhF,aAAa,OAC1B5kF,KAAKoD,QAAQub,gBAAgB,MAEjC3e,KAAKoD,QAAQwgE,UAAUC,OAAO,YAAa,mBAC3C7jE,KAAKoD,QAAQwgE,UAAUjoD,IAAI,oBAC3B3b,KAAKoD,QAAQM,YAAYggD,GACzB1jD,KAAKoD,QAAUsgD,GACf,QAAS,gBAAiB4jK,EAAYtnN,KAAKoD,QAC/C,CACApD,KAAK07Q,0BACL17Q,KAAKsjO,qBAAoB,GACrBtjO,KAAK2+N,cACL3+N,KAAK+roB,eAAiB/roB,KAAKyJ,MAEnC,EAOAwmoB,EAAcvuoB,UAAUqsM,eAAiB,WAErC,OAAO/tM,KAAKuuM,aADI,CAAC,SAErB,EAQA0hc,EAAcvuoB,UAAU6a,OAAS,WACc,UAAvCvc,KAAKoD,QAAQ4b,QAAQ9V,gBACO,UAAxBlJ,KAAKu7N,iBACL,QAAS,CAACv7N,KAAKoD,SA/GnB,WAiHApD,KAAK67Q,gBACL77Q,KAAKy8Q,0BACqB,KAAtBz8Q,KAAKoD,QAAQwE,MACb5H,KAAKoD,QAAQqB,aAAa,OAAQzE,KAAKoD,QAAQs0B,IAEnD13B,KAAK8nQ,WAAY,EACjB9nQ,KAAKmwoB,qBACLnwoB,KAAK8nQ,WAAY,EACjB9nQ,KAAKowoB,oBAAmB,GAAM,GAC9BpwoB,KAAK+8N,SAAS/8N,KAAK2a,OACnB3a,KAAKytoB,UAAYztoB,KAAKoD,QAAQqG,MACzB,KAAQwvL,UAAsC,SAAzB,KAAQzwC,KAAKK,SAA4C,SAAtB,KAAQL,KAAK5gJ,MACtE5H,KAAKoD,QAAQq8N,OAEb,KAAQxmC,UAAY,KAAQO,OAC5Bx5L,KAAKoD,QAAQq8N,QAEbz/N,KAAKoD,QAAQxE,aAAa,UAAYoB,KAAKyJ,QAC3CzJ,KAAKoD,QAAQqB,aAAa,QAASzE,KAAKoD,QAAQqG,SAE/C,SAAkB,QAAQzJ,KAAKoD,QAAS,eAAgB,QAAQpD,KAAKoD,QAAS,YAAYiT,WAC3FrW,KAAKuqH,SAAU,GAEnBvqH,KAAKqtM,iBAEb,EACA4ic,EAAcvuoB,UAAUg6Q,wBAA0B,WAC9C,KAAK,QAAkB17Q,KAAKonN,gBACxB,IAAK,IAAIhiN,EAAK,EAAG7F,EAAK4G,OAAOC,KAAKpG,KAAKonN,gBAAiBhiN,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC1E,IAAI1C,EAAMnD,EAAG6F,GACT4qoB,GAAYzooB,QAAQ7E,GAAO,GAC3B1C,KAAKoD,QAAQqB,aAAa/B,EAAK1C,KAAKonN,eAAe,GAAK1kN,GAEhE,CAER,EACAutoB,EAAcvuoB,UAAUo+N,eAAiB,SAAUypC,EAAUC,GACzD,GAAAhuC,EAAMuE,YAAY//N,KAAKqwoB,kBAAkB9mY,GAAW,CAACvpQ,KAAK45Q,SAAS9xO,WAAY9nC,KAAKqwoB,kBAAkB7mY,GAC1G,EACAymY,EAAcvuoB,UAAU2uoB,kBAAoB,SAAUC,GAClD,IAAItyoB,EAASsyoB,EAIb,OAHK,QAAkBA,IAAoC,KAAlBA,IACrCtyoB,EAAUsyoB,EAAchmoB,QAAQ,OAAQ,KAAMuB,QAE3C7N,CACX,EACAiyoB,EAAcvuoB,UAAU+6Q,wBAA0B,WAC9C,KAAK,QAAkBz8Q,KAAKonN,gBACxB,IAAK,IAAIhiN,EAAK,EAAG7F,EAAK4G,OAAOC,KAAKpG,KAAKonN,gBAAiBhiN,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC1E,IAAI1C,EAAMnD,EAAG6F,GACb,GAAI4qoB,GAAYzooB,QAAQ7E,IAAQ,EAC5B,GAAY,UAARA,EAAiB,CACjB,IAAIi9N,EAAsB3/N,KAAKonN,eAAe,GAAK1kN,GAAK4H,QAAQ,OAAQ,KAAMuB,OACnD,KAAvB8zN,IACA,QAAS,CAAC3/N,KAAK45Q,SAAS9xO,WAAY63L,EAAmBn4N,MAAM,KAErE,MACK,GAAY,UAAR9E,EAAiB,CACtB,IAAI6toB,EAAYvwoB,KAAK45Q,SAAS9xO,UAAUlpC,aAAa8D,GACrD6toB,GAAa,QAAkBA,GAC3BvwoB,KAAKonN,eAAe,GAAK1kN,GADgB6toB,EAAYvwoB,KAAKonN,eAAe,GAAK1kN,GAElF1C,KAAK45Q,SAAS9xO,UAAUrjC,aAAa/B,EAAK6toB,EAC9C,MAEIvwoB,KAAK45Q,SAAS9xO,UAAUrjC,aAAa/B,EAAK1C,KAAKonN,eAAe,GAAK1kN,GAG/E,CAER,EACAutoB,EAAcvuoB,UAAUyuoB,mBAAqB,WACzCnwoB,KAAK6qoB,WAAa,GAClB7qoB,KAAK0qoB,WAAa,GAClB1qoB,KAAK4qoB,gBAAkB,GACvB5qoB,KAAKyqoB,mBAAqB,GAC1BzqoB,KAAKstoB,WAAa,GAClBttoB,KAAK6roB,WAAa,GACd7roB,KAAK2qoB,WAAWnnoB,OAAS,IACzBxD,KAAK2qoB,WAAa3qoB,KAAK2qoB,WAAW,IAEtC5+Z,GAAWr3N,KAAK1U,MAChBgroB,GAAUt2nB,KAAK1U,OACG,OAAdA,KAAK8vI,MAA+B,KAAd9vI,KAAK8vI,WAA8BrxI,IAAfuB,KAAKyJ,QAC/C8zQ,GAAgB7oQ,KAAK1U,KAAMA,KAAKyJ,OAEpC,IAAIw8G,EAAMgmhB,GAAcv3nB,KAAK1U,KAAMA,KAAKoD,SACxCpD,KAAKi2B,UAAYgwF,EACjBjmH,KAAKyJ,MAAQw8G,EACRjmH,KAAK8nQ,WACNluD,GAAallM,KAAK1U,MAEtBu4M,GAAW7jM,KAAK1U,KACpB,EACAiwoB,EAAcvuoB,UAAU0uoB,mBAAqB,SAAUI,EAAQC,IACvDA,GAAsBzwoB,KAAKupD,eAC3B,GAAAiyK,EAAM4I,eAAepkO,KAAKupD,YAAavpD,KAAKoD,UACvCpD,KAAKoD,QAAQqG,QAAUzJ,KAAK6qoB,YAAc2F,GAAkC,WAAxBxwoB,KAAKu7N,gBAC1Dv7N,KAAKoD,QAAQqG,QAAUzJ,KAAK6qoB,YAAsC,UAAxB7qoB,KAAKu7N,iBAC/CgiD,GAAgB7oQ,KAAK1U,KAAM,IAGvC,EACAiwoB,EAAcvuoB,UAAUq7N,SAAW,SAAUpiN,GACzC,KAAK,QAAkBA,GACnB,GAAqB,iBAAVA,EACP3a,KAAK45Q,SAAS9xO,UAAU1+B,MAAMuR,OAAQ,QAAWA,GACjD3a,KAAKoD,QAAQgG,MAAMuR,OAAQ,QAAWA,QAErC,GAAqB,iBAAVA,EAAoB,CAChC,IAAI29P,EAAgB39P,EAAMjP,MAAM,WAAc,GAAW,QAAWiP,GACpE3a,KAAK45Q,SAAS9xO,UAAU1+B,MAAMuR,MAAQ29P,EACtCt4Q,KAAKoD,QAAQgG,MAAMuR,MAAQ29P,CAC/B,CAER,EACA23X,EAAcvuoB,UAAU4hO,oBAAsB,SAAUrG,GAGpD,IAFA,IAES73N,EAAK,EAAGy+N,EAFA5G,GAAY,QAAkBj9N,KAAKonN,gBAAkB,GAAKjhN,OAAOC,KAAKpG,KAAKonN,gBACtF,CAAC,cAAe,WAAY,QAAS,YACChiN,EAAKy+N,EAAargO,OAAQ4B,IAAM,CACxE,IAAI1C,EAAMmhO,EAAaz+N,GACvB,KAAK,QAAkBpF,KAAKoD,QAAQxE,aAAa8D,IAC7C,OAAQA,GACJ,IAAK,gBACI,QAAkB1C,KAAKkwoB,mBAAqDzxoB,IAApCuB,KAAKkwoB,YAAyB,aAAqBjza,IAC5Fj9N,KAAKk+L,cAAc,CAAE30I,YAAavpD,KAAKoD,QAAQmmD,cAAgB0zK,GAEnE,MACJ,IAAK,WACD,IAAK,QAAkBj9N,KAAKkwoB,mBAAiDzxoB,IAAhCuB,KAAKkwoB,YAAqB,SAAqBjza,EAAW,CACnG,IAAI9/I,EAA+C,aAAnCn9E,KAAKoD,QAAQxE,aAAa8D,IAA0D,KAAnC1C,KAAKoD,QAAQxE,aAAa8D,IACpD,SAAnC1C,KAAKoD,QAAQxE,aAAa8D,GAC9B1C,KAAKk+L,cAAc,CAAE3zE,QAASptC,IAAc8/I,EAChD,CACA,MACJ,IAAK,UACI,QAAkBj9N,KAAKkwoB,mBAA+CzxoB,IAA9BuB,KAAKkwoB,YAAmB,OAAqBjza,IACtFj9N,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKoD,QAAQqG,QAAUwzN,GAEvD,MACJ,IAAK,WACD,IAAK,QAAkBj9N,KAAKkwoB,mBAAkDzxoB,IAAjCuB,KAAKkwoB,YAAsB,UAAqBjza,EAAW,CACpG,IAAI77M,EAAgD,aAAnCphB,KAAKoD,QAAQxE,aAAa8D,IAA0D,KAAnC1C,KAAKoD,QAAQxE,aAAa8D,IAClD,SAAnC1C,KAAKoD,QAAQxE,aAAa8D,GACjC1C,KAAKk+L,cAAc,CAAE69B,SAAU36M,IAAe67M,EAClD,EAIhB,CACJ,EACAgza,EAAcvuoB,UAAUm6Q,cAAgB,WACpC,IAAIn/C,EAAwB18N,KAAKikN,UAC5B,QAAkBjkN,KAAKikN,WAA+B,KAAlBjkN,KAAKikN,WAC1CyY,EAAwB18N,KAAKqwoB,kBAAkBrwoB,KAAKikN,WAExDjkN,KAAK45Q,SAAW,GAAAp+C,EAAMW,YAAY,CAC9B/4N,QAASpD,KAAKoD,QACdm4N,eAAgBv7N,KAAKu7N,eACrB37G,WAAY,CACRssF,UAAWlsM,KAAKksM,UAChB+X,SAAUyY,EACVnyG,QAASvqH,KAAKuqH,QACdwxG,SAAU/7N,KAAK+7N,SACfxyK,YAAavpD,KAAKupD,YAClBszK,gBAAiB78N,KAAK68N,kBAE3B78N,KAAKuE,eACRvE,KAAK45Q,SAAS9xO,UAAUrjC,aAAa,QAAS,4BAAazE,KAAK45Q,SAAS9xO,UAAUlpC,aAAa,SACpG,EASAqxoB,EAAcvuoB,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAC3D,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,QACD6loB,GAAav2nB,KAAK1U,KAAMA,KAAKyJ,OACzBzJ,KAAKupD,cAAgBvpD,KAAK8soB,SAC1B9soB,KAAKowoB,oBAAmB,GAAO,GAEhB,KAAfpwoB,KAAKyJ,QACLzJ,KAAKoD,QAAQ4d,eAAiB,EAC9BhhB,KAAKoD,QAAQ8d,aAAe,GAEhC,MACJ,IAAK,cACDlhB,KAAKowoB,oBAAmB,GAAM,GAC9B,MACJ,IAAK,QACDpwoB,KAAK+8N,SAAS93B,EAAQtqL,OACtB,GAAA6gN,EAAMC,eAAez7N,KAAKoD,QAASpD,KAAK45Q,SAAS9xO,WACjD,MACJ,IAAK,WACD9nC,KAAK8/N,eAAe76B,EAAQgf,SAAU/e,EAAQ+e,UAC9C,MACJ,IAAK,UACD,GAAAuX,EAAM8I,WAAWr/B,EAAQ16E,QAASvqH,KAAKoD,QAASpD,KAAKu7N,eAAgBv7N,KAAK45Q,SAAS9xO,WACnF,MACJ,IAAK,WACD,GAAA0zL,EAAM6I,YAAYp/B,EAAQ82B,SAAU/7N,KAAKoD,SACzC,MACJ,IAAK,YACD,GAAAo4N,EAAM+I,aAAat/B,EAAQiH,UAAW,CAAClsM,KAAK45Q,SAAS9xO,YACrD,MACJ,IAAK,mBACD9nC,KAAK8qoB,iBAAmB7lc,EAAQ6lc,iBAChC9qoB,KAAKmwoB,qBACL,MACJ,IAAK,kBACD,GAAA30a,EAAMgJ,eAAev/B,EAAQ43B,gBAAiB78N,KAAKoD,QAASpD,KAAK45Q,cAAUn7Q,EAAWuB,KAAKuE,eAC3F26N,GAAexqN,KAAK1U,MACpB,MACJ,IAAK,iBACDA,KAAKu7N,eAAiBt2B,EAAQs2B,eAC9B,GAAAC,EAAMiJ,eAAezkO,KAAK45Q,UAC1B,GAAAp+C,EAAMkJ,YAAY1kO,KAAKoD,QAASpD,KAAKu7N,eAAgBv7N,KAAKupD,YAAavpD,KAAKuE,eAC5E,MACJ,IAAK,iBACDvE,KAAK07Q,0BACL17Q,KAAKy8Q,0BACLz8Q,KAAKsjO,qBAAoB,GACzB,MACJ,IAAK,OAEG,IAAIota,EAAkB1woB,KAAKyJ,MAC3BzJ,KAAK8vI,KAAOm1D,EAAQn1D,KACpB9vI,KAAKiyF,YAAYy+iB,GAErB,MACJ,IAAK,aACGzrc,EAAQ0lc,WAAWnnoB,OAAS,IAC5ByhM,EAAQ0lc,WAAa1lc,EAAQ0lc,WAAW,IAExC1lc,EAAQ0lc,WACR3qoB,KAAK2qoB,WAAa1lc,EAAQ0lc,WAG1B3qoB,KAAK2qoB,WAAa,IAGtB,IAAIlhoB,EAAQzJ,KAAKoD,QAAQqG,MAAMa,QAAQ,IAAI+nH,OAAO,IAAM6yE,EAAQylc,WAAa,IAAK,KAAM3qoB,KAAK2qoB,YACzF3qoB,KAAK6qoB,aAAe7qoB,KAAKoD,QAAQqG,QAEjCA,EAAQzJ,KAAK6qoB,WAAWvgoB,QAAQ,IAAI+nH,OAAO,IAAM6yE,EAAQylc,WAAa,IAAK,KAAM3qoB,KAAK2qoB,aAG1F3qoB,KAAK6qoB,WAAa7qoB,KAAK6qoB,WAAWvgoB,QAAQ,IAAI+nH,OAAO,IAAM6yE,EAAQylc,WAAa,IAAK,KAAM3qoB,KAAK2qoB,YAChG3qoB,KAAKstoB,WAAattoB,KAAK6roB,WAAa,GACpCtuX,GAAgB7oQ,KAAK1U,KAAMyJ,GAKvCzJ,KAAK0tN,cAAgB1tN,KAAK2tN,WAAa3tN,KAAK0tN,eAAiB1tN,KAAK0tN,cAAgB1tN,KAAK0tN,aAC3F,EACAuib,EAAcvuoB,UAAUuwF,YAAc,SAAU0+iB,GAC5C3woB,KAAKmwoB,qBACLlF,GAAav2nB,KAAK1U,KAAM2woB,EAC5B,EAQAV,EAAcvuoB,UAAUkvoB,eAAiB,WACrC,OAAO5E,GAAgBt3nB,KAAK1U,KAAMA,KAAKoD,QAC3C,EAOA6soB,EAAcvuoB,UAAUijN,QAAU,WAC1BjmN,SAASwY,gBAAkBlX,KAAKoD,SAAWpD,KAAKuqH,UAChDvqH,KAAK8soB,SAAU,EACf9soB,KAAKoD,QAAQwS,SACb,QAAS,CAAC5V,KAAK45Q,SAAS9xO,WAAY,CAACiomB,KAE7C,EAMAE,EAAcvuoB,UAAU8+N,SAAW,WAC3B9hO,SAASwY,gBAAkBlX,KAAKoD,SAAWpD,KAAKuqH,UAChDvqH,KAAK8soB,SAAU,EACf9soB,KAAKoD,QAAQq8N,QACb,QAAY,CAACz/N,KAAK45Q,SAAS9xO,WAAY,CAACiomB,KAEhD,EAQAE,EAAcvuoB,UAAUguL,QAAU,WAC9BkqB,GAAallM,KAAK1U,MAGlB,IAFA,IAAI8pQ,EAAY,CAAC,kBAAmB,OAAQ,eAAgB,gBACxD,gBAAiB,iBAAkB,aAAc,oBAAqB,YAAa,gBAC9E/8P,EAAI,EAAGA,EAAI+8P,EAAUtmQ,OAAQuJ,IAClC/M,KAAKoD,QAAQub,gBAAgBmrP,EAAU/8P,IAE3C/M,KAAKoD,QAAQwgE,UAAUC,OAAO,WAC1B7jE,KAAK45Q,WACL55Q,KAAK45Q,SAAS9xO,UAAUs7L,sBAAsB,WAAYpjO,KAAKoD,UAC/D,QAAOpD,KAAK45Q,SAAS9xO,YAEzB9nC,KAAKqgR,cAAgB,KACrB,GAAA7kD,EAAM9rC,UACN1vL,KAAKmmN,gBAAkB,KACvBnmN,KAAK45Q,SAAW,KAChBplQ,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,KAClC,EACA,GAAW,EACP,QAAS,OACViwoB,EAAcvuoB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,OACVuuoB,EAAcvuoB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,OACVuuoB,EAAcvuoB,UAAW,mBAAe,GAC3C,GAAW,EACP,QAAS,UACVuuoB,EAAcvuoB,UAAW,sBAAkB,GAC9C,GAAW,EACP,QAAS,CAAC,IACXuuoB,EAAcvuoB,UAAW,sBAAkB,GAC9C,GAAW,EACP,SAAS,IACVuuoB,EAAcvuoB,UAAW,eAAW,GACvC,GAAW,EACP,SAAS,IACVuuoB,EAAcvuoB,UAAW,gBAAY,GACxC,GAAW,EACP,SAAS,IACVuuoB,EAAcvuoB,UAAW,uBAAmB,GAC/C,GAAW,EACP,SAAS,IACVuuoB,EAAcvuoB,UAAW,yBAAqB,GACjD,GAAW,EACP,QAAS,OACVuuoB,EAAcvuoB,UAAW,YAAQ,GACpC,GAAW,EACP,QAAS,MACVuuoB,EAAcvuoB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,OACVuuoB,EAAcvuoB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,OACVuuoB,EAAcvuoB,UAAW,wBAAoB,GAChD,GAAW,EACP,WACDuuoB,EAAcvuoB,UAAW,eAAW,GACvC,GAAW,EACP,WACDuuoB,EAAcvuoB,UAAW,iBAAa,GACzC,GAAW,EACP,WACDuuoB,EAAcvuoB,UAAW,cAAU,GACtC,GAAW,EACP,WACDuuoB,EAAcvuoB,UAAW,aAAS,GACrC,GAAW,EACP,WACDuuoB,EAAcvuoB,UAAW,YAAQ,GACpB,GAAW,CACvB,MACDuuoB,EAEP,CA/dkC,CA+dhC,MD1gBE,GAAwC,WACxC,IAAIrtc,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EASWokE,GAAQ,CAEf+xd,MAAO,IAAIx+gB,OAAO,mHAGlBo7C,IAAK,kFACLqje,SAAU,IAAIz+gB,OAAO,2DACrB0+gB,OAAQ,IAAI1+gB,OAAO,YACnB2+gB,MAAO,IAAI3+gB,OAAO,qBAClB4+gB,WAAY,IAAI5+gB,OAAO,kBAS3B,SAAWy9gB,GAIPA,EAAYA,EAAqB,QAAI,GAAK,UAI1CA,EAAYA,EAAmB,MAAI,GAAK,OAC3C,CATD,CASGA,KAAgBA,GAAc,CAAC,IAgBlC,IAAIoB,GAA+B,SAAU18nB,GASzC,SAAS08nB,EAAc9toB,EAAS2E,GAC5B,IAAI9F,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KA6CnD,GA5CAiC,EAAMkvoB,UAAY,GAClBlvoB,EAAMmvoB,WAAa,GACnBnvoB,EAAMovoB,aAAc,EACpBpvoB,EAAM+/C,SAAW,WACjB//C,EAAMqvoB,YAAc,KACpBrvoB,EAAM4sF,aAAe,KACrB5sF,EAAMsvoB,YAAc,+DAEpBtvoB,EAAMuvoB,cAAgB,CAAC,EAMvBvvoB,EAAMwvoB,gBAAkB,CACpBzvlB,SAAU,0BACVzyC,MAAO,sCACPitD,IAAK,4BACL1+D,KAAM,6BACN4zoB,QAAS,qCACTC,WAAY,iCACZjkhB,OAAQ,+BACR6xD,OAAQ,4BACRkiV,UAAW,4CACXmwI,UAAW,wCACXC,YAAa,4DACb7od,MAAO,4CACPn5H,IAAK,kDACLC,IAAK,qDACLgvH,MAAO,gCACPgzd,IAAK,qCACLj5gB,QAAS,wCACTk5gB,QAAS,0CAEc,IAAhB9voB,EAAMf,QACbe,EAAMf,MAAQ,CAAC,GAEnBe,EAAMu6N,KAAO,IAAI,KAAK,gBAAiBv6N,EAAMwvoB,gBAAiBxvoB,EAAM6vH,QAChE7vH,EAAM6vH,QACN7vH,EAAM+voB,aAEV,KAAaxunB,GAAG,uBAAwBvhB,EAAMgwoB,kBAAmBhwoB,GACjEmB,EAA6B,iBAAZA,GAAuB,QAAOA,EAAS1E,UAAY0E,EAE/C,MAAjBnB,EAAMmB,QASV,OARInB,EAAMmB,QAAQqB,aAAa,aAAc,IACzCxC,EAAMiwoB,eAAgB,QAAUjwoB,EAAMsvoB,YAAatvoB,EAAMmB,SACzDnB,EAAMkwoB,mBACNlwoB,EAAMs2M,aAKHt2M,CACX,CAslBA,IAAImwoB,EAuIJ,OA7xBA,GAAUlB,EAAe18nB,GAiEzB49nB,EAAkBlB,EASlBA,EAAcxvoB,UAAU2woB,SAAW,SAAUzqoB,EAAM1G,GAC3C0G,IAEI5H,KAAKkB,MAAM0E,eAAegC,IAC1B,QAAO5H,KAAKkB,MAAM,GAAK0G,GAAO1G,EAAO,CAAC,GAGtClB,KAAKkB,MAAM,GAAK0G,GAAQ1G,EAGpC,EASAgwoB,EAAcxvoB,UAAU4woB,YAAc,SAAU1qoB,EAAM1G,GAClD,GAAK0G,GAAS1G,EAGT,GAAIlB,KAAKkB,MAAM,GAAK0G,KAAU1G,SACxBlB,KAAKkB,MAAM,GAAK0G,OAEtB,KAAK,QAAkB5H,KAAKkB,MAAM,GAAK0G,IAAS1G,GAMjD,OALA,IAAK,IAAI6L,EAAI,EAAGA,EAAI7L,EAAMsC,OAAQuJ,WACvB/M,KAAKkB,MAAM,GAAK0G,GAAM1G,EAAM0J,SAASmC,EAAE0nB,aAKtD,MAZIz0B,KAAKkB,MAAQ,CAAC,CAatB,EASAgwoB,EAAcxvoB,UAAUooM,SAAW,SAAU9hJ,GACzC,IAAI9mD,EAAQiF,OAAOC,KAAKpG,KAAKkB,OAC7B,GAAI8mD,GAAY9mD,EAAMsC,OAGlB,OAFAxD,KAAKuyoB,cAAcvqlB,IAEiB,IAA7B9mD,EAAMqG,QAAQygD,IAEP,IAF2BhoD,KAAKoxoB,WAAWjvoB,QAAO,SAAU64B,GACtE,OAAOA,EAAKpzB,OAASogD,CACzB,IAAGxkD,OAGHxD,KAAKoxoB,WAAa,GAClB,IAAK,IAAIhsoB,EAAK,EAAGotoB,EAAUtxoB,EAAOkE,EAAKotoB,EAAQhvoB,OAAQ4B,IAAM,CACzD,IAAIiF,EAASmooB,EAAQptoB,GACrBpF,KAAKuyoB,cAAclooB,EACvB,CACA,OAAkC,IAA3BrK,KAAKoxoB,WAAW5toB,MAE/B,EAOA0toB,EAAcxvoB,UAAUsC,MAAQ,WAC5BhE,KAAKoD,QAAQY,QACbhE,KAAKyyoB,WACT,EAQAvB,EAAcxvoB,UAAUgxoB,gBAAkB,SAAU9qoB,GAEhD,OADA5H,KAAK6uF,cAAgB,QAAO,UAAYjnF,EAAO,KAAM5H,KAAKoD,SACnDpD,KAAK6uF,YAChB,EAOAqijB,EAAcxvoB,UAAUguL,QAAU,WAC9B1vL,KAAKgE,QACLhE,KAAK45M,eACL55M,KAAKkB,MAAQ,CAAC,EAEd,IADA,IACSkE,EAAK,EAAG4+L,GADF,QAAU,IAAMhkM,KAAK09N,WAAa,MAAQ19N,KAAK2yoB,WAAY3yoB,KAAKoD,SACvCgC,EAAK4+L,EAAWxgM,OAAQ4B,IAAM,CAClE,IAAIhC,EAAU4gM,EAAW5+L,IACzB,QAAOhC,EACX,CACAoR,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,MAC9B,KAAakxE,IAAI,uBAAwBlxE,KAAKiyoB,kBAClD,EAQAf,EAAcxvoB,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAC3D,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAG/C,WAFE7F,EAAG6F,IAGNpF,KAAKgyoB,YAIrB,EAKAd,EAAcxvoB,UAAUswoB,WAAa,WACjC,IAAK,IAAI5soB,EAAK,EAAG7F,EAAK4G,OAAOC,KAAKpG,KAAKyxoB,iBAAkBrsoB,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC3E,IAAI1C,EAAMnD,EAAG6F,GACbpF,KAAKw8N,KAAKpiB,UAAUp6M,KAAK8xH,QACzB,IAAIroH,EAAQzJ,KAAKw8N,KAAK/hB,YAAY/3M,GAClC1C,KAAKwxoB,cAAc,GAAK9uoB,GAAO+G,CACnC,CACJ,EAKAynoB,EAAcxvoB,UAAU69L,cAAgB,WACpC,MAAO,eACX,EAMA2xc,EAAcxvoB,UAAUuwoB,kBAAoB,SAAUtvoB,GAClD3C,KAAK8xH,OAASnvH,EAAKmvH,OACnB9xH,KAAKgyoB,YACT,EAMAd,EAAcxvoB,UAAUgrM,QAAU,WAC9B1sM,KAAK45M,eACL55M,KAAKkyoB,eAAgB,QAAUlyoB,KAAKuxoB,YAAavxoB,KAAKoD,SACtDpD,KAAKu4M,YACT,EACA24b,EAAcxvoB,UAAU+woB,UAAY,WAChCzyoB,KAAKoxoB,WAAa,GAClBpxoB,KAAKmxoB,UAAY,GAEjB,IADA,IACS/roB,EAAK,EAAGwtoB,GADF,QAAU5yoB,KAAKuxoB,YAAavxoB,KAAKoD,SACRgC,EAAKwtoB,EAAWpvoB,OAAQ4B,IAAM,CAClE,IACIs+C,EADUkvlB,EAAWxtoB,GAEzBs+C,EAAM/kC,gBAAgB,gBACtB+kC,EAAMkgB,UAAUC,OAAO7jE,KAAK09N,YACxBh6K,EAAM97C,KAAKpE,OAAS,IACpBxD,KAAK0yoB,gBAAgBhvlB,EAAM97C,MAC3B5H,KAAK6yoB,gBAAgBnvlB,EAAM97C,MAC3B5H,KAAK8yoB,YAAYpvlB,EAAM97C,OAE3B87C,EAAMkgB,UAAUC,OAAO7jE,KAAK2yoB,WAChC,CACJ,EACAzB,EAAcxvoB,UAAUywoB,iBAAmB,WAMvC,IALA,IAAIY,EAAW,CAAC,WAAY,iBAAkB,QAAS,cAAe,YAAa,YAAa,UAAW,SACvG,UAAW,oBAAqB,OAAQ,kBAAmB,MAAO,MAAO,QAAS,UAAW,yBAC7F,yBAA0B,yBAA0B,qBAAsB,yBAA0B,sBACpG,sBAAuB,kBACvBC,EAAgB,CAAC,SAAU,QAAS,MAAO,OAAQ,SAAU,OACxD5toB,EAAK,EAAG7F,EAAMS,KAAkB,cAAGoF,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAI9D,IAHA,IAAIs+C,EAAQnkD,EAAG6F,GAEX6toB,EAAU,CAAC,EACNtzoB,EAAK,EAAGuzoB,EAAaH,EAAUpzoB,EAAKuzoB,EAAW1voB,OAAQ7D,IAAM,CAClE,IAAIuD,EAAOgwoB,EAAWvzoB,GACtB,GAAiC,OAA7B+jD,EAAM9kD,aAAasE,GACnB,OAAQA,GACJ,IAAK,WACDlD,KAAKmzoB,QAAQzvlB,EAAOuvlB,EAAS/voB,EAAMwgD,EAAM1B,UACzC,MACJ,IAAK,kBACD9+C,EAAOwgD,EAAM9kD,aAAasE,GAC1BlD,KAAKmzoB,QAAQzvlB,EAAOuvlB,EAAS/voB,GAAM,GACnC,MACJ,IAAK,QAC0C,IAAvC8voB,EAAczroB,QAAQm8C,EAAM3iC,OAC5B/gB,KAAKmzoB,QAAQzvlB,EAAOuvlB,EAASvvlB,EAAM3iC,MAAM,GAE7C,MACJ,IAAK,cACL,IAAK,QACD/gB,KAAKmzoB,QAAQzvlB,EAAOuvlB,EAAS/voB,EAAMtB,KAAK+yH,MAAMjxE,EAAM9kD,aAAasE,KACjE,MACJ,IAAK,UAEG,IAAIw0B,EAAKgsB,EAAM9kD,aAAasE,GAC5BlD,KAAKmzoB,QAAQzvlB,EAAOuvlB,EAAS/voB,EAAMw0B,GAEvC,MACJ,QAC2C,SAAnCgsB,EAAM9kD,aAAa,YACnBoB,KAAKozoB,eAAe1vlB,EAAOuvlB,EAAS/voB,EAAMwgD,EAAM9kD,aAAasE,IAG7DlD,KAAKmzoB,QAAQzvlB,EAAOuvlB,EAAS/voB,EAAMwgD,EAAM9kD,aAAasE,IAI1E,CAEoC,IAAhCiD,OAAOC,KAAK6soB,GAASzvoB,QACrBxD,KAAKqyoB,SAAS3ulB,EAAM97C,KAAMqroB,EAElC,CACJ,EACA/B,EAAcxvoB,UAAU0xoB,eAAiB,SAAU1vlB,EAAO2vlB,EAASC,EAAU7poB,GACzE,IAAI2poB,EAAiBE,EAAS9roB,MAAM,KAChC+roB,EAAY,CAAC,WAAY,aAAc,QAAS,YAAa,YAAa,QAAS,QAAS,WAC5FC,EAAgBJ,EAAeA,EAAe5voB,OAAS,GACvDiwoB,EAAiBL,EAAeA,EAAe5voB,OAAS,GAC5D,IAA0C,IAAtC+voB,EAAUhsoB,QAAQisoB,GAClB,OAAQA,GACJ,IAAK,WACDxzoB,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,WAAY5poB,GACzC,MACJ,IAAK,aACDzJ,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,aAAc5poB,GAC3C,MACJ,IAAK,QACDzJ,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,MAAO5poB,QAI3C,IAA2C,IAAvC8poB,EAAUhsoB,QAAQksoB,GACvB,OAAQA,GACJ,IAAK,YACDzzoB,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,YAAa5poB,GAC1C,MACJ,IAAK,YACDzJ,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,YAAa5poB,GAC1C,MACJ,IAAK,QAEG,IAAIiqoB,EAAWhwlB,EAAM9kD,aAAa,sBAC9B+0oB,EAAWjwlB,EAAM9kD,aAAa,sBAClCoB,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,QAAS,CAACK,EAAUC,IAErD,MACJ,IAAK,UAEG,IAAIj8mB,EAAKgsB,EAAM9kD,aAAa00oB,GAAU9roB,MAAM,KAC5CxH,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,UAAW37mB,EAAGA,EAAGl0B,OAAS,IAE3D,MACJ,IAAK,QACDxD,KAAKmzoB,QAAQzvlB,EAAO2vlB,EAAS,QAAS5poB,GAItD,EACAynoB,EAAcxvoB,UAAUyxoB,QAAU,SAAUzvlB,EAAO2vlB,EAASC,EAAU7poB,GAClE,IAEImqoB,EAFA1ujB,EAAUxhC,EAAM9kD,aAAa,QAAU00oB,EAAW,YAClDO,EAAoBnwlB,EAAM9kD,aAAa,YAAc00oB,GAErDtzoB,KAAKkB,MAAMwiD,EAAM97C,OAAsB,mBAAb0roB,GAA8C,WAAbA,IAC3DtzoB,KAAK0yoB,gBAAgBhvlB,EAAM97C,MAC3BgsoB,EAAgB5zoB,KAAK8zoB,gBAAgB9zoB,KAAKkB,MAAMwiD,EAAM97C,MAAM,GAAK0roB,GAAWA,IAE5EpujB,EACAz7E,EAAQ,CAACA,EAAOy7E,GAEX2ujB,EACLpqoB,EAAQ,CAACA,EAAOoqoB,GAEXD,IACLnqoB,EAAQ,CAACA,EAAOmqoB,IAEpBP,EAAQ,GAAKC,GAAY7poB,CAC7B,EAEAynoB,EAAcxvoB,UAAU62M,WAAa,WACjC,IAAK,IAAInzM,EAAK,EAAG7F,EAAMS,KAAkB,cAAGoF,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC9D,IAAIs+C,EAAQnkD,EAAG6F,GACXgtoB,EAAgB2B,YAAYrwlB,GAC5B,KAAa/nC,IAAI+nC,EAAO,QAAS1jD,KAAKgmN,aAAchmN,MAE7B,WAAlB0jD,EAAM1kC,QACX,KAAarD,IAAI+nC,EAAO,SAAU1jD,KAAKinN,cAAejnN,OAGtD,KAAa2b,IAAI+nC,EAAO,WAAY1jD,KAAKkmN,gBAAiBlmN,MAC1D,KAAa2b,IAAI+nC,EAAO,QAAS1jD,KAAK2mN,aAAc3mN,MAE5D,CACA,KAAa2b,IAAI3b,KAAKoD,QAAS,SAAUpD,KAAKg0oB,cAAeh0oB,MAC7D,KAAa2b,IAAI3b,KAAKoD,QAAS,QAASpD,KAAK0+N,aAAc1+N,KAC/D,EAEAkxoB,EAAcxvoB,UAAUk4M,aAAe,WACnC,IAAK,IAAIx0M,EAAK,EAAG7F,EAAMS,KAAkB,cAAGoF,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC9D,IAAIs+C,EAAQnkD,EAAG6F,GACf,KAAa01L,YAAYp3I,EAC7B,CACA,KAAamgB,OAAO7jE,KAAKoD,QAAS,SAAUpD,KAAKg0oB,eACjD,KAAanwkB,OAAO7jE,KAAKoD,QAAS,QAASpD,KAAK0+N,aACpD,EAEAwya,EAAcxvoB,UAAUwkN,gBAAkB,SAAUziN,GAChDzD,KAAKg7L,QAAQ,WAAYv3L,GAEzB,IAAIL,EAAUK,EAAE2J,OACZpN,KAAKkB,MAAMkC,EAAQwE,QACf5H,KAAKkB,MAAMkC,EAAQwE,MAAM5H,KAAKgiD,WAAa5+C,EAAQqG,MAAMjG,OAAS,EAClExD,KAAK8pM,SAAS1mM,EAAQwE,OAEyB,IAA1C5H,KAAKmxoB,UAAU5poB,QAAQnE,EAAQwE,OACpC5H,KAAKmxoB,UAAUjvoB,KAAKkB,EAAQwE,MAGxC,EAEAspoB,EAAcxvoB,UAAUilN,aAAe,SAAUljN,GAC7CzD,KAAKg7L,QAAQ,QAASv3L,GACtB,IAAIL,EAAUK,EAAE2J,QAGA,IAAZ3J,EAAE+T,OAAiBxX,KAAKkB,MAAMkC,EAAQwE,SAAU5H,KAAKkB,MAAMkC,EAAQwE,OAAU5H,KAAKkB,MAAMkC,EAAQwE,MAAM5H,KAAKgiD,cAGjE,IAA1ChiD,KAAKmxoB,UAAU5poB,QAAQnE,EAAQwE,OAAgB5H,KAAKkB,MAAMkC,EAAQwE,QAA2C,IAJ/F,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAIuBL,QAAQ9D,EAAE+T,QACjGxX,KAAK8pM,SAAS1mM,EAAQwE,KAE9B,EAEAspoB,EAAcxvoB,UAAUskN,aAAe,SAAUviN,GAC7CzD,KAAKg7L,QAAQ,QAASv3L,GACtB,IAAIL,EAAUK,EAAE2J,OAEK,WAAjBhK,EAAQ2d,KACR/gB,KAAK8pM,SAAS1mM,EAAQwE,MAE0B,OAA3CxE,EAAQxE,aAAa,oBAE1BoB,KAAKqxoB,aAAc,EAE3B,EAEAH,EAAcxvoB,UAAUulN,cAAgB,SAAUxjN,GAC9CzD,KAAKg7L,QAAQ,SAAUv3L,GACvB,IAAIL,EAAUK,EAAE2J,OAChBpN,KAAK8pM,SAAS1mM,EAAQwE,KAC1B,EAEAspoB,EAAcxvoB,UAAUsyoB,cAAgB,SAAUvwoB,GAC9CzD,KAAKg7L,QAAQ,SAAUv3L,GAGlBzD,KAAKqxoB,aAAgBrxoB,KAAK8pM,WAI3B9pM,KAAKqxoB,aAAc,EAHnB5toB,EAAEkW,gBAKV,EAEAu3nB,EAAcxvoB,UAAUg9N,aAAe,WACnC1+N,KAAKyyoB,WACT,EAEAvB,EAAcxvoB,UAAU6woB,cAAgB,SAAU3qoB,GAC9C,GAAK5H,KAAKkB,MAAM,GAAK0G,GAArB,CAGA,IAAI1G,EAAQiF,OAAOC,KAAKpG,KAAKkB,MAAM,GAAK0G,IACpCqsoB,GAAa,EACbC,GAAqB,EACrBC,EAAQjzoB,EAAMqG,QAAQ,kBACtB6soB,EAAOlzoB,EAAMqG,QAAQ,UAQzB,GAPAvH,KAAK0yoB,gBAAgB9qoB,IACP,IAAVwsoB,IACAH,GAAa,IAEF,IAAXE,IACAD,GAAqB,IAEpBD,GAAeA,GAAcC,EAAlC,EACmB,IAAXC,GACAjzoB,EAAMwM,OAAOymoB,EAAO,IAEV,IAAVC,GACAlzoB,EAAMwM,OAAQ0moB,EAAO,EAAI,GAE7Bp0oB,KAAK6yoB,gBAAgBjroB,GACrB,IAAK,IAAIxC,EAAK,EAAGivoB,EAAUnzoB,EAAOkE,EAAKivoB,EAAQ7woB,OAAQ4B,IAAM,CACzD,IAAIlC,EAAOmxoB,EAAQjvoB,GACfqpD,EAAezuD,KAAK8zoB,gBAAgB9zoB,KAAKkB,MAAM,GAAK0G,GAAM,GAAK1E,GAAOA,GACtEoxoB,EAAY,CAAE1soB,KAAMA,EAAMs9E,QAASz2B,GACnC0nD,EAAY,CACZmlK,UAAW1zQ,EACXxE,QAASpD,KAAK6uF,aACd3J,QAASz2B,GAEb,IAAKzuD,KAAK+wb,QAAQnpb,EAAM1E,KAAUlD,KAAK6uF,aAAajrB,UAAU5+D,SAAShF,KAAKwgM,QAAS,CACjFxgM,KAAKu0oB,iBAAiB3soB,GACtB5H,KAAKoxoB,WAAWlvoB,KAAKoyoB,GAErBt0oB,KAAK6uF,aAAapqF,aAAa,eAAgB,QAC/CzE,KAAK6uF,aAAapqF,aAAa,mBAAoBzE,KAAK6uF,aAAan3D,GAAK,SAC1E13B,KAAK6uF,aAAajrB,UAAUjoD,IAAI3b,KAAK09N,YACrC19N,KAAK6uF,aAAajrB,UAAUC,OAAO7jE,KAAK2yoB,YACnC3yoB,KAAKsxoB,YAINtxoB,KAAKw0oB,YAAYF,GAHjBt0oB,KAAKy0oB,mBAAmB7soB,EAAM0soB,EAAUpvjB,QAASllF,KAAK6uF,cAK1DsnB,EAAUu+hB,aAAe10oB,KAAKsxoB,YAC9Bn7hB,EAAUy0C,OAAS,UACnB5qJ,KAAK6uF,aAAajrB,UAAUjoD,IAAI3b,KAAK09N,YACrC19N,KAAK6uF,aAAajrB,UAAUC,OAAO7jE,KAAK2yoB,YACxC3yoB,KAAK20oB,yBAAyB/soB,EAAMuuG,GACpCn2G,KAAKg7L,QAAQ,qBAAsB7kF,GAEtB,aAATjzG,GACAlD,KAAK6uF,aAAapqF,aAAa,gBAAiB,QAEpD,KACJ,CAEIzE,KAAK8yoB,YAAYlroB,GACjBuuG,EAAUy0C,OAAS,UACnB5qJ,KAAKg7L,QAAQ,qBAAsB7kF,EAE3C,CAIJ,CAjEA,CAkEJ,EAEA+6hB,EAAcxvoB,UAAUizoB,yBAA2B,SAAU/soB,EAAMgtoB,GAC1D50oB,KAAKkB,MAAM,GAAK0G,GAAM5H,KAAKgiD,WAAchiD,KAAK6uF,aAAaplF,MAAMjG,SAAW,QAAkBxD,KAAKsxoB,eACpGtxoB,KAAKsxoB,YAAYvpgB,UAAY/nI,KAAK6uF,aAAaplF,MAC/CzJ,KAAKsxoB,YAAY7soB,aAAa,eAAgB,SAC9CmwoB,EAAMhqf,OAAS,GACf5qJ,KAAK8yoB,YAAYlroB,GAEzB,EAEAspoB,EAAcxvoB,UAAUqvb,QAAU,SAAUnpb,EAAM1E,GAC9C,IAAI4rI,EAAS9uI,KAAKkB,MAAM,GAAK0G,GAAM,GAAK1E,GACpCs+O,EAAS1yG,aAAkB7oI,OAA8B,iBAAd6oI,EAAO,GAAmBA,EAAO,GAAKA,EACjF+lgB,EAAc70oB,KAAKkB,MAAM,GAAK0G,GAAM,GAAK1E,GACzCP,EAAO,CAAE8G,MAAOzJ,KAAK6uF,aAAaplF,MAAO+3O,MAAOA,EAAOp+O,QAASpD,KAAK6uF,aAAc8vI,YAAa3+N,KAAKoD,SAEzG,OADApD,KAAKg7L,QAAQ,kBAAmBr4L,IAC3BA,EAAK6+O,OAAkB,aAATt+O,IAGf2xoB,GAAyC,mBAAnBA,EAAY,GACzBA,EAAY,GACXngoB,KAAK1U,KAAM,CAAEoD,QAASpD,KAAK6uF,aAAcplF,MAAOzJ,KAAK6uF,aAAaplF,QAEvE2ooB,EAAgB2B,YAAY/zoB,KAAK6uF,cACzB,aAAT3rF,IAGG,QAAU,eAAiB0E,EAAO,aAAc5H,KAAKoD,SAASI,OAAS,EAGvE4uoB,EAAgB0C,eAAe,GAAK5xoB,GAAMP,GAEzD,EAEAuuoB,EAAcxvoB,UAAUoyoB,gBAAkB,SAAUiB,EAAW7xoB,GAC3D,IAAIgiF,EAAUllF,KAAK6uF,aAAajwF,aAAa,QAAUsE,EAAO,YAC1DlD,KAAK6uF,aAAajwF,aAAa,QAAUsE,EAAO,YAC/C6xoB,aAAqB9uoB,OAAiC,iBAAjB8uoB,EAAU,GAAmBA,EAAU,GAC7B,IAA3C5uoB,OAAOC,KAAKpG,KAAKwxoB,eAAehuoB,OAAgBxD,KAAKwxoB,cAAc,GAAKtuoB,GAAQlD,KAAKyxoB,gBAAgB,GAAKvuoB,GAC/Gq6H,EAAUr4C,EAAQx5E,MAAM,WAC5B,KAAK,QAAkB6xH,GACnB,IAAK,IAAIxwH,EAAI,EAAGA,EAAIwwH,EAAQ/5H,OAAQuJ,IAAK,CACrC,IAAItD,EAAQsroB,aAAqB9uoB,MAAQ8uoB,EAAUnqoB,SAASmC,EAAE0nB,aAAesgnB,EAC7E7vjB,EAAUA,EAAQ56E,QAAQizH,EAAQ3yH,SAASmC,EAAE0nB,aAAchrB,EAC/D,CAEJ,OAAOy7E,CACX,EAEAgsjB,EAAcxvoB,UAAU+yoB,mBAAqB,SAAU7soB,EAAMs9E,EAASxhC,GAClE,IAAIgxlB,GAAe,QAAc10oB,KAAK00oB,aAAc,CAChDjyoB,UAAWzC,KAAK09N,WAChB31F,UAAW7iD,EACX46D,MAAO,CAAE2mE,IAAK7+M,KAUlB,GAPI5H,KAAKg1oB,cAAgBlF,GAAYh3O,UACjC47O,EAAa9wkB,UAAUC,OAAO7jE,KAAK09N,YACnCg3a,EAAa9wkB,UAAUjoD,IAAI,aAC3B+4nB,GAAe,QAAc10oB,KAAKi1oB,eAAgB,CAAExyoB,UAAWzC,KAAK09N,WAAY31F,UAAW2sgB,EAAajigB,aAE5GiigB,EAAah9mB,GAAK13B,KAAK6uF,aAAajnF,KAAO,QAEvC5H,KAAKoD,QAAQ6B,cAAc,qBAAuBy+C,EAAMhsB,GAAK,MAC7D13B,KAAKoD,QAAQ6B,cAAc,qBAAuBy+C,EAAMhsB,GAAK,MAAMh0B,YAAYgxoB,QAE9E,IAAmD,IAA/ChxlB,EAAMkhC,aAAa,wBAAkC,CAE1D,IAAIswjB,EAAcxxlB,EAAM9kD,aAAa,yBACpB,QAAO,IAAMs2oB,EAAal1oB,KAAKoD,SACrCM,YAAYgxoB,EAC3B,MACK,GAA4B,MAAxB10oB,KAAKm1oB,gBAEVn1oB,KAAKm1oB,gBAAgBzgoB,KAAK1U,KAAMA,KAAK6uF,aAAc6ljB,OAElD,CACD,IAAIxtY,EAAclnQ,KAAK6uF,aAAap5E,cAChC2/nB,EAAcluY,EAAYzxP,cAC1ByxP,EAAYtjM,UAAU5+D,SAAS,sBAAwBkiQ,EAAYtjM,UAAU5+D,SAAS,aACtFowoB,EAAYrwoB,aAAa2voB,EAAcxtY,EAAYsmD,aAE9C4nV,EAAYxxkB,UAAU5+D,SAAS,sBAAwBowoB,EAAYxxkB,UAAU5+D,SAAS,aAC3FowoB,EAAY3/nB,cAAc1Q,aAAa2voB,EAAcU,EAAY5nV,aAGjEtmD,EAAYniQ,aAAa2voB,EAAc10oB,KAAK6uF,aAAa2+N,YAEjE,CACAknV,EAAatroB,MAAMwjB,QAAU,QAC7B5sB,KAAK6yoB,gBAAgBjroB,GACrB5H,KAAKmxoB,UAAUjvoB,KAAK0F,GACpB5H,KAAKq1oB,cAAcztoB,EACvB,EAEAspoB,EAAcxvoB,UAAUmxoB,gBAAkB,SAAUjroB,GAKhD,OAJA5H,KAAKsxoB,aAAc,QAAOtxoB,KAAK00oB,aAAe,IAAM10oB,KAAK09N,WAAY19N,KAAK6uF,aAAap5E,eAClFzV,KAAKsxoB,cACNtxoB,KAAKsxoB,aAAc,QAAOtxoB,KAAK00oB,aAAe,IAAM10oB,KAAK09N,WAAa,SAAW91N,EAAO,KAAM5H,KAAKoD,UAEhGpD,KAAKsxoB,WAChB,EAEAJ,EAAcxvoB,UAAU6yoB,iBAAmB,SAAU3soB,GACjD,IAAK,IAAImF,EAAI,EAAGA,EAAI/M,KAAKoxoB,WAAW5toB,OAAQuJ,IAC7B/M,KAAKoxoB,WAAWxmoB,SAASmC,EAAE0nB,aAC7B7sB,OAASA,GACd5H,KAAKoxoB,WAAW1joB,OAAOX,EAAG,EAGtC,EAEAmkoB,EAAcxvoB,UAAU8yoB,YAAc,SAAUF,GAC5Ct0oB,KAAKsxoB,YAAYlooB,MAAMwjB,QAAU,QACjC5sB,KAAKsxoB,YAAYvpgB,UAAYusgB,EAAUpvjB,QACvCllF,KAAKq1oB,cAAcf,EAAU1soB,KACjC,EAEAspoB,EAAcxvoB,UAAUoxoB,YAAc,SAAUlroB,GACxC5H,KAAKsxoB,cACLtxoB,KAAKsxoB,YAAYlooB,MAAMwjB,QAAU,OACjC5sB,KAAKu0oB,iBAAiB3soB,GACtB5H,KAAK6uF,aAAajrB,UAAUjoD,IAAI3b,KAAK2yoB,YACrC3yoB,KAAK6uF,aAAajrB,UAAUC,OAAO7jE,KAAK09N,YACxC19N,KAAK6uF,aAAapqF,aAAa,eAAgB,SAEvD,EAEAysoB,EAAcxvoB,UAAU2zoB,cAAgB,SAAUztoB,GACzC5H,KAAKkB,MAAM,GAAK0G,GAAM5H,KAAKgiD,WAAchiD,KAAK6uF,aAAaplF,MAAMjG,SAAW,QAAkBxD,KAAKsxoB,eACpGtxoB,KAAKsxoB,YAAYvpgB,UAAY/nI,KAAK6uF,aAAaplF,MAC/CzJ,KAAKsxoB,YAAY7soB,aAAa,eAAgB,SAC9CzE,KAAK8yoB,YAAYlroB,GAEzB,EAEAspoB,EAAc6C,YAAc,SAAUrwlB,GAClC,IAAI4xlB,EAAY5xlB,EAAM9kD,aAAa,QACnC,OAAO02oB,IAA4B,aAAdA,GAA0C,UAAdA,GAAuC,WAAdA,EAC9E,EAGApE,EAAc4D,eAAiB,CAC3B9ylB,SAAU,SAAUiF,GAChB,OAAQw9B,MAAMxmF,KAAK02H,MAAM1tE,EAAOx9C,QAAqDw9C,EAAOx9C,MAAMgrB,WAAWjxB,OAAS,GAA3EihF,MAAM,IAAIxmF,KAAKgpD,EAAOx9C,OAAOvL,UAC5E,EACAqR,MAAO,SAAU03C,GACb,OAAO63H,GAAM+xd,MAAM1xoB,KAAK8nD,EAAOx9C,MACnC,EACA+yD,IAAK,SAAUvV,GACX,OAAO63H,GAAMrR,IAAItuK,KAAK8nD,EAAOx9C,MACjC,EACAiooB,QAAS,SAAUzqlB,GACf,OAAO63H,GAAMgyd,SAAS3xoB,KAAK8nD,EAAOx9C,MACtC,EACAqooB,IAAK,SAAU7qlB,GACX,OAAO63H,GAAMkyd,MAAM7xoB,KAAK8nD,EAAOx9C,MACnC,EACAkooB,WAAY,SAAU1qlB,GAClB,OAAO63H,GAAMmyd,WAAW9xoB,KAAK8nD,EAAOx9C,MACxC,EACAikH,OAAQ,SAAUzmE,GACd,OAAQw9B,MAAMrG,OAAOn3B,EAAOx9C,UAA0C,IAA/Bw9C,EAAOx9C,MAAMlC,QAAQ,IAChE,EACAg4K,OAAQ,SAAUt4H,GACd,OAAO63H,GAAMiyd,OAAO5xoB,KAAK8nD,EAAOx9C,MACpC,EACAg4f,UAAW,SAAUx6c,GACjB,OAAOA,EAAOx9C,MAAMjG,QAAUyjD,EAAOu6L,KACzC,EACAowZ,UAAW,SAAU3qlB,GACjB,OAAOA,EAAOx9C,MAAMjG,QAAUyjD,EAAOu6L,KACzC,EACAqwZ,YAAa,SAAU5qlB,GACnB,IAAIu6L,EAAQv6L,EAAOu6L,MACnB,OAAOv6L,EAAOx9C,MAAMjG,QAAUg+O,EAAM,IAAMv6L,EAAOx9C,MAAMjG,QAAUg+O,EAAM,EAC3E,EACAx4D,MAAO,SAAU/hI,GACb,IAAIu6L,EAAQv6L,EAAOu6L,MACnB,OAAQ/8J,MAAMrG,OAAOn3B,EAAOx9C,SAAW20E,OAAOn3B,EAAOx9C,QAAU+3O,EAAM,IAAMpjK,OAAOn3B,EAAOx9C,QAAU+3O,EAAM,EAC7G,EACA1jP,KAAM,SAAUmpD,GACZ,IAAK,QAAkBA,EAAOu6L,QAAqC,iBAAlBv6L,EAAY,OAAmC,KAAjBA,EAAOu6L,MAOlF,OAAQ/8J,MAAM,IAAIxmF,KAAKgpD,EAAOx9C,OAAOvL,WANrC,IAAIwwN,EAAY,IAAI,KAChBkS,EAAc,CAAEjpI,OAAQ1wC,EAAOu6L,MAAM/sN,WAAY1T,KAAM,WAAY0tG,SAAU,OAC7E6uG,EAAY5O,EAAUn+B,UAAUtpI,EAAOx9C,MAAOm3N,GAClD,QAAS,QAAkBtD,IAAcA,aAAqBr/N,OAASwmF,OAAO64I,EAKtF,EACAztK,IAAK,SAAU5I,GACX,OAAKw9B,MAAMrG,OAAOn3B,EAAOx9C,QAKlB,IAAIxL,KAAKgpD,EAAOx9C,OAAOvL,WAAa,IAAID,KAAK2D,KAAK+yH,MAAM/yH,KAAKC,UAAUolD,EAAOu6L,SAAStjP,WAHlF+oD,EAAOx9C,OAASw9C,EAAOu6L,KAIvC,EACA1xL,IAAK,SAAU7I,GACX,GAAKw9B,MAAMrG,OAAOn3B,EAAOx9C,QAIpB,KAAqC,IAAhCw9C,EAAY,MAAE1/C,QAAQ,KAAa,CACzC,IAAIguoB,EAAQtulB,EAAY,MAAE38C,QAAQ,KAAM,IACxC,OAAO6V,WAAWo1nB,IAAStulB,EAAOu6L,KACtC,CAGI,OAAO,IAAIvjP,KAAKgpD,EAAOx9C,OAAOvL,WAAa,IAAID,KAAK2D,KAAK+yH,MAAM/yH,KAAKC,UAAUolD,EAAOu6L,SAAStjP,SAClG,CATI,OAAQ+oD,EAAOx9C,OAASw9C,EAAOu6L,KAUvC,EACA1iE,MAAO,SAAU73H,GAEb,OAAO,IAAIorE,OAAOprE,EAAOu6L,OAAOriP,KAAK8nD,EAAOx9C,MAChD,EACAsooB,QAAS,SAAU9qlB,GACf,IAAIuulB,EAAYvulB,EAAO03K,YAAY15N,cAAc,IAAMgiD,EAAOu6L,OAE9D,OADAv6L,EAAOu6L,MAAQg0Z,EAAU/roB,MAClBw9C,EAAOu6L,QAAUv6L,EAAOx9C,KACnC,GAEJ,GAAW,EACP,QAAS,KACVynoB,EAAcxvoB,UAAW,cAAU,GACtC,GAAW,EACP,QAAS,aACVwvoB,EAAcxvoB,UAAW,cAAU,GACtC,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,YACVwvoB,EAAcxvoB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,YACVwvoB,EAAcxvoB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,UACVwvoB,EAAcxvoB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,QACVwvoB,EAAcxvoB,UAAW,sBAAkB,GAC9C,GAAW,EACP,QAASouoB,GAAYxhlB,QACtB4ilB,EAAcxvoB,UAAW,mBAAe,GAC3C,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,gBAAY,GACxC,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,aAAS,GACrC,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,aAAS,GACrC,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,cAAU,GACtC,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,cAAU,GACtC,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,uBAAmB,GAC/C,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,0BAAsB,GAClD,GAAW,EACP,WACDwvoB,EAAcxvoB,UAAW,uBAAmB,GAC/B0woB,EAAkB,GAAW,CACzC,MACDlB,EAEP,CA/xBkC,CA+xBhC,ME31BS/jV,GAAW,YCNX,GAAO,kBAEPsoV,GAAW,sBAEXC,GAAgB,2BAUhBC,GAAS,oBAYT,GAAQ,uBAIRC,GAAiB,mBAEjBC,GAAW,sBAEXnnf,GAAO,kBAEPonf,GAAW,aAEXC,GAAa,eAEbC,GAAgB,kBAEhBC,GAAe,oBAEft7V,GAAU,YAMVu7V,GAAO,SAEPv5W,GAAO,SAEP,GAAM,QAEN,GAAQ,UAER8c,GAAO,YC9Dd,GAAwC,WACxC,IAAI72G,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIy7hB,GAA+B,SAAU3hoB,GAEzC,SAAS2hoB,IACL,OAAkB,OAAX3hoB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAUm2oB,EAAe3hoB,GAIzB,GAAW,EACP,QAAS,KACV2hoB,EAAcz0oB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,OACVy0oB,EAAcz0oB,UAAW,aAAS,GAC9By0oB,CACX,CAZkC,CAYhC,MAKSC,GAAc,CACrB,aAAgB,gBAChB,MAAS,eACT,SAAY,YACZ,UAAa,oBACb,YAAe,eACf,IAAO,MACP,OAAU,SACV,KAAQ,eAODC,GAAiB,CACxB,MAAS,CAAE,cAAiB,iBAC5B,SAAY,CAAE,oBAAuB,wBACrC,cAAiB,CAAE,cAAiB,kBCtDpC91O,GAAO,IAAI,KAOR,SAAS7hJ,GAAW39P,EAAMklG,EAAK51G,GAClC,IAAI,QAAM41G,IAAgB,KAARA,EACd,MAAO,GAEX,IAAIjoH,EACAu/N,EACJ,OAAQx8M,GACJ,IAAK,QACD,IAAI0tP,EAAMxoJ,EACVjoH,EAAUywQ,EAAIjrQ,OAAS,EAAKirQ,EAAItiQ,MAAM,GAAI,GAAKsiQ,EAC/C,MAEJ,IAAK,OACDlxC,EAAaltN,EAAMsnF,OACnB35F,EAASuia,GAAKjwO,WAAWrqE,EAAK,CAAEtuB,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,QAC7F,MACJ,IAAK,YACD8uG,EAAaltN,EAAMsnF,OACnB,IAAI75F,EAAOmoH,EACXjoH,EAASuia,GAAKjwO,WAAWxyL,EAAK,GAAI,CAAE65F,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,QAAW,MACtG8xS,GAAKjwO,WAAWxyL,EAAK,GAAI,CAAE65F,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,QAC9F,MAEJ,IAAK,WACD8uG,EAAaltN,EAAMsnF,OAEf35F,GADA,QAAMu/N,IAA8B,KAAfA,EACZgjM,GAAKjwO,WAAWrqE,EAAK,CAAEtuB,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,QAAW,IAClG8xS,GAAKjwO,WAAWrqE,EAAK,CAAEtuB,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,OAGjF8xS,GAAKjwO,WAAWrqE,EAAK,CAAEtuB,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,QAEjG,MACJ,IAAK,OACD8uG,EAAaltN,EAAMsnF,OACnB35F,EAASuia,GAAKjwO,WAAWrqE,EAAK,CAAEtuB,OAAQ4lI,EAAYx8M,KAAMA,EAAM0tG,UAAU,UAAa,IAAM,OAC7F,MACJ,IAAK,UACD8uG,GAAa,QAAMltN,EAAMsnF,QAAU,KAC/BtnF,EAAMsnF,OACV,IAAIg7I,GAAU,QAAM1sH,GAAO,KAAyB,iBAAV,EAAqBA,EAAMs6S,GAAK/vO,YAAYvqE,GACtFjoH,EAASuia,GAAKlwO,aAAasiD,EAAS,CAAEh7I,OAAQ4lI,IAC9C,MAEJ,QACIv/N,EAASioH,EAAIxxF,WAGrB,OAAOz2B,CACX,CAMO,SAASs4oB,GAAav1nB,EAAMklG,GAC/B,IAAI,QAAMA,IAAgB,KAARA,EACd,OAAOA,EAEX,GAAc,SAATllG,GAA4B,SAATA,GAA4B,aAATA,GAAyC,iBAAV,GAGrE,GAAa,cAATA,EACL,GAAqB,iBAAV,GAA0C,iBAAZklG,EAAI,GACzCA,EAAM,CAAC,IAAIhoH,KAAKgoH,EAAI,IAAK,IAAIhoH,KAAKgoH,EAAI,UAErC,GAAqB,iBAAV,EAAoB,CAChC,IAAImiE,EAAOniE,EAAIz+G,MAAM,KACrBy+G,EAAM,CAAC,IAAIhoH,KAAKmqL,EAAK,IAAK,IAAInqL,KAAKmqL,EAAK,IAC5C,OATAniE,EAAM,IAAIhoH,KAAKgoH,GAWnB,OAAOA,CACX,CCnFA,qCAAI,GAAwC,WACxC,IAAI28E,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EA8BI67hB,GAA+B,SAAU/hoB,GAQzC,SAAS+hoB,EAAcxuoB,EAAS3E,GAC5B,IAAInB,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAEnD,OADAiC,EAAM+pM,SAAU,EACT/pM,CACX,CAk2CA,OA72CA,GAAUs0oB,EAAe/hoB,GAYzB+hoB,EAAc70oB,UAAUkiU,gBAAkB,WACtC5jU,KAAK+iR,YAAa,EAClB/iR,KAAK85d,YAAa,EAClB95d,KAAKimN,OAAQ,EACbjmN,KAAKw2oB,aAAc,EACnBx2oB,KAAKy2oB,eAAYh4oB,EACjBuB,KAAK02oB,eAAYj4oB,EACjBuB,KAAK22oB,eAAgB,EACrB32oB,KAAK42oB,iBAAcn4oB,EACnBuB,KAAKw1O,iBAAc/2O,EACnBuB,KAAKqwF,cAAW5xF,EAChBuB,KAAK62oB,cAAgB,CAAC,MAAO,UAC7B72oB,KAAK82oB,gBAAkB,CAAC,eAAgB,OAAQ,QAChD92oB,KAAKw9c,SAAW,CAAC,OAAQ,WAAY,QACrCx9c,KAAK+2oB,aAAe,CAAC,OAAQ,WAAY,YAAa,OAAQ,WAC9D/2oB,KAAKg3oB,YAAc,CAAC,eAAgB,WAAY,eAAgB,eAChEh3oB,KAAK+mM,WAAa,CAAC,eAAgB,QAAS,WAAY,YAAa,cAAe,MAAO,SAAU,OACzG,EAOAwvc,EAAc70oB,UAAUirM,UAAY,WAChC3sM,KAAK4jU,kBACL5jU,KAAKi3oB,sBAAwBj3oB,KAAKk3oB,oBAAoBv8mB,KAAK36B,OACvD,QAAMA,KAAKqQ,QACXrQ,KAAKk+L,cAAc,CAAE7tL,MAAO,CAAC,IAAK,GAEtCrQ,KAAKmif,SAAWnif,KAAKuE,cAAc,MAAO,CAAE9B,UH3EjC,uBG4EN,QAAMzC,KAAKm3oB,cAAc9moB,QAAUrQ,KAAKm3oB,cAAc9moB,MAAM+moB,YAC7Dp3oB,KAAKq3oB,eAAiBr3oB,KAAKm3oB,cAAc9moB,MAAM+moB,UAEvD,EAOAb,EAAc70oB,UAAU6a,OAAS,YACzB,QAAMvc,KAAKoD,QAAQxE,aAAa,cAChCoB,KAAKoD,QAAQqB,aAAa,WAAY,KAE1CzE,KAAKs3oB,kBACLt3oB,KAAKq/P,QAAQr/P,KAAKqW,UAClBrW,KAAKu3oB,gBACLv3oB,KAAKw3oB,qBACLx3oB,KAAKiyF,cACe,UAApBjyF,KAAKy3oB,WACDz3oB,KAAK03oB,YAAY13oB,KAAK6pN,WAAW60D,GAAW1+Q,KAAK+gB,KAAM/gB,KAAKyJ,MAAOzJ,KAAKqQ,SACtErQ,KAAK23oB,qBACX33oB,KAAKu4M,aACLv4M,KAAK43oB,OAAO53oB,KAAKksM,WACjBlsM,KAAK63oB,aAAa73oB,KAAK83oB,gBAAgB,GACvC93oB,KAAKmqN,SAAS,MAAOnqN,KAAKikN,UAC1BjkN,KAAKqtM,gBACT,EACAkpc,EAAc70oB,UAAUyoN,SAAW,SAAUzhB,EAAQziF,GACjD,IAAKjmH,KAAK8gN,QAAQ76F,GAEd,IADA,IAAI8xhB,EAAe9xhB,EAAIz+G,MAAM,KACpBuF,EAAI,EAAGA,EAAIgroB,EAAav0oB,OAAQuJ,IACN,KAA3BgroB,EAAahroB,GAAGlB,SACL,QAAX68L,GAAmB,QAAS,CAAC1oM,KAAKoD,SAAU,CAAC20oB,EAAahroB,MAAO,QAAY,CAAC/M,KAAKoD,SAAU,CAAC20oB,EAAahroB,KAI3H,EACAwpoB,EAAc70oB,UAAU81oB,mBAAqB,WACzCx3oB,KAAKg4oB,UAAYh4oB,KAAKuE,cAAc,MAAO,CAAEmzB,GAAI13B,KAAKoD,QAAQs0B,GAAK,QAASj1B,UAAW,MAClF,YACDzC,KAAKoD,QAAQ2kI,UAAY,IAE7B/nI,KAAKi4oB,SAAWj4oB,KAAKuE,cAAc,OAAQ,CAAE9B,UH7HlC,qBG8HXzC,KAAK+tkB,SAAW/tkB,KAAKuE,cAAc,OAAQ,CACvC9B,UAAW,kCACXq9I,MAAO,CAAE,MAAS9/I,KAAKk4oB,UAAU,CAAEnqE,SAAU,iBAAmB,eAEpE/tkB,KAAKg4oB,UAAUt0oB,YAAY1D,KAAKi4oB,UAChCj4oB,KAAKg4oB,UAAUt0oB,YAAY1D,KAAK+tkB,UAChC/tkB,KAAKoD,QAAQM,YAAY1D,KAAKg4oB,UAClC,EACAzB,EAAc70oB,UAAUi2oB,mBAAqB,aACrC,CAAC,eAAgB,WAAY,eAAgB,eAAepwoB,QAAQvH,KAAK+gB,OAAS,KAC9E,QAAM/gB,KAAKyJ,QAAWzJ,KAAK8gN,QAAQ9gN,KAAKyJ,MAAMgrB,cAAgB,QAAMz0B,KAAKqQ,MAAM0/D,UAC/E,QAAM/vE,KAAKqQ,MAAM6kO,YAQrBl1O,KAAK03oB,YAAY13oB,KAAK6pN,WAAW60D,GAAW1+Q,KAAK+gB,KAAM/gB,KAAKyJ,MAAOzJ,KAAKqQ,UAPxErQ,KAAK03oB,YAAY13oB,KAAKk4oB,UAAU,CAAElwjB,YAAa,cAAgB,gBAC/DhoF,KAAKg4oB,UAAUp0kB,UAAUjoD,IAAI,KAC7B,SAAc,CAAEvO,OAAQpN,KAAKg4oB,UAAWr9nB,MAAO,MAC/C,SAAY3a,KAAKg4oB,WACjBh4oB,KAAKm4oB,uBAKb,EACA5B,EAAc70oB,UAAUy2oB,qBAAuB,WAC3C,IAAIl2oB,EAAQjC,KACRqQ,EAAQrQ,KAAKqQ,MACb+noB,EAAQ/noB,EAAM0/D,OAAO1kD,KACrBgtnB,EAAOhooB,EAAM0/D,OAAOtmE,MACpB4rO,GAAQ,QAAMhlO,EAAMglO,OAAS,IAAI,KAAUhlO,EAAMglO,MACjDhlO,EAAM6kO,sBAAsB,KAC5B7kO,EAAM6kO,WAAWqP,aAAavkP,KAAKs4oB,aAAajooB,EAAOglO,IAAQz1L,MAAK,SAAUn8C,GAC1ExB,EAAMs2oB,gBAAgBH,EAAOC,EAAM50oB,EAAEzF,OACzC,IAGAgC,KAAKu4oB,gBAAgBH,EAAOC,EAAM,IAAI,KAAYhooB,EAAM6kO,YAAY+P,aAAajlP,KAAKs4oB,aAAajooB,EAAOglO,IAElH,EACAkha,EAAc70oB,UAAU42oB,aAAe,SAAUjooB,EAAOglO,GACpD,IAAIyH,EACAu7Z,EAAOhooB,EAAM0/D,OAAOtmE,MACpBA,EAAQzJ,KAAKyJ,MACjB,GAAkB,gBAAdzJ,KAAK+gB,MAAkD,iBAAhB/gB,KAAU,MACjD88O,EAAY,IAAI,KAAUu7Z,EAAM,QAASr4oB,KAAKyJ,YAI9C,IADA,IAAIsD,EAAI,EACC3H,EAAK,EAAG6oO,EAAUxkO,EAAOrE,EAAK6oO,EAAQzqO,OAAQ4B,IAAM,CACzD,IAAI6gH,EAAMgoH,EAAQ7oO,GAClB03O,EAAoB,IAAN/vO,EAAW+vO,EAAY,IAAI,KAAUu7Z,EAAM,QAASpyhB,GAAO62H,EAAUjB,GAAGw8Z,EAAM,QAASpyhB,GACrGl5G,GACJ,CAEJ,OAAOsoO,EAAMN,MAAM+H,EACvB,EACAy5Z,EAAc70oB,UAAU62oB,gBAAkB,SAAUH,EAAOC,EAAMr6oB,GAC7D,KAAIA,EAAOwF,QAAU,GAArB,CAGA,GAAsB,IAAlBxF,EAAOwF,OACPxD,KAAKi4oB,SAASlwgB,UAAY/nI,KAAK6pN,YAAW,SAAU,QAAMuub,GAASC,EAAOD,EAAQp6oB,EAAO,SAExF,CAED,IADA,IAAIioH,EAAM,GACD7gH,EAAK,EAAG+kM,EAAWnsM,EAAQoH,EAAK+kM,EAAS3mM,OAAQ4B,IAAM,CAC5D,IAAI2uG,EAAMo2F,EAAS/kM,GACnB6gH,EAAI/jH,MAAK,SAAU,QAAMk2oB,GAASC,EAAOD,EAAQrkiB,GACrD,CACA/zG,KAAKi4oB,SAASlwgB,UAAY/nI,KAAK6pN,WAAW5jG,EAAIxxF,WAClD,EACA,SAAYz0B,KAAKg4oB,WACjBh4oB,KAAKg4oB,UAAUp0kB,UAAUC,OAAO,GAbhC,CAcJ,EACA0ykB,EAAc70oB,UAAUg2oB,YAAc,SAAUzxhB,GAC5CjmH,KAAK0kN,qBAAqC,QAAd1kN,KAAK+gB,MAAgC,gBAAd/gB,KAAK+gB,KAAyB/gB,KAAKi4oB,SAAS/igB,UAAYjvB,EACtGjmH,KAAKi4oB,SAASlwgB,UAAY/nI,KAAK24U,gBAAkB1yN,EDzHvD,SAAgBx8G,GAEnB,IADA,IAAIuxB,EAAO,GACFjuB,EAAItD,EAAMjG,OAAS,EAAGuJ,GAAK,EAAGA,IACnCiuB,EAAKqpF,QAAQ,CAAC,KAAM56G,EAAMsD,GAAGmyF,WAAW,GAAI,KAAKn7F,KAAK,KAE1D,OAAOi3B,EAAKj3B,KAAK,GACrB,CCmHoEksV,CAAOhqO,GACjD,UAAdjmH,KAAK+gB,OACL,QAAkB/gB,KAAKi4oB,SAAU,CAAE,MAAShyhB,IAE9B,WAAdjmH,KAAKo8E,MACDp8E,KAAKw4oB,iBACL,QAAY,CAACx4oB,KAAKg4oB,WAAY,CAAC,IAG3C,EACAzB,EAAc70oB,UAAU82oB,aAAe,WACnC,QAAIx4oB,KAAKimN,QAAUjmN,KAAK83oB,mBAAoB,QAAM93oB,KAAKg4oB,YACjDh4oB,KAAKg4oB,UAAUp0kB,UAAU5+D,SAAS,KAAiBhF,KAAKg4oB,UAAUp0kB,UAAU5+D,SAAS,eAM/F,EACAuxoB,EAAc70oB,UAAU+2oB,aAAe,WAInC,GAHAz4oB,KAAKi2B,UAAYj2B,KAAKyJ,MACtBzJ,KAAK04oB,cAAgB,CAAEt8jB,KAAMp8E,KAAKo8E,KAAMu8jB,aAAa,EAAO3liB,QAAQ,GACpEhzG,KAAKg7L,QAAQ,YAAah7L,KAAK04oB,gBAC3B14oB,KAAK04oB,cAAc1liB,OAAvB,CAGA,IAAI4liB,OAAan6oB,EACb2O,GAAS,QAAO,IAAM,GAAuBpN,KAAKoD,SAItD,GAHwB,kBAApBpD,KAAK64oB,YACLzroB,EAAOqI,cAAckJ,gBAAgB,UAErC3e,KAAKg4oB,UAAUp0kB,UAAU5+D,SAAS,IAAtC,CAGA,GAAkB,WAAdhF,KAAKo8E,MACL,QAAS,CAACp8E,KAAKg4oB,WAAY,CAAC,KAC5Bh4oB,KAAK84oB,cAAgB94oB,KAAKuE,cAAc,MAAO,CAAE9B,UAAW,KAC5DzC,KAAKoD,QAAQM,YAAY1D,KAAK84oB,eAC1B,CAAC,eAAgB,WAAY,eAAgB,eAAevxoB,QAAQvH,KAAK+gB,OAAS,EAClF/gB,KAAK+4oB,gBAAgB/4oB,KAAKqQ,OAG1BrQ,KAAKg5oB,oBAGR,GACI,QAAMh5oB,KAAKm3oB,cAAc9moB,QAAUrQ,KAAKm3oB,cAAc9moB,MAAM+moB,YAC7Dp3oB,KAAKm3oB,cAAc9moB,MAAM+moB,UAAYp3oB,KAAKi5oB,iBAAiBt+mB,KAAK36B,OAEpE,IAAIqlC,EAAUrlC,KAAKuE,cAAc,MAAO,CAAE9B,UH/OnC,qBGgPFzC,KAAK8gN,QAAQ9gN,KAAKm3oB,cAAc5tnB,SACjCvpB,KAAKmif,SAASp6W,UAAY/nI,KAAKm3oB,cAAc5tnB,MAC7C8b,EAAQ3hC,YAAY1D,KAAKmif,WAE7By2J,EAAa,CACTvzmB,QAASA,EAASouO,QAAS,SAC3BvnE,UAAWlsM,KAAKksM,UAAW+X,SAAU,GACrCmzb,UAAWp3oB,KAAKi5oB,iBAAiBt+mB,KAAK36B,OAE1CqlC,EAAQ3hC,YAAY1D,KAAKkqQ,cAAcxrQ,SAAS+c,QAChD,QAAOm9nB,EAAY54oB,KAAKm3oB,cAAc9moB,MAAOuooB,GAAY,GACzD54oB,KAAKk5oB,OAAS,IAAI,KAAQN,GAC1B54oB,KAAKk5oB,OAAO3sc,SAASn/L,GACrBpN,KAAKk5oB,OAAO5mkB,KAAKllE,EACrB,CAC0B,WAAtBpN,KAAKm5oB,cACLn5oB,KAAKo5oB,gBAET,QAAS,CAACp5oB,KAAKg4oB,WAAY,CAAC,KAC5Bh4oB,KAAKk+L,cAAc,CAAE45c,gBAAgB,IAAQ,GACzC93oB,KAAKo8P,SACLp8P,KAAKguM,sBAtCT,CARA,CAgDJ,EACAuoc,EAAc70oB,UAAUs3oB,cAAgB,WACpCh5oB,KAAKkqQ,cAAclqQ,KAAK84oB,eACxB94oB,KAAKi5oB,iBAAiB,KAC1B,EACA1C,EAAc70oB,UAAUq3oB,gBAAkB,SAAU1ooB,GAChD,IAAIpO,EAAQjC,KACRqQ,EAAM6kO,sBAAsB,MAC5B7kO,EAAMgpoB,UAAY,WACdp3oB,EAAMg3oB,iBAAiB,KAC3B,EACAj5oB,KAAKkqQ,cAAclqQ,KAAK84oB,iBACnB,QAAMzooB,EAAM5G,SAAU,QAAMzJ,KAAKyJ,QAAY4G,EAAM5G,QAAUzJ,KAAKyJ,SAC9D,QAAM4G,EAAM5G,QAAiC,IAAvB4G,EAAM5G,MAAMjG,SACvCxD,KAAKs5oB,qBAITt5oB,KAAKg5oB,eAEb,EACAzC,EAAc70oB,UAAU43oB,kBAAoB,WACtB,iBAAdt5oB,KAAK+gB,MACA/gB,KAAKqQ,MAAMggP,gBACZrwP,KAAKu5oB,aAAa50b,UAEtB3kN,KAAKu5oB,aAAa5kZ,aAGd30P,KAAKw2oB,aACLx2oB,KAAKgvL,OAAuB,gBAAdhvL,KAAK+gB,KAA0B,GJzStC,aIyS2E,CAAC,EAG/F,EACAw1nB,EAAc70oB,UAAU+C,aAAe,SAAU62L,EAAK/1D,GAClD,IAAI97H,EAAQzJ,KAAK4H,MAA6B,IAArB5H,KAAK4H,KAAKpE,OAAexD,KAAK4H,KAAO5H,KAAKoD,QAAQs0B,GAC3E6tG,EAAK3hI,SAAQ,SAAUqiH,GACnBq1E,EAAI72L,aAAawhH,EAAe,OAARA,EAAiBx8G,EAAQ,UAAaA,EAClE,GACJ,EACA8soB,EAAc70oB,UAAUwoQ,cAAgB,SAAU98P,GAC9C,IAAIkuL,EACJt7L,KAAKw5oB,aAAex5oB,KAAKuE,cAAc,MAAO,CAAE9B,UH/SnC,uBGgTbzC,KAAKy5oB,OAASz5oB,KAAKuE,cAAc,MAAO,CAAE9B,UH9S7B,uBG+SbzC,KAAKm7Q,QAAUn7Q,KAAKuE,cAAc,OAAQ,CAAE9B,UH7SlC,oBG8SV,IAAIi3oB,EAAe15oB,KAAKuE,cAAc,MAAO,CAAE9B,UH5S/B,sBG6SZowQ,EAAY7yQ,KAAKuE,cAAc,MAAO,CAAE9B,UAAW,KA+BvD,OA9BA2K,EAAO1J,YAAY1D,KAAKw5oB,cACxBx5oB,KAAK25oB,cACL35oB,KAAKw5oB,aAAa91oB,YAAY1D,KAAKm7Q,SACnCn7Q,KAAKm7Q,QAAQz3Q,YAAYg2oB,GACrB15oB,KAAK85d,WACL95d,KAAK45oB,eAAe/mY,EAAW7yQ,KAAK0hN,WAGhCz7M,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAK62oB,cAAe72oB,KAAK+gB,OAAS,GAC/Du6K,EAAMt7L,KAAKuE,cAAc,OACzBvE,KAAKyE,aAAa62L,EAAK,CAAC,SAGxBA,EAAMt7L,KAAKuE,cAAc,SACzBvE,KAAKyE,aAAa62L,EAAK,CAAC,KAAM,UAElCt7L,KAAK65oB,cAAgBv+c,EACrBu3E,EAAUnvQ,YAAY43L,GACtBu3E,EAAUnvQ,YAAY1D,KAAKy5oB,SAE/BC,EAAah2oB,YAAYmvQ,GACzB6mY,EAAah2oB,YAAY1D,KAAKuE,cAAc,MAAO,CAAE9B,UAAW,MAChEzC,KAAK85oB,cAAc95oB,KAAKm7Q,SACnBn7Q,KAAK85d,YACN95d,KAAK+5oB,gBAAgBz+c,GAEzBt7L,KAAKg6oB,gBACDh6oB,KAAKi6oB,eACLj6oB,KAAKk6oB,uBAAuBl6oB,KAAKw5oB,cAE9Bx5oB,KAAKw5oB,YAChB,EACAjD,EAAc70oB,UAAUo4oB,cAAgB,SAAUh8K,GAC1C99d,KAAKqzQ,aAAeyqN,IACpB99d,KAAK42oB,YAAc52oB,KAAKm6oB,gBACxBr8K,EAAIp6d,YAAY1D,KAAK42oB,aACrB52oB,KAAKo6oB,gBAEb,EACA7D,EAAc70oB,UAAUy4oB,cAAgB,WACpC,IAAIE,EAAUr6oB,KAAKuE,cAAc,MAAO,CAAE9B,UHlV7B,8BGmVT4lL,GAAY,QAAMroL,KAAKs6oB,WAAWj1mB,UAA+C,IAAnCrlC,KAAKs6oB,WAAWj1mB,QAAQ7hC,OAA0C,GAA1B,aAW1F,OAVAxD,KAAKy2oB,UAAYz2oB,KAAKu6oB,cAAc,CAChCC,SAAU,OAAQz5nB,KAAM,SAAU+mB,UAAWuymB,EAC7C9wnB,MAAO,CAAE8/e,KAAM,QAAUh5f,MAAOrQ,KAAKs6oB,WACrC73oB,UAAW,GAAmB4lL,IAElCroL,KAAK02oB,UAAY12oB,KAAKu6oB,cAAc,CAChCx5nB,KAAM,SAAUy5nB,SAAU,SAAUjxnB,MAAO,CAAEypF,OAAQ,UACrDlrE,UAAWuymB,EAAShqoB,MAAOrQ,KAAKyrU,aAChChpU,UAAW,KAER43oB,CACX,EACA9D,EAAc70oB,UAAU64oB,cAAgB,SAAU53oB,GAC9C,IAAIs1S,OAASx5S,EACb,GAAI0H,OAAOC,KAAKzD,EAAK0N,OAAO7M,OAAS,EAAG,CACpC,IAAIi3oB,EAASz6oB,KAAKuE,cAAc,SAAU,CACtC9B,UAAWE,EAAKF,UAChBq9I,MAAO,CAAE,KAAQn9I,EAAKoe,KAAM,MAA2B,QAAjBpe,EAAK63oB,UAAuB,QAAMx6oB,KAAKs6oB,WAAWj1mB,SAAWrlC,KAAKk4oB,UAAUv1oB,EAAK4mB,MAAO5mB,EAAK63oB,UAAYx6oB,KAAKs6oB,WAAWj1mB,SAAY,QAAMrlC,KAAKyrU,aAAapmS,SAAWrlC,KAAKk4oB,UAAUv1oB,EAAK4mB,MAAO5mB,EAAK63oB,UAAYx6oB,KAAKyrU,aAAapmS,WAEhR1iC,EAAKmlC,UAAUpkC,YAAY+2oB,GAC3BxiW,EAAS,IAAI,GAAOt1S,EAAK0N,MAAOoqoB,EACpC,CACA,OAAOxiW,CACX,EACAs+V,EAAc70oB,UAAUq4oB,gBAAkB,SAAUz+c,GAEhD,IAAIo/c,EAeJ,GAhBA16oB,KAAKw2oB,YAAevwoB,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAK+mM,WAAY/mM,KAAK+gB,OAAS,EAQ5E25nB,GANC,QAAM16oB,KAAKqQ,MAAM4zM,UAMN,GALAjkN,KAAKqQ,MAAM4zM,SAAS18M,QAAQ,IAAoB,EAChC,KAAxBvH,KAAKqQ,MAAM4zM,SAAkB,GAAmBjkN,KAAKqQ,MAAM4zM,SAAW,IAAM,GAC5EjkN,KAAKqQ,MAAM4zM,UAKnB,QAAOjkN,KAAKqQ,MAAOrQ,KAAKqQ,MAAO,CAC3B4zM,SAAUy2b,EAAWxuc,UAAWlsM,KAAKksM,UAAWp6E,OAAQ9xH,KAAK8xH,OAAQ+kF,OAAQ72M,KAAKinN,cAActsL,KAAK36B,SAEpG,QAAMA,KAAKyJ,QACZzJ,KAAK26oB,kBAAiB,GAEtB36oB,KAAKw2oB,YACLx2oB,KAAKgvL,OJ1ZG,SI0ZmB,CAAEjzB,OAAQq6e,GAAYp2oB,KAAK+gB,MAAO3T,OAAQkuL,EAAKv6K,KAAM/gB,KAAK+gB,WAEpF,CAID,QAHI,QAAM/gB,KAAKqQ,MAAMwsN,oBAAqB,YACtC78N,KAAKqQ,MAAMwsN,iBAAkB,GAEzB78N,KAAK+gB,MACT,IAAK,OACD/gB,KAAKu5oB,aAAe,IAAI,KAAWv5oB,KAAKqQ,OACxC,MACJ,IAAK,WACDrQ,KAAKu5oB,aAAe,IAAI,KAAev5oB,KAAKqQ,OAC5C,MACJ,IAAK,eACDrQ,KAAKu5oB,aAAe,IAAI,KAAav5oB,KAAKqQ,OAC1C,MACJ,IAAK,OACDrQ,KAAKu5oB,aAAe,IAAItJ,GAAcjwoB,KAAKqQ,OAC3C,MACJ,IAAK,UACGrQ,KAAKqQ,MAAM5G,QACI,IAAI4oH,OAAO,qBACblzH,KAAKa,KAAKqQ,MAAM5G,OACzBzJ,KAAKqQ,MAAM5G,MAAQzJ,KAAKqQ,MAAM5G,MAG9BzJ,KAAKqQ,MAAM5G,MAAQzJ,KAAKqQ,MAAM5G,MAAMgrB,WAAWnqB,QAAQ,2CAA4C,KAG3GtK,KAAKu5oB,aAAe,IAAI,GAAAlld,EAAer0L,KAAKqQ,OAC5C,MACJ,IAAK,OACDrQ,KAAKu5oB,aAAe,IAAI,IAAQv5oB,KAAKqQ,OAG7CrQ,KAAKu5oB,aAAahtc,SAASjR,EAC/B,CACJ,EACAi7c,EAAc70oB,UAAU61oB,cAAgB,WACpC,OAAQv3oB,KAAKgjP,SACT,IAAK,aACDhjP,KAAK46oB,YAAc,IAAI,MACvB,MACJ,IAAK,gBACD56oB,KAAK46oB,YAAc,IAAI,MACvB,MACJ,IAAK,iBACD56oB,KAAK46oB,YAAc,IAAI,MAGnC,EACArE,EAAc70oB,UAAUi4oB,YAAc,SAAUr6K,IAC5C,QAAS,CAACt/d,KAAKy5oB,QAAS,CAAC,KACR,aAAbn6K,GAA0C,QAAdt/d,KAAK+gB,MAAgC,UAAd/gB,KAAK+gB,MAAkC,WAAd/gB,KAAK+gB,KAMjF/gB,KAAK66oB,QAAU,CAAEztoB,OAAQpN,KAAKy5oB,OAAQ9+nB,MAAO,KAAQs+K,SAAW,OAAS,UALzE,QAAS,CAACj5L,KAAKy5oB,QAAS,CAAC,MACzB,QAAS,CAACz5oB,KAAK86oB,kBAAmB,CAAC,KACnC96oB,KAAK66oB,QAAU,CAAEztoB,OAAQpN,KAAKy5oB,SAK9Bz5oB,KAAKm7Q,UACL,QAAS,CAACn7Q,KAAKm7Q,SAAU,CAAC,KAE1Bn7Q,KAAK42oB,cACL,QAAS,CAAC52oB,KAAK42oB,aAAc,CAAC,MAElC,QAAkB52oB,KAAKy5oB,OAAQ,CAAE,MAAS,UAC1C,SAAcz5oB,KAAK66oB,UACnB,SAAY76oB,KAAK66oB,QAAQztoB,OAC7B,EACAmpoB,EAAc70oB,UAAUs4oB,cAAgB,SAAU16K,GAC9Ct/d,KAAKy5oB,OAAO96nB,gBAAgB,UAC5B,SAAY3e,KAAK66oB,QAAQztoB,SACzB,QAAOpN,KAAK66oB,QAAQztoB,OAAOmK,YACV,WAAb+nd,GAAwC,QAAdt/d,KAAK+gB,MAAgC,UAAd/gB,KAAK+gB,MAAkC,WAAd/gB,KAAK+gB,QAC/E,QAAY,CAAC/gB,KAAKy5oB,QAAS,CAAC,MAC5B,QAAY,CAACz5oB,KAAK86oB,kBAAmB,CAAC,MAEtC96oB,KAAKm7Q,UACL,QAAY,CAACn7Q,KAAKm7Q,SAAU,CAAC,KAE7Bn7Q,KAAK42oB,cACL,QAAY,CAAC52oB,KAAK42oB,aAAc,CAAC,MAErC,QAAY,CAAC52oB,KAAKy5oB,QAAS,CAAC,IAChC,EACAlD,EAAc70oB,UAAUo5oB,eAAiB,WACrC,OAAO,QAAO,IAAM,GAAkB96oB,KAAKm7Q,QAC/C,EACAo7X,EAAc70oB,UAAUw2oB,UAAY,SAAUvyoB,EAAMsgH,GAChD,OAAO,IAAI,KAAK,iBAAkBtgH,EAAM3F,KAAK8xH,QAAQ2oF,YAAYx0F,EACrE,EACAswhB,EAAc70oB,UAAUmoN,WAAa,SAAU5jG,GAC3C,OAASjmH,KAAK8gN,QAAQ76F,GAAcjmH,KAAK+6oB,UAAX90hB,CAClC,EACAswhB,EAAc70oB,UAAUs5oB,iBAAmB,SAAU/0hB,GACjD,IAAI51G,EAAQrQ,KAAKqQ,OACjB,QAAOA,EAAO,CAAE5G,MAAOw8G,IACvBjmH,KAAKk+L,cAAc,CAAE7tL,MAAOA,IAAS,EACzC,EACAkmoB,EAAc70oB,UAAUuwF,YAAc,WAClCjyF,KAAKqwF,SAAWrwF,KAAKyJ,MACjBzJ,KAAK0kN,qBAA+C,iBAAhB1kN,KAAU,QAC9CA,KAAKqwF,SAAWrwF,KAAK2oU,eAAe3oU,KAAKyJ,SAExC,QAAMzJ,KAAKyJ,SACZzJ,KAAKk+L,cAAc,CAAEz0L,MAAO6soB,GAAat2oB,KAAK+gB,KAAM/gB,KAAKqwF,YAAa,GACtErwF,KAAKg7oB,iBAAiB1E,GAAat2oB,KAAK+gB,KAAM/gB,KAAKqwF,WAE3D,EACAkmjB,EAAc70oB,UAAUi5oB,iBAAmB,SAAUM,GAC/B,gBAAdj7oB,KAAK+gB,MAA2B/gB,KAAK8gN,QAAQ9gN,KAAKyJ,OAIlDzJ,KAAKqQ,MAAM5G,MAASwxoB,EAA8Bj7oB,KAAKqwF,SAAlBrwF,KAAKyJ,MAH1CzJ,KAAKqQ,MAAM5G,MAASwxoB,EAAsCj7oB,KAAKqwF,SAASlkF,QAAnCnM,KAAKyJ,MAAM0C,OAKxD,EACAoqoB,EAAc70oB,UAAU2gB,SAAW,WAC3BriB,KAAKw2oB,YACLx2oB,KAAKgvL,OJjhBG,SIihBmB,CAAEjuK,KAAM/gB,KAAK+gB,OAEnC/gB,KAAKu5oB,eACQ,YAAdv5oB,KAAK+gB,MAAkD,OAA5B/gB,KAAKu5oB,aAAa9voB,OAC7CzJ,KAAKu5oB,aAAar7c,cAAc,CAAEz0L,MAAO,OAAQ,GAErDzJ,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKu5oB,aAAa9voB,QAAS,GACvDzJ,KAAKg7oB,iBAAiBh7oB,KAAKu5oB,aAAa9voB,OAEhD,EACA8soB,EAAc70oB,UAAUw5oB,kBAAoB,SAAUtunB,GAClD,IAAInjB,EASJ,OARIxD,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAKg3oB,YAAah3oB,KAAK+gB,OAAS,GAAmB,gBAAd/gB,KAAK+gB,KACvEtX,EAAQmjB,GAAU,QAAO,MAAQ5sB,KAAK+gB,KAAK0uE,oBAAqBzvF,KAAKw5oB,cAAc/voB,MAC/EzJ,KAAKyJ,MAAMgrB,WAEI,gBAAdz0B,KAAK+gB,OACV/gB,KAAKgvL,OJ5hBQ,eI4hBmB,CAAEjuK,KAAM/gB,KAAK+gB,OAC7CtX,EAAQmjB,EAAU5sB,KAAKm7oB,WAAan7oB,KAAKyJ,MAAM1F,QAE5C0F,CACX,EACA8soB,EAAc70oB,UAAU05oB,aAAe,WACnC,OAAIp7oB,KAAK8gN,QAAQ9gN,KAAKyJ,OACX,GAEPxD,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAKg3oB,YAAah3oB,KAAK+gB,OAAS,EACtD/gB,KAAKk7oB,mBAAkB,GAEzBj1oB,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAKw9c,SAAUx9c,KAAK+gB,OAAS,EACxD/gB,KAAKyJ,MAAM2+I,cAEC,cAAdpoJ,KAAK+gB,KACH/gB,KAAKyJ,MAAM,GAAG2+I,cAAgB,MAAQpoJ,KAAKyJ,MAAM,GAAG2+I,cAGpDpoJ,KAAKyJ,MAAMgrB,UAE1B,EACA8hnB,EAAc70oB,UAAU25oB,eAAiB,WACrC,MAAkB,SAAdr7oB,KAAK+gB,MAAsD,IAAnC/gB,KAAKu5oB,aAAa9voB,MAAMjG,OACzCxD,KAAKu5oB,aAAa3I,iBAEpB3qoB,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAK+2oB,aAAc/2oB,KAAK+gB,OAAS,EAC5D/gB,KAAK65oB,cAAcpwoB,MAErBxD,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAKg3oB,YAAah3oB,KAAK+gB,OAAS,EAC3D/gB,KAAKk7oB,mBAAkB,GAGvBx8X,GAAW1+Q,KAAK+gB,KAAM/gB,KAAKyJ,MAAOzJ,KAAKqQ,MAEtD,EACAkmoB,EAAc70oB,UAAUk2oB,OAAS,SAAUnuoB,GACvCA,GAAQ,QAAS,CAACzJ,KAAKoD,SAAU,CAAC,MAAgB,QAAY,CAACpD,KAAKoD,SAAU,CAAC,IACnF,EACAmzoB,EAAc70oB,UAAUyrT,SAAW,WAC3BntT,KAAK85d,aAGT95d,KAAKw2oB,YAAcx2oB,KAAKgvL,OAAO,GAAiB,CAAC,GAAKhvL,KAAKu5oB,aAAan2oB,QAAQwS,QACpF,EACA2goB,EAAc70oB,UAAU45oB,aAAe,SAAUC,GA+B7C,GA9BoBp1oB,OAAOC,KAAK9G,SAC5B,YAAeU,KAAK+rM,mBACpB,QAAoB/rM,KAAKoD,QAAQs0B,GAAK,WAAY,YAGlD13B,KAAKk5oB,QAAUl5oB,KAAKm7Q,UACX,QAAQn7Q,KAAKm7Q,QAAS,IAAM,IAC9Bv3M,UAAUjoD,IAAI,IAEzB3b,KAAKw7oB,iBACLx7oB,KAAKy7oB,oBACLz7oB,KAAKm7Q,aAAU18Q,GACV,SAAM,QAAO,IAAM,GAAgBuB,KAAKoD,UAIpCpD,KAAKk5oB,SACQ,gBAAdl5oB,KAAK+gB,OACL,KAAa8iD,OAAO7jE,KAAKw5oB,aAAc,YAAax5oB,KAAK07oB,cACzD,KAAa73kB,OAAO7jE,KAAKw5oB,aAAc,QAASx5oB,KAAK27oB,kBAEzD37oB,KAAKk5oB,OAAOnokB,QACZ/wE,KAAKk5oB,OAAOxpd,UACZ1vL,KAAKk5oB,YAASz6oB,KAVd,QAAOuB,KAAK84oB,eACZ94oB,KAAK84oB,mBAAgBr6oB,GAWzBuB,KAAKw5oB,kBAAe/6oB,GACpB,QAAY,CAACuB,KAAKg4oB,WAAY,CAAC,GAAc,KACxCuD,GACDv7oB,KAAKk+L,cAAc,CAAE45c,gBAAgB,IAAS,GAE1B,kBAApB93oB,KAAK64oB,WAAgC,CACrC,IAAI+C,EAAqC,aAApB57oB,KAAK64oB,WAA6B,sBAAwB,iBAC1E,QAAM74oB,KAAKg4oB,UAAUvioB,gBACtBzV,KAAKg4oB,UAAUvioB,cAAchR,aAAa,QAASzE,KAAKk4oB,UAAU7B,GAAer2oB,KAAK64oB,YAAa+C,GAE3G,CACI57oB,KAAKo8P,SACLp8P,KAAKiuM,eAEb,EACAsoc,EAAc70oB,UAAU+5oB,kBAAoB,WACpCz7oB,KAAKqzQ,aACLrzQ,KAAK67oB,iBAEL77oB,KAAKw2oB,YACLx2oB,KAAKgvL,OJrnBW,kBIqnBmB,CAAC,IAGhChvL,KAAK+6d,cACLr8d,SAAS+c,KAAK/X,YAAY1D,KAAK+6d,aAC/B/6d,KAAK+6d,YAAY3xd,MAAMwjB,QAAU,OACjC5sB,KAAK+6d,iBAAct8d,IAElB,QAAMuB,KAAKu5oB,gBACZv5oB,KAAKu5oB,aAAa7pd,UAClB1vL,KAAKu5oB,kBAAe96oB,IAGxBuB,KAAK87oB,eACL97oB,KAAK87oB,kBAAer9oB,GAEpBuB,KAAKi6oB,eAAiBj6oB,KAAKw5oB,cAC3Bx5oB,KAAK+7oB,yBAAyB/7oB,KAAKw5oB,aAE3C,EACAjD,EAAc70oB,UAAUm6oB,eAAiB,YAChC,QAAM77oB,KAAKy2oB,aACZ,KAAa5ykB,OAAO7jE,KAAKy2oB,UAAUrzoB,QAAS,YAAapD,KAAKg0oB,eAC9D,KAAanwkB,OAAO7jE,KAAKy2oB,UAAUrzoB,QAAS,QAASpD,KAAKg8oB,eAC1D,KAAan4kB,OAAO7jE,KAAKy2oB,UAAUrzoB,QAAS,UAAWpD,KAAKi8oB,mBAC5Dj8oB,KAAKy2oB,UAAU/md,UACf1vL,KAAKy2oB,eAAYh4oB,IAEhB,QAAMuB,KAAK02oB,aACZ,KAAa7ykB,OAAO7jE,KAAK02oB,UAAUtzoB,QAAS,UAAWpD,KAAKk8oB,gBAC5D,KAAar4kB,OAAO7jE,KAAK02oB,UAAUtzoB,QAAS,UAAWpD,KAAKi8oB,mBAC5Dj8oB,KAAK02oB,UAAUhnd,UACf1vL,KAAK02oB,eAAYj4oB,GAErBuB,KAAK42oB,iBAAcn4oB,CACvB,EACA83oB,EAAc70oB,UAAU0gP,SAAW,SAAUtzG,GACzC,IAAIumG,EAAQ,IAAI,KAIhB,OAHAlvO,OAAOC,KAAK0oI,GAAQlrI,SAAQ,SAAUlB,GAClC2yO,EAAM6G,UAAUx5O,EAAKosI,EAAOpsI,GAChC,IACO2yO,CACX,EACAkha,EAAc70oB,UAAUy6oB,UAAY,WAChC,IAAIl6oB,EAAQjC,KACRm2G,EAAY,CAAEn7E,KAAM,CAAEpzB,KAAM5H,KAAK4H,KAAMw0oB,WAAYp8oB,KAAKo8oB,WAAY3yoB,MAAOzJ,KAAKo7oB,iBACpFp7oB,KAAKg7L,QAAQ,cAAe7kF,GAAW,SAAUkmiB,GAC7C,GAAIA,EAAgBrpiB,OAChB/wG,EAAM+3oB,cAAc,UACD,UAAf/3oB,EAAMm6E,MACNn6E,EAAMq6oB,kBAGT,CACD,GAAKr6oB,EAAM6+M,QAAQ7+M,EAAMu6D,MAASv6D,EAAM6+M,QAAQ7+M,EAAMm6oB,cAC9Cn6oB,EAAM8gR,aAAgB9gR,EAAM8gR,YAAc9gR,EAAMg0B,YAAch0B,EAAMwH,OAUvE,CACD,IAAIi3d,EAAW,CAAE1lc,KAAM,CAAC,EAAGvxB,MAAO4yoB,EAAgBrhnB,KAAKvxB,OACvDxH,EAAMs6oB,eAAe77K,EACzB,MAZIz+d,EAAMuzO,YAAc,IAAI,KAAY,CAAEh5K,IAAKv6D,EAAMu6D,IAAKwmL,QAAS/gP,EAAM24oB,cAC/C,eAAlB34oB,EAAM+gP,QACN/gP,EAAMuzO,YAAY+O,aAAatiP,EAAMmgP,SAASi6Z,EAAgBrhnB,MAAO/4B,EAAMgtL,eAAet0J,KAAK14B,GAAQA,EAAM20L,eAAej8J,KAAK14B,IAGtHA,EAAMuzO,YAAYp8H,OAAOijiB,EAAgBrhnB,MAC/C4kB,MAAK,SAAUn8C,GAAK,OAAOxB,EAAMgtL,eAAexrL,EAAI,IAAG6yI,OAAM,SAAU7yI,GAAK,OAAOxB,EAAM20L,eAAenzL,EAAI,IAOzHxB,EAAMuzO,iBAAc/2O,CACxB,CACJ,GACJ,EACA83oB,EAAc70oB,UAAUo/M,QAAU,SAAUr3M,GACxC,UAAS,QAAMA,IAA2B,IAAjBA,EAAMjG,OACnC,EACA+yoB,EAAc70oB,UAAU41oB,gBAAkB,WACtCt3oB,KAAK85d,aAAe,QAAM95d,KAAK0hN,WAA+B,KAAlB1hN,KAAK0hN,QACrD,EACA60b,EAAc70oB,UAAUw9d,gBAAkB,SAAUs9K,EAAQ38b,GACxD,IAAIkuF,EACgB5nS,OAAOC,KAAK9G,QACT,iBAAZugN,IACPA,EAAUA,EAAQh0M,QAEtB,IAAI00M,GAAW,QAAQV,GACvB,KAAK,QAAMU,GAAW,CAClB,IAAIovI,KAAY,WAAiC,mBAAZ9vI,IAChC7/M,KAAK+rM,kBAAyD,IAArC,EAAUxkM,QAAQ,iBAC5CvH,KAAK+rM,iBACTgiG,EAAUxtF,EAAS,CAAC,EAAGvgN,KAAM,WAAYA,KAAKoD,QAAQs0B,GAAK,WAAYi4T,EAC3E,GACK,QAAMpvI,IAAawtF,EAAQvqS,OAAS,IACrC,GAAG2I,MAAMuI,KAAKq5R,GAASnqS,SAAQ,SAAU22D,GACrCiilB,EAAO94oB,YAAY62D,EACvB,KACI,YAAev6D,KAAK+rM,kBAAuC,mBAAZ8T,GACV,IAArC,EAAUt4M,QAAQ,iBAClB,QAAqBvH,KAAKoD,QAAQs0B,GAAK,WAAY,WAAY13B,MAG3E,EAMAu2oB,EAAc70oB,UAAUinU,eAAiB,SAAUl/T,GAC/C,GAAIzJ,KAAK0kN,oBAAqB,CAC1B,IAAIy7E,EAAS,KAAmBj9E,kBAKhC,QAAOi9E,EAAQA,EAJG,CACdntL,QAAQ,EACR0hG,OAAQ,OAGZ10M,KAAKg7L,QAAQ,qBAAsBmlG,GAAQ,SAAUx9R,GAC7Cw9R,EAAOntL,UAAW,QAAMmtL,EAAOzrF,QAC/BjrM,EAAQ02R,EAAOzrF,OAAOjrM,GAEhB02R,EAAOntL,SACbvpG,EAAQ,KAAmB45M,eAAe88E,EAAQ12R,GAE1D,GACJ,CACA,OAAOA,CACX,EACA8soB,EAAc70oB,UAAUk4oB,eAAiB,SAAU4C,EAAQ38b,GACvDA,EAA+B,iBAAd,EAAyB7/M,KAAK2oU,eAAe9oH,GAAWA,EACzE7/M,KAAKk+L,cAAc,CAAEwjB,SAAU7B,IAAW,GACnB,mBAAZA,EACP7/M,KAAKk/d,gBAAgBs9K,EAAQ38b,GAEL,iBAAZA,IAAwB,QAAMA,EAAQ93E,WAC/B,MAAf83E,EAAQ,IAA6B,MAAfA,EAAQ,KAC1BnhN,SAAS43F,iBAAiBupH,GAASr8M,OAUvCxD,KAAKk/d,gBAAgBs9K,EAAQ38b,IATzB7/M,KAAK+6d,YAAcr8d,SAASuG,cAAc46M,GAC1C28b,EAAO94oB,YAAY1D,KAAK+6d,aACxB/6d,KAAK+6d,YAAY3xd,MAAMwjB,QAAU,KAWzC5sB,KAAK+6d,YAAcl7Q,EACnB28b,EAAO94oB,YAAY1D,KAAK+6d,aAEhC,EACAw7K,EAAc70oB,UAAU29P,QAAU,SAAU51P,GACxCA,GAAQ,QAAS,CAACzJ,KAAKoD,SAAU,CAAC,MAAoB,QAAY,CAACpD,KAAKoD,SAAU,CAAC,IACvF,EACAmzoB,EAAc70oB,UAAUm2oB,aAAe,SAAU5xhB,EAAKw2hB,GAC9CA,IAAWx2hB,IAGf,EAAQjmH,KAAKy4oB,eAAiBz4oB,KAAK2wa,cAAc,UACrD,EACA4lO,EAAc70oB,UAAUg7oB,gBAAkB,SAAUC,EAAYC,GAC5D,IACIj6oB,EADAV,EAAQjC,KAEZ,GAAIA,KAAK68oB,gBAAiB,CACtB,IAAI37oB,EAAQiF,OAAOC,KAAKpG,KAAK68oB,iBACzBC,EAAqB32oB,OAAOC,KAAKpG,KAAK68oB,gBAAgB37oB,EAAM,KAAKsC,OACrEs5oB,EAAqB,mBAAoB98oB,KAAK68oB,gBAAgB37oB,EAAM,IAAM47oB,EAAqB,EAAIA,EACnG,IAAI/lY,EAAU,EACd/2Q,KAAK87oB,aAAe,IAAI5K,GAAclxoB,KAAKm7Q,QAAS,CAChDj6Q,MAAOlB,KAAK68oB,gBACZE,gBAAiB,SAAUt5oB,GACvB,GAAmB,QAAfxB,EAAM8e,KAAgB,CACtB,IAAIu6K,EAAM58L,SAAS6F,cAAc,OACjC+2L,EAAIvzD,UAAYtkI,EAAEgG,MAClBhG,EAAEgG,MAAQ6xL,EAAIpmD,SAClB,CACJ,EACA8ngB,mBAAoB,SAAUv5oB,GAC1BszQ,GAAoB,EACpBp0Q,EAAO,CACH8rD,aAAchrD,EAAEyhF,QAChBlqD,KAAM,CAAEpzB,KAAM3F,EAAM2F,KAAMw0oB,WAAYn6oB,EAAMm6oB,WAAY3yoB,MAAOxH,EAAM4nN,WAAW5nN,EAAMm5oB,kBAE1Fn5oB,EAAM+4L,QAAQ,aAAcr4L,GAAM,SAAUs6oB,GACvB,YAAbx5oB,EAAEmnJ,QACFnnJ,EAAEixoB,aAAax/f,UAAY+ngB,EAAaxulB,aACxCxsD,EAAMi7oB,kBAAiB,IAGvBj7oB,EAAMi7oB,kBAAiB,IAEtB,QAAMP,KAAeA,GAAeG,IAAuB/lY,GAAwB,YAAbtzQ,EAAEmnJ,SACzE+xf,GAAa,EACb16oB,EAAMk7oB,gBAAgBP,GACtB7lY,EAAU,EAElB,GACJ,EACAo+X,gBAAiB,SAAUtmjB,EAAc6ljB,GACjCzyoB,EAAMk5Q,UACN,QAAO,IAAM,GAAwBl5Q,EAAMk5Q,SAASz3Q,YAAYgxoB,EAExE,IAEJ39X,EAAU,EACV/2Q,KAAK87oB,aAAahyc,UACtB,KAC2B,KAAlB9pM,KAAK0hN,UACV/+M,EAAO,CACH8rD,aAAc,GACdzzB,KAAM,CAAEpzB,KAAM5H,KAAK4H,KAAMw0oB,WAAYp8oB,KAAKo8oB,WAAY3yoB,MAAOzJ,KAAK6pN,WAAW7pN,KAAKo7oB,kBAEtFp7oB,KAAKg7L,QAAQ,aAAcr4L,GAAM,SAAUs6oB,GACnCA,EAAaxulB,eACb,QAAO,IAAM,GAAwBxsD,EAAMk5Q,SAASpzI,UAAYk1gB,EAAaxulB,aAC7ExsD,EAAMi7oB,kBAAiB,IAGvBj7oB,EAAMi7oB,kBAAiB,GAE3Bj7oB,EAAMk7oB,gBAAgBP,EAC1B,KAGA58oB,KAAKm9oB,gBAAgBP,EAE7B,EACArG,EAAc70oB,UAAUy7oB,gBAAkB,SAAUP,IAC3C58oB,KAAKm7Q,QAAQv3M,UAAU5+D,SAAS,KAAkB43oB,IACnD58oB,KAAK25oB,YAAY,YACC,UAAd35oB,KAAKo8E,MACLp8E,KAAKs8oB,cAETt8oB,KAAKm8oB,YAEb,EACA5F,EAAc70oB,UAAUw7oB,iBAAmB,SAAUzzoB,GACjD,KAAI,QAAMzJ,KAAKm7Q,SAAf,CAGA,IAAIzB,GAAW,QAAO,iBAAkB15Q,KAAKm7Q,SAClB/3Q,EAOhB,CAACpD,KAAKm7Q,QAASzB,GAPUzzJ,EAOC,GAPIyiF,EAOWj/L,EAAQ,MAAQ,SANhE,GAAG0C,MAAMuI,KAAKtR,GAASQ,SAAQ,SAAU03L,GACjCA,IACW,QAAXoN,GAAmB,QAAS,CAACpN,GAAM,CAACr1E,KAAQ,QAAY,CAACq1E,GAAM,CAACr1E,IAExE,GAPJ,CAEiB,IAAU7iH,EAAS6iH,EAAKyiF,CAQ7C,EACA6tc,EAAc70oB,UAAU46oB,YAAc,WAClC,IAAIj7f,EAAMrhJ,KAAKk5oB,OAAO1gU,mBACtBx4U,KAAKk5oB,OAAO1gU,mBAA8B,WAARn3L,EAAoB,OAAS,SAC/DrhJ,KAAKk5oB,OAAO1gU,mBAAqBn3L,EACjCrhJ,KAAKk5oB,OAAO56c,UAChB,EACAi4c,EAAc70oB,UAAU66oB,eAAiB,SAAU55oB,GAC/C,IAAIV,EAAQjC,KACRimH,EAAMtjH,EAAK8G,MACfzJ,KAAKg7L,QAAQ,gBAAiBr4L,GAAM,SAAUy6oB,GAC1Cn7oB,EAAMouF,SAAW41B,EACjBhkH,EAAM+3oB,cAAc,UACfoD,EAAWpqiB,QACZ/wG,EAAMy1oB,YAAYz1oB,EAAM4nN,WAAYuzb,EAAW3zoB,QAAUw8G,EAAOm3hB,EAAW3zoB,MAAQxH,EAAMo5oB,mBAEzF+B,EAAWpqiB,QAAyB,WAAf/wG,EAAMm6E,OAC3B,QAAY,CAACn6E,EAAM+1oB,WAAY,CAAC,KAEpC/1oB,EAAMq5oB,cACV,GACJ,EACA/E,EAAc70oB,UAAU27oB,eAAiB,SAAUC,GAC/C,IAAIr7oB,EAAQjC,KACRu9oB,EAAc,CAAEvqiB,QAAQ,EAAO52B,KAAMp8E,KAAKo8E,KAAMssH,OAAQ40c,GAC5Dt9oB,KAAKg7L,QAAQ,UAAWuid,GAAa,SAAU56oB,GACtCA,EAAKqwG,SACF/wG,EAAMk5Q,SAAWl5Q,EAAMk5Q,QAAQv3M,UAAU5+D,SAAS,MAClD/C,EAAM04oB,kBAAiB,GACvB14oB,EAAMi8L,cAAc,CAAEz0L,MAAOxH,EAAMouF,WAAY,IAEnDpuF,EAAMq5oB,eAEd,GACJ,EACA/E,EAAc70oB,UAAU62M,WAAa,WACjCv4M,KAAKw9oB,cAAcx9oB,KAAK64oB,YACxB,KAAal9nB,IAAI3b,KAAK+tkB,SAAU,QAAS/tkB,KAAKgmN,aAAchmN,MAC5D,KAAa2b,IAAI3b,KAAKoD,QAAS,UAAWpD,KAAKy9oB,oBAAqBz9oB,MACpEtB,SAASkd,iBAAiB,SAAU5b,KAAKi3oB,uBACzC33oB,OAAOsc,iBAAiB,SAAU5b,KAAKi3oB,uBACnChxoB,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAK82oB,gBAAiB92oB,KAAK+gB,OAAS,GACjE,KAAapF,IAAI3b,KAAKoD,QAAS,YAAapD,KAAKyrO,iBAAkBzrO,KAE3E,EACAu2oB,EAAc70oB,UAAU03oB,aAAe,WACnC,KAAaz9nB,IAAIjd,SAAU,YAAasB,KAAK09oB,gBAAiB19oB,KAClE,EACAu2oB,EAAc70oB,UAAU87oB,cAAgB,SAAUjqoB,GAC9C,GAAc,kBAAVA,EAAJ,CAGA,IAAIqooB,EAA2B,UAAVrooB,EAAqB,gBAAkB,sBAC5DvT,KAAKoD,QAAQqB,aAAa,QAASzE,KAAKk4oB,UAAU7B,GAAe9ioB,GAAQqooB,IACrE,KAAQ3id,UAAY,KAAQO,OAAmB,aAAVjmL,EACrCvT,KAAKshO,YAAc,IAAI,KAAMthO,KAAKg4oB,UAAW,CAAEr7b,IAAK38M,KAAK29oB,iBAAiBhjnB,KAAK36B,QAG/E,KAAa2b,IAAI3b,KAAKg4oB,UAAWzkoB,EAAMrK,cAAelJ,KAAKgmN,aAAchmN,KAP7E,CASJ,EACAu2oB,EAAc70oB,UAAUw4oB,uBAAyB,SAAU5+c,GACvD,KAAa3/K,IAAI2/K,EAAK,UAAWt7L,KAAK49oB,oBAAqB59oB,KAC/D,EACAu2oB,EAAc70oB,UAAU04oB,cAAgB,YAC/B,QAAMp6oB,KAAKy2oB,aACZ,KAAa96nB,IAAI3b,KAAKy2oB,UAAUrzoB,QAAS,YAAapD,KAAKg0oB,cAAeh0oB,MAC1E,KAAa2b,IAAI3b,KAAKy2oB,UAAUrzoB,QAAS,QAASpD,KAAKg8oB,cAAeh8oB,MACtE,KAAa2b,IAAI3b,KAAKy2oB,UAAUrzoB,QAAS,UAAWpD,KAAKi8oB,kBAAmBj8oB,QAE3E,QAAMA,KAAK02oB,aACZ,KAAa/6nB,IAAI3b,KAAK02oB,UAAUtzoB,QAAS,UAAWpD,KAAKk8oB,eAAgBl8oB,MACzE,KAAa2b,IAAI3b,KAAK02oB,UAAUtzoB,QAAS,UAAWpD,KAAKi8oB,kBAAmBj8oB,MAEpF,EACAu2oB,EAAc70oB,UAAUw6oB,eAAiB,SAAUz4oB,GAC/CzD,KAAK2wa,cAAc,UACnB3wa,KAAKg7L,QAAQ,cAAev3L,EAChC,EACA8yoB,EAAc70oB,UAAU+iN,aAAe,WACnCzkN,KAAK69oB,gBAAgB79oB,KAAK64oB,YAC1B,KAAah1kB,OAAO7jE,KAAK+tkB,SAAU,QAAS/tkB,KAAKgmN,cACjDtnN,SAAS4d,oBAAoB,SAAUtc,KAAKi3oB,uBAC5C33oB,OAAOgd,oBAAoB,SAAUtc,KAAKi3oB,uBAC1C,KAAapzkB,OAAO7jE,KAAKoD,QAAS,UAAWpD,KAAKy9oB,qBAC9Cx3oB,MAAMvE,UAAU6F,QAAQmN,KAAK1U,KAAK82oB,gBAAiB92oB,KAAK+gB,OAAS,GACjE,KAAa8iD,OAAO7jE,KAAKoD,QAAS,YAAapD,KAAKyrO,iBAE5D,EACA8qa,EAAc70oB,UAAU85oB,eAAiB,WACrC,KAAa33kB,OAAOnlE,SAAU,YAAasB,KAAK09oB,gBACpD,EACAnH,EAAc70oB,UAAUm8oB,gBAAkB,SAAUtqoB,GAClC,kBAAVA,IAGJvT,KAAKoD,QAAQub,gBAAgB,SACzB,KAAQs6K,UAAY,KAAQO,OAAmB,aAAVjmL,GACrCvT,KAAKshO,YAAY5xC,UACjB1vL,KAAKshO,iBAAc7iO,GAGnB,KAAaolE,OAAO7jE,KAAKg4oB,UAAWzkoB,EAAMrK,cAAelJ,KAAKgmN,cAEtE,EACAuwb,EAAc70oB,UAAUq6oB,yBAA2B,SAAUzgd,GACzD,KAAaz3H,OAAOy3H,EAAK,UAAWt7L,KAAK49oB,oBAC7C,EACArH,EAAc70oB,UAAUs6oB,cAAgB,SAAUv4oB,GAC9CA,EAAEkW,gBACN,EACA48nB,EAAc70oB,UAAUu6oB,kBAAoB,SAAUx4oB,GAClD,IAAIq6d,EAAMr6d,EAAE2J,QACO,KAAd3J,EAAE8gF,SAA8B,KAAZ9gF,EAAE+T,OAAgC,KAAd/T,EAAE8gF,SAA8B,KAAZ9gF,EAAE+T,SAC3Dsmd,EAAIl6Z,UAAU5+D,SAAS,IACvBhF,KAAKqpgB,OAEAvrC,EAAIl6Z,UAAU5+D,SAAS,KAC5BhF,KAAK2wa,cAAc,WAGT,IAAdlta,EAAE8gF,UAAgC,IAAf9gF,EAAEkQ,YACpB,QAAMlQ,EAAE2J,OAAOzI,qBAC4B,WAAxClB,EAAE2J,OAAOzI,mBAAmBqa,UACN,WAAtBhf,KAAKm5oB,aACLn5oB,KAAKqpgB,OAEsB,WAAtBrpgB,KAAKm5oB,cACVn5oB,KAAK2wa,cAAc,UAG/B,EACA4lO,EAAc70oB,UAAUu3oB,iBAAmB,SAAUx1oB,GAC/B,UAAdzD,KAAKo8E,MAAkC,gBAAdp8E,KAAK+gB,OAC9B,KAAapF,IAAI3b,KAAKw5oB,aAAc,YAAax5oB,KAAK07oB,aAAc17oB,MACpE,KAAa2b,IAAI3b,KAAKw5oB,aAAc,QAASx5oB,KAAK27oB,gBAAiB37oB,OAErD,UAAdA,KAAKo8E,MAAqBp8E,KAAK8gN,QAAQ9gN,KAAKmif,SAASp6W,YACrDtkI,EAAEL,QAAQwgE,UAAUjoD,IHz/BT,wBG2/BG,QAAd3b,KAAK+gB,MACL/gB,KAAK89oB,UAAUpxc,UACf1sM,KAAKyE,cAAa,QAAO,6BAA8BzE,KAAKw5oB,cAAe,CAAC,UAEzD,WAAdx5oB,KAAK+gB,OACV/gB,KAAK+9oB,aAAarxc,UAClB1sM,KAAKyE,cAAa,QAAO,kBAAmBzE,KAAKw5oB,cAAe,CAAC,UAEhEx5oB,KAAK04oB,cAAcC,cACF,WAAd34oB,KAAKo8E,MAAsB,CAAC,eAAgB,WAAY,eAAgB,eAAe70E,QAAQvH,KAAK+gB,OAAS,GAC1G/gB,KAAKqQ,MAAM6kO,sBAAsB,KACpCl1O,KAAKs5oB,oBAGLt5oB,KAAKmtT,YAGTntT,KAAKq3oB,iBACLr3oB,KAAKk5oB,OAAOh7c,cAAc,CAAEk5c,UAAWp3oB,KAAKq3oB,iBAAkB,GAC9Dr3oB,KAAKk5oB,OAAOl+c,QAAQ,YAAav3L,GAEzC,EACA8yoB,EAAc70oB,UAAUg6oB,aAAe,SAAUj4oB,GAC7C,IAAIstS,EAAWttS,EAAE2J,OAAOw2D,UACpBmtO,EAAS/rS,SAAS,mBAAqB+rS,EAAS/rS,SAAS,mBACzDhF,KAAKs8oB,aAEb,EACA/F,EAAc70oB,UAAUi8oB,iBAAmB,SAAUl6oB,GAC7CA,EAAEq3M,SAAW,GACb96M,KAAKgmN,aAAaviN,EAAEg6J,cAE5B,EACA84e,EAAc70oB,UAAUskN,aAAe,SAAUviN,GACrB,kBAApBzD,KAAK64oB,YACLp1oB,EAAEwS,kBAENjW,KAAKy4oB,cACT,EACAlC,EAAc70oB,UAAUsyoB,cAAgB,SAAUvwoB,GAC9CA,EAAEkW,iBACF3Z,KAAKqpgB,OACLrpgB,KAAKg7L,QAAQ,cAAev3L,EAChC,EACA8yoB,EAAc70oB,UAAUiva,cAAgB,SAAUjoO,GAC9C1oM,KAAKq9oB,eAAe30c,EACxB,EACA6tc,EAAc70oB,UAAUi6oB,gBAAkB,SAAUl4oB,GAChD,IAAIu6oB,GAAY,QAAO,IAAM,GAAuBh+oB,KAAKoD,SACrDK,EAAE2J,OAAOw2D,UAAU5+D,SAAS,kBAC5BhF,KAAKk5oB,OAAOxsc,QAAQsxc,EAE5B,EACAzH,EAAc70oB,UAAUutL,eAAiB,SAAUxrL,GAC/CzD,KAAK+iR,YAAa,EAClB,IAAI5sK,EAAY,CAAEn7E,KAAMv3B,EAAGgG,MAAOzJ,KAAKo7oB,gBACvCp7oB,KAAKu8oB,eAAepmiB,EACxB,EACAogiB,EAAc70oB,UAAUk1L,eAAiB,SAAUnzL,GAC/C,IAAIxB,EAAQjC,KACRm2G,EAAY,CAAEn7E,KAAMv3B,EAAGgG,MAAOzJ,KAAKo7oB,gBACvCp7oB,KAAKg7L,QAAQ,gBAAiB7kF,GAAW,SAAUxzG,GAC/CV,EAAM+3oB,cAAc,UACD,UAAf/3oB,EAAMm6E,MACNn6E,EAAMq6oB,aAEd,GACJ,EACA/F,EAAc70oB,UAAUk8oB,oBAAsB,SAAUn6oB,IAC/C,QAAQA,EAAE2J,OAAQ,IAAM,GAAgB,uBAA2B3J,EAAE4uB,cAAc2vH,qBAAqB,YAAY,KAClG,KAAdv+I,EAAE8gF,SAA8B,KAAZ9gF,EAAE+T,QAAiB,QAAQ/T,EAAE2J,OAAQ,IAAM,KAChEpN,KAAKqpgB,OACLrpgB,KAAKg7L,QAAQ,cAAev3L,IAET,KAAdA,EAAE8gF,SAA8B,KAAZ9gF,EAAE+T,OAC3BxX,KAAK2wa,cAAc,UAG/B,EACA4lO,EAAc70oB,UAAU+7oB,oBAAsB,SAAUh6oB,GAClC,IAAdA,EAAE8gF,UAAgC,IAAf9gF,EAAEkQ,UAA0C,WAArBlQ,EAAE2J,OAAO4R,UACzB,WAAtBhf,KAAKm5oB,aACLn5oB,KAAKqpgB,OAEsB,WAAtBrpgB,KAAKm5oB,cACVn5oB,KAAK2wa,cAAc,WAGR,KAAdlta,EAAE8gF,SAA8B,KAAZ9gF,EAAE+T,QAAiB/T,EAAE2J,OAAOw2D,UAAU5+D,SAAS,KACnEhF,KAAKg4oB,UAAUp0kB,UAAU5+D,SAAS,KAAkBhF,KAAKoD,QAAQwgE,UAAU5+D,SAAS,MACrFvB,EAAEkW,iBACF3Z,KAAKy4oB,eAEb,EACAlC,EAAc70oB,UAAU+pO,iBAAmB,SAAUhoO,GAC7CA,EAAE2J,OAAOw2D,UAAU5+D,SAAS,kBAC5BhF,KAAK22oB,eAAgB,EAE7B,EACAJ,EAAc70oB,UAAUw1oB,oBAAsB,WACxB,UAAdl3oB,KAAKo8E,MAAoBp8E,KAAKk5oB,SAAY,KAAgB,UAC1Dl5oB,KAAKq9oB,eAAe,SAE5B,EACA9G,EAAc70oB,UAAUg8oB,gBAAkB,SAAUj6oB,GAChD,IAAIq6d,EAAMr6d,EAAE2J,OACZ,GAAIpN,KAAK22oB,cACL32oB,KAAK22oB,eAAgB,MADzB,CAIA,IAAIsH,GAAa,QAAQngL,EAAK,IAAM,IAChCogL,GAAgB,QAAQpgL,EAAK,IAAM,IACnCqgL,GAAiB,QAAQrgL,EAAK,IAAM,IACpCsgL,GAAoB,QAAQtgL,EAAK,qBAC/B,QAAMmgL,IAAeA,EAAWlwU,YAAY/tU,KAAKoD,YACjD,QAAM86oB,IAAkBl+oB,KAAKk5oB,QAAWgF,EAAcxmnB,GAAGnwB,QAAQvH,KAAKg4oB,UAAUtgnB,KAAO,KACxF,QAAMymnB,MAAoB,QAAMC,IAAsBtgL,EAAIl6Z,UAAU5+D,SAAS,mBAIpD,WAAtBhF,KAAKm5oB,aACLn5oB,KAAKqpgB,OAEsB,WAAtBrpgB,KAAKm5oB,cACVn5oB,KAAK2wa,cAAc,UAf3B,CAkBJ,EACA4lO,EAAc70oB,UAAUulN,cAAgB,SAAUxjN,GAC9C,IAAI0yG,EAAY,CACZsjH,mBAAsCh7N,IAAvBuB,KAAKq+oB,cAA8Br+oB,KAAKyJ,MAAQzJ,KAAKq+oB,cACpE50oB,MAAOhG,EAAEgG,OAEK,iBAAdzJ,KAAK+gB,MAAyC,aAAd/gB,KAAK+gB,MAAqC,iBAAd/gB,KAAK+gB,OACjEo1F,EAAU26I,SAAWrtP,EAAEqtP,SACvB36I,EAAU+qJ,iBAAmBz9P,EAAEy9P,kBAEnClhQ,KAAKq+oB,cAAgBloiB,EAAU1sG,MAC/BzJ,KAAKg7L,QAAQ,SAAU7kF,EAC3B,EAMAogiB,EAAc70oB,UAAUooM,SAAW,WAC/B9pM,KAAK08oB,iBAAgB,GAAM,EAC/B,EAMAnG,EAAc70oB,UAAU2ngB,KAAO,WAC3B,IAAIpngB,EAAQjC,KACZ,GAAKA,KAAKm7Q,QAAV,CAGAn7Q,KAAKoD,QAAQwS,QACb5V,KAAKs+oB,SAAU,QAAO,IAAM,GAAet+oB,KAAKm7Q,UAEvC,QAAO,IAAM,GAAen7Q,KAAKs+oB,SACrCt+oB,KAAK85d,YACN95d,KAAKqiB,WAET,IAAIk7nB,EAAc,CAAEvqiB,QAAQ,EAAO52B,KAAMp8E,KAAKo8E,KAAMssH,OAAQ,UAC5D1oM,KAAKg7L,QAAQ,UAAWuid,GAAa,SAAU56oB,GACtCA,EAAKqwG,QACN/wG,EAAMy6oB,iBAAgB,GAAM,EAEpC,GAbA,CAcJ,EAMAnG,EAAc70oB,UAAUguL,QAAU,WAC9B,IAAIztL,EAAQjC,KAUZ,IATAA,KAAKs7oB,cAAa,WACdt7oB,KAAKw2oB,aACLx2oB,KAAKgvL,OJtrCI,UIsrCmB,CAAC,GAEjChvL,KAAKykN,eACW,CAAC,GAAiB,IACxB7gN,SAAQ,SAAUqiH,IACxB,QAAY,CAAChkH,EAAMmB,SAAU,CAAC6iH,GAClC,IACOjmH,KAAKoD,QAAQ+b,mBAChBnf,KAAKoD,QAAQq5C,YAAYz8C,KAAKoD,QAAQ+b,oBAEpC,WAAcnf,KAAKmjL,kBACrB3uK,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,MAE9BA,KAAKo8P,SACLp8P,KAAKiuM,eAEb,EAMAsoc,EAAc70oB,UAAUqsM,eAAiB,WACrC,OAAO/tM,KAAKuuM,aAAa,CAAC,SAC9B,EAOAgoc,EAAc70oB,UAAUolM,gBAAkB,WACtC,IAAIe,EAAU,GAEd,OADAA,EAAQ3lM,KAAK,CAAEmlM,OAAQ+uc,GAAYp2oB,KAAK+gB,MAAOpe,KAAM,CAAC3C,QAC/C6nM,CACX,EAOA0uc,EAAc70oB,UAAU69L,cAAgB,WACpC,MAAO,eACX,EASAg3c,EAAc70oB,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAG3D,IAFsBllM,KAAK68oB,kBAAmB,QAAM78oB,KAAKoD,QAAQkzF,iBAAiB,IAAM,QACpFt2F,KAAKoD,QAAQkzF,iBAAiB,IAAM,IAAe9yF,OAAS,GAC3C,CACjB,GAAIxD,KAAKw4oB,eAAgB,CACrB,IAAI+F,EAAkB,mBAAoBt5c,EACrCs5c,GAAmBr5c,EAAQ4yc,iBAAmB7yc,EAAQ6yc,iBAAqByG,GAAmBv+oB,KAAK83oB,eACpG93oB,KAAKq9oB,eAAe,UAGpBr9oB,KAAKs7oB,cAEb,CACA,IAAK,IAAIl2oB,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAExD,OADW7F,EAAG6F,IAEV,IAAK,cACA6/L,EAAmB,YAAIjlM,KAAK85oB,cAAc95oB,KAAKm7Q,SAAWn7Q,KAAK67oB,iBAChE,MACJ,IAAK,QACD77oB,KAAKiyF,cACe,UAApBjyF,KAAKy3oB,WAAyBz3oB,KAAK03oB,YAAY13oB,KAAK6pN,WAAW60D,GAAW1+Q,KAAK+gB,KAAM/gB,KAAKyJ,MAAOzJ,KAAKqQ,SAChGrQ,KAAK23oB,qBACX,MACJ,IAAK,YACmB,UAApB33oB,KAAKy3oB,WAAyBz3oB,KAAK03oB,YAAY13oB,KAAK6pN,WAAW60D,GAAW1+Q,KAAK+gB,KAAM/gB,KAAKyJ,MAAOzJ,KAAKqQ,SAChGrQ,KAAK23oB,qBACX,MACJ,IAAK,WACD33oB,KAAKs3oB,kBACL,MACJ,IAAK,WACDt3oB,KAAKq/P,QAAQp6D,EAAQ5uL,UACrB,MACJ,IAAK,YACDrW,KAAK43oB,OAAO3yc,EAAQiH,WACpB,MACJ,IAAK,WACDlsM,KAAKmqN,SAAS,SAAUjlB,EAAQ+e,UAChCjkN,KAAKmqN,SAAS,MAAOllB,EAAQgf,UAC7B,MACJ,IAAK,OACDjkN,KAAK63oB,aAAa73oB,KAAK83oB,gBACvB,MACJ,IAAK,iBACD93oB,KAAK63oB,aAAa5yc,EAAQ6yc,gBAC1B,MACJ,IAAK,aACD93oB,KAAK69oB,gBAAgB34c,EAAQ2zc,YACF,kBAAvB5zc,EAAQ4zc,YACR74oB,KAAKw9oB,cAAcv4c,EAAQ4zc,YAK/C,CACJ,EACA,GAAW,EACP,QAAS,KACVtC,EAAc70oB,UAAW,YAAQ,GACpC,GAAW,EACP,QAAS,OACV60oB,EAAc70oB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,KACV60oB,EAAc70oB,UAAW,gBAAY,GACxC,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,2BAAuB,GACnD,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,uBAAmB,GAC/C,GAAW,EACP,QAAS,KACV60oB,EAAc70oB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,KACV60oB,EAAc70oB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,UACV60oB,EAAc70oB,UAAW,iBAAa,GACzC,GAAW,EACP,QAAS,KACV60oB,EAAc70oB,UAAW,WAAO,GACnC,GAAW,EACP,QAAS,UACV60oB,EAAc70oB,UAAW,YAAQ,GACpC,GAAW,EACP,QAAS,eACV60oB,EAAc70oB,UAAW,eAAW,GACvC,GAAW,EACP,QAAS,SACV60oB,EAAc70oB,UAAW,YAAQ,GACpC,GAAW,EACP,QAAS,UACV60oB,EAAc70oB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,UACV60oB,EAAc70oB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,WACV60oB,EAAc70oB,UAAW,oBAAgB,GAC5C,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,yBAAqB,GACjD,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,gBAAY,GACxC,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,mBAAe,GAC3C,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,sBAAkB,GAC9C,GAAW,EACP,SAAS,IACV60oB,EAAc70oB,UAAW,qBAAiB,GAC7C,GAAW,EACP,QAAQ,CAAC,EAAGy0oB,KACbI,EAAc70oB,UAAW,qBAAiB,GAC7C,GAAW,EACP,QAAS,OACV60oB,EAAc70oB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,CAAE4iN,QAAS,yBACrBiyb,EAAc70oB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,CAAE4iN,QAAS,2BACrBiyb,EAAc70oB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,OACV60oB,EAAc70oB,UAAW,uBAAmB,GAC/C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,eAAW,GACvC,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,0BAAsB,GAClD,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,mBAAe,GAC3C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,qBAAiB,GAC7C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,qBAAiB,GAC7C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,kBAAc,GAC1C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,iBAAa,GACzC,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,eAAW,GACvC,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,cAAU,GACtC,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,mBAAe,GAC3C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,mBAAe,GAC3C,GAAW,EACP,WACD60oB,EAAc70oB,UAAW,iBAAa,GACzB,GAAW,CACvB,MACD60oB,EAEP,CA/2CkC,CA+2ChC,MCv5CEiI,GAAuC,WAQvC,SAASA,EAAsBr1L,EAAWC,GACtCppd,KAAKy+oB,aAAe,GACpBz+oB,KAAK0+oB,cAAgB,EACrB1+oB,KAAK2+oB,mBAAqB,EAC1B3+oB,KAAK4+oB,mBAAqB,GAC1B5+oB,KAAK6+oB,sBAAuB,EAC5B7+oB,KAAK8+oB,qBAAsB,EAC3B9+oB,KAAK++oB,oBAAqB,EAI1B/+oB,KAAK8tnB,gCAAiC,EAItC9tnB,KAAK69gB,mBAAoB,EACzB79gB,KAAKg/oB,wBAAyB,EAC9Bh/oB,KAAKi/oB,oBAAqB,EAI1Bj/oB,KAAK08hB,sBAAuB,EAI5B18hB,KAAKk2jB,sBAAuB,EAC5Bl2jB,KAAKmpd,UAAYA,EACjBnpd,KAAKopd,cAAgBA,EACrBppd,KAAK4uB,QAAU5uB,KAAKmpd,UAAU6oG,oBAAoBpjiB,QAAU5uB,KAAKmpd,UAAU6oG,oBAAoBpjiB,QAAU,CAC7G,CAugHA,OA//GA4vnB,EAAsB98oB,UAAUk8hB,6BAA+B,SAAUshH,EAAmBx1L,EAAY+f,GACpG,GAAIy1K,GACIA,EAAkB17oB,OAAS,EAC3B,IAAK,IAAIuJ,EAAI,EAAGA,EAAImyoB,EAAkB17oB,OAAQuJ,IAAK,CAE/C,IAAI8/d,EAAaqyK,EAAkBnyoB,GAC/BokiB,GAAU,EAEVz4D,EAAkB14e,KAAK24e,eAAejvB,EAAY,KAAM,UAC5D,GAAwB,OAApBgvB,EACA,IAAK,IAAIr+X,EAAI,EAAGA,EAAIq+X,EAAgBl1e,OAAQ62G,IAAK,CAC7C,IAAIuyX,EAAiBC,EAAWqM,UAAYrM,EAAWqM,UAAYrM,EAAW2lE,UAC1E2sG,EAAqBzmK,EAAgBr+X,GAAG6+X,UAAYR,EAAgBr+X,GAAG6+X,UAAYR,EAAgBr+X,GAAGm4b,UAC1G,GAAI2sG,GAAsBvyK,GAAkBuyK,IAAuBvyK,EAAgB,CAC/EukE,GAAU,EACV,KACJ,CACJ,CAEJ,IAAKA,EAAS,CACVtkE,EAAW8oE,kBAAoB31iB,KAAKmpd,UAAU+sB,iBAAiB45I,mBAAmBjjJ,EAAYnjB,EAAYmjB,EAAW4xD,WACrH,IAAI12B,EAEA55e,EAAW0+c,EAAW1c,OACtBslB,EAAS5I,EAAWunE,OAExBvnE,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqB71iB,KAAKmpd,UAAU+sB,iBAAiBijJ,yBAAyBtsJ,GACzJA,EAAWi5F,oBAAsBj5F,EAAWvG,mBAAqBuG,EAAWvG,mBAAqBtme,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GACrK,IAAI60B,EAsBA/0B,EAoBJ,GAxCI+0B,EADiC,wBAAjC70B,EAAW8oE,kBACD9oE,EAAWsjJ,QAGXtjJ,EAAWgpE,mBAAmBn0C,QAExC70B,EAAW6tE,SACX7tE,EAAWgpE,mBAAmB16D,OAAStO,EAAW6tE,QAEtD3yC,EAAmB,CAEfpyC,oBAAqB,SAAU8f,OAAQA,EAAQgtB,aAAc51B,EAAW4iE,aAAcpma,QAASwjW,EAAW14U,QAASqgZ,KAAM3nE,EAAW4nE,KAAM7lhB,QAASi+c,EAAWsK,QAASjqc,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WACvNt8C,SAAU,GAAI+sB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAY4I,GAAS4+D,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQA,GAAU/rB,WAAYA,EAEnQ1jb,OAAQ,CAAEpuB,KAAMi1d,EAAW1c,OAAOlvP,EAAG3mN,IAAKuyd,EAAW1c,OAAOjvP,EAAGvmN,MAAOkyd,EAAW1c,OAAO1F,MAAO5pc,OAAQgsd,EAAW1c,OAAOzF,OAAQ1yc,MAAO60d,EAAW1c,OAAO95D,MAAO77Y,OAAQqyd,EAAW1c,OAAOpF,QAC3LmuB,UAAWrM,EAAW2lE,UAAWvkhB,MAAO4+c,EAAW5+c,MACnD4ye,2BAA4B7ggB,KAAK4vG,YAAYi9X,GAC7CspE,WAAYn2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GACpD0I,mBAAoB1I,EAAWgpE,mBAAoBiwB,oBAAqBj5F,EAAWi5F,oBACnFpkE,QAASA,EAASs0C,cAAenpE,EAAWkpE,eAIhDlpE,EAAW+oE,2BAA6B/oE,EAAW+oE,2BAA6B/oE,EAAW+oE,2BAA6B51iB,KAAKmpd,UAAU03C,2BACvIl0B,EAAQ,CAEJ8I,OAAQA,EAAQgtB,aAAcsF,EAAiBtF,aAAcvpB,UAAW6uB,EAAiB7uB,UAAW9gQ,UAAWsxO,EAAY1jb,OAAQ,CAAE9rB,EAAGiU,EAASwnY,KAAM38W,EAAG7qB,EAASkmX,IAAK15X,MAAOwT,EAASs8b,MAAO5pc,OAAQsN,EAASu8b,QAAUuL,YAAa,cAAem3F,iBAAkB,GAAIpyhB,KAAMh7B,KAAKo/oB,iBAAkBzpL,oBAAqB,cAC9TtsV,QAAS0+X,EAAiB1+X,QAAS0xX,MAAOgN,EAAiBysC,KAAM5lhB,QAASm5e,EAAiBn5e,QAAS8I,GAAIqwe,EAAiB7uB,UAAWljB,UAAW+xC,EAAiB95e,MAChK4ye,2BAA4Bh0B,EAAW+oE,2BACvCrgE,mBAAoBwyB,EAAiBxyB,mBAErCogE,kBAAmB9oE,EAAW8oE,kBAAmBj0C,QAASA,EAASs0C,cAAejuC,EAAiBiuC,eAEnGvsE,EACAzpe,KAAKq/oB,gBAAgBlxnB,EAASwnY,KAAMxnY,EAASkmX,IAAKlmX,EAASs8b,MAAOt8b,EAASu8b,OAAQhB,EAAYijB,EAAOlD,IAGtGzpe,KAAKmpd,UAAUxtc,IAAIgxd,GACnB3se,KAAKq/oB,gBAAgBlxnB,EAASwnY,KAAMxnY,EAASkmX,IAAKlmX,EAASs8b,MAAOt8b,EAASu8b,OAAQhB,EAAYijB,GAC/F3se,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiB39E,EAAYq+C,EAAkB,wBAE/E/ngB,KAAK8tnB,+BAAgC,CAErC,IAAI76jB,EAAW,CACXrkC,QAAS+9c,EAAM/9c,QAAS8iB,YAAai7b,EAAM1W,YAAav0a,YAAairb,EAAMzW,UAAWuf,OAAQ5I,EAAW4I,OAAQpsW,QAASwjW,EAAWxjW,QAASo5X,aAAc51B,EAAW41B,aAEvKzsC,UAAW2W,EAAM3W,UAAW3lc,SAAUs8c,EAAMt8c,SAAU1V,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,OAAQo1Z,UAAW02D,EAAM12D,UAAWp6W,WAAY8wa,EAAM9wa,WAAY4rgB,YAAa96F,EAAMyB,YAAaxxa,UAAW+va,EAAMhle,KAAM+0iB,cAAe/vE,EAAMl+c,WAExPzuB,KAAKmpd,UAAUg5G,kBAAkBx1F,EAAMv0P,UAAWu0P,EAAMuM,UAAW,cAAevM,EAAM3mc,OAAQitB,EACpG,CACJ,CACJ,CAGZ,EAMAurlB,EAAsB98oB,UAAUkuG,YAAc,SAAUi9X,GACpD,IAAIzhe,EAAWpL,KAAKmpd,UAAU03C,2BAO9B,OANIh0B,EAAW+oE,2BACXxqiB,EAAWyhe,EAAW+oE,2BAEjB51iB,KAAKmpd,UAAU6oG,oBAAoBnxD,6BACxCz1f,EAAWpL,KAAKmpd,UAAU6oG,oBAAoBnxD,4BAE3Cz1f,CACX,EA0BAozoB,EAAsB98oB,UAAU29oB,gBAAkB,SAAUp+a,EAAGC,EAAGvmN,EAAOkG,EAAQu3N,EAAWy0P,EAAYpD,GACpG,IACIkD,EADA1qe,EAAQjC,KAER+ngB,EAAmB,KACnBp+e,EAAQ,IAAIC,MAEZo+L,EAAQhoN,KACZ2pB,EAAM0hI,OAAS,WACX,IAAIqse,EACA9qJ,EAEA6I,EAAwD,UAA9Cxze,EAAMknd,UAAUosB,mBAAmBE,OAAsBxze,EAAMknd,UAAUosB,mBAAmBE,OAASxze,EAAMknd,UAAU6oG,oBAAoBv8E,OACvJ,GAAI5I,EACAF,EAAQ,CAEJ8I,OAAQ5I,EAAW4I,OAAQgtB,aAAc51B,EAAW41B,aAAcvpB,UAAWrM,EAAWqM,UAAWl+c,KAAMrR,EAAMgzC,IAAK32B,OAAQ,CAAE9rB,EAAG+mN,EAAGjoL,EAAGkoL,EAAGvmN,MAAOA,EAAOkG,OAAQA,GAAUwoH,QAASwjW,EAAWxjW,QAC9L0xX,MAAOluB,EAAWkuB,MAAOnse,QAASi+c,EAAWj+c,QAAS8I,GAAIm1c,EAAWqM,UAAWvjB,oBAAqB,cAAeM,YAAa,cAAem3F,iBAAkB,GAAIh1U,UAAWy0P,EAAWz0P,UAAWspR,QAAS70B,EAAW60B,aAG9N,CACD90B,EAAiB3qe,EAAMknd,UAAU0jB,WAAWC,cAC5C4qJ,EAAgB1va,EAAM83X,YAAY,SAAU1nW,EAAY,MAEpD15O,SAASkuD,eAAe8qkB,GAAehgmB,GAAKk1c,GAGhD,IAAIi0B,EAA6B5+f,EAAMknd,UAAU6oG,oBAAoBnxD,2BAA6B5+f,EAAMknd,UAAU6oG,oBAAoBnxD,2BAA6B5+f,EAAMknd,UAAU03C,2BAC/Ka,EAAUz/f,EAAMknd,UAAU6oG,oBAAoBtwD,QAClD/0B,EAAQ,CAEJ3mc,OAAQ,CAAE9rB,EAAG+mN,EAAGjoL,EAAGkoL,EAAGvmN,MAAOA,EAAOkG,OAAQA,GAAUu3N,UAAWA,EAAWp9M,KAAMrR,EAAMgzC,IAAK8lc,aAAcxggB,EAAMmwnB,iBACjHz8J,oBAAqB,cAAeM,YAAa,cAAem3F,iBAAkB,GAAIl0E,UAAWtM,EAAgBl1c,GAAIk1c,EAAgBh+c,QAAS3sB,EAAM2sB,QAAS8ye,QAASA,GAG1K,IAAIvmB,EAASl5e,EAAMknd,UAAU6oG,oBAAoB72E,OAASl5e,EAAMknd,UAAU6oG,oBAAoB72E,OAASl5e,EAAMknd,UAAUosB,mBAAmB4F,OAEtI2qF,EAAsB7jkB,EAAMknd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GAC/Fk7B,EAAmB,CAEftyB,OAAQA,EAAQqwF,oBAAqBA,EAAqBrjE,aAAcxggB,EAAMmwnB,iBAAkB/of,QAAS,cAAessV,oBAAqB,SAAUjM,WAAYtxO,EAEnKo8T,KAAM,GAAI5lhB,QAAS3sB,EAAM2sB,QAASqpe,SAAU,GAAI/qd,MAAO,GAAIongB,WAAY,GAAIrmhB,MAAO,kBAAmB+2f,SAAU,GAAI9rC,UAAWtM,EAE9H5mc,OAAQ,CAAEpuB,KAAMqpN,EAAG3mN,IAAK4mN,EAAGvmN,MAAOA,EAAOkG,OAAQA,GAAUwzhB,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAc,GAAIhtB,OAAQA,GAC1HorB,2BAA4BA,EAE5Bs1C,WAAYl0iB,EAAMknd,UAAU+sB,iBAAiBv0P,QAAQ,UAAW4zP,mBAAoB,CAAE4F,OAAQA,GAAUumB,QAASA,EAASs0C,eAAe,EAEjJ,CAOA,GANKnpE,IAED7kR,EAAMmhQ,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMu0P,EAAO,WAAY,GAAIA,EAAOA,GACpF3kR,EAAMmhQ,UAAUxtc,IAAIgxd,GACpB3kR,EAAMmhQ,UAAU+sB,iBAAiBmxD,iBAAiBjvT,EAAW2vR,EAAkB,wBAE/E//S,EAAMohQ,cAAc8xD,aAAc,CAGlC,IAAIl1e,EAAS,CAAEpuB,KAAM+0d,EAAM3mc,OAAO9rB,EAAGI,IAAKqyd,EAAM3mc,OAAOgT,EAAGr+B,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,QAC1G5e,EAAMmnd,cAAcovB,8BAA6B,GAEjD,IAAIvlb,EAAW,CAAErkC,QAAS+9c,EAAM/9c,QAAS6md,OAAQA,EAAQgtB,aAAc91B,EAAM81B,aAAcp5X,QAASsjW,EAAMhX,qBAC1G1zd,EAAMknd,UAAUg5G,kBAAkBx1F,EAAMv0P,UAAWu0P,EAAMuM,UAAW,cAAelzc,EAAQitB,EAC/F,CACA,GAAIw2a,EAEAzhR,EAAMmhQ,UAAUqtB,cAAc/M,EAAQrxP,OAErC,CAED,IAAIm+P,EAAU73e,SAASkuD,eAAeo7J,EAAMmhQ,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,GAE1FpwB,EAAMmhQ,UAAUqtB,cAAcD,EAASn+P,EAC3C,CACI,KAAQn/C,UACR+uB,EAAMmhQ,UAAUnuW,OAAO,CAAC2xX,EAAMj1c,IAAKi1c,EAAMk0B,4BAE7C74S,EAAMohQ,cAAc8xD,cAAe,CACvC,EACAvxf,EAAMgzC,IAAM38D,KAAKo/oB,gBACrB,EACAZ,EAAsB98oB,UAAU09oB,eAAiB,WAG7C,MADkB,44EAEtB,EAIAZ,EAAsB98oB,UAAU+9hB,yBAA2B,WACvD,IAAIhvC,EACAzoS,EAAQhoN,KAGR2sd,EAAY3kQ,EAAMohQ,cAAcuD,UAC/B3kQ,EAAMi3b,qBAFK,GAGItyL,EACZA,EAJQ,GAOR3kQ,EAAMg3b,wBAAyB,GAGlCh/oB,KAAKi/oB,mBAONxuJ,EAAa,CAAEy1C,eAjBH,IAiB6BzxgB,WAAY0xgB,aAAcx5E,EAAUl4b,WAAY8nf,OAAQv8gB,KAAKopd,cAAcmzD,OAAQ7zU,OAAQ,2BAA4BguD,UAAW12P,KAAKmpd,UAAU/ld,QAAQs0B,GAAItB,SAAU4xL,EAAMohQ,cAAcj3F,aALpOs+H,EAAa,CAAEy1C,gBAbF,GAa6BzxgB,WAAY0xgB,aAAcx5E,EAAUl4b,WAAY8nf,OAAQv8gB,KAAKopd,cAAcmzD,OAAQ7zU,OAAQ,2BAA4BguD,UAAW12P,KAAKmpd,UAAU/ld,QAAQs0B,GAAItB,SAAU4xL,EAAMohQ,cAAcj3F,YACrOnqK,EAAMi3b,oBAAqB,GAM3Bj/oB,KAAKopd,cAAcmiE,iBAEnB96B,EAAWt+H,WAAanyX,KAAKopd,cAAcmiE,gBAE/C,IAAI/ud,EAAMx8D,KAAKmpd,UAAUqzD,WAAa,IAAMx8gB,KAAKmpd,UAAUwiE,qBAAqB+5C,eAChF19W,EAAMs3b,uBAAyB,IAAI9vJ,GAAYxnS,EAAMmhQ,WACrDnhQ,EAAMs3b,uBAAuB9ilB,IAAMA,EACnCwrJ,EAAMs3b,uBAAuBljkB,MAAO,EACpC4rI,EAAMs3b,uBAAuBj4f,aAAe,OAC5C2gE,EAAMs3b,uBAAuB37f,KAAK8sW,GAElCzoS,EAAMs3b,uBAAuB3od,UAAY,SAAU34L,GAE/C,IAAIg9B,EAAOh9B,EAAOg9B,KAElB,IADegtL,EAAMohQ,cAAckjE,iBAAiBtxf,IAE5CA,EAAM,CACN,GAAoB,iBAATA,EACP,IAEwB,iBADpBA,EAAOp5B,KAAK+yH,MAAM35F,MAEdA,EAAOp5B,KAAK+yH,MAAM35F,IAEF,iBAATA,IACPgtL,EAAMohQ,cAAcsiE,eAAe,IAAK1wf,EAAMh7B,KAAKmpd,UAAUwiE,qBAAqB+5C,gBAClF1qiB,EAAO,KAEf,CACA,MAAO0sC,GACHsgJ,EAAMohQ,cAAcsiE,eAAe,IAAK1wf,EAAMh7B,KAAKmpd,UAAUwiE,qBAAqB+5C,gBAClF1qiB,EAAO,IACX,CAEJ,GAAIA,EAAM,CACN,IAAIuknB,GAAkB,EAStB,GARIv3b,EAAMohQ,cAAcgwD,mBAEpBpxT,EAAMohQ,cAAcgwD,mBAAqBp+e,EAAKwknB,mBAG9Cx3b,EAAMohQ,cAAcgwD,mBAAqBp+e,EAAKwknB,kBAC9CD,GAAkB,GAElBvknB,EAAKwknB,mBAAqBxknB,EAAK5E,WAAa4xL,EAAMohQ,cAAcj3F,WAAY,CAC5EnqK,EAAMmhQ,UAAU0iE,uBAAuB7rhB,KAAKmpd,UAAUwiE,qBAAqB+5C,eAAgB1qiB,GAC3FgtL,EAAM00U,sBAAuB,EAE7B,IAAIoW,OAAwB,EAC5B,GAAI9qV,EAAMohQ,cAAcmwD,8BAEpBu5B,EAAwB9qV,EAAMmqV,uCAAuCnqV,EAAMohQ,cAAcgwD,mBAAoBpxT,EAAMohQ,cAAcmwD,mCAEhI,CAED,IAAI26B,EAAgBlsV,EAAMohQ,cAAc8oF,8BAExCY,EAAwB9qV,EAAMmqV,uCAAuCnqV,EAAMohQ,cAAcgwD,mBAAoB86B,EACjH,CACAlsV,EAAMohQ,cAAcgwD,mBAAqB05B,EACzC9qV,EAAMohQ,cAAcmwD,8BAAgCu5B,EACpD,IAAK,IAAI/liB,EAAIiuB,EAAKyknB,eAAgB1yoB,EAAIiuB,EAAK0knB,aAAc3yoB,IAAK,CAC1D,IAAIm9O,EAAUlvN,EAAKwknB,kBAAkBzyoB,GACrCi7M,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,mBAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,sBAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,0BAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,mBAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,uBAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,0BAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,oBAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,yBAC3DliC,EAAMohQ,cAAcomF,8BAA8BtlT,EAAS,uBAC/D,CACA,IAAK,IAAI9vI,EAAIp/E,EAAKyknB,eAAgBrliB,EAAIp/E,EAAK0knB,aAActliB,IACjDp/E,EAAKwknB,kBAAkBpliB,IACvB4tG,EAAM23b,4BAA4B3knB,EAAKwknB,kBAAkBpliB,GAAIA,EAAGmliB,GAGnEv3b,EAAMg3b,yBACPh3b,EAAMg3b,wBAAyB,EAC/Bh3b,EAAMy3U,2BAEd,CACJ,CACJ,CAER,EAEAz3U,EAAMs3b,uBAAuBzod,UAAY,SAAU74L,GAC/CgC,KAAKmpd,UAAUknC,sBAAsBryf,EAAO4sJ,OAAQ5sJ,EAAOylJ,WAC/D,EAEAukE,EAAMs3b,uBAAuB32kB,QAAU,SAAU3qE,GAC7CgqN,EAAMmhQ,UAAUknC,sBAAsBryf,EAAO4sJ,OAAQ5sJ,EAAOylJ,WAAYukE,EAAMmhQ,UAAUwiE,qBAAqB+5C,eACjH,CACJ,EAOA84E,EAAsB98oB,UAAUywiB,uCAAyC,SAAUytG,EAAqBpqG,GACpG,IAAK,IAAIzoiB,EAAI,EAAGA,EAAI/M,KAAKopd,cAAcuD,UAAW5/c,IAC9C,GAAI6yoB,EAAoB7yoB,IAAMyoiB,EAAczoiB,GAAI,CAE5C,GAAI6yoB,EAAoB7yoB,GAAGk4e,sBAA+E,IAAvD26J,EAAoB7yoB,GAAGk4e,qBAAqBzhf,QAAgBgyiB,EAAczoiB,GAAGk4e,qBAC5H,IAAK,IAAI7qY,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGk4e,qBAAqBzhf,OAAQ42G,IAEpEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGk4e,qBAAqB7qY,GAAIo7b,EAAczoiB,GAAGk4e,sBAIlH,GAAI26J,EAAoB7yoB,GAAGqre,iBAAqE,IAAlDwnK,EAAoB7yoB,GAAGqre,gBAAgB50e,QAAgBgyiB,EAAczoiB,GAAGqre,gBAClH,IAASh+X,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGqre,gBAAgB50e,OAAQ42G,IAE/Dp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGqre,gBAAgBh+X,GAAIo7b,EAAczoiB,GAAGqre,iBAI7G,GAAIwnK,EAAoB7yoB,GAAGm4e,wBAAmF,IAAzD06J,EAAoB7yoB,GAAGm4e,uBAAuB1hf,QAAgBgyiB,EAAczoiB,GAAGm4e,uBAChI,IAAS9qY,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGm4e,uBAAuB1hf,OAAQ42G,IAEtEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGm4e,uBAAuB9qY,GAAIo7b,EAAczoiB,GAAGm4e,wBAIpH,GAAI06J,EAAoB7yoB,GAAGq4e,kBAAuE,IAAnDw6J,EAAoB7yoB,GAAGq4e,iBAAiB5hf,QAAgBgyiB,EAAczoiB,GAAGq4e,iBACpH,IAAShrY,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGq4e,iBAAiB5hf,OAAQ42G,IAEhEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGq4e,iBAAiBhrY,GAAIo7b,EAAczoiB,GAAGq4e,kBAI9G,GAAIw6J,EAAoB7yoB,GAAGqwhB,uBAAiF,IAAxDwiH,EAAoB7yoB,GAAGqwhB,sBAAsB55hB,QAAgBgyiB,EAAczoiB,GAAGqwhB,sBAC9H,IAAShjb,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGqwhB,sBAAsB55hB,OAAQ42G,IAErEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGqwhB,sBAAsBhjb,GAAIo7b,EAAczoiB,GAAGqwhB,uBAInH,GAAIwiH,EAAoB7yoB,GAAGo4e,oBAA2E,IAArDy6J,EAAoB7yoB,GAAGo4e,mBAAmB3hf,QAAgBgyiB,EAAczoiB,GAAGo4e,mBACxH,IAAS/qY,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGo4e,mBAAmB3hf,OAAQ42G,IAElEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGo4e,mBAAmB/qY,GAAIo7b,EAAczoiB,GAAGo4e,oBAIhH,GAAIy6J,EAAoB7yoB,GAAGswhB,qBAA6E,IAAtDuiH,EAAoB7yoB,GAAGswhB,oBAAoB75hB,QAAgBgyiB,EAAczoiB,GAAGswhB,oBAC1H,IAASjjb,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGswhB,oBAAoB75hB,OAAQ42G,IAEnEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGswhB,oBAAoBjjb,GAAIo7b,EAAczoiB,GAAGswhB,qBAIjH,GAAIuiH,EAAoB7yoB,GAAGs4e,wBAAmF,IAAzDu6J,EAAoB7yoB,GAAGs4e,uBAAuB7hf,QAAgBgyiB,EAAczoiB,GAAGs4e,uBAChI,IAASjrY,EAAI,EAAGA,EAAIwliB,EAAoB7yoB,GAAGs4e,uBAAuB7hf,OAAQ42G,IAEtEp6G,KAAKkliB,oCAAoC06G,EAAoB7yoB,GAAGs4e,uBAAuBjrY,GAAIo7b,EAAczoiB,GAAGs4e,uBAGxH,CAEJ,OAAOmwD,CACX,EAEAgpG,EAAsB98oB,UAAUwjiB,oCAAsC,SAAU06G,EAAqBpqG,GACjG,GAA6B,IAAzBA,EAAchyiB,OACdgyiB,EAActziB,KAAK09oB,OAElB,CAED,IADA,IAAIzuG,GAAU,EACLpkiB,EAAI,EAAGA,EAAIyoiB,EAAchyiB,OAAQuJ,IAEtC,GAAK6yoB,EAAoBptG,WAAagD,EAAczoiB,GAAGyliB,WAAeotG,EAAoBptG,YAAcgD,EAAczoiB,GAAGyliB,UAAY,CACjIrB,GAAU,EACV,KACJ,CAECA,GACDqE,EAActziB,KAAK09oB,EAE3B,CACJ,EAEApB,EAAsB98oB,UAAUi+oB,4BAA8B,SAAUjnK,EAAiBhvB,EAAY61L,GAIjG,IAFA,IAAIltG,EAAkB,GAClBx7U,EAAa6hR,EAAgB8lD,gBACxBlkb,EAAI,EAAGA,EAAIu8G,EAAWrzN,OAAQ82G,IAAK,CACxC,IAAIuyX,EAAah2Q,EAAWjsN,SAAS0vG,EAAE7lF,WAAY,KAC/C1T,EAAO8rd,EAAW4xD,UAAY5xD,EAAW4xD,UAAY5xD,EAAWoK,eAKpE,OAJIj3e,KAAKmpd,UAAU1rP,iBACfovQ,EAAW4iE,aAAezviB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B8pI,eAAevlJ,EAAW4iE,eAEpH4C,EAAgBnwiB,KAAK2qe,GACb9rd,GACJ,IAAK,aACD/gB,KAAKyxiB,kBAAkBzxiB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2Bo3D,sCAAsC7kE,EAAYnjB,IACpI,MACJ,IAAK,gBACD1pd,KAAKyxiB,kBAAkBzxiB,KAAKmpd,UAAU+sB,iBAAiB6F,wBAAwB61D,mCAAmC/kE,EAAYnjB,IAC9H,MACJ,IAAK,QACD1pd,KAAKyxiB,kBAAkBzxiB,KAAKmpd,UAAU+sB,iBAAiBsxB,sBAAsBmqC,iCAAiC9kE,EAAYnjB,IAC1H,MACJ,IAAK,SACD1pd,KAAKyxiB,kBAAkBzxiB,KAAK+xiB,uCAAuCllE,EAAYnjB,IAC/E,MACJ,IAAK,QACD1pd,KAAKyxiB,kBAAkBzxiB,KAAKmpd,UAAU+sB,iBAAiB0sB,sBAAsBivC,iCAAiChlE,EAAYnjB,IAC1H,MACJ,IAAK,MACD1pd,KAAKyxiB,kBAAkBzxiB,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAoBiqD,qBAAqBnlE,EAAYnjB,IAC5G,MACJ,IAAK,WACD1pd,KAAKyxiB,kBAAkBzxiB,KAAKmpd,UAAU+sB,iBAAiBuE,yBAAyBq3D,oCAAoCjlE,EAAYnjB,IAK5I,CACA,GAAIgvB,EAAgB2kD,qBAAsE,IAA/C3kD,EAAgB2kD,oBAAoB75hB,OAC3E,IAAK,IAAIuJ,EAAI,EAAGA,EAAI2re,EAAgB2kD,oBAAoB75hB,OAAQuJ,IACxD/M,KAAKmpd,UAAU1rP,iBAEfi7Q,EAAgB2kD,oBAAoBtwhB,GAAG0iiB,aAAezviB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B8pI,eAAe15I,EAAgB2kD,oBAAoBtwhB,GAAG0iiB,eAG5KzviB,KAAKyxiB,kBAAkBzxiB,KAAKopd,cAAcilB,gBAAgBuL,2BAA2BlB,EAAgB2kD,oBAAoBtwhB,GAAI28c,IAAa,GAMlJ,GAHI1pd,KAAKmpd,UAAUsiC,eACfzrf,KAAKwxiB,yBAAyBa,EAAiB3oF,GAE/C61L,EACA,IAASxyoB,EAAI,EAAGA,EAAI/M,KAAKopd,cAAc+sD,kBAAkB3ygB,OAAQuJ,IACzD/M,KAAKopd,cAAc+sD,kBAAkBppgB,KAAO28c,GAC5C1pd,KAAKopd,cAAcu0E,kBAAkBj0E,EAAYgvB,GAAiB,EAIlF,EASA8lK,EAAsB98oB,UAAU+viB,kBAAoB,SAAU5kE,EAAYqQ,GACtE,IAEI7uQ,EAFA8iU,GAAU,EASd,IALI9iU,EADA6uQ,EACcl9e,KAAKmpd,UAAUiwB,oBAGfp5e,KAAKmpd,UAAUgsB,uBAEdtI,EACf,IAAK,IAAI9/d,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAImwe,GACA,GAAI7uQ,EAAYthO,GAAGqge,gBAAkBP,EAAWO,cAAe,CAC3D+jE,GAAU,EACV,KACJ,OAGA,GAAI9iU,EAAYthO,GAAGkse,eAAiBpM,EAAWoM,aAAc,CACzDk4D,GAAU,EACV,KACJ,EAIPA,GAAWtkE,IACRqQ,EACAl9e,KAAKmpd,UAAUiwB,oBAAoBl3e,KAAK2qe,GAGxC7se,KAAKmpd,UAAUgsB,qBAAqBjze,KAAK2qe,GAGrD,EAOA2xK,EAAsB98oB,UAAU8viB,yBAA2B,SAAUx2gB,EAAMo9M,GAEvE,GADAA,GAAwB,EACpBp9M,GACoB,IAAhBA,EAAKx3B,OAAc,CACnBxD,KAAK6/oB,oBAAoBzna,GACzB,IAAK,IAAIrrO,EAAI,EAAGA,EAAIiuB,EAAKx3B,OAAQuJ,IACzBiuB,EAAKjuB,GAAGyliB,WAA6D,IAA/Cx3gB,EAAKjuB,GAAGyliB,UAAUhriB,MAAM,YAAYhE,QAC1DxD,KAAK20iB,0BAA0B35gB,EAAKjuB,GAAIqrO,GAIhD,IAAI0na,EAAiBphpB,SAAS43F,iBAAiB,0BAC/C,GAAIwpjB,EACA,IAAK,IAAI1liB,EAAI,EAAGA,EAAI0liB,EAAet8oB,OAAQ42G,IACvC0liB,EAAe1liB,GAAGhxG,MAAMwjB,QAAU,MAG9C,CAER,EAIA4xnB,EAAsB98oB,UAAU69hB,8BAAgC,WAE5D,IAAIwgH,GAAmB,QAAc,MAAO,CAAEronB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAsBj1B,UAAW,8BAC3G,UACczC,KAAKmpd,UAAUoG,gBAAgB/vP,kBAAkB,gBAAiB,2BACxE5/K,MAAK,SAAUn2C,GACnBs2oB,EAAiBh9iB,YAAct5F,CACnC,IAGAs2oB,EAAiBh9iB,YAAc/iG,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,mBAExEz6M,KAAKuof,4BACLvof,KAAKopd,cAAcmuB,eAAeqR,yBAAyBllf,YAAYq8oB,GAEvE//oB,KAAK80iB,2BAA4B,QAAc,MAAO,CAAEp9gB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,6BAA8Bj1B,UAAW,qCACjIzC,KAAKopd,cAAcmuB,eAAeqR,yBAAyBllf,YAAY1D,KAAK80iB,2BAE5E90iB,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,wBAAwB,GAE9Hz6M,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAiB,EAC3H,EAIA+jc,EAAsB98oB,UAAU6mf,0BAA4B,WACxD,IAAIw3J,EAAmBrhpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAEvE13B,KAAKopd,cAAcmuB,eAAe2O,uBAAyBlmf,KAAKopd,cAAcmuB,eAAe2O,sBAAsB1le,cAAmD,SAAnCu/nB,EAAiB32oB,MAAMwjB,UAC1JmznB,EAAiB32oB,MAAMigC,WAAcrpC,KAAKopd,cAAcmuB,eAAe2O,sBAAsB1le,aAAe,EAAK,GAAK,KACtHu/nB,EAAiB32oB,MAAM8mB,YAAelwB,KAAKopd,cAAcmuB,eAAe2O,sBAAiC,YAAI,EAAI,KAEzH,EAMAs4J,EAAsB98oB,UAAUm+oB,oBAAsB,SAAUzna,GAE5D,GAA+B,OADF15O,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB0gN,GA6BrG,OA3BAp4O,KAAK60iB,kBAAmB,QAAc,MAAO,CAAEn9gB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAAsB0gN,IACrGp4O,KAAK60iB,iBAAiBzriB,MAAMm4C,OAAS,OAErCvhD,KAAKggpB,wBAAyB,QAAc,MAAO,CAAEtonB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAA4B0gN,EAAW31O,UAAW,kCACvIzC,KAAKggpB,uBAAuBt8oB,YAAY1D,KAAK60iB,kBAC7C70iB,KAAKopd,cAAcyiC,oBAAoBnof,YAAY1D,KAAKggpB,wBAExDhgpB,KAAK49gB,oBAAqB,QAAc,MAAO,CAAElmf,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB0gN,EAAW31O,UAAW,6BAC3G,IAAIuioB,GAAU,CAC9B76mB,MAAO,CAEH,CAAEub,OAAQ1lC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAAU,IAAM,EAAal0L,UAAU,EAAM8e,QAAS,IAAMrlC,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAAsB0gN,MAGvJ7rC,SAASvsM,KAAK49gB,oBAC5B59gB,KAAK49gB,mBAAmBx0gB,MAAMi/O,MAAQ,YACtCroP,KAAKigpB,wBAAwBjgpB,KAAK49gB,mBAAoBxlS,GAClD15O,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,wBAEpD13B,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,wBAAwB,GAE9Hz6M,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAiB,GACvH/7M,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAsBtuB,MAAMwjB,QAAU,QAE1FluB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,gCACpDh5B,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,8BAA8BtuB,MAAMwjB,QAAU,SAE/F5sB,KAAK49gB,kBAEpB,EACA4gI,EAAsB98oB,UAAUu+oB,wBAA0B,SAAUC,EAAc9na,GAC9E,IAAI+4T,GAAU,EACd,GAAInxiB,KAAK80iB,0BAA2B,CAChC,GAAI90iB,KAAK6+oB,qBACL7+oB,KAAK80iB,0BAA0BpxiB,YAAYw8oB,GAC3C/uG,GAAU,OAGV,IAAK,IAAIpkiB,EAAI,EAAGA,GAAK/M,KAAKopd,cAAcuD,UAAW5/c,IAAK,CACpD,IAAI0lO,EAAc/zO,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB3qB,GAC9F,GAAI0lO,GACI2F,EAAYrrO,EAAG,CACf/M,KAAK80iB,0BAA0B/viB,aAAam7oB,EAAczta,GAC1D0+T,GAAU,EACV,KACJ,CAER,CAEAA,IACAnxiB,KAAK80iB,0BAA0BpxiB,YAAYw8oB,GAC3C/uG,GAAU,GAEdnxiB,KAAK6+oB,sBAAuB,CAChC,CACJ,EAKAL,EAAsB98oB,UAAUynhB,4BAA8B,SAAUz/D,GACpE,IAAIw2L,EAAexhpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwBgyb,GAC/F,GAAIw2L,EAAc,CACd,IAAIzlX,EAAcylX,EAAa/0jB,UAAY+0jB,EAAaxkD,UAAY,GACpE17lB,KAAKopd,cAAcmuB,eAAeqR,yBAAyBv9Z,UAAYovM,CAC3E,CACJ,EAEA+jX,EAAsB98oB,UAAUy+oB,eAAiB,SAAUC,EAAS/sH,GAChEA,EAAez3gB,iBAAiB,SAAS,SAAUrI,GAC3C6soB,EAAQh9oB,QAAQ6B,cAAc,iBACE,KAA3BsO,EAAMkkM,WAAWhuM,OAAiD,IAAjC8J,EAAMkkM,WAAWl/F,cAAuBhlG,EAAMkkM,WAAWl/F,eAAiBhlG,EAAMkkM,WAAWhuM,QAC7H22oB,EAAQh9oB,QAAQ6B,cAAc,eAAeu6L,cAAc,GAAGnpL,UAAW,GAGrF,GACJ,EAiBAmooB,EAAsB98oB,UAAUiziB,0BAA4B,SAAU35gB,EAAMo9M,EAAWr3N,EAAMs/nB,EAAmB5/C,GAC5G,IAAI5rD,EAAmBn2iB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAAsB0gN,GACjG,GAAIy8T,EAAkB,CAElB,IAAIx2B,EAAkB3/gB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB0gN,GAC9FimS,GACAA,EAAgB7+U,cAAc,GAAG8+U,YAAW,GAGhDt+gB,KAAKohlB,mBAAoB,QAAc,MAAO,CAAE1pjB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,4BACxJzC,KAAKohlB,kBAAkBk/D,UAAYloa,EAAU3jN,WAAa,IAAMz0B,KAAK0+oB,cACrE,IAAI6B,GAAkB,EACtB,GAAIvlnB,EAAM,CAEN,GADAh7B,KAAKohlB,kBAAkB1pjB,GAAKsD,EAAKw3gB,UAC7Bx3gB,EAAKw3gB,UACL,IAAK,IAAIp4b,EAAI,EAAGA,EAAIy6b,EAAiB15S,kBAAmB/gJ,IACpD,GAAIy6b,EAAiBx3hB,SAAS+8F,GAAG1iF,KAAOsD,EAAKw3gB,UAAW,CACpD+tG,GAAkB,EACd9/C,IAES/hmB,SAASkuD,eAAeiof,EAAiBx3hB,SAAS+8F,GAAG1iF,IAC3DmsC,SACH08kB,GAAkB,GAEtB,KACJ,CAGJvlnB,EAAKinU,MAAsB,aAAdjnU,EAAKinU,KAClBjiW,KAAKohlB,kBAAkB38kB,aAAa,OAAQ,YAG5CzE,KAAKohlB,kBAAkB38kB,aAAa,OAAQu2B,EAAKyjgB,UAEzD,CACI19gB,GACA/gB,KAAKohlB,kBAAkB38kB,aAAa,OAAQsc,GAEhD/gB,KAAKohlB,kBAAkBxlkB,iBAAiB,YAAa5b,KAAKwgpB,yBAAyB7lnB,KAAK36B,OAExF,IAAIygpB,GAAa,QAAc,MAAO,CAAE/onB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,eAAiB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,sBAC1IzC,KAAK0+oB,cAAgB1+oB,KAAK0+oB,cAAgB,EAC1C1+oB,KAAKohlB,kBAAkB19kB,YAAY+8oB,GACnCzgpB,KAAKmphB,4BAA4B/wS,GAC5Bmoa,GACD1rG,EAAiBnxiB,YAAY1D,KAAKohlB,mBAEtC,IAAI73jB,OAAQ,EACRyR,GAEc,UADdzR,EAAQvpB,KAAKohlB,kBAAkBxilB,aAAa,WAExC2qB,EAAQyR,EAAKi8c,gBAEjBj3e,KAAK0gpB,qBAAqBD,EAAYl3nB,EAAO6uN,EAAWp9M,EAAKm5H,QAASn5H,EAAKy0gB,aAAcz0gB,EAAKo5gB,UAG9F7qhB,EAAQvpB,KAAKohlB,kBAAkBxilB,aAAa,QAC5CoB,KAAK0gpB,qBAAqBD,EAAYl3nB,EAAO6uN,EAAWioa,IAG5D,IAAIhtH,GAAiB,QAAc,MAAO,CAAE37f,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mBAAqB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,yBAE9Ik+oB,EAAY,IAAIpK,GAAc,CAC9Bn6jB,KAAM,SACNr7D,KAAM,OACN1Q,MAAO,CAAEk5C,YAAavpD,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAmB,MAC9Esgc,UAAW,GACXlC,WAAY,gBACZyB,WAAY,CACRj1mB,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAC9CwJ,SAAU,YACV5tM,UAAU,GAEdo1T,aAAc,CACVpmS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAC9CwJ,SAAU,aAEdg2b,eAAe,KAEfj/mB,IAAU,QAAkBA,EAAKy5gB,QAAU,QAAkBz5gB,EAAKyyH,QAClEkzf,EAAUxmK,QAAU,WAChB3+c,YAAW,WACPmlnB,EAAUv9oB,QAAQ6B,cAAc,qBAAqBiwI,WAAa,QAAkBl6G,EAAKy5gB,OAAqB,QAAkBz5gB,EAAKyyH,MAAoB,GAAZzyH,EAAKyyH,KAAjDzyH,EAAKy5gB,IAC1G,GACJ,EACAksG,EAAUxnV,UAAY,WAClBwnV,EAAUl3oB,MAAQk3oB,EAAU1I,SAAS/igB,SACzC,GAEJyrgB,EAAUp0c,SAAS8mV,GAEnB,IAAIniD,EAAUxye,SAAS43F,iBAAiB,sBACxC,IAAS8jB,EAAI,EAAGA,EAAI82X,EAAQ1te,OAAQ42G,IAChC82X,EAAQ92X,GAAGhxG,MAAMwjB,QAAU,OAQ/B,GANKoO,GAAiB,aAATja,IACT4/nB,EAAU7I,gBAAiB,GAE/B93oB,KAAKmgpB,eAAeQ,EAAWttH,GAC/BstH,EAAUC,cAAgB5gpB,KAAK6gpB,iBAAiBlmnB,KAAK36B,KAAM2gpB,GAC3DF,EAAW/8oB,YAAY2vhB,GACnBr4f,EAAM,CASN,GARA2lnB,EAAUl3oB,OAAS,QAAkBuxB,EAAKy5gB,OAAqB,QAAkBz5gB,EAAKyyH,MAAoB,GAAZzyH,EAAKyyH,KAAjDzyH,EAAKy5gB,KACjCz0iB,KAAK8gpB,oBAAoB9lnB,IACP,MAAjBA,EAAK20gB,UACxB3viB,KAAK6gpB,iBAAiB7gpB,KAAKohlB,mBAEb,aAAdpmjB,EAAKinU,OACL0+S,EAAUl3oB,MAAQuxB,EAAK87gB,YAEvB97gB,EAAKw/Z,MAAO,CAEZ,IAAIumN,GAAkB,QAAc,MAAO,CAAErpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE7Gu+oB,GAAY,QAAc,MAAO,CAAEtpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBACjGw+oB,GAAa,QAAc,OAAQ,CAAEvpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,gBAC7CghpB,EAAUt9oB,YAAYu9oB,GACtBF,EAAgBr9oB,YAAYs9oB,GAC5BP,EAAW/8oB,YAAYq9oB,GACvB/gpB,KAAKkhpB,sBAAsBlmnB,EAAKw/Z,MAAOymN,EAAYD,EAAWD,EAClE,CACA,GAAI/lnB,EAAK20gB,SAAU,CACf,IAASv1b,EAAI,EAAGA,EAAIp/E,EAAK20gB,SAASnsiB,OAAQ42G,IACtCp6G,KAAK0lkB,eAAe1qiB,EAAK20gB,SAASv1b,GAAIp6G,KAAKohlB,mBAE7B,MAAdpmjB,EAAKy5gB,MAA8B,KAAdz5gB,EAAKy5gB,MAA6B,OAAdz5gB,EAAKy5gB,MAC9Cz0iB,KAAK6gpB,iBAAiB7gpB,KAAKohlB,kBAEnC,CACJ,CASA,OARAphlB,KAAKmhpB,mBAAoB,EACzBV,EAAW7koB,iBAAiB,QAAS5b,KAAKohpB,sBAAsBzmnB,KAAK36B,OACrEygpB,EAAW7koB,iBAAiB,YAAa5b,KAAKqhpB,oBAAoB1mnB,KAAK36B,OACvEygpB,EAAW7koB,iBAAiB,aAAc5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACzEygpB,EAAW7koB,iBAAiB,WAAY5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACvEygpB,EAAW7koB,iBAAiB,WAAY5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACvEqzhB,EAAez3gB,iBAAiB,WAAY5b,KAAKuhpB,kBAAkB5mnB,KAAK36B,OACxEqzhB,EAAez3gB,iBAAiB,UAAW5b,KAAKwhpB,gBAAgB7mnB,KAAK36B,OAC7DA,KAAKohlB,kBAAoB,EACrC,CACA,MAAO,EACX,EAEAo9D,EAAsB98oB,UAAU8/oB,gBAAkB,SAAU7+oB,GAMxD,KAJK,QAAkBA,EAAKyK,WAAY,QAAkBpN,KAAKmpd,UAAU+hF,iBAAiBu8B,cAAgBznkB,KAAKmpd,UAAU50X,eAAiBv0F,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAA0E,aAApEl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBAAsChzd,EAAKyK,OAAO3D,QAAUzJ,KAAKmpd,UAAU+hF,iBAAiBu8B,aAC7T9kkB,EAAKyK,OAAO4tG,SAGXh7G,KAAKmhpB,kBAML,CACD,IAAI19Y,EAAUzjQ,KACVkimB,EAAelimB,KAAKopd,cAAcqD,kBACtCjxb,YAAW,WACPioO,EAAQg+Y,qBAAqBv/C,EACjC,GAAG,IACP,MAX+B,OAAvBv/lB,EAAK48C,eAA0B58C,EAAK48C,cAAc7nB,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBACrF/0B,EAAKgX,iBACLhX,EAAKyK,OAAOqyN,OAUxB,EACA++a,EAAsB98oB,UAAU+/oB,qBAAuB,SAAU/3L,GAC7D,IAAIw2L,EAAexhpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwBgyb,GAC/F,GAAIw2L,GAAgBlgpB,KAAKmhpB,kBAAmB,CACxC,IAAIO,EAAgB,EAEhBxwK,EAAUxye,SAAS43F,iBAAiB,sBACpC46Y,EAAQ,KACRwwK,EAAgBxwK,EAAQ,GAAGtxd,wBAAwBiB,QAEvD,IAAI45Q,EAAcylX,EAAa/0jB,UAAY+0jB,EAAaxkD,UAAYgmD,EAChE1hpB,KAAKopd,cAAcmuB,eAAeqR,yBAAyBv9Z,UAAYovM,IACvEz6R,KAAKopd,cAAcmuB,eAAeqR,yBAAyBv9Z,UAAYovM,GAE3Ez6R,KAAKmhpB,mBAAoB,CAC7B,CACJ,EACA3C,EAAsB98oB,UAAUigpB,wBAA0B,SAAUpB,GAEhE,IAAIL,EAAexhpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB13B,KAAKopd,cAAcqD,mBAE9G20H,EAAoB1ilB,SAASuG,cAAc,yBAC3C28oB,EAAiB,EACrB,GAAI1B,GAAgB9+D,EAAmB,CACnCwgE,EAAiBxgE,EAAkBxhkB,wBAAwBiB,OAC3D,IAAI45Q,EAEAA,EADA8lX,EACcL,EAAa/0jB,UAAYi2f,EAAkBj2f,UAAay2jB,EAAiB,EAGzE1B,EAAa/0jB,UAAYi2f,EAAkBj2f,UAAY,GAEzEnrF,KAAKopd,cAAcmuB,eAAeqR,yBAAyBv9Z,UAAYovM,CAC3E,CACJ,EAMA+jX,EAAsB98oB,UAAUm/oB,iBAAmB,SAAUl+oB,GACzD,IACIy+kB,EACAygE,EAFA5/oB,EAAQjC,KAIR8hpB,GAAgB,QAAc,MAAO,CAAEpqnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,kBAAoB13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAAoBl8oB,UAAW,0BAC1JE,EAAKkhN,UACLu9X,EAAoBz+kB,GAGpBy+kB,EAAoBz+kB,EAAKs1oB,SAASxioB,cAAcA,cAAcA,cAAcA,cAC5EosoB,EAAiBl/oB,EAAKs1oB,SAASxioB,cAAcA,cAAc4uP,gBAAgBv/P,WAAW,IAG1F,IAAIi9oB,EAAa,IAAIxL,GAAc,CAC/Bn6jB,KAAM,SACNr7D,KAAM,OACNtX,MAAO,GACPovoB,WAAY,QACZxooB,MAAO,CAAEk5C,YAAavpD,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eAAiB,MAC5Esgc,UAAW/6oB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eAChD6/b,WAAY,CACRj1mB,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAC9CwJ,SAAU,YACV5tM,UAAU,GAEdo1T,aAAc,CACVpmS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAC9CwJ,SAAU,aAEdg2b,eAAe,IAMnB,GAJA8H,EAAWx1c,SAASu1c,GACpBA,EAActooB,UAAUjC,WAAWw2B,QAEnC/tC,KAAKmgpB,eAAe4B,EAAYD,GAC5Bn/oB,EAAKs1oB,SAAU,CACf,GAAkB,MAAdt1oB,EAAK8G,OAAgC,MAAf9G,EAAK8G,MAAe,CAE1C,GAAIzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAA0E,aAApEl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,oBAC3F31d,KAAKgipB,mBAAmBr/oB,EAAK8G,MAAO9G,EAAKszB,UAAWtzB,EAAKs1oB,SAAShqkB,WAAWA,WAAWA,WAAWA,WAAWv2C,SAG9G,IACI13B,KAAKgipB,mBAAmBr/oB,EAAK8G,MAAO9G,EAAKszB,UAAWtzB,EAAKs1oB,SAAShqkB,WAAWA,WAAWA,WAAWA,WAAWv2C,GAClH,CACA,MAAOgwC,GACH1nE,KAAKgipB,mBAAmBr/oB,EAAK8G,MAAO9G,EAAKszB,UAC7C,CAEJj2B,KAAK6znB,mBAAmBguB,EAC5B,CACgG,IAA5Fl/oB,EAAKs1oB,SAASxioB,cAAcA,cAAcA,cAAcA,cAAc0lP,mBACpD,MAAdx4P,EAAK8G,OAAgC,KAAf9G,EAAK8G,OAA+B,MAAf9G,EAAK8G,QAChD23kB,EAAkB19kB,YAAYo+oB,GAC9BtmnB,YAAW,WACPv5B,EAAM0/oB,yBAAwB,EAClC,GAAG,IAGf,MAEIvgE,EAAkB19kB,YAAYo+oB,GAC9BtmnB,YAAW,WACPv5B,EAAM0/oB,yBAAwB,EAClC,GAAG,IAEPI,EAAWnB,cAAgB5gpB,KAAKiipB,eAAetnnB,KAAK36B,KAAM+hpB,EAC9D,EAOAvD,EAAsB98oB,UAAUugpB,eAAiB,SAAUt/oB,EAAM4vI,GAC7D,IAAI6uc,EACA5rG,EAEAk3H,EACAw1C,EAWJ,GAVI3vgB,EAAQ3qI,MAAuB,KAAfjF,EAAK8G,OACrB23kB,EAAoBz+kB,EAAKs1oB,SAASxioB,cAAcA,cAAcA,cAC9Di3lB,EAAc/pmB,EAAKs1oB,SAASxioB,cAAcA,cAC1CysoB,EAAev/oB,EAAK8G,QAIpBijmB,GADAtrB,EAAoBz+kB,GACY6W,UAChC0ooB,EAAe3vgB,GAEf6uc,GAAqBsrB,EAAa,CAClCtrB,EAAkB3kiB,YAAYiwjB,GAC9B,IAAIy1C,GAAe,QAAc,MAAO,CAAEzqnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBAAmB13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,qBAC7H3+oB,KAAK2+oB,mBAAqB3+oB,KAAK2+oB,mBAAqB,EAEpD,IAAIyD,GAAkB,QAAc,MAAO,CAAE1qnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,YAAc13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAAoBl8oB,UAAW,mBAC1J2/oB,EAAgB1qnB,GAAK13B,KAAKmpd,UAAU0jB,WAAWC,aAC/C0I,EAAmBx1e,KAAKqipB,cAAcripB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAIksG,GACnFphlB,KAAKsipB,6BAA6BF,EAAiB,KAAM5sK,GACzD4sK,EAAgBxmoB,iBAAiB,YAAa5b,KAAKqhpB,oBAAoB1mnB,KAAK36B,OAC5EoipB,EAAgBxmoB,iBAAiB,aAAc5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OAC9EoipB,EAAgBxmoB,iBAAiB,QAAS5b,KAAKuipB,mBAAmB5nnB,KAAK36B,OACvEmipB,EAAavmoB,iBAAiB,WAAY5b,KAAKuhpB,kBAAkB5mnB,KAAK36B,OACtEoipB,EAAgBh5oB,MAAMilB,OAAS,MAC/B+znB,EAAgBh5oB,MAAMsoC,YAAc,QACpC0wmB,EAAgBh5oB,MAAMm4C,OAAS,KAE/B,IAAIihmB,EAAY,IAAIjM,GAAc,CAC9Bn6jB,KAAM,SACNr7D,KAAM,OACNg6nB,UAAW,GACXlC,WAAY,gBACZxooB,MAAO,CAAEk5C,YAAavpD,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eAAiB,MAC5EhxM,MAAOy4oB,EACP5H,WAAY,CACRj1mB,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAC9CwJ,SAAU,YACV5tM,UAAU,GAEdo1T,aAAc,CACVpmS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAC9CwJ,SAAU,eAGlBu+b,EAAUroK,QAAU,WAChB3+c,YAAW,WACPgnnB,EAAUp/oB,QAAQ6B,cAAc,qBAAqBiwI,UAAYgtgB,CACrE,GACJ,EACAM,EAAUrpV,UAAY,WAClBqpV,EAAU/4oB,MAAQ+4oB,EAAUvK,SAAS/igB,SACzC,EACAstgB,EAAUj2c,SAAS41c,GACnBK,EAAU5B,cAAgB5gpB,KAAKyipB,eAAe9nnB,KAAK36B,KAAMwipB,GACzDJ,EAAgB1+oB,YAAYy+oB,GAC5BC,EAAgBh5oB,MAAM8mB,YAAc,OACpCkxjB,EAAkB19kB,YAAY0+oB,GAE9BpipB,KAAKmgpB,eAAeqC,EAAWL,GAC/BC,EAAgBxmoB,iBAAiB,QAAS5b,KAAKohpB,sBAAsBzmnB,KAAK36B,OAC1EoipB,EAAgBxmoB,iBAAiB,WAAY5b,KAAK0ipB,4BAA4B/nnB,KAAK36B,OACnFA,KAAK6gpB,iBAAiBuB,EAAgB3soB,eACtCzV,KAAK2ipB,uBAAuBT,EAAcE,EAAgB1qnB,GAAI0pjB,EAAkB1pjB,GACpF,CACJ,EAEA8mnB,EAAsB98oB,UAAUgkkB,eAAiB,SAAU1qiB,EAAMylnB,EAAYmC,EAAgBlrnB,EAAImrnB,GAC7F,IAAIrtK,EACA2sK,GAAe,QAAc,MAAO,CAAEzqnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBAAmB13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,qBAC7H3+oB,KAAK2+oB,mBAAqB3+oB,KAAK2+oB,mBAAqB,EACpD,IAAImE,GAAW,QAAc,MAAO,CAAEprnB,GAAI,YAAc13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAAoBl8oB,UAAW,mBACnHmgpB,GACAE,EAASprnB,GAAKsD,EAAKk+c,UACnB1D,EAAmBx6c,EAAKy6c,SAGxBqtK,EAASprnB,GAAKsD,EAAKw3gB,UACnBh9D,EAAmBx6c,EAAKo5gB,QAE5B0uG,EAAS15oB,MAAMilB,OAAS,MACxBy0nB,EAAS15oB,MAAMsoC,YAAc,QACxB8jc,IACDA,EAAmBirK,EAAW7hpB,aAAa,WAE3CgkpB,OAC0BnkpB,IAAtBu8B,EAAKyne,aACLzigB,KAAKsipB,6BAA6BQ,EAAU9nnB,EAAKyne,aAAcjtB,GAG/Dx1e,KAAKsipB,6BAA6BQ,EAAU,KAAMttK,GAItDx1e,KAAKsipB,6BAA6BQ,EAAU9nnB,EAAKy0gB,aAAcj6D,GAEnEstK,EAASlnoB,iBAAiB,YAAa5b,KAAKqhpB,oBAAoB1mnB,KAAK36B,OACrE8ipB,EAASlnoB,iBAAiB,aAAc5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACvE8ipB,EAASlnoB,iBAAiB,QAAS5b,KAAKuipB,mBAAmB5nnB,KAAK36B,OAChEmipB,EAAavmoB,iBAAiB,WAAY5b,KAAKuhpB,kBAAkB5mnB,KAAK36B,OAEtE,IAAI+ipB,EAAU,IAAIxM,GAAc,CAC5Bn6jB,KAAM,SACNr7D,KAAM,OACNg6nB,UAAW,GACXlC,WAAY,gBACZxooB,MAAO,CAAEk5C,YAAavpD,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eAAiB,MAC5EhxM,MAAO,GACP6woB,WAAY,CACRj1mB,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAC9CwJ,SAAU,YACV5tM,UAAU,GAEdo1T,aAAc,CACVpmS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAC9CwJ,SAAU,eAsBlB,GAlBI8+b,EAAQt5oB,MADRm5oB,EACgB5nnB,EAAKw5gB,KAGLx5gB,EAAKy5gB,KAEzBsuG,EAAQ5oK,QAAU,WACd3+c,YAAW,WACPunnB,EAAQ3/oB,QAAQ6B,cAAc,qBAAqBiwI,UAAY0tgB,EAAiB5nnB,EAAOA,EAAKw5gB,KAAO,GAAKx5gB,EAAOA,EAAKy5gB,KAAO,EAC/H,GACJ,EACAsuG,EAAQ5pV,UAAY,WAChB4pV,EAAQt5oB,MAAQs5oB,EAAQ9K,SAAS/igB,SACrC,EACA6tgB,EAAQx2c,SAAS41c,GACjBW,EAASp/oB,YAAYy+oB,GACjBS,IACA5nnB,EAAKw/Z,MAAQx/Z,EAAKkS,OAElBlS,EAAKw/Z,MAAO,CAEZ,IAAIumN,GAAkB,QAAc,MAAO,CAAErpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE7Gu+oB,GAAY,QAAc,MAAO,CAAEtpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBACjGw+oB,GAAa,QAAc,OAAQ,CAAEvpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,gBAC7CghpB,EAAUt9oB,YAAYu9oB,GACtBF,EAAgBr9oB,YAAYs9oB,GAC5B8B,EAASp/oB,YAAYq9oB,GACrB/gpB,KAAKkhpB,sBAAsBlmnB,EAAKw/Z,MAAOymN,EAAYD,EAAWD,EAClE,CAIA,GAHA+B,EAAS15oB,MAAM8mB,YAAc,OAE7BlwB,KAAKmgpB,eAAe4C,EAASZ,GACzBS,EACA,GAAIC,EACApC,EAAW/8oB,YAAYo/oB,OAEtB,CAED,IAAIvkI,EAAc7/gB,SAASkuD,eAAel1B,GACtCsD,EAAK7M,SACLowf,EAAYx5gB,aAAa+9oB,EAAUvkI,EAAYz5gB,WAAWk2B,EAAK7M,WAI3Dowf,IACIA,EAAYpjR,kBAAoB,EAChCojR,EAAYx5gB,aAAa+9oB,EAAUvkI,EAAYz5gB,WAAWy5gB,EAAYpjR,kBAAoB,IAG1FslZ,EAAW/8oB,YAAYo/oB,GAIvC,MAGArC,EAAW/8oB,YAAYo/oB,GAE3BA,EAASlnoB,iBAAiB,QAAS5b,KAAKohpB,sBAAsBzmnB,KAAK36B,OACnE8ipB,EAASlnoB,iBAAiB,WAAY5b,KAAK0ipB,4BAA4B/nnB,KAAK36B,OAC5E+ipB,EAAQnC,cAAgB5gpB,KAAKyipB,eAAe9nnB,KAAK36B,KAAM+ipB,EAC3D,EAWAvE,EAAsB98oB,UAAUshpB,wBAA0B,SAAUhonB,EAAMo9M,EAAW6qa,GAEjF,IAAInuG,EAA4Bp2iB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB0gN,GAC5G,IAAK08T,EAA2B,CAE5B,IAAIkrG,EAAyBthpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAA4B0gN,GACzG4na,GACAA,EAAuBvqoB,cAAcgnC,YAAYujmB,IAErDlrG,EAA4B90iB,KAAK6/oB,oBAAoBzna,KAEjD08T,EAA0Bt1W,cAAc,GAAG8+U,YAAW,EAE9D,CACA,IAAIu2B,EAAmBn2iB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAAsB0gN,GAEjGp4O,KAAKohlB,mBAAoB,QAAc,MAAO,CAAE1pjB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,4BACxJzC,KAAKohlB,kBAAkBk/D,UAAYloa,EAAU3jN,WAAa,IAAMz0B,KAAK0+oB,cACjE1jnB,IACAh7B,KAAKohlB,kBAAkB1pjB,GAAKsD,EAAKk+c,UAAYl+c,EAAKk+c,UAAYl+c,EAAKi+c,cAEvEj5e,KAAKohlB,kBAAkBxlkB,iBAAiB,YAAa5b,KAAKwgpB,yBAAyB7lnB,KAAK36B,OAExF,IAAIygpB,GAAa,QAAc,MAAO,CAAE/onB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,eAAiB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,sBAY1I,GAXAzC,KAAK0+oB,cAAgB1+oB,KAAK0+oB,cAAgB,EAC1C1+oB,KAAKohlB,kBAAkB19kB,YAAY+8oB,GACnCzgpB,KAAKmphB,4BAA4B/wS,GAC7Bp9M,GAAQ65gB,IACJ75gB,EAAK7M,UAA8B,IAAlB6M,EAAK7M,SACtB0mhB,EAAiB9viB,aAAa/E,KAAKohlB,kBAAmBvsC,EAAiBx3hB,SAAS2d,EAAK7M,WAGrF0mhB,EAAiBnxiB,YAAY1D,KAAKohlB,oBAGtCpmjB,GAAQ65gB,EACR,GAAI75gB,EAAKg/gB,OACLh6iB,KAAKohlB,kBAAkB38kB,aAAa,OAAQ,iBAC5CzE,KAAK0gpB,qBAAqBD,EAAY,gBAAiBroa,EAAWp9M,EAAKquG,QAASruG,EAAKyne,aAAczne,EAAKy6c,aAEvG,GAAiC,WAA7Bz6c,EAAK26b,qBAAiE,UAA7B36b,EAAK26b,oBAAiC,CAEpF,IAAIutL,EAAYljpB,KAAK0gpB,qBAAqBD,EAAYzlnB,EAAK26b,oBAAqBv9O,EAAW,KAAMp9M,EAAKyne,aAAczne,EAAKy6c,QACzHz1e,KAAKohlB,kBAAkB38kB,aAAa,OAAQy+oB,GAC1B,WAAdA,IACKD,GACDjjpB,KAAKmjpB,0BAA2B/qa,EAAY,EAAIp9M,GAG5D,KACsC,eAA7BA,EAAK26b,qBACV31d,KAAKohlB,kBAAkB38kB,aAAa,OAAQ,cAC5CzE,KAAK0gpB,qBAAqBD,EAAY,aAAcroa,EAAWp9M,EAAKquG,QAASruG,EAAKyne,aAAczne,EAAKy6c,SAEnE,aAA7Bz6c,EAAK26b,qBACV36b,EAAKw5gB,KAAOx5gB,EAAKozc,YACjBpue,KAAKohlB,kBAAkB38kB,aAAa,OAAQ,YAC5CzE,KAAK0gpB,qBAAqBD,EAAY,WAAYroa,EAAWp9M,EAAKquG,QAASruG,EAAKyne,eAE9C,QAA7Bzne,EAAK26b,qBACV36b,EAAKw5gB,KAAOx5gB,EAAKozc,YACjBpue,KAAKohlB,kBAAkB38kB,aAAa,OAAQ,OAC5CzE,KAAK0gpB,qBAAqBD,EAAY,MAAOroa,EAAWp9M,EAAKquG,QAASruG,EAAKyne,gBAG3EzigB,KAAKohlB,kBAAkB38kB,aAAa,OAAQ,SACX,SAA7Bu2B,EAAK26b,oBACL31d,KAAK0gpB,qBAAqBD,EAAY,QAASroa,EAAWp9M,EAAKquG,QAASruG,EAAKyne,aAAczne,EAAKy6c,QAGhGz1e,KAAK0gpB,qBAAqBD,EAAY,QAASroa,EAAWp9M,EAAK26b,oBAAqB36b,EAAKyne,aAAczne,EAAKy6c,SAKxH,IAAI49C,GAAiB,QAAc,MAAO,CAAE37f,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mBAAqB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,yBAE9I29oB,EAAU,IAAI7J,GAAc,CAC5Bn6jB,KAAM,SACNr7D,KAAM,OACN1Q,MAAO,CAAEk5C,YAAavpD,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAmB,MAC9Esgc,UAAW,GACXlC,WAAY,gBACZyB,WAAY,CACRj1mB,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAC9CwJ,SAAU,YACV5tM,UAAU,GAEdo1T,aAAc,CACVpmS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAC9CwJ,SAAU,aAEdg2b,eAAe,IAEnBmG,EAAQ7zc,SAAS8mV,GAGjB,IADA,IAAIniD,EAAUxye,SAAS43F,iBAAiB,sBAC/B8jB,EAAI,EAAGA,EAAI82X,EAAQ1te,OAAQ42G,IAChC82X,EAAQ92X,GAAGhxG,MAAMwjB,QAAU,OAe/B,GAZAymgB,EAAez3gB,iBAAiB,WAAW,SAAUrI,GAC7C6soB,EAAQh9oB,QAAQ6B,cAAc,iBACC,KAA3BsO,EAAMkkM,WAAWhuM,MACjB22oB,EAAQh9oB,QAAQ6B,cAAc,eAAeu6L,cAAc,GAAGnpL,UAAW,EAGzE+poB,EAAQh9oB,QAAQ6B,cAAc,eAAeu6L,cAAc,GAAGnpL,UAAW,EAGrF,IACA+poB,EAAQQ,cAAgB5gpB,KAAK6gpB,iBAAiBlmnB,KAAK36B,KAAMogpB,GACzDK,EAAW/8oB,YAAY2vhB,GACnBr4f,EAAM,CAEN,GADAolnB,EAAQ32oB,MAAQuxB,EAAKw5gB,KACjBx5gB,EAAKkS,MAAO,CAEZ,IAAI6zmB,GAAkB,QAAc,MAAO,CAAErpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE7Gu+oB,GAAY,QAAc,MAAO,CAAEtpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBACjGw+oB,GAAa,QAAc,OAAQ,CAAEvpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,gBAC7CghpB,EAAUt9oB,YAAYu9oB,GACtBF,EAAgBr9oB,YAAYs9oB,GAC5BP,EAAW/8oB,YAAYq9oB,GACvB/gpB,KAAKkhpB,sBAAsBlmnB,EAAKkS,MAAO+zmB,EAAYD,EAAWD,EAClE,CACA,GAAI/lnB,EAAKgqf,SAAU,CACf,IAAS5qa,EAAI,EAAGA,EAAIp/E,EAAKgqf,SAASxhhB,OAAQ42G,IACtCp6G,KAAK0lkB,eAAe1qiB,EAAKgqf,SAAS5qa,GAAIp6G,KAAKohlB,mBAAmB,EAAM,MAAM,GAE1EpmjB,EAAKgqf,SAASxhhB,OAAS,GACvBxD,KAAK6gpB,iBAAiB7gpB,KAAKohlB,kBAEnC,CACJ,CAOA,OANAq/D,EAAW7koB,iBAAiB,QAAS5b,KAAKohpB,sBAAsBzmnB,KAAK36B,OACrEygpB,EAAW7koB,iBAAiB,YAAa5b,KAAKqhpB,oBAAoB1mnB,KAAK36B,OACvEygpB,EAAW7koB,iBAAiB,aAAc5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACzEygpB,EAAW7koB,iBAAiB,WAAY5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACvEygpB,EAAW7koB,iBAAiB,WAAY5b,KAAKshpB,qBAAqB3mnB,KAAK36B,OACvEqzhB,EAAez3gB,iBAAiB,WAAY5b,KAAKuhpB,kBAAkB5mnB,KAAK36B,OAChEA,KAAKohlB,kBAAoB,EACrC,EAEAo9D,EAAsB98oB,UAAU+gpB,eAAiB,SAAU9/oB,GACvD,IAAIougB,EAAiBpugB,EAAKS,QAAQqS,cAAciiB,GAC5CjiB,EAAgB9S,EAAKS,QAAQqS,cAAcA,cAAciiB,GACzD0rnB,EAAezgpB,EAAKS,QAAQihQ,gBAAgB9sP,WAChDvX,KAAK6znB,mBAAmBuvB,GACxBpjpB,KAAK2ipB,uBAAuBhgpB,EAAK8G,MAAOsngB,EAAgBt7f,EAAe9S,EAAKszB,UAChF,EAEAuonB,EAAsB98oB,UAAUg/oB,qBAAuB,SAAU2C,EAAoBtioB,EAAMq3N,EAAWijI,EAASonJ,EAAchtB,EAAQ++D,GACjI,IAOIh/D,EAPAigC,EAAiBz1gB,KAAKsjpB,kBAAkBvioB,GAExCwioB,GAAwB,QAAc,MAAO,CAAE7rnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAA4B0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,iCAE5J+gpB,GAAkB,QAAc,OAAQ,CAAE9rnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,oBAAuDo4O,EAAY,IAAMp4O,KAAK0+oB,gBAChI8E,EAAgBp6oB,MAAMwlB,QAAU,MAChC5uB,KAAKyjpB,kBAAkBD,EAAiB/tI,EAAgBp6J,GAMpDm6H,EAJCC,GACkBz1e,KAAKmpd,UAAU+sB,iBAAiB65I,uBAAuBt6G,EAAgBp6J,GAK9FmoS,EAAgBp6oB,MAAMolB,QAAU,MAChCg1nB,EAAgBp6oB,MAAM6/e,SAAW,OACjCs6J,EAAsB7/oB,YAAY8/oB,GAElC,IAAIE,GAAgB,QAAc,MAAO,CAAEhsnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBAAmB0gN,EAAY,IAAMp4O,KAAK0+oB,cAAej8oB,UAAW,uBAK3IihpB,EAAc3gjB,YAJb0/Z,EAI2BjtB,EAAmB,MAAQx1e,KAAK2jpB,0BAA0BlhJ,GAH1DjtB,EAAmB,MAAQx1e,KAAK4jpB,kBAKhEL,EAAsB7/oB,YAAYggpB,GAClC1jpB,KAAKy+oB,aAAez+oB,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBAAmB13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAEnG,IAAIvrH,GAAoB,QAAc,SAAU,CAAE17f,GAAI13B,KAAKy+oB,aAAch8oB,UAAW,iCAAkCq9I,MAAO,CAAE,SAAY,QAC3IszY,EAAkBhqhB,MAAMyoB,WAAa,SACrCuhgB,EAAkBhqhB,MAAMm4C,OAAS,OACjC6xe,EAAkB3uhB,aAAa,OAAQ,UACvC2uhB,EAAkB3uhB,aAAa,aAAc,eAE7C,IAAIo/oB,GAAwB,QAAc,OAAQ,CAAEnsnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAsBj1B,UAAW,6BACrH2whB,EAAkB1vhB,YAAYmgpB,GAC9BA,EAAsBz6oB,MAAMwlB,QAAU,OACtC20nB,EAAsB7/oB,YAAY0vhB,GAClCiwH,EAAmB3/oB,YAAY6/oB,GAE/B,IAAIniE,EAAoBiiE,EAAmB5toB,cAC3C,GAAI2rkB,EAAmB,CACnB,IAAI+gD,EAAWnioB,KAAKmpd,UAAU+sB,iBAAiB65I,uBAAuBt6G,EAAgBp6J,GACtF+lO,EAAkB38kB,aAAa,SAAU09nB,EAC7C,CAOA,OANKnioB,KAAK8+oB,qBACN9+oB,KAAK8jpB,2BAET9jpB,KAAK8+oB,qBAAsB,EAC3ByE,EAAsB3noB,iBAAiB,WAAY5b,KAAK+jpB,eAAeppnB,KAAK36B,OAC5EozhB,EAAkBx3gB,iBAAiB,UAAW5b,KAAKgkpB,iBAAiBrpnB,KAAK36B,OAClEy1gB,CACX,EAEA+oI,EAAsB98oB,UAAU4gpB,6BAA+B,SAAUe,EAAoB5gJ,EAAcjtB,GAEvG,IAAIyuK,GAAsB,QAAc,MAAO,CAAEvsnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,wBAA0B13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAAoBl8oB,UAAW,+BAEtKyhpB,GAAa,QAAc,MAAO,CAAExsnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,eAAiB13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAAoBl8oB,UAAW,qBAKpJyhpB,EAAWnhjB,YAJV0/Z,EAIwBjtB,EAAmB,MAAQx1e,KAAKmkpB,kCAAkC1hJ,GAHlEjtB,EAAmB,MAAQx1e,KAAK4jpB,kBAK7DK,EAAoBvgpB,YAAYwgpB,GAChClkpB,KAAKy+oB,aAAez+oB,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBAAmB13B,KAAK0+oB,cAAgB,IAAM1+oB,KAAK2+oB,mBAEnG,IAAIyF,GAAa,QAAc,SAAU,CAAE1snB,GAAI13B,KAAKy+oB,aAAch8oB,UAAW,iCAAkCq9I,MAAO,CAAE,SAAY,QACpIskgB,EAAWh7oB,MAAMyoB,WAAa,SAC9BuynB,EAAWh7oB,MAAMm4C,OAAS,OAC1B6imB,EAAW3/oB,aAAa,OAAQ,UAChC2/oB,EAAW3/oB,aAAa,aAAc,eAEtC,IAAI4/oB,GAAiB,QAAc,OAAQ,CAAE3snB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAsBj1B,UAAW,6BAC9G2hpB,EAAW1gpB,YAAY2gpB,GACvBA,EAAej7oB,MAAMwlB,QAAU,OAC/Bq1nB,EAAoBvgpB,YAAY0gpB,GAChCf,EAAmB3/oB,YAAYugpB,GAC/BA,EAAoBrooB,iBAAiB,WAAY5b,KAAK+jpB,eAAeppnB,KAAK36B,OAC1EokpB,EAAWxooB,iBAAiB,UAAW5b,KAAKgkpB,iBAAiBrpnB,KAAK36B,MACtE,EAEAw+oB,EAAsB98oB,UAAU+hpB,kBAAoB,SAAUa,EAAa7uI,EAAgB4qI,GAChE,WAAnB5qI,EACA6uI,EAAY7hpB,UAAY,8BAEA,UAAnBgzgB,EACL6uI,EAAY7hpB,UAAY,4BAEA,UAAnBgzgB,EAED6uI,EAAY7hpB,UADU,SAAtB49oB,EACwB,iCAEG,uBAAtBA,GAAoE,UAAtBA,EAC3B,kCAEG,WAAtBA,GAAwD,YAAtBA,GAAyD,SAAtBA,EAClD,mCAEG,cAAtBA,GAA2D,WAAtBA,EAClB,sCAEG,YAAtBA,EACmB,qCAGA,uCAGJ,YAAnB5qI,EAED6uI,EAAY7hpB,UADU,aAAtB49oB,GAA0D,yBAAtBA,EACZ,yCAEG,cAAtBA,GAA2D,0BAAtBA,EAClB,0CAEG,WAAtBA,GAAwD,uBAAtBA,EACf,uCAEG,SAAtBA,GAAsD,qBAAtBA,EACb,qCAEG,WAAtBA,GAAwD,uBAAtBA,EACf,uCAGA,2CAGJ,eAAnB5qI,EAED6uI,EAAY7hpB,UADU,cAAtB49oB,EACwB,gCAEG,cAAtBA,EACmB,gCAEG,kBAAtBA,EACmB,oCAGA,iCAGJ,aAAnB5qI,EACL6uI,EAAY7hpB,UAAY,+BAEA,QAAnBgzgB,GAAkD,QAAtB4qI,IACjCiE,EAAY7hpB,UAAY,oCAEhC,EAEA+7oB,EAAsB98oB,UAAUw/oB,sBAAwB,SAAUh0mB,EAAO+zmB,EAAYD,EAAWD,GAC9E,aAAV7zmB,GACA8zmB,EAAU53oB,MAAM2jB,gBAAkB,iBAClCk0nB,EAAWx+oB,UAAY,sBAER,cAAVyqC,GACL8zmB,EAAU53oB,MAAM2jB,gBAAkB,iBAClCk0nB,EAAWx+oB,UAAY,uBAER,cAAVyqC,GACL8zmB,EAAU53oB,MAAM2jB,gBAAkB,iBAClCk0nB,EAAWx+oB,UAAY,uBAER,aAAVyqC,GACL8zmB,EAAU53oB,MAAM2jB,gBAAkB,iBAClCk0nB,EAAWx+oB,UAAY,uBAGvBw+oB,EAAWx+oB,UAAY,GACvBs+oB,EAAgBtroB,cAAcgnC,YAAYskmB,GAElD,EAKAvC,EAAsB98oB,UAAUuwnB,yBAA2B,SAAUD,GAEjE,IAAItoK,EAAa9+c,SAASonnB,EAAUsuB,UAAU94oB,MAAM,KAAK,IACrDqtiB,EAAmBn2iB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwBgyb,GAC/FmrF,GACAA,EAAiBp/hB,cAAcgnC,YAAYo4f,GAE/C,IAAIC,EAA4Bp2iB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,8BAChFo9gB,GACoD,IAAhDA,EAA0B35S,oBAC1B25S,EAA0B1riB,MAAMwjB,QAAU,OACtCluB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,wBAEpD13B,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,wBAAwB,GAE9Hz6M,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAiB,GACvH/7M,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAsBtuB,MAAMwjB,QAAU,QAC1F5sB,KAAKuof,6BAIrB,EAIAi2J,EAAsB98oB,UAAUoipB,yBAA2B,WAEvD9jpB,KAAK4+oB,mBAAqB,CACtB,CAAEvznB,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,SAC7C,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,mBAC7C,CAEIpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cAAetwL,MAAO,CAAC,CAAEkB,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,SAAW,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,aAAe,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cAAgB,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cAAgB,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,gBAGrW,IAAI8pc,GAAqB,QAAc,KAAM,CAAE7snB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAC/E13B,KAAKmpd,UAAU/ld,QAAQM,YAAY6gpB,GACnCvkpB,KAAKwkpB,eAAiB,IAAI,KAAQ,CAC9Bp3oB,OAAQ,IAAMpN,KAAKy+oB,aAAct0nB,MAAOnqB,KAAK4+oB,mBAC7C3vY,WAAYjvQ,KAAKykpB,sBAAsB9pnB,KAAK36B,MAC5Cg7G,OAAQh7G,KAAK0kpB,sBAAsB/pnB,KAAK36B,QAExCA,KAAKmpd,UAAUj9Q,YACflsM,KAAKwkpB,eAAet4c,WAAY,GAEpClsM,KAAKwkpB,eAAej4c,SAASg4c,GACzB,KAAQtrd,WAAaj5L,KAAKmpd,UAAUkxB,kBACpCr6e,KAAKwkpB,eAAergX,kBAAkB72E,OAAS,SAG/CttN,KAAKwkpB,eAAergX,kBAAkB72E,OAAS,WAEvD,EACAkxb,EAAsB98oB,UAAU+ipB,sBAAwB,SAAU9hpB,GAE9D,IAAIgipB,EAEAC,EAAalmpB,SAAS43F,iBAAiB,6BAC3C,GAAIsujB,EACA,IAAK,IAAI73oB,EAAI,EAAGA,EAAI63oB,EAAWphpB,OAAQuJ,IACI,YAAnC63oB,EAAW73oB,GAAG3D,MAAMyoB,aACpB8ynB,EAAmBC,EAAW73oB,GAAG0I,cAAc+3S,aAIrCxtT,KAAK8gpB,oBAAoB6D,IAE3C3kpB,KAAKwkpB,eAAet9W,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAAU,GAChFz6M,KAAKwkpB,eAAet9W,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,oBAAoB,KAG1Fz6M,KAAKwkpB,eAAet9W,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UAAU,GAChFz6M,KAAKwkpB,eAAet9W,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,oBAAoB,GAElG,EAEA+jc,EAAsB98oB,UAAUgjpB,sBAAwB,SAAU/hpB,GAE9D,IAAIgipB,EAEAC,EAAalmpB,SAAS43F,iBAAiB,6BAC3C,GAAIsujB,EAAY,CACZ,IAAK,IAAI73oB,EAAI,EAAGA,EAAI63oB,EAAWphpB,OAAQuJ,IACI,YAAnC63oB,EAAW73oB,GAAG3D,MAAMyoB,aACpB8ynB,EAAmBC,EAAW73oB,GAAG0I,cAAc+3S,aAGvD,GAAI7qT,EAAKmnB,KACL,OAAQnnB,EAAKmnB,KAAKuB,MACd,KAAKrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAEtC,IAAIoqc,EAAcnmpB,SAAS43F,iBAAiB,0BAC5C,IAASvpF,EAAI,EAAGA,EAAI83oB,EAAYrhpB,OAAQuJ,IACpC83oB,EAAY93oB,GAAG3D,MAAMwjB,QAAU,OAEnC+3nB,EAAiBnld,cAAc,GAAGs4c,gBAAiB,EACnD,MACJ,KAAK93oB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,kBAClCkqc,EAAiBlvoB,cAAcA,cAAc8B,aAAeotoB,EAAiBlvoB,cAC7EzV,KAAKmpd,UAAU+sB,iBAAiB+/C,mBAIhCj2hB,KAAK8kpB,4BAA4BH,EAAiBlvoB,cAAcA,cAAekvoB,EAAiBlvoB,eAEpG,MACJ,KAAKzV,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cACtC,MACJ,KAAKz6M,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,YAClCkqc,EAAiBlvoB,cAAc+D,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC5EitnB,EAAiBlvoB,cAAc+D,UAAUqqD,SAG7C,IAAIkhlB,GAAoB,QAAc,MAAO,CAAErtnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE/Gu+oB,GAAY,QAAc,MAAO,CAAEtpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBACjGw+oB,GAAa,QAAc,OAAQ,CAAEvpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,cAAgDyC,UAAW,uBACxGu+oB,EAAU53oB,MAAM2jB,gBAAkB,iBAClCi0nB,EAAUt9oB,YAAYu9oB,GACtB8D,EAAkBrhpB,YAAYs9oB,GAC9B2D,EAAiBlvoB,cAAc/R,YAAYqhpB,GAC3C/kpB,KAAKglpB,qBAAqB,WAAYL,EAAiBlvoB,eACvD,MACJ,KAAKzV,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,aAClCkqc,EAAiBlvoB,cAAc+D,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC5EitnB,EAAiBlvoB,cAAc+D,UAAUqqD,SAG7C,IAAIohlB,GAAqB,QAAc,MAAO,CAAEvtnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAEhHyipB,GAAgB,QAAc,MAAO,CAAExtnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBAErG0ipB,GAAmB,QAAc,OAAQ,CAAEztnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,cAAgDyC,UAAW,wBAC9GyipB,EAAc97oB,MAAM2jB,gBAAkB,iBACtCm4nB,EAAcxhpB,YAAYyhpB,GAC1BF,EAAmBvhpB,YAAYwhpB,GAC/BP,EAAiBlvoB,cAAc/R,YAAYuhpB,GAC3CjlpB,KAAKglpB,qBAAqB,YAAaL,EAAiBlvoB,eACxD,MACJ,KAAKzV,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,aAClCkqc,EAAiBlvoB,cAAc+D,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC5EitnB,EAAiBlvoB,cAAc+D,UAAUqqD,SAG7C,IAAIuhlB,GAAkB,QAAc,MAAO,CAAE1tnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE7G4ipB,GAAsB,QAAc,MAAO,CAAE3tnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBAE3G6ipB,GAAmB,QAAc,OAAQ,CAAE5tnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,cAAgDyC,UAAW,wBAC9G4ipB,EAAoBj8oB,MAAM2jB,gBAAkB,iBAC5Cs4nB,EAAoB3hpB,YAAY4hpB,GAChCF,EAAgB1hpB,YAAY2hpB,GAC5BV,EAAiBlvoB,cAAc/R,YAAY0hpB,GAC3CplpB,KAAKglpB,qBAAqB,YAAaL,EAAiBlvoB,eACxD,MACJ,KAAKzV,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,YAClCkqc,EAAiBlvoB,cAAc+D,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC5EitnB,EAAiBlvoB,cAAc+D,UAAUqqD,SAG7C,IAAI0hlB,GAAoB,QAAc,MAAO,CAAE7tnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE/G+ipB,GAAwB,QAAc,MAAO,CAAE9tnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBAE7GgjpB,GAAqB,QAAc,OAAQ,CAAE/tnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,cAAgDyC,UAAW,uBAChH+ipB,EAAsBp8oB,MAAM2jB,gBAAkB,iBAC9Cy4nB,EAAsB9hpB,YAAY+hpB,GAClCF,EAAkB7hpB,YAAY8hpB,GAC9Bb,EAAiBlvoB,cAAc/R,YAAY6hpB,GAC3CvlpB,KAAKglpB,qBAAqB,WAAYL,EAAiBlvoB,eACvD,MACJ,KAAKzV,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAClCkqc,EAAiBlvoB,cAAc+D,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC5EitnB,EAAiBlvoB,cAAc+D,UAAUqqD,SAE7C7jE,KAAKglpB,qBAAqB,OAAQL,EAAiBlvoB,eAMnE,CACJ,EAEA+ooB,EAAsB98oB,UAAUsipB,iBAAmB,SAAUzwoB,EAAOmyoB,GAKhE,GAJmG,UAA/FhnpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,yBAAyBtuB,MAAMwjB,UACnF5sB,KAAKmpd,UAAU+sB,iBAAiB0E,2BAA2B56e,KAAKwkpB,gBAChExkpB,KAAKwkpB,eAAelykB,KAAK/+D,EAAMulC,QAASvlC,EAAMslC,QAAStlC,EAAM8e,gBAE7DryB,KAAKmpd,UAAU+sB,kBAAoBl2e,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAqB,CAExF,IAAIt7B,EAAoB7hd,SAAS5K,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAoBt7B,mBACrFzsd,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAoBC,kBAAkBv7B,EAC1E,CACJ,EAEA+xL,EAAsB98oB,UAAUqipB,eAAiB,SAAUxwoB,GAGvD,IADA,IAAIsxoB,EAAcnmpB,SAAS43F,iBAAiB,0BACnCvpF,EAAI,EAAGA,EAAI83oB,EAAYrhpB,OAAQuJ,IACpC83oB,EAAY93oB,GAAG3D,MAAMwjB,QAAU,OAGnC,GADsB5sB,KAAK8gpB,oBAAoBvtoB,EAAM8e,cAAcm7R,aAE/Dj6S,EAAM8e,cAAcm7R,YAAYhuH,cAAc,GAAGs4c,gBAAiB,OAEjE,GAAIvkoB,EAAM8e,cAAc5c,cAAcA,cAAe,CACtD,IAAIgjiB,EAAWz4iB,KAAK2lpB,wBAAwBpyoB,EAAM8e,cAAc5c,cAAcA,cAAciiB,IAC5F,GAAI+ghB,EAAU,CAEV,IAAI5rE,EAAa7se,KAAK4lpB,qBAAqBryoB,EAAM8e,cAAc5c,cAAcA,cAAciiB,IACvF13B,KAAKmpd,UAAU+sB,iBAAiByqB,yBAAyB,SAAU9zB,KACnE4rE,GAAW,EAEnB,CACKA,IACDlliB,EAAM8e,cAAcm7R,YAAYhuH,cAAc,GAAGs4c,gBAAiB,EAE1E,MAEIvkoB,EAAM8e,cAAcm7R,YAAYhuH,cAAc,GAAGs4c,gBAAiB,CAE1E,EAEA0G,EAAsB98oB,UAAUo/oB,oBAAsB,SAAU+E,GAE5D,IAEIh5K,EAFAk3D,EAAkB/jiB,KAAKmpd,UAAUgsB,qBAGrC,GAAI0wK,EAAa9vG,cACb,OAAO,EAGP/1iB,KAAKmpd,UAAU+sB,iBAAiBoE,4BAA8Bt6e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BACzH/O,EAAa7se,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BAEnE57e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,KAC9CrI,EAAa7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAE1D,IAAK,IAAInoe,EAAI,EAAGA,EAAIg3hB,EAAgBvgiB,OAAQuJ,IAAK,CAE7C,IAAIyniB,EAAOzQ,EAAgBh3hB,GAAGyniB,KAAOzQ,EAAgBh3hB,GAAGyniB,KAAOzQ,EAAgBh3hB,GAAGguf,MAClF,IAAyC,IAArCgpC,EAAgBh3hB,GAAGipiB,gBAA2B6vG,EAAa9ijB,cAAgByxc,GAAQzQ,EAAgBh3hB,GAAGqhe,cAAgBy3K,EAAa9ijB,aACnI,OAAO,EAEX,IAAK,IAAIqX,EAAI,EAAGA,EAAI2pb,EAAgBh3hB,GAAGi4gB,SAASxhhB,OAAQ42G,IACpD,GAAIyyX,GAAck3D,EAAgBh3hB,GAAGkse,eAAiBpM,EAAWqM,YAEf,IAA1C6qD,EAAgBh3hB,GAAGi4gB,SAAS5qa,GAAG+gY,QAAmB0qK,EAAa9ijB,cAAgBghc,EAAgBh3hB,GAAGi4gB,SAAS5qa,GAAGo6b,KAC9G,OAAO,CAIvB,CACA,OAAO,CACX,EAEAgqG,EAAsB98oB,UAAU6/oB,kBAAoB,SAAUhuoB,GAG1D,IADA,IAAIsxoB,EAAcnmpB,SAAS43F,iBAAiB,0BACnCvpF,EAAI,EAAGA,EAAI83oB,EAAYrhpB,OAAQuJ,IACpC83oB,EAAY93oB,GAAG3D,MAAMwjB,QAAU,OAGnC,GADsB5sB,KAAK8gpB,oBAAoBvtoB,EAAM8e,eAEjD9e,EAAM8e,cAAcmtK,cAAc,GAAGs4c,gBAAiB,OAErD,GAAIvkoB,EAAM8e,cAAc5c,cAAcA,cAAe,CACtD,IAAIgjiB,EAAWz4iB,KAAK2lpB,wBAAwBpyoB,EAAM8e,cAAc5c,cAAcA,cAAciiB,IAC5F,GAAI+ghB,EAAU,CAEV,IAAI5rE,EAAa7se,KAAK4lpB,qBAAqBryoB,EAAM8e,cAAc5c,cAAcA,cAAciiB,IACvF13B,KAAKmpd,UAAU+sB,iBAAiByqB,yBAAyB,SAAU9zB,KACnE4rE,GAAW,EAEnB,CACKA,MACI,QAAkBz4iB,KAAKmpd,UAAU50X,gBAAkBv0F,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAAMl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAG9zd,WAC/I7N,EAAM8e,cAAcmtK,cAAc,GAAGs4c,gBAAiB,EAGtDvkoB,EAAM8e,cAAcmtK,cAAc,GAAGs4c,gBAAiB,EAGlE,MAEIvkoB,EAAM8e,cAAcmtK,cAAc,GAAGs4c,gBAAiB,CAE9D,EAEA0G,EAAsB98oB,UAAU0/oB,sBAAwB,SAAU7toB,GAE9D,IAAIs5d,EAAa7se,KAAK4lpB,qBAAqBryoB,EAAM8e,cAAc5c,cAAciiB,IACzE+ghB,EAAWz4iB,KAAK2lpB,wBAAwBpyoB,EAAM8e,cAAc5c,cAAciiB,IAM9E,GALI+ghB,GACIz4iB,KAAKmpd,UAAU+sB,iBAAiByqB,yBAAyB,SAAU9zB,KACnE4rE,GAAW,IAGdA,EAAU,CACX,IAAIqtG,GAAmB,EAOvB,GANsB,IAAlBvyoB,EAAMslC,SAAmC,IAAlBtlC,EAAMulC,QAC7B94C,KAAK+lpB,qBAAsB,EAG3B/lpB,KAAK+lpB,qBAAsB,EAEA,6BAA3BxyoB,EAAMnG,OAAO3K,UACb,OAAO,KAIX,IADA,IAAIyX,EAAIxb,SAAS43F,iBAAiB,6BACzBvpF,EAAI,EAAGA,EAAImN,EAAE1W,OAAQuJ,IAC1BmN,EAAEnN,GAAG3D,MAAMyoB,WAAa,SAE+D,SAAvFnzB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBAAiBtuB,MAAMwjB,SAC3E5sB,KAAKmpd,UAAU+sB,iBAAiB4/C,oBAEhCvihB,EAAM8e,cAAc5c,cAAcmuD,UAAU5+D,SAAS,0BACrD8gpB,GAAmB,GAEvBvyoB,EAAM8e,cAAc9a,WAAWiC,UAAUpQ,MAAMyoB,WAAa,UAE5D,IAAIuvjB,EAAoB1ilB,SAAS43F,iBAAiB,yBAClD,GAAI8qf,EACA,IAAK,IAAIhne,EAAI,EAAGA,EAAIgne,EAAkB59kB,OAAQ42G,IAC1Cgne,EAAkBhne,GAAGx2C,UAAUC,OAAO,wBAG9CtwD,EAAM8e,cAAc5c,cAAcmuD,UAAUjoD,IAAI,wBAEhD,IAAIkpoB,EAAcnmpB,SAAS43F,iBAAiB,0BAC5C,IAASvpF,EAAI,EAAGA,EAAI83oB,EAAYrhpB,OAAQuJ,IACpC83oB,EAAY93oB,GAAG3D,MAAMwjB,QAAU,OAGnC,IAAIo5nB,EAAczyoB,EAAM8e,cAAc5c,cAAc+D,UAEhDysoB,EAAkB1yoB,EAAM8e,cAAc5c,cAC1C,GAAIuwoB,EAAa,CAEb,GADAA,EAAY58oB,MAAMwjB,QAAU,QACxBo5nB,EAAY/gpB,cAAc,sBAI1B,IAHKjF,KAAK69gB,oBACNmoI,EAAY/gpB,cAAc,sBAAsBmE,MAAMwjB,QAAU,SAE3D7f,EAAI,EAAGA,EAAIk5oB,EAAgB9qZ,kBAAmBpuP,IAAK,CAExD,IAEI0hd,EAFgBw3L,EAAgBnhpB,WAAWiI,GAEf9H,cAAc,sBAC1Cwpd,GACkC,KAA9BA,EAAYrld,MAAMwjB,UAClBo5nB,EAAY58oB,MAAMwjB,QAAU,OAC5Bo5nB,EAAY/gpB,cAAc,sBAAsBmE,MAAMwjB,QAAU,OAG5E,CAEA5sB,KAAK+lpB,sBACAD,GACD9lpB,KAAK2hpB,0BAGjB,CACA,GAA4D,IAAxDpuoB,EAAM8e,cAAc5c,cAAc0lP,kBAClC,GAAKn7P,KAAKmpd,UAAUm6C,iBAGf,CACD,IAAIvif,EAAOxN,EAAM8e,cAAc5c,cAAc7W,aAAa,QACtDoB,KAAK+lpB,qBAAgC,UAAThloB,EAC5BxN,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,GAAGs4c,gBAAiB,EAGpEvkoB,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,GAAGs4c,gBAAiB,CAE5E,MAVIvkoB,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,GAAGs4c,gBAAiB,EAY5E,IAAIoO,OAAa,EACb3yoB,GAASA,EAAM8e,eAAiB9e,EAAM8e,cAAcvtB,WAAW,KAC/DohpB,EAAa3yoB,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,IAE7DjsL,EAAM8e,eAAiB9e,EAAM8e,cAAcqF,IAAMwunB,IAE7Cr5K,GAAcA,EAAWmpE,gBACzBkwG,EAAWpO,gBAAiB,EAC5B93oB,KAAK6gpB,iBAAiBttoB,EAAM8e,gBAEhCryB,KAAKmpd,UAAU45G,kBAAkBxvjB,EAAM8e,cAAcqF,GAAInkB,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,GAAG/1L,MAAOoje,IAEvH7se,KAAKuipB,mBAAmBhvoB,GACxBA,EAAMoG,gBACV,CACJ,EAEA6koB,EAAsB98oB,UAAUghpB,4BAA8B,SAAUnvoB,GAGpE,IADA,IAAIsxoB,EAAcnmpB,SAAS43F,iBAAiB,0BACnCvpF,EAAI,EAAGA,EAAI83oB,EAAYrhpB,OAAQuJ,IACpC83oB,EAAY93oB,GAAG3D,MAAMwjB,QAAU,OAEb5sB,KAAK8gpB,oBAAoBvtoB,EAAM8e,cAAchV,SAAS,IAE1B,IAA1C9J,EAAM8e,cAAc8oO,kBACpB5nP,EAAM8e,cAAc7Y,UAAUgmL,cAAc,GAAGs4c,gBAAiB,EAGhEvkoB,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,GAAGs4c,gBAAiB,EAGnEvkoB,EAAM8e,gBACIryB,KAAK2lpB,wBAAwBpyoB,EAAM8e,cAAc5c,cAAciiB,MAE5B,IAA1CnkB,EAAM8e,cAAc8oO,kBACpB5nP,EAAM8e,cAAc7Y,UAAUgmL,cAAc,GAAGs4c,gBAAiB,EAGhEvkoB,EAAM8e,cAAcvtB,WAAW,GAAG06L,cAAc,GAAGs4c,gBAAiB,GAIpF,EAEA0G,EAAsB98oB,UAAU6gpB,mBAAqB,SAAUhvoB,GAG3D,IADA,IAAIighB,EAAgB90hB,SAAS43F,iBAAiB,yBACrCukB,EAAI,EAAGA,EAAI24a,EAAchwhB,OAAQq3G,IACtC24a,EAAc34a,GAAGj3C,UAAUC,OAAO,wBAEtC,IAAI3sD,EAAgBxY,SAASkuD,eAAer5C,EAAM8e,cAAcqF,IAChE,GAAIxgB,IACAA,EAAc0sD,UAAUC,OAAO,uBAC/B3sD,EAAc0sD,UAAUC,OAAO,uBAC/B3sD,EAAc0sD,UAAUjoD,IAAI,wBACxBpI,EAAM8e,cAAcm7R,aAChBj6S,EAAM8e,cAAcm7R,YAAY5pP,UAAU5+D,SAAS,0BAA0B,CAC7E,IAAImhpB,EAAuBznpB,SAASkuD,eAAer5C,EAAM8e,cAAcm7R,YAAY91R,IACnFyunB,EAAqBvilB,UAAUC,OAAO,uBACtCsilB,EAAqBvilB,UAAUC,OAAO,uBACtCsilB,EAAqBvilB,UAAUjoD,IAAI,uBACvC,CAGZ,EAEA6ioB,EAAsB98oB,UAAU2/oB,oBAAsB,SAAU9toB,GAC5D,IAAI2D,EAAgBxY,SAASkuD,eAAer5C,EAAM8e,cAAcqF,IAChE,GAAIxgB,IACAA,EAAc0sD,UAAUC,OAAO,wBAC/B3sD,EAAc0sD,UAAUC,OAAO,uBAC/B3sD,EAAc0sD,UAAUjoD,IAAI,uBACxBpI,EAAM8e,cAAcm7R,aAChBj6S,EAAM8e,cAAcm7R,YAAY5pP,UAAU5+D,SAAS,0BAA0B,CAC7E,IAAImhpB,EAAuBznpB,SAASkuD,eAAer5C,EAAM8e,cAAcm7R,YAAY91R,IACnFyunB,EAAqBvilB,UAAUC,OAAO,wBACtCsilB,EAAqBvilB,UAAUC,OAAO,uBACtCsilB,EAAqBvilB,UAAUjoD,IAAI,sBACvC,CAGZ,EAEA6ioB,EAAsB98oB,UAAU4/oB,qBAAuB,SAAU/toB,GAC7D,IAAI2D,EAAgBxY,SAASkuD,eAAer5C,EAAM8e,cAAcqF,IAChE,GAAIxgB,IACAA,EAAc0sD,UAAUC,OAAO,uBAC/B3sD,EAAc0sD,UAAUC,OAAO,wBAC/B3sD,EAAc0sD,UAAUjoD,IAAI,uBACxBpI,EAAM8e,cAAcm7R,aAChBj6S,EAAM8e,cAAcm7R,YAAY5pP,UAAU5+D,SAAS,0BAA0B,CAC7E,IAAImhpB,EAAuBznpB,SAASkuD,eAAer5C,EAAM8e,cAAcm7R,YAAY91R,IACnFyunB,EAAqBvilB,UAAUC,OAAO,uBACtCsilB,EAAqBvilB,UAAUC,OAAO,wBACtCsilB,EAAqBvilB,UAAUjoD,IAAI,sBACvC,CAGZ,EAMA6ioB,EAAsB98oB,UAAUirlB,UAAY,SAAUp5kB,GAElD,GAAIvT,KAAKopd,cAAcuiF,mBAAoB,CACvC,IAAIvzT,EAAYp4O,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GACzDkpf,EAAkBz8f,KAAKopd,cAAc/rS,WAAW,YAAc+6D,GAAWx4N,wBACzEkggB,EAAY9/gB,KAAKopd,cAAc+B,gBACnCnrd,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAEnD7wnB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B+2J,iBAAiB9roB,EAAMslC,QAAU4jd,EAAgB7kf,MAAQkogB,GAAYvsgB,EAAMulC,QAAU2jd,EAAgBnif,KAAOwlgB,EAAW,GAAI,GAAI1nS,EAAW,MAChMp4O,KAAKopd,cAAcuiF,oBAAqB,EACxC,IAAIy6G,EAAiB1npB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,YAIzE,IAHI,YACA0unB,EAAiBA,EAAe/ooB,SAAS,IAEzC+ooB,GAAkBA,EAAexilB,UAAU5+D,SAAS,eACpDohpB,EAAexilB,UAAUC,OAAO,mBAE/B,CACD,IAAIwilB,EAAe3npB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,gBACnE2unB,IACArmpB,KAAKmpd,UAAUj9Q,UAAYm6c,EAAa5jpB,UAAY,kDAAoD4jpB,EAAa5jpB,UAAY,0CAEzI,CACJ,CACJ,EAaA+7oB,EAAsB98oB,UAAUo+kB,YAAc,SAAUrqE,EAAgB/rD,EAAY22L,GAahF,OAVgB3hpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwBgyb,IAMxF1pd,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bu3J,oBAAoBn2L,GAH1D1pd,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BqsD,0BAA0B,KAAMjrF,EAAY+rD,EAAgB4qI,EAQ1I,EAEA7B,EAAsB98oB,UAAU8+oB,yBAA2B,SAAUjtoB,GACjE,IAAInQ,EAAUmQ,EAAM8e,cAChBomhB,EAAWz4iB,KAAK2lpB,wBAAwBvipB,EAAQs0B,IACpD,GAAI+ghB,EAAU,CAEV,IAAI5rE,EAAa7se,KAAK4lpB,qBAAqBxipB,EAAQs0B,IAC/C13B,KAAKmpd,UAAU+sB,iBAAiByqB,yBAAyB,SAAU9zB,KACnE4rE,GAAW,EAEnB,CACA,IAAKA,EAAU,CACX,GAAIr1iB,EAAQwgE,UAAU5+D,SAAS,wBAAyB,CAGpD,IADA,IAAIu5gB,EAAc7/gB,SAAS43F,iBAAiB,sBACnC8jB,EAAI,EAAGA,EAAImka,EAAY/6gB,OAAQ42G,IACpCmka,EAAYnka,GAAGhxG,MAAM+mB,UAAY,OAES,IAA1C5c,EAAM8e,cAAc8oO,mBAChB5nP,EAAM8e,cAAcvtB,WAAW,GAAGG,cAAc,wBAChDsO,EAAM8e,cAAcvtB,WAAW,GAAGsE,MAAM+mB,UAAY5c,EAAM8e,cAAcvtB,WAAW,GAAG0b,aAGlG,CACA,GAA+B,6BAA3BjN,EAAMnG,OAAO3K,WAAuE,mCAA3B8Q,EAAMnG,OAAO3K,UAEtE,OADA8Q,EAAMoG,iBACC,KAGX,IAAI+vc,EAAa9+c,SAASxH,EAAQk9oB,UAAU94oB,MAAM,KAAK,IACvD,GAAKpE,EAAQwgE,UAAU5+D,SAAS,wBA+D5BhF,KAAK+lpB,qBAAsB,MA/D0B,CAErD,IAAI3kE,EAAoB1ilB,SAAS43F,iBAAiB,yBAClD,GAAI8qf,EACA,IAAShne,EAAI,EAAGA,EAAIgne,EAAkB59kB,OAAQ42G,IAC1Cgne,EAAkBhne,GAAGx2C,UAAUC,OAAO,yBAG1C06c,EAAc7/gB,SAASkuD,eAAexpD,EAAQs0B,OAG9Ch5B,SAAS43F,iBAAiB,2DAA2D1yF,SAAQ,SAAUwgpB,GAAc,OAAOA,EAAWh7oB,MAAMyoB,WAAa,QAAU,IACrI,6BAA3Bte,EAAMnG,OAAO3K,UACb8Q,EAAMnG,OAAOqI,cAAcA,cAAc8B,WAAWiC,UAAUpQ,MAAMyoB,WAAa,UAEjD,qBAA3Bte,EAAMnG,OAAO3K,WAA+D,uBAA3B8Q,EAAMnG,OAAO3K,UACnE8Q,EAAMnG,OAAOqI,cAAc+D,UAAUpQ,MAAMyoB,WAAa,UAExB,qBAA3Bte,EAAMnG,OAAO3K,YAClB8Q,EAAMnG,OAAOqI,cAAcA,cAAcA,cAAc8B,WAAWiC,UAAUpQ,MAAMyoB,WAAa,WAEnG0sf,EAAY36c,UAAUjoD,IAAI,yBAG9B,IAAI03gB,EAAiB30hB,SAAS43F,iBAAiB,0BAC/C,IAAS8jB,EAAI,EAAGA,EAAIi5a,EAAe7vhB,OAAQ42G,IACvCi5a,EAAej5a,GAAGhxG,MAAMwjB,QAAU,OAEtC,GAAI2xf,EAAa,CAEb,IAAI+nI,EAAiB/nI,EAAYt5gB,cAAc,0BAC3CqhpB,IACAA,EAAel9oB,MAAMwjB,QAAU,QAEvC,CAEA,IAAIg+b,EAAUxnd,EAAQoW,UAEtB,GADAxZ,KAAK69gB,mBAAoB,EACrBjzD,EAAQ3ld,cAAc,sBAAuB,CAC7C2ld,EAAQxhd,MAAMwjB,QAAU,QACxBg+b,EAAQ3ld,cAAc,sBAAsBmE,MAAMwjB,QAAU,QAC5D,IAAK,IAAI7f,EAAI,EAAGA,EAAI3J,EAAQ+3P,kBAAmBpuP,IAAK,CAEhD,IAEI0hd,EAFgBrrd,EAAQ0B,WAAWiI,GAEP9H,cAAc,sBAC1Cwpd,GACkC,KAA9BA,EAAYrld,MAAMwjB,SACdg+b,EAAQhnZ,UAAU5+D,SAAS,2BAC3BhF,KAAK69gB,mBAAoB,EACzBjzD,EAAQxhd,MAAMwjB,QAAU,OACxBg+b,EAAQ3ld,cAAc,sBAAsBmE,MAAMwjB,QAAU,OAI5E,CACJ,CACA5sB,KAAK+lpB,qBAAsB,EACmB,IAA1CxyoB,EAAM8e,cAAc8oO,oBACpB5nP,EAAM8e,cAAcvtB,WAAW,GAAGA,WAAW,GAAG06L,cAAc,GAAGs4c,gBAAiB,EAE1F,CAIA,IAAK93oB,KAAK+lpB,oBAAqB,CACvB/lpB,KAAKmpd,UAAU73Y,YACftxE,KAAKmpd,UAAUg0G,iBAAiB7oC,SAAS5qE,GAE7C,IAAIw5L,EAAY9/oB,EAAQxE,aAAa,QACnB,SAAdskpB,GAAsC,QAAdA,IACxBA,EAAY,OAEhBljpB,KAAK++oB,oBAAqB,EAC1B/+oB,KAAKmskB,kBAAkB/okB,EAAQs0B,GAAIwrnB,EAAWx5L,GACzC1pd,KAAK++oB,qBACN/+oB,KAAKumpB,oBAAsB,CAAE7unB,GAAIt0B,EAAQs0B,GAAIwrnB,UAAWA,EAAWx5L,WAAYA,GAEvF,CACJ,CACA1pd,KAAK+lpB,qBAAsB,CAC/B,EAEAvH,EAAsB98oB,UAAUkkpB,qBAAuB,SAAUlunB,GAE7D,GAAI13B,KAAKmpd,UAAU+sB,iBAAiBoE,4BAA8Bt6e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BACzH,OAAO57e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BAEjE,GAAI57e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC9C,OAAOl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAGpD,IAAIC,EAAuBn1e,KAAKmpd,UAAUgsB,qBAC1C,GAAIA,EACA,IAAK,IAAIpoe,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAC7C,GAAIooe,EAAqBpoe,GAAGkse,cAAiB9D,EAAqBpoe,GAAGkse,eAAiBvhd,EAAK,CACvF,GAAoD,eAAhDy9c,EAAqBpoe,GAAG4od,oBACxB,OAAOwf,EAAqBpoe,GAG5Booe,EAAuBn1e,KAAKmpd,UAAU+rB,YACtC,IAAK,IAAI96X,EAAI,EAAGA,EAAI+6X,EAAqB3xe,OAAQ42G,IAC7C,GAAI+6X,EAAqB/6X,GAAG8+X,WAAc/D,EAAqB/6X,GAAG8+X,YAAcxhd,EAC5E,OAAOy9c,EAAqB/6X,EAI5C,CAGZ,EACAokiB,EAAsB98oB,UAAUikpB,wBAA0B,SAAUjunB,GAEhE,IAAIy9c,EAAuBn1e,KAAKmpd,UAAUgsB,qBAC1C,GAAIA,EAAsB,CACtB,IAAK,IAAIpoe,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAC7C,GAAIooe,EAAqBpoe,GAAGkse,cAAiB9D,EAAqBpoe,GAAGkse,eAAiBvhd,EAClF,SAAIy9c,EAAqBpoe,GAAGwoe,qBAAsBJ,EAAqBpoe,GAAGwoe,mBAAmB4F,QAQrG,OAAO,CACX,CAEI,OAAO,CAEf,EACAqjK,EAAsB98oB,UAAU8kpB,6BAA+B,WAC3D,IAAI5oI,EAAqBl/gB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,8BACzEkxd,EAA2Blqf,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,6BACnFkmf,EAAmBx0gB,MAAMuR,MAAQiue,EAAyBr+b,YAAc,IAC5E,EAKAi0lB,EAAsB98oB,UAAUu8hB,yBAA2B,SAAU7lT,GAC7Dp4O,KAAKumpB,sBAAwBvmpB,KAAK++oB,oBAC7B/+oB,KAAKumpB,oBAAoB78L,WAAa,IAAOtxO,IAE9Cp4O,KAAKmskB,kBAAkBnskB,KAAKumpB,oBAAoB7unB,GAAI13B,KAAKumpB,oBAAoBrD,UAAWljpB,KAAKumpB,oBAAoB78L,YACjH1pd,KAAKumpB,oBAAsB,KAC3BvmpB,KAAK++oB,oBAAqB,EAGtC,EACAP,EAAsB98oB,UAAUyqkB,kBAAoB,SAAUz0iB,EAAI3W,EAAM2oc,GACpE,IAAI+8L,EAAuB,YAAT1loB,EAAsB,gBAAkBA,EACvC,aAAf0loB,IACAA,EAAa,YAGjB,IAAIC,EAAqBpnpB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,gBAAkBs0R,GAIzG,GAHIzmpB,KAAKopd,cAAc4rB,kBACnB0xK,EAAqB1mpB,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,gBAAkBs0R,IAE5GC,EAAoB,CACpB,IAAIC,EAA0B/kpB,KAAK+yH,MAAM+xhB,GAErC75K,EAAa7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAEtDpse,EAAQ9I,KAAKmpd,UAAU+sB,iBACvB+B,kBAAkB0uK,EAA0Bj9L,EAAa,GAC7D,GAAIi9L,EAAwB79oB,GAGxB,IADA,IAAIupiB,EAAkBs0G,EAAwB79oB,GAAOose,YAC5Cnoe,EAAI,EAAGA,EAAIsliB,EAAgB7uiB,OAAQuJ,IAAK,CAC7C,IAAI7B,EAAkBmniB,EAAgBtliB,GAAG8zf,2BACzC,GAAIwxC,EAAgBtliB,GAAGmse,YAAcxhd,EAAI,CAKrC,GAJIm1c,GACA7se,KAAKmpd,UAAUm4C,uBAAuBz0B,EAAWqM,UAAWrM,EAAWz0P,UAAWy0P,GAEtF7se,KAAKmpd,UAAUppY,eAAe2pY,EAAa,GAC9B,eAAT3oc,EAAuB,CAEvB/gB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2B0qF,gCAAgCt7G,EAAa,GAAG,GAE3G,IAAI+f,EAASzpe,KAAKopd,cAAc/rS,WAAW,sBAAwBqsS,EAAa,IAChF1pd,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BtB,iBAAiBq5D,EAAgBtliB,GAAI08d,EAAS/f,EAAa,GACtH1pd,KAAKmpd,UAAU0jB,WAAWyN,2BAA2BsB,4BAA8By2D,EAAgBtliB,GACnG/M,KAAKmpd,UAAU0jB,WAAWyN,2BAA2ByqC,4BAA8Br7D,EAAa,EAChG1pd,KAAKmpd,UAAU0jB,WAAWyN,2BAA2B06B,gCAA+B,GAChFh1gB,KAAKmpd,UAAUsiC,eAAiBzrf,KAAKmpd,UAAUyqD,0BAC/C5zgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBw9C,iBAAkB,EAEvElpiB,KAAKmpd,UAAUsiC,cAAcC,wBAAwB2oB,sBAAsBr0gB,KAAKmpd,UAAUsiC,cAAco5B,gBAEhH,KACkB,UAAT9jgB,GACL/gB,KAAKmpd,UAAUnuW,OAAO,CAACq3b,EAAgBtliB,GAAG++L,UAAW5gM,GACrDlL,KAAKmpd,UAAU0jB,WAAWyrD,yBAEZ,WAATv3gB,GACL/gB,KAAKmpd,UAAUnuW,OAAO,CAACq3b,EAAgBtliB,GAAGmse,WAAYhue,GACtDlL,KAAKmpd,UAAU0jB,WAAWyrD,0BAG1Bt4hB,KAAKmpd,UAAUnuW,OAAO,CAACq3b,EAAgBtliB,GAAG2qB,IAAKxsB,GAC/ClL,KAAKmpd,UAAU0jB,WAAWyrD,yBAM9B,GAAa,eAATv3gB,GACA,IAAIsxhB,EAAgBtliB,GAAG4T,MAAQ0xhB,EAAgBtliB,GAAGi5B,UAE1Cy0P,EAAcz6R,KAAKopd,cAAcjxO,SAASuxO,EAAa,GAAGpvc,IAAMta,KAAKopd,cAAc+B,gBAAmBnrd,KAAKmpd,UAAU+sB,iBAAiB0wK,iBAAiBv0G,EAAgBtliB,IAAM/M,KAAKopd,cAAc+B,iBACnL,CACb,IAAI07L,GAAYpsX,EAAc,IAAIhmQ,WAElCz0B,KAAKopd,cAAcqG,gBAAgBpkY,UAAYzgF,SAASi8oB,EAC5D,MAGH,CACD,IAAIjmoB,EAAQyxhB,EAAgBtliB,GAAGi5B,OAAO1rB,IACzB,QAATyG,IACAH,EAAQyxhB,EAAgBtliB,GAAGi5B,OAAOgT,GAGtC,IAAIyhP,EACAqsX,IADArsX,EAAcz6R,KAAKopd,cAAcjxO,SAASuxO,EAAa,GAAGpvc,IAAMta,KAAKopd,cAAc+B,gBAAmB,EAAUnrd,KAAKopd,cAAc+B,iBACzG,IAAI12b,WAElCz0B,KAAKopd,cAAcqG,gBAAgBpkY,UAAYzgF,SAASk8oB,EAC5D,CACA9mpB,KAAK++oB,oBAAqB,CAC9B,CACJ,CAER,CACJ,EAEAP,EAAsB98oB,UAAUsgpB,mBAAqB,SAAU32nB,EAAMouM,EAAemzQ,GAEhF,IAAI0J,EACAv6U,EAAS/7J,KAAKmpd,UAAU+sB,iBAAiBoE,2BAe7C,GAdIv+U,GAAUA,EAAO6/U,8BACjBtF,EAAoBt2e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,6BAE/EtF,EACIA,EAAkB4C,YAActM,IAChC0J,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAIjEoB,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAE7D,QAAkBoB,IAAsB1J,IACxC0J,EAAoBt2e,KAAKmpd,UAAUgsB,qBAAqBhze,QAAO,SAAUwqe,GAAS,OAAOA,EAAMsM,eAAiBrM,CAAgB,IAAG,IAEnIA,GAAmB0J,EAAkB4C,YAActM,EACnD,IAAK,IAAI7/d,EAAI,EAAGA,EAAI/M,KAAKmpd,UAAU+rB,YAAY1xe,OAAQuJ,IACnD,GAAI6/d,IAAmB5se,KAAKmpd,UAAU+rB,YAAYnoe,GAAGmse,UAAW,CAC5D5C,EAAoBt2e,KAAKmpd,UAAU+rB,YAAYnoe,GAC/C,KACJ,CAGR,GAAIupe,EAAmB,CAEnB,IAAIioC,EAAc7/gB,SAASkuD,eAAe0pb,EAAkB4C,WAC5D,GAAIqlC,EAAa,CAEb,IAAI70D,EAGAA,EAFA60D,EAAY+hI,UAAU94oB,MAAM,KAAK,GAEpBoD,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAG1CxH,KAAKopd,cAAcqD,kBAEpC,IAAI1rc,EAAOw9f,EAAY3/gB,aAAa,QAChCw5O,EAAYsxO,EAAa,EAEzBgvB,OAAkB,EAClBquK,GAAY,EAEhB,GAA8C,aAA1CzwK,EAAkB3gB,qBAAuC31d,KAAKmpd,UAAUm6C,mBAA8B,UAATvif,GAA6B,kBAATA,GAA4B,CAC7I,IAAIimoB,GAAc,EACdp6K,GACI0J,EAAkB4C,YAActM,IAChC5se,KAAKmpd,UAAU0jB,WAAWo6K,uBAAuB57nB,EAAMuhd,GACvDo6K,GAAc,GAGjBA,IAC6C,aAA1C1wK,EAAkB3gB,qBACd2gB,EAAkBlI,cAAgB/id,IAClCrrB,KAAKk2jB,sBAAuB,EAC5Bl2jB,KAAKmpd,UAAU0jB,WAAWo6K,uBAAuB57nB,EAAMird,EAAkB4C,YAE7E5C,EAAkBlI,YAAc/id,IAGhCrrB,KAAKmpd,UAAU0jB,WAAWo6K,uBAAuB57nB,EAAMird,EAAkB4C,WACzE5C,EAAkBitB,aAAel4e,EACjCird,EAAkBykB,MAAQ1ve,GAE9BrrB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAC,GAE9D,CAQA,GAPIA,EAAkBkuB,aAAiD,KAAlCluB,EAAkBkuB,aACnD9rB,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAM,iBACvD2ua,GAAY,GAGZruK,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAMk+P,EAAkB3gB,qBAErD,OAApB+iB,GAAsE,aAA1CpC,EAAkB3gB,oBAC9C,IAAS5od,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACxC,GAAI2re,EAAgB3re,GAAGmse,YAAc5C,EAAkB4C,UAAW,CAE9D,IAAIihG,EAAepjH,EAAY2hB,EAAgB3re,IAC/C,GAAa,OAATse,GACIqtd,EAAgB3re,GAAGyniB,OAASnphB,EAwB5B,OAtBArrB,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAWrrO,EAAG2re,EAAgB3re,GAAI,sBAAuB,GAAIotkB,EAAczhG,EAAgB3re,KAC/Hupe,EAAoBoC,EAAgB3re,IAClByniB,KAAOnphB,EACrBird,EAAkBgtB,mBAClBhtB,EAAkBitB,aAAel4e,GAGrCird,EAAkBmsB,aAAezigB,KAAKoynB,iBACjC20B,EAID/mpB,KAAKknpB,0BAA0B5wK,EAAmBl+P,EAAW,iBAH7Dp4O,KAAKknpB,0BAA0B5wK,EAAmBl+P,GAKjD3e,GAAmC,KAAlBA,EAMlBz5N,KAAKmpd,UAAU05G,gBAAgBvsF,EAAkB4C,UAAW5C,EAAkBk+D,KAAMl+D,GAJpFt2e,KAAKmpd,UAAUy5G,eAAetsF,EAAkB4C,UAAW5C,EAAkBk+D,KAAMl+D,GAMhFA,CAGnB,CAGZ,CACJ,CACJ,EAMAkoK,EAAsB98oB,UAAU0wnB,eAAiB,SAAUt0nB,GAClDA,IACDA,EAAO,IAAIG,MAEf+B,KAAK0uN,UAAY,IAAI,KACrB,IAAIkS,EAAc,CAAEjpI,OAAQ33F,KAAKmpd,UAAU1rP,eAAgB18M,KAAM,YAGjE,OADe/gB,KAAK0uN,UAAUp+B,WAAW,IAAIryL,KAAKH,GAAO8iO,EAE7D,EAEA49a,EAAsB98oB,UAAUihpB,uBAAyB,SAAUt3nB,EAAM6td,EAAWzje,EAAegkN,GAE/F,IAAI68Q,EAOJ,GALIA,EADAt2e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BACvC57e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BAG3D57e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAE1C,CAEnB,IAAIqpC,EAAc7/gB,SAASkuD,eAAe0pb,EAAkB4C,WAGxD9gQ,EADaxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAC9B,EAEzBkxe,OAAkB,EAClBquK,GAAY,EACZtxK,EAASz1e,KAAKqipB,cAAc/rK,EAAmBioC,GAQnD,GAPIjoC,EAAkBkuB,aAAiD,KAAlCluB,EAAkBkuB,aACnD9rB,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAM,iBACvD2ua,GAAY,GAGZruK,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAMk+P,EAAkB3gB,qBAErD,OAApB+iB,EACA,IAAK,IAAI3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACpC2re,EAAgB3re,GAAGmse,YAAc5C,EAAkB4C,YACnD5C,EAAoBoC,EAAgB3re,IAKhD,IAAIotkB,EAAepjH,EAAYuf,GAC/B,GAAIA,EAAkB0uC,SAASxhhB,OAAS,EAAG,CAEvC,IADA,IAAI2jpB,GAAY,EACP/siB,EAAI,EAAGA,EAAIk8X,EAAkB0uC,SAASxhhB,OAAQ42G,IAC/Ck8X,EAAkB0uC,SAAS5qa,GAAG8+X,YAAcA,IAC5CiuK,GAAY,EACZ7wK,EAAkB0uC,SAAS5qa,GAAGo6b,KAAOnphB,EAErCird,EAAkB0uC,SAAS5qa,GAAGqoZ,aAAezigB,KAAKoynB,kBAI1D,IAAInikB,EAAW,CAAEipb,UAAWA,EAAWrxM,SAAUpyR,EAAe4zH,QAAS,WAAY27Y,SAAU,GAAIvvC,OAAQA,EAAQ++D,KAAMnphB,EAAMsqc,oBAAqB,GAAIzob,MAAO,GAAIongB,WAAY,GAAI7xC,aAAczigB,KAAKoynB,iBAAkB/9E,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAczigB,KAAKoynB,iBAAkB38I,OAAQA,GAAU0F,QAAQ,GACvTgsK,IACD7wK,EAAkB0uC,SAAS1uC,EAAkB0uC,SAASxhhB,QAAUysD,EAExE,MAGQA,EAAW,CAAEipb,UAAWA,EAAWrxM,SAAUpyR,EAAe4zH,QAAS,WAAY27Y,SAAU,GAAIvvC,OAAQA,EAAQ++D,KAAMnphB,EAAMsqc,oBAAqB,GAAIzob,MAAO,GAAIongB,WAAY,GAAI7xC,aAAczigB,KAAKoynB,iBAAkB/9E,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAczigB,KAAKoynB,iBAAkB38I,OAAQA,GAAU0F,QAAQ,GAC5T7E,EAAkB0uC,SAAS1uC,EAAkB0uC,SAASxhhB,QAAUysD,EAGpEjwD,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMk+P,EAAmB,0BAA2B,GAAI6jG,EAAc7jG,GAChHywK,EAID/mpB,KAAKknpB,0BAA0B5wK,EAAmBl+P,EAAW,iBAH7Dp4O,KAAKknpB,0BAA0B5wK,EAAmBl+P,EAK1D,MACsB35O,IAAlBg7N,EACAz5N,KAAKmpd,UAAU05G,gBAAgB3pF,EAAW7td,EAAMird,GAGhDt2e,KAAKmpd,UAAUy5G,eAAe1pF,EAAW7td,EAAMird,EAEvD,EAEAkoK,EAAsB98oB,UAAUsjpB,qBAAuB,SAAU35nB,EAAM65nB,GAEnE,IAAI5uK,EAOJ,GALIA,EADAt2e,KAAKmpd,UAAU0jB,WAAWyN,2BAA2BsB,4BACjC57e,KAAKmpd,UAAU0jB,WAAWyN,2BAA2BsB,4BAGrD57e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAE1C,CAEnB,IAAIqpC,EAAc7/gB,SAASkuD,eAAe0pb,EAAkB4C,WAGxD9gQ,EADaxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAC9B,EAEzBkxe,OAAkB,EAClBquK,GAAY,EACZtxK,EAAS8oC,EAAY3/gB,aAAa,UAQtC,GAPI03e,EAAkBkuB,aAAiD,KAAlCluB,EAAkBkuB,aACnD9rB,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAM,iBACvD2ua,GAAY,GAGZruK,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAMk+P,EAAkB3gB,qBAErD,OAApB+iB,EACA,IAAK,IAAI3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACpC2re,EAAgB3re,GAAGmse,YAAc5C,EAAkB4C,YACnD5C,EAAoBoC,EAAgB3re,IAKhD,IAAIotkB,EAAepjH,EAAYuf,GAC/B,GAAI4uK,EAAczvoB,cAAc8B,WAAWmgB,KAAOwtnB,EAAcxtnB,GAE5D4+c,EAAkB+9D,OAAS,CAAEnngB,MAAO7hB,EAAMiphB,WAAY,SAAU7+D,OAAQA,EAAQgtB,aAAczigB,KAAKoynB,iBAAkBg1B,QAASlC,EAAcxtnB,IAC5I4+c,EAAkBppc,MAAQ7hB,EAC1Bird,EAAkBg+D,WAAa,SAE/Bt0iB,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMk+P,EAAmB,wBAAyB,GAAI6jG,EAAc7jG,GACnHt2e,KAAKmpd,UAAU65G,yBAAyBkiF,EAAcxtnB,GAAI4+c,EAAkBk+D,KAAMl+D,EAAmBA,EAAkBppc,YAGvH,IAAK,IAAIktE,EAAI,EAAGA,EAAIk8X,EAAkB0uC,SAASxhhB,OAAQ42G,IACnD,GAAIk8X,EAAkB0uC,SAAS5qa,GAAG8+X,YAAcgsK,EAAcxtnB,GAAI,CAE9D,IAAI2vnB,EAAYtwL,EAAYuf,EAAkB0uC,SAAS5qa,IACvDk8X,EAAkB0uC,SAAS5qa,GAAGltE,MAAQ7hB,EACtCird,EAAkB0uC,SAAS5qa,GAAGk6b,WAAa,SAE3Ch+D,EAAkB0uC,SAAS5qa,GAAGi6b,OAAS,CAAEnngB,MAAO7hB,EAAMiphB,WAAY,SAAU7+D,OAAQA,EAAQgtB,aAAczigB,KAAKoynB,iBAAkBg1B,QAASlC,EAAcxtnB,IAExJ13B,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMk+P,EAAmB,wBAAyB,GAAI+wK,EAAW/wK,EAAkB0uC,SAAS5qa,IAC3Ip6G,KAAKmpd,UAAU65G,yBAAyB1sF,EAAkB0uC,SAAS5qa,GAAG8+X,UAAW5C,EAAkB0uC,SAAS5qa,GAAGo6b,KAAMl+D,EAAmBA,EAAkB0uC,SAAS5qa,GAAGltE,MAC1K,CAGH65mB,EAID/mpB,KAAKknpB,0BAA0B5wK,EAAmBl+P,EAAW,iBAH7Dp4O,KAAKknpB,0BAA0B5wK,EAAmBl+P,EAK1D,CACJ,EAOAoma,EAAsB98oB,UAAUojpB,4BAA8B,SAAUmB,EAAiBqB,GAErF,IAAIntE,EAEAotE,EAEAjxK,EAEAkxK,EAAwB9opB,SAASkuD,eAAeq5lB,EAAgBvunB,IACpE,GAAI8vnB,EAAuB,CAEvB,IACIpva,EADaxtO,SAAS48oB,EAAsBlH,UAAU94oB,MAAM,KAAK,IACxC,EACzB07oB,EAAY+C,EAAgBrnpB,aAAa,QAEzC85e,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAM8qa,GAC3D,GAAwB,OAApBxqK,EACA,IAAK,IAAI3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACpC2re,EAAgB3re,GAAGmse,YAAc+sK,EAAgBvunB,KACjD4+c,EAAoBoC,EAAgB3re,IAIhD,IAASA,EAAI,EAAGA,EAAIy6oB,EAAsBrsZ,kBAAmBpuP,IACzD,GAAIy6oB,EAAsB1ipB,WAAWiI,GAAG2qB,KAAO4vnB,EAAa5vnB,GAAI,CAC5D6vnB,EAAmBxwL,EAAYuf,GAC/B,IAAImxK,EAAiB16oB,EAAI,EACzBupe,EAAkB0uC,SAASyiI,GAAet5nB,SAAWphB,EACrDotkB,EAAepjH,EAAYuf,EAAkB0uC,SAASyiI,IAEtDznpB,KAAKmpd,UAAU25G,kBAAkBxsF,EAAkB0uC,SAASyiI,GAAevuK,UAAW5C,EAAkB0uC,SAASyiI,GAAejzG,KAAMl+D,GACtIA,EAAkB0uC,SAASt3gB,OAAO+5oB,EAAe,GACjDH,EAAazjlB,QACjB,CAGJ7jE,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMmva,EAAkB,yBAA0B,GAAIptE,EAAc7jG,GACnHt2e,KAAKknpB,0BAA0B5wK,EAAmBl+P,EACtD,CACJ,EAMAoma,EAAsB98oB,UAAUgmpB,mBAAqB,SAAU76K,GAE3D,IAAI6L,EAAkB14e,KAAK24e,eAAe9L,EAAWz0P,UAAW,KAAMy0P,EAAWlX,qBAEjF,GADA31d,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAC3B,OAApBn4I,EACA,IAAK,IAAI3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACpC2re,EAAgB3re,GAAGmse,YAAcrM,EAAWqM,YAC5CR,EAAgB3re,GAAG6hB,QAAUi+c,EAAWj+c,QACxC5uB,KAAKknpB,0BAA0BxuK,EAAgB3re,GAAI8/d,EAAWz0P,WAI9E,EAcAoma,EAAsB98oB,UAAUimpB,WAAa,SAAU96K,EAAY+6K,EAAUC,GACzE,GAAiB,wBAAbD,GACA,GAAI/6K,IAEIi7K,EAAkBpppB,SAASkuD,eAAeigb,EAAWqM,YACpC,CAEjB,IACI9gQ,EADaxtO,SAASk9oB,EAAgBxH,UAAU94oB,MAAM,KAAK,IAClC,EAEzBugpB,EAAyBhxL,EAAY8V,GACzCi7K,EAAgBvwoB,WAAWA,WAAWi2S,YAAYhuH,cAAc,GAAG/1L,MAAQo+oB,EAAerzG,KAC1F,IAAI/qiB,EAAQo+oB,EAAerzG,KAM3B,OALA3nE,EAAW2nE,KAAO/qiB,EACwB,IAAtCq+oB,EAAgB3sZ,oBAChB2sZ,EAAgBtuoB,UAAUpQ,MAAMwjB,QAAU,SAE9C5sB,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpC2va,CACX,OAGH,GAAiB,4BAAbH,GACL,GAAI/6K,EAAWm4C,SAASxhhB,OAAS,EAAG,CAEhC,IAAI+6gB,EAAc7/gB,SAASkuD,eAAeigb,EAAWqM,WACjD9gQ,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,EACnD8xD,IAGAnmS,EADiBxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAClC,GAGzBugpB,EAAyBhxL,EAAY8V,GAAzC,IAEIt6V,EAAUs6V,EAAWm4C,SAASn4C,EAAWm4C,SAASxhhB,OAAS,GAE3DwunB,EAAYtznB,SAASkuD,eAAe2lF,EAAQ2mW,WAMhD,OALI84I,GACAA,EAAUnujB,SAEdgpa,EAAag7K,EACb7npB,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpC2va,CACX,OAEC,GAAiB,0BAAbH,GACL,GAAI/6K,EAAY,CAWZ,GATI0xC,EAAc7/gB,SAASkuD,eAAeigb,EAAWqM,WACjD9gQ,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,EACnD8xD,IAGAnmS,EADiBxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAClC,GAGzBugpB,EAAyBhxL,EAAY8V,GACrCA,EAAWqM,YAAc2uK,EAAe3uK,UACxCrM,EAAWwnE,OAASwzG,EAAexzG,OACnCxnE,EAAW3/b,MAAQ26mB,EAAe36mB,MAClC2/b,EAAWynE,WAAauzG,EAAevzG,WACvCt0iB,KAAKmpd,UAAU0jB,WAAWm7K,oBAAoB9lpB,KAAK2qe,QAGnD,IAAK,IAAIzyX,EAAI,EAAGA,EAAIyyX,EAAWm4C,SAASxhhB,OAAQ42G,IAC5C,GAAIyyX,EAAWm4C,SAAS5qa,GAAG8+X,YAAc2uK,EAAe3uK,UAAW,CAC/DrM,EAAWm4C,SAAS5qa,GAAGltE,MAAQ26mB,EAAe36mB,MAC9C2/b,EAAWm4C,SAAS5qa,GAAGk6b,WAAauzG,EAAevzG,WACnDznE,EAAWm4C,SAAS5qa,GAAGi6b,OAASwzG,EAAexzG,OAC/Cr0iB,KAAKmpd,UAAU0jB,WAAWm7K,oBAAoB9lpB,KAAK2qe,EAAWm4C,SAAS5qa,IACvE,KACJ,CAIR,IAAI6tiB,EAAYvppB,SAASkuD,eAAei7lB,EAAe3uK,WAUvD,OATI+uK,EAAUzuoB,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAC3BiopB,EAAUzuoB,UAAUqqD,SAGhBoklB,EAAU1woB,WAAWiC,UAAUke,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,oBACtCiopB,EAAU1woB,WAAWiC,UAAUqqD,SAGvC7jE,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpC2va,CACX,OAEC,GAAiB,2BAAbH,GAGL,GADIrpI,EAAc7/gB,SAASkuD,eAAeigb,EAAWqM,WAQjD,OAJI9gQ,EADaxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAC9B,EAC7BxH,KAAK0lkB,eAAemiF,EAAgBtpI,GAAa,EAAM1xC,EAAWqM,WAClEl5e,KAAKmpd,UAAU0jB,WAAWm7K,oBAAoB9lpB,KAAK2lpB,GACnD7npB,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpCy0P,OAGV,GAAiB,uBAAb+6K,EAAmC,CAGpC,IAAIE,EAFR,GAAIj7K,IAEIi7K,EAAkBpppB,SAASkuD,eAAeigb,EAAWqM,YAIrD,OADA4uK,EAAgBvwoB,WAAWA,WAAWi2S,YAAYhuH,cAAc,GAAG/1L,MAAQo+oB,EAAez5K,YACnFvB,CAGnB,CACJ,EAWA2xK,EAAsB98oB,UAAUwmpB,WAAa,SAAUr7K,EAAY+6K,EAAUC,GACzE,GAAiB,wBAAbD,GAGA,GADIE,EAAkBpppB,SAASkuD,eAAeigb,EAAWqM,WACpC,CAEjB,IACI9gQ,EADaxtO,SAASk9oB,EAAgBxH,UAAU94oB,MAAM,KAAK,IAClC,EAI7B,OAHAsgpB,EAAgBvwoB,WAAWA,WAAWi2S,YAAYhuH,cAAc,GAAG/1L,MAAQoje,EAAW2nE,KACtFszG,EAAgBtuoB,UAAUpQ,MAAMwjB,QAAU,QAC1C5sB,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpCy0P,CACX,OAEC,GAAiB,4BAAb+6K,EAAwC,CAE7C,IAAIr1gB,EAAUs6V,EAAWm4C,SAASn4C,EAAWm4C,SAASxhhB,OAAS,GAC3D+6gB,EAAc7/gB,SAASkuD,eAAeigb,EAAWqM,WACrD,GAAIqlC,EAMA,OAHInmS,EADaxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAC9B,EAC7BxH,KAAK0lkB,eAAenzb,EAASgsY,GAAa,EAAM1xC,EAAWqM,WAC3Dl5e,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpCy0P,CAEf,KACK,IAAiB,0BAAb+6K,EAAsC,CAE3C,IAAIO,EAAanopB,KAAKmpd,UAAU0jB,WAAWm7K,oBAAoBzxoB,MAE/D,GADI6hO,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,EACnD07L,EAAY,CAEZ,IAAIpH,GAAkB,QAAc,MAAO,CAAErpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,mBAAqDyC,UAAW,0BAE7Gu+oB,GAAY,QAAc,MAAO,CAAEtpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,aAA+CyC,UAAW,oBACjGw+oB,GAAa,QAAc,OAAQ,CAAEvpnB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAvB13B,gBAW7C,GAVAghpB,EAAUt9oB,YAAYu9oB,GACtBF,EAAgBr9oB,YAAYs9oB,IAExBiH,EAAYvppB,SAASkuD,eAAeigb,EAAWqM,cAI/C9gQ,EADiBxtO,SAASq9oB,EAAU3H,UAAU94oB,MAAM,KAAK,IAChC,GAGzBqle,EAAWqM,YAAcivK,EAAWjvK,UAAW,CAC/Cl5e,KAAKkhpB,sBAAsBr0K,EAAW3/b,MAAO+zmB,EAAYD,EAAWD,GACpE,IAAK,IAAIh0oB,EAAI,EAAGA,EAAIk7oB,EAAU1woB,WAAW8F,SAAS7Z,OAAQuJ,IAClDk7oB,EAAU1woB,WAAW8F,SAAStQ,GAAG2qB,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBACpEuwnB,EAAU1woB,WAAW8F,SAAStQ,GAAG0I,cAAcgnC,YAAYwrmB,EAAU1woB,WAAW8F,SAAStQ,IAGjGk7oB,EAAU1woB,WAAW7T,YAAYq9oB,EACrC,MAEI,IAASh0oB,EAAI,EAAGA,EAAI8/d,EAAWm4C,SAASxhhB,OAAQuJ,IAC5C,GAAI8/d,EAAWm4C,SAASj4gB,GAAGmse,YAAcivK,EAAWjvK,UAAW,CAC3Dl5e,KAAKkhpB,sBAAsBr0K,EAAWm4C,SAASj4gB,GAAGmgC,MAAO+zmB,EAAYD,EAAWD,GAEhF,IADA,IAAImE,EAAgBxmpB,SAASkuD,eAAeu7lB,EAAWjvK,WAC9CviN,EAAM,EAAGA,EAAMuuX,EAAc7noB,SAAS7Z,OAAQmzR,IAC/CuuX,EAAc7noB,SAASs5Q,GAAKj/P,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC/DwtnB,EAAc7noB,SAASs5Q,GAAKlhR,cAAcgnC,YAAYyomB,EAAc7noB,SAASs5Q,IAGjFuuX,GACAA,EAAcxhpB,YAAYq9oB,EAElC,CAGZ,CAEA,OADA/gpB,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpCy0P,CACX,CACK,GAAiB,2BAAb+6K,EAAuC,CAC5C,IAEIK,EAFA7va,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,GAEnDw7L,EAAYvppB,SAASkuD,eAAeigb,EAAWqM,cAI/C9gQ,EADiBxtO,SAASq9oB,EAAU3H,UAAU94oB,MAAM,KAAK,IAChC,GAGzB2gpB,EAAanopB,KAAKmpd,UAAU0jB,WAAWm7K,oBAAoBzxoB,MAA/D,IAEIwxoB,EAAyBhxL,EAAY8V,GACzC,IAAS9/d,EAAI,EAAGA,EAAI8/d,EAAWm4C,SAASxhhB,OAAQuJ,IAC5C,GAAI8/d,EAAWm4C,SAASj4gB,GAAGmse,YAAcivK,EAAWjvK,UAAW,CAE3D,IAAIouK,EAAe5opB,SAASkuD,eAAeu7lB,EAAWjvK,WACtDrM,EAAWm4C,SAASt3gB,OAAOX,EAAG,GAC9Bu6oB,EAAazjlB,QACjB,CAGJ,OADA7jE,KAAKknpB,0BAA0Br6K,EAAYz0P,GACpC2va,CACX,CAIQ,IAAID,EAHP,GAAiB,uBAAbF,GACD/6K,IAEIi7K,EAAkBpppB,SAASkuD,eAAeigb,EAAWqM,YAIrD,OADA4uK,EAAgBvwoB,WAAWA,WAAWi2S,YAAYhuH,cAAc,GAAG/1L,MAAQoje,EAAWuB,YAC/EvB,CAGnB,CACJ,EAEA2xK,EAAsB98oB,UAAUwlpB,0BAA4B,SAAU5uK,EAAgB5uB,EAAYsnG,EAAWtoX,GACzG,IAAI+sU,EAAmBu7C,GAAa14E,EAAe3iB,oBAC/C2iB,EAAe0hE,QAAoC,KAA1B1hE,EAAe0hE,SACxCvkC,EAAiB,iBAGrB,IAAI/8B,EAAkB14e,KAAK24e,eAAejvB,EAAY,KAAM+rD,GAC5D,GAAwB,OAApB/8B,EAA0B,CAC1B,IAAK,IAAI3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACpCure,EAAeY,YAAcR,EAAgB3re,GAAGmse,YAChDR,EAAgB3re,GAAKure,EACrBt4e,KAAKmpd,UAAU+sB,iBAAiBy8I,2BAA2Bj6I,EAAgB3re,GAAI28c,GAC3EhhR,IACAgwS,EAAgBhre,OAAOX,EAAG,GAC1B/M,KAAKoopB,6BAA6B1vK,EAAiBhvB,KAIxC,kBAAnB+rD,EACAz1gB,KAAK64e,kBAAkBH,EAAiBhvB,EAAY,iBAGpD1pd,KAAK64e,kBAAkBH,EAAiBhvB,EAAY4uB,EAAe3iB,oBAE3E,CACJ,EAOA6oL,EAAsB98oB,UAAUyynB,sBAAwB,SAAU/7Y,EAAWr3N,GACzE,IAAI2oc,EAAatxO,EAAY,EAEzB+va,EAAanopB,KAAKmpd,UAAU0jB,WAAWw7K,oBAAoB9xoB,MAC3D4xoB,IACAnopB,KAAKgjpB,wBAAwBmF,EAAYz+L,GACzC1pd,KAAKknpB,0BAA0BiB,EAAY/va,EAAWr3N,GAE9D,EAQAy9nB,EAAsB98oB,UAAUqwnB,aAAe,SAAUllJ,EAAY9rd,EAAM2nL,GACvE,IAAI5/L,EAEAy1gB,EAAc7/gB,SAASkuD,eAAeigb,EAAWqM,WACrD,GAAIqlC,EAAa,CAMb,IAJA,IACInmS,EADaxtO,SAAS2zgB,EAAY+hI,UAAU94oB,MAAM,KAAK,IAC9B,EAEzB8gpB,EAAY/pI,EAAY9ogB,cACnB1I,EAAI,EAAGA,EAAIu7oB,EAAUntZ,kBAAmBpuP,IACzCu7oB,EAAUxjpB,WAAWiI,GAAG2qB,KAAOm1c,EAAWqM,YAC1Cpwe,EAAQiE,GAGH,UAATgU,GAA6B,UAATA,EACpBA,EAAO,QAEO,aAATA,EACLA,EAAO,WAEO,gBAATA,GAAmC,WAATA,EAC/BA,EAAO,SAEO,QAATA,IACLA,EAAO,OAGX,IAAI23d,EAAkB14e,KAAK24e,eAAevgQ,EAAW,KAAMr3N,GAC3D,GAAwB,OAApB23d,EACA,IAAS3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACxC,GAAI2re,EAAgB3re,GAAGmse,YAAcrM,EAAWqM,UAAW,CAEvD,IAAIihG,EAAepjH,EAAY2hB,EAAgB3re,IAC/C2re,EAAgB3re,GAAGohB,SAAWrlB,EAC9B9I,KAAKmpd,UAAU0jB,WAAWw7K,oBAAoBnmpB,KAAKw2e,EAAgB3re,IACtD,WAATgU,GACA/gB,KAAKknpB,0BAA0B/sE,EAAc/hW,EAAW,KAAM1vC,EAEtE,CAGZ,CACJ,EAEA81c,EAAsB98oB,UAAUi3e,eAAiB,SAAUvgQ,EAAWmhQ,EAAkBx4d,GAEpF,IAAIo0d,EAEAp0d,EADS,UAATA,GAA6B,UAATA,GAA6B,UAATA,EACjC,QAEO,gBAATA,GAAmC,WAATA,EACxB,SAEO,eAATA,EACE,aAEO,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAAiC,YAATA,GAC7E,YAATA,GAA+B,uBAATA,GAA0C,WAATA,GAA8B,WAATA,EACxE,QAEO,aAATA,GAAgC,aAATA,GAAgC,aAATA,EAC5C,WAEO,QAATA,GAA2B,QAATA,EAChB,MAGA,gBAGX,IAAIg0d,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,GAIlG,GAHI/gB,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,IAErGg0d,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACzBjse,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAa3/P,GAEvE+8P,EADA4C,EAAYjve,GACWive,EAAYjve,GAAOose,YAGnBqE,CAE/B,MAEIpE,EAAuBoE,EAE3B,OAAOpE,CACX,EAEAqpK,EAAsB98oB,UAAUm3e,kBAAoB,SAAUH,EAAiBhvB,EAAY3oc,GAEnFA,EADS,UAATA,GAA6B,UAATA,EACb,QAEO,WAATA,GAA8B,WAATA,EACnB,SAEO,eAATA,EACE,aAEO,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAAiC,YAATA,GAC7E,YAATA,GAA+B,uBAATA,GAA0C,WAATA,GAA8B,WAATA,EACxE,QAEO,aAATA,EACE,WAEO,QAATA,GAA2B,QAATA,EAChB,MAGA,gBAGX,IAAIg0d,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,GAIlG,GAHI/gB,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,IAErGg0d,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACxB/0e,KAAKopd,cAAc4rB,iBACpB11e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,GAEvF,IAAIjY,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAaruB,GACvEquB,EAAYjve,KACZive,EAAYjve,GAAOose,YAAcwD,GAErC,IAAIP,EAAwBv2e,KAAKC,UAAUk2e,GACvC/3e,KAAKopd,cAAc4rB,gBACnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,GAAQo3d,EAG/F74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,gBAAkBpxW,EAAMo3d,EAE9F,CACJ,EAEAqmK,EAAsB98oB,UAAUohgB,kBAAoB,SAAUj2B,EAAYn1c,GAEtE,IAAIq9c,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,uBAIhF,GAHInyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,wBAEnF4iH,EAIA,IAFA,IAAI/uc,EAAS6mc,EAAW7mc,OACpB+xc,EAAcn2e,KAAK+yH,MAAMogX,GACpB16X,EAAI,EAAGA,EAAI09X,EAAYv0e,OAAQ62G,IAGpC,IADA,IAAI2mZ,EAAejpB,EAAY19X,GACtBD,EAAI,EAAGA,EAAI4mZ,EAAa9rB,YAAY1xe,OAAQ42G,IACjD,GAAI29X,EAAY19X,GAAG66X,YAAY96X,GAAG8+X,YAAcrM,EAAWqM,UAAW,CAC7Dl5e,KAAKopd,cAAc4rB,iBACpB11e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,uBAGjE4lH,EADY/3e,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAa,MAG3EA,EAAY19X,GAAG66X,YAAY96X,GAAGp0E,OAAS,CAAEpuB,KAAMouB,EAAO9rB,EAAGI,IAAK0rB,EAAOgT,EAAGr+B,MAAOqrB,EAAOrrB,MAAOkG,OAAQmlB,EAAOnlB,OAAQ7I,MAAOguB,EAAOhuB,MAAOwC,OAAQwrB,EAAOxrB,SAE5J,IAAI29d,EAAwBv2e,KAAKC,UAAUk2e,GACvC/3e,KAAKopd,cAAc4rB,gBAEnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,uBAAyBgmH,EAG9F74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,sBAAuBgmH,GAEzF,KACJ,CAIhB,EAEAqmK,EAAsB98oB,UAAU0hiB,sBAAwB,WAEpD,IAAIruD,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,uBAC5EnyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,wBAIvF,IADA,IAAI+iH,EAAc,IAAIjve,MACbm0G,EAAI,EAAGA,EAAIp6G,KAAKopd,cAAcuD,UAAWvyW,IAC9C86X,EAAY96X,GAAK,GAErB,GAAI26X,IAAgB/0e,KAAKmpd,UAAUosB,mBAAmB6yF,aAElD,IADA,IAAIjzF,EAAuBvze,KAAK+yH,MAAMogX,GAC7Bhoe,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAAK,CAClD,IAAIkjD,EAAW,GACXmlb,EAAuBD,EAAqBpoe,GAChD,GAAIqoe,EAAsB,CACtB,IAAK,IAAIv6X,EAAI,EAAGu6X,EAAqBF,YAAY1xe,OAASq3G,EAAGA,IACzD76G,KAAKmpd,UAAU+sB,iBAAiB29I,mBAAmBz+I,EAAqBF,YAAYr6X,IAEpFu6X,EAAqBF,YAAYr6X,GAAG70E,OAASpkC,KAAKC,UAAU7B,KAAKmpd,UAAU0jB,WAAWvxb,UAAU85b,EAAqBF,YAAYr6X,GAAG70E,OAAQovc,EAAqBh9P,YAErKnoL,EAAWmlb,EAAqBF,WACpC,CACAA,EAAYE,EAAqBh9P,WAAanoL,CAClD,CAEJ,OAAOruD,KAAKC,UAAUqze,EAC1B,EAEAspK,EAAsB98oB,UAAU0mpB,6BAA+B,SAAU1vK,EAAiBhvB,GAEtF,IAAIqrB,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,uBAIhF,GAHInyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,wBAEnF4iH,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACxB/0e,KAAKopd,cAAc4rB,iBACpB11e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,uBAErE,IAAIrpX,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAaruB,GACvEquB,EAAYjve,KACZive,EAAYjve,GAAOose,YAAcwD,GAErC,IAAIP,EAAwBv2e,KAAKC,UAAUk2e,GACvC/3e,KAAKopd,cAAc4rB,gBACnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,uBAAyBgmH,EAG9F74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,sBAAuBgmH,EAE7F,CACJ,EAEAqmK,EAAsB98oB,UAAUyhpB,0BAA4B,SAAUz5L,EAAY4uB,GAC9E,IAAII,EAAkB14e,KAAK24e,eAAejvB,EAAY,KAAM,UACxDgvB,GACAA,EAAgBx2e,KAAKo2e,GAEzBt4e,KAAK64e,kBAAkBH,EAAiBhvB,EAAY,SACxD,EAMA80L,EAAsB98oB,UAAUkmgB,kBAAoB,SAAU1uB,EAAW7td,GAErE,IAAIy8nB,EAAkBpppB,SAASkuD,eAAessb,GAC1C4uK,IACAA,EAAgBvwoB,WAAWA,WAAWi2S,YAAYhuH,cAAc,GAAG/1L,MAAQ4hB,EAEnF,EAcAmznB,EAAsB98oB,UAAUo4jB,2BAA6B,SAAUtkB,EAAe3oE,EAAY07K,GAC9F,IAAIxnoB,EAAO/gB,KAAKwopB,mBAAmB37K,GAE/B6L,EAAkB14e,KAAK24e,eAAe9L,EAAWz0P,UAAW,KAAMr3N,GAItE,GAHIwnoB,IACA7vK,EAAkB14e,KAAKmpd,UAAU+sB,iBAAiB+jF,6BAE9B,OAApBvhF,EACA,IAAK,IAAI3re,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IAIxC,GAHIw7oB,IAAU7vK,EAAgB3re,GAAGmse,YAC7BR,EAAgB3re,GAAGmse,UAAYR,EAAgB3re,GAAGkse,cAElDP,EAAgB3re,GAAGmse,YAAcrM,EAAWqM,UAAW,CAEvD,IAAIuvK,EAAmB1xL,EAAY2hB,EAAgB3re,IACnD07oB,EAAiBvvK,UAAYs8D,EAAct8D,UAC9B,UAATn4d,GAA6B,kBAATA,GAAqC,aAATA,GAAgC,QAATA,IACvE0noB,EAAiB/wnB,GAAK89gB,EAAc99gB,IAE3B,UAAT3W,IACA0noB,EAAiB38c,SAAW0pW,EAAc99gB,IAEjC,QAAT3W,GACA0noB,EAAiBzinB,OAAO9rB,EAAIs7hB,EAAcxvgB,OAAO9rB,EACjDuuoB,EAAiBzinB,OAAOgT,EAAIw8f,EAAcxvgB,OAAOgT,IAGjDyvmB,EAAiBzinB,OAAOpuB,KAAO49hB,EAAcxvgB,OAAO9rB,EACpDuuoB,EAAiBzinB,OAAO1rB,IAAMk7hB,EAAcxvgB,OAAOgT,EACnDyvmB,EAAiBrvJ,aAAeo8C,EAAcp8C,cAElDqvJ,EAAiBj0G,KAAOi0G,EAAiBj0G,KAAOi0G,EAAiBj0G,KAAO,GACxEi0G,EAAiBzjI,SAAW,GAE5ByjI,EAAiBp0G,OAAS,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAcgmJ,EAAiBh5G,aAAch6D,OAAQgzK,EAAiBhzK,QAC7HgzK,EAAiBv7mB,MAAQ,GACzBu7mB,EAAiBn0G,WAAa,GAC9Bm0G,EAAiB/+L,WAAamjB,EAAWz0P,UACzCp4O,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiBx6D,EAAWz0P,UAAWqwa,EAAkB,gBAAkB1noB,GAC3G/gB,KAAKgjpB,wBAAwByF,EAAkB57K,EAAWz0P,UAAY,GAAG,GACrEmwa,IACAvopB,KAAKmpd,UAAU+sB,iBAAiB+jF,4BAA8B,IAElE,KACJ,CAGZ,EACAukF,EAAsB98oB,UAAU8mpB,mBAAqB,SAAU37K,GAsB3D,MApB+B,KAA3BA,EAAW23B,YACC,gBAG2B,gBAAnC33B,EAAWlX,oBACC,SAE4B,UAAnCkX,EAAWlX,qBAAsE,UAAnCkX,EAAWlX,oBAClD,QAE4B,aAAnCkX,EAAWlX,oBACJ,WAE4B,QAAnCkX,EAAWlX,oBACJ,MAGA,OAIxB,EACA6oL,EAAsB98oB,UAAUyipB,kCAAoC,SAAUrmpB,GAQ1E,MANa,KAATA,EACmBkC,KAAK4jpB,gBAAgB9lpB,GAGrBkC,KAAK4jpB,iBAGhC,EACApF,EAAsB98oB,UAAUgnpB,mBAAqB,SAAUp1iB,EAAMu/H,GAajE,OAXIv/H,GAAQ,GACK,KAATA,EACeA,EAAO,IAAMu/H,EAAU,MAGtBv/H,EAAO,GAAM,IAAMu/H,EAAU,MAIlCv/H,EAAO,IAAMu/H,EAAU,KAG9C,EACA2ra,EAAsB98oB,UAAUkipB,gBAAkB,SAAU5onB,GACxD,IAAIqzF,EAEAA,EADArzF,EACWh7B,KAAKoynB,eAAep3lB,GAGpBh7B,KAAKoynB,iBAEpB,IACIu2B,EADA7qpB,EAAO,IAAIG,KAAKowH,GAEhBo0Y,EAAe3kgB,EAAK22B,WAAWjtB,MAAM,KAAKkG,OAAO,EAAG,GAAG3J,KAAK,KAChE,GAAoD,IAAhDjG,EAAK8joB,qBAAqBp6nB,MAAM,KAAKhE,OAErCmlpB,EAAe7qpB,EAAK8joB,qBAAqBp6nB,MAAM,KAAK,GAAGA,MAAM,KAAKkG,OAAO,EAAG,GAAG3J,KAAK,KAAO,IAAMjG,EAAK8joB,qBAAqBp6nB,MAAM,KAAK,OAErI,CAED,IAAI8rG,EAAO1oG,SAAS9M,EAAK8joB,qBAAqBp6nB,MAAM,KAAK,IACrDqrO,EAAU/0O,EAAK8joB,qBAAqBp6nB,MAAM,KAAK,GACnDmhpB,EAAe3opB,KAAK0opB,mBAAmBp1iB,EAAMu/H,EACjD,CAEA,OADuB4vR,EAAe,KAAOkmJ,CAEjD,EACAnK,EAAsB98oB,UAAUiipB,0BAA4B,SAAU7lpB,GAClE,IAAIuwH,EAAW,IAAIpwH,KAAKA,KAAK02H,MAAM72H,IACnCkC,KAAK0uN,UAAY,IAAI,KAAqB1uN,KAAKmpd,UAAUr3V,QACzD,IACI82hB,EADAn7a,EAAYp/G,EAASuzgB,mBAAmB5hoB,KAAK0uN,UAAUhsC,SAU3D,OAJIkme,GAJC,QAAkBn7a,EAAUjmO,MAAM,KAAK,IAI7BimO,EAAUjmO,MAAM,KAAKkG,OAAO,EAAG,GAAG3J,KAAK,KAHvC0pO,EAAUjmO,MAAM,KAAKkG,OAAO,EAAG,GAAG3J,KAAK,KAAQ,IAAM0pO,EAAUjmO,MAAM,KAAK,GAK3E6mH,EAAS55F,WAAWjtB,MAAM,KAAKkG,OAAO,EAAG,GAAG3J,KAAK,KAC3C8kpB,KAAsBD,CAE9C,EAEApK,EAAsB98oB,UAAUmynB,mBAAqB,SAAUguB,GACvDA,EAAenqnB,KAAO13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAClDmqnB,EAAiBA,EAAer0V,aAEpC,IAAIioL,EAASosK,EAAe9+iB,YAAYv7F,MAAM,KAAK,GACnDq6oB,EAAe9+iB,YAAc0yY,EAAS,MAAQz1e,KAAK4jpB,iBACvD,EAQApF,EAAsB98oB,UAAU2wnB,6BAA+B,SAAUxlJ,EAAYi8K,EAAUC,GAE3F,IAAIlH,EACJ,GAAIh1K,EAAY,CAEZ,IAAIu0G,EAAoB1ilB,SAASkuD,eAAeigb,EAAWqM,WAC3D,GAAIkoG,EAAmB,CACnB,GAAK0nE,EAKA,CACD,IAAI/noB,EAAO/gB,KAAKwopB,mBAAmB37K,GAE/B6L,EAAkB14e,KAAK24e,eAAe9L,EAAWz0P,UAAW,KAAMr3N,GACtE,GAAuB,MAAnB23d,GAA2B7L,EAC3B,IAAK,IAAI9/d,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACpC8/d,EAAWqM,YAAcR,EAAgB3re,GAAGmse,WAExCrM,EAAW7mc,OAAO9rB,IAAMw+d,EAAgB3re,GAAGi5B,OAAOpuB,MAAQi1d,EAAW7mc,OAAOgT,IAAM0/b,EAAgB3re,GAAGi5B,OAAO1rB,KAAOuyd,EAAW7mc,OAAOnlB,SAAW63d,EAAgB3re,GAAGi5B,OAAOnlB,QAAUgsd,EAAW7mc,OAAOrrB,QAAU+9d,EAAgB3re,GAAGi5B,OAAOrrB,QAEtO86d,GADJosK,EAAiBzgE,EAAkB7pkB,WAAWA,WAAWzS,WAAW,IACxCi+F,YAAYv7F,MAAM,KAAK,GACnDq6oB,EAAe9+iB,YAAc0yY,EAAS,MAAQz1e,KAAK4jpB,mBAGZ,WAA3ClrK,EAAgB3re,GAAG4od,qBACnB31d,KAAKmpd,UAAU+sB,iBAAiBy8I,2BAA2Bj6I,EAAgB3re,GAAI8/d,EAAWz0P,UAI1G,KAxBe,CAEX,IAAIq9P,GADJosK,EAAiBzgE,EAAkB7pkB,WAAWA,WAAWzS,WAAW,IACxCi+F,YAAYv7F,MAAM,KAAK,GACnDq6oB,EAAe9+iB,YAAc0yY,EAAS,MAAQz1e,KAAK4jpB,iBACvD,CAqBImF,IACAlH,EAAiBzgE,EAAkB7pkB,WAAWA,WAAWzS,WAAW,QACpCrG,IAA5Boue,EAAW41B,gBACPhtB,EAASosK,EAAe9+iB,YAAYv7F,MAAM,KAAK,GACnDq6oB,EAAe9+iB,YAAc0yY,EAAS,MAAQz1e,KAAKmkpB,kCAAkCt3K,EAAW41B,cAG5G,CACJ,CACJ,EASA+7I,EAAsB98oB,UAAU2xiB,mCAAqC,SAAUxmE,EAAYnjB,GACvF,IAAIq+C,EACCl7B,EAAWunE,SAEZvnE,EAAWunE,OAAuD,UAA7Cp0iB,KAAKmpd,UAAUosB,mBAAmBE,OAAsBz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAU6oG,oBAAoBv8E,QAG/J,IAAI0F,EAASn7e,KAAKmpd,UAAU6oG,oBAAoB72E,OAASn7e,KAAKmpd,UAAU6oG,oBAAoB72E,OAASn7e,KAAKmpd,UAAUosB,mBAAmB4F,OAEnI2qF,EAAsB9lkB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GAC9Fk7B,EAAmB,CAEfpyC,oBAAqB,SAAU8f,OAAQ5I,EAAWunE,OAAQ0xB,oBAAqBA,EAAqBrjE,aAAc51B,EAAW4iE,aAAcpma,QAASwjW,EAAW14U,QAASqgZ,KAAM3nE,EAAW4nE,KAAM7lhB,QAASi+c,EAAWsK,QAASjqc,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAC5Qt8C,SAAU,GAAI+sB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAYA,EAAWunE,QAASC,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QAAU1qF,WAAYA,EAEzR1jb,OAAQ,CAAEpuB,KAAMi1d,EAAW1c,OAAOlvP,EAAG3mN,IAAKuyd,EAAW1c,OAAOjvP,EAAGvmN,MAAOkyd,EAAW1c,OAAO1F,MAAO5pc,OAAQgsd,EAAW1c,OAAOzF,OAAQ1yc,MAAO60d,EAAW1c,OAAO95D,MAAO77Y,OAAQqyd,EAAW1c,OAAOpF,QAC3LmuB,UAAWrM,EAAW2lE,UAAWvkhB,MAAO4+c,EAAW5+c,MACnD4ye,2BAA4B7ggB,KAAK4vG,YAAYi9X,GAC7CspE,WAAYn2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GACpD0I,mBAAoB,CAAE4F,OAAQA,GAAUumB,QAAS70B,EAAWsjJ,QAASn6E,cAAenpE,EAAWkpE,eAEnG/1iB,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiB39E,EAAYq+C,EAAkB,sBACnF,EASAy2I,EAAsB98oB,UAAUqwiB,uCAAyC,SAAUllE,EAAYnjB,GAGtFmjB,EAAWunE,SAEZvnE,EAAWunE,OAAuD,UAA7Cp0iB,KAAKmpd,UAAUosB,mBAAmBE,OAAsBz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAU6oG,oBAAoBv8E,QAG/J,IAAI0F,EAASn7e,KAAKmpd,UAAU6oG,oBAAoB72E,OAASn7e,KAAKmpd,UAAU6oG,oBAAoB72E,OAASn7e,KAAKmpd,UAAUosB,mBAAmB4F,OAEnI2qF,EAAsBj5F,EAAWvG,mBAAqBuG,EAAWvG,mBAAqBtme,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GAc9J,OAbIA,EAAW6tE,SACXv/D,EAAStO,EAAWsO,QAEL,CAEfxlB,oBAAqB,SAAU8f,OAAQ5I,EAAWunE,OAAQ0xB,oBAAqBA,EAAqBrjE,aAAc51B,EAAW4iE,aAAcpma,QAASwjW,EAAW14U,QAASqgZ,KAAM3nE,EAAW4nE,KAAM7lhB,QAASi+c,EAAWsK,QAASjqc,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAC5Qt8C,SAAU,GAAI+sB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAYA,EAAWunE,QAASC,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QAEnQpugB,OAAQ,CAAEpuB,KAAMi1d,EAAW1c,OAAOlvP,EAAG3mN,IAAKuyd,EAAW1c,OAAOjvP,EAAGvmN,MAAOkyd,EAAW1c,OAAO1F,MAAO5pc,OAAQgsd,EAAW1c,OAAOzF,OAAQ1yc,MAAO60d,EAAW1c,OAAO95D,MAAO77Y,OAAQqyd,EAAW1c,OAAOpF,QAC3LkuB,aAAcpM,EAAW2lE,UAAWvkhB,MAAO4+c,EAAW5+c,MAAOy7b,WAAYA,EACzEysF,WAAYn2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GACpD0I,mBAAoB,CAAE4F,OAAQA,GAAUumB,QAAS70B,EAAWsjJ,QAASn6E,cAAenpE,EAAWkpE,cAGvG,EAIAyoG,EAAsB98oB,UAAUwuF,MAAQ,WACpClwF,KAAK0+oB,cAAgB,EACrB1+oB,KAAK2+oB,mBAAqB,EAC1B3+oB,KAAK6+oB,sBAAuB,EAC5B7+oB,KAAK69gB,mBAAoB,EACzB79gB,KAAK8+oB,qBAAsB,EAC3B9+oB,KAAKg/oB,wBAAyB,EAC9Bh/oB,KAAKi/oB,oBAAqB,EAC1Bj/oB,KAAK08hB,sBAAuB,EACxB18hB,KAAKwkpB,gBACLxkpB,KAAKwkpB,eAAe90d,UAGxB,IAAIs5d,EAAiBtqpB,SAAS43F,iBAAiB,kCAC/C,GAAI0yjB,EACA,IAAK,IAAI5uiB,EAAI,EAAGA,EAAI4uiB,EAAexlpB,OAAQ42G,IAEvC4uiB,EAAe5uiB,GAAGv2C,SAGtB7jE,KAAKs/oB,wBACLt/oB,KAAKs/oB,uBAAuBpvjB,OAEpC,EAIAsujB,EAAsB98oB,UAAU69L,cAAgB,WAC5C,MAAO,uBACX,EASAi/c,EAAsB98oB,UAAUw2nB,2BAA6B,SAAUnwH,EAAkBnhd,GASjFA,EAPCmhd,EAIKA,EAAiBnhd,OAGdmhd,EAAiBnhd,OAFjB,CAAE1sC,EAAG,EAAG8+B,EAAG,IAJpB+ud,EAAmB,CAAEnhd,OAAQ,CAAE1sC,EAAG,EAAG8+B,EAAG,GAAK0wa,WAAY,IAC/B9ia,OAO9B,IAAI0xkB,EAAoBt4nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC1ExlJ,EAAiB5se,KAAKmpd,UAAU0jB,WAAWC,aAE3C+zB,EAA6B7ggB,KAAKmpd,UAAU6oG,oBAAoBnxD,2BAA6B7ggB,KAAKmpd,UAAU6oG,oBAAoBnxD,2BAA6B7ggB,KAAKmpd,UAAU03C,2BAC5KtrB,EAAqBv1e,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAU6oG,qBACnF8T,EAAsB9lkB,KAAKmpd,UAAU6oG,oBAAoB8T,oBAAsB9lkB,KAAKmpd,UAAU6oG,oBAAoB8T,oBAAsB9lkB,KAAKmpd,UAAUosB,mBAAmBuwF,oBAC9KvwF,EAAmB4F,SAAS4sB,EAAiB5sB,QAAS4sB,EAAiB5sB,OAEvE,IAAIiiD,EAAwB,GACxBymG,EAAc,CACd5T,oBAAqBloH,EAAiB+9D,oBAAsB/9D,EAAiB+9D,oBAAsBA,EACnGtzB,UAAW5lE,EACX6xD,UAAW,SACXwqH,gBAAiB,KACjBrzG,2BAA4B7tC,EAAiBlH,2BAA6BkH,EAAiBlH,2BAA6BA,EACxHg1C,mBAAoBtgE,EACpB6+D,OAAQrsC,EAAiBtyB,OAASsyB,EAAiBtyB,OAAS,QAC5DtlB,OAAQ,CAAElvP,EAAGr6K,EAAO1sC,EAAGgnN,EAAGt6K,EAAO5N,EAAGyxa,MAAO,GAAIC,OAAQ,GAAI/0D,KAAM/uW,EAAO1sC,EAAGm6X,IAAKztV,EAAO5N,EAAGw/kB,SAAU,CAAEv3Z,EAAGr6K,EAAO1sC,EAAGgnN,EAAGt6K,EAAO5N,GAAKskc,KAAM,CAAE5yB,OAAQ,GAAI+tK,SAAS,EAAOhuK,MAAO,KAC7K2rF,MAAO,CAAEqiF,SAAS,EAAO17E,EAAG,GAAImsG,KAAM,GAAK7rf,EAAG,EAAGy/Y,EAAG,KACpDnN,SAAU,KACV9jL,YAAaysQ,EACbpiF,WAAYnuC,EAAiBouC,WAAapuC,EAAiBouC,WAAa,KACxEwiF,mBAAoB,KACpBjumB,KAAM,UACNqrhB,eAAe,EACf2E,SAAQ3yC,EAAiB5sB,QAAS4sB,EAAiB5sB,OACnDg1I,SAASpoH,EAAiBrG,SAAUqG,EAAiBrG,QACrD+tC,aAAc,GACdgF,KAAM,GACNt9D,QAAS4wB,EAAiBn5e,QAAUm5e,EAAiBn5e,QAAU,EAC/Ds4Z,UAAW,KACXo2D,KAAM,CAAEm7I,SAAS,EAAMhuK,MAAO,EAAGC,OAAQ,GACzClwB,MAAO,GACP+5G,WAAY,GACZn9D,YAAa,KACb+xK,QAAS,KACTh1f,QAAS,cACT0vM,KAAM,MAIV,OADAu5L,EAAsB,GAAKymG,EACpB,CAAEzmG,sBAAuBA,EACpC,EAIAohH,EAAsB98oB,UAAU4hpB,kBAAoB,SAAUvioB,GAC1D,IAAI00f,EAuBJ,MAtBa,UAAT10f,GAA6B,UAATA,EACpB00f,EAAiB,QAEH,UAAT10f,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAAiC,YAATA,GAC7E,YAATA,GAA+B,uBAATA,GAA0C,WAATA,GAA8B,WAATA,EAC/E00f,EAAiB,QAEH,eAAT10f,EACL00f,EAAiB,aAEH,aAAT10f,GAAgC,aAATA,EAC5B00f,EAAiB,WAEH,WAAT10f,GAA8B,gBAATA,EAC1B00f,EAAiB,SAEH,YAAT10f,GAA+B,kBAATA,EAC3B00f,EAAiB,UAEH,QAAT10f,GAA2B,QAATA,IACvB00f,EAAiB,OAEdA,CACX,EAIA+oI,EAAsB98oB,UAAU2gpB,cAAgB,SAAUx1K,EAAYu8K,GAClE,IAAI3zK,EACJ,GAAI5I,EAAY,CACZ,IAAI9rd,EAAO8rd,EAAWlX,oBAClB8/C,EAAiBz1gB,KAAKsjpB,kBAAkBvioB,GAC5C00d,EAASz1e,KAAKmpd,UAAU+sB,iBAAiB65I,uBAAuBt6G,EAAgB10f,EACpF,MAEI00d,EAAS2zK,EAAUxqpB,aAAa,UAEpC,OAAO62e,CACX,EACO+oK,CACX,CA7iH0C,GCNtC6K,GAA+B,WAC/B,SAASA,EAAclgM,EAAWC,GAE9Bppd,KAAKi3d,UAAY,GAIjBj3d,KAAK+me,aAAe,GAKpB/me,KAAKi1iB,mBAAqB,GAI1Bj1iB,KAAK8tnB,gCAAiC,EAItC9tnB,KAAKysd,kBAAoB,GACzBzsd,KAAKmpd,UAAYA,EACjBnpd,KAAKopd,cAAgBA,CACzB,CAstBA,OAltBAigM,EAAc3npB,UAAUu+kB,QAAU,WAC9BjglB,KAAKopd,cAAc+6C,2BACnBnkgB,KAAKmpd,UAAU2zC,KAAO,KAC1B,EACAusJ,EAAc3npB,UAAUsmf,kBAAoB,SAAUt+B,GAClD,GAAI1pd,KAAKopd,cAAc01D,oBAAqB,CACxC9+gB,KAAKopd,cAAcuxD,YAAa,EAChC36gB,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EACnD,IAAIz4Y,EAAa3zJ,MAAMilY,GAA2B1pd,KAAKopd,cAAcqD,kBAAoB,EAApD/C,EACrC,GAAI1pd,KAAK+me,cAAsC,KAAtB/me,KAAK+me,aAAqB,CAC/C,IAAIi6B,EAAehhgB,KAAKsppB,OAAOlxa,GAC/Bp4O,KAAKmpd,UAAUqtB,mBAAc/3e,EAAW25O,GACxCp4O,KAAKmpd,UAAUppY,eAAeq4J,GAC9Bp4O,KAAKmpd,UAAUnuW,OAAO,CAACgmZ,EAAatpe,IAAKspe,EAAaH,4BAClD7ggB,KAAKmpd,UAAUoyB,SAAWv7e,KAAKmpd,UAAUoyB,QAAQmQ,yBACjD1rf,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB2pB,gCAA+B,GAE9E,KAAQp8U,WAAaj5L,KAAKmpd,UAAUkxB,mBAAqBr6e,KAAKmpd,UAAU6gC,eAAiBhqf,KAAKmpd,UAAUyqD,yBACxG5zgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBujF,oBAAoB,MAEjF,MAEIjvkB,KAAK+me,aAAe,GACpB/me,KAAKi3d,UAAY,GACjBj3d,KAAKopd,cAAc01D,qBAAsB,EACzC9+gB,KAAKmpd,UAAU2zC,KAAO,GAE1B98f,KAAKopd,cAAcuxD,YAAa,CACpC,CACJ,EAIA0uI,EAAc3npB,UAAU2igB,cAAgB,WACpCrkgB,KAAKk0e,cAAcl0e,KAAKi3d,WACxBj3d,KAAKi3d,UAAY,EACrB,EAOAoyL,EAAc3npB,UAAU0igB,gBAAkB,SAAUj2e,EAAUiqN,GAE3B,KAA3Bp4O,KAAKysd,mBAA4B7hd,SAAS5K,KAAKysd,qBAAuBr0O,IAEtEp4O,KAAKgof,kBAAkBp9e,SAAS5K,KAAKysd,oBACrCzsd,KAAKopd,cAAc01D,qBAAsB,EACzC9+gB,KAAKmpd,UAAU2zC,KAAO,OAE1B,IAAI90K,EAAOhoV,KAAKopd,cAAc+B,gBAC1B28D,EAAQ9nhB,KAAKopd,cAAcyxF,4BAK3B1sgB,EAFSzvC,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,GAEnEzxE,WAAW,MAC5BuvT,EAAYl2d,KAAKmpd,UAAUyjF,sBAAsB12E,UAAYl2d,KAAKmpd,UAAUyjF,sBAAsB12E,UAAY,EAE9Gtnc,EAAU5uB,KAAKmpd,UAAUyjF,sBAAsBh+gB,QAAU5uB,KAAKmpd,UAAUyjF,sBAAsBh+gB,QAAU,EAExGqnc,EAAcj2d,KAAKmpd,UAAUyjF,sBAAsB32E,YAAcj2d,KAAKmpd,UAAUyjF,sBAAsB32E,YAAc,YACnH,KAAQh9R,UAAa,KAAQA,UAAY+uJ,GAAQ,KAClD75S,EAAQk+d,aAAayb,EAAO,EAAG,EAAGA,EAAO,EAAG,GAEhD35e,EAAQ4jc,YACR5jc,EAAQghhB,SAAW,QACnBhhhB,EAAQ+ghB,QAAU,QAClB/ghB,EAAQ6jc,OAAO7jd,EAAS8we,aAAa/kf,EAAGiU,EAAS8we,aAAajmd,GAC9D7K,EAAQ8jc,OAAO9jd,EAASqve,gBAAgBtjf,EAAGiU,EAASqve,gBAAgBxkd,GACpE7K,EAAQ6lc,UAAY9d,EAAYluI,EAAO,EAAIkuI,EAAYluI,EAAOkuI,EAC9D/nb,EAAQs6d,YAAcxyC,EACtB9nb,EAAQu6d,YAAc95e,EACtBuf,EAAQu3a,SAERv3a,EAAQ8lc,IAAI9ld,EAAS8we,aAAa/kf,EAAGiU,EAAS8we,aAAajmd,EAAG,EAAO,EAAa,EAAV5+B,KAAKm5T,IAAQ,GACrFplS,EAAQ+jc,YACRlye,KAAKopd,cAAc61C,aAAe9we,EAASqve,gBAC3Cx9f,KAAKi3d,UAAU/0d,KAAKisB,EAASqve,gBAAgBtjf,EAAGiU,EAASqve,gBAAgBxkd,GACzEh5C,KAAKysd,kBAAoBr0O,EAAU3jN,UACvC,EAEA40nB,EAAc3npB,UAAUwye,cAAgB,SAAUjd,GAC9Cj3d,KAAKm0e,SAASld,EAAU,GAAIA,EAAU,IACtCj3d,KAAKo0e,SAASnd,EAAU,GAAIA,EAAU,IACtC,IAAK,IAAI18W,EAAI,EAAGA,EAAI08W,EAAUzzd,OAAQ+2G,GAAQ,EAC1Cv6G,KAAKo0e,SAASnd,EAAU18W,GAAI08W,EAAU18W,EAAI,GAElD,EACA8uiB,EAAc3npB,UAAU0ye,SAAW,SAAUl6d,EAAG8+B,IACvC,QAAkB9+B,KAAO,QAAkB8+B,KAC5Ch5C,KAAK+me,cAAgB,IAAM7sd,EAAI,IAAM8+B,EAAI,IAEjD,EACAqwmB,EAAc3npB,UAAUyye,SAAW,SAAUj6d,EAAG8+B,IACvC,QAAkB9+B,KAAO,QAAkB8+B,KAC5Ch5C,KAAK+me,cAAgB,IAAM7sd,EAAI,IAAM8+B,EAAI,IAEjD,EAMAqwmB,EAAc3npB,UAAU4npB,OAAS,SAAU5/L,GAEvC,IAGIijB,EAHAjvb,EAAgB19C,KAAKuppB,mBAIzB,GAHgBvppB,KAAKopd,cAAc+B,gBAG/Bnrd,KAAKopd,cAAc01D,oBAAqB,CACxC,IAAIlyC,EAAiB5se,KAAKmpd,UAAU0jB,WAAWC,aAC3C21B,EAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBACrEh6Y,EAAa3zJ,MAAMilY,GAA2B1pd,KAAKopd,cAAcqD,kBAAoB,EAApD/C,EACjCwM,EAAYl2d,KAAKmpd,UAAUyjF,sBAAsB12E,UAAYl2d,KAAKmpd,UAAUyjF,sBAAsB12E,UAAY,EAE9Gtnc,EAAU5uB,KAAKmpd,UAAUyjF,sBAAsBh+gB,QAAU5uB,KAAKmpd,UAAUyjF,sBAAsBh+gB,QAAU,EAExGqnc,EAAcj2d,KAAKmpd,UAAUyjF,sBAAsB32E,YAAcj2d,KAAKmpd,UAAUyjF,sBAAsB32E,YAAc,UAEpHklB,EAASn7e,KAAKmpd,UAAUyjF,sBAAsBzxD,OAASn7e,KAAKmpd,UAAUyjF,sBAAsBzxD,OAASn7e,KAAKmpd,UAAUosB,mBAAmB4F,OACvI1F,EAAuD,UAA7Cz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAsBz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUyjF,sBAAsBn3D,OAASz1e,KAAKmpd,UAAUyjF,sBAAsBn3D,OAAS,QACzM0gE,EAAan2iB,KAAKmpd,UAAUyjF,sBAAsBuJ,WAClDz0C,EAAU1hgB,KAAKmpd,UAAUyjF,sBAAsBlrC,QAE/CokE,EAAsB9lkB,KAAKmpd,UAAUyjF,sBAAsBk5B,oBAAsB9lkB,KAAKmpd,UAAUyjF,sBAAsBk5B,oBAAsB9lkB,KAAKmpd,UAAUosB,mBAAmBuwF,oBAE9KvwF,EAAqBv1e,KAAKmpd,UAAUyjF,sBAAwB5siB,KAAKmpd,UAAUyjF,sBAAwB5siB,KAAKmpd,UAAUosB,mBACtH5I,EAAQ,CAEJj1c,GAAI,MAAQ13B,KAAKopd,cAAcwxD,SAAU50e,OAAQ,CAAE9rB,EAAGwjC,EAAcxjC,EAAG8+B,EAAG0E,EAAc1E,EAAGr+B,MAAO+iC,EAAc/iC,MAAOkG,OAAQ68B,EAAc78B,QAAUu3N,UAAWA,EAAWp9M,KAAMh7B,KAAK+me,aAAcovE,WAAYA,EAClNxgF,oBAAqB,MAAO/mc,QAASA,EAASqnc,YAAaA,EAAaC,UAAWA,EAAWgjB,UAAWtM,EAAgBo4C,SAAU,GACnIvvC,OAAQA,EAAQpsW,QAAS,MAAO0xX,MAAO,GACvCs5C,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAcA,EAAchtB,OAAQA,GACzEorB,2BAA4B7ggB,KAAK4wnB,YAAY,MAAO,IAAKnuH,aAAcA,EAAcltB,mBAAoBA,EACzGmsB,QAASA,EAASokE,oBAAqBA,EAAqB9vB,eAAe,EAAOyC,SAAUt9D,GAEhG,IAAItO,EAAa7se,KAAKmpd,UAAUxtc,IAAIgxd,GAEhC3mc,EAAS,CAAEpuB,KAAM+0d,EAAM3mc,OAAO9rB,EAAGI,IAAKqyd,EAAM3mc,OAAOgT,EAAGr+B,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,QAEtGoyC,EAAW,CACXrkC,QAAS+9c,EAAM/9c,QAASqnc,YAAa0W,EAAM1W,YAAaC,UAAWyW,EAAMzW,UAAWusC,aAAc91B,EAAM81B,aACxG9nf,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,OAAQma,KAAMh7B,KAAK+me,cAEvE/me,KAAKopd,cAAcwxD,WAEnB,IAAI88G,EAAgB13nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bw3F,YAAY,MAAQnzG,EAAMv0P,UAAY,EAAIu0P,EAAMhX,qBACtH+hK,IACAh5nB,SAASkuD,eAAe8qkB,GAAehgmB,GAAKk1c,GAEhDD,EAAMuM,UAAYtM,EAElB5se,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMy0P,EAAY,WAAY,GAAIA,EAAYA,GAC7F7se,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiBjvT,EAAWu0P,EAAO,oBACnE3se,KAAKmpd,UAAUg5G,kBAAkBx1F,EAAMv0P,UAAWu0P,EAAMuM,UAAW,MAAOlzc,EAAQitB,GAC9EjzD,KAAKopd,cAAcuxD,aACnB36gB,KAAK+me,aAAe,GACpB/me,KAAKi3d,UAAY,IAErBj3d,KAAKopd,cAAc01D,qBAAsB,EACzC9+gB,KAAKmpd,UAAU2zC,KAAO,EAC1B,CACA,OAAOnwB,CACX,EAIA08K,EAAc3npB,UAAUg4e,kBAAoB,WACpC15e,KAAKopd,cAAc01D,oBACnB9+gB,KAAKgof,qBAGLhof,KAAKopd,cAAc01D,qBAAsB,EACzC9+gB,KAAKiglB,UAEb,EACAopE,EAAc3npB,UAAUgiiB,iBAAmB,WAKvC,IAHA,IAAI3uD,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,oBAE5E+iH,EAAc,IAAIjve,MACbm0G,EAAI,EAAGA,EAAIp6G,KAAKopd,cAAcuD,UAAWvyW,IAC9C86X,EAAY96X,GAAK,GAErB,GAAI26X,EAEA,IADA,IAAII,EAAuBvze,KAAK+yH,MAAMogX,GAC7Bhoe,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAAK,CAElD,IAAIkjD,EAAW,GACXmlb,EAAuBD,EAAqBpoe,GAChD,GAAIqoe,EAAsB,CACtB,IAAK,IAAIv6X,EAAI,EAAGu6X,EAAqBF,YAAY1xe,OAASq3G,EAAGA,IAAK,CAC9D76G,KAAKmpd,UAAU+sB,iBAAiB29I,mBAAmBz+I,EAAqBF,YAAYr6X,IAEpF,IAAI66X,EAAoBN,EAAqBF,YAAYr6X,GAAGo7W,YAC5Dmf,EAAqBF,YAAYr6X,GAAGo7W,YAAcr0d,KAAKC,UAAU7B,KAAKopd,cAAcilB,gBAAgBsH,WAAWD,IAC/GN,EAAqBF,YAAYr6X,GAAG70E,OAASpkC,KAAKC,UAAU7B,KAAKmpd,UAAU0jB,WAAW28K,aAAap0K,EAAqBF,YAAYr6X,GAAG70E,OAAQovc,EAAqBh9P,YAEpK,IAEIw9P,EAAS3iB,EAFQ7B,EAAgBgkB,EAAqBF,YAAYr6X,GAAG7/E,OAGzEo6c,EAAqBF,YAAYr6X,GAAG7/E,KAAOp5B,KAAKC,UAAU+ze,EAC9D,CACA3lb,EAAWmlb,EAAqBF,WACpC,CACAA,EAAYE,EAAqBh9P,WAAanoL,CAClD,CAEJ,OAAOruD,KAAKC,UAAUqze,EAC1B,EASAm0K,EAAc3npB,UAAU23e,gBAAkB,SAAU3vB,EAAY4uB,GAC5D,GAAIA,EAAgB,CAEhB,IAAII,EAAkB14e,KAAK24e,eAAejvB,EAAY,MAClDgvB,GACAA,EAAgBx2e,KAAKo2e,GAEzBt4e,KAAKyppB,qBAAqB/wK,EAAiBhvB,EAC/C,CACJ,EAEA2/L,EAAc3npB,UAAU6npB,iBAAmB,WASvC,IARA,IAAIn4K,GAAY,EACZC,GAAY,EACZC,GAAY,EACZC,GAAY,EAEZC,EAAiBpgB,EAAgBpxd,KAAK+me,cACtCgH,EAAY/te,KAAKopd,cAAc+B,gBAE1B9wW,EAAI,EAAGA,EAAIm3X,EAAehue,OAAQ62G,IAAK,CAE5C,IAAI4L,EAAMurX,EAAen3X,GACzB,IAAkB,IAAd+2X,EAEAA,EAAYnrX,EAAQ,EAEpBqrX,EAAYrrX,EAAQ,EAEpBorX,EAAYprX,EAAQ,EAEpBsrX,EAAYtrX,EAAQ,MAEnB,CAED,IAAIwtW,EAAUxtW,EAAQ,EAElBytW,EAAUztW,EAAQ,EAClBmrX,GAAY3d,IACZ2d,EAAW3d,GAEX4d,GAAY3d,IACZ2d,EAAW3d,GAEX4d,GAAY7d,IACZ6d,EAAW7d,GAEX8d,GAAY7d,IACZ6d,EAAW7d,EAEnB,CACJ,CAIA,MAAO,CAAEx5c,EAAIk3d,EAAWrD,EAAY/0b,EAAIq4b,EAAWtD,EAAYpzd,OAH1C22d,EAAWF,GAGwDrD,EAAYltd,QAF/E0wd,EAAWF,GAE8FtD,EAClI,EAQAs7K,EAAc3npB,UAAUq8hB,2BAA6B,SAAU5oD,EAAsB/8P,EAAWy+P,EAAU44I,GACtG,IAAI9iJ,EACA+8K,GAAuB,EAC3B,IAAK7yK,EACD,IAAK,IAAI3pe,EAAI,EAAGA,EAAIlN,KAAKi1iB,mBAAmBzxiB,OAAQ0J,IAChD,GAAIlN,KAAKi1iB,mBAAmB/niB,KAAOkrO,EAAW,CAC1Csxa,GAAuB,EACvB,KACJ,CAGR,GAAIv0K,KAA0Bu0K,GAAwBj6B,GAAqB,CACnEt6I,EAAqB3xe,OAAS,IAAqD,IAAhDxD,KAAKi1iB,mBAAmB1tiB,QAAQ6wO,IACnEp4O,KAAKi1iB,mBAAmB/yiB,KAAKk2O,GAEjC,IAAK,IAAI79H,EAAI,EAAGA,EAAI46X,EAAqB3xe,OAAQ+2G,IAAK,CAElD,IAAI+7X,EAAoBnB,EAAqB56X,GAC7C,GAAI+7X,EAAmB,CAEnB,IAAIt7c,EAAOs7c,EAAkBS,SACzBF,GAAY77c,IACU,iBAAX,GAAuBA,EAAKx3B,OAAS,EAC5Cw3B,EAAOk4b,EAAcl4b,GAGjBs7c,EAAkBuhE,YAAe78gB,EAAKxzB,MAAM,WAAWhE,QAAU,IAIjEw3B,EAAOk4b,EAActxd,KAAK+yH,MAAM35F,MAI5Ch7B,KAAK+me,aAAe/rc,EAEpB,IAAI2unB,EAAuB3ppB,KAAKuppB,mBAChCvppB,KAAK+me,aAAe,GACpB,IAAI6iL,EAAW,EACXC,EAAiB,EAEjB7jnB,EAASswc,EAAkBnmB,OAC3Bw5L,IACIA,EAAqB9ooB,OAAS,GAC9B+ooB,EAAW5jnB,EAAO0kb,OAAS1kb,EAAO0kb,OAAS1kb,EAAOnlB,OAClDgpoB,EAAiB7jnB,EAAO0kb,OAAS1kb,EAAO0kb,OAAS1kb,EAAOnlB,QAEnD8ooB,EAAqBhvoB,MAAQ,IAClCivoB,EAAW5jnB,EAAOykb,MAAQzkb,EAAOykb,MAAQzkb,EAAOrrB,MAChDkvoB,EAAiB7jnB,EAAOykb,MAAQzkb,EAAOykb,MAAQzkb,EAAOrrB,QAG9D,IAQI+mf,EARA1zB,GAAe,QAAkBhoc,EAAOi7L,GAAiCj7L,EAAO9rB,EAAK0voB,EAAW,EAAnD5jnB,EAAOi7L,EAAK2ob,EAAW,EACpE37K,GAAc,QAAkBjoc,EAAOk7L,GAAiCl7L,EAAOgT,EAAK4wmB,EAAW,EAAnD5jnB,EAAOk7L,EAAK0ob,EAAW,EACnEp7K,EAAexoc,EAAOykb,MAAQzkb,EAAOykb,OAASo/L,EAAiB,GAAK7jnB,EAAOrrB,OAASkvoB,EAAiB,GACrGhhW,EAAgB7iR,EAAO0kb,OAAS1kb,EAAO0kb,QAAUm/L,EAAiB,GAAK7jnB,EAAOnlB,QAAUgpoB,EAAiB,GACzG1uK,IAAS7E,EAAkBu/D,oBAAqBv/D,EAAkBu/D,mBAAmB16D,OAErF2uK,EAAmBxzK,EAAkBs/D,2BAA6Bt/D,EAAkBs/D,2BAA6B51iB,KAAK4wnB,YAAYt6I,EAAmB,OACrJ6/D,EAAan2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAc55I,GAGrDorB,EADAprB,EAAkBu/D,mBACRv/D,EAAkBu/D,mBAAmBn0C,QAGrC1hgB,KAAKmpd,UAAUyjF,sBAAsBlrC,QAE/CprB,EAAkBkiE,WAClBr9D,EAAS7E,EAAkBkiE,UAEG,cAA9BliE,EAAkBniV,SAAyD,IAA9BmiV,EAAkBa,UAC/Db,EAAkBa,QAAUb,EAAkBa,QAAU,GAG5Db,EAAkBwvF,oBAAsBxvF,EAAkB25I,oBAAsB35I,EAAkB25I,oBAAsBjwnB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCx9E,GAC5L3J,EAAQ,CAEJj1c,GAAI,MAAQ13B,KAAKopd,cAAcwxD,SAAU50e,OAAQ,CAAE9rB,EAAG8zd,EAAah1b,EAAGi1b,EAAYtzd,MAAO6zd,EAAc3td,OAAQgoS,GAAiBzwE,UAAWA,EAAWp9M,KAAMA,EAC5J26b,oBAAqB,MAAO/mc,QAAS0nd,EAAkBa,QAASlhB,YAAaqgB,EAAkBc,YAAalhB,UAAWogB,EAAkBe,UAAW6B,UAAW5C,EAAkBk8D,UAEjLxtB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsB79D,EAAkBq5D,SAAUr5D,EAAmBA,EAAkB89D,QAAS3+D,OAAQa,EAAkB89D,OAAQ0xB,oBAAqBxvF,EAAkBwvF,oBAAqBz8b,QAASitW,EAAkBniV,QAASsuW,aAAcnsB,EAAkBm5D,aAE5S4E,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAcnsB,EAAkBm5D,aAAch6D,OAAQa,EAAkB89D,QAAUr5C,MAAOzkB,EAAkBm+D,KAAMl/D,mBAAoB,CAAE4F,OAAQA,GACpL0lB,2BAA4BipJ,EAAkB3zG,WAAYA,EAAYz0C,QAASA,EAASs0C,cAAe1/D,EAAkBy/D,eAE7H/1iB,KAAKmpd,UAAUxtc,IAAIgxd,GAEnB,IAAI4J,EAAU73e,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB4+c,EAAkBl+P,WAI3G,GAFAp4O,KAAKmpd,UAAUqtB,cAAcD,EAAS5J,EAAMv0P,WAC5Cp4O,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiB16D,EAAMv0P,UAAWu0P,EAAO,oBACrE3se,KAAK8tnB,+BAAgC,CACrC,IAAI76jB,EAAW,CACXrkC,QAAS+9c,EAAM/9c,QAASqnc,YAAa0W,EAAM1W,YAAaC,UAAWyW,EAAMzW,UAAWusC,aAAc91B,EAAM81B,aACxG9nf,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,OAAQma,KAAMh7B,KAAK+me,cAEvE/me,KAAKmpd,UAAUg5G,kBAAkBx1F,EAAMv0P,UAAWu0P,EAAMuM,UAAW,MAAOlzc,EAAQitB,EACtF,CACAjzD,KAAKopd,cAAc2jB,sBAAwB,KAC3C/se,KAAKopd,cAAc+jB,iBACnBnte,KAAKopd,cAAcwxD,WAEf56gB,KAAKopd,cAAcmuB,gBAAkBv3e,KAAKopd,cAAcmuB,eAAeC,mBAAqBx3e,KAAKmpd,UAAUksB,sBAE3Gr1e,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,wBAAwB,GAE9Hz6M,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAiB,GAE/H,CACJ,CACJ,CACJ,EAKA4uc,EAAc3npB,UAAU6xiB,0BAA4B,SAAU1mE,EAAYnjB,GACtE,IAAIq+C,EACArqd,EAAgBmvb,EAAW1c,OAC3Bnqb,EAAS,CAAE9rB,EAAGwjC,EAAcujL,EAAGjoL,EAAG0E,EAAcwjL,EAAGvmN,MAAO+iC,EAAc+sa,MAAO5pc,OAAQ68B,EAAcgta,QACrGo7G,EAAsB9lkB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GAC1FspE,EAAan2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GACrDm4C,EAAWhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAYA,EAAWunE,QAC7GC,EAAS,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QACjI7+D,EAAqB1I,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqB71iB,KAAKmpd,UAAU+sB,iBAAiBijJ,yBAAyBtsJ,GAC9Ig0B,EAA6B7ggB,KAAK4vG,YAAYi9X,GAC9C7xc,EAAO6xc,EAAWkK,SACA,iBAAX,GAAuB/7c,EAAKx3B,OAAS,EAC5Cw3B,EAAOk4b,EAAcl4b,GAGjB6xc,EAAWgrE,YAAe78gB,EAAKxzB,MAAM,WAAWhE,QAAU,IAI1Dw3B,EAAOk4b,EAActxd,KAAK+yH,MAAM35F,KAGxC+se,EAAmB,CACf+9D,oBAAqBA,EAAqB5sF,UAAWrM,EAAW2lE,UAAW3xC,2BAA4BA,EACvGtrB,mBAAoBA,EAAoBE,OAAQ5I,EAAWunE,OAAQpugB,OAAQA,EAAQmwgB,WAAYA,EAAYnxB,SAAUA,EAAUhqf,KAAMA,EACrItD,GAAI,MAAOs+gB,cAAenpE,EAAWkpE,cAAe0C,SAAU5rE,EAAW2rE,SAAU92C,QAAS70B,EAAWsjJ,QAAS1tH,aAAc51B,EAAW4iE,aACzI+E,KAAM3nE,EAAW4nE,KAAM7lhB,QAASi+c,EAAWsK,QAAS/+P,UAAWsxO,EAAY2qF,OAAQA,EAAQ1+E,oBAAqBkX,EAAWoK,eAC3HhhB,YAAa4W,EAAWuK,YAAa/tW,QAASwjW,EAAW14U,QAAS+hU,UAAW2W,EAAWwK,WAE5Fr3e,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiB39E,EAAYq+C,EAAkB,mBACnF,EAEAshJ,EAAc3npB,UAAUkuG,YAAc,SAAUi9X,GAQ5C,OAPe7se,KAAKmpd,UAAU03C,2BAC1Bh0B,EAAW+oE,2BACA/oE,EAAW+oE,2BAGX51iB,KAAK4wnB,YAAY/jJ,EAAW4oE,oBAAqB5oE,EAAW14U,QAG/E,EAOAk1f,EAAc3npB,UAAUqopB,sBAAwB,SAAUrgM,EAAYwrB,GAElEl1e,KAAKmpd,UAAU0jB,WAAW4K,UAAUvC,EAAY98P,UAAW,KAAM88P,EAAa,WAAY,GAAIA,EAAaA,GAE3G,IAAIrI,EACAj1d,EAAOs9d,EAAYlvc,OAAOpuB,KAAOs9d,EAAYlvc,OAAOpuB,KAAOs9d,EAAYlvc,OAAO9rB,EAC9EI,EAAM46d,EAAYlvc,OAAO1rB,IAAM46d,EAAYlvc,OAAO1rB,IAAM46d,EAAYlvc,OAAOgT,EAC3Ek8b,EAAYvod,SAAWuod,EAAYvod,QAAQqZ,SAC3CpuB,EAAOs9d,EAAYvod,QAAQqZ,OAAOpuB,KAClC0C,EAAM46d,EAAYvod,QAAQqZ,OAAO1rB,KAErCuyd,EAAa,CAETn1c,GAAIw9c,EAAYx9c,GAAIsO,OAAQ,CAAE9rB,EAAGtC,EAAMohC,EAAG1+B,EAAKK,MAAOu6d,EAAYlvc,OAAOrrB,MAAOkG,OAAQq0d,EAAYlvc,OAAOnlB,QAE3G80c,oBAAqB,MAAO/mc,QAASsmd,EAAYtmd,QAASsnc,UAAWgf,EAAYhf,UAAWD,YAAaif,EAAYjf,YAAa79O,UAAW88P,EAAY98P,UAAWp9M,KAAMk6c,EAAYl6c,KACtLk+c,UAAWhE,EAAYgE,UAEvB8rC,SAAU9vC,EAAY8vC,SAAUvvC,OAAQP,EAAYO,OAAQpsW,QAAS6rW,EAAY7rW,QAASo5X,aAAcvtB,EAAYutB,aAEpH4xC,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAcvtB,EAAYutB,aAAchtB,OAAQP,EAAYO,QAAUslB,MAAO7lB,EAAY6lB,MAC9H8F,2BAA4B7ggB,KAAK4wnB,YAAY17I,EAAa,OAAQ8gE,cAAe9gE,EAAY8gE,eAGjG,IAAIjhE,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,oBAEhF,GAAK4iH,EASA,CACD,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GAC7Bz1e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,oBACjE,IAAI/5I,EAAYp4O,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAaruB,GAC/E,GAAIquB,EAAY3/P,GACZ2/P,EAAY3/P,GAAW88P,YAAYhze,KAAK2qe,GAChCkL,EAAY3/P,GAAW88P,YAAY3te,QAAQsle,OAElD,CACD,IAAIqL,EAAmB,CAAE9/P,UAAWsxO,EAAYwrB,YAAa,IAC7DgD,EAAiBhD,YAAYhze,KAAK2qe,GAC1BqL,EAAiBhD,YAAY3te,QAAQsle,GAC7CkL,EAAY71e,KAAKg2e,EACrB,CACIC,EAAwBv2e,KAAKC,UAAUk2e,GAC3Cz4e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,mBAAoBgmH,EACtF,KAzBkB,CACd,IAAIC,EAAkB,CAAEhgQ,UAAWsxO,EAAYwrB,YAAa,IAC5DkD,EAAgBlD,YAAYhze,KAAK2qe,GACzBuL,EAAgBlD,YAAY3te,QAAQsle,GAC5C,IAAIsI,EAAuB,GAC3BA,EAAqBjze,KAAKk2e,GAC1B,IAAID,EAAwBv2e,KAAKC,UAAUsze,GAC3C71e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,mBAAoBgmH,EACtF,CAkBJ,EACAkxK,EAAc3npB,UAAUkvnB,YAAc,SAAU7vmB,EAAMsoH,GAClD,IAAIj+H,EAAWpL,KAAKmpd,UAAU03C,2BAI9B,MAHa,QAAT9/e,GAAkB/gB,KAAKmpd,UAAUyjF,sBAAsB/rC,6BACvDz1f,EAAWpL,KAAKmpd,UAAUyjF,sBAAsB/rC,4BAE7Cz1f,CACX,EAEAi+oB,EAAc3npB,UAAUi3e,eAAiB,SAAUvgQ,EAAWmhQ,GAE1D,IAAIpE,EAEAJ,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,oBAChF,GAAI4iH,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACzBjse,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAa3/P,GAEvE+8P,EADA4C,EAAYjve,GACWive,EAAYjve,GAAOose,YAGnBqE,CAE/B,MAEIpE,EAAuBoE,EAE3B,OAAOpE,CACX,EAWAk0K,EAAc3npB,UAAUsopB,6BAA+B,SAAU/piB,EAAUypW,EAAY4uB,IAC9E,QAAkBA,EAAeziB,0BAAuE,KAA3CyiB,EAAeziB,wBAI7E71d,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAHnD7wnB,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAKvD7wnB,KAAKopd,cAAcovB,8BAA6B,GAEhD,IAAIC,EAAqB,KAErBC,EAAkB14e,KAAK24e,eAAejvB,EAAY,MACtD,GAAuB,MAAnBgvB,GAA2BJ,EAAgB,CAC3C,IAAK,IAAIvre,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACxC,GAAIure,EAAe5gd,KAAOghd,EAAgB3re,GAAG2qB,GAAI,CAC7C,GAAiB,WAAbuoF,EAEAy4X,EAAgB3re,GAAGi5B,OAAS,CAAE9rB,EAAGo+d,EAAe3rd,QAAQqZ,OAAOpuB,KAAMohC,EAAGs/b,EAAe3rd,QAAQqZ,OAAO1rB,IAAKK,MAAO29d,EAAetyc,OAAOrrB,MAAOkG,OAAQy3d,EAAetyc,OAAOnlB,aAE5K,GAAiB,WAAbo/F,EACLy4X,EAAgB3re,GAAGkpd,YAAcqiB,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAM6sd,iBAEzE,GAAiB,YAAbh2W,EACLy4X,EAAgB3re,GAAG6hB,QAAU0pd,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAMwlB,aAErE,GAAiB,cAAbqxF,EACLy4X,EAAgB3re,GAAGmpd,UAAYoiB,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAMi/U,iBAEvE,GAAiB,UAAbpoO,EACLy4X,EAAgB3re,GAAGguf,MAAQziB,EAAeyiB,WAEzC,GAAiB,WAAb96Y,EAAuB,CAC5Bw4X,EAAqBC,EAAgBhre,OAAOX,EAAG,GAAG,GAClD,KACJ,CACA2re,EAAgB3re,GAAG01f,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBACxFpynB,KAAKmpd,UAAU+sB,iBAAiBy8I,2BAA2Bj6I,EAAgB3re,GAAI28c,EACnF,CAEJ1pd,KAAKyppB,qBAAqB/wK,EAAiBhvB,EAC/C,CACA,OAAO+uB,CACX,EAEA4wK,EAAc3npB,UAAU+npB,qBAAuB,SAAU/wK,EAAiBhvB,GAEtE,IAAIqrB,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,oBAChF,GAAI4iH,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GAC7Bz1e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,oBACjE,IAAIrpX,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAaruB,GACvEquB,EAAYjve,KACZive,EAAYjve,GAAOose,YAAcwD,GAErC,IAAIP,EAAwBv2e,KAAKC,UAAUk2e,GAC3Cz4e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,mBAAoBgmH,EACtF,CACJ,EAWAkxK,EAAc3npB,UAAUswiB,qBAAuB,SAAU17D,EAAmBl+P,EAAWy+P,GAInF,GAAIP,EAAmB,CAEnB,IAAItwc,EAASswc,EAAkBnmB,OAC3B6d,EAAehoc,EAAQ,EACvBioc,EAAcjoc,EAAQ,EACtBwoc,EAAgBxoc,EAAY,MAC5B6iR,EAAiB7iR,EAAa,OAC9BmwgB,EAAa7/D,EAAkB6/D,WAC/Bz0C,EAAUprB,EAAkBorB,QAE5BokE,EAAsBxvF,EAAkB25I,oBAAsB35I,EAAkB25I,oBAAsBjwnB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCx9E,GAE1Kf,EAAqBe,EAAkBu/D,mBAAqBv/D,EAAkBu/D,mBAAqB71iB,KAAKmpd,UAAUyjF,sBAAwB5siB,KAAKmpd,UAAUyjF,sBAAwB5siB,KAAKmpd,UAAUosB,mBAChMe,EAAkBkiE,WAClBjjE,EAAmB4F,OAAS7E,EAAkBkiE,UAGlD,IAAIx9gB,EAAOs7c,EAAkBS,SAa7B,OAZIF,IACA77c,EAAOk4b,EAActxd,KAAK+yH,MAAM2hX,EAAkBS,YAE9C,CAEJr/c,GAAI,MAAQ13B,KAAKopd,cAAc+jB,eAAgBnnc,OAAQ,CAAE9rB,EAAG8zd,EAAah1b,EAAGi1b,EAAYtzd,MAAO6zd,EAAc3td,OAAQgoS,GAAiBzwE,UAAWA,EAAWp9M,KAAMA,EAElK26b,oBAAqB,MAAO/mc,QAAS0nd,EAAkBa,QAASlhB,YAAaqgB,EAAkBc,YAAalhB,UAAWogB,EAAkBe,UAAW4B,aAAc3C,EAAkBk8D,UAEpL2D,WAAYA,EAAYnxB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsB79D,EAAkBq5D,SAAUr5D,EAAmBA,EAAkB89D,QAAS3+D,OAAQa,EAAkB89D,OAAQ0xB,oBAAqBA,EAAqBz8b,QAASitW,EAAkBniV,QAASsuW,aAAcnsB,EAAkBm5D,aAClT4E,OAAQ,CAAEnngB,MAAO,GAAIongB,WAAY,GAAI7xC,aAAcnsB,EAAkBm5D,aAAch6D,OAAQa,EAAkB89D,QAAUr5C,MAAOzkB,EAAkBm+D,KAAM/yC,QAASA,EAASs0C,cAAe1/D,EAAkBy/D,cAAexgE,mBAAoBA,EAAoBkjE,SAAUljE,EAAmB4F,OAGrS,CACJ,EAUAkuK,EAAc3npB,UAAUw2nB,2BAA6B,SAAUnwH,EAAkBnhd,EAAQ8ia,GASjF9ia,EAPCmhd,EAIKA,EAAiBnhd,OAGdmhd,EAAiBnhd,OAFjB,CAAE1sC,EAAG,GAAI8+B,EAAG,KAJrB+ud,EAAmB,CAAEnhd,OAAQ,CAAE1sC,EAAG,GAAI8+B,EAAG,IAAM0wa,WAAY,EAAG/uc,WAAOlc,EAAWoiB,YAAQpiB,IAC9DmoD,OAO9B,IAAI0xkB,EAAoBt4nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC1ExlJ,EAAiB5se,KAAKmpd,UAAU0jB,WAAWC,aAE3C+zB,EAA6B7ggB,KAAKmpd,UAAUyjF,sBAAsB/rC,2BAA6B7ggB,KAAKmpd,UAAUyjF,sBAAsB/rC,2BAA6B7ggB,KAAKmpd,UAAU03C,2BAChLtrB,EAAqBv1e,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAUyjF,uBACnFk5B,EAAsB9lkB,KAAKmpd,UAAUyjF,sBAAsBk5B,oBAAsB9lkB,KAAKmpd,UAAUyjF,sBAAsBk5B,oBAAsB9lkB,KAAKmpd,UAAUosB,mBAAmBuwF,oBAClLvwF,EAAmB4F,SAAS4sB,EAAiB5sB,QAAS4sB,EAAiB5sB,OACvE4sB,EAAiBptf,MAAQotf,EAAiBptf,MAAQotf,EAAiBptf,MAAQ,IAC3Eotf,EAAiBlnf,OAASknf,EAAiBlnf,OAASknf,EAAiBlnf,OAAS,GAC9E,IAAIo3e,EAAW8P,EAAiBzxf,KAAOyxf,EAAiBzxf,KAAO,GAC/D,KAAK,QAAkB2hf,GAEnB,GAAoB,MAAhBA,EAAS,IAA8B,MAAhBA,EAAS,GAAY,CAC5C,IACIriB,EAAS3iB,EADQ7B,EAAgB6mC,IAErCA,EAAWr2f,KAAKC,UAAU+ze,EAC9B,MAEIqiB,EAAW/kC,EAActxd,KAAK+yH,MAAMsjY,IAG5C8P,EAAiBzxf,KAAO2hf,EAExB,IAAI5S,EAAyB,GACzB4kK,EAAM,CACNh6B,oBAAqBloH,EAAiB+9D,oBAAsB/9D,EAAiB+9D,oBAAsBA,EACnGtzB,UAAW5lE,EACX6xD,UAAW,MACXwqH,gBAAiB,KACjBrzG,2BAA4B7tC,EAAiBlH,2BAA6BkH,EAAiBlH,2BAA6BA,EACxHg1C,mBAAoBtgE,EACpB0B,eAAgB,MAChBm9D,OAAQrsC,EAAiBtyB,OAASsyB,EAAiBtyB,OAAS,QAC5DtlB,OAAQ,CAAElvP,EAAGr6K,EAAO1sC,EAAGgnN,EAAGt6K,EAAO5N,EAAGyxa,MAAOs9C,EAAiBptf,MAAO+vc,OAAQq9C,EAAiBlnf,OAAQ80Y,KAAM/uW,EAAO1sC,EAAGm6X,IAAKztV,EAAO5N,EAAGw/kB,SAAU,CAAEv3Z,EAAGr6K,EAAO1sC,EAAGgnN,EAAGt6K,EAAO5N,GAAKskc,KAAM,CAAE5yB,OAAQq9C,EAAiBlnf,OAAQ43mB,SAAS,EAAOhuK,MAAOs9C,EAAiBptf,QAC5Pg1hB,SAAU,KACV9jL,YAAaysQ,EACbpiF,WAAYnuC,EAAiBouC,WAAapuC,EAAiBouC,WAAa,KACxEwiF,mBAAoB,KACpB5iF,eAAe,EACf2E,SAAQ3yC,EAAiB5sB,QAAS4sB,EAAiB5sB,OACnDg1I,SAASpoH,EAAiBrG,SAAUqG,EAAiBrG,QACrD+tC,aAAc,GACdgF,KAAM,GACNt9D,QAAS4wB,EAAiBn5e,QAAUm5e,EAAiBn5e,QAAU,EAC/Dmod,SAAUgxB,EAAiBzxf,KAC3Bw/hB,WAAYpsF,EACZlvB,MAAO,GACP+5G,WAAY,GACZn9D,YAAa2wB,EAAiB9xC,YAAc8xC,EAAiB9xC,YAAc,kBAC3EkzL,QAAS,KACTh1f,QAAS,MACT0vM,KAAM,KACNwzI,UAAW0wB,EAAiB7xC,UAAY6xC,EAAiB7xC,UAAY,GAIzE,OADAmvB,EAAuB,GAAK4kK,EACrB,CAAE5kK,uBAAwBA,EACrC,EACOgkK,CACX,CA9uBkC,GCI9Ba,GAAoC,WACpC,SAASA,EAAmBz6J,EAAWrmC,GAInCppd,KAAKmqpB,cAAgB,EAIrBnqpB,KAAKoqpB,uBAAwB,EAI7BpqpB,KAAK8tnB,gCAAiC,EAItC9tnB,KAAK06e,mBAAoB,EAKzB16e,KAAK+0iB,oBAAsB,GAI3B/0iB,KAAKi7e,aAAe,GAIpBj7e,KAAK0nO,gBAAiB,EACtB1nO,KAAKghB,eAAiB,EACtBhhB,KAAKkhB,aAAe,EAIpBlhB,KAAK09e,QAAS,EAId19e,KAAK29e,UAAW,EAIhB39e,KAAK69e,aAAc,EAInB79e,KAAK05kB,iBAAkB,EACvB15kB,KAAKohB,YAAa,EAClBphB,KAAKqqpB,uBAAwB,EAC7BrqpB,KAAKsqpB,oBAAsB,EAC3BtqpB,KAAKuqpB,mBAAqB,EAC1BvqpB,KAAKwqpB,gBAAkB,GAIvBxqpB,KAAKyqpB,aAAe,YAIpBzqpB,KAAKw9f,gBAAkB,GACvBx9f,KAAKmpd,UAAYsmC,EACjBzvf,KAAKopd,cAAgBA,EACrBppd,KAAKg5kB,uBACLh5kB,KAAK0qpB,gBAAkBhspB,SAAS6F,cAAc,YAC9CvE,KAAK0qpB,gBAAgBthpB,MAAM+kB,SAAW,WACtCnuB,KAAK0qpB,gBAAgBthpB,MAAMqhd,MAAQzqd,KAAKsuiB,YACxCtuiB,KAAK0qpB,gBAAgBthpB,MAAMshd,OAAS1qd,KAAKo6mB,cACzCp6mB,KAAK0qpB,gBAAgBthpB,MAAMm4C,OAAS,IACpCvhD,KAAK0qpB,gBAAgBthpB,MAAMinB,SAAWrwB,KAAKqwB,SAAW,KACtDrwB,KAAK0qpB,gBAAgBjopB,UAAY,kBACjCzC,KAAK0qpB,gBAAgBthpB,MAAM0iS,OAAS,OACpC9rS,KAAK0qpB,gBAAgBthpB,MAAMsoC,YAAc1xC,KAAK0xC,YAC9C1xC,KAAK0qpB,gBAAgBthpB,MAAMooB,WAAaxxB,KAAKg2d,UAC7Ch2d,KAAK0qpB,gBAAgBthpB,MAAMu4C,YAAc3hD,KAAK2hD,YAC9C3hD,KAAK0qpB,gBAAgBthpB,MAAMs4C,YAAc1hD,KAAK0hD,YAAc,KAC5D1hD,KAAK0qpB,gBAAgBthpB,MAAMolB,QAAUxuB,KAAKwuB,QAC1CxuB,KAAK0qpB,gBAAgBthpB,MAAM8mB,YAAclwB,KAAKsqpB,oBAAsB,KACpEtqpB,KAAK0qpB,gBAAgBthpB,MAAMigC,WAAarpC,KAAKuqpB,oBAAsBpqoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMinB,UAAYrwB,KAAKwqpB,iBAAmB,KAC7IxqpB,KAAK0qpB,gBAAgBthpB,MAAMuoC,aAAe,MAC1C3xC,KAAK0qpB,gBAAgBthpB,MAAMymB,cAAgB,SAC3C7vB,KAAK0qpB,gBAAgBthpB,MAAMyyD,WAAa77D,KAAK67D,WAC7C77D,KAAK0qpB,gBAAgBthpB,MAAM6kB,MAAQjuB,KAAKmpd,UAAU+hF,iBAAiBj1H,UAC/Dj2a,KAAKmpd,UAAU+hF,iBAAiBj1H,UAAY,OAChDj2a,KAAK0qpB,gBAAgBthpB,MAAM4mB,SAAW,SACtChwB,KAAK0qpB,gBAAgBthpB,MAAM+sE,UAAYn2E,KAAKm2E,UAC5Cn2E,KAAK0qpB,gBAAgBrpoB,SAAWrhB,KAAKohB,WACrCphB,KAAK0qpB,gBAAgB9uoB,iBAAiB,WAAY5b,KAAK2qpB,mBAAmBhwnB,KAAK36B,OAC/EA,KAAK0qpB,gBAAgB9uoB,iBAAiB,UAAW5b,KAAK4qpB,kBAAkBjwnB,KAAK36B,OAC7EA,KAAK0qpB,gBAAgB9uoB,iBAAiB,UAAW5b,KAAK6qpB,kBAAkBlwnB,KAAK36B,OAC7EA,KAAK+0iB,oBAAsB,EAC/B,CAo0CA,OAh0CAm1G,EAAmBxopB,UAAUs3kB,qBAAuB,WAiBhD,GAhBAh5kB,KAAKsuiB,YAActuiB,KAAKmpd,UAAU+hF,iBAAiBvwhB,MAAQ3a,KAAKmpd,UAAU+hF,iBAAiBvwhB,MAAQ,IACnG3a,KAAKo6mB,cAAgBp6mB,KAAKmpd,UAAU+hF,iBAAiBrqhB,OAAS7gB,KAAKmpd,UAAU+hF,iBAAiBrqhB,OAAS,KACvG7gB,KAAK0xC,YAAc1xC,KAAKmpd,UAAU+hF,iBAAiBx5f,YAAc1xC,KAAKmpd,UAAU+hF,iBAAiBx5f,YAAc,YAC/G1xC,KAAKg2d,UAAYh2d,KAAKmpd,UAAU+hF,iBAAiBl1E,UAAYh2d,KAAKmpd,UAAU+hF,iBAAiBl1E,UAAY,OACzGh2d,KAAK2hD,YAAc3hD,KAAKmpd,UAAU+hF,iBAAiBvpf,YAAc3hD,KAAKmpd,UAAU+hF,iBAAiBvpf,YAAc,QAC/G3hD,KAAK0hD,YAAc1hD,KAAKmpd,UAAU+hF,iBAAiBxpf,YAAc1hD,KAAKmpd,UAAU+hF,iBAAiBxpf,YAAc,EAC/G1hD,KAAKqwB,SAAWrwB,KAAKmpd,UAAU+hF,iBAAiB76gB,SAAWrwB,KAAKmpd,UAAU+hF,iBAAiB76gB,SAAW,GACtGrwB,KAAK4uB,QAAU5uB,KAAKmpd,UAAU+hF,iBAAiBt8gB,QAAU5uB,KAAKmpd,UAAU+hF,iBAAiBt8gB,QAAU,EACnG5uB,KAAKi2a,UAAYj2a,KAAKmpd,UAAU+hF,iBAAiBj1H,UAAYj2a,KAAKmpd,UAAU+hF,iBAAiBj1H,UAAY,OAEzGj2a,KAAKy1e,OAAqD,UAA3Cz1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAAsBz1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,SAC/L,QAAkBz1e,KAAKmpd,UAAU+sB,mBACU,IAAxCl2e,KAAK21e,WAAW31e,KAAK0xC,aAAa+xC,IAClCzjF,KAAK0hD,YAAc,GAGvB1hD,KAAKmpd,UAAU+hF,iBAAiBrve,WAAY,CAC5C,IAAI2zC,EAAWxvG,KAAKmpd,UAAU+hF,iBAAiBrve,WAE3C77D,KAAK67D,WADQ,cAAb2zC,GAAyC,oBAAbA,GAA+C,YAAbA,GAAuC,WAAbA,GAAsC,iBAAbA,EAC/FA,EAGA,WAE1B,MAEIxvG,KAAK67D,WAAa,YAEtB77D,KAAKyuB,UAAYzuB,KAAKmpd,UAAU+hF,iBAAiBwR,cAAgB18iB,KAAKmpd,UAAU+hF,iBAAiBwR,cAAgB,OACjH18iB,KAAKynkB,YAAcznkB,KAAKmpd,UAAU+hF,iBAAiBu8B,YAAcznkB,KAAKmpd,UAAU+hF,iBAAiBu8B,YAAc,YAC/GznkB,KAAKohB,YAAa,EACdphB,KAAKmpd,UAAU+hF,iBAAiBmD,eAChCruiB,KAAKm2E,UAAY,YACjBn2E,KAAKwuB,QAAU,QAGfxuB,KAAKwuB,QAAU,MACfxuB,KAAKm2E,UAAY,eAGjBn2E,KAAKmpd,UAAU+hF,iBAAiB/vD,QAAUn7e,KAAKmpd,UAAUosB,mBAAmB4F,QAAUn7e,KAAKmpd,UAAU+hF,iBAAiB9phB,cACtHphB,KAAKohB,YAAa,GAE4B,IAA9CphB,KAAKmpd,UAAU+hF,iBAAiBtue,UAChC58D,KAAK09e,QAAS,EAEqC,IAA9C19e,KAAKmpd,UAAU+hF,iBAAiBtue,UACrC58D,KAAK29e,UAAW,EAEmC,IAA9C39e,KAAKmpd,UAAU+hF,iBAAiBtue,UACrC58D,KAAK69e,aAAc,EAEgC,IAA9C79e,KAAKmpd,UAAU+hF,iBAAiBtue,UACrC58D,KAAK05kB,iBAAkB,EAElB,IAAM15kB,KAAKmpd,UAAU+hF,iBAAiBtue,WAC3C58D,KAAK09e,QAAS,EACd19e,KAAK29e,UAAW,GAEX,IAAM39e,KAAKmpd,UAAU+hF,iBAAiBtue,WAC3C58D,KAAK09e,QAAS,EACd19e,KAAK69e,aAAc,GAEd,IAAM79e,KAAKmpd,UAAU+hF,iBAAiBtue,WAC3C58D,KAAK09e,QAAS,EACd19e,KAAK05kB,iBAAkB,GAElB,IAAM15kB,KAAKmpd,UAAU+hF,iBAAiBtue,WAC3C58D,KAAK09e,QAAS,EACd19e,KAAK29e,UAAW,EAChB39e,KAAK69e,aAAc,GAEd,KAAO79e,KAAKmpd,UAAU+hF,iBAAiBtue,WAC5C58D,KAAK09e,QAAS,EACd19e,KAAK29e,UAAW,EAChB39e,KAAK05kB,iBAAkB,GAElB,KAAO15kB,KAAKmpd,UAAU+hF,iBAAiBtue,WAC5C58D,KAAK09e,QAAS,EACd19e,KAAK69e,aAAc,EACnB79e,KAAK05kB,iBAAkB,GAElB,IAAM15kB,KAAKmpd,UAAU+hF,iBAAiBtue,YAC3C58D,KAAK69e,aAAc,EACnB79e,KAAK29e,UAAW,EAExB,EAQAusK,EAAmBxopB,UAAUm8hB,0BAA4B,SAAUtkD,EAAkB7vB,EAAY6uD,EAAgBk3G,GAC7G,IAAIq7B,GAAkB,EACtB,IAAKvyI,EACD,IAAK,IAAIrrgB,EAAI,EAAGA,EAAIlN,KAAK+0iB,oBAAoBvxiB,OAAQ0J,IACjD,GAAIlN,KAAK+0iB,oBAAoB7niB,KAAOw8c,EAAY,CAC5CohM,GAAkB,EAClB,KACJ,CAGR,GAAIvxK,KAAsBuxK,GAAmBr7B,IACrCl2I,EAAiB/1e,QAAU,EAAG,CAC9BxD,KAAK+0iB,oBAAoB7yiB,KAAKwnd,GAC9B,IAAK,IAAI38c,EAAI,EAAGA,EAAIwse,EAAiB/1e,OAAQuJ,IAAK,CAE9C,IAAI8/d,EAAa0M,EAAiBxse,GAElC,GADA8/d,EAAW8oE,kBAAoB31iB,KAAKmpd,UAAU+sB,iBAAiB45I,mBAAmBjjJ,EAAYnjB,EAAYmjB,EAAW4xD,WACjH5xD,EAAW4xD,UAAW,CACtB,IAAIrlC,EAAe,KACnB,GAAIvsB,EAAW0sE,aAAc,CACzBngD,EAAe,GACf,IAAK,IAAIh/Y,EAAI,EAAGA,EAAIyyX,EAAW0sE,aAAa/1iB,OAAQ42G,IAAK,CACrD,IAAIp8F,EAAQ,CAAE9D,EAAG2yd,EAAW0sE,aAAan/b,GAAG6mH,EAAGjoL,EAAG6zb,EAAW0sE,aAAan/b,GAAG8mH,GAC7Ek4R,EAAal3f,KAAK8b,EACtB,CACJ,CAEA6ud,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqB71iB,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAU+hF,kBAC9J,IAAIv+D,OAAQ,EACRo+K,EAAe,GACfC,GAAqB,QAAkBn+K,EAAW1c,OAAOlvP,GAA0C4rQ,EAAW1c,OAAOj2c,EAAvD2yd,EAAW1c,OAAOlvP,EAAI8pb,EACpFE,GAAqB,QAAkBp+K,EAAW1c,OAAOjvP,GAA0C2rQ,EAAW1c,OAAOn3a,EAAvD6zb,EAAW1c,OAAOjvP,EAAI6pb,EACpFpwoB,EAAQkyd,EAAW1c,OAAO1F,MAAQoiB,EAAW1c,OAAO1F,MAAQoiB,EAAW1c,OAAOx1c,MAC9EkG,EAASgsd,EAAW1c,OAAOzF,OAASmiB,EAAW1c,OAAOzF,OAASmiB,EAAW1c,OAAOtvc,OACjFqqoB,IAAyBr+K,EAAWihJ,gCAAiCjhJ,EAAWihJ,+BAChF54H,EAAcl1f,KAAKmrpB,iBAAiBzhM,EAAYwhM,GAEhDE,GADmBv+K,EAAWqqE,OACjBrqE,EAAWw+K,cACS,IAAjCjxoB,KAAK+gH,KAAK0xW,EAAWqqE,QACrBrqE,EAAWqqE,QAAUrqE,EAAWqqE,OAAShiD,EAGzCroB,EAAWqqE,OAASrqE,EAAWqqE,OAAShiD,EAG5C,IAAI1+B,EAAcp8c,KAAKQ,IAAIiyd,EAAWqqE,QACtC,GAAI3+B,GAAkBrjB,IAAgBk2J,GAC9BprpB,KAAKopd,cAAcgyD,eAAgB,CACnC,IAAI6/B,EAAcj7iB,KAAKopd,cAAcjxO,SAASuxO,GAC1C4hM,EAAUz+K,EAAW1c,OAAOlvP,EAC5Bsqb,EAAU1+K,EAAW1c,OAAOjvP,EAC5Bsqb,EAAkB7woB,EAClB8woB,EAAmB5qoB,EACvB,GAAIuqoB,EAAa,EAAG,CAChB,IAAIM,EAAaN,EAAa,GACX,IAAfM,GACA7qoB,EAASlG,EACTA,EAAQkyd,EAAW1c,OAAOzF,OAC1BsgM,EAAoBn+K,EAAW1c,OAAOjvP,EAElC+pb,EADgB,MAAhB/1J,EACoB+lD,EAAYp6hB,OAASgsd,EAAW1c,OAAOlvP,EAAI4rQ,EAAW1c,OAAO1F,MAG7DwwF,EAAYtgiB,MAAQkyd,EAAW1c,OAAOlvP,EAAI4rQ,EAAW1c,OAAO1F,OAGhE,IAAfihM,EACe,MAAhBx2J,GAAuC,KAAhBA,GACvB81J,EAAoB/vG,EAAYtgiB,MAAQkyd,EAAW1c,OAAOlvP,EAAI4rQ,EAAW1c,OAAO1F,MAChFwgM,EAAoBhwG,EAAYp6hB,OAASgsd,EAAW1c,OAAOjvP,EAAI2rQ,EAAW1c,OAAOzF,SAGjFsgM,EAAoB/vG,EAAYp6hB,OAASgsd,EAAW1c,OAAOlvP,EAAI4rQ,EAAW1c,OAAO1F,MACjFwgM,EAAoBhwG,EAAYtgiB,MAAQkyd,EAAW1c,OAAOjvP,EAAI2rQ,EAAW1c,OAAOzF,QAGhE,IAAfghM,IACL7qoB,EAASlG,EACTA,EAAQkyd,EAAW1c,OAAOzF,OAEtBsgM,EADgB,KAAhB91J,EACoB+lD,EAAYtgiB,MAAQkyd,EAAW1c,OAAOjvP,EAAIvmN,EAG1CsgiB,EAAYp6hB,OAASgsd,EAAW1c,OAAOjvP,EAAIvmN,EAEnEswoB,EAAoBp+K,EAAW1c,OAAOlvP,GAE1Cqqb,EAAUN,EACVO,EAAUN,EACVO,EAAkB7woB,EAClB8woB,EAAmB5qoB,CACvB,CAEoB,IADpB21c,EAAe0+B,EAAc,GAAM,IAE/Br0e,EAASlG,EACTA,EAAQ8woB,EACRT,EAAoB/vG,EAAYtgiB,MAAQ4woB,EAAUE,EAAmBV,EACrEE,EAAoBK,EAAUP,EAC9Bv0L,EAAc,IAEO,IAAhBA,GACLw0L,EAAoB/vG,EAAYtgiB,MAAQ2woB,EAAUE,EAAkBT,EACpEE,EAAoBhwG,EAAYp6hB,OAAS0qoB,EAAUE,EAAmBV,EACtEv0L,EAAc,KAEO,IAAhBA,GACL31c,EAASlG,EACTA,EAAQ8woB,EACRT,EAAoBO,EAAUR,EAC9BE,EAAoBhwG,EAAYp6hB,OAASyqoB,EAAUzqoB,EAASkqoB,EAC5Dv0L,EAAc,KAEO,IAAhBA,IACLw0L,EAAoBM,EAAUP,EAC9BE,EAAoBM,EAAUR,EAEtC,CAEJ,GAAoB,KAAhBv0L,GAAsC,MAAhBA,EAAqB,CAC3C,IACIm1L,EAAgBhxoB,EAGpBqwoB,EAAqBA,GADrBrwoB,EAHqBkG,GAI6B,GAFlDA,EAAS8qoB,GAEyD,EAClEV,GAA2CtwoB,EAAQ,EAAIkG,EAAS,CACpE,CAEAgsd,EAAWi5F,oBAAsBj5F,EAAWojJ,oBAAsBpjJ,EAAWojJ,oBAAsBjwnB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GAEvKF,EAAQ,CACJ8I,OAAQ5I,EAAWunE,OAAQ3xC,aAAc51B,EAAW4iE,aAAcpma,QAASwjW,EAAW14U,QAASz8H,GAAI,WAAa13B,KAAKmqpB,cACrH3zL,YAAaqW,EAAWqqE,OAAQ9oE,YAAavB,EAAWiqE,WAAY7gF,YAAa4W,EAAWuK,YAC5FlhB,UAAW2W,EAAWwK,UAAWrhB,UAAW6W,EAAWmqE,UACvDhxgB,OAAQ,CACJ9rB,EAAG8woB,EAAmBhymB,EAAGiymB,EAAmBrzoB,KAAMozoB,EAAmB1woB,IAAK2woB,EAC1EtwoB,MAAOA,EAAOkG,OAAQA,EAAQ7I,MAAO60d,EAAW1c,OAAO95D,MACvD77Y,OAAQqyd,EAAW1c,OAAOpF,QAC3BmuB,UAAWrM,EAAW2lE,UAAW78E,oBAAqB,WAEzDv9O,UAAWsxO,EAAY96b,QAASi+c,EAAWsK,QAASlhE,UAAW42D,EAAWoqE,UAAW5mhB,SAAUw8c,EAAWpc,SAAUqiK,aAAc59H,EAClIr5b,WAAYgxa,EAAWqK,WAAY6jB,MAAOluB,EAAWiqE,WAAYrohB,UAAWo+c,EAAWkqE,UAEvF/xB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAYA,EAAWunE,QAC5GC,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QAEhIzsiB,KAAM,CAAE+1e,OAAQ7Q,EAAWsqE,KAAKoF,KAAM5+D,SAAU9Q,EAAWsqE,KAAKmF,OAAQ1+D,YAAa/Q,EAAWsqE,KAAKqF,UAAW3+D,YAAahR,EAAWsqE,KAAKsF,WAC7I57C,2BAA4B7ggB,KAAK4vG,YAAYi9X,GAAa0I,mBAAoB1I,EAAWgpE,mBAEzFM,WAAYn2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GAAa8oE,kBAAmB9oE,EAAW8oE,kBAAmBmwB,oBAAqBj5F,EAAWi5F,oBAClJpkE,QAAS70B,EAAWsjJ,QAASn6E,cAAenpE,EAAWkpE,cAAe30hB,WAAYyrd,EAAW20E,WAC7FoqG,gCAAiCV,GAEjC3yI,IACA5rC,EAAMj1c,GAAKm1c,EAAW2lE,UACtB7lE,EAAMk/K,iBAAmBh/K,EAAWpc,SAAWoc,EAAWpc,SAAWzwd,KAAKqwB,UAE9E,IAAI0piB,EAAa/5jB,KAAKmpd,UAAUxtc,IAAIgxd,GAEpC,GADA3se,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiB39E,EAAYijB,EAAO,yBAChE3se,KAAK8tnB,+BAAgC,CAErC,IAAI76jB,EAAW,CACXrkC,QAAS+9c,EAAM/9c,QAAS8iB,YAAai7b,EAAM1W,YAAav0a,YAAairb,EAAMzW,UAAWuf,OAAQ5I,EAAW4I,OAAQpsW,QAASwjW,EAAWxjW,QAASo5X,aAAc51B,EAAW41B,aAEvKzsC,UAAW2W,EAAM3W,UAAW3lc,SAAUs8c,EAAMt8c,SAAU1V,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,OAAQo1Z,UAAW02D,EAAM12D,UAAWp6W,WAAY8wa,EAAM9wa,WAAY4rgB,YAAa96F,EAAMyB,YAAaxxa,UAAW+va,EAAMhle,KAAM+0iB,cAAe/vE,EAAMl+c,WAExPzuB,KAAKmpd,UAAUg5G,kBAAkBx1F,EAAMv0P,UAAWu0P,EAAMuM,UAAW,WAAYvM,EAAM3mc,OAAQitB,EACjG,CACAjzD,KAAKmqpB,eAAiB,EACtBnqpB,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,EAC3EpqpB,KAAKmpd,UAAUw7C,mBAAmBo1D,EAAY,CAAC,GAC/C/5jB,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,CAC/E,CACJ,CACJ,CAER,EAMAF,EAAmBxopB,UAAUkuG,YAAc,SAAUi9X,GACjD,IAAIzhe,EAAWpL,KAAKmpd,UAAU03C,2BAO9B,OANIh0B,EAAW+oE,2BACXxqiB,EAAWyhe,EAAW+oE,2BAEjB51iB,KAAKmpd,UAAU+hF,iBAAiBrqC,6BACrCz1f,EAAWpL,KAAKmpd,UAAU+hF,iBAAiBrqC,4BAExCz1f,CACX,EAKA8+oB,EAAmBxopB,UAAUyqkB,kBAAoB,SAAUprjB,GAGvD,GAFA/gB,KAAKopd,cAAc+6C,2BACnBnkgB,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAE1C,aADD9vmB,EACJ,CACI/gB,KAAKg8e,sBAAwB,WAC7Bh8e,KAAKg5kB,uBAEL,IAAIkhD,EAAmBl6nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC7EpynB,KAAKmpd,UAAUm9C,cAAgB,CAC3B3wC,oBAAqB,WAAYM,YAAaj2d,KAAK0xC,YACnDskb,UAAWh2d,KAAKg2d,UAAWpnc,QAAS5uB,KAAK4uB,QAASmse,MAAO,GAAIi7C,eAAe,EAC5E9/E,UAAWl2d,KAAK0hD,YAAaq0a,gBAAiB,IAAK0sC,aAAcy3H,EAEjEzkJ,OAAQz1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAAQpsW,QAAS,WAAY1hI,KAAM,CAAE+1e,OAAQ19e,KAAK09e,OAAQC,SAAU39e,KAAK29e,SAAUC,YAAa59e,KAAK05kB,gBAAiB77F,YAAa79e,KAAK69e,aAAepvd,UAAWzuB,KAAKyuB,WAEnNzuB,KAAKmpd,UAAU2zC,KAAO,QACjB,CAEjB,EAqBAotJ,EAAmBxopB,UAAU44nB,mBAAqB,SAAUr6gB,EAAUypW,EAAY4uB,EAAgBwzK,IACzF,QAAkBxzK,EAAeziB,0BAAuE,KAA3CyiB,EAAeziB,wBAI7E71d,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAHnD7wnB,KAAKmpd,UAAU+sB,iBAAiB26I,kBAAmB,EAKlDi7B,GACD9rpB,KAAKopd,cAAcovB,8BAA6B,GAEpD,IAAIC,EAAqB,KACrBC,EAAkB14e,KAAK24e,eAAejvB,EAAY,MACtD,GAAuB,MAAnBgvB,GAA2BJ,EAAgB,CAC3C,IAAK,IAAIvre,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACxC,GAAIure,EAAe5gd,KAAOghd,EAAgB3re,GAAG2qB,GAAI,CAC7C,GAAiB,WAAbuoF,EAEAy4X,EAAgB3re,GAAGi5B,OAAS,CAAEpuB,KAAM0ge,EAAetyc,OAAO9rB,EAAGI,IAAKg+d,EAAetyc,OAAOgT,EAAGr+B,MAAO29d,EAAetyc,OAAOrrB,MAAOkG,OAAQy3d,EAAetyc,OAAOnlB,OAAQ7I,MAAOsge,EAAetyc,OAAOhuB,MAAOwC,OAAQ89d,EAAetyc,OAAOxrB,aAEtO,GAAiB,SAAbylG,EACLy4X,EAAgB3re,GAAGipd,UAAYsiB,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAMkoI,UAEvE,GAAiB,WAAbrxB,EACLy4X,EAAgB3re,GAAGkpd,YAAcqiB,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAM6sd,iBAEzE,GAAiB,YAAbh2W,EACLy4X,EAAgB3re,GAAG6hB,QAAU0pd,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAMwlB,aAErE,GAAiB,cAAbqxF,EACLy4X,EAAgB3re,GAAGmpd,UAAYoiB,EAAe3rd,QAAQtP,SAAS,GAAGjU,MAAMi/U,iBAEvE,GAAiB,UAAbpoO,EACLy4X,EAAgB3re,GAAGyniB,KAAOl8D,EAAeyiB,UAExC,IAAiB,WAAb96Y,EAAuB,CAC5Bw4X,EAAqBC,EAAgBhre,OAAOX,EAAG,GAAG,GAClD,KACJ,CACsB,gBAAbkzG,GACDy4X,EAAgB3re,GAAGqhe,cAAgBkK,EAAelK,aAClDpue,KAAKmpd,UAAU05G,gBAAgBnqF,EAAgB3re,GAAGmse,UAAWZ,EAAelK,YAAasK,EAAgB3re,IAE7G2re,EAAgB3re,GAAGqhe,YAAckK,EAAelK,aAE9B,cAAbnuX,EACLy4X,EAAgB3re,GAAGkpa,UAAYqiE,EAAeriE,UAE5B,aAAbh2T,EACLy4X,EAAgB3re,GAAGsjB,SAAWiod,EAAejod,SAE3B,eAAb4vF,EACLy4X,EAAgB3re,GAAG8uD,WAAay8a,EAAez8a,WAE7B,yBAAbokD,EAELy4X,EAAgB3re,GAAGpF,KAAO,CAAE+1e,OAAQpF,EAAe3we,KAAK+1e,OAAQC,SAAUrF,EAAe3we,KAAKg2e,SAAUC,YAAatF,EAAe3we,KAAKi2e,YAAaC,YAAavF,EAAe3we,KAAKk2e,aAErK,cAAb59X,IACLy4X,EAAgB3re,GAAG0hB,UAAY6pd,EAAe7pd,UAClD,CAEAiqd,EAAgB3re,GAAG01f,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBACxFpynB,KAAKmpd,UAAU+sB,iBAAiBy8I,2BAA2Bj6I,EAAgB3re,GAAI28c,EACnF,CAEJ1pd,KAAK64e,kBAAkBH,EAAiBhvB,EAC5C,CACA,OAAO+uB,CACX,EAMAyxK,EAAmBxopB,UAAU23e,gBAAkB,SAAU3vB,EAAY4uB,GACjE,GAAIA,EAAgB,CAChB,IAAII,EAAkB14e,KAAK24e,eAAejvB,EAAY,MAClDgvB,GACAA,EAAgBx2e,KAAKo2e,GAEzBt4e,KAAK64e,kBAAkBH,EAAiBhvB,EAC5C,CACJ,EAIAwgM,EAAmBxopB,UAAU8hiB,wBAA0B,WAEnD,IAAIzuD,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,yBAC5EnyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,0BAIvF,IADA,IAAI+iH,EAAc,IAAIjve,MACbm0G,EAAI,EAAGA,EAAIp6G,KAAKopd,cAAcuD,UAAWvyW,IAC9C86X,EAAY96X,GAAK,GAErB,GAAI26X,IAAgB/0e,KAAKmpd,UAAUosB,mBAAmB6yF,aAElD,IADA,IAAIjzF,EAAuBvze,KAAK+yH,MAAMogX,GAC7Bhoe,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAAK,CAClD,IAAIkjD,EAAW,GACXmlb,EAAuBD,EAAqBpoe,GAChD,GAAIqoe,EAAsB,CACtB,IAAK,IAAIv6X,EAAI,EAAGu6X,EAAqBF,YAAY1xe,OAASq3G,EAAGA,IAAK,CAC9D76G,KAAKmpd,UAAU+sB,iBAAiB29I,mBAAmBz+I,EAAqBF,YAAYr6X,IAEpFu6X,EAAqBF,YAAYr6X,GAAG70E,OAAShmC,KAAK+rpB,yBAAyB32K,EAAqBF,YAAYr6X,GAAG70E,OAAQovc,EAAqBF,YAAYr6X,GAAG27W,YAAa4e,EAAqBh9P,UAAWg9P,EAAqBF,YAAYr6X,IAEzOu6X,EAAqBF,YAAYr6X,GAAG70E,OAASpkC,KAAKC,UAAU7B,KAAKmpd,UAAU0jB,WAAWvxb,UAAU85b,EAAqBF,YAAYr6X,GAAG70E,OAAQovc,EAAqBh9P,YACjK,IAAIs9P,EAAoBN,EAAqBF,YAAYr6X,GAAGo7W,YAC5Dmf,EAAqBF,YAAYr6X,GAAGo7W,YAAcr0d,KAAKC,UAAU7B,KAAK21e,WAAWD,IACjF,IAAIklJ,EAAkBxlJ,EAAqBF,YAAYr6X,GAAGm7W,UAC1Dof,EAAqBF,YAAYr6X,GAAGm7W,UAAYp0d,KAAKC,UAAU7B,KAAK21e,WAAWilJ,IAC/E,IAAII,EAAkB5lJ,EAAqBF,YAAYr6X,GAAGo7T,UAC1Dm/D,EAAqBF,YAAYr6X,GAAGo7T,UAAYr0a,KAAKC,UAAU7B,KAAK21e,WAAWqlJ,IAE/E5lJ,EAAqBF,YAAYr6X,GAAGu+Y,aAAex3f,KAAKC,UAAUuze,EAAqBF,YAAYr6X,GAAGu+Y,cACtC,OAA5DhkB,EAAqBF,YAAYr6X,GAAGw9b,sBAEpCjjE,EAAqBF,YAAYr6X,GAAGw9b,oBAAsBz2iB,KAAKC,UAAUuze,EAAqBF,YAAYr6X,GAAGw9b,sBAEjHjjE,EAAqBF,YAAYr6X,GAAGrsF,QAAUxuB,KAAKgspB,iBAAiBhspB,KAAKqwB,SAC7E,CACA4/B,EAAWmlb,EAAqBF,WACpC,CACAA,EAAYE,EAAqBh9P,WAAanoL,CAClD,CAEJ,OAAOruD,KAAKC,UAAUqze,EAC1B,EAEAg1K,EAAmBxopB,UAAUyppB,iBAAmB,SAAU/ya,EAAWkmT,GAEjE,IAAI2c,EAAcj7iB,KAAKopd,cAAcjxO,SAASC,GAC9C,QAAK,QAAkBkmT,IAA4BA,GAIlB,IAAzB2c,EAAY97Z,SAHT,EAM2B,IAAzB87Z,EAAY97Z,SACV,GAEuB,IAAzB87Z,EAAY97Z,SACV,IAEuB,IAAzB87Z,EAAY97Z,SACV,IAEJ,CAEf,EACA+qgB,EAAmBxopB,UAAUqqpB,yBAA2B,SAAU/lnB,EAAQwwb,EAAap+O,EAAWy0P,EAAYyxD,GAC1G,IAAIppC,EAAcl1f,KAAKmrpB,iBAAiB/ya,EAAWkmT,GAC/CysH,EAAe,GAGnB,GAFAl+K,EAAWrW,YAAcA,EAAc0+B,EACvCroB,EAAWimJ,aAAe59H,EACN,KAAhB1+B,IAAuC,KAAjBA,GAAuC,MAAhBA,IAAwC,MAAjBA,EAAsB,CAC1F,IAAIt8c,EAAI8rB,EAAOpuB,KAAQouB,EAAOrrB,MAAQ,EAAMqrB,EAAOnlB,OAAS,EACxDm4B,EAAIhT,EAAO1rB,KAAO0rB,EAAOrrB,MAAQ,EAAIqrB,EAAOnlB,OAAS,GACzD,MAAO,CAAE3G,EAAGA,EAAI6woB,EAAc/xmB,EAAGA,EAAI+xmB,EAAcnzoB,KAAMsC,EAAI6woB,EAAczwoB,IAAK0+B,EAAI+xmB,EAAcpwoB,MAAOqrB,EAAOnlB,OAAQA,OAAQmlB,EAAOrrB,MAC3I,CAEI,MAAO,CAAET,EAAG8rB,EAAOpuB,KAAOmzoB,EAAc/xmB,EAAGhT,EAAO1rB,IAAMywoB,EAAcnzoB,KAAMouB,EAAOpuB,KAAOmzoB,EAAczwoB,IAAK0rB,EAAO1rB,IAAMywoB,EAAcpwoB,MAAOqrB,EAAOrrB,MAAOkG,OAAQmlB,EAAOnlB,OAEpL,EACAqpoB,EAAmBxopB,UAAUm3e,kBAAoB,SAAUH,EAAiBhvB,GAExE,IAAIqrB,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,yBAIhF,GAHInyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,0BAEnF4iH,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACxB/0e,KAAKopd,cAAc4rB,iBACpB11e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,yBAErE,IAAIrpX,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAaruB,GACvEquB,EAAYjve,KACZive,EAAYjve,GAAOose,YAAcwD,GAErC,IAAIP,EAAwBv2e,KAAKC,UAAUk2e,GACvC/3e,KAAKopd,cAAc4rB,gBACnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,yBAA2BgmH,EAGhG74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,wBAAyBgmH,EAE/F,CACJ,EAEA+xK,EAAmBxopB,UAAUi3e,eAAiB,SAAUvgQ,EAAWmhQ,GAE/D,IAAIpE,EAEAJ,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,yBAIhF,GAHInyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,0BAEnF4iH,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACzBjse,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAa3/P,GAEvE+8P,EADA4C,EAAYjve,GACWive,EAAYjve,GAAOose,YAGnBqE,CAE/B,MAEIpE,EAAuBoE,EAE3B,OAAOpE,CACX,EAEA+0K,EAAmBxopB,UAAUi0e,WAAa,SAAUM,GAC3CA,EAAYvqe,MAAM,mBAAsBuqe,EAAYvqe,MAAM,gEAC3Duqe,EAAcj2e,KAAKmpd,UAAU+sB,iBAAiBC,WAAWF,IAE7D,IAAIG,EAAcH,EAAYzue,MAAM,KAapC,OAZI,QAAkB4ue,EAAY,MAE9BA,GADAH,EAAcj2e,KAAKmpd,UAAU+sB,iBAAiBhmY,SAAS+lY,EAAa,SAC1Czue,MAAM,MAU7B,CAAEkzG,EAPDv6F,WAAWi2d,EAAY,GAAG5ue,MAAM,KAAK,IAO9B0yG,EALP/5F,WAAWi2d,EAAY,IAKVt8X,EAHb35F,WAAWi2d,EAAY,IAGJ3yZ,EADnBtjE,WAAWi2d,EAAY,IAEnC,EAKA8zK,EAAmBxopB,UAAUippB,mBAAqB,WAC9C,IAAIjjI,EAAsB1nhB,KAAKmpd,UAAU5rR,uBAEzC,GADAv9L,KAAKmpd,UAAUw+D,yBAAwB,GAClC3nhB,KAAKopd,cAAcuxB,sBAsJpB36e,KAAK0qpB,gBAAgB90oB,QAChB5V,KAAK0nO,gBACNpoO,OAAOs/E,eAAeo8Z,sBAxJiB,CAC3Ch7e,KAAKmpd,UAAUw5G,gCAAgC3ikB,KAAK0qpB,gBAAgBjhpB,OAEpE,IAAI2uO,EAAYp4O,KAAK0qpB,gBAAgBhznB,IAAM13B,KAAK0qpB,gBAAgBhznB,GAAGlwB,MAAM,cAAc,IAAMxH,KAAK0qpB,gBAAgBhznB,GAAGlwB,MAAM,cAAc,GAAGA,MAAM,KAAK,GAAK2Y,WAAWngB,KAAK0qpB,gBAAgBhznB,GAAGlwB,MAAM,cAAc,GAAGA,MAAM,KAAK,IAAMxH,KAAKopd,cAAcqD,kBAAoB,EAC1Q5C,EAAU7pd,KAAKopd,cAAc/rS,WAAW,YAAc,GACtD1iK,EAAQwF,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OAC9C6T,EAAUrO,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAM8mB,aACpD,GAAIlwB,KAAKmpd,UAAU+hF,iBAAiBmD,gBAAkBruiB,KAAKqqpB,wBAA0BrqpB,KAAK03hB,mBAAoB,CAC1G,IAAIu0H,EAAW9roB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMinB,UACrDrwB,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAUA,EAAQ6T,EAAWy9nB,EAAY,IACxE,CACIjspB,KAAKmpd,UAAU+hF,iBAAiBmD,gBAAkBruiB,KAAKqqpB,uBAAyBrqpB,KAAK03hB,qBACrF/8gB,EAAQwF,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OAE9C3a,KAAK0qpB,gBAAgBthpB,MAAMuR,MAASA,EADd,EACyC,MAEnE,IAAIuxoB,EAAiB/roB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMyX,QACvDsroB,EAAgBhsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OACtDyxoB,EAAejsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMwO,MACrD5X,KAAKopd,cAAc0vD,sBAEnBszI,GADa1tpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,GACnDxkC,YAEzC,IAAIy4c,EAAclsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMkR,KACpD42c,EAAalxd,KAAKopd,cAAc+B,gBAChCnrd,KAAKmpd,UAAUmjM,kBACftspB,KAAK0qpB,gBAAgBjhpB,MAAQ,YAC7BzJ,KAAKmpd,UAAUmjM,iBAAkB,GAErC,IAAInroB,EAAanhB,KAAK0qpB,gBAAgBjhpB,MAClCgpiB,GAAe,EACnB,IAAgC,IAA5BzyiB,KAAK03hB,mBAA6B,CAElC,IAAI4gG,EAAoBt4nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC1ExlJ,EAAiB5se,KAAKmpd,UAAU0jB,WAAWC,aAC/C9se,KAAK03hB,oBAAqB,EAC1B+a,GAAe,EACf,IAAI9lE,OAAQ,EACR+qJ,EAAgB13nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bw3F,YAAY,WAAY1nW,EAAY,GAC1Gs/Y,IACAh5nB,SAASkuD,eAAe8qkB,GAAehgmB,GAAKk1c,GAGhD,IAAIi0B,EAA6B7ggB,KAAKmpd,UAAU+hF,iBAAiBrqC,2BAA6B7ggB,KAAKmpd,UAAU+hF,iBAAiBrqC,2BAA6B7ggB,KAAKmpd,UAAU03C,2BAEtKtrB,EAAqBv1e,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAU+hF,kBAEvFlriB,KAAKy1e,OAASz1e,KAAKy1e,OAASz1e,KAAKy1e,OAASz1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAASz1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAAS,QAE5H,IAAIqwF,EAAsB9lkB,KAAKmpd,UAAU+hF,iBAAiB46B,oBAAsB9lkB,KAAKmpd,UAAU+hF,iBAAiB46B,oBAAsB9lkB,KAAKmpd,UAAUosB,mBAAmBuwF,oBAExKn5F,EAAQ,CACJ8I,OAAQz1e,KAAKy1e,OAAQgtB,aAAc61H,EAAmBjvf,QAAS,WAAY3xG,GAAI,YAAc13B,KAAKmqpB,cAElG3zL,YAAa,EAAG4X,YAAajtd,EAAY80c,YAAaj2d,KAAK0xC,YAAawkb,UAAWl2d,KAAK0hD,YAAas0a,UAAWh2d,KAAKg2d,UACrHhwb,OAAQ,CACJpuB,KAAMw0oB,EAAel7L,EAAY52c,IAAK+xoB,EAAcn7L,EAAYh3c,EAAGkyoB,EAAel7L,EAClFl4a,EAAGqzmB,EAAcn7L,EAAYv2c,MAAOwxoB,EAAgBj7L,EAAYrwc,OAAQqroB,EAAiBh7L,GAC1FgoB,UAAWtM,EACdjX,oBAAqB,WAAYv9O,UAAWA,EAAW69L,UAAWj2a,KAAKi2a,UAAW5lZ,SAAUrwB,KAAKqwB,SACjGwrC,WAAY77D,KAAK67D,WAAYjtC,QAAS5uB,KAAK4uB,QAASo2f,SAAU,GAAIv2f,UAAWzuB,KAAKyuB,UAElF9mB,KAAM,CAAE+1e,OAAQ19e,KAAK09e,OAAQC,SAAU39e,KAAK29e,SAAUC,YAAa59e,KAAK05kB,gBAAiB77F,YAAa79e,KAAK69e,aAC3Gw2D,OAAQ,CAAEnngB,MAAO,WAAYongB,WAAY,OAAQ7xC,aAAc61H,EAAmB7iJ,OAAQz1e,KAAKy1e,QAE/ForB,2BAA4BA,EAA4BtrB,mBAAoBA,EAC5E4gE,WAAYn2iB,KAAKmpd,UAAU+sB,iBAAiBv0P,QAAQ,YAAa+/Q,QAAS1hgB,KAAKmpd,UAAU+hF,iBAAiBxpC,QAC1GokE,oBAAqBA,EAAqB1kjB,WAAYphB,KAAKohB,YAE3DphB,KAAKmpd,UAAUj9Q,YACfygS,EAAMl+c,UAAY,SAEtB,IAAIo+c,EAAa7se,KAAKmpd,UAAUxtc,IAAIgxd,GAEhC3mc,EAAS,CAAEpuB,KAAM+0d,EAAM3mc,OAAO9rB,EAAGI,IAAKqyd,EAAM3mc,OAAOgT,EAAGr+B,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,QAEtGoyC,EAAW,CACXrkC,QAAS+9c,EAAM/9c,QAAS8iB,YAAai7b,EAAM1W,YAAav0a,YAAairb,EAAMzW,UAAWuf,OAAQ5I,EAAW4I,OAAQpsW,QAASwjW,EAAWxjW,QAASo5X,aAAc51B,EAAW41B,aAEvKzsC,UAAW2W,EAAM3W,UAAW3lc,SAAUs8c,EAAMt8c,SAAU1V,MAAOgyd,EAAM3mc,OAAOrrB,MAAOkG,OAAQ8rd,EAAM3mc,OAAOnlB,OAAQo1Z,UAAW02D,EAAM12D,UAAWp6W,WAAY8wa,EAAM9wa,WAAY4rgB,YAAa96F,EAAMyB,YAAaxxa,UAAW+va,EAAMhle,KAAM+0iB,cAAe/vE,EAAMl+c,WAExPzuB,KAAKmpd,UAAU0jB,WAAWw6D,iBAAiBjvT,EAAWu0P,EAAO,yBAC7D3se,KAAKmpd,UAAUg5G,kBAAkBx1F,EAAMv0P,UAAWu0P,EAAMuM,UAAW,WAAYlzc,EAAQitB,GACvFjzD,KAAKmpd,UAAUy5G,eAAej2F,EAAMuM,UAAWvM,EAAMyB,YAAazB,GAElE3se,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAMu0P,EAAO,WAAY,GAAIA,EAAOA,GACnF3se,KAAKmpd,UAAUk5C,eAAe11B,EAAMv0P,WACpCp4O,KAAKmpd,UAAUppY,eAAe4sZ,EAAMv0P,WACpCp4O,KAAKopd,cAAcovB,8BAA6B,GAChDx4e,KAAKwvkB,mBAAqB3iG,CAC9B,CAGA,GAFA7se,KAAK06e,mBAAoB,EAErB16e,KAAKwvkB,oBAAsBxvkB,KAAKmpd,UAAU50X,cAAc2gZ,YAAa,CACrEi3K,GAAiCj7L,EAEjC,IAAImlG,GADJ61F,GAAmCh7L,GACAlxd,KAAKwvkB,mBAAmBxpiB,OAAOnlB,OAC9Dm4B,OAAIv6C,EACJ43jB,EAAa,IAEbr9gB,GADAA,EAAIh5C,KAAKwvkB,mBAAmB7ijB,QAAQq5K,QAAWqwX,EAAa,GACpD,EAAIr9gB,OAAIv6C,GAEpB,IAYI8tpB,EAZAC,EAAaL,EAAgBnspB,KAAKwvkB,mBAAmBxpiB,OAAOrrB,MAC5DT,OAAIzb,EACJ+tpB,EAAY,EAEZtyoB,GADAA,EAAIla,KAAKwvkB,mBAAmB7ijB,QAAQk5K,QAAW2md,EAAY,GACnD,EAAItyoB,OAAIzb,GAGhB+tpB,EAAYpyoB,KAAKQ,IAAI4xoB,GACrBtyoB,EAAIla,KAAKwvkB,mBAAmB7ijB,QAAQk5K,QAAW2md,EAAY,GAE/DxspB,KAAKwvkB,mBAAmBxpiB,OAAOrrB,MAAQwxoB,EACvCnspB,KAAKwvkB,mBAAmBxpiB,OAAOnlB,OAASqroB,EAExCK,EAAcpsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMinB,UAAY6gc,GAAelxd,KAAKwqpB,gBAAkB,GACtGxqpB,KAAKwvkB,mBAAmB7ijB,QAAQtP,SAAS,GAAGuS,OAAOhY,KAAO5X,KAAKsqpB,oBAC/DtqpB,KAAKwvkB,mBAAmB7ijB,QAAQtP,SAAS,GAAGuS,OAAOtV,IAAQ6F,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMigC,YAAc6nb,EAAeq7L,EAC9HvspB,KAAKmpd,UAAU0jB,WAAWo6K,uBAAuB9loB,EAAYnhB,KAAKwvkB,mBAAmBt2F,WACrFl5e,KAAKwvkB,mBAAmBphG,YAAcjtd,EACtCnhB,KAAKs6nB,mBAAmB,cAAeliZ,EAAWp4O,KAAKwvkB,mBAAoB/8B,GAC3EzyiB,KAAKs6nB,mBAAmB,SAAUliZ,EAAWp4O,KAAKwvkB,mBAAoB/8B,GAEtEzyiB,KAAKmpd,UAAUw7C,mBAAmB3kgB,KAAKwvkB,mBAAoB,CAAExpiB,OAAQ,CAAErrB,MAAO3a,KAAKwvkB,mBAAmBxpiB,OAAOrrB,MAAOkG,OAAQ7gB,KAAKwvkB,mBAAmBxpiB,OAAOnlB,OAAQm4B,EAAM9+B,EAAGA,KAE5K,IAAIqkgB,EAAc7/gB,SAASkuD,eAAe5sD,KAAKwvkB,mBAAmBt2F,WAC9DqlC,GAAeA,EAAYz5gB,aACvBy5gB,EAAYz5gB,WAAW,GAAG06L,cAC1B++U,EAAYz5gB,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQ0X,EAE9Co9f,EAAYz5gB,WAAW,GAAGA,YAAcy5gB,EAAYz5gB,WAAW,GAAGA,WAAW,GAAG06L,gBACrF++U,EAAYz5gB,WAAW,GAAGA,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQ0X,IAGzEnhB,KAAKmpd,UAAUk5C,eAAerigB,KAAKwvkB,mBAAmBp3V,UAAWp4O,KAAKwvkB,mBAAmB3uE,2BAC7F,CACI7ggB,KAAK0qpB,gBAAgBj1oB,gBACjBo0c,GAAYA,EAAQnyb,KAAO13B,KAAK0qpB,gBAAgBj1oB,cAAciiB,GAC9Dmyb,EAAQpta,YAAYz8C,KAAK0qpB,iBAGzB1qpB,KAAK0qpB,gBAAgBj1oB,cAAcgnC,YAAYz8C,KAAK0qpB,kBAG5D,IAAIn0K,EAAU73e,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,GAEzFp4O,KAAKmpd,UAAUqtB,cAAcD,EAASn+P,GACtCp4O,KAAKmqpB,eAAiB,CAC1B,CAOAnqpB,KAAKmpd,UAAUw+D,wBAAwBD,GAAqB,EAChE,EAKAwiI,EAAmBxopB,UAAUkppB,kBAAoB,SAAUr3oB,GACvD,IAAIk5oB,EAAczspB,MACE,IAAhBuT,EAAMiE,QAAgB,QAAkBxX,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,MAAQl1e,KAAK03hB,qBAC9FnkhB,EAAMoG,iBAEV3Z,KAAKwvkB,mBAAqBxvkB,KAAKmpd,UAAU50X,cAAc2gZ,aAAel1e,KAAK03hB,mBAAqB13hB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACnIl1e,KAAKwvkB,mBACXh0iB,YAAW,WACHixnB,EAAYryC,cAAgBqyC,EAAY/B,gBAAgB71kB,cAErDjqE,SAAS6hpB,EAAY/B,gBAAgBthpB,MAAMyX,QAAU4roB,EAAY/B,gBAAgB71kB,aACpF43kB,EAAYC,8BAA6B,GAGzCD,EAAYC,8BAA6B,EAGjD,GAAG,EACP,EACAxC,EAAmBxopB,UAAUgrpB,6BAA+B,SAAUC,GAClE,IAAIF,EAAczspB,KACdquiB,EAAgBo+G,EAAYtjM,UAAU+hF,iBAAiBmD,cAO3D,GANIA,EACAruiB,KAAK4spB,kBAGL5spB,KAAKqqpB,uBAAwB,EAE7BrqpB,KAAKqqpB,sBAAuB,CAE5B,IAAIwC,EAAiBJ,EAAY/B,gBAAgB9qoB,wBAAwBiB,OACpE8roB,GAAWF,EAAY/B,gBAAgBrpoB,WACxCoroB,EAAY/B,gBAAgBthpB,MAAMyX,OAAS,QAE/C,IACIw0B,EADgBo3mB,EAAY/B,gBAAgB9qoB,wBAAwBiB,OACvCgsoB,EAC7Bx8nB,EAAWlQ,WAAWssoB,EAAY/B,gBAAgBthpB,MAAMinB,UAE5Do8nB,EAAY/B,gBAAgBthpB,MAAMyX,OAAS4roB,EAAY/B,gBAAgBrpoB,SAAWoroB,EAAY/B,gBAAgBthpB,MAAMyX,OAAS4roB,EAAY/B,gBAAgB71kB,aAAgBxkD,EAAW,EAAK,KACzLo8nB,EAAY/B,gBAAgBthpB,MAAMyX,OAAUw0B,EAAa,IAAMo3mB,EAAY/B,gBAAgBrpoB,SAAawroB,EAAiB,KAAQJ,EAAY/B,gBAAgBthpB,MAAMyX,MACvK,CACA,IAAIqwc,EAAau7L,EAAYrjM,cAAc+B,gBACvC+gM,EAAiB/roB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMyX,QACvDsroB,EAAgBhsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OAG1D,GAFAuxoB,GAAqCh7L,EACrCi7L,GAAmCj7L,EAC/Blxd,KAAKwvkB,mBAAoB,CACzB,IAAInZ,EAAc61F,EAAiBO,EAAYj9E,mBAAmBxpiB,OAAOnlB,OACrEm4B,EAAI,EAQR,GAPIq9gB,EAAa,EACbr9gB,EAAIyzmB,EAAYj9E,mBAAmB7ijB,QAAQq5K,QAAWqwX,EAAa,GAGnEA,EAAaj8iB,KAAKQ,IAAIy7iB,GACtBr9gB,EAAIyzmB,EAAYj9E,mBAAmB7ijB,QAAQq5K,QAAWqwX,EAAa,GAEnEhoB,EAAe,CACf,IAAIm+G,EAAaL,EAAgBM,EAAYj9E,mBAAmBxpiB,OAAOrrB,MACnET,EAAI,EACJsyoB,EAAY,EACZtyoB,EAAIuyoB,EAAYj9E,mBAAmB7ijB,QAAQk5K,QAAW2md,EAAY,GAGlEA,EAAYpyoB,KAAKQ,IAAI4xoB,GACrBtyoB,EAAIuyoB,EAAYj9E,mBAAmB7ijB,QAAQk5K,QAAW2md,EAAY,EAE1E,CACAC,EAAYj9E,mBAAmBxpiB,OAAOrrB,MAAQwxoB,EAC9CM,EAAYj9E,mBAAmBxpiB,OAAOnlB,OAASqroB,EAC3C79G,EAEAo+G,EAAYtjM,UAAUw7C,mBAAmB8nJ,EAAYj9E,mBAAoB,CAAExpiB,OAAQ,CAAErrB,MAAO8xoB,EAAYj9E,mBAAmBxpiB,OAAOrrB,MAAOkG,OAAQ4roB,EAAYj9E,mBAAmBxpiB,OAAOnlB,OAAQm4B,EAAGA,EAAG9+B,EAAGA,KAIxMuyoB,EAAYtjM,UAAUw7C,mBAAmB8nJ,EAAYj9E,mBAAoB,CAAExpiB,OAAQ,CAAErrB,MAAO8xoB,EAAYj9E,mBAAmBxpiB,OAAOrrB,MAAOkG,OAAQ4roB,EAAYj9E,mBAAmBxpiB,OAAOnlB,OAAQm4B,EAAGA,KAEtMyzmB,EAAYtjM,UAAUk5C,eAAeoqJ,EAAYj9E,mBAAmBp3V,UAAWp4O,KAAKwvkB,mBAAmB3uE,2BAC3G,CACJ,EAKAqpJ,EAAmBxopB,UAAUkrpB,gBAAkB,SAAUE,EAAWC,GAChE,IAAI30a,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,EAKnDt+a,GAJUnuC,KAAKopd,cAAc/rS,WAAW,YAAc,GAE7Cr9K,KAAKopd,cAAc/rS,WAAW,qBAAuB+6D,GAE7CzxE,WAAW,OAE5Bt2I,EAAWrwB,KAAK0qpB,gBAAgBthpB,MAAMinB,SACtCrwB,KAAKmpd,UAAU+hF,iBAAiBtue,YAAc+zZ,GAAU4rF,MAAkD,SAA1Cv8iB,KAAK0qpB,gBAAgBthpB,MAAM0/B,WAC3FqF,EAAQxmC,KAAO,QAAe0oB,EAAW,IAAMrwB,KAAK0qpB,gBAAgBthpB,MAAMyyD,WAG1E1tB,EAAQxmC,KAAO0oB,EAAW,IAAMrwB,KAAK0qpB,gBAAgBthpB,MAAMyyD,WAE/D,IAAImxlB,EAAkB,GAElBn2J,EAAY,GACZo2J,EAAejtpB,KAAK0qpB,gBAAgBjhpB,MACxC,GAAIwjpB,EAAa1lpB,QAAQ,OAAS,EAAG,CACjCsvf,EAAYo2J,EAAazlpB,MAAM,MAC/B,IAAK,IAAI4yG,EAAI,EAAGA,EAAIy8Y,EAAUrzf,OAAQ42G,IAAK,CAEvC,IAAI8yiB,EAAe/+mB,EAAQ+8a,YAAY2rC,EAAUz8Y,IAE7C+yiB,EAAsBh/mB,EAAQ+8a,YAAY8hM,GAC1CE,EAAavyoB,MAAQwyoB,EAAoBxyoB,QACzCqyoB,EAAkBn2J,EAAUz8Y,GAEpC,CACAp6G,KAAKqqpB,uBAAwB,CACjC,MAEI2C,EAAkBC,EAClBjtpB,KAAKqqpB,uBAAwB,EAGjC,IAEI8B,EAFA31F,EAAYrohB,EAAQ+8a,YAAY8hM,GAIhCd,GAHJ77nB,EAAWlQ,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMinB,WAGfA,EAAW,EACzCrwB,KAAK03hB,oBACLy0H,EAAgB/xoB,KAAKkvG,KAAKktc,EAAU77iB,MAAQ,IAC5C3a,KAAK0qpB,gBAAgBthpB,MAAMyX,OAASqroB,EAAiB,KACrDlspB,KAAK0qpB,gBAAgBthpB,MAAMkR,IAAM,EAAe4xoB,EAAiB,EAAK,MAGtEC,EAAgB/xoB,KAAKkvG,KAAKktc,EAAU77iB,OAAS0V,EAAWjW,KAAKkvG,KAAK8jiB,GAEjEN,IACD9spB,KAAK0qpB,gBAAgBthpB,MAAMyX,OAASqroB,EAAiB,MAEzDlspB,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAQwxoB,EAAgB,KACnD,IAAIh9nB,EAAWnvB,KAAKopd,cAAcwvE,aAAaxgT,GAAaj4N,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMwO,MAClG,GAAIuI,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OAASwU,EAE/C,GADAnvB,KAAKqqpB,uBAAwB,EACzBrqpB,KAAK4riB,iBAAmBkhH,EAAW,CACnCX,GAlBc,EAmBdnspB,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAQwxoB,EAAgB,KACnD,IAAIxxoB,EAAQmyoB,EAAaX,EAAgBnspB,KAAKopd,cAAc+B,gBACxDjxc,EAAIiG,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMwO,MAC1C+C,GAAS3a,KAAKopd,cAAcwvE,aAAaxgT,KACzCl+N,EAAIla,KAAKopd,cAAcwvE,aAAaxgT,GAAa+za,GAErDnspB,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAOsC,EAAI,IAC1C,MAEIla,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAQwU,EAAW,IAG1D,EAKA+6nB,EAAmBxopB,UAAUmppB,kBAAoB,SAAUt3oB,GAEvD,IAAInG,EAASmG,EAAMnG,OACnBpN,KAAKghB,eAAiB,EACtBhhB,KAAKkhB,aAAe,EACA,IAAhB3N,EAAMiE,OAAepK,IACrBpN,KAAKghB,eAAiB5T,EAAO4T,eAC7BhhB,KAAKkhB,aAAe9T,EAAO8T,cAEX,IAAhB3N,EAAMiE,OAAwC,MAAzBlY,OAAOs/E,gBAA+D,KAArCt/E,OAAOs/E,eAAenqD,WAC5Ez0B,KAAK0nO,gBAAiB,EAGtB1nO,KAAK0nO,gBAAiB,CAE9B,EAOAwib,EAAmBxopB,UAAUgjhB,eAAiB,SAAUlnB,EAAiB3wB,EAAYz0P,QAC9D,IAAfy0P,IAAyBA,EAAa,MAC1C7se,KAAKw9f,gBAAkB,IACnB,QAAkBplR,KAClBA,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,GAEnDogB,IACAz0P,EAAYy0P,EAAWz0P,YAEvB,WAA6B,OAAfy0P,GAA2E,IAApD7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,QAC9ExD,KAAKg5kB,uBAETh5kB,KAAK0qpB,gBAAgBhznB,GAAK13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,aAAe0gN,EAAY,IAAMp4O,KAAKmqpB,cAC5F,IAyGIoC,EAzGA1iM,EAAU7pd,KAAKopd,cAAc/rS,WAAW,YAAc,GACtDk5T,EAAU73e,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,GACrF84O,EAAalxd,KAAKopd,cAAc+B,gBAqDpC,GApDAnrd,KAAK0qpB,gBAAgBjhpB,MAASoje,GAAcA,EAAWuB,YAAevB,EAAWuB,YAAcpue,KAAKynkB,YACpGznkB,KAAK0qpB,gBAAgBthpB,MAAMglB,UAAY,aACvCpuB,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAS4lf,EAAkB,EAAI,KAC1Dx9f,KAAK0qpB,gBAAgBthpB,MAAMkR,IAAQkjf,EAAkB,EAAMx9f,KAAKo6mB,cAAgBlpJ,EAAc,EAAK,KAC/Flxd,KAAKmpd,UAAU+hF,iBAAiBmD,cAChCruiB,KAAK0qpB,gBAAgBthpB,MAAM+sE,UAAY,YAGvCn2E,KAAK0qpB,gBAAgBthpB,MAAM+sE,UAAY,aAEvC02Z,EACA7se,KAAKqtpB,oBAAoBn8L,EAAY2b,EAAWzrd,YAGhDphB,KAAKqtpB,oBAAoBn8L,GAEzBlxd,KAAK09e,OACL19e,KAAK0qpB,gBAAgBthpB,MAAM0/B,WAAa,OAGxC9oC,KAAK0qpB,gBAAgBthpB,MAAM0/B,WAAa,SAExC9oC,KAAK29e,SACL39e,KAAK0qpB,gBAAgBthpB,MAAMwzD,UAAY,SAGvC58D,KAAK0qpB,gBAAgBthpB,MAAMwzD,UAAY,SAE3C58D,KAAK0qpB,gBAAgBthpB,MAAMumB,eAAiB,OACxC3vB,KAAK69e,cACL79e,KAAK0qpB,gBAAgBthpB,MAAMumB,eAAiB,aAE5C3vB,KAAK05kB,kBACL15kB,KAAK0qpB,gBAAgBthpB,MAAMumB,eAAiB,gBAE5C3vB,KAAKmpd,UAAUj9Q,WACflsM,KAAK0qpB,gBAAgBthpB,MAAMqlB,UAAY,QACvCzuB,KAAK0qpB,gBAAgBthpB,MAAMuN,UAAY,MACvC3W,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAS4lf,EAAkB,EAAMx9f,KAAKsuiB,YAAcp9E,EAAa,GAG5Flxd,KAAK0qpB,gBAAgBthpB,MAAMqlB,UAAYzuB,KAAKyuB,UAAUvlB,cAE1DlJ,KAAK0qpB,gBAAgBthpB,MAAMsoC,YAAc1xC,KAAK0xC,YAC9C1xC,KAAK0qpB,gBAAgBthpB,MAAM6kB,MAAQjuB,KAAKi2a,UACxCj2a,KAAK0qpB,gBAAgBthpB,MAAMooB,WAAaxxB,KAAKg2d,UACzC6W,GAAcA,EAAWlgd,SAAWkgd,EAAWlgd,QAAQtP,SAAS,KAChErd,KAAK0qpB,gBAAgBthpB,MAAMwlB,QAAUi+c,EAAWlgd,QAAQtP,SAAS,GAAGjU,MAAMwlB,UAE9C,IAA5B5uB,KAAK03hB,oBACL13hB,KAAKmpd,UAAUppY,eAAeq4J,GAE9By0P,GAAcA,EAAWlgd,SAAWkgd,EAAWlgd,QAAQqZ,OAAQ,CAC/D,IAAI08hB,EAAmB71F,EAAWlgd,QAAQqZ,OACtC08hB,EAAiB9qjB,OACjB5X,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAS8qjB,EAAqB,KAAIxxG,EAAc,MAE3EwxG,EAAiBpojB,MACjBta,KAAK0qpB,gBAAgBthpB,MAAMkR,IAAQoojB,EAAoB,IAAIxxG,EAAc,MAG7Elxd,KAAK0qpB,gBAAgBthpB,MAAMyX,OAAS6hjB,EAAiB7hjB,OAAU6hjB,EAAiB7hjB,OAASqwc,EAAc,KAAQlxd,KAAKo6mB,cAAgBlpJ,EAAc,KAElJlxd,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAQ+njB,EAAiB/njB,MAAS+njB,EAAiB/njB,MAAQu2c,EAAc,KAAQlxd,KAAKsuiB,YAAcp9E,EAAc,KAC7Ilxd,KAAKwvkB,mBAAqB3iG,EAC1B7se,KAAKyqpB,aAAezqpB,KAAKwvkB,mBAAmBphG,YAC5Cpue,KAAKwvkB,mBAAmBphG,YAAc,GACtCpue,KAAK0qpB,gBAAgBthpB,MAAMsoC,YAAc1xC,KAAKwvkB,mBAAmBv5G,YACjEj2d,KAAK0qpB,gBAAgBthpB,MAAM6kB,MAAQjuB,KAAKwvkB,mBAAmBv5J,UAC3Dj2a,KAAK0qpB,gBAAgBthpB,MAAMooB,WAAaxxB,KAAKwvkB,mBAAmBx5G,WACpB,IAAxCh2d,KAAKwvkB,mBAAmB7nkB,KAAK+1e,SAC7B19e,KAAK0qpB,gBAAgBthpB,MAAM0/B,WAAa,SAEE,IAA1C9oC,KAAKwvkB,mBAAmB7nkB,KAAKg2e,WAC7B39e,KAAK0qpB,gBAAgBthpB,MAAMwzD,UAAY,WAEM,IAA7C58D,KAAKwvkB,mBAAmB7nkB,KAAKk2e,cAC7B79e,KAAK0qpB,gBAAgBthpB,MAAMumB,eAAiB,cAEC,IAA7C3vB,KAAKwvkB,mBAAmB7nkB,KAAKi2e,cAC7B59e,KAAK0qpB,gBAAgBthpB,MAAMumB,eAAiB,gBAE5C3vB,KAAKmpd,UAAUj9Q,WACflsM,KAAK0qpB,gBAAgBthpB,MAAMqlB,UAAY,QACvCzuB,KAAK0qpB,gBAAgBthpB,MAAMuN,UAAY,OAElC3W,KAAKwvkB,mBAAmB/gjB,YAC7BzuB,KAAK0qpB,gBAAgBthpB,MAAMqlB,UAAYzuB,KAAKwvkB,mBAAmB/gjB,WAEnEzuB,KAAK0qpB,gBAAgBthpB,MAAMinB,SAAYrwB,KAAKwvkB,mBAAmBn/iB,SAAW6gc,EAAc,KACxFlxd,KAAK0qpB,gBAAgBthpB,MAAMyyD,WAAa77D,KAAKwvkB,mBAAmB3zgB,WAChE77D,KAAKmpd,UAAUw7C,mBAAmB3kgB,KAAKwvkB,mBAAoB,CAAC,EAChE,CACIxvkB,KAAKopd,cAAc0vD,sBACnB94gB,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAQuI,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMwO,MAAS2+d,EAAQ3iS,WAAa,MAE3G5zM,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,EACvEpqpB,KAAKmpd,UAAU+hF,iBAAiBmD,eAChCruiB,KAAK4spB,gBAAgBpvJ,EAAgBtjf,EAAGsjf,EAAgBxkd,GAE5Dh5C,KAAK0qpB,gBAAgBthpB,MAAM8mB,YAAelwB,KAAKsqpB,oBAAsBp5L,EAAc,KACnFlxd,KAAK0qpB,gBAAgBthpB,MAAMigC,WAAcrpC,KAAKuqpB,oBAAuBpqoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMinB,UAAY6gc,EAAclxd,KAAKwqpB,iBAAmBt5L,EAAc,KAE3Kq7L,EAAcpsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMinB,UAAY6gc,GAAelxd,KAAKwqpB,gBAAkB,GACtGxqpB,KAAK0qpB,gBAAgBthpB,MAAMigC,WAAelpB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMigC,YAAekjnB,EAAa,KAC5G1iM,EAAQnmd,YAAY1D,KAAK0qpB,kBAEpB1qpB,KAAKmpd,UAAU+hF,iBAAiBmD,eAAkBruiB,KAAKo6mB,cAAgBlpJ,EAAclxd,KAAK0qpB,gBAAgB71kB,cAAgBjqE,SAAS5K,KAAK0qpB,gBAAgBthpB,MAAMyX,QAAU7gB,KAAK0qpB,gBAAgB71kB,eAC9L70E,KAAK0qpB,gBAAgBthpB,MAAMyX,OAAS7gB,KAAK0qpB,gBAAgB71kB,aAAe,MAE5E70E,KAAK06e,mBAAoB,EACzB16e,KAAK0qpB,gBAAgB90oB,SACW,IAA5B5V,KAAK03hB,oBAA+B13hB,KAAK0qpB,gBAAgBjhpB,QAAUzJ,KAAKynkB,cACxEznkB,KAAK0qpB,gBAAgB1viB,SACrBh7G,KAAKopd,cAAc+3C,oBAAqB,GAE5CnhgB,KAAKw9f,gBAAgBt7f,KAAK0I,SAAS5K,KAAK0qpB,gBAAgBthpB,MAAMwO,MAAQs5c,EAAYtmd,SAAS5K,KAAK0qpB,gBAAgBthpB,MAAMkR,KAAO42c,EAAYtmd,SAAS5K,KAAK0qpB,gBAAgBthpB,MAAMuR,OAASu2c,EAAYtmd,SAAS5K,KAAK0qpB,gBAAgBthpB,MAAMyX,QAAUqwc,EACpP,EACAg5L,EAAmBxopB,UAAU2rpB,oBAAsB,SAAUn8L,EAAY9vc,GACrEphB,KAAK0qpB,gBAAgBthpB,MAAMyX,OAAU7gB,KAAKo6mB,cAAgBlpJ,EAAc,KACxElxd,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAS3a,KAAKsuiB,YAAcp9E,EAAc,KACrElxd,KAAK0qpB,gBAAgBthpB,MAAMs4C,YAAe1hD,KAAK0hD,YAAcwva,EAAc,KAC3Elxd,KAAK0qpB,gBAAgBthpB,MAAMinB,SAAYrwB,KAAKqwB,SAAW6gc,EAAc,KACrElxd,KAAK0qpB,gBAAgBthpB,MAAMyyD,WAAa77D,KAAK67D,WAC7C77D,KAAK0qpB,gBAAgBrpoB,UAAW,QAAkBD,GAAcphB,KAAKohB,WAAaA,CACtF,EAIA8ooB,EAAmBxopB,UAAU00hB,iBAAmB,WAC5C,GAA8B,OAA1B92hB,OAAOs/E,eAAyB,CAChC5+E,KAAKi7e,aAAe37e,OAAOs/E,eAAenqD,WAC1C,IAAI67kB,EAAW5xmB,SAAS6F,cAAc,YACtC+rmB,EAASC,gBAAkB,OAC3BD,EAASvtgB,YAAc/iG,KAAKi7e,aAC5Bq1H,EAASlnmB,MAAM+kB,SAAW,QAC1BzvB,SAAS+c,KAAK/X,YAAY4smB,GAC1BA,EAASt1f,SACT,IACIt8G,SAAS8xmB,YAAY,OACzB,CACA,MAAO5+c,GACHphE,QAAQC,KAAK,4BAA6BmhE,EAC9C,CACA,QACQ0+c,GACA5xmB,SAAS+c,KAAKghC,YAAY6zjB,EAElC,CACJ,CACJ,EAMA45C,EAAmBxopB,UAAUw0hB,kBAAoB,SAAU9ohB,GACvD,GAA0B,KAAtBpN,KAAKi7e,cAAuB7te,EAAQ,CAEpC,IAAIie,EAAOje,EAAO3D,MAClB2D,EAAO3D,MAAQ4hB,EAAKlf,MAAM,EAAGnM,KAAKghB,gBAAkBhhB,KAAKi7e,aAAe5vd,EAAKlf,MAAMnM,KAAKkhB,aAAcmK,EAAK7nB,OAC/G,CAEA,IAAIkzG,EAASnjG,MACbvT,KAAK4qpB,kBAAkBl0iB,EAC3B,EAMAwziB,EAAmBxopB,UAAUy0hB,gBAAkB,SAAU/ohB,GACrD,GAA8B,OAA1B9N,OAAOs/E,eAAyB,CAEhC,IAAIvzD,EAAOje,EAAO3D,MAClBzJ,KAAKi7e,aAAe37e,OAAOs/E,eAAenqD,WAC1CrnB,EAAO3D,MAAQ4hB,EAAKlf,MAAM,EAAGiB,EAAO4T,gBAAkBqK,EAAKlf,MAAMiB,EAAO8T,cACxE,IAAIovlB,EAAW5xmB,SAAS6F,cAAc,YACtC+rmB,EAASC,gBAAkB,OAC3BD,EAASvtgB,YAAc/iG,KAAKi7e,aAC5Bq1H,EAASlnmB,MAAM+kB,SAAW,QAC1BzvB,SAAS+c,KAAK/X,YAAY4smB,GAC1BA,EAASt1f,SACT,IACIt8G,SAAS8xmB,YAAY,MACzB,CACA,MAAO5+c,GACHphE,QAAQC,KAAK,4BAA6BmhE,EAC9C,CACA,QACQ0+c,GACA5xmB,SAAS+c,KAAKghC,YAAY6zjB,EAElC,CACJ,CACJ,EAOA45C,EAAmBxopB,UAAU4xiB,gCAAkC,SAAU/5D,EAAkB7vB,GAEvF,IAAImjB,EAAa0M,EACjB,GAAI1M,EAAW4xD,UAAW,CACtB,IAUI9xD,EAVAysB,EAAe,KACnB,GAAIvsB,EAAW0sE,aAAc,CACzBngD,EAAe,GACf,IAAK,IAAIh/Y,EAAI,EAAGA,EAAIyyX,EAAW0sE,aAAa/1iB,OAAQ42G,IAAK,CACrD,IAAIp8F,EAAQ,CAAE9D,EAAG2yd,EAAW0sE,aAAan/b,GAAG6mH,EAAGjoL,EAAG6zb,EAAW0sE,aAAan/b,GAAG8mH,GAC7Ek4R,EAAal3f,KAAK8b,EACtB,CACJ,CAEA6ud,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqB71iB,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAU+hF,kBAG9Jr+D,EAAWi5F,oBAAsBj5F,EAAWojJ,oBAAsBpjJ,EAAWojJ,oBAAsBjwnB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GACvK,IAAIm+K,GAAqB,QAAkBn+K,EAAW1c,OAAOlvP,GAA2B4rQ,EAAW1c,OAAOj2c,EAAxC2yd,EAAW1c,OAAOlvP,EAChFgqb,GAAqB,QAAkBp+K,EAAW1c,OAAOjvP,GAA2B2rQ,EAAW1c,OAAOn3a,EAAxC6zb,EAAW1c,OAAOjvP,EAChFosb,EAAwBzgL,EAAW1c,OAAO1F,MAAQoiB,EAAW1c,OAAO1F,MAAQoiB,EAAW1c,OAAOx1c,MAC9F4yoB,EAAyB1gL,EAAW1c,OAAOzF,OAASmiB,EAAW1c,OAAOzF,OAASmiB,EAAW1c,OAAOtvc,OAErG8rd,EAAQ,CACJ8I,OAAQ5I,EAAWunE,OAAQ0xB,oBAAqBj5F,EAAWi5F,oBAAqBrjE,aAAc51B,EAAW4iE,aAAcpma,QAASwjW,EAAW14U,QAASz8H,GAAI,WACxJ8+b,YAAaqW,EAAWqqE,OAAQ9oE,YAAavB,EAAWiqE,WAAY7gF,YAAa4W,EAAWuK,YAC5FlhB,UAAW2W,EAAWwK,UAAWrhB,UAAW6W,EAAWmqE,UACvDhxgB,OAAQ,CACJ9rB,EAAG8woB,EAAmBhymB,EAAGiymB,EAAmBrzoB,KAAMozoB,EAAmB1woB,IAAK2woB,EAC1EtwoB,MAAO2yoB,EAAuBzsoB,OAAQ0soB,EAAwBv1oB,MAAO60d,EAAW1c,OAAO95D,MACvF77Y,OAAQqyd,EAAW1c,OAAOpF,QAC3BmuB,UAAWrM,EAAW2lE,UAAW78E,oBAAqB,WAEzDv9O,UAAWsxO,EAAY96b,QAASi+c,EAAWsK,QAASlhE,UAAW42D,EAAWoqE,UAAW5mhB,SAAUw8c,EAAWpc,SAC1G50Z,WAAYgxa,EAAWqK,WAAY6jB,MAAOluB,EAAWiqE,WAAYrohB,UAAWo+c,EAAWkqE,UAEvF/xB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAYA,EAAWunE,QAASC,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QACrPzsiB,KAAM,CAAE+1e,OAAQ7Q,EAAWsqE,KAAKoF,KAAM5+D,SAAU9Q,EAAWsqE,KAAKmF,OAAQ1+D,YAAa/Q,EAAWsqE,KAAKqF,UAAW3+D,YAAahR,EAAWsqE,KAAKsF,WAC7I57C,2BAA4B7ggB,KAAK4vG,YAAYi9X,GAAa0I,mBAAoB1I,EAAWgpE,mBAEzFM,WAAYn2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GAAa60B,QAAS70B,EAAWsjJ,QAASn6E,cAAenpE,EAAWkpE,cAAe30hB,WAAYyrd,EAAW20E,YAElKxhjB,KAAKmpd,UAAU+sB,iBAAiBmxD,iBAAiB39E,EAAYijB,EAAO,wBACxE,CACJ,EAOAu9K,EAAmBxopB,UAAUowiB,oCAAsC,SAAUv4D,EAAkB7vB,GAE3F,IAAImjB,EAAa0M,EAEjB,GADA1M,EAAW8oE,kBAAoB31iB,KAAKmpd,UAAU+sB,iBAAiB45I,mBAAmBjjJ,EAAYnjB,EAAYmjB,EAAW4xD,WACjH5xD,EAAW4xD,UAAW,CACtB,IAAIrlC,EAAe,KACnB,GAAIvsB,EAAW0sE,aAAc,CACzBngD,EAAe,GACf,IAAK,IAAIh/Y,EAAI,EAAGA,EAAIyyX,EAAW0sE,aAAa/1iB,OAAQ42G,IAAK,CACrD,IAAIp8F,EAAQ,CAAE9D,EAAG2yd,EAAW0sE,aAAan/b,GAAG6mH,EAAGjoL,EAAG6zb,EAAW0sE,aAAan/b,GAAG8mH,GAC7Ek4R,EAAal3f,KAAK8b,EACtB,CACJ,CAEA6ud,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqBhpE,EAAWgpE,mBAAqB71iB,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAU+hF,kBAC1Jr+D,EAAW2rE,WACX3rE,EAAWgpE,mBAAmB16D,OAAStO,EAAW2rE,UAGtD3rE,EAAWi5F,oBAAsBj5F,EAAWojJ,oBAAsBpjJ,EAAWojJ,oBAAsBjwnB,KAAKmpd,UAAU+sB,iBAAiB49E,oCAAoCjnF,GACvK,IAAIm+K,EAAoBn+K,EAAW1c,OAAOlvP,EAAI4rQ,EAAW1c,OAAOlvP,EAAI4rQ,EAAW1c,OAAOj2c,EAClF+woB,EAAoBp+K,EAAW1c,OAAOjvP,EAAI2rQ,EAAW1c,OAAOjvP,EAAI2rQ,EAAW1c,OAAOn3a,EAClFr+B,EAAQkyd,EAAW1c,OAAO1F,MAAQoiB,EAAW1c,OAAO1F,MAAQoiB,EAAW1c,OAAOx1c,MAC9EkG,EAASgsd,EAAW1c,OAAOzF,OAASmiB,EAAW1c,OAAOzF,OAASmiB,EAAW1c,OAAOtvc,OAqBrF,MAjBQ,CACJ40d,OAAQ5I,EAAWunE,OAAQ0xB,oBAAqBj5F,EAAWi5F,oBAAqBrjE,aAAc51B,EAAW4iE,aAAcpma,QAASwjW,EAAW14U,QAASz8H,GAAI,WACxJ8+b,YAAaqW,EAAWqqE,OAAQ9oE,YAAavB,EAAWiqE,WAAY7gF,YAAa4W,EAAWuK,YAC5FlhB,UAAW2W,EAAWwK,UAAWrhB,UAAW6W,EAAWmqE,UACvDhxgB,OAAQ,CACJ9rB,EAAG8woB,EAAmBhymB,EAAGiymB,EAAmBrzoB,KAAMozoB,EAAmB1woB,IAAK2woB,EAC1EtwoB,MAAOA,EAAOkG,OAAQA,EAAQ7I,MAAO60d,EAAW1c,OAAO95D,MACvD77Y,OAAQqyd,EAAW1c,OAAOpF,QAC3BkuB,aAAcpM,EAAW2lE,UAAW78E,oBAAqB,WAE5Dv9O,UAAWsxO,EAAY96b,QAASi+c,EAAWsK,QAASlhE,UAAW42D,EAAWoqE,UAAW5mhB,SAAUw8c,EAAWpc,SAC1G50Z,WAAYgxa,EAAWqK,WAAY6jB,MAAOluB,EAAWiqE,WAErD9xB,SAAUhlhB,KAAKmpd,UAAU+sB,iBAAiBi+D,sBAAsBtnE,EAAW8iE,SAAU9iE,EAAYA,EAAWunE,QAASC,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QACrP+B,WAAYn2iB,KAAKmpd,UAAU0jB,WAAWqjJ,cAAcrjJ,GACpDlle,KAAM,CAAE+1e,OAAQ7Q,EAAWsqE,KAAKoF,KAAM5+D,SAAU9Q,EAAWsqE,KAAKmF,OAAQ1+D,YAAa/Q,EAAWsqE,KAAKqF,UAAW3+D,YAAahR,EAAWsqE,KAAKsF,WAAa/yF,WAAYA,EAAY6rB,mBAAoB1I,EAAWgpE,mBAAoBG,cAAenpE,EAAWkpE,cAAe30hB,WAAYyrd,EAAW20E,WAAY9/C,QAAS70B,EAAWsjJ,QAG7U,CACJ,EASA+5B,EAAmBxopB,UAAUw2nB,2BAA6B,SAAUnwH,EAAkBnhd,GAS9EA,EAPCmhd,EAIKA,EAAiBnhd,OAGdmhd,EAAiBnhd,OAFjB,CAAE1sC,EAAG,EAAG8+B,EAAG,IAJpB+ud,EAAmB,CAAEnhd,OAAQ,CAAE1sC,EAAG,EAAG8+B,EAAG,GAAK0wa,WAAY,EAAG/uc,WAAOlc,EAAWoiB,YAAQpiB,IAC5DmoD,OAO9B,IAAI0xkB,EAAoBt4nB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC1ExlJ,EAAiB5se,KAAKmpd,UAAU0jB,WAAWC,aAC3Clwa,EAAYmrc,EAAiBnrc,UAAYmrc,EAAiBnrc,UAAY+zZ,GAAUz1T,KAEhF2lW,EAA6B7ggB,KAAKmpd,UAAU+hF,iBAAiBrqC,2BAA6B7ggB,KAAKmpd,UAAU+hF,iBAAiBrqC,2BAA6B7ggB,KAAKmpd,UAAU03C,2BACtKtrB,EAAqBv1e,KAAKmpd,UAAU+sB,iBAAiBqiJ,eAAev4nB,KAAKmpd,UAAU+hF,kBACnF46B,EAAsB9lkB,KAAKmpd,UAAU+hF,iBAAiB46B,oBAAsB9lkB,KAAKmpd,UAAU+hF,iBAAiB46B,oBAAsB9lkB,KAAKmpd,UAAUosB,mBAAmBuwF,oBACxKvwF,EAAmB4F,SAAS4sB,EAAiB5sB,QAAS4sB,EAAiB5sB,OACvE5F,EAAmBpld,UAAY43e,EAAiB53e,UAAY43e,EAAiB53e,UAAY,EACzFold,EAAmB5jd,SAAWo2e,EAAiBp2e,SAAWo2e,EAAiBp2e,SAAW,EACtF4jd,EAAmBpmd,SAAW44e,EAAiB54e,SAAW44e,EAAiB54e,SAAW,EACtFomd,EAAmBnld,UAAY23e,EAAiB33e,UAAY23e,EAAiB33e,UAAY,EACzF23e,EAAiBptf,MAAQotf,EAAiBptf,MAAQotf,EAAiBptf,MAAQ,IAC3Eotf,EAAiBlnf,OAASknf,EAAiBlnf,OAASknf,EAAiBlnf,OAAS,KAE9E,IAAIske,EAAqB,GACrBqoK,EAAW,CACXv9B,oBAAqBloH,EAAiB+9D,oBAAsB/9D,EAAiB+9D,oBAAsBA,EACnGtzB,UAAW5lE,EACX6xD,UAAW,WACXwqH,gBAAiB,UACjBwE,iBAAkB,KAClB73G,2BAA4B7tC,EAAiBlH,2BAA6BkH,EAAiBlH,2BAA6BA,EACxHg1C,mBAAoBtgE,EACpB6+D,OAAQrsC,EAAiBtyB,OAASsyB,EAAiBtyB,OAAS,QAC5Di4K,OAAQ,CAAEC,iBAAkB,EAAGC,eAAgB,EAAGnjM,MAAOs9C,EAAiBrmd,YAAcqmd,EAAiBrmd,YAAc,GACvH+mgB,YAAa,CAAEgwE,SAAS,EAAM17E,EAAG,IAAKmsG,KAAM,EAAG7rf,EAAG,EAAGy/Y,EAAG,KACxD3sF,OAAQ,CAAElvP,EAAGr6K,EAAO1sC,EAAGgnN,EAAGt6K,EAAO5N,EAAGyxa,MAAOs9C,EAAiBptf,MAAO+vc,OAAQq9C,EAAiBlnf,OAAQ80Y,KAAM/uW,EAAO1sC,EAAGm6X,IAAKztV,EAAO5N,EAAGq9W,MAAOzvW,EAAO1sC,EAAI6tf,EAAiBptf,MAAOowc,OAAQnka,EAAO5N,EAAI+ud,EAAiBlnf,QACjNgtoB,aAAc,KACdz3G,MAAO,CAAEqiF,SAAS,EAAO17E,EAAG,GAAImsG,KAAM,GAAK7rf,EAAG,EAAGy/Y,EAAG,KACpDnN,SAAU,KACV9jL,YAAaysQ,EACbpiF,WAAYnuC,EAAiBouC,WAAapuC,EAAiBouC,WAAa,KACxEwiF,mBAAoB,KACpB3hF,UAAWjvC,EAAiB/xC,UAAY+xC,EAAiB/xC,UAAY,YACrE83L,SAAS,EACTC,eAAe,EACf52G,KAAM,CAAEoF,KAAM3/e,GAAa+zZ,GAAU4rF,KAAqBD,OAAQ1/e,GAAa+zZ,GAAU2rF,OAAuBE,UAAW5/e,GAAa+zZ,GAAUk4G,cAA8BpsB,UAAW7/e,GAAa+zZ,GAAU8rF,WAClNxF,UAAWlvC,EAAiB9xF,UAAY8xF,EAAiB9xF,UAAY,OACrEihE,WAAY6wB,EAAiBlsc,WAAaksc,EAAiBlsc,WAAa,YACxE40Z,SAAUs3C,EAAiB13e,SAAW03e,EAAiB13e,SAAW,GAClE29nB,uBAAwB,WACxBC,WAAY,KACZl4G,eAAe,EACf2E,SAAQ3yC,EAAiB5sB,QAAS4sB,EAAiB5sB,OACnDg1I,QAAuC,OAA7BpoH,EAAiBrG,cAAiDjjgB,IAA7BspgB,EAAiBrG,SAAyBqG,EAAiBrG,QAC1Glgd,MAAO,KACP0smB,gBAAiB,YACjB11B,SAAU,KACV1hF,WAAY/uC,EAAiB0/D,YAAc1/D,EAAiB0/D,YAAc,YAC1Eh4B,aAAc,GACdxtM,KAAM2qI,EACNuK,QAAS4wB,EAAiBn5e,QAAUm5e,EAAiBn5e,QAAU,EAC/Du/nB,KAAM,KACNC,SAAU,KACVC,cAAe,KACfn3G,OAAQ,EACRsK,aAAYz5C,EAAiB3mf,YAAa2mf,EAAiB3mf,WAC3Do5a,MAAO,WACP+5G,WAAY,OACZn9D,YAAa2wB,EAAiBr2d,YAAcq2d,EAAiBr2d,YAAc,YAC3EyiH,QAAS,WACT1G,KAAMs6W,EAAiB0/D,YAAc1/D,EAAiB0/D,YAAc,YACpE1wB,UAAWhvC,EAAiB20C,cAAgB30C,EAAiB20C,cAAgB,OAC7E4xG,gBAAiB,KACjBj3K,UAAW0wB,EAAiBrmd,YAAcqmd,EAAiBrmd,YAAc,EACzEoskB,gCAAgC,GAIpC,OADA3oI,EAAmB,GAAKqoK,EACjB,CAAEroK,mBAAoBA,EACjC,EAIA+kK,EAAmBxopB,UAAUsqpB,iBAAmB,SAAU37nB,GACtD,IACIk+nB,EAAa,EAGjB,MAAO,CAJW,EAGlBA,EAA+Cl+nB,EAAW,IAA5Ck+nB,EADQ,GAG1B,EAKArE,EAAmBxopB,UAAU2gmB,eAAiB,SAAU7kG,GACpD,IAAItsC,EAAalxd,KAAKopd,cAAc+B,gBACpCnrd,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAQ4lf,EAAgBtjf,EAAIg3c,EAAc,KACrElxd,KAAK0qpB,gBAAgBthpB,MAAMkR,IAAOkjf,EAAgBxkd,EAAIk4a,EAAc,KACpElxd,KAAK0qpB,gBAAgBthpB,MAAMyX,OAAU28e,EAAgB38e,OAASqwc,EAAc,KAC5Elxd,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAS6if,EAAgB7if,MAAQu2c,EAAc,KAC1Elxd,KAAK0qpB,gBAAgBthpB,MAAMs4C,YAAe1hD,KAAK0hD,YAAcwva,EAAc,KAC3Elxd,KAAK0qpB,gBAAgBthpB,MAAMinB,SAAYrwB,KAAKqwB,SAAW6gc,EAAc,IACzE,EACOg5L,CACX,CAj6CuC,GCHnCsE,GAA8B,WAC9B,SAASA,EAAa/+J,EAAWrmC,GAC7Bppd,KAAKmpd,UAAYsmC,EACjBzvf,KAAKopd,cAAgBA,EACrBppd,KAAK0qpB,gBAAkBhspB,SAAS6F,cAAc,SAC9CvE,KAAK0qpB,gBAAgB9uoB,iBAAiB,WAAY5b,KAAK2qpB,mBAAmBhwnB,KAAK36B,OAC/EA,KAAKowB,UAAY,KACjBpwB,KAAKmvB,SAAW,IAChBnvB,KAAKqwB,SAAW,GAChBrwB,KAAKsghB,WAAY,EACjBtghB,KAAK0qpB,gBAAgBthpB,MAAM+kB,SAAW,WACtCnuB,KAAK0qpB,gBAAgBthpB,MAAMyyD,WAAa,WAC5C,CA6KA,OAvKA2ylB,EAAa9spB,UAAUijhB,UAAY,SAAUnnB,EAAiB3wB,GAC1D,IAAIz0P,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,EACnD5C,EAAU7pd,KAAKopd,cAAc/rS,WAAW,YAAc,GACtD6zS,EAAalxd,KAAKopd,cAAc+B,gBAWpC,GAVAnrd,KAAK0qpB,gBAAgBjhpB,MAAQoje,EAAW02B,aACxCvjgB,KAAK0qpB,gBAAgB1viB,SACrB6xX,EAAW02B,aAAe,GAC1BvjgB,KAAKmpd,UAAUw7C,mBAAmB93B,EAAY,CAAC,GAC/C7se,KAAK0qpB,gBAAgBthpB,MAAMwO,KAAS4lf,EAAiB,EAAItsC,EAAc,KACvElxd,KAAK0qpB,gBAAgBthpB,MAAMkR,IAAQkjf,EAAiB,EAAItsC,EAAc,KACtElxd,KAAK0qpB,gBAAgBthpB,MAAMgnB,UAAapwB,KAAKowB,UAAY8gc,EAAc,KACvElxd,KAAK0qpB,gBAAgBthpB,MAAM+lB,SAAYnvB,KAAKmvB,SAAW+hc,EAAc,KACrElxd,KAAK0qpB,gBAAgBthpB,MAAMinB,SAAYrwB,KAAKqwB,SAAW6gc,EAAc,KACrElxd,KAAK0qpB,gBAAgBthpB,MAAMqlB,UAAY,SACnCo+c,GAAcA,EAAWlgd,SAAWkgd,EAAWlgd,QAAQqZ,OAAQ,CAE/DhmC,KAAK0qpB,gBAAgBthpB,MAAMuR,MAAQkyd,EAAWlgd,QAAQqZ,OAAOrrB,MAASkyd,EAAWlgd,QAAQqZ,OAAOrrB,MAAQ,EAAIu2c,EAAc,EAAI,KAAQlxd,KAAKmvB,SAAW+hc,EAAc,KACpK,IAAIi7L,EAAgBhsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OAC1DwxoB,EAAgBA,EAAiBnspB,KAAKmvB,SAAW+hc,EAAelxd,KAAKmvB,SAAW+hc,EAAci7L,EAC1Ft/K,EAAWlgd,QAAQqZ,OAAOpuB,OAE1B5X,KAAK0qpB,gBAAgBthpB,MAAMwO,MAASi1d,EAAWlgd,QAAQqZ,OAAOpuB,KAAQi1d,EAAWlgd,QAAQqZ,OAAOrrB,MAAQ,EAAMwxoB,GAA8B,EAAbj7L,IAAoBA,EAAc,MAEjK2b,EAAWlgd,QAAQqZ,OAAO1rB,MAEa,SAAnCuyd,EAAWlX,qBAAqE,uBAAnCkX,EAAWlX,qBACrB,aAAnCkX,EAAWlX,qBAAyE,YAAnCkX,EAAWlX,oBAE5D31d,KAAK0qpB,gBAAgBthpB,MAAMkR,KAAQuyd,EAAWlgd,QAAQqZ,OAAO1rB,IAAOuyd,EAAWlgd,QAAQqZ,OAAOnlB,OAAS,EAAM7gB,KAAc,WAAKkxd,EAAc,KAI9Ilxd,KAAK0qpB,gBAAgBthpB,MAAMkR,KAAQuyd,EAAWlgd,QAAQqZ,OAAO1rB,IAAOuyd,EAAWlgd,QAAQqZ,OAAOnlB,OAAS,EAAM7gB,KAAKowB,UAAY,GAAM8gc,EAAc,MAG1Jlxd,KAAK0qpB,gBAAgBjpJ,UAAY50B,EAAW4hL,eAC5CzupB,KAAK0qpB,gBAAgB7ulB,WAAagxa,EAAWhxa,WAC7C77D,KAAK0qpB,gBAAgBthpB,MAAM6kB,MAAQ4+c,EAAW52D,UAC9Cj2a,KAAK0qpB,gBAAgBthpB,MAAMilB,OAAS,sBACpCruB,KAAK0qpB,gBAAgBthpB,MAAMolB,QAAU,MACrCxuB,KAAK0qpB,gBAAgBthpB,MAAMooB,WAAaq7c,EAAWmoD,cACvD,CACAnrE,EAAQnmd,YAAY1D,KAAK0qpB,iBACzB1qpB,KAAKsghB,WAAY,EACjBtghB,KAAK0qpB,gBAAgB90oB,OACzB,EAIA44oB,EAAa9spB,UAAUippB,mBAAqB,WACxC,IAAIvya,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,EACnD5C,EAAU7pd,KAAKopd,cAAc/rS,WAAW,YAAc,GACtD6ue,EAAiB/roB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMyX,QACvDsroB,EAAgBhsoB,WAAWngB,KAAK0qpB,gBAAgBthpB,MAAMuR,OAC1D3a,KAAKsghB,WAAY,EACjB,IAAIkvD,EAAqBxvkB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAElE,GAAIs6F,EAAoB,CACpB28E,GAAkBA,EAAgB,GAAKnspB,KAAKopd,cAAc+B,gBAC1D+gM,GAAmBA,EAAiB,GAAKlspB,KAAKopd,cAAc+B,gBAE5DqkH,EAAmBjsE,aAAevjgB,KAAK0qpB,gBAAgBjhpB,MACvD+lkB,EAAmBz0E,MAAQ/6f,KAAK0qpB,gBAAgBjhpB,MAED,cAA3C+lkB,EAAmB75G,qBAAkF,YAA3C65G,EAAmB75G,qBAAgF,SAA3C65G,EAAmB75G,qBACvF,uBAA3C65G,EAAmB75G,oBACtB31d,KAAKmpd,UAAU0jB,WAAW26B,sBAAsB8yH,mBAAmB,eAAgBliZ,EAAWo3V,GAE9C,WAA3CA,EAAmB75G,qBAAoC65G,EAAmBhrE,aAC/ExkgB,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,eAAgBliZ,EAAWo3V,GAGpGxvkB,KAAKmpd,UAAUw7C,mBAAmB6qE,EAAoB,CAAC,GACvDxvkB,KAAKmpd,UAAUk5C,eAAemtE,EAAmBp3V,UAAWp4O,KAAKmpd,UAAU03C,4BAE3E,IAAI0d,EAAc7/gB,SAASkuD,eAAe5sD,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGgE,WAClFqlC,GAAeA,EAAYz5gB,YAA6C,UAA/B9E,KAAK0qpB,gBAAgBjhpB,QAC1D80gB,EAAYz5gB,WAAW,GAAG06L,cAC1B++U,EAAYz5gB,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQzJ,KAAK0qpB,gBAAgBjhpB,MAEnE80gB,EAAYz5gB,WAAW,GAAGA,YAAcy5gB,EAAYz5gB,WAAW,GAAGA,WAAW,GAAG06L,gBACrF++U,EAAYz5gB,WAAW,GAAGA,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQzJ,KAAK0qpB,gBAAgBjhpB,OAGlG,CACAogd,EAAQpta,YAAYz8C,KAAK0qpB,iBACzB,IAAIn0K,EAAU73e,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuB0gN,GAEzFp4O,KAAKmpd,UAAUqtB,cAAcD,EAASn+P,EAC1C,EASAo2a,EAAa9spB,UAAUm5nB,qBAAuB,SAAU70lB,EAAQoyM,GAE5D,IAAI4gU,EAAc,CAAC,EACnB,GAAIhzgB,EAAQ,CACR,IAAIu0lB,EAAW,EACXC,EAAY,EACZC,EAAa,OAGCh8nB,IAAd25O,IACAA,EAAYp4O,KAAKopd,cAAcqD,kBAAoB,GAEvD,IAAIttU,EAAWn/I,KAAKopd,cAAcjxO,SAASC,GAAWj5F,SAClDn5G,EAAOrrB,QAGP8/mB,GADAA,EAAcz0lB,EAAOrrB,MAAQ,GACF,GAAK8/mB,EARhB,IAQ8CA,EAR9C,KAUhBz0lB,EAAOpuB,OAEP4inB,EAAax0lB,EAAOpuB,KAAQouB,EAAOrrB,MAAQ,EAAM8/mB,EAAa,GAE9Dz0lB,EAAO1rB,MAEPignB,EAAYv0lB,EAAO1rB,IAAO0rB,EAAOnlB,OAAS,EAAK,MAI/Cm4hB,EAFa,IAAb75Z,GAA+B,IAAbA,EAEJ,CAAEvnI,KAAM4inB,EAAWlgnB,IAAKignB,EAAU5/mB,MAAQ8/mB,EArB1C,KAqBuEA,EAAa,EAAI55mB,OAAQ,KAAoB45mB,EAAYzinB,MAAO,EAAGwC,OAAQ,GAIlJ,CAAE5C,KAAM4inB,EAAWlgnB,IAAKignB,EAAU5/mB,MAAO8/mB,EAAY55mB,OAzBrD,KAyB0E7I,MAAO,EAAGwC,OAAQ,EAElH,CACA,OAAOw+hB,CACX,EAMAw1G,EAAa9spB,UAAUw3nB,uCAAyC,SAAUlzlB,GAEtE,IAAIgzgB,EAAc,CAAC,EACnB,GAAIhzgB,EAAQ,CACR,IAAIu0lB,EAAW,EACXC,EAAY,EACZC,EAAa,EAGbz0lB,EAAOykb,QAGPgwK,GADAA,EAAcz0lB,EAAOykb,MAAQ,GACF,GAAKgwK,EAJhB,IAI8CA,EAJ9C,KAMhBz0lB,EAAO2vX,OAEP6kO,EAAax0lB,EAAO2vX,KAAQ3vX,EAAOykb,MAAQ,EAAMgwK,EAAa,GAE9Dz0lB,EAAOquW,MAEPkmP,EAAYv0lB,EAAOquW,IAAOruW,EAAO0kb,OAAS,EAAK,MAGnDsuF,EAAc,CAAEphiB,KAAM4inB,EAAWlgnB,IAAKignB,EAAU5/mB,MAAO8/mB,EAAY55mB,OAhBjD,KAgBsE7I,MAAO,EAAGwC,OAAQ,EAC9G,CACA,OAAOw+hB,CACX,EACOw1G,CACX,CA1LiC,GCY7BE,GAA4B,WAQ5B,SAASA,EAAWvlM,EAAW4mC,GAC3B/vf,KAAK+opB,kBAAmB,EACxB/opB,KAAKs0nB,cAAe,EACpBt0nB,KAAK2upB,oBAAqB,EAC1B3upB,KAAK4upB,wBAAyB,EAC9B5upB,KAAK6upB,oCAAsC,GAI3C7upB,KAAK27e,eAAgB,EAIrB37e,KAAKikiB,iBAAmB,GAIxBjkiB,KAAKmqlB,eAAiB,GAItBnqlB,KAAKqpiB,oBAAqB,EAI1BrpiB,KAAKqopB,oBAAsB,GAI3BropB,KAAKgopB,oBAAsB,GAI3BhopB,KAAK8upB,mBAAqB,KAI1B9upB,KAAKk+hB,sBAAuB,EAI5Bl+hB,KAAKm+hB,oBAAsB,KAC3Bn+hB,KAAK2ge,cAAgB,KAErB3ge,KAAK+upB,sBAAwB,GAK7B/upB,KAAK0ggB,sBAAwB,GAK7B1ggB,KAAK6wnB,kBAAmB,EAKxB7wnB,KAAKi6jB,4BAA8B,GACnCj6jB,KAAKmpd,UAAYA,EACjBnpd,KAAKopd,cAAgB2mC,EACjB/vf,KAAKmpd,UAAU4qD,6BACf/zgB,KAAKs6e,2BAA6B,IAAIuzI,GAAqB7tnB,KAAKmpd,UAAWnpd,KAAKopd,gBAEhFppd,KAAKmpd,UAAUo+C,wBACfvngB,KAAKwngB,sBAAwB,IAAIsxH,GAAgB94nB,KAAKmpd,UAAWnpd,KAAKopd,gBAEtEppd,KAAKmpd,UAAUu+C,0BACf1ngB,KAAK+7e,wBAA0B,IAAIw/I,GAAkBv7nB,KAAKmpd,UAAWnpd,KAAKopd,gBAE9Eppd,KAAK4igB,sBAAwB,IAAIq+H,GAAgBjhoB,KAAKmpd,UAAWnpd,KAAKopd,eACtEppd,KAAKsof,4BAA8B,IAAIk2J,GAAsBx+oB,KAAKmpd,UAAWnpd,KAAKopd,eAClFppd,KAAKy6e,yBAA2B,IAAIyvK,GAAmBlqpB,KAAKmpd,UAAWnpd,KAAKopd,eAC5Eppd,KAAKqghB,mBAAqB,IAAImuI,GAAaxupB,KAAKmpd,UAAWnpd,KAAKopd,eAChEppd,KAAK+nf,oBAAsB,IAAIshK,GAAcrppB,KAAKmpd,UAAWnpd,KAAKopd,cACtE,CAyuNA,OA9tNAslM,EAAWhtpB,UAAUg4e,kBAAoB,SAAU34d,EAAMwinB,EAAkBC,EAAeC,GACtF,IAAI/7G,EAAsB1nhB,KAAKmpd,UAAU5rR,uBAazC,GAZAv9L,KAAKmpd,UAAUw+D,yBAAwB,GACX,UAAxB3nhB,KAAKmpd,UAAU2zC,MAAoB98f,KAAKmpd,UAAUsiC,eAClDzrf,KAAKmpd,UAAUsiC,cAAck1B,mBAE7B3ghB,KAAKmpd,UAAUsiC,eAAiBzrf,KAAKmpd,UAAUsiC,cAAcC,yBAC7D1rf,KAAKmpd,UAAUsiC,cAAcC,wBAAwBwgF,qBAEhD,SAATnrjB,GAAkB/gB,KAAKq1kB,iCACvBr1kB,KAAKmpd,UAAU2zC,KAAO,GAClB98f,KAAKmpd,UAAUsiC,eACfzrf,KAAKmpd,UAAUsiC,cAAci1B,4BAEpB,SAAT3/f,EACA/gB,KAAKgvpB,2BAEJ,GAAa,cAATjuoB,GAAiC,kBAATA,GAAqC,cAATA,EACrD/gB,KAAKs6e,6BACLt6e,KAAKs6e,2BAA2B+7C,uBAAwB,EACxDr2hB,KAAKs6e,2BAA2B2pC,0BAA0BljgB,EAAK0T,kBAGlE,GAAa,SAAT1T,GAA4B,UAATA,GAA6B,cAATA,GAAiC,WAATA,GAA8B,YAATA,EACrF/gB,KAAKwngB,uBACLxngB,KAAKwngB,sBAAsB2kE,kBAAkBprjB,QAGhD,GAAa,aAATA,GAAgC,cAATA,GAAiC,SAATA,GAA4B,WAATA,GAA8B,WAATA,EACxF/gB,KAAK+7e,yBACL/7e,KAAK+7e,wBAAwBowF,kBAAkBprjB,QAGlD,GAAa,aAATA,GAAuB/gB,KAAKy6e,yBACjCz6e,KAAKy6e,yBAAyB0xF,kBAAkB,YAChDnskB,KAAKy6e,yBAAyBi9C,oBAAqB,EACnD13hB,KAAKy6e,yBAAyBmxD,iBAAkB,OAE/C,GAAa,yBAAT7qhB,EACL/gB,KAAKopd,cAAcilB,gBAAgBqL,yBAElC,GAAa,YAAT34d,EACL/gB,KAAKopd,cAAcilB,gBAAgBsL,sBAElC,GAAa,QAAT54d,EACL/gB,KAAK+nf,oBAAoBrO,yBAExB,GAAa,gBAAT34d,EAAwB,CAC7B/gB,KAAKopd,cAAcuiF,oBAAqB,EACxC3riB,KAAKopd,cAAc8xD,cAAe,EAElC,IAAIrxD,EAAUnrd,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,aAAe13B,KAAKopd,cAAcqD,kBAAoB,IACpH5C,GACAA,EAAQjuc,iBAAiB,YAAa5b,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4BqkG,UAAUhyjB,KAAK36B,MAEzH,MACK,GAAa,UAAT+gB,EAIL,GAHA/gB,KAAKmpd,UAAU0jB,WAAW+1B,sBAAsBgrC,gBAAiB,EACjE5tiB,KAAKmpd,UAAU+sB,iBAAiB0sB,sBAAsBogB,sBAAuB,EAC7EhjhB,KAAKopd,cAAcuvD,YAAa,EAC5B4qH,EAAkB,CAElB,IAAI11F,EAAY1nE,GAAiBo9J,GACjCvjoB,KAAKopd,cAAcyvD,gBAAiB,EACpC74gB,KAAK4igB,sBAAsB0yE,+BAA+BznC,EAC9D,MACS21F,GAED31F,EAAYznE,GAAco9J,GAC9BxjoB,KAAKopd,cAAcyvD,gBAAiB,EACpC74gB,KAAK4igB,sBAAsB2yE,wBAAwB1nC,IAE9C41F,IAED51F,EAAYxnE,GAA0Bo9J,GAC1CzjoB,KAAKopd,cAAcyvD,gBAAiB,EACpC74gB,KAAK4igB,sBAAsB2yE,wBAAwB1nC,IAG3D7tiB,KAAKmpd,UAAUw+D,wBAAwBD,GAAqB,GAC5D1nhB,KAAKopd,cAAckuE,uBACvB,EACAo3H,EAAWhtpB,UAAU+njB,qBAAuB,SAAUxwE,GAC9CA,IACAj5e,KAAK4upB,wBAAyB,EAC9B5upB,KAAK2upB,oBAAqB,EAC1B3upB,KAAKg5e,iBAAiBC,GACtBj5e,KAAKi2hB,mBACLj2hB,KAAK4upB,wBAAyB,EAEtC,EACAF,EAAWhtpB,UAAUstpB,oBAAsB,WAiBvC,GAhBIhvpB,KAAKs6e,6BACLt6e,KAAKs6e,2BAA2BmrC,4BAA6B,GAE7DzlhB,KAAKy6e,2BACLz6e,KAAKy6e,yBAAyBi9C,oBAAqB,EACnD13hB,KAAKy6e,yBAAyBmxD,iBAAkB,GAEhD5riB,KAAKopd,cAAcy1D,iCACnB7+gB,KAAKmpd,UAAU0jB,WAAWyN,2BAA2BkoC,yBAA2B,IAEhFxihB,KAAKopd,cAAcw5E,4BACnB5iiB,KAAKmpd,UAAU0jB,WAAW26B,sBAAsBxrB,sBAAwB,IAExEh8e,KAAKopd,cAAc0yB,gCACnB97e,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBC,sBAAwB,IAE1Eh8e,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAqB,CAErD,IAAIt7B,EAAoB7hd,SAAS5K,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAoBt7B,mBACrFzsd,KAAKmpd,UAAU+sB,iBAAiB6R,oBAAoBC,kBAAkBv7B,EAC1E,CACJ,EACAiiM,EAAWhtpB,UAAUu0hB,iBAAmB,WAChCj2hB,KAAKs6e,4BACLt6e,KAAKs6e,2BAA2By5I,6BAEpC,IAAIvkD,EAAqBxvkB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAClE,GAAIs6F,EAAoB,CACpB,IAAIx0iB,EAAO17B,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,eACrEwyK,EAAiB/iiB,KAAK+yH,MAAM35F,GAC5Bi0nB,EAAoB,GACxB,GAAItqH,EAAgB,CAChB,IAAK,IAAIzqhB,EAAI,EAAGA,EAAIyqhB,EAAenhiB,OAAQ0W,IACvC,GAAIyqhB,EAAezqhB,GAAG0a,UAAY46iB,EAAmB93iB,GAAI,CACrDitgB,EAAezqhB,GAAG+3a,MAAQ,GAC1B,IAAK,IAAIj5Y,EAAI,EAAGA,EAAI2rf,EAAenhiB,OAAQw1C,IACR,QAA3B2rf,EAAe3rf,GAAGipT,OAClB0iM,EAAe3rf,GAAGi5Y,MAAQ,IAE1B0yG,EAAezqhB,GAAG4ygB,YAAc6X,EAAe3rf,GAAG8ze,WAAwC,QAA3B6X,EAAe3rf,GAAGipT,MACjF0iM,EAAej3hB,OAAOsrC,EAAG,GAGjCi2mB,EAAkB/spB,KAAKyiiB,EAAezqhB,GAC1C,MAEI+0oB,EAAkB/spB,KAAKyiiB,EAAezqhB,IAG9C5a,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,cAAevwX,KAAKC,UAAUotpB,GAChG,CACJ,CACA,IAAI9zK,GAAS,EACTqmB,GAAa,EACjB,GAAIxhgB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,OAAS,EAAG,CAErD,IAAIshhB,EAAe9khB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACxDn0d,EAAO+jgB,EAAanvD,oBACxB,GAAa,SAAT50c,GAA4D,mBAAzC+jgB,EAAajvD,yBAAyF,iBAAzCivD,EAAajvD,yBAAuD,yBAAT90c,GAA4C,kBAATA,GAAqC,mBAATA,EAA2B,CACrO,IAAIq2gB,EAAc14hB,SAASkuD,eAAek4d,EAAaptf,IACnD0/f,GAAeA,EAAY/ghB,WAC3Bmrf,GAAa,EAErB,CAOA,GANIsjB,EAAavvC,qBACb4F,EAAS2pC,EAAavvC,mBAAmB4F,SAC3Bn7e,KAAK2ggB,yBAAyB,SAAUmkB,KAClD3pC,GAAS,IAGZA,IAAWqmB,EAAY,CACxB,IAAI93C,EAAao7D,EAAa1sS,UAE1B44U,EAAYlsC,EAAanvD,oBAEzBkpC,OAAc,EACA,SAAdmyD,GAAsC,uBAAdA,GAAoD,YAAdA,GAAyC,YAAdA,GAAyC,cAAdA,GAA2C,WAAdA,GAAwC,aAAdA,IAEvK,QAAkBlsC,EAAatgB,cAA6C,KAA7BsgB,EAAatgB,aAC5DxkgB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAajtG,EAAc,SACjF9khB,KAAKkynB,iCAAiCptG,EAAcp7D,EAAY,qBAIhE1pd,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAajtG,EAAc,WAEjF9khB,KAAKkynB,iCAAiCptG,EAAcp7D,EAAY,2BAEpEm1C,EAAc7+f,KAAKkvpB,oBAAoBpqI,EAAc,WAElC,aAAdksC,GAELhxjB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAajtG,EAAc,WAAY,UAC7FjmB,EAAc7+f,KAAKkvpB,oBAAoBpqI,EAAc,UACrD9khB,KAAKkynB,iCAAiCptG,EAAcp7D,EAAY,uBAE7C,yBAAdsnG,GAAsD,mBAAdA,GAAgD,kBAAdA,EAC/EnyD,EAAc7+f,KAAKkvpB,oBAAoBpqI,EAAc,UAElC,QAAdksC,GAELhxjB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAajtG,EAAc,MAAO,UACxFjmB,EAAc7+f,KAAKkvpB,oBAAoBpqI,EAAc,UACrD9khB,KAAKkynB,iCAAiCptG,EAAcp7D,EAAY,4BAGhEm1C,EAAc7+f,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAEvDl1e,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAalzH,EAAaA,EAAYlpC,oBAAqB,UAEjH31d,KAAKmpd,UAAU0jB,WAAW+1B,sBAAsBC,qBAAqBiiB,EAAc,KAAM,WAE3E,gBAAdksC,GACAhxjB,KAAKkynB,iCAAiCptG,EAAcp7D,EAAY,yBAGhE1pd,KAAKkynB,iCAAiCptG,EAAcp7D,EAAY,oBAGpE1pd,KAAKmpd,UAAU0jB,WAAW4K,UAAU/tB,EAAY,KAAMo7D,EAAc,SAAU,GAAIjmB,EAAaimB,GAE/F,IAAIktG,OAAY,EACe,KAA3BltG,EAAa5rC,UACb84I,EAAYtznB,SAASkuD,eAAek4d,EAAa5rC,WAG7C2lB,GAC8B,KAA1BA,EAAY3lB,YACZ84I,EAAYtznB,SAASkuD,eAAeiyc,EAAY3lB,YAI5Dl5e,KAAKmvpB,sBAAsBn9B,GAC3B,IAAIo9B,EAAgBpvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACzD+D,EAAem2K,EAAcl2K,UAC7BgqK,EAAYljpB,KAAKsjpB,kBAAkB8L,EAAcz5L,oBAAqBy5L,EAAc5qJ,aACxF,GAAkB,SAAdwsD,GAAkE,mBAA1Co+F,EAAcv5L,yBAA0F,iBAA1Cu5L,EAAcv5L,yBAA4D,yBAAdm7F,GAAsD,kBAAdA,GAA+C,mBAAdA,EAAgC,CAC3P,IAAItqD,EAAsB1mgB,KAAKmpd,UAAU81G,qBAErCukD,OAAgB,GADhB16mB,EAAQ49f,EAAoB/oZ,WAAU,SAAUpjD,GAAM,OAAOA,EAAG7iC,KAAOotf,EAAaptf,EAAI,MAE/E,IACT8rlB,EAAgB98G,EAAoB59f,GAAOlB,MAE/C,IAAK,IAAI+6D,EAAI,EAAGA,EAAI+jc,EAAoBljgB,OAAQm/D,IAC5C,GAAIyslB,EAAc13nB,KAAOgve,EAAoB/jc,GAAGjrC,KAAO,QAAkB8rlB,IAAkBA,IAAkB98G,EAAoB/jc,GAAG/6D,KAAO,CACvI8+f,EAAoB/jc,GAAGl5D,MAAQ,GAC/Bi9f,EAAoB/jc,GAAG+ua,cAAgB,GACvC,IAAI29K,EAAervpB,KAAKsvpB,8BAA8B5oJ,EAAoB/jc,GAAGjrC,IAC7E13B,KAAKuvpB,2BAA2BF,GAChCxwJ,EAAc7+f,KAAKkvpB,oBAAoBG,EAAc,UAErDrvpB,KAAKmpd,UAAU0jB,WAAW4K,UAAU43K,EAAaj3a,UAAW,KAAMi3a,EAAc,SAAU,GAAIxwJ,EAAawwJ,GACvGrvpB,KAAKmpd,UAAU+3C,oBAAsBkuJ,EAAcv5L,wBACnD71d,KAAKwvpB,0BAA0BH,GAE/BrvpB,KAAK85jB,2BAA2Bu1F,GACpCrvpB,KAAKmpd,UAAUtlZ,OAAOwrlB,EAC1B,CAEArvpB,KAAKmpd,UAAU+3C,oBAAsBkuJ,EAAcv5L,wBACnD71d,KAAKwvpB,0BAA0B1qI,GAE/B9khB,KAAK85jB,2BAA2Bh1C,EACxC,CACI9khB,KAAKmpd,UAAU+3C,oBAAsBkuJ,EAAcv5L,wBACnD71d,KAAKwvpB,0BAA0B1qI,GAE/B9khB,KAAK85jB,2BAA2Bh1C,GACpC,IAAI2qI,EAAezvpB,KAAKmpd,UAAU4uC,UAAU+sB,EAAaptf,GAAGlwB,MAAM,KAAK,IACvE,GAAoB,MAAhBiopB,IAAkE,mBAAzCA,EAAa55L,yBAAyF,iBAAzC45L,EAAa55L,yBAA6C,CAChJ,IAAI/sd,EACA06mB,OAAgB,GADhB16mB,EAAQ9I,KAAKmpd,UAAUw9C,qBAAqBhpZ,WAAU,SAAUpjD,GAAM,OAAOA,EAAG7iC,KAAOotf,EAAaptf,GAAGlwB,MAAM,KAAK,EAAI,MAE7G,IACTg8mB,EAAgBxjnB,KAAKmpd,UAAUw9C,qBAAqB79f,GAAOlB,MAE/D,IAAK,IAAImF,EAAI,EAAGA,EAAI/M,KAAKmpd,UAAUw9C,qBAAqBnjgB,OAAQuJ,IAC5D,GAAIy2mB,IAAkBxjnB,KAAKmpd,UAAUw9C,qBAAqB55f,GAAGnF,KAAM,CAC/D,IAAI8npB,EAAkB1vpB,KAAKmpd,UAAUw9C,qBAAqB55f,GAC1D/M,KAAKmpd,UAAUs3G,mCAAmC,4BAA6BivF,EAAiBA,EAAgBt3a,WAAW,GAAM,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,EAAOs3a,EAAgBjmpB,MAAO,IAC1PimpB,EAAgBjmpB,MAAQ,GACxBimpB,EAAgBh+K,cAAgB,GAChC1xe,KAAKmpd,UAAU+3C,mBAAmBmjD,2BAA2BqrG,GAC7D,IAAIC,EAAe3vpB,KAAKsvpB,8BAA8BI,EAAgBh4nB,GAAK,YAC3Emne,EAAc7+f,KAAKkvpB,oBAAoBS,EAAc,UAErD3vpB,KAAKmpd,UAAU0jB,WAAW4K,UAAUk4K,EAAav3a,UAAW,KAAMu3a,EAAc,SAAU,GAAI9wJ,EAAa8wJ,GAC3G3vpB,KAAKuvpB,2BAA2BI,GAChC,IAAIx0C,EAAkBn7mB,KAAKmpd,UAAU4uC,UAAU43J,EAAaj4nB,GAAGlwB,MAAM,KAAK,IAC1E2zmB,EAAgBxulB,QAAQtP,SAAS3P,OAAOytmB,EAAgBxulB,QAAQtP,SAAS9V,QAAQoopB,EAAahjoB,QAAQtP,SAAS,IAAK,GACpHrd,KAAKmpd,UAAUtlZ,OAAO8rlB,EAC1B,CAER,CAQA,GAPA3vpB,KAAKmpd,UAAUtlZ,OAAOihd,GACtB9khB,KAAKmpd,UAAUqtB,gBACfx2e,KAAKmpd,UAAUppY,eAAe2pY,GAC9B1pd,KAAKopd,cAAcinE,wBAAwBrwhB,KAAKopd,cAAcs9C,oBAAqB,iBACnF1mgB,KAAKopd,cAAcovB,8BAA6B,GAChDx4e,KAAKopd,cAAc0zC,KAAO,KAC1B98f,KAAKmpd,UAAU2zC,KAAO,KACoB,yBAAtCsyJ,EAAcz5L,qBAAwF,kBAAtCy5L,EAAcz5L,qBAAiF,mBAAtCy5L,EAAcz5L,qBAAkF,SAAtCy5L,EAAcz5L,oBAAgC,CAEjO,IAAI3vb,EAAS,CAAEpuB,KAAMw3oB,EAAcppnB,OAAO9rB,EAAGI,IAAK80oB,EAAcppnB,OAAOgT,EAAGr+B,MAAOy0oB,EAAcppnB,OAAOrrB,MAAOkG,OAAQuuoB,EAAcppnB,OAAOnlB,QAE1I7gB,KAAKmpd,UAAUm6G,oBAAoB55G,EAAY0lM,EAAc13nB,GAAI03nB,EAAcz5L,oBAAqB3vb,EACxG,MACShmC,KAAKmpd,UAAU+sB,kBAEpBl2e,KAAKmpd,UAAUs5G,qBAAqB/4G,EAAYuvB,EAAciqK,EAAWkM,EAAcppnB,QAEvFhmC,KAAKmpd,UAAUmC,qBACftrd,KAAKmpd,UAAUmC,oBAAoB+rE,yBAE3C,CACJ,CACAr3hB,KAAK4vpB,eAAc,GACf5vpB,KAAKmpd,UAAUsiC,eACXzrf,KAAKmpd,UAAUsiC,cAAcC,0BAA4BvQ,IACzDn7e,KAAKmpd,UAAUsiC,cAAcC,wBAAwB+yF,4BAA2B,GAAO,GACvFz+kB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBqpB,2CAA0C,GAG3G,EAKA25I,EAAWhtpB,UAAU4tpB,8BAAgC,SAAUr2K,GAC3D,IAAI5qQ,EAAcruO,KAAKmpd,UAAU+rB,YACjC,GAAI7mQ,GAAe4qQ,EACf,IAAK,IAAIlse,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAG2qB,KAAOuhd,EACtB,OAAO5qQ,EAAYthO,EAInC,EAKA2hpB,EAAWhtpB,UAAU6tpB,2BAA6B,SAAU1iL,GACxD,IAAIuqD,EAAc14hB,SAASkuD,eAAeigb,EAAWn1c,IACjDgyhB,EAAwBhrjB,SAASkuD,eAAeigb,EAAWn1c,GAAK,iBAChD,OAAhB0/f,IAAyB,QAAkBsyB,KAC3CtyB,EAAcsyB,EAAsBrsiB,SAAS,GAAGA,SAAS,IAEzD+5gB,GAAeA,EAAYxzd,UAAU5+D,SAAS,+CAC9CoyhB,EAAY30hB,UAAY,kCACxB20hB,EAAYhuhB,MAAMulB,cAAgB,GAClCyogB,EAAY3hhB,cAAcrM,MAAMulB,cAAgB,GAC5C3uB,KAAKmpd,UAAU+3C,mBACflhgB,KAAKmpd,UAAU+3C,mBAAmB0+D,qBAAqB/yF,EAAWn1c,IAGlE13B,KAAKmpd,UAAU6hB,iBAAiB22E,oBAAoBvqB,EAAa,IAG7E,EASAs3H,EAAWhtpB,UAAUixnB,2BAA6B,SAAU9lJ,EAAYnjB,GACpE,GAAI1pd,KAAK6wnB,iBAAkB,CACvB,IAAI/3I,EAAoB94e,KAAK6vpB,0BAA0BhjL,IACnDmM,EAAmBjiB,EAAY8V,IAClB8xI,YAAc9xI,EAAWqM,UAC1CF,EAAiBtvB,WAAaA,SACvBsvB,EAAiBE,UACpBrM,EAAWn1c,KACXshd,EAAiB9yG,UAAY2mG,EAAWn1c,UACjCshd,EAAiBthd,IAExBohd,EAAkBK,WAClBn5e,KAAKmpd,UAAUu9C,oBAAoBh5f,OAAOore,EAAkB3qd,SAAU,EAAG6qd,GAGzEh5e,KAAKmpd,UAAUu9C,oBAAoBxkgB,KAAK82e,EAEhD,KACK,CAED,IAEIA,EAFAF,EAAoB94e,KAAK8vpB,0BAA0BjjL,IAEnDmM,EAAmBjiB,EAAY8V,IAClBoM,aAAepM,EAAWqM,UAC3CF,EAAiBtvB,WAAaA,SACvBsvB,EAAiBE,UACe,UAAnCrM,EAAWlX,sBACXqjB,EAAiB9yG,UAAY2mG,EAAW/gS,gBACjCktS,EAAiBltS,UAEW,WAAnC+gS,EAAWlX,sBACXqjB,EAAiB9yG,UAAY2mG,EAAWqM,WAExCrM,EAAWn1c,KACXshd,EAAiB9yG,UAAY2mG,EAAWn1c,UACjCshd,EAAiBthd,IAGxBshd,EAAiBm9D,YAActpE,EAAWspE,YAAcv0iB,KAAKC,UAAUm3e,EAAiBm9D,cAAgBv0iB,KAAKC,UAAUgre,EAAWspE,cAClIn9D,EAAiBm9D,WAAatpE,EAAWspE,YAEzCr9D,EAAkBK,WAClBn5e,KAAKmpd,UAAUgsB,qBAAqBzne,OAAOore,EAAkB3qd,SAAU,EAAG6qd,GAG1Eh5e,KAAKmpd,UAAUgsB,qBAAqBjze,KAAK82e,EAEjD,CACJ,EACA01K,EAAWhtpB,UAAUmupB,0BAA4B,SAAUhjL,GAEvD,IAAIx+P,EAAcruO,KAAKmpd,UAAUu9C,oBACjC,GAAIr4R,GAAew+P,EACf,IAAK,IAAI9/d,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAG4xmB,cAAgB9xI,EAAWqM,UAE1C,OADAl5e,KAAKmpd,UAAUu9C,oBAAoBh5f,OAAOX,EAAG,GACtC,CAAEose,YAAY,EAAMhrd,SAAUphB,GAIjD,MAAO,CAAEose,YAAY,EAAOhrd,SAAU,KAC1C,EACAugoB,EAAWhtpB,UAAU8tpB,0BAA4B,SAAU3iL,GAEvD,IAAIx+P,EAAcruO,KAAKmpd,UAAUu9C,oBACjC,GAAIr4R,GAAew+P,EACf,IAAK,IAAI9/d,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAG4xmB,cAAgB9xI,EAAWqM,UAAW,CACrDl5e,KAAKi6jB,4BAA4B/3jB,KAAKmsO,EAAYthO,IAClD/M,KAAKmpd,UAAUu9C,oBAAoBh5f,OAAOX,EAAG,GAC7C,KACJ,CAGZ,EAMA2hpB,EAAWhtpB,UAAUwunB,cAAgB,SAAUrjJ,GAC3C,IAAIspE,EA8BJ,OA7BItpE,EAAW8rJ,qBAAuB9rJ,EAAWqpE,WAC7CC,EAAav0iB,KAAK+yH,MAAMk4W,EAAW8rJ,oBAEJ,OAA1B9rJ,EAAWqpE,YACuB,WAAnCrpE,EAAWlX,sBACXwgF,EAAan2iB,KAAKmpd,UAAU6oG,oBAAoB7b,YAEb,UAAnCtpE,EAAWlX,sBACXwgF,EAAan2iB,KAAKmpd,UAAUq8C,cAAc2wC,YAEP,aAAnCtpE,EAAWlX,sBACXwgF,EAAan2iB,KAAKmpd,UAAU+hF,iBAAiBiL,YAE3B,UAAlBtpE,EAAWn1c,KACXy+gB,EAAan2iB,KAAKo7nB,aAAavuJ,EAAW4oE,oBAAqB5oE,EAAWxjW,UAExD,YAAlBwjW,EAAWn1c,KACXy+gB,EAAan2iB,KAAK29nB,eAAe9wJ,EAAW14U,UAET,eAAnC04U,EAAWlX,sBACXwgF,EAAan2iB,KAAK43nB,kBAAkB/qJ,EAAWxjW,UAEZ,QAAnCwjW,EAAWlX,sBACXwgF,EAAan2iB,KAAKmpd,UAAUyjF,sBAAsBuJ,aAItDA,EAAatpE,EAAWqpE,WAErBC,CACX,EAOAu4G,EAAWhtpB,UAAU05nB,aAAe,SAAUr6mB,EAAMsoH,GAChD,IAAI8sa,EAmBJ,MAlBa,SAATp1hB,GAA+B,UAAZsoH,GAAuBrpI,KAAKmpd,UAAU+jF,aAAaiJ,WACtEA,EAAan2iB,KAAKmpd,UAAU+jF,aAAaiJ,WAE1B,uBAATp1hB,GAA6C,UAAZsoH,IAAwBrpI,KAAKmpd,UAAUgkF,cAAcgJ,WAG7E,cAATp1hB,GAAiC,WAATA,IAAsB/gB,KAAKmpd,UAAUikF,kBAAkB+I,WAGtE,YAATp1hB,GAA+B,WAATA,IAAsB/gB,KAAKmpd,UAAUkkF,eAAe8I,WAGlE,YAATp1hB,GAAsB/gB,KAAKmpd,UAAUmkF,gBAAgB6I,WAC1DA,EAAan2iB,KAAKmpd,UAAUmkF,gBAAgB6I,WAEvCn2iB,KAAKmpd,UAAUosB,mBAAmB4gE,aACvCA,EAAan2iB,KAAKmpd,UAAUosB,mBAAmB4gE,YAN/CA,EAAan2iB,KAAKmpd,UAAUkkF,eAAe8I,WAH3CA,EAAan2iB,KAAKmpd,UAAUikF,kBAAkB+I,WAH9CA,EAAan2iB,KAAKmpd,UAAUgkF,cAAcgJ,WAcvCA,CACX,EAMAu4G,EAAWhtpB,UAAUi8nB,eAAiB,SAAU58mB,GAC5C,IAAIo1hB,EAiBJ,MAhBc,aAATp1hB,GAAgC,yBAATA,IAAoC/gB,KAAKmpd,UAAU0jF,iBAAiBsJ,WAG7E,SAATp1hB,GAA4B,0BAATA,IAAqC/gB,KAAKmpd,UAAU+jF,aAAaiJ,WAI3E,YAATp1hB,GAA+B,qBAATA,GAAwC,uBAATA,IAAkC/gB,KAAKmpd,UAAUmkF,gBAAgB6I,WAG7G,WAATp1hB,GAA8B,uBAATA,IAAkC/gB,KAAKmpd,UAAU6jF,eAAemJ,WAGtFn2iB,KAAKmpd,UAAUosB,mBAAmB4gE,aACvCA,EAAan2iB,KAAKmpd,UAAUosB,mBAAmB4gE,YAH/CA,EAAan2iB,KAAKmpd,UAAU6jF,eAAemJ,WAH3CA,EAAan2iB,KAAKmpd,UAAUmkF,gBAAgB6I,WAJ5CA,EAAan2iB,KAAKmpd,UAAU+jF,aAAaiJ,WAHzCA,EAAan2iB,KAAKmpd,UAAU0jF,iBAAiBsJ,WAe1CA,CACX,EAMAu4G,EAAWhtpB,UAAUk2nB,kBAAoB,SAAU72mB,GAC/C,IAAIo1hB,EAaJ,MAZa,cAATp1hB,GAAwB/gB,KAAKmpd,UAAUylK,kBAAkBz4E,WACzDA,EAAan2iB,KAAKmpd,UAAUylK,kBAAkBz4E,WAEhC,cAATp1hB,GAAwB/gB,KAAKmpd,UAAU0lK,kBAAkB14E,WAC9DA,EAAan2iB,KAAKmpd,UAAU0lK,kBAAkB14E,WAEhC,kBAATp1hB,GAA4B/gB,KAAKmpd,UAAU2lK,sBAAsB34E,WACtEA,EAAan2iB,KAAKmpd,UAAU2lK,sBAAsB34E,WAE7Cn2iB,KAAKmpd,UAAUosB,mBAAmB4gE,aACvCA,EAAan2iB,KAAKmpd,UAAUosB,mBAAmB4gE,YAE5CA,CACX,EAMAu4G,EAAWhtpB,UAAUigP,QAAU,SAAU5gO,GACrC,IAAIo1hB,EAaJ,MAZa,aAATp1hB,GAAuB/gB,KAAKmpd,UAAU+hF,iBAAiBiL,WACvDA,EAAan2iB,KAAKmpd,UAAU+hF,iBAAiBiL,WAE9B,UAATp1hB,GAA6B,UAATA,IAAqB/gB,KAAKmpd,UAAUq8C,cAAc2wC,WAG9D,WAATp1hB,GAAqB/gB,KAAKmpd,UAAU6oG,oBAAoB7b,WAC7DA,EAAan2iB,KAAKmpd,UAAU6oG,oBAAoB7b,WAE3Cn2iB,KAAKmpd,UAAUosB,mBAAmB4gE,aACvCA,EAAan2iB,KAAKmpd,UAAUosB,mBAAmB4gE,YAN/CA,EAAan2iB,KAAKmpd,UAAUq8C,cAAc2wC,WAQvCA,CACX,EAKAu4G,EAAWhtpB,UAAUk2e,uBAAyB,WAI1C,GAFkBx9d,KAAKywN,MAAMjpO,KAAKC,UAAUvC,OAAO4qH,gBAAgB1mH,OAAS,MACvD,KACa,CAI9B,IAHA,IAAI+kiB,EAAgBjpiB,OAAO4qH,eAAe1mH,OAEtC6kiB,EAAiB,GACZt7hB,EAAI,EAAGA,EAAIw7hB,EAAex7hB,IAC3BzN,OAAO4qH,eAAexnH,IAAIqK,IAAMzN,OAAO4qH,eAAexnH,IAAIqK,GAAGvF,MAAM,KAAK,IACrB,gBAA/ClI,OAAO4qH,eAAexnH,IAAIqK,GAAGvF,MAAM,KAAK,KAExCxH,KAAKopd,cAAc6rB,kBAAkB31e,OAAO4qH,eAAexnH,IAAIqK,IAAMzN,OAAO4qH,eAAe9E,QAAQ9lH,OAAO4qH,eAAexnH,IAAIqK,IAC7Hs7hB,EAAenmiB,KAAK5C,OAAO4qH,eAAexnH,IAAIqK,KAI1D,GAAIs7hB,EACA,IAASt7hB,EAAI,EAAGA,EAAIs7hB,EAAe7kiB,OAAQuJ,IACvCzN,OAAO4qH,eAAet2B,WAAWy0c,EAAet7hB,GAG5D,CACJ,EAMA2hpB,EAAWhtpB,UAAUoupB,0BAA4B,SAAUjjL,GAEvD,IAAIx+P,EAAcruO,KAAKmpd,UAAUgsB,qBACjC,GAAI9mQ,GAAew+P,EACf,IAAK,IAAI9/d,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAGkse,eAAiBpM,EAAWqM,UAE3C,OADAl5e,KAAKmpd,UAAUgsB,qBAAqBzne,OAAOX,EAAG,GACvC,CAAEose,YAAY,EAAMhrd,SAAUphB,GAIjD,MAAO,CAAEose,YAAY,EAAOhrd,SAAU,KAC1C,EAMAugoB,EAAWhtpB,UAAUo4jB,2BAA6B,SAAUjtF,GAExD,IAAIx+P,EAAcruO,KAAKmpd,UAAUgsB,qBACjC,GAAI9mQ,GAAew+P,EACf,IAAK,IAAI9/d,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAGkse,eAAiBpM,EAAWqM,WAAa7qQ,EAAYthO,GAAGkse,eAAiBpM,EAAWoM,aAAc,CACjHj5e,KAAKi6jB,4BAA4B/3jB,KAAKmsO,EAAYthO,IAClD/M,KAAKmpd,UAAUgsB,qBAAqBzne,OAAOX,EAAG,GAC9C,KACJ,CAGZ,EAQA2hpB,EAAWhtpB,UAAUwwnB,iCAAmC,SAAUrlJ,EAAYnjB,EAAY+rD,GACtF,GAAIz1gB,KAAKopd,cAAcmvD,gBACfv4gB,KAAKopd,cAAcyoE,oBAAsB7xhB,KAAKopd,cAAcyoE,mBAAmBnoE,GAAa,CAE5F,IAAIqmM,EAAyB/vpB,KAAKopd,cAAcyoE,mBAAmBnoE,GACnE,GAAIqmM,EAAuBt6I,GACvB,IAAK,IAAI1ogB,EAAI,EAAGA,EAAIgjpB,EAAuBt6I,GAAgBjygB,OAAQuJ,IAE/D,GAAI8/d,EAAWqM,YAAc62K,EAAuBt6I,GAAgB1ogB,GAAGyliB,WAAa3lE,EAAWqM,YAAc62K,EAAuBt6I,GAAgB1ogB,GAAGmse,UAAW,CAC9Jl5e,KAAKopd,cAAcyoE,mBAAmBnoE,GAAY+rD,GAAgB/ngB,OAAOX,EAAG,GAC5E,KACJ,CAGZ,CAGJ,IAAIijpB,EAAsBhwpB,KAAKopd,cAAcmwD,8BAC7C,GAAIy2I,GAAuBA,EAAoBtmM,GAAa,CAExD,IAAIumM,EAA0BD,EAAoBtmM,GAClD,GAAIumM,GAA2BA,EAAwBx6I,GACnD,IAAS1ogB,EAAI,EAAGA,EAAIkjpB,EAAwBx6I,GAAgBjygB,OAAQuJ,IAEhE,GAAI8/d,EAAWqM,YAAc+2K,EAAwBx6I,GAAgB1ogB,GAAGyliB,UAAW,CAC/ExyiB,KAAKopd,cAAcmwD,8BAA8B7vD,GAAY+rD,GAAgB/ngB,OAAOX,EAAG,GACvF,KACJ,CAGZ,CACJ,EAOA2hpB,EAAWhtpB,UAAUs3e,iBAAmB,SAAUC,GAE9C,IAAIpM,EACAn1c,EAUJ,GAT4B,iBAAjBuhd,IAEPvhd,GADAm1c,EAAaoM,GACGA,aAChBpM,EAAa7se,KAAK0gnB,wCAAwChplB,IAElC,iBAAjBuhd,IACPpM,EAAa7se,KAAK0gnB,wCAAwCznI,GAC1Dvhd,EAAKuhd,GAELpM,EAAY,CACZ,IACIqjL,EADA93a,GAAY,QAAkBy0P,EAAWnjB,YAAcmjB,EAAWz0P,UAAYy0P,EAAWnjB,WAE7FwmM,EAAWlwpB,KAAK+gjB,mBAAmB3oU,GACnC,IAAIltO,EAAkBlL,KAAKmpd,UAAU03C,2BAErC,GAAIh0B,GAAcz0P,GAAa,EAAG,CAC9B,GAAuC,eAAnCy0P,EAAWlX,oBACX,GAAIkX,EAAWlsd,MAAQksd,EAAW7mc,OAAQ,CAEtC,IAAIy0P,EAAcz6R,KAAKopd,cAAcjxO,SAASC,GAAW99N,IAAMta,KAAKopd,cAAc+B,gBAAmBnrd,KAAK4mpB,iBAAiB/5K,GAAe7se,KAAKopd,cAAc+B,gBAC7J,IAAKnrd,KAAK4upB,uBAAwB,CAC9B,IAAI/H,GAAYpsX,EAAc,IAAIhmQ,WAElCz0B,KAAKopd,cAAcqG,gBAAgBpkY,UAAYzgF,SAASi8oB,GACxD7mpB,KAAKopd,cAAcqG,gBAAgB1pR,WAAa/lM,KAAKmwpB,kBAAkBtjL,GAAc7se,KAAKopd,cAAc+B,eAC5G,CACJ,MAEQnrd,KAAKmpd,UAAU73Y,YACftxE,KAAKmpd,UAAU73Y,WAAWgjd,SAASl8S,EAAY,QAKvD,GAAIy0P,EAAW7mc,OAAQ,CAEfy0P,EAAcz6R,KAAKopd,cAAcjxO,SAASC,GAAW99N,IAAMta,KAAKopd,cAAc+B,gBAAmB0hB,EAAW7mc,OAAU,IAAIhmC,KAAKopd,cAAc+B,gBAAjJ,IACIplR,EAAa8mS,EAAW7mc,OAAOpuB,KAAO5X,KAAKopd,cAAc+B,gBAM7D,GALuC,QAAnC0hB,EAAWlX,sBAEXl7L,EAAcz6R,KAAKopd,cAAcjxO,SAASC,GAAW99N,IAAMta,KAAKopd,cAAc+B,gBAAmB0hB,EAAW7mc,OAAQ,EAAIhmC,KAAKopd,cAAc+B,gBAC3IplR,EAAa8mS,EAAW7mc,OAAO9rB,EAAIla,KAAKopd,cAAc+B,kBAErDnrd,KAAK4upB,uBAAwB,CAC9B,IAAI9H,GAAYrsX,EAAc,IAAIhmQ,WAElCz0B,KAAKopd,cAAcqG,gBAAgBpkY,UAAYzgF,SAASk8oB,GACxD9mpB,KAAKopd,cAAcqG,gBAAgB1pR,WAAaA,CACpD,CACJ,MAEQ/lM,KAAKmpd,UAAU73Y,YACftxE,KAAKmpd,UAAU73Y,WAAWgjd,SAASl8S,EAAY,GAI3D,GAAI83a,EAAU,CAMV,GALIlwpB,KAAK2ge,eACL3ge,KAAKmpd,UAAUppY,eAAe//E,KAAK2ge,eAEvC3ge,KAAKmpd,UAAUppY,eAAeq4J,GAC9Bp4O,KAAK2ge,cAAgBvoP,EACkB,eAAnCy0P,EAAWlX,oBAAsC,CAEjD31d,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2B0qF,gCAAgC5sV,GAAW,GAEtG,IAAIqxP,EAASzpe,KAAKopd,cAAc/rS,WAAW,qBAAuB+6D,GAE9D6sQ,EAAuBjlf,KAAKowpB,yBAAyBh4a,EAAWy0P,GAChEoY,IACAjlf,KAAKs6e,2BAA2BsB,4BAA8B,KAC9D57e,KAAKs6e,2BAA2B6zI,sBAAuB,EACvDnunB,KAAKs6e,2BAA2BkR,oBAAmB,GACnDxrf,KAAKs6e,2BAA2B+zI,wBAA0B,KAC1DrunB,KAAKs6e,2BAA2BtB,iBAAiBiM,EAAsBxb,EAAQrxP,EAAW,MAAM,GAChGp4O,KAAKs6e,2BAA2BsB,4BAA8BqJ,EAC9Djlf,KAAKs6e,2BAA2ByqC,4BAA8B3sS,EAC9Dp4O,KAAKs6e,2BAA2B06B,gCAA+B,GAC/Dh1gB,KAAKs6e,2BAA2B6zI,sBAAuB,EACnDnunB,KAAKmpd,UAAUsiC,eAAiBzrf,KAAKmpd,UAAUyqD,0BAC/C5zgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBw9C,iBAAkB,EAEvElpiB,KAAKmpd,UAAUsiC,cAAcC,wBAAwB2oB,sBAAsBr0gB,KAAKmpd,UAAUsiC,cAAco5B,iBAGpH,KAC4C,UAAnCh4C,EAAWlX,qBAAsE,UAAnCkX,EAAW4oE,qBAC9Dz1iB,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAW3mG,WAAYh7X,GAC9ClL,KAAKmpd,UAAU0jB,WAAWyrD,yBAEc,WAAnCzrD,EAAWlX,qBAAuE,WAAnCkX,EAAW4oE,qBAC/Dz1iB,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAWoM,cAAe/te,GACjDlL,KAAKmpd,UAAU0jB,WAAWyrD,0BAG1Bt4hB,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAW3mG,WAAYh7X,GAC9ClL,KAAKmpd,UAAU0jB,WAAWyrD,yBAG9B,IAAIvnB,EAAiBrygB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBACzE,GAAIq5e,GAAmD,UAAjCA,EAAe3ngB,MAAMwjB,QAAqB,CAE5D,IAAIyxf,EAAkB3/gB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB13B,KAAKmpd,UAAUsD,mBAC7G4xD,GACAA,EAAgB7+U,cAAc,GAAG8+U,YAAW,GAGhD,IAAIC,EAAc7/gB,SAASkuD,eAAel1B,GACtC6mf,IACKA,EAAY36c,UAAU5+D,SAAS,yBAChCu5gB,EAAYhngB,WAAWw2B,QAGnC,CACJ,MACS8+b,EAAW3mG,WAAiD,eAAnC2mG,EAAWlX,qBAAyE,wBAAjCkX,EAAW8oE,qBAC5F31iB,KAAK8upB,mBAAqBp3nB,EAC1B13B,KAAKk+hB,sBAAuB,EAC5Bl+hB,KAAKm+hB,oBAAsB/lT,EAC3Bp4O,KAAKo+hB,iCAEb,CACA,IAAK8xH,IAAarjL,EAAW3mG,UAAW,CACpC,IAAI73J,EAAcruO,KAAKqwpB,oCAAoCxjL,EAAYn1c,EAAI0gN,GAC3E/J,EAAY+J,UAAYA,EACxBp4O,KAAKmpd,UAAU0jB,WAAW4K,UAAUr/P,EAAW,KAAM/J,EAAa,SAAU,GAAIA,EAAaA,GAC7FruO,KAAKqopB,oBAAoBnmpB,KAAKmsO,GAC9B,IAAI2jZ,EAAYtznB,SAASkuD,eAAeigb,EAAWoM,cACnDj5e,KAAKmvpB,sBAAsBn9B,EAC/B,CACJ,CACJ,EAEA08B,EAAWhtpB,UAAU2upB,oCAAsC,SAAUxjL,EAAYn1c,EAAI0gN,GACjF,IAAI/J,EACA8mQ,EAAuBn1e,KAAKmpd,UAAUgsB,qBAC1C,GAAIA,EAAqB3xe,OAAQ,CAC7B,IAAIs1e,EAAoB3D,EAAqBhze,QAAO,SAAU4hiB,GAC1D,OAAOA,EAAgB9qD,eAAiBvhd,CAC5C,IACA22M,EAAcyqQ,EAAkB,GAChC94e,KAAK85jB,2BAA2BhhF,EAAkB,GACtD,CACA,IAAI28B,EAAiBz1gB,KAAKswpB,oBAAoBzjL,GAC1Ch2Q,EAAa72N,KAAKopd,cAAcmwD,8BAA8BnhS,GAClE,GAAIvhB,EAAW4+S,GAAgBjygB,OAC3B,IAAK,IAAI0W,EAAI,EAAGA,EAAI28M,EAAW4+S,GAAgBjygB,OAAQ0W,IACnD,GAAI28M,EAAW4+S,GAAgBv7f,GAAGs4hB,YAAc3lE,EAAWoM,aAAc,CACrE,IAAIl4d,EAAO81M,EAAW4+S,GAAgBv7f,GACtCla,KAAK6upB,oCAAoC3spB,KAAK6e,GAC9C81M,EAAW4+S,GAAgB/ngB,OAAOwM,EAAG,GACrC,KACJ,CAGR,OAAOm0N,CACX,EAEAqgb,EAAWhtpB,UAAU4upB,oBAAsB,SAAUzjL,GACjD,IAAI4oC,EAsBJ,OArBI5oC,EAAWn1c,IAAsC,UAAhCm1c,EAAWn1c,GAAGxuB,cAC/BusgB,EAAiB,kBAEZ5oC,EAAWn1c,IAAsC,YAAhCm1c,EAAWn1c,GAAGxuB,cACpCusgB,EAAiB,yBAEZ5oC,EAAWn1c,IAAsC,aAAhCm1c,EAAWn1c,GAAGxuB,cACpCusgB,EAAiB,qBAEZ5oC,EAAWlX,qBAAwE,eAAjDkX,EAAWlX,oBAAoBzsd,cACtEusgB,EAAiB,uBAEZ5oC,EAAWlX,qBAAwE,UAAjDkX,EAAWlX,oBAAoBzsd,cACtEusgB,EAAiB,mBAEZ5oC,EAAWlX,qBAAwE,QAAjDkX,EAAWlX,oBAAoBzsd,cACtEusgB,EAAiB,yBAEZ5oC,EAAWlX,qBAAwE,WAAjDkX,EAAWlX,oBAAoBzsd,gBACtEusgB,EAAiB,yBAEdA,CACX,EAEAi5I,EAAWhtpB,UAAUytpB,sBAAwB,SAAUn9B,GAC/CA,IACkD,IAA9CA,EAAUv8mB,cAAc0lP,kBACxBn7P,KAAKsof,4BAA4B2pI,yBAAyBD,GAG1DA,EAAUnujB,SAGtB,EAMA6qlB,EAAWhtpB,UAAUq+E,eAAiB,WAClC,GAAI//E,KAAKs6e,4BAA8Bt6e,KAAKs6e,2BAA2BsB,4BACnE57e,KAAKs6e,2BAA2B4qF,iCAChCllkB,KAAKs6e,2BAA2B0qF,gCAAgChlkB,KAAKs6e,2BAA2ByqC,kCAGhG,GAAI/khB,KAAKmpd,UAAU50X,eAAiBv0F,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,CAE7E,IAAIoB,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACjEl1e,KAAKmpd,UAAUppY,eAAeu2Z,EAAkBl+P,UACpD,MAEIp4O,KAAKmpd,UAAUppY,eAAe//E,KAAKmpd,UAAUsD,kBAAoB,EAG7E,EAMAiiM,EAAWhtpB,UAAUklpB,iBAAmB,SAAU/5K,GAC9C,OAAIA,EAAWlsd,KACPksd,EAAWlsd,KAAK0zX,IACTw4F,EAAWlsd,KAAK0zX,IAGhBw4F,EAAWlsd,KAAKrG,IAIvBuyd,EAAW7mc,OAAO,GAAGquW,IACdw4F,EAAW7mc,OAAO,GAAGquW,IAGrBw4F,EAAW7mc,OAAO,GAAG1rB,GAGxC,EAKAo0oB,EAAWhtpB,UAAUyupB,kBAAoB,SAAUtjL,GAC/C,OAAIA,EAAWlsd,KACPksd,EAAWlsd,KAAKg1Y,KACTk3E,EAAWlsd,KAAKg1Y,KAGhBk3E,EAAWlsd,KAAK/I,KAIvBi1d,EAAW7mc,OAAO,GAAG2vX,KACdk3E,EAAW7mc,OAAO,GAAG2vX,KAGrBk3E,EAAW7mc,OAAO,GAAGpuB,IAGxC,EAIA82oB,EAAWhtpB,UAAU08hB,+BAAiC,WAClD,GAAIp+hB,KAAKk+hB,sBAAwBl+hB,KAAK8upB,mBAAoB,CAEtD,IAAIjiL,EAAa7se,KAAK0gnB,wCAAwC1gnB,KAAK8upB,oBAC/Dp3nB,EAAK13B,KAAK8upB,mBACV12a,EAAYy0P,EAAWnjB,WACvBx+c,EAAkBlL,KAAKmpd,UAAU03C,2BACrC,GAAIh0B,GAAe7se,KAAKm+hB,qBAAuB,GAAMn+hB,KAAKm+hB,sBAAwB/lT,EAAW,CAMzF,GALIp4O,KAAK2ge,eACL3ge,KAAKmpd,UAAUppY,eAAe//E,KAAK2ge,eAEvC3ge,KAAKmpd,UAAUppY,eAAeq4J,GAC9Bp4O,KAAK2ge,cAAgBvoP,EACkB,eAAnCy0P,EAAWlX,oBAAsC,CAEjD31d,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2B0qF,gCAAgC5sV,GAAW,GAEtG,IAAIqxP,EAASzpe,KAAKopd,cAAc/rS,WAAW,qBAAuB+6D,GAE9D6sQ,EAAuBjlf,KAAKowpB,yBAAyBh4a,EAAWy0P,GAChEoY,IACAjlf,KAAKs6e,2BAA2BsB,4BAA8B,KAC9D57e,KAAKs6e,2BAA2B6zI,sBAAuB,EACvDnunB,KAAKs6e,2BAA2BkR,oBAAmB,GACnDxrf,KAAKs6e,2BAA2B+zI,wBAA0B,KAC1DrunB,KAAKs6e,2BAA2BtB,iBAAiBiM,EAAsBxb,EAAQrxP,GAC/Ep4O,KAAKs6e,2BAA2BsB,4BAA8BqJ,EAC9Djlf,KAAKs6e,2BAA2ByqC,4BAA8B3sS,EAC9Dp4O,KAAKs6e,2BAA2B06B,gCAA+B,GAC/Dh1gB,KAAKs6e,2BAA2B6zI,sBAAuB,EACnDnunB,KAAKmpd,UAAUsiC,eAAiBzrf,KAAKmpd,UAAUyqD,0BAC/C5zgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBw9C,iBAAkB,EAEvElpiB,KAAKmpd,UAAUsiC,cAAcC,wBAAwB2oB,sBAAsBr0gB,KAAKmpd,UAAUsiC,cAAco5B,iBAGpH,KAC4C,UAAnCh4C,EAAWlX,qBAAsE,UAAnCkX,EAAW4oE,qBAC9Dz1iB,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAW3mG,WAAYh7X,GAC9ClL,KAAKmpd,UAAU0jB,WAAWyrD,yBAEc,WAAnCzrD,EAAWlX,qBAAuE,WAAnCkX,EAAW4oE,qBAC/Dz1iB,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAWoM,cAAe/te,GACjDlL,KAAKmpd,UAAU0jB,WAAWyrD,yBAErBzrD,EAAW3mG,WAChBlmY,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAW3mG,WAAYh7X,GAC9ClL,KAAKmpd,UAAU0jB,WAAWyrD,0BAG1Bt4hB,KAAKmpd,UAAUnuW,OAAO,CAAC6xX,EAAWoM,cAAe/te,GACjDlL,KAAKmpd,UAAU0jB,WAAWyrD,yBAG9B,IAAIvnB,EAAiBrygB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBACzE,GAAIq5e,GAAmD,UAAjCA,EAAe3ngB,MAAMwjB,QAAqB,CAE5D,IAAIyxf,EAAkB3/gB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAAwB13B,KAAKmpd,UAAUsD,mBAC7G4xD,GACAA,EAAgB7+U,cAAc,GAAG8+U,YAAW,GAGhD,IAAIC,EAAc7/gB,SAASkuD,eAAel1B,GACtC6mf,IACKA,EAAY36c,UAAU5+D,SAAS,yBAChCu5gB,EAAYhngB,WAAWw2B,QAGnC,CACJ,CACA/tC,KAAKk+hB,sBAAuB,EAC5Bl+hB,KAAK8upB,mBAAqB,KAC1B9upB,KAAKm+hB,oBAAsB,IAC/B,CACJ,EAKAuwH,EAAWhtpB,UAAUq/iB,mBAAqB,SAAU3oU,GAChD,IAAI83a,GAAW,EAEXlxH,EAAWh/hB,KAAKopd,cAAc+sD,kBAClC,GAAI6oB,EACA,IAAK,IAAIjyhB,EAAI,EAAGA,EAAIiyhB,EAASx7hB,OAAQuJ,IACjC,GAAIiyhB,EAASjyhB,KAAOqrO,EAEhB,OADW,EAKvB,OAAO83a,CACX,EAEAxB,EAAWhtpB,UAAU6upB,uCAAyC,SAAU1jL,GAEpE,IAAIx+P,EAAcruO,KAAKmpd,UAAU+rB,YACjC,GAAIrI,EAAY,CACZ,GAAuC,eAAnCA,EAAWlX,oBACX,OAAOkX,EAAWnjB,WAGlB,GAAIr7O,EACA,IAAK,IAAIthO,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAGmse,YAAcrM,EAAWoM,aACxC,OAAO5qQ,EAAYthO,GAAGqrO,SAK1C,CACJ,EAEAs2a,EAAWhtpB,UAAUg/mB,wCAA0C,SAAUznI,GAErE,IAAI5qQ,EAAcruO,KAAKmpd,UAAUgsB,qBACjC,GAAI9mQ,GAAe4qQ,EACf,IAAK,IAAIlse,EAAI,EAAGA,EAAIshO,EAAY7qO,OAAQuJ,IACpC,GAAIshO,EAAYthO,GAAGkse,eAAiBA,EAChC,OAAO5qQ,EAAYthO,GAIyB,IAApD/M,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,QACzCxD,KAAKmpd,UAAU50X,cAAc2gZ,YAAYhze,KAAKlC,KAAKmpd,UAAU4uC,UAAU9e,GAC/E,EAEAy1K,EAAWhtpB,UAAU0upB,yBAA2B,SAAUh4a,EAAWy0P,GAEjE,IAAIkI,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,2BAIhF,GAHInyX,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,6BAEnF4iH,EAcA,OAAO,KAZP,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACzBjse,EAAQ9I,KAAKi4e,kBAAkBF,EAAa3/P,GAChD,GAAI2/P,EAAYjve,GAAQ,CACpB,IAAK,IAAIiE,EAAI,EAAGA,EAAIgre,EAAYjve,GAAOose,YAAY1xe,OAAQuJ,IACvD,GAAIgre,EAAYjve,GAAOose,YAAYnoe,GAAGmse,YAAcrM,EAAWoM,aAC3D,OAAOlB,EAAYjve,GAAOose,YAAYnoe,GAG9C,OAAO,IACX,CAKR,EAQA2hpB,EAAWhtpB,UAAU4hpB,kBAAoB,SAAUvioB,EAAMyjf,GACrD,IAAI0+I,EACJ,GAAoB,KAAhB1+I,IAAsB,QAAkBA,GACxC,OAAQzjf,GACJ,IAAK,OACDmioB,EAAY,OACZ,MACJ,IAAK,qBACDA,EAAY,QACZ,MACJ,IAAK,YACDA,EAAY,YACZ,MACJ,IAAK,UACDA,EAAY,SACZ,MACJ,IAAK,UACDA,EAAY,UACZ,MACJ,IAAK,QACDA,EAAY,QACZ,MACJ,IAAK,QACDA,EAAY,QACZ,MACJ,IAAK,WACDA,EAAY,WACZ,MACJ,IAAK,MACDA,EAAY,MACZ,MACJ,IAAK,cACDA,EAAY,mBAKpB,OAAQ1+I,GACJ,IAAK,WACD0+I,EAAY,WACZ,MACJ,IAAK,YACDA,EAAY,YACZ,MACJ,IAAK,OACDA,EAAY,OACZ,MACJ,IAAK,SACDA,EAAY,SACZ,MACJ,IAAK,SACDA,EAAY,SAIxB,OAAOA,CACX,EAMAwL,EAAWhtpB,UAAU8upB,mBAAqB,SAAU9mM,EAAYuvB,GAG5D,IAFA,IAAIw3K,EAAsBzwpB,KAAKmpd,UAAUypF,QAAQic,eAAenlG,GAC5D5gd,EAAQ,KACHiE,EAAI,EAAGA,EAAI0jpB,EAAoBjtpB,OAAQuJ,IAC5C,GAAI0jpB,EAAoB1jpB,GAAG2qB,KAAOuhd,EAAc,CAC5Cnwe,EAAQiE,EACR,KACJ,CAEJ,OAAOjE,CACX,EAIA4lpB,EAAWhtpB,UAAU8ohB,qBAAuB,WACxCxqhB,KAAKikiB,iBAAmB,GACxBjkiB,KAAKmqlB,eAAiB,GACtBnqlB,KAAKopd,cAAcmjD,sBAAwB,GACtCvsgB,KAAK0wpB,WACN1wpB,KAAK2wpB,YAEb,EAIAjC,EAAWhtpB,UAAUo0hB,kBAAoB,WACrC,GAAI91hB,KAAKmpd,UAAU6zB,mBAAoB,CACnC,IAAIsO,EAAe5sf,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBACvE,GAAI4zd,GACmC,SAA/BA,EAAalif,MAAMwjB,QAAoB,CACvC0+d,EAAalif,MAAMwjB,QAAU,QACzB,KAAQqsK,YAAa,WAERv6L,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,wBAE1D3yB,aAAa/E,KAAKopd,cAAcmuB,eAAe2O,sBAAuBlmf,KAAKmpd,UAAUsiC,cAAcN,gBAE1Gnrf,KAAKopd,cAAcmuB,eAAe8Q,sBAClCrof,KAAKopd,cAAcmuB,eAAe8Q,oBAAoBj/e,MAAMwjB,QAAU,SAE1E5sB,KAAKopd,cAAcmuB,eAAesT,+BAClC7qf,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BC,4BACtD,IAAI94B,EAAkB/wd,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBACtEuyc,EAAgBvre,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,sBAgBxE,GAfI+3b,IACIzvd,KAAKmpd,UAAUj9Q,UACfujR,EAAgBrmd,MAAMwO,KAAO5X,KAAKopd,cAAcmuB,eAAeqP,0BAA4B,KAG3Fn3B,EAAgBrmd,MAAM4O,MAAQhY,KAAKopd,cAAcmuB,eAAeqP,0BAA4B,KAGhGn3B,EAAgBrmd,MAAMuR,MAAS3a,KAAKmpd,UAAU/ld,QAAQmnD,YAAcvqD,KAAKopd,cAAcmuB,eAAeoP,yBAA2B3mf,KAAKopd,cAAcmuB,eAAeqP,0BAA6B,KAChM3c,EAAc7ge,MAAMuR,MAAS80c,EAAgBtob,YAAcnnC,KAAKopd,cAAcmuB,eAAegU,mCAAsC,MAEvIvrf,KAAKopd,cAAc69B,kBACfjnf,KAAKmpd,UAAU0jB,YAAc7se,KAAKmpd,UAAU0jB,WAAWyN,4BACvDt6e,KAAKmpd,UAAU0jB,WAAWyN,2BAA2BkR,oBAAmB,GAExE,KAAQvyT,YAAa,UAAY,CAEjC,GADAqyT,EAAalif,MAAMyX,OAAS7gB,KAAKopd,cAAcyiC,oBAAoBrre,aAAe,KAC9ExgB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,OAAS,EAAG,CAErD,IAAIi9oB,EAAa/hpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGgE,WACjFunK,GAAcA,EAAW1goB,iBAAiB1C,SAAS,IAAMojoB,EAAW1goB,iBAAiB1C,SAAS,GAAGmiL,cACjGihd,EAAW1goB,iBAAiB1C,SAAS,GAAGmiL,cAAc,GAAGs4c,gBAAiB,EAErE2I,GAAcA,EAAW1goB,iBAAiBy/K,gBAC/Cihd,EAAW1goB,iBAAiBy/K,cAAc,GAAGs4c,gBAAiB,EAC9D2I,EAAW1goB,iBAAiB3W,MAAMwjB,QAAU,QAC5C6znB,EAAW1goB,iBAAiB1C,SAAS,KAAKojoB,EAAW1goB,iBAAiB1C,SAAS,GAAGjU,MAAMwjB,QAAU,SAE1G,CACI5sB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBnQ,UACrDv7e,KAAKmpd,UAAUsiC,cAAcC,wBAAwBnQ,QAAQn4e,QAAQgG,MAAMwjB,QAAU,OACjF5sB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBC,kBACrD3rf,KAAKmpd,UAAUsiC,cAAcC,wBAAwBC,gBAAgBvof,QAAQgG,MAAMwjB,QAAU,QAGzG,CACJ,CAER,CACJ,EAmBA8hoB,EAAWhtpB,UAAU+1e,UAAY,SAEjC/tB,EAAY5gd,EAAO+je,EAAY+jL,EAAc3wiB,EAAU6G,EAAMg7Z,GACzD,IAAIp5U,EAAS,CACT0vC,UAAWsxO,EAAY5gd,MAAOA,EAAO+je,WAAYA,EACjDnkS,OAAQkod,EAAcC,iBAAkB5wiB,EAAU4+Y,YAAa/3Y,EAAMi7Y,YAAa+f,GAEtF9hhB,KAAKikiB,iBAAiB/hiB,KAAKwmM,GAC3B1oM,KAAK4vpB,eACT,EAIAlB,EAAWhtpB,UAAUkghB,KAAO,WACxB,IAAIkvI,EAAe9wpB,KAAKikiB,iBAAiB1thB,MACzC,GAAIu6oB,EAAc,CAEd,IAAI9/F,EAAY8/F,EAAajkL,WAAWlX,oBAGxC,OAFA31d,KAAK+opB,kBAAmB,EACxB/opB,KAAKs0nB,cAAe,EACZw8B,EAAapod,QACjB,IAAK,oBACL,IAAK,sBACG1oM,KAAKs6e,4BAELt6e,KAAKs6e,2BAA2B45I,qBAAqB48B,EAAajkL,WAAYikL,EAAa14a,UAAW04a,EAAahopB,MAAOgopB,EAAapod,QAE3I,MACJ,IAAK,gCACG1oM,KAAKs6e,6BAELw2K,EAAajkL,WAAa7se,KAAKs6e,2BAA2B+5I,uBAAuBy8B,EAAajkL,WAAYikL,EAAa14a,UAAW04a,EAAahopB,MAAOgopB,EAAaD,kBAAkB,IAEzL,MACJ,IAAK,OACL,IAAK,SACGn7L,EAAao7L,EAAajkL,YAE1B7se,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE7mc,OAAQ8qnB,EAAajyJ,YAAY74d,OAAQozd,aAAc03J,EAAajyJ,YAAYzF,aAAckC,aAAcw1J,EAAajyJ,YAAYvD,eAGlMt7f,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE7mc,OAAQ8qnB,EAAajyJ,YAAY74d,SAGtD,aAAxC8qnB,EAAajkL,WAAW23B,aAAsE,cAAxCssJ,EAAajkL,WAAW23B,aAAuE,SAAxCssJ,EAAajkL,WAAW23B,aAC7F,WAAxCssJ,EAAajkL,WAAW23B,aAAoE,WAAxCssJ,EAAajkL,WAAW23B,cAC5ExkgB,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEkuB,MAAO+1J,EAAajyJ,YAAY9D,QAC7F/6f,KAAK6kgB,sBAAsBisJ,EAAajkL,aAExCikL,EAAajkL,WAAWhX,yBACxB71d,KAAKmpd,UAAU0yB,aAAaumB,kBAAkB0uJ,EAAajkL,YAE/D7se,KAAKmpd,UAAUppY,eAAe//E,KAAKopd,cAAc+yC,eAAeC,cAChEp8f,KAAKmpd,UAAUnuW,OAAO,CAAC81iB,EAAajkL,WAAWn1c,KAEK,SAAhDo5nB,EAAajkL,WAAWlX,qBAAkF,cAAhDm7L,EAAajkL,WAAWlX,qBAAuF,YAAhDm7L,EAAajkL,WAAWlX,qBAAqF,YAAhDm7L,EAAajkL,WAAWlX,qBAAqF,uBAAhDm7L,EAAajkL,WAAWlX,qBAC3N,WAAhDm7L,EAAajkL,WAAWlX,qBAAoF,aAAhDm7L,EAAajkL,WAAWlX,qBAAsF,yBAAhDm7L,EAAajkL,WAAWlX,qBAAkG,kBAAhDm7L,EAAajkL,WAAWlX,qBAA2F,mBAAhDm7L,EAAajkL,WAAWlX,qBAA4F,QAAhDm7L,EAAajkL,WAAWlX,qBACnW31d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,UAEtD,MACJ,IAAK,WACD,GAAI7se,KAAKmpd,UAAU0yB,cAAgBi1K,EAAajkL,WAAWhX,wBACvD71d,KAAKmpd,UAAU0yB,aAAam6C,gBAAgB86H,EAAajyJ,YAAYnne,IAAI,OAExE,CACD,IAAIq5nB,GAAqB,EAEzB,GAAkB,SAAd//F,GAAsC,uBAAdA,GAAoD,YAAdA,GAAyC,YAAdA,GAAyC,cAAdA,GAA2C,WAAdA,GAAwC,aAAdA,EAA0B,CACzJ,KAAxC8/F,EAAajkL,WAAW23B,cAAsB,QAAkBssJ,EAAajkL,WAAW23B,aACxFxkgB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAY,SAG5F7se,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAY,WAEhGkkL,GAAqB,EAErB,IAAIhpJ,EAAmB+oJ,EAAajkL,WAEhClgd,EAAUo7e,EAAiBp7e,QAAUo7e,EAAiBp7e,QAAU,KAChEA,GAAWA,EAAQqZ,SACnB8qnB,EAAajkL,WAAW7mc,OAASrZ,EAAQqZ,QAE7C8qnB,EAAaE,UAAYhxpB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,SAC/E,CACkB,UAAdmkF,GAAuC,UAAdA,IAEzBhxjB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYikL,EAAajkL,WAAWlX,oBAAqB,UAEzI31d,KAAK4igB,sBAAsBC,qBAAqBiuJ,EAAajkL,WAAY,KAAM,UAC/EkkL,GAAqB,GAEP,aAAd//F,GAA0C,yBAAdA,GAAsD,mBAAdA,GAAgD,kBAAdA,GAA+C,QAAdA,IACvI+/F,GAAqB,EAErB/wpB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYikL,EAAajkL,WAAWlX,oBAAqB,UACzIm7L,EAAaE,UAAYhxpB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,WAE1EkkL,GAED/wpB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYikL,EAAajkL,WAAWlX,oBAAqB,UAE7I31d,KAAKmpd,UAAUppY,eAAe//E,KAAKopd,cAAc+yC,eAAeC,cAChEp8f,KAAKmpd,UAAUtlZ,OAAOitlB,EAAajkL,YACnC7se,KAAKmpd,UAAUqtB,cAAc,KAAMs6K,EAAajkL,WAAWz0P,WAE3D,IAAI45Y,EAAYtznB,SAASkuD,eAAekkmB,EAAajkL,WAAWqM,WAShE,GARI84I,IACkD,IAA9CA,EAAUv8mB,cAAc0lP,kBACxBn7P,KAAKsof,4BAA4B2pI,yBAAyBD,GAG1DA,EAAUv8mB,cAAcgnC,YAAYu1kB,IAGxC,KAAQ/4b,WAAaj5L,KAAKmpd,UAAUkxB,kBAAmB,CACvD,IAAI+2F,EAA0B1ykB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC9E05iB,GAA2BA,EAAwB/zjB,SAAS7Z,OAAS,IACrExD,KAAKmpd,UAAUsiC,cAAcC,wBAAwBoiF,gBAAiB,EACtE9tkB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBsiF,mCAE7D,CACJ,CACA,MACJ,IAAK,SACD,GAAIhukB,KAAKmpd,UAAU0yB,cAAgBi1K,EAAajkL,WAAWhX,wBACvDi7L,EAAajyJ,YAAY74d,OAAO9rB,EAAI42oB,EAAajyJ,YAAYlye,QAAQqZ,OAAO9rB,EAC5E42oB,EAAajyJ,YAAY74d,OAAOgT,EAAI83mB,EAAajyJ,YAAYlye,QAAQqZ,OAAOgT,EAC5Eh5C,KAAKmpd,UAAU0yB,aAAaoiI,cAAc6yC,EAAajyJ,iBAEtD,CAwBD,GAtBkB,SAAdmyD,GAAsC,uBAAdA,GAAoD,YAAdA,GAAyC,YAAdA,GAAyC,cAAdA,GAA2C,WAAdA,GAAwC,aAAdA,IAC/H,KAAxC8/F,EAAajkL,WAAW23B,cAAsB,QAAkBssJ,EAAajkL,WAAW23B,cACxFwsD,EAAY,QACZhxjB,KAAKwngB,sBAAsBnuB,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAajyJ,eAG3FmyD,EAAY,gBACZhxjB,KAAK+7e,wBAAwB1C,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAajyJ,eAGnF,UAAdmyD,GAAuC,UAAdA,EACzBhxjB,KAAK4igB,sBAAsBw1B,kBAAkB04H,EAAajkL,WAAWz0P,UAAW04a,EAAajkL,YAE1E,aAAdmkF,EACLhxjB,KAAKy6e,yBAAyBpB,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAajyJ,aAE3E,QAAdmyD,EACLhxjB,KAAK+nf,oBAAoB1O,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAajyJ,aAEtE,yBAAdmyD,GAAsD,kBAAdA,GAA+C,mBAAdA,GAC9EhxjB,KAAKopd,cAAcilB,gBAAgBgL,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAajyJ,cAElGiyJ,EAAajkL,WAAWoM,aAAc,CACvC,IAAI8gF,EAAa/5jB,KAAKmpd,UAAUxtc,IAAIm1oB,EAAajkL,aAC9B,aAAdmkF,GAA4B+I,EAAWz2D,mBAAqBy2D,GAC7D/5jB,KAAKmpd,UAAUw7C,mBAAmBo1D,EAAY,CAAC,EAEvD,CACA,IAAI01F,OAAe,EAInB,GAHIqB,EAAajkL,WAAWn1c,KACxB+3nB,EAAezvpB,KAAKmpd,UAAU4uC,UAAU+4J,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,KAE9D,MAAhBiopB,IAAkE,mBAAzCA,EAAa55L,yBAAyF,iBAAzC45L,EAAa55L,yBAA6C,CAChJ45L,EAAa9ioB,QAAQtP,SAASnb,KAAK4upB,EAAajkL,WAAWlgd,QAAQtP,SAAS,IACxB,kBAAhDyzoB,EAAajkL,WAAWlX,qBACxB85L,EAAa9ioB,QAAQtP,SAASnb,KAAK4upB,EAAajkL,WAAWlgd,QAAQtP,SAAS,IAChF,IAAI3a,EAAMoupB,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,GAAK,WACjDwzB,EAAO,KAIX,GAHIh7B,KAAKmpd,UAAU+3C,qBACflme,EAAOh7B,KAAKopd,cAAcs7E,0BAA0B,kBAEpD1pgB,EAAM,CAEN,IADA,IAAI2pgB,EAAiB/iiB,KAAK+yH,MAAM35F,GACvBjuB,EAAI,EAAGA,EAAI43hB,EAAenhiB,OAAQuJ,IACvC,GAAI43hB,EAAe53hB,GAAG2+a,MAAQhpb,EAC1B,GAAoD,kBAAhDoupB,EAAajkL,WAAWlX,oBACxBgvE,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,OAC5CizD,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KAC5Dh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KACpFh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,YAEnE,GAAoD,mBAAhDo/K,EAAajkL,WAAWlX,oBAC7BgvE,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,QAC5CizD,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KAC5Dh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KACpFh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,YAEnE,CACDizD,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,OAC5C1xe,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,OACpE,IACIkE,EAAS3iB,EADQ7B,EAAgB0/L,EAAajkL,WAAW7xc,OAE7D2pgB,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQ7H,KAAKC,UAAU+ze,GACnD51e,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQ7H,KAAKC,UAAU+ze,EAC/E,CAGR51e,KAAKopd,cAAcinE,wBAAwBrwhB,KAAKopd,cAAcs9C,oBAAqB,gBACvF,CACJ,CAIA,GAHA1mgB,KAAKmpd,UAAUqtB,cAAc,KAAMs6K,EAAajkL,WAAWz0P,WAE3Dp4O,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B6rI,sBAAsB28B,EAAajkL,WAAWz0P,UAAW44U,GACjH8/F,EAAajkL,WAAWoM,aAAc,CACtC,IAAIghF,EAA8Bj6jB,KAAKi6jB,4BAA4Bj6jB,KAAKi6jB,4BAA4Bz2jB,OAAS,GACzGiygB,EAAiBz1gB,KAAKswpB,oBAAoBr2F,GAC9Cj6jB,KAAKmpd,UAAUgsB,qBAAqBjze,KAAK+3jB,GACzCj6jB,KAAKi6jB,4BAA4BvsjB,OAAO1N,KAAKi6jB,4BAA4Bz2jB,OAAS,GAClF,IAAIkmd,EAAaonM,EAAajkL,WAAWnjB,YAAc,EAAIonM,EAAajkL,WAAWnjB,WAAaonM,EAAajkL,WAAWz0P,UACxHp4O,KAAKopd,cAAcmwD,8BAA8B7vD,GAAY+rD,GAAgBvzgB,KAAKlC,KAAK6upB,oCAAoC7upB,KAAK6upB,oCAAoCrrpB,OAAS,IAC7KxD,KAAK6upB,oCAAoCnhpB,OAAO1N,KAAK6upB,oCAAoCrrpB,OAAS,EACtG,CACJ,CACA,MACJ,IAAK,eACDxD,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEj+c,QAASkioB,EAAajyJ,YAAYjwe,UAC/F5uB,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7FikL,EAAajkL,WAAW41B,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC7F,MACJ,IAAK,eACDpynB,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE5W,YAAa66L,EAAajyJ,YAAY5oC,cACnGj2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,UAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,aACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE7W,UAAW86L,EAAajyJ,YAAY7oC,YACjGh2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,QAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,gBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEj+c,QAASkioB,EAAajyJ,YAAYjwe,UAC3C,gBAAhDkioB,EAAajkL,WAAWlX,qBACxB31d,KAAKsof,4BAA4Bo/J,mBAAmBoJ,EAAajkL,YACjE7se,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7FikL,EAAajkL,WAAW41B,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,kBAG7FpynB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,WAEtD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,kBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE3W,UAAW46L,EAAajyJ,YAAY3oC,YACjGl2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,aAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,yBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAEvD7W,UAAW86L,EAAajyJ,YAAY7oC,UAAWD,gBAAiB+6L,EAAajyJ,YAAY9oC,gBAAiBp0a,YAAamvmB,EAAajyJ,YAAYl9c,YAEhJs0a,YAAa66L,EAAajyJ,YAAY5oC,YAAarnc,QAASkioB,EAAajyJ,YAAYjwe,QAASsnc,UAAW46L,EAAajyJ,YAAY3oC,UAClIgkC,sBAAuBl6f,KAAKq5nB,aAAay3B,EAAajyJ,YAAYqJ,eAAgB/N,uBAAwBn6f,KAAKq5nB,aAAay3B,EAAajyJ,YAAYoJ,eAEzJjogB,KAAKixpB,gCAAgCH,EAAajkL,YAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,sBAEDs6K,EAAajkL,WAAa7se,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bq/J,WAAWmJ,EAAajkL,WAAYikL,EAAapod,OAAQood,EAAajyJ,aAC5J7+f,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7FikL,EAAajkL,WAAW41B,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBAC7F,MACJ,IAAK,0BAIL,IAAK,wBAIL,IAAK,yBAED0+B,EAAajkL,WAAa7se,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bq/J,WAAWmJ,EAAajkL,WAAYikL,EAAapod,OAAQood,EAAajyJ,aAC5J,MACJ,IAAK,qBACD7+f,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,EAC3E0G,EAAajkL,WAAWuB,YAAc0iL,EAAajyJ,YAAYzwB,YAC3Dpue,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,KACzCl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAG9G,YAAc0iL,EAAajyJ,YAAYzwB,aAGvFpue,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bq/J,WAAWmJ,EAAajkL,WAAYikL,EAAapod,OAAQood,EAAajyJ,aAClI7+f,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7F7se,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,eAC9C7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACzCl1e,KAAKmpd,UAAUw7C,mBAAmB3kgB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,CAAC,GAGhFl1e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAC,GAEhE7se,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,EAC3EpqpB,KAAKmpd,UAAUppY,eAAe//E,KAAKopd,cAAc+yC,eAAeC,cAChE,MACJ,IAAK,YACDp8f,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE52D,UAAW66O,EAAajyJ,YAAY5oF,YACjGj2a,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,aAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,WACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEx8c,SAAUygoB,EAAajyJ,YAAYxue,WAChGrwB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,YAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,aACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEhxa,WAAYi1lB,EAAajyJ,YAAYhjc,aAClG77D,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,cAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,YACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEp+c,UAAWqioB,EAAajyJ,YAAYpwe,YACjGzuB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,aAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,uBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAElle,KAAMmppB,EAAajyJ,YAAYl3f,OAC5F3H,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,wBAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,SAEDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAWqI,YAAY,GAAI,CAAElvc,OAAQ8qnB,EAAajyJ,YAAY74d,OAAQwwb,YAAas6L,EAAajyJ,YAAYroC,cAC3Jx2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAWqI,YAAY,GAAI,UACjEl1e,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,iCACGs6K,EAAajyJ,aAAeiyJ,EAAajyJ,YAAY6+C,cAAgBozG,EAAa/uJ,YAAY27C,aAC9F19iB,KAAKkxpB,kBAAkBJ,EAAajyJ,aAExC7+f,KAAKskjB,iCAAiCwsG,EAAajyJ,YAAYhpC,wBAAyBi7L,EAAajyJ,aACrG,MACJ,IAAK,yBACD,GAAIiyJ,EAAajkL,WAAWhX,wBAC+B,eAAnDi7L,EAAajkL,WAAWhX,yBACxB71d,KAAKmxpB,2BAA2BL,EAAajkL,WAAWhX,wBAAyBi7L,EAAajyJ,aAAa,GAC3G7+f,KAAKmxpB,2BAA2BL,EAAajkL,WAAWhX,wBAAyBi7L,EAAa/uJ,aAAa,IAG3G/hgB,KAAKmxpB,2BAA2BL,EAAajkL,WAAWhX,wBAAyBi7L,EAAajkL,WAAYikL,EAAajyJ,iBAG1H,CACiBnggB,SAASkuD,eAAekkmB,EAAajkL,WAAWn1c,GAAK,iBAAiBra,SAAS,GAAGA,SAAS,GACjG5a,UAAY,kCACpBgtpB,EAAezvpB,KAAKmpd,UAAU4uC,UAAU+4J,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,IAAlF,IACI4ppB,EAAgBpxpB,KAAKmpd,UAAU4uC,UAAU+4J,EAAajkL,WAAWn1c,IASrE,GARA+3nB,EAAa9ioB,QAAQtP,SAAS3P,OAAO+hpB,EAAa9ioB,QAAQtP,SAAS9V,QAAQ6ppB,EAAczkoB,QAAQtP,SAAS,IAAK,GAC3D,kBAAhDyzoB,EAAajkL,WAAWlX,qBACxB85L,EAAa9ioB,QAAQtP,SAAS3P,OAAO+hpB,EAAa9ioB,QAAQtP,SAAS9V,QAAQ6ppB,EAAczkoB,QAAQtP,SAAS,IAAK,GAC/G3a,EAAMoupB,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,GAAK,WACjDwzB,EAAO,KACPh7B,KAAKmpd,UAAU+3C,qBACflme,EAAOh7B,KAAKopd,cAAcs7E,0BAA0B,kBAEpD1pgB,EAAM,CAEN,IADI2pgB,EAAiB/iiB,KAAK+yH,MAAM35F,GACvBjuB,EAAI,EAAGA,EAAI43hB,EAAenhiB,OAAQuJ,IACnC43hB,EAAe53hB,GAAG2+a,MAAQhpb,IAC1BiiiB,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQ,GACpCk7hB,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,GAC5C1xe,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQ,GAC5DzJ,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,IAG5E1xe,KAAKmpd,UAAUtlZ,OAAOitlB,EAAajkL,YACnC7se,KAAKmpd,UAAUqtB,gBACfx2e,KAAKopd,cAAcinE,wBAAwBrwhB,KAAKopd,cAAcs9C,oBAAqB,gBACvF,CACJ,EAER1mgB,KAAKmqlB,eAAejolB,KAAK4upB,GACzB9wpB,KAAK4vpB,gBACL5vpB,KAAK+opB,kBAAmB,EACxB/opB,KAAKs0nB,cAAe,CACxB,CACJ,EAIAo6B,EAAWhtpB,UAAUoghB,KAAO,WACxB,IAAIgvI,EAAe9wpB,KAAKmqlB,eAAe5zkB,MACvC,GAAIu6oB,EAAc,CAEd,IAAI9/F,EAAY8/F,EAAajkL,WAAWlX,oBAExC,OADA31d,KAAK+opB,kBAAmB,EAChB+H,EAAapod,QACjB,IAAK,gCACG1oM,KAAKs6e,6BAELw2K,EAAajkL,WAAa7se,KAAKs6e,2BAA2B+5I,uBAAuBy8B,EAAajkL,WAAYikL,EAAa14a,UAAW04a,EAAahopB,MAAOgopB,EAAaD,mBAEvK,MACJ,IAAK,oBACL,IAAK,sBACG7wpB,KAAKs6e,4BAELt6e,KAAKs6e,2BAA2Bm6I,qBAAqBq8B,EAAajkL,WAAYikL,EAAa14a,UAAW04a,EAAahopB,MAAOgopB,EAAapod,QAE3I,MACJ,IAAK,OACL,IAAK,SACGgtR,EAAao7L,EAAajkL,YAC1B7se,KAAKmpd,UAAUw7C,mBAEfmsJ,EAAajkL,WAAY,CAAE7mc,OAAQ8qnB,EAAa/uJ,YAAY/7d,OAAQozd,aAAc03J,EAAa/uJ,YAAY3I,aAAckC,aAAcw1J,EAAa/uJ,YAAYzG,eAGhKt7f,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE7mc,OAAQ8qnB,EAAa/uJ,YAAY/7d,SAGtD,aAAxC8qnB,EAAajkL,WAAW23B,aAAsE,cAAxCssJ,EAAajkL,WAAW23B,aAAuE,SAAxCssJ,EAAajkL,WAAW23B,aAC7F,WAAxCssJ,EAAajkL,WAAW23B,aAAoE,WAAxCssJ,EAAajkL,WAAW23B,cAC5ExkgB,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEkuB,MAAO+1J,EAAa/uJ,YAAYhH,QAC7F/6f,KAAK6kgB,sBAAsBisJ,EAAajkL,aAExCikL,EAAajkL,WAAWhX,yBACxB71d,KAAKmpd,UAAU0yB,aAAaumB,kBAAkB0uJ,EAAajkL,YAE/D7se,KAAKmpd,UAAUppY,eAAe//E,KAAKopd,cAAc+yC,eAAeC,cAChEp8f,KAAKmpd,UAAUnuW,OAAO,CAAC81iB,EAAajkL,WAAWn1c,KAEK,SAAhDo5nB,EAAajkL,WAAWlX,qBAAkF,cAAhDm7L,EAAajkL,WAAWlX,qBAAuF,YAAhDm7L,EAAajkL,WAAWlX,qBAAqF,YAAhDm7L,EAAajkL,WAAWlX,qBAAqF,uBAAhDm7L,EAAajkL,WAAWlX,qBACxN,WAAhDm7L,EAAajkL,WAAWlX,qBAAoF,aAAhDm7L,EAAajkL,WAAWlX,qBAAsF,yBAAhDm7L,EAAajkL,WAAWlX,qBAAkG,kBAAhDm7L,EAAajkL,WAAWlX,qBAA2F,mBAAhDm7L,EAAajkL,WAAWlX,qBAA4F,QAAhDm7L,EAAajkL,WAAWlX,qBACtW31d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,UAEtD,MACJ,IAAK,WACD,GAAI7se,KAAKmpd,UAAU0yB,cAAgBi1K,EAAajkL,WAAWhX,wBACvDi7L,EAAa/uJ,YAAY/7d,OAAO9rB,EAAI42oB,EAAa/uJ,YAAYp1e,QAAQqZ,OAAO9rB,EAC5E42oB,EAAa/uJ,YAAY/7d,OAAOgT,EAAI83mB,EAAa/uJ,YAAYp1e,QAAQqZ,OAAOgT,EAC5Eh5C,KAAKmpd,UAAU0yB,aAAaoiI,cAAc6yC,EAAa/uJ,iBAEtD,CAEiB,SAAdivD,GAAsC,uBAAdA,GAAoD,YAAdA,GAAyC,YAAdA,GAAyC,cAAdA,GAA2C,WAAdA,GAAwC,aAAdA,IAC/H,KAAxC8/F,EAAajkL,WAAW23B,cAAsB,QAAkBssJ,EAAajkL,WAAW23B,cACxFwsD,EAAY,QACZhxjB,KAAKwngB,sBAAsBnuB,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAaE,aAG3FhgG,EAAY,gBACZhxjB,KAAK+7e,wBAAwB1C,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAaE,aAGnF,aAAdhgG,GACAhxjB,KAAKy6e,yBAAyBpB,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAaE,WAEhF,UAAdhgG,GAAuC,UAAdA,GACzBhxjB,KAAK4igB,sBAAsBw1B,kBAAkB04H,EAAajkL,WAAWz0P,UAAW04a,EAAa/uJ,aAE/E,yBAAdivD,GAAsD,kBAAdA,GAA+C,mBAAdA,GACzEhxjB,KAAKopd,cAAcilB,gBAAgBgL,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAaE,WAErF,QAAdhgG,GACAhxjB,KAAK+nf,oBAAoB1O,gBAAgBy3K,EAAajkL,WAAWz0P,UAAW04a,EAAaE,WAE7F,IAAIj3F,EAAa/5jB,KAAKmpd,UAAUxtc,IAAIm1oB,EAAajkL,YAQjD,GAPA7se,KAAKmpd,UAAUnuW,OAAO,CAAC81iB,EAAajkL,WAAWn1c,MAC5B,aAAds5hB,GAA4B+I,EAAWz2D,mBAAqBy2D,GAC7D/5jB,KAAKmpd,UAAUw7C,mBAAmBo1D,EAAY,CAAC,GAEnD/5jB,KAAKmpd,UAAUqtB,cAAc,KAAMs6K,EAAajkL,WAAWz0P,WAE3Dp4O,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B6rI,sBAAsB28B,EAAajkL,WAAWz0P,UAAW44U,GACjH,KAAQ/3X,WAAaj5L,KAAKmpd,UAAUkxB,kBAAmB,CACvD,IAAI+2F,EAA0B1ykB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,oBAC9E05iB,GAA2BA,EAAwB/zjB,SAAS7Z,OAAS,IACrExD,KAAKmpd,UAAUsiC,cAAcC,wBAAwBoiF,gBAAiB,EACtE9tkB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBsiF,mCAE7D,CACJ,CACA,MACJ,IAAK,SACD,GAAIhukB,KAAKmpd,UAAU0yB,cAAgBi1K,EAAajkL,WAAWhX,wBACvD71d,KAAKmpd,UAAU0yB,aAAam6C,gBAAgB86H,EAAa/uJ,YAAYrqe,IAAI,OAExE,CACD,IAAIm3M,GAAW,EACXwib,EAAQP,EAAajkL,WAAWlX,oBAElB,SAAdq7F,GAAsC,uBAAdA,GAAoD,YAAdA,GAAyC,YAAdA,GAAyC,cAAdA,GAA2C,WAAdA,GAAwC,aAAdA,IAEvKqgG,EADwC,KAAxCP,EAAajkL,WAAW23B,cAAsB,QAAkBssJ,EAAajkL,WAAW23B,aAChF,QAGA,UAGZxkgB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYwkL,EAAO,UACnGrxpB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,UAClDh+P,GAAW,GAEG,UAAdmiV,GAAuC,UAAdA,IAEzBhxjB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYwkL,EAAO,UACnGrxpB,KAAK4igB,sBAAsBC,qBAAqBiuJ,EAAajkL,WAAY,KAAM,UAC/Eh+P,GAAW,GAEG,aAAdmiV,GAA0C,yBAAdA,GAAsD,kBAAdA,GAA+C,mBAAdA,IAErGhxjB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYwkL,EAAO,UACnGrxpB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,WAEjDh+P,GAED7uO,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BypI,aAAa++B,EAAajkL,WAAYwkL,EAAO,UAEvG,IAAI5B,OAAe,EAInB,GAHIqB,EAAajkL,WAAWn1c,KACxB+3nB,EAAezvpB,KAAKmpd,UAAU4uC,UAAU+4J,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,KAE9D,MAAhBiopB,IAAkE,mBAAzCA,EAAa55L,yBAAyF,iBAAzC45L,EAAa55L,yBAA6C,CAChJ45L,EAAa9ioB,QAAQtP,SAAS3P,OAAO+hpB,EAAa9ioB,QAAQtP,SAAS9V,QAAQuppB,EAAajkL,WAAWlgd,QAAQtP,SAAS,IAAK,GACrE,kBAAhDyzoB,EAAajkL,WAAWlX,qBACxB85L,EAAa9ioB,QAAQtP,SAAS3P,OAAO+hpB,EAAa9ioB,QAAQtP,SAAS9V,QAAQuppB,EAAajkL,WAAWlgd,QAAQtP,SAAS,IAAK,GAC7H,IAAI3a,EAAMoupB,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,GAAK,WACjDwzB,EAAO,KAIX,GAHIh7B,KAAKmpd,UAAU+3C,qBACflme,EAAOh7B,KAAKopd,cAAcs7E,0BAA0B,kBAEpD1pgB,EAAM,CAEN,IADA,IAAI2pgB,EAAiB/iiB,KAAK+yH,MAAM35F,GACvBjuB,EAAI,EAAGA,EAAI43hB,EAAenhiB,OAAQuJ,IACnC43hB,EAAe53hB,GAAG2+a,MAAQhpb,IAC1BiiiB,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQ,GACpCk7hB,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,GAC5C1xe,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQ,GAC5DzJ,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,IAG5E1xe,KAAKopd,cAAcinE,wBAAwBrwhB,KAAKopd,cAAcs9C,oBAAqB,gBACvF,CACJ,CACA1mgB,KAAKmpd,UAAUppY,eAAe+wkB,EAAajkL,WAAWz0P,WACtDp4O,KAAKmpd,UAAUtlZ,OAAOitlB,EAAajkL,YACnC7se,KAAKmpd,UAAUqtB,cAAc,KAAMs6K,EAAajkL,WAAWz0P,WAE3D,IAAI1gN,EAAKo5nB,EAAajkL,WAAWqM,UAAY43K,EAAajkL,WAAWqM,UAAY43K,EAAajkL,WAAWoM,aACrG+4I,EAAYtznB,SAASkuD,eAAel1B,GAExC,GADA13B,KAAKmvpB,sBAAsBn9B,GACvB8+B,EAAajkL,WAAWoM,aAAc,CACtC,IAAI5qQ,EAAcruO,KAAKqwpB,oCAAoCS,EAAajkL,WAAYn1c,EAAIo5nB,EAAajkL,WAAWz0P,WAChHp4O,KAAKqopB,oBAAoBnmpB,KAAKmsO,EAClC,CACJ,CACA,MACJ,IAAK,eACDruO,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEj+c,QAASkioB,EAAa/uJ,YAAYnze,UAC/F5uB,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7F,MACJ,IAAK,eACD7se,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE5W,YAAa66L,EAAa/uJ,YAAY9rC,cACnGj2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,UAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,aACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE7W,UAAW86L,EAAa/uJ,YAAY/rC,YACjGh2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,QAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,gBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEj+c,QAASkioB,EAAa/uJ,YAAYnze,UAC3C,gBAAhDkioB,EAAajkL,WAAWlX,qBACxB31d,KAAKsof,4BAA4Bo/J,mBAAmBoJ,EAAajkL,YACjE7se,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,IAG7F7se,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,WAEtD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,kBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE3W,UAAW46L,EAAa/uJ,YAAY7rC,YACjGl2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,aAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,yBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAEvD7W,UAAW86L,EAAa/uJ,YAAY/rC,UAAWC,YAAa66L,EAAa/uJ,YAAY9rC,YAAarnc,QAASkioB,EAAa/uJ,YAAYnze,QAASsnc,UAAW46L,EAAa/uJ,YAAY7rC,UACjLgkC,sBAAuBl6f,KAAKq5nB,aAAay3B,EAAa/uJ,YAAYmG,eAAgB/N,uBAAwBn6f,KAAKq5nB,aAAay3B,EAAa/uJ,YAAYkG,aACrJlyC,gBAAiB+6L,EAAa/uJ,YAAYhsC,gBAAiBp0a,YAAamvmB,EAAa/uJ,YAAYpgd,cAErG3hD,KAAKixpB,gCAAgCH,EAAajkL,YAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,sBAEDs6K,EAAajkL,WAAa7se,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B4/J,WAAW4I,EAAajkL,WAAYikL,EAAapod,OAAQood,EAAajyJ,aAC5J7+f,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7F,MACJ,IAAK,0BAEDikL,EAAajkL,WAAa7se,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B4/J,WAAW4I,EAAajkL,WAAYikL,EAAapod,OAAQood,EAAajyJ,aAC5J,MACJ,IAAK,wBAIL,IAAK,yBAEDiyJ,EAAajkL,WAAa7se,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B4/J,WAAW4I,EAAajkL,WAAYikL,EAAapod,QACvI,MACJ,IAAK,qBACD1oM,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,EAC3E0G,EAAajkL,WAAWuB,YAAc0iL,EAAa/uJ,YAAY3zB,YAE/D,IAAIvB,EAAa7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACtDrI,IACAA,EAAWuB,YAAc0iL,EAAa/uJ,YAAY3zB,YAClDvB,EAAW7mc,OAAOnlB,OAASiwoB,EAAa/uJ,YAAY/7d,OAAOnlB,QAG/D7gB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B4/J,WAAW4I,EAAajkL,WAAYikL,EAAapod,OAAQood,EAAajyJ,aAClI7+f,KAAKsof,4BAA4B+pI,6BAA6By+B,EAAajkL,WAAY,MAAM,GAC7F7se,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,eAC9CA,EACA7se,KAAKmpd,UAAUw7C,mBAAmB93B,EAAY,CAAC,GAG/C7se,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAC,GAEhE7se,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB2vK,uBAAwB,EAC3EpqpB,KAAKmpd,UAAUppY,eAAe//E,KAAKopd,cAAc+yC,eAAeC,cAChEp8f,KAAKmpd,UAAUnuW,OAAO,CAAC81iB,EAAajkL,WAAWn1c,KAC/C,MACJ,IAAK,YACD13B,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAE52D,UAAW66O,EAAa/uJ,YAAY9rF,YACjGj2a,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,aAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,WACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEx8c,SAAUygoB,EAAa/uJ,YAAY1xe,WAChGrwB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,YAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,YACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAEp+c,UAAWqioB,EAAa/uJ,YAAYtze,YACjGzuB,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,aAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,uBACDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAY,CAAElle,KAAMmppB,EAAa/uJ,YAAYp6f,OAC5F3H,KAAKkvpB,oBAAoB4B,EAAajkL,WAAY,wBAClD7se,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,SAEDx2e,KAAKmpd,UAAUw7C,mBAAmBmsJ,EAAajkL,WAAWqI,YAAY,GAAI,CAAElvc,OAAQ8qnB,EAAa/uJ,YAAY/7d,OAAQwwb,YAAas6L,EAAa/uJ,YAAYvrC,cAC3Jx2d,KAAKkvpB,oBAAoB4B,EAAajkL,WAAWqI,YAAY,GAAI,UACjEl1e,KAAKmpd,UAAUqtB,gBACf,MACJ,IAAK,iCACGs6K,EAAa/uJ,aAAe+uJ,EAAajyJ,YAAY6+C,cAAgBozG,EAAa/uJ,YAAY27C,aAC9F19iB,KAAKkxpB,kBAAkBJ,EAAa/uJ,aAExC/hgB,KAAKskjB,iCAAiCwsG,EAAa/uJ,YAAYlsC,wBAAyBi7L,EAAa/uJ,aACrG,MACJ,IAAK,yBACD,GAAI+uJ,EAAajkL,WAAWhX,wBAC+B,eAAnDi7L,EAAajkL,WAAWhX,yBACxB71d,KAAKmxpB,2BAA2BL,EAAajkL,WAAWhX,wBAAyBi7L,EAAajyJ,aAAa,GAC3G7+f,KAAKmxpB,2BAA2BL,EAAajkL,WAAWhX,wBAAyBi7L,EAAa/uJ,aAAa,IAG3G/hgB,KAAKmxpB,2BAA2BL,EAAajkL,WAAWhX,wBAAyBi7L,EAAajkL,WAAYikL,EAAa/uJ,iBAG1H,CACiBrjgB,SAASkuD,eAAekkmB,EAAajkL,WAAWn1c,GAAK,iBAAiBra,SAAS,GAAGA,SAAS,GACjG5a,UAAY,4CACpBgtpB,EAAezvpB,KAAKmpd,UAAU4uC,UAAU+4J,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,IAAlF,IACI4ppB,EAAgBpxpB,KAAKmpd,UAAU4uC,UAAU+4J,EAAajkL,WAAWn1c,IASrE,GARA+3nB,EAAa9ioB,QAAQtP,SAASnb,KAAKkvpB,EAAczkoB,QAAQtP,SAAS,IACd,kBAAhDyzoB,EAAajkL,WAAWlX,qBACxB85L,EAAa9ioB,QAAQtP,SAASnb,KAAKkvpB,EAAczkoB,QAAQtP,SAAS,IAClE3a,EAAMoupB,EAAajkL,WAAWn1c,GAAGlwB,MAAM,KAAK,GAAK,WACjDwzB,EAAO,KACPh7B,KAAKmpd,UAAU+3C,qBACflme,EAAOh7B,KAAKopd,cAAcs7E,0BAA0B,kBAEpD1pgB,EAAM,CAEN,IADI2pgB,EAAiB/iiB,KAAK+yH,MAAM35F,GACvBjuB,EAAI,EAAGA,EAAI43hB,EAAenhiB,OAAQuJ,IACvC,GAAI43hB,EAAe53hB,GAAG2+a,MAAQhpb,EAC1B,GAAoD,kBAAhDoupB,EAAajkL,WAAWlX,oBACxBgvE,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,OAC5CizD,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KAC5Dh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KACpFh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,YAEnE,GAAoD,mBAAhDo/K,EAAajkL,WAAWlX,oBAC7BgvE,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,QAC5CizD,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KAC5Dh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQqnpB,EAAajkL,WAAW7xc,KACpFh7B,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,YAEnE,CACDizD,EAAe53hB,GAAGu3hB,UAAU5yD,cAAgB,OAC5C1xe,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU5yD,cAAgB,OACpE,IACIkE,EAAS3iB,EADQ7B,EAAgB0/L,EAAajkL,WAAW7xc,OAE7D2pgB,EAAe53hB,GAAGu3hB,UAAU76hB,MAAQ7H,KAAKC,UAAU+ze,GACnD51e,KAAKopd,cAAcs9C,oBAAoB35f,GAAGu3hB,UAAU76hB,MAAQ7H,KAAKC,UAAU+ze,EAC/E,CAGR51e,KAAKmpd,UAAUxtc,IAAIm1oB,EAAajkL,YAChC,IAAI0J,EAAU73e,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuBo5nB,EAAa14a,WACtGp4O,KAAKmpd,UAAUqtB,cAAcD,EAASu6K,EAAa14a,WACnDp4O,KAAKopd,cAAcinE,wBAAwBrwhB,KAAKopd,cAAcs9C,oBAAqB,gBACvF,CACJ,EAEJoqJ,EAAa/uJ,kBAAyDtjgB,IAA1CqypB,EAAa/uJ,YAAYU,eACrDquJ,EAAajkL,WAAW41B,aAAequJ,EAAa/uJ,YAAYU,cAEpEzigB,KAAKikiB,iBAAiB/hiB,KAAK4upB,GAC3B9wpB,KAAK4vpB,gBACL5vpB,KAAK+opB,kBAAmB,CAC5B,CACJ,EACA2F,EAAWhtpB,UAAUwvpB,kBAAoB,SAAU9tpB,GAC3CA,EAAQs6iB,aAAmD,YAApCt6iB,EAAQyyd,wBAC/B71d,KAAKmpd,UAAU+3C,mBAAmByhH,oBAAoBv/mB,GAAS,GAEtB,YAApCA,EAAQyyd,yBACb71d,KAAKmpd,UAAU+3C,mBAAmB0hH,cAAcx/mB,GAAS,EAEjE,EACAsrpB,EAAWhtpB,UAAUyvpB,2BAA6B,SAAUt7L,EAAyBgX,EAAYpje,GAC7F,GAAIoje,EAAY,CACZ,IAAIykL,EAAiBtxpB,KAAKmpd,UAAU0yB,aAAa+iI,aAAa/xI,EAAWn1c,GAAGlwB,MAAM,KAAK,IACnFwzB,EAAO,KAIX,GAHIh7B,KAAKmpd,UAAU+3C,qBACflme,EAAOh7B,KAAKopd,cAAcs7E,0BAA0B,kBAEpD1pgB,EAAM,CACN,IAAI2pgB,EAAiB/iiB,KAAK+yH,MAAM35F,GAC5BlyB,EAAQ9I,KAAKmpd,UAAU0yB,aAAaqkI,kBAAkBrzI,EAAWn1c,GAAGlwB,MAAM,KAAK,IACnF,OAAQqud,GACJ,IAAK,UACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,UACD,IAAIhnY,EAAenwF,SAASkuD,eAAeigb,EAAWn1c,GAAGlwB,MAAM,KAAK,GAAK,yBAAyB2X,kBAAkBA,kBACpH,GAA+B,WAA3B02c,GAAmE,iBAA3BA,EACxCy7L,EAAe7npB,MAAQA,EACvBzJ,KAAKmpd,UAAU0yB,aAAaqpI,0BAA0BosC,EAAgBzikB,GAAc,EAAM/lF,EAAO67hB,QAEhG,GAA+B,eAA3B9uE,EACLy7L,EAAerpmB,WAAax+C,EAC5BzJ,KAAKmpd,UAAU0yB,aAAawqI,+BAA+BirC,EAAgBzikB,EAAa1vE,mBAAmB,EAAMrW,EAAO67hB,QAEvH,GAA+B,gBAA3B9uE,GAAwE,WAA3BA,EAKlD,GAJAy7L,EAAeppmB,cAAgBz+C,EAC/Bk7hB,EAAe77hB,GAAOw7hB,UAAUp8e,cAAgBz+C,EAChDzJ,KAAKopd,cAAcs9C,oBAAoB59f,GAAOw7hB,UAAUp8e,cAAgBz+C,EACxEzJ,KAAKmpd,UAAU4uC,UAAU4sC,EAAe77hB,GAAO4ib,IAAIlkb,MAAM,KAAK,IAAI0gD,cAAgBz+C,EACnD,WAA3Bosd,EACA,IAAK,IAAIx7W,EAAI,EAAGA,EAAIxrB,EAAa9mF,QAAQvE,OAAQ62G,IAC7CxrB,EAAa9mF,QAAQsyG,GAAGryD,WAAWv+C,EAAMmjI,SAASvyB,QAItDxrB,EAAa3mC,cAAgBz+C,EAGrC,MACJ,IAAK,WACD,IAAI+1mB,EAAqB9gnB,SAASkuD,eAAeigb,EAAWn1c,GAAGlwB,MAAM,KAAK,GAAK,yBAAyB2X,kBAAkBA,kBAAkBY,iBAC5IuxoB,EAAetnoB,UAAYvgB,EAC3BzJ,KAAKmpd,UAAU0yB,aAAasqI,8BAA8BmrC,EAAgB9xC,GAAoB,EAAM12mB,EAAO67hB,GAGnH3kiB,KAAKopd,cAAcinE,wBAAwBrwhB,KAAKopd,cAAcs9C,oBAAqB,gBACvF,CACJ,CACJ,EACAgoJ,EAAWhtpB,UAAU4ijB,iCAAmC,SAAUzuF,EAAyBzyd,GACvF,OAAQyyd,GACJ,IAAK,UACL,IAAK,gBACD71d,KAAKmpd,UAAU0yB,aAAagnI,oCAAoCz/mB,GAAS,GACzE,MACJ,IAAK,WACDpD,KAAKmpd,UAAU0yB,aAAailI,qCAAqC19mB,GAAS,GAC1E,MACJ,IAAK,cACDpD,KAAKmpd,UAAU0yB,aAAaglI,oCAAoCz9mB,GAAS,GACzE,MACJ,IAAK,eACDpD,KAAKmpd,UAAU0yB,aAAasnI,qCAAqC//mB,GAAS,GAC1E,MACJ,IAAK,UACDpD,KAAKmpd,UAAU0yB,aAAawnI,oCAAoCjgnB,GAAS,GACzE,MACJ,IAAK,iBACL,IAAK,eACDpD,KAAKmpd,UAAU0yB,aAAaonI,iCAAiC7/mB,GAAS,GAElF,EACAsrpB,EAAWhtpB,UAAUuvpB,gCAAkC,SAAUnwB,GAC7D9goB,KAAKkvpB,oBAAoBpuB,EAAmB,QAC5C9goB,KAAKkvpB,oBAAoBpuB,EAAmB,UAC5C9goB,KAAKkvpB,oBAAoBpuB,EAAmB,WAC5C9goB,KAAKkvpB,oBAAoBpuB,EAAmB,aAC5C9goB,KAAKkvpB,oBAAoBpuB,EAAmB,aAC5C9goB,KAAKkvpB,oBAAoBpuB,EAAmB,cAC5C9goB,KAAKkvpB,oBAAoBpuB,EAAmB,WAChD,EACA4tB,EAAWhtpB,UAAUkupB,cAAgB,SAAU2B,GACvCvxpB,KAAKmpd,UAAUsiC,eACfzrf,KAAKmpd,UAAUsiC,cAAcq+F,wBAE7B9plB,KAAKikiB,kBAAoD,GAAhCjkiB,KAAKikiB,iBAAiBzgiB,OAC/CxD,KAAKopd,cAAcovB,8BAA6B,GAGhDx4e,KAAKopd,cAAcovB,8BAA6B,GAEhD+4K,GAQAvxpB,KAAKopd,cAAcovB,8BAA6B,EAGxD,EACAk2K,EAAWhtpB,UAAUivpB,WAAa,WAE9B3wpB,KAAK0wpB,WAAY,QAAc,MAAO,CAAEh5nB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mBAAoBj1B,UAAW,uBAAwBsE,OAAQ,iBACvI/G,KAAKwxpB,iBAAkB,QAAc,MAAO,CAAE95nB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAA2Bj1B,UAAW,gCACpHzC,KAAK0wpB,UAAUhtpB,YAAY1D,KAAKwxpB,iBAEhCxxpB,KAAKyxpB,kBAAmB,QAAc,MAAO,CAAE/5nB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,2BAA4Bj1B,UAAW,iCACtHzC,KAAK0wpB,UAAUhtpB,YAAY1D,KAAKyxpB,kBAChCzxpB,KAAKopd,cAAcs/B,cAAchlf,YAAY1D,KAAK0wpB,UACtD,EAeAhC,EAAWhtpB,UAAUg1nB,cAAgB,SAAUnjnB,EAAO0a,EAAOwnd,EAAQ++D,EAAMzzhB,GACvE,IAAI2woB,EAAwB1xpB,KAAKopd,cAAcs/B,cAAc9oe,wBACzD+xoB,EAAsB3xpB,KAAK0wpB,UAAU9woB,wBACrC61d,IACAz1e,KAAKwxpB,gBAAgBzujB,YAAc0yY,GAEvCz1e,KAAKyxpB,iBAAiB1ujB,YAAcyxc,EACvB,cAATzzhB,EACA/gB,KAAK0wpB,UAAUtnpB,MAAM2jB,gBAAkB,qBAEzB,cAAThM,EACL/gB,KAAK0wpB,UAAUtnpB,MAAM2jB,gBAAkB,qBAEzB,kBAAThM,IACL/gB,KAAK0wpB,UAAUtnpB,MAAM2jB,gBAAkB,sBAE3C/sB,KAAK0wpB,UAAUtnpB,MAAMwjB,QAAU,QAC/B,IAAIgloB,EAAer+oB,EAAM0yL,MAAQyrd,EAAsBp3oB,IAAM,EACzDslhB,EAAgBrshB,EAAMuyL,MAAQ4rd,EAAsB95oB,KAAO,EAC3DgohB,EAAe+xH,EAAoBh3oB,MAAQ+2oB,EAAsB/2oB,QACjEilhB,GAA8B+xH,EAAoBh3oB,OAElDi3oB,EAAcD,EAAoB9woB,OAAS6woB,EAAsB7woB,SACjE+woB,GAA4BD,EAAoB9woB,QAEpD7gB,KAAK0wpB,UAAUtnpB,MAAMkR,IAAMs3oB,EAAc,KACzC5xpB,KAAK0wpB,UAAUtnpB,MAAMwO,KAAOgohB,EAAe,IAC/C,EAIA8uH,EAAWhtpB,UAAU+0nB,cAAgB,WAC7Bz2nB,KAAK0wpB,YACL1wpB,KAAK0wpB,UAAUtnpB,MAAMwjB,QAAU,OAEvC,EACA8hoB,EAAWhtpB,UAAUmwpB,sBAAwB,WACzC,IAAI5vpB,EAAQjC,KACR02P,EAAY12P,KAAKmpd,UAAU/ld,QAAQs0B,GAEvC13B,KAAKiwN,cAAe,QAAc,MAAO,CAAEv4L,GAAIg/N,EAAY,yBAA0Bj0P,UAAW,6BAA8BsE,OAAQ,iBACtI,IAAIopN,GAAgB,QAAc,MAAO,CAAEz4L,GAAIg/N,EAAY,gBAAiBj0P,UAAW,iCAEvFzC,KAAK8xpB,oBAAqB,QAAc,MAAO,CAAEp6nB,GAAIg/N,EAAY,gBAAiBj0P,UAAW,iCAC7F0tN,EAAczsN,YAAY1D,KAAK8xpB,oBAE/B,IAAItwK,GAAW,QAAc,OAAQ,CAAE9pd,GAAIg/N,EAAY,eAAgBj0P,UAAW,0CAClF0tN,EAAczsN,YAAY89e,GAC1Bxhf,KAAKiwN,aAAavsN,YAAYysN,GAE9BnwN,KAAK+xpB,qBAAsB,QAAc,MAAO,CAAEr6nB,GAAIg/N,EAAY,uBAAwBj0P,UAAW,kCACrGzC,KAAKiwN,aAAavsN,YAAY1D,KAAK+xpB,qBAEnC,IAAIpiE,GAAmB,QAAc,MAAO,CAAEj4jB,GAAIg/N,EAAY,2BAA4Bj0P,UAAW,yCACrGzC,KAAKgypB,oBAAqB,QAAc,MAAO,CAAEt6nB,GAAIg/N,EAAY,iBAAkBj0P,UAAW,kCAC9FzC,KAAKgypB,mBAAmBzhD,gBAAkB,OAC1C5gB,EAAiBjslB,YAAY1D,KAAKgypB,oBAClChypB,KAAKiwN,aAAavsN,YAAYislB,GAC9B3vlB,KAAKopd,cAAcqG,gBAAgB/rd,YAAY1D,KAAKiwN,cACpDuxR,EAAS5le,iBAAiB,QAAS5b,KAAKiypB,mBAAmBt3nB,KAAK36B,OAChEwhf,EAAS5le,iBAAiB,WAAY5b,KAAKiypB,mBAAmBt3nB,KAAK36B,OACnEA,KAAKiwN,aAAar0M,iBAAiB,YAAa5b,KAAKkypB,wBAAwBv3nB,KAAK36B,OAClFA,KAAKiwN,aAAar0M,iBAAiB,YAAa5b,KAAKmypB,mBAAmBx3nB,KAAK36B,OAC7EV,OAAOsc,iBAAiB,UAAW5b,KAAKoypB,sBAAsBz3nB,KAAK36B,OACnEA,KAAKiwN,aAAar0M,iBAAiB,aAAc5b,KAAKkypB,wBAAwBv3nB,KAAK36B,OACnFA,KAAKiwN,aAAar0M,iBAAiB,YAAa5b,KAAKmypB,mBAAmBx3nB,KAAK36B,OAC7EV,OAAOsc,iBAAiB,WAAY5b,KAAKoypB,sBAAsBz3nB,KAAK36B,OACpEA,KAAKgypB,mBAAmBp2oB,iBAAiB,aAAa,WAClD3Z,EAAM+vpB,mBAAmBp8oB,OAC7B,GACJ,EAEA84oB,EAAWhtpB,UAAUwwpB,wBAA0B,SAAU3+oB,GAIrD,GAHmB,eAAfA,EAAMwN,OACNxN,EAAQA,EAAM69L,eAAe,IAE5B79L,EAAMnG,OAAOsqB,KAAQ13B,KAAKgypB,mBAAqB,KAAOz+oB,EAAMnG,OAAOpI,SAAShF,KAAKgypB,mBAAmBltpB,WAAW,IAAO,CACvH9E,KAAKqypB,kBAAmB,EACxB,IAAIC,EAAyBtypB,KAAKiwN,aAAarwM,wBAC/C5f,KAAK64C,QAAUtlC,EAAMslC,QAAUy5mB,EAAuB16oB,KAEtD5X,KAAK84C,QAAWvlC,EAAMulC,QAAUw5mB,EAAuBh4oB,IAAQta,KAAKopd,cAAcjxO,SAASn4O,KAAKuypB,wBAAwBj4oB,IAAMta,KAAKopd,cAAc+B,eACrJ,CACJ,EAEAujM,EAAWhtpB,UAAUywpB,mBAAqB,SAAU5+oB,GAKhD,GAJmB,cAAfA,EAAMwN,OACNxN,EAAQA,EAAM69L,eAAe,IAG7BpxM,KAAKqypB,mBAAqB9+oB,EAAMnG,OAAOsqB,KAAQ13B,KAAKgypB,mBAAqB,KAAOz+oB,EAAMnG,OAAOpI,SAAShF,KAAKgypB,mBAAmBltpB,WAAW,KAAO,CAChJ,IAAI8S,EAAQrE,EAAMslC,QAAU74C,KAAK64C,QAAW14B,WAAWngB,KAAKiwN,aAAa7mN,MAAMwO,MAC3EgJ,EAAUrN,EAAMulC,QAAU94C,KAAK84C,QAAW34B,WAAWngB,KAAKiwN,aAAa7mN,MAAMkR,KACjFta,KAAK64C,QAAUtlC,EAAMslC,QACrB74C,KAAK84C,QAAUvlC,EAAMulC,QACrB,IAAI05mB,EAAiBxypB,KAAKiwN,aAAarwM,wBACnCiqc,EAAUnrd,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,YAAc13B,KAAKuypB,wBAEjF36oB,EAAOuI,WAAW0pc,EAAQzgd,MAAMwO,OAAUA,EAAO46oB,EAAe73oB,MAAUwF,WAAW0pc,EAAQzgd,MAAMwO,MAAQuI,WAAW0pc,EAAQzgd,MAAMuR,OACpI3a,KAAKiwN,aAAa7mN,MAAMwO,KAAO,EAAS,KAGxC5X,KAAKiwN,aAAa7mN,MAAMwO,KAAOuI,WAAWngB,KAAKiwN,aAAa7mN,MAAMwO,MAAQ,KAG1EgJ,EAAQT,WAAW0pc,EAAQzgd,MAAMkR,MAASsG,EAAQ4xoB,EAAe3xoB,OAAWV,WAAW0pc,EAAQzgd,MAAMkR,KAAO6F,WAAW0pc,EAAQzgd,MAAMyX,QACrI7gB,KAAKiwN,aAAa7mN,MAAMkR,IAAM,EAAU,KAGxCta,KAAKiwN,aAAa7mN,MAAMkR,IAAM6F,WAAWngB,KAAKiwN,aAAa7mN,MAAMkR,KAAO,IAEhF,CACJ,EACAo0oB,EAAWhtpB,UAAU0wpB,sBAAwB,WACzCpypB,KAAKqypB,kBAAmB,CAC5B,EACA3D,EAAWhtpB,UAAUuwpB,mBAAqB,WAClCjypB,KAAKs6e,4BACLt6e,KAAKs6e,2BAA2Bo6I,gBAAgB10nB,KAAKuypB,uBAAwBvypB,KAAKgypB,mBAAmB98gB,WAEzGl1I,KAAKy/lB,gBACT,EAIAivD,EAAWhtpB,UAAU+9lB,eAAiB,WAC9Bz/lB,KAAKiwN,eACLjwN,KAAKiwN,aAAax6M,cAAcgnC,YAAYz8C,KAAKiwN,cACjDjwN,KAAKiwN,aAAe,KACpBjwN,KAAKqpiB,oBAAqB,EAElC,EAMAqlH,EAAWhtpB,UAAU+wpB,oBAAsB,SAAUl/oB,GACjD,GAAIvT,KAAKs6e,6BACLt6e,KAAKuypB,uBAAyBvypB,KAAKw8f,mBAAmBjpf,GAElDvT,KAAKs6e,6BAA+B/me,EAAMnG,SAAYpN,KAAuB,oBAAMuT,EAAMnG,OAAOpI,SAAShF,KAAKgypB,mBAAmBltpB,WAAW,OAC5I9E,KAAKy2nB,iBACAz2nB,KAAKiwN,eAAc,CACpBjwN,KAAK6xpB,wBACL7xpB,KAAKiwN,aAAa7mN,MAAMwjB,QAAU,QAClC5sB,KAAK8xpB,mBAAmB/ujB,YAAc/iG,KAAKs6e,2BAA2BsB,4BAA4BnG,OAElGz1e,KAAK+xpB,oBAAoBhvjB,YAAc/iG,KAAK0ypB,cAAc1ypB,KAAKs6e,2BAA2BsB,4BAA4B6mB,cACtHzigB,KAAKgypB,mBAAmBjvjB,YAAc/iG,KAAKs6e,2BAA2BsB,4BAA4B44D,KAClG,IAAIg+G,EAAiBxypB,KAAKiwN,aAAarwM,wBAEnCiqc,EAAUnrd,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,YAAc13B,KAAKuypB,wBACjFI,EAAiB9oM,EAAQjqc,wBACzBgyoB,EAAgBr+oB,EAAa,QAAIo/oB,EAAer4oB,IAAO6F,WAAW0pc,EAAQzgd,MAAMkR,KAChFslhB,EAAgBrshB,EAAa,QAC5BqshB,EAAe4yH,EAAe73oB,MAAUwF,WAAW0pc,EAAQzgd,MAAMwO,MAAQuI,WAAW0pc,EAAQzgd,MAAMuR,OACnG3a,KAAKiwN,aAAa7mN,MAAMwO,KAAQgohB,EAAe4yH,EAAe73oB,MAAS,KAGvE3a,KAAKiwN,aAAa7mN,MAAMwO,KAAOgohB,EAAe,KAE7CgyH,EAAcY,EAAe3xoB,OAAWV,WAAW0pc,EAAQzgd,MAAMkR,KAAO6F,WAAW0pc,EAAQzgd,MAAMyX,QAClG7gB,KAAKiwN,aAAa7mN,MAAMkR,IAAOs3oB,EAAcY,EAAe3xoB,OAAU,KAGtE7gB,KAAKiwN,aAAa7mN,MAAMkR,IAAMs3oB,EAAc,KAEhD5xpB,KAAKqpiB,oBAAqB,CAC9B,CAGZ,EASAqlH,EAAWhtpB,UAAUw4kB,cAAgB,SAAUv3kB,EAAMsxnB,GACjD,IAGIr6C,EAHAtjG,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GAG/BsjG,EADAq6C,EACetxnB,EAAO,IAGPA,EAAK8G,MAAQ,IAE5B6se,EAAkB1nd,UAAYgrjB,IAC9BQ,EAAiBxrjB,QAAUgrjB,EAC3B55kB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE1nd,QAASgrjB,IAClB,gBAA1CtjG,EAAkB3gB,oBAClB31d,KAAKsof,4BAA4Bo/J,mBAAmBpxK,GAGpDt2e,KAAKkvpB,oBAAoB54K,EAAmB,WAEF,yBAA1CA,EAAkB3gB,qBAA4F,mBAA1C2gB,EAAkB3gB,qBAAsF,kBAA1C2gB,EAAkB3gB,oBAEpJ31d,KAAKmpd,UAAUq6G,8BAA8BltF,EAAkBl+P,UAAWk+P,EAAkBlJ,cAAekJ,EAAkB3gB,qBAAqB,GAAO,GAAM,EAAOwkH,EAAavrjB,QAASwrjB,EAAiBxrjB,SAG7M5uB,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAG7Et2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,gBAAiB,GAAI6jG,EAAcC,GAC7Hp6kB,KAAKmpd,UAAUqtB,gBAEvB,EAKAk4K,EAAWhtpB,UAAUq3kB,gBAAkB,SAAUz2B,GAC7C,IAAIhsE,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiBnkK,UAAYqsI,EAC7BtijB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAErgE,UAAWqsI,IAClEtijB,KAAKkvpB,oBAAoB54K,EAAmB,aAC5Ct2e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,YAAa,GAAI6jG,EAAcC,GACzHp6kB,KAAKmpd,UAAUqtB,eACnB,EAKAk4K,EAAWhtpB,UAAUw3kB,iBAAmB,SAAUlzkB,GAC9C,IAAIswe,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiBv+gB,WAAa71D,EAC1BhG,KAAKmpd,UAAU+hF,iBAAiBmD,cAChCruiB,KAAK4ypB,2BAA2Bt8K,EAAmBtwe,GAGnDhG,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEz6a,WAAY71D,IAEvEhG,KAAKkvpB,oBAAoB54K,EAAmB,cAC5Ct2e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,aAAc,GAAI6jG,EAAcC,GAC1Hp6kB,KAAKmpd,UAAUqtB,eACnB,EAKAk4K,EAAWhtpB,UAAU03kB,eAAiB,SAAUpzkB,EAAcuoN,GAC1D,IAAI+nR,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiB/pjB,SAAWrqB,EAC5B,IAAIm/e,EAAqBnlf,KAAKy6e,yBAC1Bvge,EAAIo8d,EAAkBtwc,OAAO9rB,EAC7B8+B,EAAIs9b,EAAkBtwc,OAAOgT,EAEjC,GADAs9b,EAAkBjmd,SAAWrqB,EACzBm/e,IAAuBA,EAAmBuyC,oBAAwD,KAAlCphD,EAAkBlI,YAAoB,CAEtG,GADA+W,EAAmBu/B,eAAe,CAAExqgB,EAAGA,EAAG8+B,EAAGA,GAAKs9b,GAC9CA,EAAmB,CACfA,EAAkBu1K,kBAAoB7lpB,IACtCm/e,EAAmBulK,gBAAgBthpB,MAAMyX,OAAS,OAC9C0tM,GAII42R,EAAmBulK,gBAAgB71kB,aAAe,EAAIyha,EAAkBtwc,OAAOnlB,OAHnFske,EAAmBulK,gBAAgBthpB,MAAMyX,OAASske,EAAmBulK,gBAAgB71kB,aAAe,EAAI,KAOpGswa,EAAmBulK,gBAAgBthpB,MAAMyX,OAASy1d,EAAkBtwc,OAAOnlB,OAAS,MAIhG,IAAIqroB,EAAiB/roB,WAAWgle,EAAmBulK,gBAAgBthpB,MAAMyX,QACrEsroB,EAAgBhsoB,WAAWgle,EAAmBulK,gBAAgBthpB,MAAMuR,OACpEu2c,EAAalxd,KAAKopd,cAAc+B,gBACpCghM,GAAmCj7L,EAEnC,IAAImlG,GADJ61F,GAAqCh7L,GACFolB,EAAkBtwc,OAAOnlB,OACxDgyoB,OAAMp0pB,EACN43jB,EAAa,EAEbw8F,GADAA,EAAMv8K,EAAkB3pd,QAAQq5K,QAAWqwX,EAAa,GAC5C,EAAIw8F,OAAMp0pB,GAGtB43jB,EAAaj8iB,KAAKQ,IAAIy7iB,GAEtBw8F,GADAA,EAAMv8K,EAAkB3pd,QAAQq5K,QAAWqwX,EAAa,GAC5C,EAAIw8F,OAAMp0pB,GAE1B,IAAI+tpB,EAAaL,EAAgB71K,EAAkBtwc,OAAOrrB,MACtDm4oB,OAAMr0pB,EACN+tpB,EAAY,EAEZsG,GADAA,EAAMx8K,EAAkB3pd,QAAQk5K,QAAW2md,EAAY,GAC3C,EAAIsG,OAAMr0pB,GAGtB+tpB,EAAYpyoB,KAAKQ,IAAI4xoB,GACrBsG,EAAMx8K,EAAkB3pd,QAAQk5K,QAAW2md,EAAY,GAE3Dl2K,EAAkBtwc,OAAOrrB,MAAQwxoB,EACjC71K,EAAkBtwc,OAAOnlB,OAASqroB,EAElClspB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEjmd,SAAUrqB,EAAcggC,OAAQ,CAAErrB,MAAO27d,EAAkBtwc,OAAOrrB,MAAOkG,OAAQy1d,EAAkBtwc,OAAOnlB,OAAQm4B,EAAG65mB,EAAK34oB,EAAG44oB,KACpL9ypB,KAAKmpd,UAAUk5C,eAAe/rB,EAAkBl+P,UAAWp4O,KAAKmpd,UAAU03C,4BAC1EvqB,EAAkBu1K,iBAAmB7lpB,CACzC,CACAhG,KAAKkvpB,oBAAoB54K,EAAmB,YAC5Ct2e,KAAKkvpB,oBAAoB54K,EAAmB,UAC5Ct2e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,WAAY,GAAI6jG,EAAcC,GACxHp6kB,KAAKmpd,UAAUqtB,eACnB,CACJ,EAKAk4K,EAAWhtpB,UAAUkukB,oBAAsB,SAAU5pkB,GACjD,IAAIswe,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiB3rjB,UAAYzoB,EAC7BhG,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE7nd,UAAWzoB,IAClEhG,KAAKkvpB,oBAAoB54K,EAAmB,aAC5Ct2e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,YAAa,GAAI6jG,EAAcC,GACzHp6kB,KAAKmpd,UAAUqtB,eACnB,EAMAk4K,EAAWhtpB,UAAU+3kB,qBAAuB,SAAUD,EAAU9wY,GAC5D,IAAI4tS,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACpB,SAAX5tS,EACA0xY,EAAiBzykB,KAAK+1e,OAAS87F,EAAS97F,OAExB,WAAXh1S,EACL0xY,EAAiBzykB,KAAKg2e,SAAW67F,EAAS77F,SAE1B,cAAXj1S,GACL0xY,EAAiBzykB,KAAKk2e,YAAc27F,EAAS37F,YACzCu8F,EAAiBzykB,KAAKk2e,aAAeu8F,EAAiBzykB,KAAKi2e,cAC3Dw8F,EAAiBzykB,KAAKi2e,aAAc,IAGxB,cAAXl1S,IACL0xY,EAAiBzykB,KAAKi2e,YAAc47F,EAAS57F,YACzCw8F,EAAiBzykB,KAAKk2e,aAAeu8F,EAAiBzykB,KAAKi2e,cAC3Dw8F,EAAiBzykB,KAAKk2e,aAAc,IAG5C79e,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE3ue,KAAM6xkB,IAC7Dx5kB,KAAKkvpB,oBAAoB54K,EAAmB,wBAC5Ct2e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,uBAAwB,GAAI6jG,EAAcC,GACpIp6kB,KAAKmpd,UAAUqtB,eACnB,EAKAk4K,EAAWhtpB,UAAUy5kB,gBAAkB,SAAU43E,GAC7C,IAAIz8K,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACjE,GAAIoB,EAAkBpgB,YAAc68L,EAAgB,CAChD,IAAI54E,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiBlkH,UAAY68L,EAC7B/ypB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEpgB,UAAW68L,IAClE/ypB,KAAKkvpB,oBAAoB54K,EAAmB,aACE,yBAA1CA,EAAkB3gB,qBAA4F,kBAA1C2gB,EAAkB3gB,qBAAqF,mBAA1C2gB,EAAkB3gB,oBAEnJ31d,KAAKmpd,UAAUq6G,8BAA8BltF,EAAkBl+P,UAAWk+P,EAAkBlJ,cAAekJ,EAAkB3gB,qBAAqB,GAAO,GAAO,EAAMwkH,EAAajkH,UAAWkkH,EAAiBlkH,WAG/Ml2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAM,GAG5Et2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,kBAAmB,GAAI6jG,EAAcC,GAC/Hp6kB,KAAKmpd,UAAUqtB,eACnB,CACJ,EAKAk4K,EAAWhtpB,UAAUo9kB,kBAAoB,SAAU7wjB,GAC/C,IAAIqod,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiBnkH,YAAchoc,EAC/BjuB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAErgB,YAAahoc,IACpEjuB,KAAKkvpB,oBAAoB54K,EAAmB,UACE,yBAA1CA,EAAkB3gB,qBAA4F,kBAA1C2gB,EAAkB3gB,qBAAqF,mBAA1C2gB,EAAkB3gB,oBAEnJ31d,KAAKmpd,UAAUq6G,8BAA8BltF,EAAkBl+P,UAAWk+P,EAAkBlJ,cAAekJ,EAAkB3gB,qBAAqB,GAAM,GAAO,EAAOwkH,EAAalkH,YAAamkH,EAAiBnkH,aAGjNj2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAM,GAAO,GAG5Et2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,eAAgB,GAAI6jG,EAAcC,GAC5Hp6kB,KAAKmpd,UAAUqtB,eACnB,EAKAk4K,EAAWhtpB,UAAUk9kB,gBAAkB,SAAU3wjB,GAC7C,IAAIqod,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnC8jG,EAAiBpkH,UAAY/nc,EAC7BjuB,KAAKmpd,UAAUw7C,mBAAmB3kgB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,CAAElf,UAAW/nc,IAC5FjuB,KAAKkvpB,oBAAoB54K,EAAmB,QAC5Ct2e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAM,GAAO,GAAO,GAExEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,aAAc,GAAI6jG,EAAcC,GAC1Hp6kB,KAAKmpd,UAAUqtB,eACnB,EAMAk4K,EAAWhtpB,UAAUulpB,uBAAyB,SAAU74K,EAAa8K,GACjE,IAAI5C,EAAoB,KAExB,GADAA,EAAoBt2e,KAAKmpd,UAAU+rB,YAAY/ye,QAAO,SAAUkK,GAAK,OAAOA,EAAE6se,YAAcA,CAAW,IAAG,GACnF,CACnB,IAAIihG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GACnCA,EAAkBlI,YAAcA,EAChCgsG,EAAiBhsG,YAAcA,EACE,KAA7B+rG,EAAa/rG,cACb+rG,EAAa/rG,YAAcpue,KAAKy6e,yBAAyBgwK,cAE7DzqpB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAElI,YAAaA,IACpEpue,KAAKmpd,UAAUk5C,eAAe/rB,EAAkBl+P,UAAWk+P,EAAkBuqB,4BAE7E7ggB,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,qBAAsB,GAAI6jG,EAAcC,GAClIp6kB,KAAKkvpB,oBAAoB54K,EAAmB,gBACvC,QAAkBt2e,KAAKy6e,2BAA4E,cAA/Cz6e,KAAKy6e,yBAAyBgwK,cAAgCzqpB,KAAKy6e,yBAAyBgwK,eAAiBn0K,EAAkBlI,aACpLpue,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,EAAMt2e,KAAKy6e,yBAAyBgwK,aAAcn0K,EAAkBlI,aAE7Kpue,KAAKmpd,UAAUqtB,eACnB,CACJ,EAEAk4K,EAAWhtpB,UAAUwtpB,oBAAsB,SAAU52K,EAAgBr4X,GAEjE,IAAI+yiB,EAmCJ,MAlCmC,KAA/B16K,EAAeksB,cAAsB,QAAkBlsB,EAAeksB,aAElEwuJ,EADuC,aAAvC16K,EAAe3iB,oBACH31d,KAAKy6e,yBAAyB6/I,mBAAmBr6gB,EAAUq4X,EAAelgQ,UAAWkgQ,GAErD,yBAAvCA,EAAe3iB,qBAAyF,kBAAvC2iB,EAAe3iB,qBAAkF,mBAAvC2iB,EAAe3iB,oBAEnI31d,KAAKopd,cAAcilB,gBAAgBgK,0BAA0Bp4X,EAAUq4X,EAAelgQ,UAAWkgQ,GAEjE,UAAvCA,EAAe3iB,oBACR31d,KAAK4igB,sBAAsB03H,mBAAmBr6gB,EAAUq4X,EAAelgQ,UAAWkgQ,GAElD,QAAvCA,EAAe3iB,oBAER31d,KAAK+nf,oBAAoBiiK,6BAA6B/piB,EAAUq4X,EAAelgQ,UAAWkgQ,GAG1Ft4e,KAAKwngB,sBAAsB8yH,mBAAmBr6gB,EAAUq4X,EAAelgQ,UAAWkgQ,GAG9D,aAA/BA,EAAeksB,aAA6D,cAA/BlsB,EAAeksB,aAClC,WAA/BlsB,EAAeksB,aAA2D,SAA/BlsB,EAAeksB,aAAyD,WAA/BlsB,EAAeksB,cACnGwuJ,EAAYhzpB,KAAK+7e,wBAAwBu+I,mBAAmBr6gB,EAAUq4X,EAAelgQ,UAAWkgQ,IAEhGt4e,KAAK+opB,kBACL/opB,KAAKsof,4BAA4B+pI,6BAA6B/5I,EAAgB,MAAM,GAChFt4e,KAAKs0nB,eACLh8I,EAAemqB,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,mBAIvE,WAAbnygB,GACAjgH,KAAKsof,4BAA4B+pI,6BAA6B/5I,GAG/D06K,CACX,EAIAtE,EAAWhtpB,UAAUwjhB,uBAAyB,WAC1C,IAAIjjhB,EAAQjC,KACZ,IAAK,UA+DA,CACD,IAAI45kB,EAA+F,IAAhF55kB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMwlB,QACrFqkoB,EAAmBjzpB,KAAKkzpB,eAAelzpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGglB,uBACnFi5J,EAAiBnzpB,KAAKkzpB,eAAelzpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGilB,wBACjFi5J,OAAmB,EAEnBxopB,SAAS5K,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,kBAAoB,EACnGs9L,EAAmB,SAE4E,MAA1FpzpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,gBAC3Es9L,EAAmB,SAE4E,MAA1FpzpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,kBAC3Es9L,EAAmB,SAEvBpzpB,KAAKmpd,UAAUoG,gBAAgB/vP,kBAAkB,uBAAwBo6W,EAAcq5E,EAAkBE,EAAgBC,EAC7H,KA/EiB,CACb,IAAI79X,EAAYv1R,KAAKmpd,UAAU/ld,QAAQs0B,GAEnCwyc,GAAY,QAAc,MAAO,CAAExyc,GAAI69P,EAAY,qBAAsB9yR,UAAW,2BACpFgoe,EAAgBzqe,KAAKminB,sBACzBninB,KAAKopd,cAAc6gB,cAAcvme,YAAYwme,GAC7Clqe,KAAKoinB,iBAAmB,IAAI,KAAO,CAC/Bp5S,eAAe,EAAMzC,eAAe,EAAOhpP,SAAS,EAAM73C,OAAQ1lC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,mBACvGrtM,OAAQpN,KAAKmpd,UAAU/ld,QAASiiC,QAASolc,EAAe15Z,MAAO,WAC3D9uE,EAAMognB,yBACV,KAEC,KAAQppb,UAAYj5L,KAAKmpd,UAAUkxB,kBACpCr6e,KAAKoinB,iBAAiBzmZ,QAAU,CAE5B,CAAE8qG,YAAa,CAAEphS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,MAAOyJ,WAAW,GAAQn2K,MAAO/tC,KAAKuinB,YAAY5nlB,KAAK36B,OACtH,CAAEymU,YAAa,CAAEphS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,WAAa1sK,MAAO/tC,KAAKsinB,gBAAgB3nlB,KAAK36B,QAIjHA,KAAKoinB,iBAAiBzmZ,QAAU,CAC5B,CAAE8qG,YAAa,CAAEphS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,WAAa1sK,MAAO/tC,KAAKsinB,gBAAgB3nlB,KAAK36B,OAE7G,CAAEymU,YAAa,CAAEphS,QAASrlC,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,MAAOyJ,WAAW,GAAQn2K,MAAO/tC,KAAKuinB,YAAY5nlB,KAAK36B,QAG1HA,KAAKmpd,UAAUj9Q,YACflsM,KAAKoinB,iBAAiBl2a,WAAY,GAEtClsM,KAAKoinB,iBAAiB71a,SAAS29R,GAC3Blqe,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAA0E,SAApEl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,sBAE3Ej3d,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAC1DrhB,UAAW,GAGzBrW,KAAKqzpB,mBAAmBhunB,QAAUrlC,KAAK4rN,cAAc5rN,KAAKkzpB,eAAelzpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGglB,wBAAwBznX,UAC7IzyI,KAAKszpB,iBAAiBjunB,QAAUrlC,KAAK4rN,cAAc5rN,KAAKkzpB,eAAelzpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGilB,yBAAyB1nX,UAC5IzyI,KAAKuzpB,aAAa9ppB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMi/U,YAChGroV,KAAKwzpB,gBAAgB/ppB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMkoI,KACnGtxI,KAAKyzpB,mBAAmBzzpB,KAAKwzpB,iBAC7BxzpB,KAAKq2kB,kBAAkB5skB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM6sd,YACrGj2d,KAAKyzpB,mBAAmBzzpB,KAAKq2kB,mBAC7Br2kB,KAAKqskB,kBAAkBrskB,KAAK0zpB,aAAatwpB,QAASpD,KAAKwzpB,gBAAgB/ppB,OACvEzJ,KAAKqskB,kBAAkBrskB,KAAKu2kB,eAAenzkB,QAASpD,KAAKq2kB,kBAAkB5skB,OAC3EzJ,KAAK0xQ,cAAcjoQ,MAAwF,IAAhFzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMwlB,QACjG5uB,KAAK26kB,yBAED/vkB,SAAS5K,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,kBAAoB,EACnG91d,KAAK2zpB,kBAAkBtunB,QAAUrlC,KAAK4zpB,sBAAsB,UAAUnhhB,UAEyB,MAA1FzyI,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,gBAC3E91d,KAAK2zpB,kBAAkBtunB,QAAUrlC,KAAK4zpB,sBAAsB,UAAUnhhB,UAEyB,MAA1FzyI,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,kBAC3E91d,KAAK2zpB,kBAAkBtunB,QAAUrlC,KAAK4zpB,sBAAsB,SAASnhhB,WAEzEzyI,KAAK6zpB,kBAAoB7zpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvzb,YACrE3hD,KAAK8zpB,sBAAwB9zpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM0sd,gBAC3B,aAApE91d,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,sBAC5C31d,KAAK+zpB,gBAAgBtqpB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGomB,aAEjF,CAkBJ,EACAozJ,EAAWhtpB,UAAUsypB,+BAAiC,WAElD,IAAIr9E,EAAmBj4kB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mBAE5Eu8nB,EAAmBv1pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iCAE5Ew8nB,EAAqBx1pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mCAE9Ey8nB,EAAsBz1pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,6BACnFi/iB,EAAiBltkB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMi/U,YAC/F4rU,EAAiBxqpB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMkoI,KAC/F4ihB,EAAmBzqpB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM6sd,YACjGj2d,KAAKo0pB,oBAAoBF,EAAmBzqpB,OAC5CzJ,KAAKq0pB,kBAAkBJ,EAAiBxqpB,OACgC,aAApEzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,sBAE5Cw+L,EAAoB1qpB,MAAQmB,SAAS5K,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGomB,aAAa7me,YAEtG,EACAi6nB,EAAWhtpB,UAAU2gnB,wBAA0B,WACvCrinB,KAAKq2kB,oBACLr2kB,KAAKq2kB,kBAAkB3mZ,UACvB1vL,KAAKq2kB,kBAAoB,MAEzBr2kB,KAAKwzpB,kBACLxzpB,KAAKwzpB,gBAAgB9je,UACrB1vL,KAAKwzpB,gBAAkB,MAEvBxzpB,KAAKszpB,mBACLtzpB,KAAKszpB,iBAAiB5je,UACtB1vL,KAAKszpB,iBAAmB,MAExBtzpB,KAAKqzpB,qBACLrzpB,KAAKqzpB,mBAAmB3je,UACxB1vL,KAAKqzpB,mBAAqB,MAE1BrzpB,KAAK0xQ,gBACL1xQ,KAAK0xQ,cAAchiF,UACnB1vL,KAAK0xQ,cAAgB,MAErB1xQ,KAAKuzpB,eACLvzpB,KAAKuzpB,aAAa7je,UAClB1vL,KAAKuzpB,aAAe,MAEpBvzpB,KAAK2zpB,oBACL3zpB,KAAK2zpB,kBAAkBjke,UACvB1vL,KAAK2zpB,kBAAoB,MAEzB3zpB,KAAK+zpB,kBACL/zpB,KAAK+zpB,gBAAgBrke,UACrB1vL,KAAK+zpB,gBAAkB,MAEvB/zpB,KAAKoinB,mBACLpinB,KAAKoinB,iBAAiB1yb,UACtB1vL,KAAKoinB,iBAAmB,MAE5B,IAAIn3S,EAAgBjrU,KAAKopd,cAAc/rS,WAAW,sBAC9C4tJ,GACAA,EAAcx1T,cAAcgnC,YAAYwuR,EAEhD,EACAyjV,EAAWhtpB,UAAU+xpB,mBAAqB,SAAUa,GAChDA,EAAUp2d,cAAc,CAAE,MAASo2d,EAAU7qpB,QAAS,GACtD6qpB,EAAU5nd,SACd,EACAgid,EAAWhtpB,UAAUygnB,oBAAsB,WACvC,IAAIlgnB,EAAQjC,KACRu1R,EAAYv1R,KAAKmpd,UAAU/ld,QAAQs0B,GAEnCvN,EAAQ,CAAC,CAAEkB,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,SAAW,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eAAiB,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAC5K,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,gBAAkB,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAmB,CAAEpvL,KAAMrrB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,mBAE5K40R,GAAgB,QAAc,MAAO,CAAE33c,GAAI69P,EAAY,2BACvDg/X,GAAqB,QAAc,MAAO,CAAE9xpB,UAAW,oCAC3D4se,EAAc3re,YAAY6wpB,GAE1B,IAAIC,EAAuBx0pB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eAAgB85c,EAAoB,OAAQ,UAAU,EAAM,6BAA8Bh/X,EAAY,0BAE9Lv1R,KAAKqzpB,mBAAqB,IAAI,KAAe,CAAElpoB,MAAOA,EAAO85L,SAAU,6BAA8BjpG,OAAQh7G,KAAKy0pB,4BAA4B95nB,KAAK36B,OAASw0pB,GAC5J,IAAIE,EAAqB10pB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,aAAc85c,EAAoB,OAAQ,UAAU,EAAM,2BAA4Bh/X,EAAY,wBAEpLo/X,GAAuB,QAAc,MAAO,CAAElypB,UAAW,iCAC7D4se,EAAc3re,YAAYixpB,GAE1B30pB,KAAKszpB,iBAAmB,IAAI,KAAe,CAAEnpoB,MAAOA,EAAO85L,SAAU,2BAA4BjpG,OAAQh7G,KAAK40pB,0BAA0Bj6nB,KAAK36B,OAAS00pB,GACtJ,IAAItB,EAAmBpzpB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cAAek6c,EAAsB,OAAQ,UAAU,EAAM,6BAA8Bp/X,EAAY,0BACvLs/X,EAAiB70pB,KAAK80pB,kBAE1B90pB,KAAK2zpB,kBAAoB,IAAI,KAAe,CAAE1vc,SAAU,6BAA8B72M,OAAQynpB,GAAkBzB,GAEhH,IAAIz8E,EAAmB32kB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,kBAAmBk6c,EAAsB,OAAQ,SAAS,EAAM,iCAAkCp/X,EAAY,yBAClMv1R,KAAKuzpB,aAAe,IAAI,GAAAl/d,EAAe,CAAE5qL,MAAO,EAAGkuF,OAAQ,QAASssH,SAAU,iCAAkCn0J,IAAK,EAAGD,IAAK,IAAM8mhB,GACnI,IAAIo+E,GAAsB,QAAc,MAAO,CAAEtypB,UAAW,gCAC5D4se,EAAc3re,YAAYqxpB,GAE1B,IAAId,EAAmBj0pB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cAAes6c,EAAqB,QAAS,UAAU,EAAM,kCAAmCx/X,EAAY,0BAChMv1R,KAAKwzpB,gBAAkBxzpB,KAAK+1kB,kBAAkBxgT,EAAY,0BAA0B,GACpFv1R,KAAKwzpB,gBAAgB38c,OAAS,SAAUl0M,GACpC,IAAI2/iB,EAA0C,KAA1B3/iB,EAAKqD,aAAayoQ,IAAc,YAAc9rQ,EAAKqD,aAAayoQ,IACpFxsQ,EAAMyxpB,aAAa7knB,SACnB5sC,EAAMoqkB,kBAAkBpqkB,EAAMyxpB,aAAatwpB,QAASk/iB,EACxD,EAEAtijB,KAAK0zpB,aAAe1zpB,KAAK21kB,qBAAqBs+E,EAAkB,kCAAmCj0pB,KAAKwzpB,gBAAgBpwpB,QAAQqS,eAChIzV,KAAK0zpB,aAAazkZ,WAAajvQ,KAAKg1pB,yBAAyBr6nB,KAAK36B,MAClEA,KAAK0zpB,aAAaphlB,KAAO,WACrBrwE,EAAMuxpB,gBAAgB9md,SAC1B,EAEA,IAAIwnd,EAAqBl0pB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cAAes6c,EAAqB,QAAS,UAAU,EAAM,oCAAqCx/X,EAAY,4BACpMv1R,KAAKq2kB,kBAAoBr2kB,KAAK+1kB,kBAAkBxgT,EAAY,4BAA4B,GACxFv1R,KAAKq2kB,kBAAkBx/X,OAAS,SAAUl0M,GACtC,IAAI2/iB,EAA0C,KAA1B3/iB,EAAKqD,aAAayoQ,IAAc,YAAc9rQ,EAAKqD,aAAayoQ,IACpFxsQ,EAAMs0kB,eAAe1niB,SACrB5sC,EAAMoqkB,kBAAkBpqkB,EAAMs0kB,eAAenzkB,QAASk/iB,EAC1D,EAEAtijB,KAAKu2kB,eAAiBv2kB,KAAK21kB,qBAAqBu+E,EAAoB,oCAAqCl0pB,KAAKq2kB,kBAAkBjzkB,QAAQqS,eACxIzV,KAAKu2kB,eAAetnU,WAAajvQ,KAAKi1pB,2BAA2Bt6nB,KAAK36B,MACtEA,KAAKu2kB,eAAejkgB,KAAO,WACvBrwE,EAAMo0kB,kBAAkB3pY,SAC5B,EACA,IAAIwod,GAAmB,QAAc,MAAO,CAAEzypB,UAAW,kCACzD4se,EAAc3re,YAAYwxpB,GAE1B,IAAIC,EAAiBn1pB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,WAAYy6c,EAAkB,GAAI,OAAO,EAAM,+BAAgC3/X,EAAY,uBAM7K,GALAv1R,KAAK0xQ,cAAgB,IAAI,MAAO,CAC5B3wP,KAAM,WAAY8uC,IAAK,IAAKC,IAAK,EAAGm0J,SAAU,+BAAgCpN,OAAQ,WAClF50M,EAAM04kB,wBACV,GACDw6E,GACqE,aAApEn1pB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,oBAAoC,CAEhF,IAAIy/L,EAAoBp1pB,KAAKomO,mBAAmBpmO,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAkBy6c,EAAkB,OAAQ,SAAS,EAAM,qCAAsC3/X,EAAY,6BAClMv1R,KAAK+zpB,gBAAkB,IAAI,GAAA1/d,EAAe,CAAE5qL,MAAO,EAAGkuF,OAAQ,QAASssH,SAAU,qCAAsCn0J,IAAK,EAAGD,IAAK,KAAOulmB,EAC/I,CACA,OAAO/lL,CACX,EACAq/K,EAAWhtpB,UAAUkqN,cAAgB,SAAUvgM,GAC3C,IAAIujf,GAAa,QAAc,MAAO,CAAEnsgB,UAAW,uCAEnD,OADAmsgB,EAAW7ra,YAAc13E,EAClBujf,CACX,EACA8/I,EAAWhtpB,UAAUuzpB,2BAA6B,WACU,IAApDj1pB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,SACzCxD,KAAKq2kB,kBAAkB5skB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM6sd,aAEzGj2d,KAAKq2kB,kBAAkB3pY,SAC3B,EACAgid,EAAWhtpB,UAAUszpB,yBAA2B,WACY,IAApDh1pB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,SACzCxD,KAAKwzpB,gBAAgB/ppB,MAAQzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAM6sd,aAEvGj2d,KAAKwzpB,gBAAgB9md,SACzB,EACAgid,EAAWhtpB,UAAUozpB,gBAAkB,WACnC,IAAI7ypB,EAAQjC,KACRyxP,GAAY,QAAc,MAC9B/yP,SAAS+c,KAAK/X,YAAY+tP,GAC1B,IAAI4ja,EAAUr1pB,KAAKs1pB,mBAAmB,SACtCD,EAAQz5oB,iBAAiB,SAAS,WAC9B3Z,EAAMszpB,aAAa,IAAK,QAC5B,IACA9ja,EAAU/tP,YAAY2xpB,GACtB,IAAIG,EAAWx1pB,KAAKs1pB,mBAAmB,UACvCE,EAAS55oB,iBAAiB,SAAS,WAC/B3Z,EAAMszpB,aAAa,IAAK,SAC5B,IACA9ja,EAAU/tP,YAAY8xpB,GACtB,IAAIC,EAAWz1pB,KAAKs1pB,mBAAmB,UAKvC,OAJAG,EAAS75oB,iBAAiB,SAAS,WAC/B3Z,EAAMszpB,aAAa,IAAK,SAC5B,IACA9ja,EAAU/tP,YAAY+xpB,GACfhka,CACX,EACAi9Z,EAAWhtpB,UAAUq0kB,kBAAoB,SAAUtoF,EAAUioK,GACzD,IAAI7mkB,GAAe,QAAc,QAAS,CAAEn3D,GAAI+1d,EAAW,YAC3D/uf,SAAS+c,KAAK/X,YAAYmrF,GAC1B,IAAI6vf,EAAc,IAAI,KAAY,CAC9BpxU,QAAQ,EAAMlxL,KAAM,UAAWqxL,eAAe,EAAOhkQ,MAAO,UAAW4pQ,aAAa,EAAOzD,cAAc,EACzGjC,QAAS+nZ,IAMb,OAJI11pB,KAAKmpd,UAAUj9Q,YACfwyY,EAAYxyY,WAAY,GAE5BwyY,EAAYnyY,SAAS19G,GACd6vf,CACX,EACAgwE,EAAWhtpB,UAAUi0kB,qBAAuB,SAAUvykB,EAASg2Q,EAAWhsQ,GAEtE,IAAIkukB,EAAiB,IAAI,KAAe,CAAEh3X,QAAS80D,EAAY,aAAchsQ,OAAQA,IAKrF,OAJIpN,KAAKmpd,UAAUj9Q,YACfovY,EAAepvY,WAAY,GAE/BovY,EAAe/uY,SAASnpM,GACjBk4kB,CACX,EACAozE,EAAWhtpB,UAAU2qkB,kBAAoB,SAAUjpkB,EAAS6qB,GACxD7qB,EAAQ0B,WAAW,GAAGsE,MAAMumkB,kBAAoB1hjB,CACpD,EAKAygoB,EAAWhtpB,UAAU2ypB,kBAAoB,SAAUpmoB,GAE/C,IAAI49iB,EAAentkB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iCAC9D,gBAAVzJ,IACA49iB,EAAaxujB,SAAS,GAAGjU,MAAMumkB,kBAAoB1hjB,EAE3D,EAKAygoB,EAAWhtpB,UAAU0ypB,oBAAsB,SAAUnmoB,GAEjD,IAAI49iB,EAAentkB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mCAC9D,gBAAVzJ,IACA49iB,EAAaxujB,SAAS,GAAGjU,MAAMumkB,kBAAoB1hjB,EAE3D,EACAygoB,EAAWhtpB,UAAU6zpB,aAAe,SAAU9rpB,EAAOL,EAAOmzK,GACnDA,IACDv8K,KAAK2zpB,kBAAkBtunB,QAAUrlC,KAAK4zpB,sBAAsBxqpB,GAAOqpI,WAEvEzyI,KAAK8zpB,sBAAwBrqpB,EACf,MAAVA,EACAzJ,KAAK6zpB,kBAAoB,QAEV,MAAVpqpB,GAA2B,MAAVA,IACtBzJ,KAAK6zpB,kBAAoB,SAEjC,EACAnF,EAAWhtpB,UAAUkypB,sBAAwB,SAAUxqpB,GACnD,IAAIwlgB,GAAa,QAAc,MAAO,CAAEnsgB,UAAW,uCAE/C8oR,GAAc,QAAc,OAAQ,CAAE9oR,UAAW,2BAA4BsE,OAAQ,uBAAyBqC,IAElH,OADAwlgB,EAAWlrgB,YAAY6nR,GAChBqjP,CACX,EACA8/I,EAAWhtpB,UAAU4zpB,mBAAqB,SAAUlspB,GAChD,IAAIuyP,GAAY,QAAc,KAAM,CAAEl5P,UAAW,gBAC7CmsgB,GAAa,QAAc,MAAO,CAAEnsgB,UAAW,+BAE/C8oR,GAAc,QAAc,OAAQ,CAAE9oR,UAAW,wBAAyBsE,OAAQ,uBAAyBqC,IAG/G,OAFAwlgB,EAAWlrgB,YAAY6nR,GACvB5vB,EAAUj4P,YAAYkrgB,GACfjzQ,CACX,EACA+yZ,EAAWhtpB,UAAU+ypB,4BAA8B,SAAU9xpB,GACzD3C,KAAKqzpB,mBAAmBhunB,QAAUrlC,KAAK4rN,cAAcjpN,EAAKmnB,KAAKuB,MAAMonH,SACzE,EACAi8gB,EAAWhtpB,UAAUkzpB,0BAA4B,SAAUjypB,GACvD3C,KAAKszpB,iBAAiBjunB,QAAUrlC,KAAK4rN,cAAcjpN,EAAKmnB,KAAKuB,MAAMonH,SACvE,EAEAi8gB,EAAWhtpB,UAAU0kO,mBAAqB,SAAU6mZ,EAAWx3mB,EAAe6/nB,EAAW5xlB,EAAOwpkB,EAAezqnB,EAAWgrf,GACtH,IAAI3ld,GAAY,QAAc,MAAO,CAAEpQ,GAAI+1d,EAAW,aAAchrf,UAAWA,EAAY,eAC3F,GAAIyqnB,EAAe,CACf,IAAI7kmB,GAAQ,QAAc,MAAO,CAAEqP,GAAI+1d,EAAW,SAAUhrf,UAAWA,EAAY,WACnF4lB,EAAM06E,YAAckqhB,EACpBnllB,EAAUpkC,YAAY2kB,EAC1B,CACIroB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,aAAewya,IACpDjtnB,KAAKq/kB,kBAAmB,QAAc,OAAQ,CAAE58kB,UAAW,sCAC3DqlC,EAAUpkC,YAAY1D,KAAKq/kB,mBAE/B,IAAIqgD,GAAe,QAAch8kB,EAAO,CAAEhsB,GAAI+1d,IAM9C,MALc,UAAV/pc,IACAg8kB,EAAa3+mB,KAAOu0nB,GAExBxtmB,EAAUpkC,YAAYg8nB,GACtBjqnB,EAAc/R,YAAYokC,GACnB43lB,CACX,EACAgvB,EAAWhtpB,UAAUi5kB,uBAAyB,WAC1C36kB,KAAKq/kB,iBAAiBt8e,YAAc/iG,KAAK0xQ,cAAcjoQ,MAAQ,GACnE,EAIAilpB,EAAWhtpB,UAAU6gnB,YAAc,SAAU3oC,GACzC,IAAI+7E,EACAC,EACA1/L,EACAD,EACAD,EACApnc,EACJ,IAAK,UAWA,CAED,IAAIqkoB,EAAmBv0pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAE5Ey7nB,EAAiBz0pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,wBAE1Ei/iB,EAAmBj4kB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mBAE5E07nB,EAAmB10pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAE5Eu8nB,EAAmBv1pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iCAE5Ew8nB,EAAqBx1pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mCAE9Ey9nB,EAAiBz2pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,uBAC9Ei+nB,EAAa31pB,KAAK61pB,yBAAyB5C,EAAiBxppB,OAAO,GACnEmspB,EAAW51pB,KAAK61pB,yBAAyB1C,EAAe1ppB,OAAO,GAE/Dysd,EAAYtrd,SAAS+rkB,EAAiBltkB,OAEtCwsd,EAA+B,MAD/BA,EAAcj2d,KAAKkwG,SAASgkjB,EAAmB72oB,SAAS,GAAGjU,MAAMumkB,kBAAmB,QAC/C,YAAc15G,EAEnDD,EAA2B,MAD3BA,EAAYh2d,KAAKkwG,SAAS+jjB,EAAiB52oB,SAAS,GAAGjU,MAAMumkB,kBAAmB,QAC/C,YAAc35G,EAE3Cpnc,EADAgrjB,EACU,EAAiB,IAGjBu7E,EAAe1rpB,MAAQ,IAEjC2ppB,EAAiB3ppB,QACc,UAA3B2ppB,EAAiB3ppB,MACjBzJ,KAAKu1pB,aAAa,IAAK,SAAS,GAEA,WAA3BnC,EAAiB3ppB,MACtBzJ,KAAKu1pB,aAAa,IAAK,UAAU,GAED,WAA3BnC,EAAiB3ppB,OACtBzJ,KAAKu1pB,aAAa,IAAK,UAAU,GAG7C,MAlDII,EAAa31pB,KAAK61pB,yBAAyB71pB,KAAKqzpB,mBAAmBhunB,SACnEuwnB,EAAW51pB,KAAK61pB,yBAAyB71pB,KAAKszpB,iBAAiBjunB,SAC/D6wb,EAAYl2d,KAAKuzpB,aAAa9ppB,MAE9Bwsd,EAA+B,MAD/BA,EAAcj2d,KAAKq2kB,kBAAkBnme,SAASlwG,KAAKq2kB,kBAAkB5skB,MAAO,QACvC,YAAcwsd,EAGnDD,EAA2B,MAF3BA,EAAYh2d,KAAKwzpB,gBAAgBtjjB,SAASlwG,KAAKwzpB,gBAAgB/ppB,MAAO,SAEvB,YAAdusd,GAA0D,cAA/Bh2d,KAAKwzpB,gBAAgB/ppB,MAAyB,YAAcusd,EACxHpnc,EAAU5uB,KAAK0xQ,cAAcjoQ,MAAQ,IA2CzC,IAAI6se,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC7DilG,EAAepjH,EAAYuf,GAC3B8jG,EAAmBrjH,EAAYuf,GAC/Bj+K,EAAU,CAAC,EACXyoQ,GAAiB,EACjB2C,GAAuB,EACvBC,GAAqB,EACrBP,GAAmB,EACnB2yF,GAA8B,EAC9BC,GAA4B,EAC5BC,GAA2B,EAsC/B,GArCIL,IAAer/K,EAAkB4jB,wBACjC7hM,EAAQ6hM,sBAAwBy7J,EAChCv7E,EAAiBlyE,cAAgBlogB,KAAKkzpB,eAAeyC,GACrDG,GAA8B,GAE9BF,IAAat/K,EAAkB6jB,yBAC/B9hM,EAAQ8hM,uBAAyBy7J,EACjCx7E,EAAiBnyE,YAAcjogB,KAAKkzpB,eAAe0C,GACnDG,GAA4B,GAE5B7/L,IAAcogB,EAAkB3pd,QAAQtP,SAAS,GAAGjU,MAAMi/U,cAC1DhwB,EAAQ69J,UAAYA,EACpBkkH,EAAiBlkH,UAAYA,EAC7BwtG,GAAqB,GAErBztG,IAAgBqgB,EAAkB3pd,QAAQtP,SAAS,GAAGjU,MAAM6sd,cAC5D59J,EAAQ49J,YAAcA,EACtBmkH,EAAiBnkH,YAAcA,EAC/BwtG,GAAuB,GAEvBztG,IAAcsgB,EAAkB3pd,QAAQtP,SAAS,GAAGjU,MAAMkoI,OAC1D+mL,EAAQ29J,UAAYA,EACpBokH,EAAiBpkH,UAAYA,EAC7B8qG,GAAiB,GAEjBlyiB,IAAY0nd,EAAkB3pd,QAAQtP,SAAS,GAAGjU,MAAMwlB,UACxDypS,EAAQzpS,QAAUA,EAClBwrjB,EAAiBxrjB,QAAUA,EAC3Bu0iB,GAAmB,GAEnBnjkB,KAAK8zpB,wBAA0Bx9K,EAAkB3pd,QAAQtP,SAAS,GAAGjU,MAAM0sd,kBAC3Ez9J,EAAQ09J,gBAAkB/1d,KAAK8zpB,sBAC/Bz7V,EAAQ12Q,YAAc3hD,KAAK6zpB,kBAC3Bz5E,EAAiBrkH,gBAAkB19J,EAAQ09J,gBAC3CqkH,EAAiBz4hB,YAAc02Q,EAAQ12Q,YACvCq0mB,GAA2B,IAE1B,UAMA,CAED,IAAI7B,EAAsBz1pB,SAASuG,cAAc,IAAMjF,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,6BAEX,aAApE13B,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBAAsC/qd,SAASuppB,EAAoB1qpB,SAAWzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGomB,eAEtKjjM,EAAQijM,aAAe1wf,SAASuppB,EAAoB1qpB,OAE5D,KAZ4E,aAApEzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBAAsC31d,KAAK+zpB,gBAAgBtqpB,QAAUzJ,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGomB,eAC7JjjM,EAAQijM,aAAet7f,KAAK+zpB,gBAAgBtqpB,OAYpDzJ,KAAKmpd,UAAUw7C,mBAAmB3kgB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI78K,GAC/Er4T,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvod,QAAQtP,SAAS,GAAGjU,MAAMkoI,KAAO0kV,EAE7Eh2d,KAAKq6kB,4BAA4Br6kB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI4rF,EAAgB2C,EAAsBC,EAAoBP,EAAkB2yF,EAA6BC,EAA2BC,GAClNh2pB,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,aACtEl1e,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,UACtEl1e,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,QACtEl1e,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,WACtEl1e,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,aACtEl1e,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,cACtEl1e,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,YAEE,aAApEl1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBAC5C31d,KAAKkvpB,oBAAoBlvpB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,gBAG1El1e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,yBAA0B,GAAI6jG,EAAcC,GACtIp6kB,KAAK29hB,kBAAkBrnD,EAAkBl+P,UAAW,KAAM,KAAM,OAC3D,WACDp4O,KAAKoinB,iBAAiB1iZ,MAE9B,EACAgvb,EAAWhtpB,UAAU4gnB,gBAAkB,WACnCtinB,KAAKoinB,iBAAiB1iZ,MAC1B,EACAgvb,EAAWhtpB,UAAUm0pB,yBAA2B,SAAUI,EAAW15e,GAC5DA,IACD05e,EAAYA,EAAUzupB,MAAM,UAAU,GAAGA,MAAM,MAAM,IAEzD,IAAI0upB,EAAQ,OACZ,OAAQD,GACJ,KAAKj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QACtCy7c,EAAQ,OACR,MACJ,KAAKl2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cACtCy7c,EAAQ,YACR,MACJ,KAAKl2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,gBACtCy7c,EAAQ,QACR,MACJ,KAAKl2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,eACtCy7c,EAAQ,SACR,MACJ,KAAKl2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,gBACtCy7c,EAAQ,SACR,MACJ,KAAKl2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBACtCy7c,EAAQ,UACR,MACJ,KAAKl2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QACtCy7c,EAAQ,OAGhB,OAAOA,CACX,EAKAxH,EAAWhtpB,UAAUwxpB,eAAiB,SAAUgD,GAC5C,IAAID,EAAYj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QACrD,OAAQy7c,GACJ,IAAK,QACDD,EAAYj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,UACjD,MACJ,IAAK,YACDw7c,EAAYj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,cACjD,MACJ,IAAK,SACDw7c,EAAYj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,SACjD,MACJ,IAAK,OACL,IAAK,SACL,IAAK,UACDw7c,EAAYj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAYy7c,GACjD,MACJ,IAAK,OACDD,EAAYj2pB,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,QAGzD,OAAOw7c,CACX,EAIAvH,EAAWhtpB,UAAU08gB,oBAAsB,WACvC,GAAwD,IAApDp+gB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,OACrCxD,KAAKmpd,UAAUoyB,SAAWv7e,KAAKmpd,UAAUoyB,QAAQmQ,0BACjD1rf,KAAKm2pB,oBACLn2pB,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB+yF,4BAA2B,GACrE,KAAQxlZ,UACTj5L,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB42F,kCAGvDtilB,KAAKopd,cAAc+6C,gCAOnB,IAJInkgB,KAAKmpd,UAAUmC,qBAAwBtrd,KAAKopd,cAAcwuD,WAAc53gB,KAAKmpd,UAAUkyB,cACvFr7e,KAAKmpd,UAAUmC,oBAAoB+rE,0BAGnCr3hB,KAAKmpd,UAAUoyB,SAAWv7e,KAAKmpd,UAAUoyB,QAAQmQ,2BAA6B,KAAQzyT,UAAYj5L,KAAKmpd,UAAUkxB,mBAAoB,CAErI,IAAIyV,EAAS9vf,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB2/E,uBACxDrrkB,KAAKmpd,UAAU0jB,WAAW4N,0BAA6Bz6e,KAAKmpd,UAAU0jB,WAAW4N,yBAAyBC,mBAAsBoV,IAChI9vf,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB6xF,iCAAgC,GAC/Ev9kB,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwBwpB,yCAAwC,IAE3Fl1gB,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB42F,iCAC/CtilB,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB+yF,4BAA2B,EAC9E,CAER,EASAiwE,EAAWhtpB,UAAU8riB,gBAAkB,SAAUszF,EAAmBvtnB,GAGhE,GADAutnB,GAAqB,QAAkB9goB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAAoD4rJ,EAA9C9goB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACxG,CAMnB,GALIl1e,KAAKs6e,4BAA8Bt6e,KAAKs6e,2BAA2BsB,8BACnE57e,KAAKs6e,2BAA2BsB,4BAA8B,KAC9D57e,KAAKs6e,2BAA2ByqC,4BAA8B,OAG7D/khB,KAAKopd,cAAc0zC,gBAAgBM,IAAmBp9f,KAAKopd,cAAc0zC,gBAAgBC,MAAc/8f,KAAKopd,cAAc0zC,KAAKgK,SAAU,CAE1I,IAAIq0H,EAAU,CACVvsmB,QAASkymB,EAAkBlymB,QAASonc,UAAW8qK,EAAkB9qK,UAAWC,YAAa6qK,EAAkB7qK,YAC3GC,UAAW4qK,EAAkB5qK,UAAWuf,OAAQqrJ,EAAkBrrJ,OAAQpsW,QAASy3f,EAAkBz3f,QACrGo5X,aAAcq+H,EAAkBr+H,cAExBzigB,KAAKwwpB,mBAAmB1vB,EAAkB1oZ,UAAW0oZ,EAAkBppmB,IAE9DopmB,EAAkB96lB,OAAO9rB,EAAQ4mnB,EAAkB96lB,OAAOgT,EAAU8nlB,EAAkB96lB,OAAOrrB,MAAemmnB,EAAkB96lB,OAAOnlB,OACtJ7gB,KAAKopd,cAAc0zC,gBAAgBC,KACnCo+H,EAAQp1D,mBAAqB/lkB,KAAKkzpB,eAAepyB,EAAkB5mI,uBACnEihI,EAAQn1D,iBAAmBhmkB,KAAKkzpB,eAAepyB,EAAkB3mI,wBACjEghI,EAAQplK,gBAAkB+qK,EAAkB/qK,iBAE3C/1d,KAAKopd,cAAc0tB,mBAAuD,aAAlCgqJ,EAAkBt8H,cACrB,KAAlCs8H,EAAkBt8H,cAAsB,QAAkBs8H,EAAkBt8H,aAE5ExkgB,KAAKwngB,sBAAsBC,uBAAuBq5H,EAAmB9goB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,IAE3E,aAAlCutnB,EAAkBt8H,aAAgE,cAAlCs8H,EAAkBt8H,aACrC,WAAlCs8H,EAAkBt8H,aAElBxkgB,KAAK+7e,wBAAwB+rB,8BAA8Bg5H,EAAmB9goB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,KAGnIvT,KAAKopd,cAAcovB,8BAA6B,EACpD,MACSx4e,KAAKopd,cAAc0zC,gBAAgB+E,IAAY7hgB,KAAKopd,cAAc0zC,gBAAgBmI,IACvFjlgB,KAAKopd,cAAcovB,8BAA6B,GACV,KAAlCsoJ,EAAkBt8H,cAAsB,QAAkBs8H,EAAkBt8H,aAC9B,aAA1Cs8H,EAAkBnrK,oBAElB31d,KAAKmpd,UAAU0jB,WAAW4N,yBAAyB6/I,mBAAmB,SAAUt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAEtF,yBAA1CA,EAAkBnrK,qBAA4F,mBAA1CmrK,EAAkBnrK,qBAAsF,kBAA1CmrK,EAAkBnrK,oBAEzJ31d,KAAKopd,cAAcilB,gBAAgBgK,0BAA0B,SAAUr4e,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAE7E,QAA1CA,EAAkBnrK,oBAEvB31d,KAAK+nf,oBAAoBiiK,6BAA6B,SAAUhqpB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAEtE,UAA1CA,EAAkBnrK,qBAA6E,UAA1CmrK,EAAkBnrK,oBAE5E31d,KAAK4igB,sBAAsB03H,mBAAmB,SAAUt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAI7G9goB,KAAKmpd,UAAU0jB,WAAW26B,sBAAsB8yH,mBAAmB,SAAUt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAI/F,aAAlCA,EAAkBt8H,aAAgE,cAAlCs8H,EAAkBt8H,aAAiE,WAAlCs8H,EAAkBt8H,aAA8D,SAAlCs8H,EAAkBt8H,aAA4D,WAAlCs8H,EAAkBt8H,aAClNxkgB,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,SAAUt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAEpI9goB,KAAKopd,cAAc0zC,gBAAgBmI,KAC9B67H,EAAkBjrK,yBACnB71d,KAAKo2pB,wBAAwBt1B,IAGjC9goB,KAAKopd,cAAc0zC,gBAAgB+E,IACD,WAA9B7hgB,KAAKopd,cAAc1gR,SACdo4b,EAAkBjrK,yBACnB71d,KAAK0jgB,sBAAsBo9H,KAKlC9goB,KAAKopd,cAAc0zC,gBAAgBwH,KACxCtkgB,KAAKopd,cAAcovB,8BAA6B,GACV,KAAlCsoJ,EAAkBt8H,cAAsB,QAAkBs8H,EAAkBt8H,aAE7B,SAA1Cs8H,EAAkBnrK,qBAA4E,uBAA1CmrK,EAAkBnrK,qBAA0F,YAA1CmrK,EAAkBnrK,qBACzI31d,KAAKmpd,UAAU0jB,WAAW26B,sBAAsB8yH,mBAAmB,SAAUt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAI/F,aAAlCA,EAAkBt8H,aAAgE,cAAlCs8H,EAAkBt8H,aAAiE,SAAlCs8H,EAAkBt8H,aAA4D,WAAlCs8H,EAAkBt8H,cAC9H,aAAlCs8H,EAAkBt8H,aAElBxkgB,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,eAAgBt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,GAG9I9goB,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,SAAUt6nB,KAAKmpd,UAAU0jB,WAAW2vB,mBAAmBjpf,GAAQutnB,IAExI9goB,KAAKo2pB,wBAAwBt1B,IASjC,GANI9goB,KAAKopd,cAAcmuB,gBAAkBv3e,KAAKopd,cAAcmuB,eAAeC,mBAAqBx3e,KAAKmpd,UAAUksB,sBAAkE,yBAA1CyrJ,EAAkBnrK,qBAA4F,kBAA1CmrK,EAAkBnrK,qBAAqF,mBAA1CmrK,EAAkBnrK,uBAEtR31d,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,wBAAwB,GAE9Hz6M,KAAKopd,cAAcmuB,eAAeC,kBAAkBtwM,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,iBAAiB,IAEvHz6M,KAAKmpd,UAAUsiC,eACXzrf,KAAKmpd,UAAUsiC,cAAcC,yBAA2B1rf,KAAKmpd,UAAUyqD,0BACvE5zgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBo2F,sBACf,KAAlCg/C,EAAkBt8H,cAAsB,QAAkBs8H,EAAkBt8H,aAE5ExkgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBg2F,mBAEd,aAAlCo/C,EAAkBt8H,aAAgE,cAAlCs8H,EAAkBt8H,aAAiE,SAAlCs8H,EAAkBt8H,aAA4D,WAAlCs8H,EAAkBt8H,aAA8D,WAAlCs8H,EAAkBt8H,aAClNxkgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwB+1F,iBAED,IAApDzhlB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,QAAwF,OAAxExD,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGrf,yBACrG71d,KAAKmpd,UAAUsiC,cAAcC,wBAAwB6xF,iCAAgC,KAEpF,WACuD,IAApDv9kB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,SAAiBxD,KAAKmpd,UAAUkyB,cAAc,CAKvF,GAJAr7e,KAAKmpd,UAAUsiC,cAAcC,wBAAwB+yF,4BAA2B,GAChFz+kB,KAAKmpd,UAAUsiC,cAAcC,wBAAwB8sF,0BACrDx4kB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBw9C,iBAAkB,EAElElpiB,KAAKmpd,UAAU+3C,oBAAyD,IAAnC4/H,EAAkBlhhB,WAAWloF,IAA+C,MAAnCopmB,EAAkBlhhB,WAAWloF,IAA6D,QAA/CopmB,EAAkBlhhB,WAAWloF,GAAGvrB,MAAM,EAAG,GAWnKnM,KAAKmpd,UAAUsiC,cAAcC,wBAAwB2oB,sBAAsBr0gB,KAAKmpd,UAAUsiC,cAAco5B,oBAXyE,CACjL,IAAIntf,EAAKh5B,SAASkuD,eAAek0kB,EAAkBlhhB,WAAWloF,IAC1D2+nB,EAAkB3+nB,GAAMA,EAAGrhB,SAC1BggpB,EAGIr2pB,KAAKmpd,UAAU0jB,YAAcwpL,GAClCr2pB,KAAKmpd,UAAU0jB,WAAW9sZ,iBAH1B//E,KAAKmpd,UAAUsiC,cAAcC,wBAAwB2oB,sBAAsBr0gB,KAAKmpd,UAAUsiC,cAAco5B,eAKhH,CAII7khB,KAAKmpd,UAAUy7D,4BAA8B5khB,KAAKmpd,UAAU23D,+BAClCpihB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,yBAC1DtuB,MAAMwjB,QAAU,OAChC5sB,KAAKmpd,UAAUsiC,gBACfzrf,KAAKmpd,UAAUsiC,cAAcjQ,0BAA0B0tD,iBAAkB,EACzElpiB,KAAKmpd,UAAUsiC,cAAcjQ,0BAA0BmjF,wBAAwB3+jB,KAAKmpd,UAAUsiC,cAAcu4F,kBAC5GhklB,KAAKmpd,UAAUsiC,cAAcC,wBAAwB6oB,cAAa,IAG9E,CAIhB,CACJ,EAQAm6I,EAAWhtpB,UAAUmjgB,sBAAwB,SAAUi8H,EAAmBruF,GAChC,aAAlCquF,EAAkBt8H,aAClBs8H,EAAkB/lI,M9EtuGvB,SAA6BhnZ,EAAKqgX,EAAQnyV,GAE7C,IADA,IAAIhiH,EACKlT,EAAI,EAAGA,EAAIgnG,EAAIpnF,QAAQtP,SAAS7Z,OAAQuJ,IAAK,CAClD,IAAIuppB,EAAgBvijB,EAAIpnF,QAAQtP,SAASzS,SAASmC,EAAE0nB,WAAY,KAC5D6hoB,KAAkB,QAAkBA,EAAcjxnB,WAClDplB,EAAWgiH,EAAQ2rb,cAAcz3F,EAAiB,CAAC/B,EAAO,GAAIA,EAAO,KAAOnyV,EAAQ4rb,mBAAoB95c,GACxGuijB,EAAcjxnB,QAAUplB,EACxBq2oB,EAAcxxpB,WAAW,GAAGumB,KAAOiroB,EAAcjxnB,QACjDixnB,EAAcv/J,qBAEtB,CACA,OAAO92e,CACX,C8E0tGsCs2oB,CAAoBz1B,EAAmBA,EAAkB1nI,aAAcp5f,KAAK+7e,0BAC3D,IAAvC+kJ,EAAkBx9H,mBAClBw9H,EAAkBv9H,aAAeu9H,EAAkB/lI,OAGvD/6f,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,QAASwG,EAAkB1oZ,UAAW0oZ,EAAmBruF,GAC9HzyiB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bsf,kBAAkBk5H,EAAkB5nJ,UAAW4nJ,EAAkB/lI,OACvH/6f,KAAK29hB,kBAAkBmjG,EAAkB1oZ,UAAW,KAAM,KAAM,KAAM,OAE/B,WAAlC0oZ,EAAkBt8H,aACvBs8H,EAAkB/lI,M9E7tGvB,SAA2BhnZ,EAAKkuB,GAEnC,IADA,IAAIikE,EACKn5L,EAAI,EAAGA,EAAIgnG,EAAIpnF,QAAQtP,SAAS7Z,OAAQuJ,IAAK,CAClD,IAAIyppB,EAAgBzijB,EAAIpnF,QAAQtP,SAASzS,SAASmC,EAAE0nB,WAAY,KAC5D+hoB,KAAkB,QAAkBA,EAAcnxnB,WAClD6gK,EAASjkE,EAAQ2rb,cAAe75c,EAAI/tE,OAAOrrB,MAAQ,EAAKsnH,EAAQ4rb,mBAAoB95c,GACpFyijB,EAAcnxnB,QAAU6gK,EACgB,IAApCswd,EAAc1xpB,WAAWtB,QACzBgzpB,EAAc1xpB,WAAW,GAAGumB,KAAO66K,EACnCswd,EAAc1xpB,WAAW4I,OAAO8opB,EAAc1xpB,WAAWtB,OAAS,EAAG,IAGrEgzpB,EAAc1xpB,WAAW,GAAGumB,KAAO66K,EAEvCswd,EAAcz/J,qBAEtB,CACA,OAAO7wT,CACX,C8E2sGsCuwd,CAAkB31B,EAAmB9goB,KAAK+7e,0BACzB,IAAvC+kJ,EAAkBx9H,mBAClBw9H,EAAkBv9H,aAAeu9H,EAAkB/lI,OAGvD/6f,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,QAASwG,EAAkB1oZ,UAAW0oZ,EAAmBruF,GAC9HzyiB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bsf,kBAAkBk5H,EAAkB5nJ,UAAW4nJ,EAAkB/lI,OACvH/6f,KAAK29hB,kBAAkBmjG,EAAkB1oZ,UAAW,KAAM,KAAM,KAAM,OAE/B,cAAlC0oZ,EAAkBt8H,aACvBs8H,EAAkB/lI,MAAQN,GAAqBqmI,EAAmBA,EAAkB1nI,aAAcp5f,KAAK+7e,0BAC5D,IAAvC+kJ,EAAkBx9H,mBAClBw9H,EAAkBv9H,aAAeu9H,EAAkB/lI,OAGvD/6f,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,QAASwG,EAAkB1oZ,UAAW0oZ,EAAmBruF,GAC9HzyiB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bsf,kBAAkBk5H,EAAkB5nJ,UAAW4nJ,EAAkB/lI,OACvH/6f,KAAK29hB,kBAAkBmjG,EAAkB1oZ,UAAW,KAAM,KAAM,KAAM,OAE/B,SAAlC0oZ,EAAkBt8H,aAEvBs8H,EAAkB/lI,MAAQ/6f,KAAK+7e,wBAAwB4rB,cAAcm5H,EAAkB1nI,aAAc0nI,EAAkBppmB,GAAIopmB,EAAkB1oZ,YAClG,IAAvC0oZ,EAAkBx9H,mBAClBw9H,EAAkBv9H,aAAeu9H,EAAkB/lI,MACnDF,GAAqBimI,IAGzB9goB,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,QAASwG,EAAkB1oZ,UAAW0oZ,EAAmBruF,GAC9HzyiB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bsf,kBAAkBk5H,EAAkB5nJ,UAAW4nJ,EAAkB/lI,OACvH/6f,KAAK29hB,kBAAkBmjG,EAAkB1oZ,UAAW,KAAM,KAAM,KAAM,OAE/B,WAAlC0oZ,EAAkBt8H,cAEvBs8H,EAAkB/lI,MAAQ/6f,KAAK+7e,wBAAwB8rB,gBAAgBi5H,EAAkB1nI,aAAc0nI,EAAkBppmB,GAAIopmB,EAAkB1oZ,YACpG,IAAvC0oZ,EAAkBx9H,mBAClBw9H,EAAkBv9H,aAAeu9H,EAAkB/lI,MACnDF,GAAqBimI,IAGzB9goB,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBu+I,mBAAmB,QAASwG,EAAkB1oZ,UAAW0oZ,EAAmBruF,GAC9HzyiB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4Bsf,kBAAkBk5H,EAAkB5nJ,UAAW4nJ,EAAkB/lI,OACvH/6f,KAAK29hB,kBAAkBmjG,EAAkB1oZ,UAAW,KAAM,KAAM,KAAM,MAE9E,EAIAs2a,EAAWhtpB,UAAU42hB,sBAAwB,WACzC,GAAwD,IAApDt4hB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,QAAwF,OAAxExD,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGrf,yBACjG71d,KAAKmpd,UAAUoyB,SAAWv7e,KAAKmpd,UAAUoyB,QAAQmQ,wBAAyB,CAC1E,KAAK,WAAc,KAAQzyT,WAAaj5L,KAAKmpd,UAAUkxB,mBAEhB,SADhB37e,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,iBACtDtuB,MAAMwjB,QACnB,GAAI5sB,KAAKmpd,UAAU6gC,eAAiBhqf,KAAKmpd,UAAUyqD,yBAA2B5zgB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BAErI57e,KAAKmpd,UAAUsiC,cAAcC,wBAAwBujF,oBAAoB,SAGzE,GAAIjvkB,KAAKmpd,UAAU6gC,eAAiBhqf,KAAKmpd,UAAUyqD,wBAAyB,CAExE5zgB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBsiF,mCACrDhukB,KAAKmpd,UAAUsiC,cAAcC,wBAAwBujF,oBAAoBjvkB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBACrH,IAAIo4G,EAAWrvkB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,mBAC/Dq2iB,IAAaA,EAASt4jB,cAAcmuD,UAAU5+D,SAAS,gBACvD+okB,EAASt4jB,cAAcmuD,UAAUjoD,IAAI,cAE7C,CAIZ3b,KAAKm2pB,oBACLn2pB,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB+yF,4BAA2B,EAC9E,CAER,EACAiwE,EAAWhtpB,UAAUy0pB,kBAAoB,WACrC,IAAIh7K,GAAS,EAETtO,EAAa7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACtDrI,GAAcA,EAAW0I,qBAEzB4F,EAAStO,EAAW0I,mBAAmB4F,SACzBn7e,KAAK2ggB,yBAAyB,iBAAkB9zB,KAC1DsO,GAAS,IAGZ,KAAQliT,UAAYj5L,KAAKmpd,UAAUkxB,kBAC/Bc,IACuE,UAApEn7e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBACwB,UAApE31d,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBAG6B,gBAApE31d,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,oBAFjD31d,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwBypB,sCAAqC,GAKX,SAApEn1gB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBACmB,mBAApE31d,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBACwB,kBAApE31d,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,oBAC5C31d,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB6xF,iCAAgC,GAEN,aAApEv9kB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,oBACjD31d,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwBwpB,yCAAwC,GAEd,yBAApEl1gB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,qBAGwB,QAApE31d,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGvf,oBAFjD31d,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB2pB,gCAA+B,GAMtB,IAApDr1gB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY1xe,QAAwF,OAAxExD,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGrf,yBACrG71d,KAAKmpd,UAAUoyB,QAAQmQ,wBAAwB6xF,iCAAgC,IAMrFv9kB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,6BAA0F,gBAAzD57e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAGnne,WAAgC,KAAQkrL,UAAaj5L,KAAKmpd,UAAUkxB,mBAClNr6e,KAAKmpd,UAAUsiC,cAAcC,wBAAwBgiF,+BAA8B,GAAM,EAEjG,EACAghF,EAAWhtpB,UAAUgxpB,cAAgB,SAAU50pB,GAC3C,IAAIilL,EAAa,IAAI9kL,KAAKH,EAAK22B,YAC/B,GAAIgwD,MAAMs+F,EAAWpC,eAAgB,CACjC,IAAI6R,EAAa10L,EAAKqO,MAAM,EAAG,IAE/BqmL,EAAaA,EAAWrmL,MAAM,EAAG,GAAK,IAAMqmL,EAAWrmL,MAAM,EAAG,GAAK,IAAMqmL,EAAWrmL,MAAM,EAAG,GAAK,IAAMqmL,EAAWrmL,MAAM,EAAG,IAAM,IAAMqmL,EAAWrmL,MAAM,GAAI,IAAM,IAAMqmL,EAAWrmL,MAAM,GAAI,IAChM42K,EAAa,IAAI9kL,KAAKu0L,EAC1B,CAEA,OAAQzP,EAAWrC,WAAa,EAAK,IAAMqC,EAAW3kL,UAAY,IAAM2kL,EAAWpC,cAAgB,IAAMoC,EAAW8B,WAAa,IAAM9B,EAAWgK,aAAe,IAAMhK,EAAWmoC,YACtL,EAMAwjc,EAAWhtpB,UAAUu2e,kBAAoB,SAAUS,EAAiBhvB,GAEhE,IADA,IAAI5gd,EAAQ,KACHiE,EAAI,EAAGA,EAAI2re,EAAgBl1e,OAAQuJ,IACxC,GAAI2re,EAAgB3re,GAAGqrO,YAAcsxO,EAAY,CAC7C5gd,EAAQiE,EACR,KACJ,CAEJ,OAAOjE,CACX,EASA4lpB,EAAWhtpB,UAAUg1pB,oBAAsB,SAAUxhL,EAAax9c,GAG9D,IADA,IAAIm1c,EACK9/d,EAAI,EAAGA,EAAImoe,EAAY1xe,OAAQuJ,IAChC2qB,IAAOw9c,EAAYnoe,GAAG2qB,KACtBm1c,EAAaqI,EAAYnoe,IAGjC,OAAO8/d,CACX,EAMA6hL,EAAWhtpB,UAAU86f,mBAAqB,SAAUjpf,GAChD,IAWIkrgB,EAXAxvC,EAAc17d,EAAMnG,OACpBuppB,EAAqBpjpB,EAAMnG,OAAOqI,cAwBtC,OAvBIw5d,EAAYrra,UAAU5+D,SAAS,kBAC/Biqe,EAAc0nL,EAETA,GAAsBA,EAAmB/ylB,UAAU5+D,SAAS,mBAAqB2xpB,EAAmBlhpB,eAAiBkhpB,EAAmBlhpB,cAAcA,eAAiBkhpB,EAAmBlhpB,cAAcA,cAAcA,cAC3Nw5d,EAAc0nL,EAAmBlhpB,cAAcA,cAAcA,cAExDw5d,EAAYrra,UAAU5+D,SAAS,4BACpCiqe,EAAc0nL,GAGd1nL,IAEAwvC,EAAaxvC,EAAYv3c,GAAGlwB,MAAM,UAAU,IAAMyne,EAAYv3c,GAAGlwB,MAAM,eAAe,IAAMyne,EAAYv3c,GAAGlwB,MAAM,sBAAsB,IAAMyne,EAAYv3c,GAAGlwB,MAAM,aAAa,IAE/Ki9E,MAAMg6b,KACNlrgB,EAAQvT,KAAKopd,cAAcywD,mBAIvB4E,GAFAxvC,EAAc17d,EAAMnG,QAEKsqB,GAAGlwB,MAAM,UAAU,IAAMyne,EAAYv3c,GAAGlwB,MAAM,eAAe,IAAMyne,EAAYv3c,GAAGlwB,MAAM,sBAAsB,IAAMyne,EAAYv3c,GAAGlwB,MAAM,aAAa,IAIhLoD,SAAS6zgB,EACpB,EAcAiwI,EAAWhtpB,UAAUyyiB,sBAAwB,SAAUyiH,EAAqBC,EAAkBphL,GAC1F,IAAIxlb,EAAW,GACX83c,EAAmB,KACvB,GAAI6uJ,GACIA,EAAoBpzpB,OAAS,EAC7B,IAAK,IAAIuJ,EAAI,EAAGA,EAAI6ppB,EAAoBpzpB,OAAQuJ,IAAK,CAEjD,IAAI8/d,EAAa+pL,EAAoB7ppB,GACrCg7f,EAAmB,CAEfpyC,oBAAqB,SAAU8f,OAAQ5I,EAAWunE,OAAQ3xC,aAAc51B,EAAW4iE,aAAc+E,KAAM3nE,EAAW4nE,KAAMvngB,MAAO2/b,EAAW3/b,MAAOongB,WAAYznE,EAAWynE,WACxKtvB,SAAU,GAAIqvB,OAAQ,CAAEnngB,MAAO2/b,EAAWryC,MAAO85G,WAAYznE,EAAW0nE,WAAY9xC,aAAc51B,EAAW4iE,aAAch6D,OAAQ5I,EAAWunE,QAC9Il7D,UAAWrM,EAAW2lE,UAAW3qQ,SAAUgvX,EAAiBrkH,UAAWnpa,QAAS,WAChF8xW,OAAQtO,EAAW6tE,QAEvBzqf,EAASA,EAASzsD,QAAUukgB,CAChC,CAGR,OAAO93c,CACX,EACAy+lB,EAAWhtpB,UAAUkniB,gBAAkB,WAEnC,MAAO,uCAAuCt+hB,QAAQ,SAAS,SAAUyvG,GAGrE,OAD6B,GAAhB3/F,KAAK4sH,SAAgB,GACpBvyG,SAAS,GAC3B,GACJ,EAIAi6nB,EAAWhtpB,UAAUore,WAAa,WAE9B,OAAO9se,KAAK4oiB,iBAChB,EAeA8lH,EAAWhtpB,UAAUg+hB,sBAAwB,SAAU71E,EAASF,EAAWC,EAAYF,EAAY2mB,GAC/F,IAAI5G,EAASzpe,KAAKopd,cAAc/rS,WAAW,qBAAuBqsS,GAClE,GAAI+f,EAEA,OADAzpe,KAAKg/gB,aAAav1C,EAAQ9f,EAAWC,EAAYF,GAC1C+f,EAIP,IAAIu4I,GAAmB,QAAc,SAAU,CAAEtqlB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,qBAAuBgyb,EAAYjnd,UAAW,2BAG/H,OAFAzC,KAAKg/gB,aAAagjG,EAAkBr4J,EAAWC,EAAYF,GAC3DG,EAAQnmd,YAAYs+mB,GACbA,CAEf,EAOA0sC,EAAWhtpB,UAAU8gmB,kBAAoB,SAAU7nlB,EAAOkG,EAAQ6oc,GAC9D,IAAI+f,EAASzpe,KAAKopd,cAAc/rS,WAAW,qBAAuBqsS,GAC9D+f,IACAA,EAAOrge,MAAMuR,MAAQA,EAAQ,KAC7B8ud,EAAOrge,MAAMyX,OAASA,EAAS,KAC/B7gB,KAAKopd,cAAcW,mBAAmB0f,EAAQ/f,GAEtD,EAKAglM,EAAWhtpB,UAAUo1pB,sBAAwB,SAAUptM,GACnD,IAAI+f,EAASzpe,KAAKopd,cAAc/rS,WAAW,qBAAuBqsS,GAC9D1hI,EAAOhoV,KAAKopd,cAAc+B,gBAC1B28D,EAAQ9nhB,KAAKopd,cAAc0xF,aAAa9yN,GAC5C,GAAIyhJ,EAAQ,CACR,IAAI9ud,EAAQ3a,KAAKopd,cAAcjxO,SAASuxO,GAAY/uc,MAChDkG,EAAS7gB,KAAKopd,cAAcjxO,SAASuxO,GAAY7oc,OACrD4od,EAAO9ud,MAAQA,EAAQmtgB,EACvBr+C,EAAO5od,OAASA,EAASingB,EACzBr+C,EAAOrge,MAAMuR,MAAQA,EAAQqtU,EAAO,KACpCyhJ,EAAOrge,MAAMyX,OAASA,EAASmnU,EAAO,IAC1C,CACJ,EAuBA0mU,EAAWhtpB,UAAUi8hB,kBAAoB,SAAUj0E,EAAY0uB,EAAiB8M,EAAwBD,EAAsBxb,EAAQstL,EAAqBtnC,GACvJzvnB,KAAK82pB,sBAAsBptM,GACvB1pd,KAAKwngB,wBACDuvJ,EACA/2pB,KAAKwngB,sBAAsBC,uBAAuBrvB,EAAiB1uB,GAAY,GAG/E1pd,KAAKwngB,sBAAsBC,uBAAuBrvB,EAAiB1uB,EAAY,KAAM+lK,IAGzFzvnB,KAAK+7e,0BACDg7K,EACA/2pB,KAAK+7e,wBAAwB+rB,8BAA8B5iB,EAAwBx7B,GAAY,GAG/F1pd,KAAK+7e,wBAAwB+rB,8BAA8B5iB,EAAwBx7B,EAAY,KAAM+lK,IAGzGhmJ,UAIAA,EAASzpe,KAAKopd,cAAc/rS,WAAW,qBAAuBqsS,IAElE1pd,KAAKmpd,UAAUypF,QAAQC,0BAA0BppE,EAAQ/f,GACrD1pd,KAAKs6e,6BACDy8K,EAEA/2pB,KAAKs6e,2BAA2BokD,kCAAkCz5C,EAAsBv7B,GAAY,GAIpG1pd,KAAKs6e,2BAA2BokD,kCAAkCz5C,EAAsBv7B,GAGpG,EAcAglM,EAAWhtpB,UAAU2liB,iBAAmB,SAAU39E,EAAYmjB,EAAYoM,GAUpD7+d,KAAKywN,MAAMjpO,KAAKC,UAAUvC,OAAO4qH,gBAAgB1mH,OAAS,MAC1D,OACdxD,KAAK43e,yBACL53e,KAAKopd,cAAc4rB,iBAAkB,EAC/Bh1e,KAAKopd,cAAiC,qBACxCppd,KAAKmpd,UAAU6hB,iBAAiB6M,yBAIxC,IAAI9C,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa8mH,GAC5Ej5e,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa8mH,IAEvF,IAAInwe,EAAQ,EACZ,GAAKise,EAeA,CACD/0e,KAAK2ynB,2BAA2B9lJ,EAAYnjB,GAC5C,IAAIstM,EAAgBp1pB,KAAK+yH,MAAMogX,GAC1B/0e,KAAKopd,cAAc4rB,iBACpB11e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa8mH,GAErE,IAAIjB,EAAch4e,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkB++K,EAAettM,GACnF,GAAIstM,EAAch/K,GACdg/K,EAAch/K,GAAa9C,YAAY/ye,QAAO,SAAU2nB,EAAMhhB,GACtDghB,EAAKovd,YAAcrM,EAAWqM,WAC9B89K,EAAch/K,GAAa9C,YAAYxne,OAAO5E,EAAO,EAE7D,IACAkupB,EAAch/K,GAAa9C,YAAYhze,KAAK2qe,GAC5C/je,EAAQkupB,EAAch/K,GAAa9C,YAAY3te,QAAQsle,OAEtD,CACD,IAAIqL,EAAmB,CAAE9/P,UAAWsxO,EAAYwrB,YAAa,IAC7DgD,EAAiBhD,YAAYhze,KAAK2qe,GAClC/je,EAAQove,EAAiBhD,YAAY3te,QAAQsle,GAC7CmqL,EAAc90pB,KAAKg2e,EACvB,CACIC,EAAwBv2e,KAAKC,UAAUm1pB,GACvCh3pB,KAAKopd,cAAc4rB,gBACnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa8mH,GAAgBd,EAGrF74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa8mH,EAAcd,EAEpF,KA5CkB,CACdn4e,KAAK2ynB,2BAA2B9lJ,EAAYnjB,GAC5C,IAAIutM,EAAiB,CAAE7+a,UAAWsxO,EAAYwrB,YAAa,IAC3D+hL,EAAe/hL,YAAYhze,KAAK2qe,GAChC/je,EAAQmupB,EAAe/hL,YAAY3te,QAAQsle,GAC3C,IAAIsI,EAAuB,GAC3BA,EAAqBjze,KAAK+0pB,GAC1B,IAAI9+K,EAAwBv2e,KAAKC,UAAUsze,GACvCn1e,KAAKopd,cAAc4rB,gBACnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa8mH,GAAgBd,EAGrF74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa8mH,EAAcd,EAEpF,CA+BA,OAAOrve,CACX,EAKA4lpB,EAAWhtpB,UAAU23nB,aAAe,SAAUt4mB,GAC1C,IAAIq5e,EAAkB,OACtB,OAAQr5e,GACJ,IAAK,cACL,IAAK,SACDq5e,EAAkB,QAClB,MACJ,IAAK,YACL,IAAK,OACDA,EAAkB,YAClB,MACJ,IAAK,SACDA,EAAkB,SAClB,MACJ,IAAK,SACL,IAAK,QACDA,EAAkB,SAClB,MACJ,IAAK,UACDA,EAAkB,UAClB,MACJ,IAAK,OACDA,EAAkB,OAM1B,OAAOA,CACX,EAKAs0J,EAAWhtpB,UAAUg5nB,0BAA4B,SAAUw7B,GACvD,IAAID,EACJ,OAAQC,GACJ,IAAK,QACDD,EAAY,cACZ,MACJ,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,UACL,IAAK,OACDA,EAAYC,EAAMzhoB,WAClB,MACJ,IAAK,OACDwhoB,EAAY,OAGpB,OAAOA,CACX,EAOAvH,EAAWhtpB,UAAU45C,UAAY,SAAU8uf,EAAOhyT,GAC9C,IAAI6iU,EAAcj7iB,KAAKopd,cAAcjxO,SAASC,GAC9C,OAAI6iU,EAC6B,IAAzBA,EAAY97Z,SACL,CAAEvnI,KAAMwyhB,EAAM9vhB,IAAKA,IAAK2giB,EAAYtgiB,OAASyvhB,EAAMxyhB,KAAOwyhB,EAAMzvhB,OAAQA,MAAOyvhB,EAAMvphB,OAAQA,OAAQuphB,EAAMzvhB,OAEpF,IAAzBsgiB,EAAY97Z,SAEV,CAAEvnI,KAAMqjiB,EAAYtgiB,MAAQyvhB,EAAMxyhB,KAAOwyhB,EAAMzvhB,MAAOL,IAAK2giB,EAAYp6hB,OAASuphB,EAAM9vhB,IAAM8vhB,EAAMvphB,OAAQlG,MAAOyvhB,EAAMzvhB,MAAOkG,OAAQuphB,EAAMvphB,QAErH,IAAzBo6hB,EAAY97Z,SACV,CAAEvnI,KAAMqjiB,EAAYp6hB,OAASuphB,EAAM9vhB,IAAM8vhB,EAAMvphB,OAAQvG,IAAK8vhB,EAAMxyhB,KAAM+C,MAAOyvhB,EAAMvphB,OAAQA,OAAQuphB,EAAMzvhB,OAG3GyvhB,EAIJA,CAEf,EAOAskH,EAAWhtpB,UAAU8npB,aAAe,SAAUp/G,EAAOhyT,GACjD,IAAI6iU,EAAcj7iB,KAAKopd,cAAcjxO,SAASC,GAC9C,OAAI6iU,EAC6B,IAAzBA,EAAY97Z,SACL,CAAEjlI,EAAGkwhB,EAAMpxf,EAAGA,EAAGiigB,EAAYtgiB,OAASyvhB,EAAMlwhB,EAAIkwhB,EAAMzvhB,OAAQA,MAAOyvhB,EAAMvphB,OAAQA,OAAQuphB,EAAMzvhB,OAE1E,IAAzBsgiB,EAAY97Z,SAEV,CAAEjlI,EAAG+giB,EAAYtgiB,MAAQyvhB,EAAMlwhB,EAAIkwhB,EAAMzvhB,MAAOq+B,EAAGiigB,EAAYp6hB,OAASuphB,EAAMpxf,EAAIoxf,EAAMvphB,OAAQlG,MAAOyvhB,EAAMzvhB,MAAOkG,OAAQuphB,EAAMvphB,QAE3G,IAAzBo6hB,EAAY97Z,SACV,CAAEjlI,EAAG+giB,EAAYp6hB,OAASuphB,EAAMpxf,EAAIoxf,EAAMvphB,OAAQm4B,EAAGoxf,EAAMlwhB,EAAGS,MAAOyvhB,EAAMvphB,OAAQA,OAAQuphB,EAAMzvhB,OAGjGyvhB,EAIJA,CAEf,EASAskH,EAAWhtpB,UAAUi5nB,gBAAkB,SAAUvmK,EAAQh8O,GACrD,GAAIg8O,EAAQ,CACR,IAAI6mF,EAAcj7iB,KAAKopd,cAAcjxO,SAASC,GAC9C,GAA6B,IAAzB6iU,EAAY97Z,SAAgB,CAE5B,IADA,IAAI+3gB,EAAU,GACLnqpB,EAAI,EAAGA,EAAIqnd,EAAO5wd,OAAQuJ,IAAK,CACpC,IAAIiR,EAAQ,CAAE9D,EAAGk6c,EAAOrnd,GAAGisC,EAAGA,EAAGiigB,EAAYtgiB,MAAQy5c,EAAOrnd,GAAGmN,GAC/Dg9oB,EAAQh1pB,KAAK8b,EACjB,CACA,OAAOk5oB,CACX,CACK,GAA6B,IAAzBj8G,EAAY97Z,SAAgB,CACjC,IAAIg4gB,EAAU,GACd,IAASpqpB,EAAI,EAAGA,EAAIqnd,EAAO5wd,OAAQuJ,IAC3BiR,EAAQ,CAAE9D,EAAG+giB,EAAYtgiB,MAAQy5c,EAAOrnd,GAAGmN,EAAG8+B,EAAGiigB,EAAYp6hB,OAASuzc,EAAOrnd,GAAGisC,GACpFm+mB,EAAQj1pB,KAAK8b,GAEjB,OAAOm5oB,CACX,CACK,GAA6B,IAAzBl8G,EAAY97Z,SAAgB,CACjC,IAAIi4gB,EAAU,GACd,IAASrqpB,EAAI,EAAGA,EAAIqnd,EAAO5wd,OAAQuJ,IAC3BiR,EAAQ,CAAE9D,EAAG+giB,EAAYp6hB,OAASuzc,EAAOrnd,GAAGisC,EAAGA,EAAGo7a,EAAOrnd,GAAGmN,GAChEk9oB,EAAQl1pB,KAAK8b,GAEjB,OAAOo5oB,CACX,CAEI,OAAOhjM,CAEf,CACJ,EAWAs6L,EAAWhtpB,UAAUu3nB,qBAAuB,SAAU7gZ,EAAWmhQ,EAAkBkU,GAE/E,IAAItY,EAEAJ,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAas7H,GAIhF,GAHIztf,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAas7H,IAEnF1Y,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACzBjse,EAAQ9I,KAAKmpd,UAAU+sB,iBAAiB+B,kBAAkBF,EAAa3/P,GAEvE+8P,EADA4C,EAAYjve,GACWive,EAAYjve,GAAOose,YAGnB,IAE/B,MAEIC,EAAuB,KAE3B,OAAOA,CACX,EAmHAu5K,EAAWhtpB,UAAU24kB,4BAA8B,SAAUymD,EAAmBu2B,EAASC,EAAUC,EAAatjC,EAAWujC,EAAaC,EAAWC,EAAalkG,EAAYi3F,EAAcvzH,GAC1Kl3hB,KAAKwwpB,mBAAmB1vB,EAAkB1oZ,UAAW0oZ,EAAkBppmB,IAAnF,IACI3W,EAAO/gB,KAAKsjpB,kBAAkBxiB,EAAkBnrK,oBAAqBmrK,EAAkBt8H,aAEvFruZ,EAAY,CAAEvuG,KAAM,6BAA8BwwO,UAAW0oZ,EAAkB1oZ,UAAW6gQ,aAAc6nJ,EAAkB5nJ,UAAWu8B,eAAgB10f,EAAM+/iB,eAAgBu2F,EAASl0F,iBAAkB8wD,EAAWvwD,mBAAoB6zF,EAAa9zF,qBAAsB6zF,GACxQ9jG,IACAr9c,EAAUwhjB,kBAAoBnkG,EAC9Br9c,EAAUs0iB,aAAeA,EACzBt0iB,EAAU+gb,YAAcA,GAExBsgI,IACArhjB,EAAU2/iB,4BAA8B0B,GAExCC,IACAthjB,EAAU4/iB,0BAA4B0B,GAEtCC,IACAvhjB,EAAU6/iB,yBAA2B0B,GAEzC13pB,KAAKmpd,UAAUnuR,QAAQ,6BAA8B7kF,EACzD,EAKAu4iB,EAAWhtpB,UAAU63nB,qBAAuB,SAAUuH,GAElD,IAaI5nF,EAbAiiF,EAAU,CACVvsmB,QAASkymB,EAAkBlymB,QAASonc,UAAW8qK,EAAkB9qK,UAAWC,YAAa6qK,EAAkB7qK,YAC3GC,UAAW4qK,EAAkB5qK,UAAWuf,OAAQqrJ,EAAkBrrJ,OAAQpsW,QAASy3f,EAAkBz3f,QACrGo5X,aAAcq+H,EAAkBr+H,cAGhCz8d,EAAS,CAAEpuB,KAAMkpnB,EAAkBn0mB,QAAQqZ,OAAO9rB,EAAGI,IAAKwmnB,EAAkBn0mB,QAAQqZ,OAAOgT,EAAGr+B,MAAOmmnB,EAAkBn0mB,QAAQqZ,OAAOrrB,MAAOkG,OAAQignB,EAAkBn0mB,QAAQqZ,OAAOnlB,QACtLE,EAAO/gB,KAAKsjpB,kBAAkBxiB,EAAkBnrK,oBAAqBmrK,EAAkBt8H,aAC9E,SAATzjf,GAA4B,UAATA,GAA6B,aAATA,GAAgC,cAATA,IAC9Do6mB,EAAQp1D,mBAAqB/lkB,KAAKkzpB,eAAepyB,EAAkB5mI,uBACnEihI,EAAQn1D,iBAAmBhmkB,KAAKkzpB,eAAepyB,EAAkB3mI,wBACjEghI,EAAQplK,gBAAkB+qK,EAAkB/qK,iBAG5C/1d,KAAKmpd,UAAUm6C,kBACf41C,EAAgB,CAEZjjI,UAAW6qN,EAAkB7qN,UAAW5lZ,SAAUywmB,EAAkBzwmB,SAAUwrC,WAAYilkB,EAAkBjlkB,WAC5GjtC,QAASkymB,EAAkB7rG,aAAc1xB,aAAcu9H,EAAkBv9H,aAAcvtC,UAAW8qK,EAAkB9rG,gBAGxHh1hB,KAAKmpd,UAAUg5G,kBAAkB2+D,EAAkB1oZ,UAAW0oZ,EAAkB5nJ,UAAWn4d,EAAMilB,EAAQm1lB,EAAS,KAAM,KAAM,KAAMjiF,IAIpIl5iB,KAAKmpd,UAAUg5G,kBAAkB2+D,EAAkB1oZ,UAAW0oZ,EAAkB5nJ,UAAWn4d,EAAMilB,EAAQm1lB,EAEjH,EAKAuzB,EAAWhtpB,UAAU00pB,wBAA0B,SAAUt1B,GAErD,IAiBI5nF,EAjBAiiF,EAAU,CACVvsmB,QAASkymB,EAAkBlymB,QAASonc,UAAW8qK,EAAkB9qK,UAAWC,YAAa6qK,EAAkB7qK,YAC3GC,UAAW4qK,EAAkB5qK,UAAWuf,OAAQqrJ,EAAkBrrJ,OAAQpsW,QAASy3f,EAAkBz3f,QACrGo5X,aAAcq+H,EAAkBr+H,cAIhCigE,GAFQ1ikB,KAAKwwpB,mBAAmB1vB,EAAkB1oZ,UAAW0oZ,EAAkBppmB,IAE5DopmB,EAAkB96lB,QACrCw3d,EAAkB,CAAE5lf,KAAM8qjB,EAAiBxojB,EAAGI,IAAKoojB,EAAiB1phB,EAAG9+B,EAAGwojB,EAAiBxojB,EAAG8+B,EAAG0phB,EAAiB1phB,EAAGr+B,MAAO+njB,EAAiB/njB,MAAOkG,OAAQ6hjB,EAAiB7hjB,QAE7K6hf,EAAmB,CAAE9qf,KAAM8qjB,EAAiBhlY,cAAcxjL,EAAGI,IAAKoojB,EAAiBhlY,cAAc1kJ,EAAGr+B,MAAO+njB,EAAiBhlY,cAAc/iL,MAAOkG,OAAQ6hjB,EAAiBhlY,cAAc78K,QACxLE,EAAO/gB,KAAKsjpB,kBAAkBxiB,EAAkBnrK,oBAAqBmrK,EAAkBt8H,aAC9E,SAATzjf,GAA4B,UAATA,GAA6B,aAATA,GAAgC,cAATA,IAC9Do6mB,EAAQp1D,mBAAqB/lkB,KAAKkzpB,eAAepyB,EAAkB5mI,uBACnEihI,EAAQn1D,iBAAmBhmkB,KAAKkzpB,eAAepyB,EAAkB3mI,wBACjEghI,EAAQplK,gBAAkB+qK,EAAkB/qK,iBAG5C/1d,KAAKmpd,UAAUm6C,kBAA+D,yBAA1Cw9H,EAAkBnrK,qBACtDujF,EAAgB,CAEZjjI,UAAW6qN,EAAkB7qN,UAAW5lZ,SAAUywmB,EAAkBzwmB,SAAUwrC,WAAYilkB,EAAkBjlkB,WAC5GjtC,QAASkymB,EAAkB7rG,aAAc1xB,aAAcu9H,EAAkBv9H,aAAcvtC,UAAW8qK,EAAkB9rG,eAAgBj6B,MAAO+lI,EAAkB/lI,OAGjK/6f,KAAKmpd,UAAU66G,qBAAqB88D,EAAkB1oZ,UAAW0oZ,EAAkB5nJ,UAAWn4d,EAAMy8e,EAAiB29H,EAAS,KAAM,KAAM,KAAMjiF,IAGlG,yBAA1C4nF,EAAkBnrK,qBAA4F,kBAA1CmrK,EAAkBnrK,qBAAqF,mBAA1CmrK,EAAkBnrK,oBAEnJ31d,KAAKmpd,UAAUw6G,oBAAoBm9D,EAAkB1oZ,UAAW0oZ,EAAkB1zJ,cAAe0zJ,EAAkBnrK,oBAAqBmrK,EAAkBlymB,QAASkymB,EAAkB7qK,YAAa6qK,EAAkB5qK,UAAWsnC,EAAiBkF,GAIhP1igB,KAAKmpd,UAAU66G,qBAAqB88D,EAAkB1oZ,UAAW0oZ,EAAkB5nJ,UAAWn4d,EAAMy8e,EAAiB29H,EAGjI,EAMAuzB,EAAWhtpB,UAAUgigB,sBAAwB,SAAUo9H,EAAmBv6G,GAEtE,IAAI40G,EAAU,CACVvsmB,QAASkymB,EAAkBlymB,QAASonc,UAAW8qK,EAAkB9qK,UAAWC,YAAa6qK,EAAkB7qK,YAC3GC,UAAW4qK,EAAkB5qK,UAAWuf,OAAQqrJ,EAAkBrrJ,OAAQpsW,QAASy3f,EAAkBz3f,QACrGo5X,aAAcq+H,EAAkBr+H,cAGhCigE,EAAmBo+D,EAAkB96lB,OACrCw3d,EAAkB,CAAE5lf,KAAM8qjB,EAAiBxojB,EAAGI,IAAKoojB,EAAiB1phB,EAAG9+B,EAAGwojB,EAAiBxojB,EAAG8+B,EAAG0phB,EAAiB1phB,EAAGr+B,MAAO+njB,EAAiB/njB,MAAOkG,OAAQ6hjB,EAAiB7hjB,QAE7K6hf,EAAmB,CAAE9qf,KAAM8qjB,EAAiBhlY,cAAcxjL,EAAIwojB,EAAiBhlY,cAAcxjL,EAAIwojB,EAAiBxojB,EAAGI,IAAKoojB,EAAiBhlY,cAAc1kJ,EAAI0phB,EAAiBhlY,cAAc1kJ,EAAI0phB,EAAiB1phB,EAAGr+B,MAAO+njB,EAAiB/njB,MAAOkG,OAAQ6hjB,EAAiB7hjB,QAC5QE,EAAO/gB,KAAKsjpB,kBAAkBxiB,EAAkBnrK,oBAAqBmrK,EAAkBt8H,aAC9E,SAATzjf,GAA4B,UAATA,GAA6B,aAATA,GAAgC,cAATA,IAC9Do6mB,EAAQp1D,mBAAqB/lkB,KAAKkzpB,eAAepyB,EAAkB5mI,uBACnEihI,EAAQn1D,iBAAmBhmkB,KAAKkzpB,eAAepyB,EAAkB3mI,wBACjEghI,EAAQplK,gBAAkB+qK,EAAkB/qK,iBAEF,yBAA1C+qK,EAAkBnrK,qBAA4F,kBAA1CmrK,EAAkBnrK,qBAAqF,mBAA1CmrK,EAAkBnrK,oBAEnJ31d,KAAKmpd,UAAUo6G,kBAAkBu9D,EAAkB1oZ,UAAW0oZ,EAAkB1zJ,cAAe0zJ,EAAkBnrK,oBAAqBmrK,EAAkBlymB,QAASkymB,EAAkB7qK,YAAa6qK,EAAkB5qK,UAAWwsC,EAAkBlF,GAI/O+oB,EAAWvmhB,KAAKmpd,UAAU86G,qBAAqB68D,EAAkB1oZ,UAAW0oZ,EAAkB5nJ,UAAWn4d,EAAMo6mB,EAASz4H,EAAkBlF,GAAmBx9f,KAAKmpd,UAAU+6G,mBAAmB48D,EAAkB1oZ,UAAW0oZ,EAAkB5nJ,UAAWn4d,EAAMo6mB,EAASz4H,EAAkBlF,EAElS,EAWAkxJ,EAAWhtpB,UAAU8zgB,iBAAmB,SAAUv8B,EAAcvvB,EAAYmjB,EAAYsI,EAAsByiL,EAAY3vmB,GAEtH,IAAIowkB,EACmC,eAAnCxrJ,EAAWlX,oBAEX0iK,EAAgB,CAAEt3mB,KAAM,aAAcs6V,QAASwxH,EAAWxjW,QAASz6G,QAASi+c,EAAWj+c,QAASX,MAAO4+c,EAAW5+c,MAAOk5gB,kBAAmBt6D,EAAWs6D,kBAAmBuP,qBAAsB7pE,EAAW6pE,qBAAsBE,mBAAoB/pE,EAAW+pE,mBAAoBT,WAAYtpE,EAAWspE,YAEnQ,gBAAnCtpE,EAAWlX,oBAChB0iK,EAAgB,CAAEt3mB,KAAM,cAAe6N,QAASi+c,EAAWj+c,QAASunhB,WAAYtpE,EAAWspE,YAEnD,UAAnCtpE,EAAWlX,qBAAsE,UAAnCkX,EAAWlX,oBAC9D0iK,EAAgB,CAAEt3mB,KAAM,QAAS6N,QAASi+c,EAAWj+c,QAASunhB,WAAYtpE,EAAWspE,YAE7C,QAAnCtpE,EAAWlX,oBAChB0iK,EAAgB,CAEZt3mB,KAAM,MAAO6N,QAASi+c,EAAWj+c,QAASqnc,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWusC,aAAc51B,EAAW41B,aACzI9nf,MAAOkyd,EAAW7mc,OAAOrrB,MAAOkG,OAAQgsd,EAAW7mc,OAAOnlB,OAAQjJ,KAAMi1d,EAAW7mc,OAAO9rB,EAAGI,IAAKuyd,EAAW7mc,OAAOgT,EAAGhe,KAAM6xc,EAAW7xc,KAAMm7gB,WAAYtpE,EAAWspE,YAGjI,aAAnCtpE,EAAWlX,oBAChB0iK,EAAgB,CACZt3mB,KAAM,WAAY6N,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAErEC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAW7wb,QAASwnc,EAAWuB,YAE1Fvya,WAAYgxa,EAAWhxa,WAAYxrC,SAAUw8c,EAAWx8c,SAAU4lZ,UAAW42D,EAAW52D,UAAWxnZ,UAAWo+c,EAAWp+c,UAAWmuC,UAAW58D,KAAK63pB,wBAAwBhrL,EAAWlle,MAAOwuiB,WAAYtpE,EAAWspE,YAGzL,KAA3BtpE,EAAW23B,YACuB,SAAnC33B,EAAWlX,oBAEX0iK,EAAgB,CAAEt3mB,KAAM,QAASs6V,QAAS,OAAQzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAAWC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWH,gBAAiB8W,EAAW9W,gBAAiBgwG,mBAAoBl5F,EAAWqtB,sBAAuB8rE,iBAAkBn5F,EAAWstB,uBAAwBg8C,WAAYtpE,EAAWspE,YAE7T,UAAnCtpE,EAAWlX,qBAAsE,uBAAnCkX,EAAWlX,oBAE9D0iK,EAAgB,CAAEt3mB,KAAM,QAASs6V,QAAS,QAASzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAAWC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWH,gBAAiB8W,EAAW9W,gBAAiBgwG,mBAAoBl5F,EAAWqtB,sBAAuB8rE,iBAAkBn5F,EAAWstB,uBAAwBg8C,WAAYtpE,EAAWspE,YAE9T,cAAnCtpE,EAAWlX,oBAChB0iK,EAAgB,CACZt3mB,KAAM,QAASs6V,QAAS,YAAazsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UACxFC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWigF,WAAYtpE,EAAWspE,YAGzD,WAAnCtpE,EAAWlX,qBAAuE,YAAnCkX,EAAWlX,oBAC/D0iK,EAAgB,CACZt3mB,KAAM,QAASs6V,QAAS,SAAUzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UACrFC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWigF,WAAYtpE,EAAWspE,YAGzD,YAAnCtpE,EAAWlX,sBAChB0iK,EAAgB,CACZt3mB,KAAM,QAASs6V,QAAS,UAAWzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UACtFC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWigF,WAAYtpE,EAAWspE,aAIrE,KAA3BtpE,EAAW23B,cACe,aAA3B33B,EAAW23B,YAEX6zH,EAAgB,CAAEt3mB,KAAM,UAAWs6V,QAAS,WAAYzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAAWC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWH,gBAAiB8W,EAAW9W,gBAAiBgwG,mBAAoBl5F,EAAWqtB,sBAAuB8rE,iBAAkBn5F,EAAWstB,uBAAwBg8C,WAAYtpE,EAAWspE,YAE3U,cAA3BtpE,EAAW23B,YAEhB6zH,EAAgB,CAAEt3mB,KAAM,UAAWs6V,QAAS,YAAazsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAAWC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWH,gBAAiB8W,EAAW9W,gBAAiBgwG,mBAAoBl5F,EAAWqtB,sBAAuB8rE,iBAAkBn5F,EAAWstB,uBAAwBg8C,WAAYtpE,EAAWspE,YAE5U,SAA3BtpE,EAAW23B,YAChB6zH,EAAgB,CACZt3mB,KAAM,UAAWs6V,QAAS,OAAQzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UACrFC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWigF,WAAYtpE,EAAWspE,YAGjE,WAA3BtpE,EAAW23B,YAChB6zH,EAAgB,CACZt3mB,KAAM,UAAWs6V,QAAS,SAAUzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UACvFC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWigF,WAAYtpE,EAAWspE,YAGjE,WAA3BtpE,EAAW23B,cAChB6zH,EAAgB,CACZt3mB,KAAM,UAAWs6V,QAAS,SAAUzsV,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UACvFC,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWsjF,UAAW3sE,EAAW2sE,UAC5FvgE,aAAcpM,EAAWqM,UAAWi9D,WAAYtpE,EAAWspE,cAKvE,IAAI2hH,EAAuB,GAEvB/I,EAAwB/upB,KAAK+3pB,yBAAyBlrL,EAAYnjB,GACtE,GAAIqlM,GAAyB/upB,KAAK0ggB,sBAAuB,CAIrD,IAFA,IAAIA,EAAwB,GAEnB3zf,EAAI,EAAGA,EAAIgipB,EAAsBvrpB,OAAQuJ,IAC9C,GAAqD,eAAjDgipB,EAAsBhipB,GAAG4od,qBAAwC31d,KAAK0ggB,uBAAyBz4c,GAC/F,IAAK,IAAImyD,EAAI,EAAGA,EAAIp6G,KAAK0ggB,sBAAsBl9f,OAAQ42G,IACnD,GAAI20iB,EAAsBhipB,GAAGmse,YAAcl5e,KAAK0ggB,sBAAsBtmZ,GAAG8+X,UAAW,CAChFwnB,EAAsBx+f,KAAK6spB,EAAsBhipB,IACjD,KACJ,OAIJ2zf,EAAsBx+f,KAAK6spB,EAAsBhipB,IAGzDgipB,EAAwBruJ,CAC5B,CACA,GAAI1ggB,KAAKmpd,UAAU6uM,uBAEf,IAASjrpB,EAAI,EAAGA,EAAIgipB,EAAsBvrpB,OAAQuJ,IAC9C,GAAqD,eAAjDgipB,EAAsBhipB,GAAG4od,oBAAsC,CAC/D,IAAIumC,GAAe,EACnB,IAAS9hZ,EAAI,EAAGA,EAAI20iB,EAAsBhipB,GAAGi5B,OAAOxiC,OAAQ42G,IAAK,CAE7D,IAAIp0E,EAAShmC,KAAKi4pB,sBAAsBlJ,EAAsBhipB,GAAGi5B,OAAOo0E,IAEpE89iB,EAAkBl4pB,KAAKs6e,2BAA2B+zI,wBAClD6pC,IAAoBA,EAAgBh+oB,GAAKg+oB,EAAgBl/mB,GACrDhT,EAAOpuB,MAAQsgpB,EAAgBh+oB,GAAM8rB,EAAOpuB,KAAOouB,EAAOrrB,OAAUu9oB,EAAgBh+oB,GAChF8rB,EAAO1rB,KAAO49oB,EAAgBl/mB,GAAMhT,EAAO1rB,IAAM0rB,EAAOnlB,QAAWq3oB,EAAgBl/mB,IACnFkjd,GAAe,GAKvBA,GAAe,CAEvB,CACKA,GACD6yJ,EAAsBrhpB,OAAOX,EAAG,EAExC,CAGR,GAAIgipB,GAAyBA,EAAsBvrpB,OAAS,EAGxD,IAFA2xe,EAAuB45K,EAEdhipB,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAAK,CAElD,IAAIorpB,EAAmBphM,EAAYoe,EAAqBpoe,IACxDorpB,EAAiBl/K,aAAe9D,EAAqBpoe,GAAGmse,UACpDD,IAAiB9D,EAAqBpoe,GAAGmse,WAAarM,EAAW23B,aAA0C,WAA3B33B,EAAW23B,cAC3F6zH,EAAc7+E,UAAYrkE,EAAqBpoe,GAAGysiB,kBAE/C2+G,EAAiBj/K,UACxB4+K,EAAqB51pB,KAAKi2pB,EAC9B,MAGAL,EAAuB,KAE3B93pB,KAAKo4pB,sBAAsBvrL,EAAYwrJ,GACvC,IAAI1iF,EAAoB9oE,EAAW8oE,kBACnC,GAAKiiH,GAiCsC,UAAnC/qL,EAAWlX,qBAAsE,UAAnCkX,EAAWlX,sBACpD31d,KAAKopd,cAAcuwD,YAKxB35gB,KAAKmpd,UAAU26G,0BAA0B7qF,EAAcvvB,EAAY2uK,QAtCvE,GAAuC,UAAnCxrJ,EAAWlX,qBAAsE,UAAnCkX,EAAWlX,qBACpD31d,KAAKopd,cAAcuwD,YAAc35gB,KAAK2upB,qBACnCmJ,EAEA93pB,KAAKmpd,UAAU06G,qBAAqB5qF,EAAcvvB,EAAY2uK,EAAey/B,EAAsB,KAAM,KAAMniH,GAG/G31iB,KAAKmpd,UAAU06G,qBAAqB5qF,EAAcvvB,EAAY2uK,EAAe,KAAM,KAAM,KAAM1iF,QAItG,CACD,IAAI55Y,EAAS/7J,KAAKs6e,2BACdgoF,EAAsBvma,GAAUA,EAAOy2d,wBAAwB3lJ,GAC/Dy1F,GAAsD,IAA/BA,EAAoB9+jB,SAC3C8+jB,EAAsB,MAEtBtikB,KAAK2upB,qBACDmJ,GACA7vmB,GAAa,EAEbjoD,KAAKmpd,UAAU06G,qBAAqB5qF,EAAcvvB,EAAY2uK,EAAey/B,EAAsBx1F,EAAqBr6gB,EAAY0tf,KAGpI1tf,GAAa,EAEbjoD,KAAKmpd,UAAU06G,qBAAqB5qF,EAAcvvB,EAAY2uK,EAAe,KAAM/1D,EAAqBr6gB,EAAY0tf,IAGhI,CAYJ31iB,KAAK2upB,oBAAqB,CAC9B,EAEAD,EAAWhtpB,UAAU6ujB,gBAAkB,SAAU19E,EAAanpB,EAAY2kB,GAEtE,IAAI46E,EAAc56E,EAAgBroc,OAE9BA,EAAS,CAAEnlB,OAAQooiB,EAAYpoiB,OAAQlG,MAAOsuiB,EAAYtuiB,MAAOT,EAAG+uiB,EAAY/uiB,EAAG8+B,EAAGiwgB,EAAYjwgB,GACtG,IAAKh5C,KAAKopd,cAAcqtB,eAAgB,CAEpC,IAAIpE,EAAY,CAAErsc,OAAQA,EAAQpX,QAASy/c,EAAgBz/c,QAASsnc,UAAWmY,EAAgBnY,UAAWD,YAAaoY,EAAgBpY,aACvIj2d,KAAKmpd,UAAUy6G,oBAAoB/wF,EAAanpB,EAAY2oB,EAChE,CACJ,EAEAq8K,EAAWhtpB,UAAU22pB,cAAgB,SAAUhmL,GAE3C,IAAIiE,EAQA5sB,GALA4sB,EAFAjE,EAAUnsG,UAEUlmY,KAAKmpd,UAAU4uC,UAAU1lB,EAAUnsG,WAGnClmY,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAE9B98P,UACnC,GAA8C,yBAA1Ck+P,EAAkB3gB,qBAA4F,kBAA1C2gB,EAAkB3gB,qBAAqF,mBAA1C2gB,EAAkB3gB,oBAA0C,CAE7L,IAAIwkH,EAAepjH,EAAYuf,GAE3B8jG,EAAmBrjH,EAAYuf,GAC/BA,EAAkB1nd,UAAYyjd,EAAUzjd,UACxCwrjB,EAAiBxrjB,QAAUyjd,EAAUzjd,QACrC5uB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE1nd,QAASyjd,EAAUzjd,UAE1E5uB,KAAKmpd,UAAUq6G,8BAA8BltF,EAAkBl+P,UAAWk+P,EAAkBlJ,cAAekJ,EAAkB3gB,qBAAqB,GAAO,GAAM,EAAOwkH,EAAavrjB,QAASwrjB,EAAiBxrjB,SAE7M5uB,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,gBAAiB,GAAI6jG,EAAcC,IAE7H9jG,EAAkBrgB,cAAgBoc,EAAUpc,cAC5CmkH,EAAiBnkH,YAAcoc,EAAUpc,YACzCj2d,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAErgB,YAAaoc,EAAUpc,cAE9Ej2d,KAAKmpd,UAAUq6G,8BAA8BltF,EAAkBl+P,UAAWk+P,EAAkBlJ,cAAekJ,EAAkB3gB,qBAAqB,GAAM,GAAO,EAAOwkH,EAAalkH,YAAamkH,EAAiBnkH,aAEjNj2d,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,eAAgB,GAAI6jG,EAAcC,IAE5H9jG,EAAkBpgB,YAAcmc,EAAUnc,YAC1CkkH,EAAiBlkH,UAAYmc,EAAUnc,UACvCl2d,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEpgB,UAAWmc,EAAUnc,YAE5El2d,KAAKmpd,UAAUq6G,8BAA8BltF,EAAkBl+P,UAAWk+P,EAAkBlJ,cAAekJ,EAAkB3gB,qBAAqB,GAAO,GAAO,EAAMwkH,EAAajkH,UAAWkkH,EAAiBlkH,WAE/Ml2d,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,kBAAmB,GAAI6jG,EAAcC,IAEnI9jG,EAAkBmsB,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBACvFpynB,KAAKmpd,UAAUqtB,gBACfx2e,KAAKopd,cAAcilB,gBAAgBgK,0BAA0B,KAAM3uB,EAAY4sB,GAAmB,EACtG,CACJ,EAEAo4K,EAAWhtpB,UAAU42pB,aAAe,SAAU7X,GACtCA,EAAWhroB,cAAc8B,aAAekpoB,EACxCzgpB,KAAKi2hB,mBAGLj2hB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bw8J,4BAA4BrE,EAAWhroB,cAAegroB,EAE1H,EAEAiO,EAAWhtpB,UAAU62pB,iBAAmB,SAAUjiL,EAAmBkiL,EAAcC,GAC/E,GAAoB,QAAhBA,EAAuB,CAEvB,IAAI3Q,EAAkBpppB,SAASkuD,eAAe0pb,EAAkB4C,WAChEl5e,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bu4J,iBAAiBiH,GAC7E,IAAK,IAAI1tiB,EAAI,EAAGA,EAAIo+iB,EAAah1pB,OAAQ42G,IACrCp6G,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B25J,eAAe6F,EAAiB0Q,EAAap+iB,GAEjH,KACyB,SAAhBq+iB,IAED3Q,EAAkBpppB,SAASkuD,eAAe0pb,EAAkB2C,cAChEj5e,KAAKg5e,iBAAiB1C,GACtBt2e,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4B25J,eAAe6F,EAAiB0Q,GAEpG,EACA9J,EAAWhtpB,UAAUg3pB,aAAe,SAAUC,EAAWC,GAEpCl6pB,SAASkuD,eAAe+rmB,GAC9B7zpB,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQmvpB,CACtD,EAEAlK,EAAWhtpB,UAAUm3pB,eAAiB,SAAUhsL,GAE5C,IAAIyJ,EACA2C,EACAw8B,EACA/rD,EACAovM,GAAqB,EAazB,GAZI94pB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,6BAE3D3C,GADA3C,EAAoBt2e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,6BAC9C1C,UACjCxvB,EAAa1pd,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2ByqC,6BAGpE/khB,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,KAEzC+D,GADA3C,EAAoBt2e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,IAC5BgE,UACjCxvB,EAAa4sB,EAAkBl+P,gBAGV35O,IAAzBoue,EAAW3mG,UAAyB,CAMpC,IAJAowG,EAAoBt2e,KAAKmpd,UAAU4uC,UAAUlrB,EAAW3mG,YACtCqvG,mBAAmB4F,OAAStO,EAAW0I,mBAAmB4F,OAC5ElC,EAAe3C,EAAkB4C,UACjCxvB,EAAa4sB,EAAkBl+P,WAC3B,WACIy0P,EAAWi5F,oBAEX,IADA,IAAIizF,EAA2BlsL,EAAWi5F,oBAAoBtikB,OACrDuJ,EAAI,EAAGA,EAAIgspB,EAA0BhspB,IACA,IAAtC8/d,EAAWi5F,oBAAoB/4jB,KAC/B8/d,EAAWi5F,oBAAoB/4jB,GAAKu5d,GAAmB0yL,QAEjB,IAAtCnsL,EAAWi5F,oBAAoB/4jB,KAC/B8/d,EAAWi5F,oBAAoB/4jB,GAAKu5d,GAAmB2yL,MAEjB,IAAtCpsL,EAAWi5F,oBAAoB/4jB,KAC/B8/d,EAAWi5F,oBAAoB/4jB,GAAKu5d,GAAmB4yL,QAEjB,IAAtCrsL,EAAWi5F,oBAAoB/4jB,KAC/B8/d,EAAWi5F,oBAAoB/4jB,GAAKu5d,GAAmBkiG,QAEjB,IAAtC37F,EAAWi5F,oBAAoB/4jB,KAC/B8/d,EAAWi5F,oBAAoB/4jB,GAAKu5d,GAAmB6yL,gBAEjB,IAAtCtsL,EAAWi5F,oBAAoB/4jB,KAC/B8/d,EAAWi5F,oBAAoB/4jB,GAAKu5d,GAAmBprU,MAMvEo7U,EAAkBwvF,oBAAsBj5F,EAAWi5F,oBAAsBj5F,EAAWi5F,oBAAsB9lkB,KAAK8zjB,oCAAoCjnF,EACvJ,CAUA,GATKyJ,GACsC,WAAnCzJ,EAAWlX,0BAAgEl3d,IAA5Boue,EAAWoM,gBAE1D3C,EAAoBt2e,KAAKmpd,UAAU4uC,UAAUlrB,EAAWoM,eACtC1D,mBAAmB4F,OAAStO,EAAW0I,mBAAmB4F,OAC5ElC,EAAe3C,EAAkB4C,UACjCxvB,EAAa4sB,EAAkBl+P,WAGA,eAAnCy0P,EAAWlX,sBACN31d,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BsB,4BAG5D,IADAtF,EAAoBt2e,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2B3B,eAAe9L,EAAWnjB,WAAYmjB,GAC5G9/d,EAAI,EAAGA,EAAIupe,EAAkB9ye,OAAQuJ,IAC1C,GAAI8/d,EAAWoM,eAAiB3C,EAAkBvpe,GAAGmse,UAAW,CAC5D4/K,GAAqB,GACrBxiL,EAAoBA,EAAkBvpe,IACpB20f,QAAU70B,EAAW60B,QACvC1hgB,KAAKs6e,2BAA2BsB,4BAA8BtF,EAC9Dt2e,KAAKs6e,2BAA2ByqC,4BAA8BzuC,EAAkB5sB,WAChF4sB,EAAkBwvF,oBAAsBj5F,EAAWi5F,oBACnDp8G,EAAa4sB,EAAkB5sB,WAC/BuvB,EAAepM,EAAWoM,aAC1B,KACJ,CAIZ,GAAI3C,EAAmB,CAEnB,IAAI6jG,EAAepjH,EAAYuf,GAE3B8jG,EAAmBrjH,EAAYuf,GAOnC,GANuC,eAAnCzJ,EAAWlX,sBACX8/C,EAAiB,cAEjB5oC,IAA2C,IAA7BA,EAAWmpE,gBACzB1/D,EAAkB0/D,cAAgBnpE,EAAWmpE,eAE7CnpE,EAAWm4C,SACX,IAAK,IAAIo0I,EAAM,EAAGA,EAAMvsL,EAAWm4C,SAASxhhB,OAAQ41pB,KACR,IAApCvsL,EAAWm4C,SAASo0I,GAAKj+K,SACrBs6B,GACAn/B,EAAkB0uC,SAAWn4C,EAAWm4C,SACxC1uC,EAAkB0uC,SAASo0I,GAAKj+K,OAAStO,EAAWm4C,SAASo0I,GAAKj+K,SAGlE7E,EAAkB12X,WAAWola,SAAWn4C,EAAWm4C,SACnD1uC,EAAkB12X,WAAWola,SAASo0I,GAAKj+K,OAAStO,EAAWm4C,SAASo0I,GAAKj+K,SAgC7F,GA3BItO,GAAkC,KAApBA,EAAW2nE,WAAmC/1iB,IAApBoue,EAAW2nE,KAC/C/+B,GACAn/B,EAAkBk+D,KAAO3nE,EAAW2nE,KAEpCx0iB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bsf,kBAAkBtxB,EAAkB4C,UAAW5C,EAAkBk+D,QAG7Hl+D,EAAkBykB,MAAQluB,EAAW2nE,KAErCx0iB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bsf,kBAAkBtxB,EAAkB4C,UAAW5C,EAAkBykB,QAI7HluB,GAAcA,EAAWmpE,gBAAmBnpE,EAAW9rd,MAA4B,aAApB8rd,EAAW9rd,MAA2D,aAAnC8rd,EAAWlX,sBAC7G31d,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bsf,kBAAkBtxB,EAAkB4C,UAAW,MAG/GrM,EAAW8rL,WAAa9rL,EAAW+rL,aAA0C,SAA3B/rL,EAAW4rL,aAC7Dz4pB,KAAK04pB,aAAa7rL,EAAW8rL,UAAW9rL,EAAW+rL,aAEnD/rL,EAAW2rL,cAA2C,QAA3B3rL,EAAW4rL,cACtCz4pB,KAAKu4pB,iBAAiBjiL,EAAmBzJ,EAAW2rL,aAAc3rL,EAAW4rL,aAC7Ez4pB,KAAKmpd,UAAUgsB,qBAAqB,GAAGq/D,KAAO3nE,EAAW2nE,MAEzD3nE,EAAWwsL,aAA0C,SAA3BxsL,EAAW4rL,aACrCz4pB,KAAKu4pB,iBAAiB1rL,EAAYA,EAAWwsL,YAAaxsL,EAAW4rL,aAEjD,KAApB5rL,EAAW2nE,MAA0C,WAA3B3nE,EAAW4rL,YAA0B,CAE/D,IAAIhY,EAAa/hpB,SAASkuD,eAAeigb,EAAWoM,cACpDj5e,KAAKs4pB,aAAa7X,EACtB,CACA,GAAI5zK,EAAWm4C,SACX,IAAK,IAAIs0I,EAAM,EAAGA,EAAMzsL,EAAWm4C,SAASxhhB,OAAQ81pB,IACV,KAAlCzsL,EAAWm4C,SAASs0I,GAAK9kH,MAA0C,WAA3B3nE,EAAW4rL,cAE/ChY,EAAa/hpB,SAASkuD,eAAeigb,EAAWm4C,SAASs0I,GAAKpgL,WAClEl5e,KAAKs4pB,aAAa7X,IAI9B,GAAwB,eAApB5zK,EAAW9rd,MAA4D,eAAnC8rd,EAAWlX,oBAAsC,CACrF,GAAI2gB,EAAkBf,oBAAsB1I,EAAW0I,oBAC/Ce,EAAkBf,mBAAmB4F,SAAWtO,EAAW0I,mBAAmB4F,OAAQ,CAEtF,IAAIzC,EAAkB14e,KAAKs6e,2BAA2B05I,yBAAyB,qBAAsBnnJ,EAAW0I,mBAAmB4F,OAAQ,MAE3In7e,KAAKs6e,2BAA2BzB,kBAAkBH,EAAiB14e,KAAKs6e,2BAA2ByqC,4BACvG,CAEAzuC,EAAkB1nd,UAAYi+c,EAAWj+c,SACzC5uB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2Bu/F,sBAAsB,KAAMhtG,EAAWj+c,SAElG0nd,EAAkBrod,QAAU4+c,EAAW5+c,OACvCjuB,KAAKmpd,UAAU+sB,iBAAiBoE,2BAA2BqkG,oBAAoB9xG,EAAW5+c,OAE9Fwnf,EAAiB,aACbqjJ,IACA94pB,KAAKs6e,2BAA2BsB,4BAA8B,KAC9D57e,KAAKs6e,2BAA2ByqC,4BAA8B,KAGtE,MACK,GAAIl4C,GAAiD,UAAnCA,EAAWyqE,qBAAsE,UAAnCzqE,EAAWlX,qBAAmCkX,EAAW4qE,oBAC1HhiC,EAAiB,QACbn/B,EAAkBt7c,OAAS6xc,EAAW4qE,sBACtCnhE,EAAkBt7c,KAAO6xc,EAAW4qE,oBACpCnhE,EAAkB3pd,QAAQtP,SAAS,GAAGg/gB,YAAcxvD,EAAW4qE,qBAE/D5qE,EAAWj+c,SAAW0nd,EAAkB1nd,UAAYi+c,EAAWj+c,SAC/D5uB,KAAKu5pB,yBAAyBjjL,EAAmBzJ,EAAWj+c,QAAS,gBAAiBurjB,EAAcC,GAExGp6kB,KAAKw5pB,0BAA0BljL,EAAmBzJ,QAGjD,GAAwB,gBAApBA,EAAW9rd,MAA8C,UAApB8rd,EAAW9rd,MAAuD,WAAnC8rd,EAAWlX,qBAAuE,UAAnCkX,EAAWlX,oBAC/HkX,EAAWj+c,SAAW0nd,EAAkB1nd,UAAYi+c,EAAWj+c,SAC/D5uB,KAAKu5pB,yBAAyBjjL,EAAmBzJ,EAAWj+c,QAAS,gBAAiBurjB,EAAcC,GAExGp6kB,KAAKw5pB,0BAA0BljL,EAAmBzJ,GAE9C4oC,EADoB,gBAApB5oC,EAAW9rd,MAA6D,WAAnC8rd,EAAWlX,oBAC/B,SAGA,aAIpB,GAAwB,QAApBkX,EAAW9rd,MAAsC,UAApB8rd,EAAW9rd,MAAwC,YAApB8rd,EAAW9rd,MAAyD,SAAnC8rd,EAAWlX,qBAAqE,WAAnCkX,EAAWlX,qBAAuE,WAAnCkX,EAAWlX,qBAAuE,YAAnCkX,EAAWlX,qBAAwE,aAAnCkX,EAAWlX,qBAAyE,QAAnCkX,EAAWlX,oBAA+B,CA+DxX,GA9DA31d,KAAKw5pB,0BAA0BljL,EAAmBzJ,GAC9CA,EAAWj+c,SAAW0nd,EAAkB1nd,UAAYi+c,EAAWj+c,SAC/D5uB,KAAKu5pB,yBAAyBjjL,EAAmBzJ,EAAWj+c,QAAS,gBAAiBurjB,EAAcC,GAEpGvtG,EAAW7W,WAAasgB,EAAkBtgB,YAAc6W,EAAW7W,YACnEokH,EAAiBpkH,UAAY6W,EAAW7W,UACpC6W,EAAWqsE,eAAiBrsE,EAAWqsE,cAAcljF,YACrD6W,EAAWqsE,cAAcljF,UAAY6W,EAAW7W,WAEpDh2d,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEtgB,UAAW6W,EAAW7W,YAC7Eh2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAM,GAAO,GAAO,GAExEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,aAAc,GAAI6jG,EAAcC,IAE1HvtG,EAAW5W,aAAeqgB,EAAkBrgB,cAAgB4W,EAAW5W,cACvEmkH,EAAiBnkH,YAAc4W,EAAW5W,YAC1Cj2d,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAErgB,YAAa4W,EAAW5W,cAC/Ej2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAM,GAAO,GAExEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,eAAgB,GAAI6jG,EAAcC,IAE5HvtG,EAAW3W,WAAaogB,EAAkBpgB,YAAc2W,EAAW3W,YACnEkkH,EAAiBlkH,UAAY2W,EAAW3W,UACxCl2d,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEpgB,UAAW2W,EAAW3W,YAC7El2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAM,GAExEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,kBAAmB,GAAI6jG,EAAcC,IAE/H9jG,EAAkBb,SAAW5I,EAAW4I,SACxC2kG,EAAiB3kG,OAAS5I,EAAW4I,OACrCz1e,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEb,OAAQ5I,EAAW4I,SAC1Ez1e,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAM,GAAO,IAExEA,EAAkBmsB,eAAiB51B,EAAW41B,eAC9C23E,EAAiB33E,aAAe51B,EAAW41B,aAC3CzigB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEmsB,aAAc51B,EAAW41B,gBAEhFnsB,EAAkBjtW,UAAYwjW,EAAWxjW,UACzC+wc,EAAiB/wc,QAAUwjW,EAAWxjW,QACtCrpI,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEjtW,QAASwjW,EAAWxjW,UAC3ErpI,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAM,GAAO,GAExEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,eAAgB,GAAI6jG,EAAcC,IAE5Hp6kB,KAAKmpd,UAAUm6C,kBAAoBhtB,EAAkBrgE,YAAc42D,EAAW52D,YAC9EmkK,EAAiBnkK,UAAY42D,EAAW52D,UACxCj2a,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAErgE,UAAW42D,EAAW52D,aAE7Ej2a,KAAKmpd,UAAUm6C,kBAAoBz2B,EAAWqsE,eAAiBrsE,EAAWqsE,cAAcljF,WACpFsgB,EAAkB0+C,iBAAmBnoD,EAAWqsE,cAAcljF,YAC9DokH,EAAiBplD,eAAiBnoD,EAAWqsE,cAAcljF,UAC3Dh2d,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE0+C,eAAgBnoD,EAAWqsE,cAAcljF,aAIjE,SAAnC6W,EAAWlX,qBAAqE,aAAnCkX,EAAWlX,qBAAyE,YAAnCkX,EAAWlX,qBACrG/zd,KAAKC,UAAUy0e,EAAkB8iB,gBAAkBx3f,KAAKC,UAAUgre,EAAWusB,gBAC7E9iB,EAAkB8iB,aAAevsB,EAAWusB,aAC5Cp5f,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE8iB,aAAcvsB,EAAWusB,gBAI7D,SAAvBvsB,EAAWxxH,SAA6C,UAAvBwxH,EAAWxxH,SAA8C,aAAvBwxH,EAAWxxH,SAAiD,cAAvBwxH,EAAWxxH,QAAyB,CAC5I,IAAIo+S,GAAiC,EACjCC,GAAiC,EACjC1D,GAA2B,EAC/B77E,EAAajyE,cAAgB5xB,EAAkB4jB,sBAC/CigF,EAAalyE,YAAc3xB,EAAkB6jB,uBAC7CigF,EAAiBlyE,cAAgBr7B,EAAWk5F,mBAC5CqU,EAAiBnyE,YAAcp7B,EAAWm5F,iBAC1CoU,EAAiBrkH,gBAAkB8W,EAAW9W,gBAC1CugB,EAAkB6jB,yBAA2BttB,EAAWm5F,mBACxD0zF,GAAiC,GAEjCpjL,EAAkB4jB,wBAA0BrtB,EAAWk5F,qBACvD0zF,GAAiC,GAEjCnjL,EAAkBvgB,kBAAoB8W,EAAW9W,kBACjDigM,GAA2B,GAG/Bh2pB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE4jB,sBAAuBrtB,EAAWk5F,mBAAoB5rE,uBAAwBttB,EAAWm5F,iBAAkBjwG,gBAAiB8W,EAAW9W,kBAE9L/1d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,EAAOmjL,EAAgCC,EAAgC1D,GAEhJh2pB,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmB,yBAA0B,GAAI6jG,EAAcC,EAC1I,CAEwB,UAApBvtG,EAAW9rd,MAAuD,SAAnC8rd,EAAWlX,qBAAqE,WAAnCkX,EAAWlX,qBAAuE,WAAnCkX,EAAWlX,qBAAuE,YAAnCkX,EAAWlX,sBACrL8/C,EAAiB,SAEG,QAApB5oC,EAAW9rd,MAAqD,QAAnC8rd,EAAWlX,sBACxC8/C,EAAiB,OAGG,YAApB5oC,EAAW9rd,MAA6C,yBAAvB8rd,EAAWxjW,SAA6D,0BAAvBwjW,EAAWxjW,SAA8D,uBAAvBwjW,EAAWxjW,SAA2D,qBAAvBwjW,EAAWxjW,SAAyD,uBAAvBwjW,EAAWxjW,UAC3OosY,EAAiB,iBAEjB5oC,EAAWqsE,eAAiBl5iB,KAAKmpd,UAAUm6C,mBAC3CtjgB,KAAKmmgB,yBAAyB7vB,GAC9Bt2e,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAEjD2+C,aAAcpoD,EAAWqsE,cAActqhB,QAASqnZ,UAAW42D,EAAWqsE,cAAcjjI,UAAW5lZ,SAAUw8c,EAAWqsE,cAAc7ohB,SAAUwrC,WAAYgxa,EAAWqsE,cAAcr9e,WACjL0nc,aAAcjtB,EAAkBykB,MAAOi6B,eAAgBnoD,EAAWqsE,cAAcljF,aAGpFh2d,KAAKmpd,UAAUm6C,kBAAoBz2B,EAAW2sE,WAAa3sE,EAAW2sE,UAAUnnV,OAC5EryN,KAAKmpd,UAAU+sB,iBAAiB6F,wBAAwBwhJ,cAAgB1wJ,EAAW2sE,UAAUnnV,QAC7FryN,KAAKmpd,UAAU+sB,iBAAiB6F,wBAAwBwhJ,YAAc1wJ,EAAW2sE,UAAUnnV,MAE3FikR,EAAkBykB,MAAQ/6f,KAAKmpd,UAAU+sB,iBAAiB6F,wBAAwB8rB,gBAAgBvxB,EAAkB8iB,aAAc9iB,EAAkB5+c,GAAI4+c,EAAkBl+P,WAC1Kk+P,EAAkBitB,aAAejtB,EAAkBykB,MAC/CluB,EAAWqsE,eAAiBrsE,EAAWqsE,cAAc31C,eACrD12B,EAAWqsE,cAAc31C,aAAejtB,EAAkBykB,OAE9D/6f,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEitB,aAAcjtB,EAAkBitB,eAEvFvjgB,KAAKmpd,UAAU+sB,iBAAiBoS,4BAA4Bsf,kBAAkBtxB,EAAkB4C,UAAW5C,EAAkBykB,OAGzI,MACK,GAAwB,aAApBluB,EAAW9rd,MAA0D,aAAnC8rd,EAAWlX,oBAAoC,CAEtF,GADA8/C,EAAiB,WACbz1gB,KAAKmpd,UAAU+hF,iBAAiBmD,eAAiB/3D,EAAkBlI,cAAgBvB,EAAWxnc,QAAS,CAEvG,IAGI19B,EAFAwmC,EADSnuC,KAAKopd,cAAc/rS,WAAW,qBAAuBi5T,EAAkBl+P,WAC/DzxE,WAAW,MAC5Bt2I,EAAWw8c,EAAWx8c,SAEtBwrC,EAAagxa,EAAWhxa,WACxBq1Z,EAAalxd,KAAKopd,cAAc+B,gBAEXxjd,EAAzBkle,EAAWlle,KAAK+1e,OAAgB,QAAertd,EAAf,MAAuCwrC,EAAoBxrC,QAAwBwrC,EACnH1tB,EAAQxmC,KAAOA,EACf,IACIqlpB,EAAkB,GAElBn2J,EAAY,GACZo2J,EAAepgL,EAAWxnc,QAAUwnc,EAAWxnc,QAAUwnc,EAAWuB,YACxE,GAAI6+K,EAAa1lpB,QAAQ,OAAS,EAAG,CACjCsvf,EAAYo2J,EAAazlpB,MAAM,MAC/B,IAAK,IAAI4yG,EAAI,EAAGA,EAAIy8Y,EAAUrzf,OAAQ42G,IAAK,CAEvC,IAAI8yiB,EAAe/+mB,EAAQ+8a,YAAY2rC,EAAUz8Y,IAE7C+yiB,EAAsBh/mB,EAAQ+8a,YAAY8hM,GAC1CE,EAAavyoB,MAAQwyoB,EAAoBxyoB,QACzCqyoB,EAAkBn2J,EAAUz8Y,GAEpC,CACJ,MAEI4yiB,EAAkBC,EAGtB,IAAIz2F,EAAYrohB,EAAQ+8a,YAAY8hM,GACpCngL,EAAW7mc,OAAOrrB,MAAQP,KAAKkvG,KAAKktc,EAAU77iB,MAAQ,IACtD,IACIwU,EADUnvB,KAAKopd,cAAc/rS,WAAW,YAAewvT,EAAoB,WACxDtib,YAAesib,EAAW7mc,OAAOpuB,KAAOs5c,EAC3D2b,EAAW7mc,OAAOrrB,MAAQwU,IAC1B09c,EAAW7mc,OAAOrrB,MAAQwU,EAAW+hc,GAEzC,IAAIrwc,EAASgsd,EAAW7mc,OAAOnlB,OAC/Bgsd,EAAW7mc,OAAOnlB,OAASA,GAAUy1d,EAAkBtwc,OAAOnlB,OAASA,EAASy1d,EAAkBtwc,OAAOnlB,MAC7G,CACA7gB,KAAKw5pB,0BAA0BljL,EAAmBzJ,GAC9CA,EAAWj+c,SAAW0nd,EAAkB1nd,UAAYi+c,EAAWj+c,SAC/D5uB,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEzJ,EAAW7W,WAAasgB,EAAkBtgB,YAAc6W,EAAW7W,WACnEh2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAM,GAAO,GAAO,GAExEzJ,EAAW5W,aAAeqgB,EAAkBrgB,cAAgB4W,EAAW5W,aACvEj2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAM,GAAO,GAExEzJ,EAAW3W,WAAaogB,EAAkBpgB,YAAc2W,EAAW3W,WACnEl2d,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAM,GAE5EzJ,EAAWxnc,QAAUwnc,EAAWxnc,QAAUwnc,EAAWxnc,QAAUwnc,EAAWuB,YACtEvB,EAAWxnc,SAAWixc,EAAkBlI,cAAgBvB,EAAWxnc,SACnErlC,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,GAAO,EAAMA,EAAkBlI,YAAavB,EAAWxnc,SAEzJrlC,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAEjD1nd,QAASi+c,EAAWj+c,QAASqnZ,UAAW42D,EAAW52D,UAAW5lZ,SAAUw8c,EAAWx8c,SAAUwrC,WAAYgxa,EAAWhxa,WAEpHuya,YAAavB,EAAWxnc,QAAS2wb,UAAW6W,EAAW7W,UAAWvnc,UAAWo+c,EAAWp+c,UAAWwnc,YAAa4W,EAAW5W,YAAaC,UAAW2W,EAAW3W,UAAWvud,KAAMkle,EAAWjwa,UAAY58D,KAAK25pB,qBAAqB9sL,EAAWjwa,WAAa58D,KAAK25pB,qBAAqB9sL,EAAWlle,MAC7RyZ,WAAYyrd,EAAWzrd,aAEvByrd,EAAWxnc,SAAWixc,GACtBt2e,KAAK45pB,yBAAyBtjL,EAAkB4C,UAAWrM,EAAWxnc,SAG1E,IAAIy8mB,EAAgBpjpB,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAEvD,IAAI6+mB,GAAc,CAC/B9soB,MAAOoje,EAAWxnc,UAEXknK,SAASu1c,EACxB,CACAxrK,EAAkBmsB,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBACnF97I,EAAkB6/D,aAAetpE,EAAWspE,aAC5C7/D,EAAkB6/D,WAAatpE,EAAWspE,YAE9C7/D,EAAkBorB,QAAU70B,EAAW60B,QACf,eAApB70B,EAAW9rd,OACX/gB,KAAKmpd,UAAUqtB,gBACfx2e,KAAK65pB,iBAAiB5gL,EAAcvvB,EAAYmjB,EAAY4oC,GAEpE,CACJ,EAEAi5I,EAAWhtpB,UAAU63pB,yBAA2B,SAAUjjL,EAAmB1nd,EAASgioB,EAAcz2E,EAAcC,GAC9Gp6kB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAE1nd,QAASA,IAChE5uB,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,GAEzEt2e,KAAKmpd,UAAU0jB,WAAW4K,UAAUnB,EAAkBl+P,UAAW,KAAMk+P,EAAmBs6K,EAAc,GAAIz2E,EAAcC,EAC9H,EAEAs0E,EAAWhtpB,UAAU83pB,0BAA4B,SAAUljL,EAAmBzJ,GAE1E,IAAI7mc,EAAShmC,KAAKopd,cAAcytF,cAAcvgE,EAAkB3pd,QAAQqZ,QAEpEijhB,EAAcjpjB,KAAKopd,cAAcytF,cAAchqE,EAAW7mc,QAC9D,GAAIA,GAAUijhB,IAENrnjB,KAAKC,UAAUmkC,KAAYpkC,KAAKC,UAAUonjB,IAAiB7uiB,KAAKQ,IAAIorB,EAAOk7L,EAAI+nV,EAAY/nV,GAAK,GAAO9mN,KAAKQ,IAAIorB,EAAOi7L,EAAIgoV,EAAYhoV,GAAK,GAAO7mN,KAAKQ,IAAIorB,EAAOykb,MAAQw+F,EAAYx+F,OAAS,GAAOrwc,KAAKQ,IAAIorB,EAAO0kb,OAASu+F,EAAYv+F,QAAU,GAAI,CAE1P,IAAIg4G,EAAmB,CAAExojB,EAAG+uiB,EAAYhoV,EAAKgoV,EAAYx+F,MAAQ,EAAIzxa,EAAGiwgB,EAAY/nV,EAAK+nV,EAAYv+F,OAAS,EAAI/vc,MAAOsuiB,EAAYx+F,MAAO5pc,OAAQooiB,EAAYv+F,QAChK1qd,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEtwc,OAAQ08hB,IAC/D1ikB,KAAKmpd,UAAUppY,eAAe//E,KAAKopd,cAAc+yC,eAAeC,cAChEp8f,KAAKq6kB,4BAA4B/jG,GAAmB,GAAO,GAAO,GAAO,EAC7E,CAER,EAMAo4K,EAAWhtpB,UAAUykgB,yBAA2B,SAAUt5B,GAClDA,EAAWqsE,gBACPrsE,EAAWqsE,cAAcljF,YACzB6W,EAAWmoD,eAAiBnoD,EAAWqsE,cAAcljF,WAErD6W,EAAWqsE,cAAcjjI,YACzB42D,EAAW52D,UAAY42D,EAAWqsE,cAAcjjI,WAEhD42D,EAAWqsE,cAAc7ohB,WACzBw8c,EAAWx8c,SAAWw8c,EAAWqsE,cAAc7ohB,UAE/Cw8c,EAAWqsE,cAAcr9e,aACzBgxa,EAAWhxa,WAAagxa,EAAWqsE,cAAcr9e,YAEjDgxa,EAAWqsE,cAActqhB,UACzBi+c,EAAWooD,aAAepoD,EAAWqsE,cAActqhB,SAEnDi+c,EAAWqsE,cAAc31C,eACzB12B,EAAW02B,aAAe12B,EAAWqsE,cAAc31C,cAG/D,EACAmrJ,EAAWhtpB,UAAUk4pB,yBAA2B,SAAU3gL,EAAc6gL,GAEpE,IAAIv7I,EAAc7/gB,SAASkuD,eAAeqsb,GACtCslC,GAAeA,EAAYz5gB,aACvBy5gB,EAAYz5gB,WAAW,GAAG06L,cAC1B++U,EAAYz5gB,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQqwpB,EAE9Cv7I,EAAYz5gB,WAAW,GAAGA,YAAcy5gB,EAAYz5gB,WAAW,GAAGA,WAAW,GAAG06L,gBACrF++U,EAAYz5gB,WAAW,GAAGA,WAAW,GAAG06L,cAAc,GAAG/1L,MAAQqwpB,GAG7E,EAOApL,EAAWhtpB,UAAU02pB,sBAAwB,SAAUvrL,EAAYyJ,GAC3Dt2e,KAAKmpd,UAAUm6C,kBAAoBz2B,GAAcyJ,IACjDA,EAAkB4iE,cAAgB,CAC9BjjI,UAAW42D,EAAW52D,UAAW5lZ,SAAUw8c,EAAWx8c,SAAUwrC,WAAYgxa,EAAWhxa,WACvFjtC,QAASi+c,EAAWooD,aAAc1xB,aAAc12B,EAAW02B,aAAcvtC,UAAW6W,EAAWmoD,gBAG3G,EACA05H,EAAWhtpB,UAAUq4pB,0BAA4B,WAC7C,GAAI/5pB,KAAKmpd,UAAUwqD,kBAAoB3zgB,KAAKmpd,UAAUu+C,wBAAyB,CAE3E,IAAIg5H,EAAc,KAAO1goB,KAAKmpd,UAAUm0K,oBAAoB31D,eAAiB,MAAQ3nkB,KAAKmpd,UAAUm0K,oBAAoBz1D,WAAa,IAAM7nkB,KAAKmpd,UAAUm0K,oBAAoB11D,YAC9K5nkB,KAAK+7e,wBAAwB8jJ,oBAAoBa,EAAa1goB,KAAKmpd,UAAUm0K,oBAAoB11D,YAAa5nkB,KAAKmpd,UAAUm0K,oBAAoB31D,eAAgB3nkB,KAAKmpd,UAAUm0K,oBAAoBjra,MACxM,CACJ,EAEAq8b,EAAWhtpB,UAAUm4pB,iBAAmB,SAAU5gL,EAAcvvB,EAAYmjB,EAAY4oC,GAEpF,IAAItgC,EAEAJ,EAAcz1e,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,gBAAkBsjJ,GAIlG,GAHIz1gB,KAAKopd,cAAc4rB,kBACnBD,EAAc/0e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,gBAAkBsjJ,IAErG1gC,EAAa,CACb,IAAIgD,EAAcn2e,KAAK+yH,MAAMogX,GACzBjse,EAAQ9I,KAAKi4e,kBAAkBF,EAAaruB,GAChD,GAAIquB,EAAYjve,IAEiB,QAD7Bqse,EAAuB4C,EAAYjve,GAAOose,aACP,CAC/B,IAAK,IAAInoe,EAAI,EAAGA,EAAIooe,EAAqB3xe,OAAQuJ,IAC7C,GAAIooe,EAAqBpoe,GAAGmse,YAAcD,EAAc,CAEpD,IAAI+gL,EAAWh6pB,KAAKi6pB,2BAA2B9kL,EAAqBpoe,GAAI8/d,EAAY4oC,GACpFtgC,EAAqBpoe,GAAKitpB,CAC9B,CAECh6pB,KAAKopd,cAAc4rB,iBACpB11e,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,gBAAkBsjJ,GAEnF19B,EAAYjve,KACZive,EAAYjve,GAAOose,YAAcC,GAErC,IAAIgD,EAAwBv2e,KAAKC,UAAUk2e,GACvC/3e,KAAKopd,cAAc4rB,gBAEnBh1e,KAAKopd,cAAc6rB,kBAAkBj1e,KAAKopd,cAAcj3F,WAAa,gBAAkBsjJ,GAAkBt9B,EAIzG74e,OAAO4qH,eAAeC,QAAQnqH,KAAKopd,cAAcj3F,WAAa,gBAAkBsjJ,EAAgBt9B,EAExG,CAER,CACJ,EAEAu2K,EAAWhtpB,UAAUu4pB,2BAA6B,SAAUzkH,EAAe3oE,EAAY4oC,GAInF,GAHI5oC,IAA2C,IAA7BA,EAAWmpE,gBACzBR,EAAcQ,cAAgBnpE,EAAWmpE,eAEzCnpE,EAAWm4C,SACX,IAAK,IAAI5qa,EAAI,EAAGA,EAAIyyX,EAAWm4C,SAASxhhB,OAAQ42G,KACN,IAAlCyyX,EAAWm4C,SAAS5qa,GAAG+gY,SACvBq6D,EAAcxwB,SAAS5qa,GAAG+gY,OAAStO,EAAWm4C,SAAS5qa,GAAG+gY,QAOtE,GAHItO,GAAkC,KAApBA,EAAW2nE,WAAmC/1iB,IAApBoue,EAAW2nE,OACnDgB,EAAchB,KAAO3nE,EAAW2nE,MAEhC3nE,EAAW8rL,WAAa9rL,EAAW+rL,aAA0C,SAA3B/rL,EAAW4rL,YAAwB,CAErF,IAAIhY,EAAa/hpB,SAASkuD,eAAeigb,EAAW8rL,WAIpD,IAHI9rL,EAAWoM,eAAiBpM,EAAW8rL,YACvCnjH,EAAchB,KAAOisG,EAAW37oB,WAAW,GAAG06L,cAAc,GAAG/1L,OAE1D2wG,EAAI,EAAGA,EAAIyyX,EAAWm4C,SAASxhhB,OAAQ42G,IACxCyyX,EAAWm4C,SAAS5qa,GAAG8+X,YAAcrM,EAAW8rL,YAChDnjH,EAAcxwB,SAAS5qa,GAAGo6b,KAAOisG,EAAW37oB,WAAW,GAAG06L,cAAc,GAAG/1L,MAGvF,CACA,GAAuB,eAAnBgsgB,EACA+/B,EAAc5mhB,QAAUi+c,EAAWj+c,QACnC4mhB,EAAcvnhB,MAAQ4+c,EAAW5+c,MACjCunhB,EAAcswB,oBAAsBj5F,EAAWi5F,yBAE9C,GAAuB,WAAnBrwD,GAAkD,UAAnBA,EAChC5oC,EAAW7mc,SACXwvgB,EAAcxvgB,OAAS6mc,EAAW7mc,QAEtCwvgB,EAAc5mhB,QAAUi+c,EAAWj+c,QACnC4mhB,EAAcjgE,mBAAqB1I,EAAW0I,mBAC9CigE,EAAcswB,oBAAsBj5F,EAAWi5F,oBAC3Cj5F,EAAW4qE,sBACXjC,EAAciC,oBAAsB5qE,EAAW4qE,0BAGlD,GAAuB,QAAnBhiC,EACD5oC,EAAW7mc,SACXwvgB,EAAcxvgB,OAAS6mc,EAAW7mc,QAEtCwvgB,EAAc5mhB,QAAUi+c,EAAWj+c,QACnC4mhB,EAAcv/E,YAAc4W,EAAW5W,YACvCu/E,EAAct/E,UAAY2W,EAAW3W,UACrCs/E,EAAcjgE,mBAAqB1I,EAAW0I,mBAC9CigE,EAAcswB,oBAAsBj5F,EAAWi5F,yBAE9C,GAAuB,UAAnBrwD,GAAiD,kBAAnBA,GA2CnC,GA1C2B,SAAvB5oC,EAAWxxH,SAA6C,UAAvBwxH,EAAWxxH,SAA8C,aAAvBwxH,EAAWxxH,SACvD,cAAvBwxH,EAAWxxH,SACPwxH,EAAW7mc,SACXwvgB,EAAcxvgB,OAAS6mc,EAAW7mc,QAElC6mc,EAAWusB,eACXo8C,EAAcp8C,aAAevsB,EAAWusB,cAE5Co8C,EAAc5mhB,QAAUi+c,EAAWj+c,QACnC4mhB,EAAcx/E,UAAY6W,EAAW7W,UACrCw/E,EAAcv/E,YAAc4W,EAAW5W,YACvCu/E,EAAct/E,UAAY2W,EAAW3W,UACrCs/E,EAAcz/E,gBAAkB8W,EAAW9W,gBAC3Cy/E,EAActtC,cAAgBlogB,KAAK06nB,0BAA0B7tJ,EAAWk5F,oBACxEvwB,EAAcvtC,YAAcjogB,KAAK06nB,0BAA0B7tJ,EAAWm5F,kBACtExwB,EAAcjgE,mBAAqB1I,EAAW0I,mBAC9CigE,EAAcswB,oBAAsBj5F,EAAWi5F,sBAG3Cj5F,EAAW7mc,SACXwvgB,EAAcxvgB,OAAS6mc,EAAW7mc,QAElC6mc,EAAWusB,eACXo8C,EAAcp8C,aAAevsB,EAAWusB,cAE5Co8C,EAAc5mhB,QAAUi+c,EAAWj+c,QACnC4mhB,EAAcx/E,UAAY6W,EAAW7W,UACrCw/E,EAAcv/E,YAAc4W,EAAW5W,YACvCu/E,EAAct/E,UAAY2W,EAAW3W,UACrCs/E,EAAcjgE,mBAAqB1I,EAAW0I,mBAC9CigE,EAAcswB,oBAAsBj5F,EAAWi5F,oBAC3Cj5F,EAAW2sE,WACPhE,EAAct8D,YAAcrM,EAAWoM,cACnCu8D,EAAcgE,UAAUnnV,QAAUw6Q,EAAW2sE,UAAUnnV,QACvDmjV,EAAcgE,UAAUnnV,MAAQw6Q,EAAW2sE,UAAUnnV,MACrDryN,KAAKmpd,UAAU+sB,iBAAiB6F,wBAAwBwhJ,YAAc1wJ,EAAW2sE,UAAUnnV,MAE3FmjV,EAAchB,KAAOx0iB,KAAKmpd,UAAU+sB,iBAAiB6F,wBAAwB8rB,gBAAgB2tC,EAAcp8C,gBAKvHp5f,KAAKmpd,UAAUm6C,kBAAoBz2B,EAAWqsE,cAAe,CAC7D,IAAI7thB,EAAOwhd,EAAWqsE,cAAc31C,aACpCiyC,EAAchB,KAAOnphB,EACrBmqhB,EAAcnlhB,SAAWw8c,EAAWqsE,cAAc7ohB,SAClDmlhB,EAAcxgB,eAAiBnoD,EAAWqsE,cAAcljF,UACpDw/E,EAAcjyC,eACdiyC,EAAcjyC,aAAel4e,GAE7BmqhB,EAAc0D,gBACd1D,EAAc0D,cAAgBrsE,EAAWqsE,eAE7Cl5iB,KAAK45pB,yBAAyBpkH,EAAct8D,UAAW7td,EAC3D,MAEwB,aAAnBoqf,IACD5oC,EAAW7mc,SACXwvgB,EAAcxvgB,OAAS6mc,EAAW7mc,QAEtCwvgB,EAAc5mhB,QAAUi+c,EAAWj+c,QACnC4mhB,EAAcv/E,YAAc4W,EAAW5W,YACvCu/E,EAAct/E,UAAY2W,EAAW3W,UACjC2W,EAAWxnc,UACXmwgB,EAAcpnE,YAAcvB,EAAWxnc,SAE3CmwgB,EAAc35e,WAAagxa,EAAWhxa,WACtC25e,EAAcnlhB,SAAWw8c,EAAWx8c,SACpCmlhB,EAAcv/H,UAAY42D,EAAW52D,UACrCu/H,EAAcx/E,UAAY6W,EAAW7W,UACrCw/E,EAAc7tiB,KAAOkle,EAAWlle,KAAOkle,EAAWlle,KAAOkle,EAAWjwa,UACpE44e,EAAc/mhB,UAAYo+c,EAAWp+c,UACrC+mhB,EAAcjgE,mBAAqB1I,EAAW0I,mBAC9CigE,EAAcswB,oBAAsBj5F,EAAWi5F,oBAC/CtwB,EAAcp0hB,WAAayrd,EAAWzrd,YAQ1C,OANAo0hB,EAAcW,WAAatpE,EAAWspE,WACtCX,EAAc/yC,aAAezigB,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B8pI,iBACnF58E,EAAc9zC,QAAU70B,EAAW60B,QAC/B70B,EAAW0I,sBAAuB,QAAkB1I,EAAW0I,mBAAmB4F,UAClFq6D,EAAciD,SAAW5rE,EAAW0I,mBAAmB4F,QAEpDq6D,CACX,EAQAk5G,EAAWhtpB,UAAUqunB,uBAAyB,SAAUt6G,EAAgB4qI,GACpE,IAAI7qK,EAmFJ,MAlFuB,WAAnBigC,EAEAjgC,EAAkE,UAA9Cx1e,KAAKmpd,UAAU6oG,oBAAoBv8E,OAAsBz1e,KAAKmpd,UAAU6oG,oBAAoBv8E,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEvL,UAAnBggC,EAELjgC,EAA4D,UAAxCx1e,KAAKmpd,UAAUq8C,cAAc/vB,OAAsBz1e,KAAKmpd,UAAUq8C,cAAc/vB,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAE3K,UAAnBggC,EACqB,SAAtB4qI,EAEA7qK,EAA2D,UAAvCx1e,KAAKmpd,UAAU+jF,aAAaz3D,OAAsBz1e,KAAKmpd,UAAU+jF,aAAaz3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEtK,uBAAtB4qK,GAAoE,UAAtBA,EAEnD7qK,EAA4D,UAAxCx1e,KAAKmpd,UAAUgkF,cAAc13D,OAAsBz1e,KAAKmpd,UAAUgkF,cAAc13D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAExK,WAAtB4qK,GAAwD,YAAtBA,GAAyD,SAAtBA,EAE1E7qK,EAA6D,UAAzCx1e,KAAKmpd,UAAUkkF,eAAe53D,OAAsBz1e,KAAKmpd,UAAUkkF,eAAe53D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAE1K,cAAtB4qK,GAA2D,WAAtBA,EAE1C7qK,EAAgE,UAA5Cx1e,KAAKmpd,UAAUikF,kBAAkB33D,OAAsBz1e,KAAKmpd,UAAUikF,kBAAkB33D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEhL,YAAtB4qK,IAEL7qK,EAA8D,UAA1Cx1e,KAAKmpd,UAAUmkF,gBAAgB73D,OAAsBz1e,KAAKmpd,UAAUmkF,gBAAgB73D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,SAGnL,YAAnBggC,EACqB,aAAtB4qI,GAA0D,yBAAtBA,EAEpC7qK,EAA+D,UAA3Cx1e,KAAKmpd,UAAU0jF,iBAAiBp3D,OAAsBz1e,KAAKmpd,UAAU0jF,iBAAiBp3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAE9K,cAAtB4qK,GAA2D,0BAAtBA,EAE1C7qK,EAAgE,UAA5Cx1e,KAAKmpd,UAAU2jF,kBAAkBr3D,OAAsBz1e,KAAKmpd,UAAU2jF,kBAAkBr3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEhL,WAAtB4qK,GAAwD,uBAAtBA,EAEvC7qK,EAA6D,UAAzCx1e,KAAKmpd,UAAU6jF,eAAev3D,OAAsBz1e,KAAKmpd,UAAU6jF,eAAev3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAE1K,SAAtB4qK,GAAsD,qBAAtBA,EAErC7qK,EAA2D,UAAvCx1e,KAAKmpd,UAAU4jF,aAAat3D,OAAsBz1e,KAAKmpd,UAAU4jF,aAAat3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEtK,WAAtB4qK,GAAwD,uBAAtBA,IAEvC7qK,EAA6D,UAAzCx1e,KAAKmpd,UAAU8jF,eAAex3D,OAAsBz1e,KAAKmpd,UAAU8jF,eAAex3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,SAGjL,eAAnBggC,EAGDjgC,EAFsB,cAAtB6qK,EAEgE,UAA5CrgpB,KAAKmpd,UAAUylK,kBAAkBn5I,OAAsBz1e,KAAKmpd,UAAUylK,kBAAkBn5I,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEhL,cAAtB4qK,EAE2D,UAA5CrgpB,KAAKmpd,UAAU0lK,kBAAkBp5I,OAAsBz1e,KAAKmpd,UAAU0lK,kBAAkBp5I,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEhL,kBAAtB4qK,EAE+D,UAAhDrgpB,KAAKmpd,UAAU2lK,sBAAsBr5I,OAAsBz1e,KAAKmpd,UAAU2lK,sBAAsBr5I,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAIhMz1e,KAAKmpd,UAAUosB,mBAAmBE,OAGjC,aAAnBggC,EAELjgC,EAA+D,UAA3Cx1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAAsBz1e,KAAKmpd,UAAU+hF,iBAAiBz1D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,QAEjL,QAAnBggC,IAELjgC,EAAoE,UAAhDx1e,KAAKmpd,UAAUyjF,sBAAsBn3D,OAAsBz1e,KAAKmpd,UAAUyjF,sBAAsBn3D,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAASz1e,KAAKmpd,UAAUosB,mBAAmBE,OAAS,SAElND,IAEDA,EAAmBx1e,KAAKmpd,UAAUosB,mBAAmBE,QAElDD,CACX,EAMAk5K,EAAWhtpB,UAAUy0e,WAAa,SAAUgjI,GAExC,IAAIC,EAAU,CACV,UAAa,UAAW,aAAgB,UAAW,KAAQ,UAAW,WAAc,UAAW,MAAS,UACxG,MAAS,UAAW,OAAU,UAAW,MAAS,UAAW,eAAkB,UAAW,KAAQ,UAClG,WAAc,UAAW,MAAS,UAAW,UAAa,UAAW,OAAU,UAAW,YAAe,UACzG,UAAa,UAAW,WAAc,UAAW,UAAa,UAAW,MAAS,UAClF,eAAkB,UAAW,SAAY,UAAW,QAAW,UAC/D,KAAQ,UAAW,SAAY,UAAW,SAAY,UAAW,cAAiB,UAAW,SAAY,UACzG,QAAW,UAAW,WAAc,UAAW,UAAa,UAAW,UAAa,UACpF,YAAe,UAAW,eAAkB,UAAW,WAAc,UAAW,WAAc,UAC9F,aAAgB,UAAW,cAAiB,UAAW,cAAiB,UAAW,cAAiB,UACpG,WAAc,UAAW,SAAY,UAAW,YAAe,UAAW,QAAW,UACrF,WAAc,UAAW,UAAa,UAAW,YAAe,UAChE,YAAe,UAAW,QAAW,UAAW,UAAa,UAAW,WAAc,UACtF,KAAQ,UAAW,UAAa,UAAW,KAAQ,UAAW,MAAS,UACvE,YAAe,UAAW,SAAY,UAAW,QAAW,UAAW,aAAc,UACrF,aAAgB,UAAW,aAAgB,UAAW,OAAU,UAAW,MAAS,UACpF,KAAQ,UAAW,QAAW,UAAW,MAAS,UAAW,MAAS,UACtE,SAAY,UAAW,cAAiB,UAAW,UAAa,UAAW,aAAgB,UAC3F,UAAa,UAAW,WAAc,UAAW,UAAa,UAC9D,qBAAwB,UAAW,UAAa,UAAW,WAAc,UACzE,UAAa,UAAW,YAAe,UAAW,cAAiB,UACnE,aAAgB,UAAW,eAAkB,UAAW,eAAkB,UAC1E,YAAe,UAAW,KAAQ,UAAW,UAAa,UAAW,MAAS,UAC9E,QAAW,UAAW,OAAU,UAAW,iBAAoB,UAAW,WAAc,UACxF,eAAkB,UAAW,gBAAmB,UAAW,kBAAqB,UAChF,gBAAmB,UAAW,gBAAmB,UAAW,aAAgB,UAC5E,UAAa,UAAW,UAAa,UAAW,SAAY,UAAW,YAAe,UACtF,cAAiB,UAAW,IAAO,UAAW,UAAa,UAAW,UAAa,UACnF,UAAa,UAAW,OAAU,UAAW,UAAa,UAAW,OAAU,UAC/E,cAAiB,UAAW,UAAa,UAAW,cAAiB,UACrE,cAAiB,UAAW,WAAc,UAAW,UAAa,UAAW,KAAQ,UACrF,MAAS,UAAW,MAAS,UAAW,WAAc,UAAW,KAAQ,UAAW,KAAQ,UAC5F,UAAa,UAAW,OAAU,UAAW,WAAc,UAAW,OAAU,UAChF,YAAe,UAAW,OAAU,UAAW,WAAc,UAAW,SAAY,UACpF,SAAY,UAAW,OAAU,UAAW,OAAU,UAAW,QAAW,UAC5E,UAAa,UAAW,UAAa,UAAW,KAAQ,UAAW,YAAe,UAClF,IAAO,UAAW,KAAQ,UAAW,QAAW,UAAW,OAAU,UAAW,UAAa,WAEjG,YAA6C,IAAlCA,EAAQD,EAAOjwmB,eACfkwmB,EAAQD,EAAOjwmB,eAEnB,EACX,EAEAwlpB,EAAWhtpB,UAAUm2pB,wBAA0B,SAAUlwpB,GAkBrD,OAfoB,IAAhBA,EAAK+1e,OACO,EAEW,IAAlB/1e,EAAKg2e,SACE,EAEc,IAArBh2e,EAAKk2e,YACE,EAEPl2e,EAAKi2e,YACE,EAGA,CAAEF,OAAQ/1e,EAAK+1e,OAAQC,SAAUh2e,EAAKg2e,SAAUE,YAAal2e,EAAKk2e,YAAaD,YAAaj2e,EAAKk2e,YAGrH,EAEA6wK,EAAWhtpB,UAAUi4pB,qBAAuB,SAAU/8lB,GAClD,OAAkB,IAAdA,EACO,CAAE8gb,QAAQ,GAEE,IAAd9gb,EACE,CAAE+gb,UAAU,GAEA,IAAd/gb,EACE,CAAEihb,aAAa,GAEH,IAAdjhb,EACE,CAAEghb,aAAa,GAGf,CAAEF,OAAQ9gb,EAAU8gb,OAAQC,SAAU/gb,EAAU+gb,SAAUE,YAAajhb,EAAUihb,YAAaD,YAAahhb,EAAUghb,YAEpI,EAOA8wK,EAAWhtpB,UAAUo+f,uBAAyB,SAAUjzB,EAAYqtL,GAEhE,IAAI7hC,EAAgBr4nB,KAAKmpd,UAAUosB,mBACnC,GAAI1I,EAAY,CAEZ,IAAImkF,EAAYnkF,EAAWlX,oBACT,gBAAdq7F,GAA+BhxjB,KAAKmpd,UAAU6oG,oBAC9CqmE,EAAgBr4nB,KAAKmpd,UAAU6oG,oBAEZ,UAAdhB,GAAuC,UAAdA,GAC9BqnE,EAAgBr4nB,KAAKmpd,UAAUq8C,cAEZ,UAAdwrD,GAAuC,UAAdA,IAC1BqnE,EAAgBr4nB,KAAKmpd,UAAUwkF,sBAGhB,aAAdqjB,EACLqnE,EAAgBr4nB,KAAKmpd,UAAU+hF,iBAEC,KAA3Br+D,EAAW23B,YACE,SAAdwsD,EACAqnE,EAAgBr4nB,KAAKmpd,UAAU+jF,aAGX,UAAd8jB,GAAuC,uBAAdA,EAC/BqnE,EAAgBr4nB,KAAKmpd,UAAUgkF,cAEZ,cAAd6jB,EACLqnE,EAAgBr4nB,KAAKmpd,UAAUikF,kBAGX,WAAd4jB,GAAwC,YAAdA,EAChCqnE,EAAgBr4nB,KAAKmpd,UAAUkkF,eAEZ,YAAd2jB,GAA2BhxjB,KAAKmpd,UAAUmkF,kBAC/C+qF,EAAgBr4nB,KAAKmpd,UAAUmkF,iBAGH,KAA3BzgE,EAAW23B,cACe,aAA3B33B,EAAW23B,YACX6zH,EAAgBr4nB,KAAKmpd,UAAU0jF,iBAEC,cAA3BhgE,EAAW23B,YAChB6zH,EAAgBr4nB,KAAKmpd,UAAU2jF,kBAEC,SAA3BjgE,EAAW23B,YAChB6zH,EAAgBr4nB,KAAKmpd,UAAU4jF,aAEC,WAA3BlgE,EAAW23B,YAChB6zH,EAAgBr4nB,KAAKmpd,UAAU6jF,eAEC,WAA3BngE,EAAW23B,cAChB6zH,EAAgBr4nB,KAAKmpd,UAAU8jF,gBAG3C,CACA,IAAIh6e,EAAW45a,EAAaA,EAAW0I,mBAAqB,CAAC,EAC7D,OAAItib,IAAaA,EAASthC,UAAYshC,EAAS9jC,UAAY8jC,EAAS9iC,WAAa8iC,EAAS7iC,WAC/EpwB,KAAKu4nB,eAAetlkB,GAEtBinmB,EACEl6pB,KAAKu4nB,eAAeF,GAGpBA,CAEf,EAMAq2B,EAAWhtpB,UAAUy3nB,yBAA2B,SAAUtsJ,GAEtD,IAAIwrJ,EAAgBr4nB,KAAKmpd,UAAUosB,mBAwDnC,MAvD6B,WAAzB1I,EAAW4xD,UACX45F,EAAgBr4nB,KAAKmpd,UAAU6oG,oBAED,UAAzBnlF,EAAW4xD,WAAkD,UAAzB5xD,EAAW4xD,WAAkD,UAAzB5xD,EAAW4xD,WACxF45F,EAAgBr4nB,KAAKmpd,UAAUq8C,cAEH,UAAvB34B,EAAW14U,SAA8C,UAAvB04U,EAAW14U,UAC9Ckke,EAAgBr4nB,KAAKmpd,UAAUwkF,sBAGL,aAAzB9gE,EAAW4xD,UAChB45F,EAAgBr4nB,KAAKmpd,UAAU+hF,iBAED,UAAzBr+D,EAAW4xD,UACW,SAAvB5xD,EAAW14U,QACXkke,EAAgBr4nB,KAAKmpd,UAAU+jF,aAGF,UAAvBrgE,EAAW14U,SAA8C,uBAAvB04U,EAAW14U,QACnDkke,EAAgBr4nB,KAAKmpd,UAAUgkF,cAGF,cAAvBtgE,EAAW14U,SAAkD,WAAvB04U,EAAW14U,QACvDkke,EAAgBr4nB,KAAKmpd,UAAUikF,kBAGF,WAAvBvgE,EAAW14U,SAA+C,YAAvB04U,EAAW14U,SAAgD,SAAvB04U,EAAW14U,QACxFkke,EAAgBr4nB,KAAKmpd,UAAUkkF,eAEH,YAAvBxgE,EAAW14U,UAChBkke,EAAgBr4nB,KAAKmpd,UAAUmkF,iBAGL,kBAAzBzgE,EAAW4xD,YAEY,aAAvB5xD,EAAW14U,SAAiD,yBAAvB04U,EAAW14U,QACjDkke,EAAgBr4nB,KAAKmpd,UAAU0jF,iBAGF,cAAvBhgE,EAAW14U,SAAkD,0BAAvB04U,EAAW14U,QACvDkke,EAAgBr4nB,KAAKmpd,UAAU2jF,kBAGF,SAAvBjgE,EAAW14U,SAA6C,qBAAvB04U,EAAW14U,QAClDkke,EAAgBr4nB,KAAKmpd,UAAU4jF,aAGF,WAAvBlgE,EAAW14U,SAA+C,uBAAvB04U,EAAW14U,QACpDkke,EAAgBr4nB,KAAKmpd,UAAU6jF,eAGF,WAAvBngE,EAAW14U,SAA+C,uBAAvB04U,EAAW14U,UACpDkke,EAAgBr4nB,KAAKmpd,UAAU8jF,iBAGhCjtiB,KAAKu4nB,eAAeF,EAC/B,EAMAq2B,EAAWhtpB,UAAU62nB,eAAiB,SAAUhjJ,GAC5C,IAAInld,EAAY,EACZjB,EAAW,EACXgB,EAAY,EACZwB,EAAW,EAIXshC,EAAWjzD,KAAKmpd,UAAUosB,mBAe9B,OAdIA,EAAmB5jd,UAAY4jd,EAAmBpmd,UAAYomd,EAAmBpld,WAAaold,EAAmBnld,WACjHA,EAAYmld,EAAmBnld,UAAYmld,EAAmBnld,UAAY,IAC1EjB,EAAWomd,EAAmBpmd,SAAWomd,EAAmBpmd,SAAW,IACvEgB,EAAYold,EAAmBpld,UAAYold,EAAmBpld,UAAY,EAC1EwB,EAAW4jd,EAAmB5jd,SAAW4jd,EAAmB5jd,SAAW,IAElEshC,EAASthC,UAAYshC,EAAS9jC,UAAY8jC,EAAS9iC,WAAa8iC,EAAS7iC,aAC9EA,EAAY6iC,EAAS7iC,UAAY6iC,EAAS7iC,UAAY,IACtDjB,EAAW8jC,EAAS9jC,SAAW8jC,EAAS9jC,SAAW,IACnDgB,EAAY8iC,EAAS9iC,UAAY8iC,EAAS9iC,UAAY,EACtDwB,EAAWshC,EAASthC,SAAWshC,EAASthC,SAAW,GAIhD,CAAEA,SAAUA,EAAUxC,SAAUA,EAAUgB,UAAWA,EAAWC,UAAWA,EAAW+qd,OAFpF5F,EAAmB4F,OAAS5F,EAAmB4F,SAASlob,EAASkob,QAASlob,EAASkob,OAEiBumB,QADnGnsB,EAAmBmsB,QAEjC,EAEAgtJ,EAAWhtpB,UAAUq2pB,yBAA2B,SAAUlrL,EAAYnjB,GAKlE,IAHA,IAEI8lH,EAFAn9B,EAAkBryiB,KAAKm6pB,wBAAwBzwM,GAG1C38c,EAAI,EAAGA,EAAIsliB,EAAgB7uiB,OAAQuJ,IACxC,GAAI8/d,EAAWqM,YAAcm5D,EAAgBtliB,GAAGmse,UAAW,CACvDs2F,EAAqBn9B,EAAgBtliB,GACrC,KACJ,CAIJ,OAD2B/M,KAAKo6pB,0BAA0B5qF,EAAoBn9B,EAElF,EAEAq8G,EAAWhtpB,UAAUy4pB,wBAA0B,SAAUzwM,GAErD,IAAI2oF,EAAkB,GAElBnB,EAAY5xiB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,oBAC9E,GAAI++K,EAAW,CACX,IAAImpH,EAAiBz4pB,KAAK+yH,MAAMu8a,GAChC,GAAImpH,GAEIA,EADAvxpB,EAAQ9I,KAAKi4e,kBAAkBoiL,EAAgB3wM,IACxB,CAEvB,IAAI4wM,EAAiBD,EAAevxpB,GAAOose,YAC3C,GAAIolL,GAAkBA,EAAe92pB,OAAS,EAC1C,IAAK,IAAIuJ,EAAI,EAAGA,EAAIutpB,EAAe92pB,OAAQuJ,IACvCsliB,EAAgBnwiB,KAAKo4pB,EAAevtpB,GAGhD,CAER,CAEA,IAAI6jiB,EAActxiB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,sBAChF,GAAIy+K,EAAa,CACb,IAAI2pH,EAAmB34pB,KAAK+yH,MAAMi8a,GAClC,GAAI2pH,GAEIA,EADAzxpB,EAAQ9I,KAAKi4e,kBAAkBsiL,EAAkB7wM,IACxB,CAEzB,IAAI6vB,EAAmBghL,EAAiBzxpB,GAAOose,YAC/C,GAAIqE,GAAoBA,EAAiB/1e,OAAS,EAC9C,IAASuJ,EAAI,EAAGA,EAAIwse,EAAiB/1e,OAAQuJ,IACzCsliB,EAAgBnwiB,KAAKq3e,EAAiBxse,GAGlD,CAER,CAEA,IAAI+miB,EAAgBx0iB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,8BAClF,GAAI2hL,EAAe,CACf,IAAI0mH,EAA0B54pB,KAAK+yH,MAAMm/a,GACzC,GAAI0mH,GAEIA,EADA1xpB,EAAQ9I,KAAKi4e,kBAAkBuiL,EAAyB9wM,IACxB,CAEhC,IAAI+wM,EAAqBD,EAAwB1xpB,GAAOose,YACxD,GAAIulL,GAAsBA,EAAmBj3pB,OAAS,EAClD,IAASuJ,EAAI,EAAGA,EAAI0tpB,EAAmBj3pB,OAAQuJ,IAC3CsliB,EAAgBnwiB,KAAKu4pB,EAAmB1tpB,GAGpD,CAER,CAEA,IAAI+jiB,EAAcxxiB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,sBAChF,GAAI2+K,EAAa,CACb,IAAI4pH,EAAwB94pB,KAAK+yH,MAAMm8a,GACvC,GAAI4pH,GAEIA,EADA5xpB,EAAQ9I,KAAKi4e,kBAAkByiL,EAAuBhxM,IACxB,CAE9B,IAAI07B,EAAmBs1K,EAAsB5xpB,GAAOose,YACpD,GAAIkQ,GAAoBA,EAAiB5hf,OAAS,EAC9C,IAASuJ,EAAI,EAAGA,EAAIq4e,EAAiB5hf,OAAQuJ,IACzCsliB,EAAgBnwiB,KAAKkjf,EAAiBr4e,GAGlD,CAER,CAEA,IAAIikiB,EAAiB1xiB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,yBACnF,GAAI6+K,EAAgB,CAChB,IAAI2pH,EAA2B/4pB,KAAK+yH,MAAMq8a,GAC1C,GAAI2pH,GAEIA,EADA7xpB,EAAQ9I,KAAKi4e,kBAAkB0iL,EAA0BjxM,IACxB,CAEjC,IAAIkxM,EAAsBD,EAAyB7xpB,GAAOose,YAC1D,GAAI0lL,GAAuBA,EAAoBp3pB,OAAS,EACpD,IAASuJ,EAAI,EAAGA,EAAI6tpB,EAAoBp3pB,OAAQuJ,IAC5CsliB,EAAgBnwiB,KAAK04pB,EAAoB7tpB,GAGrD,CAER,CAEA,IAAIgkiB,EAAezxiB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,uBACjF,GAAI4+K,EAAc,CACd,IAAI8pH,EAA8Bj5pB,KAAK+yH,MAAMo8a,GAC7C,GAAI8pH,GAEIA,EADA/xpB,EAAQ9I,KAAKi4e,kBAAkB4iL,EAA6BnxM,IACxB,CAEpC,IAAIoxM,EAAyBD,EAA4B/xpB,GAAOose,YAChE,GAAI4lL,GAA0BA,EAAuBt3pB,OAAS,EAC1D,IAASuJ,EAAI,EAAGA,EAAI+tpB,EAAuBt3pB,OAAQuJ,IAC/CsliB,EAAgBnwiB,KAAK44pB,EAAuB/tpB,GAGxD,CAER,CAEA,IAAI4jiB,EAAmBrxiB,OAAO4qH,eAAe9E,QAAQplH,KAAKopd,cAAcj3F,WAAa,2BACrF,GAAIw+K,EAAkB,CAClB,IAEQ7niB,EAFJiypB,EAA6Bn5pB,KAAK+yH,MAAMg8a,GAC5C,GAAIoqH,GAEIA,EADAjypB,EAAQ9I,KAAKi4e,kBAAkB8iL,EAA4BrxM,IACxB,CAEnC,IAAI6lK,EAAwBwrC,EAA2BjypB,GAAOose,YAC9D,GAAIq6I,GAAyBA,EAAsB/rnB,OAAS,EACxD,IAASuJ,EAAI,EAAGA,EAAIwinB,EAAsB/rnB,OAAQuJ,IAC9CsliB,EAAgBnwiB,KAAKqtnB,EAAsBxinB,GAGvD,CAER,CACA,OAAOsliB,CACX,EAEAq8G,EAAWhtpB,UAAU04pB,0BAA4B,SAAUvtL,EAAYwlE,GAEnE,GADAryiB,KAAK+upB,sBAAwB,GACzBliL,GAAcA,EAAW7mc,OACzB,GAAuC,eAAnC6mc,EAAWlX,oBACX,IAAK,IAAI5od,EAAI,EAAGA,EAAI8/d,EAAW7mc,OAAOxiC,OAAQuJ,IAAK,CAE/C,IAAIi5B,EAAShmC,KAAKi4pB,sBAAsBprL,EAAW7mc,OAAOj5B,IAC1D/M,KAAKg7pB,oCAAoCnuL,EAAY7mc,EAAQqsgB,EACjE,MAGAryiB,KAAKg7pB,oCAAoCnuL,EAAYA,EAAW7mc,OAAQqsgB,GAGhF,OAAOryiB,KAAK+upB,qBAChB,EAEAL,EAAWhtpB,UAAUs5pB,oCAAsC,SAAUnuL,EAAY7mc,EAAQqsgB,GAErF,IAAI4oH,EAAej1nB,EACoB,QAAnC6mc,EAAWlX,sBACXslM,EAAe,CAAErjpB,KAAMouB,EAAO9rB,EAAGI,IAAK0rB,EAAOgT,EAAGn4B,OAAQmlB,EAAOnlB,OAAQlG,MAAOqrB,EAAOrrB,QAUzF,IAPA,IAAI/C,EAAOhN,SAASqwpB,EAAarjpB,MAE7B0C,EAAM1P,SAASqwpB,EAAa3gpB,KAE5B4gpB,EAActwpB,SAASqwpB,EAAa3gpB,IAAM2gpB,EAAap6oB,QAEvDs6oB,EAAavwpB,SAASqwpB,EAAarjpB,KAAOqjpB,EAAatgpB,OAClD5N,EAAI,EAAGA,EAAIsliB,EAAgB7uiB,OAAQuJ,IACxC,GAAI8/d,EAAWqM,YAAcm5D,EAAgBtliB,GAAGmse,UAC5Cl5e,KAAKo7pB,2BAA2B/oH,EAAgBtliB,GAAI/M,KAAK+upB,2BAExD,CACD,IAAIsM,EAAc,EAC6B,eAA3ChpH,EAAgBtliB,GAAG4od,sBACnB0lM,EAAchpH,EAAgBtliB,GAAGi5B,OAAOxiC,QAE5C,IAAK,IAAI42G,EAAI,EAAGA,EAAIihjB,EAAajhjB,IAAK,CAElC,IAAIsod,EAEA44F,EAA6BjpH,EAAgBtliB,GAAGi5B,OAYpD,GAX+C,QAA3CqsgB,EAAgBtliB,GAAG4od,sBAEnB2lM,EAA6B,CAAE1jpB,KAAM0jpB,EAA2BphpB,EAAGI,IAAKghpB,EAA2BtinB,EAAGn4B,OAAQy6oB,EAA2Bz6oB,OAAQlG,MAAO2gpB,EAA2B3gpB,QAGnL+njB,EAD2C,eAA3CrwB,EAAgBtliB,GAAG4od,qBAAwD,IAAhB0lM,EACxCC,EAIAt7pB,KAAKi4pB,sBAAsBqD,EAA2BlhjB,IAEvD,CAClB,IAAI8hZ,GAAe,GAEbtkf,GAAQhN,SAAS83jB,EAAiB9qjB,OAAWujpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,OAAaA,GAAQhN,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,QAAYwgpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,UAC1Ouhf,GAAe,GAEfA,IAGIA,EADE5hf,GAAO1P,SAAS83jB,EAAiBpojB,MAAU4gpB,GAAetwpB,SAAS83jB,EAAiBpojB,MAAYA,GAAO1P,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAAaq6oB,GAAetwpB,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAO3Oq7e,EACAl8f,KAAKo7pB,2BAA2B/oH,EAAgBtliB,GAAI/M,KAAK+upB,yBAInDnkpB,SAAS83jB,EAAiB9qjB,OAASA,GAAUhN,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,QAAU/C,GAAYujpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,OAAWujpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,UAC1Ouhf,GAAe,GAEfA,IAGIA,EADEtxf,SAAS83jB,EAAiBpojB,MAAQA,GAAQ1P,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAAWvG,GAAU4gpB,GAAetwpB,SAAS83jB,EAAiBpojB,MAAU4gpB,GAAetwpB,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAOzOq7e,EACAl8f,KAAKo7pB,2BAA2B/oH,EAAgBtliB,GAAI/M,KAAK+upB,yBAInDn3oB,GAAQhN,SAAS83jB,EAAiB9qjB,OAAWujpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,OAAaA,GAAQhN,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,QAAYwgpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,UAC1Ouhf,GAAe,GAEfA,IAGIA,EADEtxf,SAAS83jB,EAAiBpojB,MAAQA,GAAQ1P,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAAWvG,GAAU4gpB,GAAetwpB,SAAS83jB,EAAiBpojB,MAAU4gpB,GAAetwpB,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAOzOq7e,EACAl8f,KAAKo7pB,2BAA2B/oH,EAAgBtliB,GAAI/M,KAAK+upB,yBAInDnkpB,SAAS83jB,EAAiB9qjB,OAASA,GAAUhN,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,QAAU/C,GAAYujpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,OAAWujpB,GAAcvwpB,SAAS83jB,EAAiB9qjB,KAAO8qjB,EAAiB/njB,UAC1Ouhf,GAAe,GAEfA,IAGIA,EADE5hf,GAAO1P,SAAS83jB,EAAiBpojB,MAAU4gpB,GAAetwpB,SAAS83jB,EAAiBpojB,MAAYA,GAAO1P,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAAaq6oB,GAAetwpB,SAAS83jB,EAAiBpojB,IAAMoojB,EAAiB7hjB,SAO3Oq7e,GACAl8f,KAAKo7pB,2BAA2B/oH,EAAgBtliB,GAAI/M,KAAK+upB,yBAK7E,CACJ,CACJ,CAER,EAWAL,EAAWhtpB,UAAUounB,mBAAqB,SAAUjjJ,EAAYnjB,EAAY3oc,GAExE,IAAIw6oB,EAAmBv7pB,KAAKmpd,UAAU4mC,WAAW8hC,mBAAmBnoE,GACpE,GAAI6xM,EAAkB,CAElB,IAAI1kc,OAAa,EAmBjB,GAlBa,UAAT91M,EACA81M,EAAa0kc,EAAiBnjL,gBAEhB,kBAATr3d,EACL81M,EAAa0kc,EAAiBr2K,uBAEhB,aAATnke,EACL81M,EAAa0kc,EAAiBp2K,mBAEhB,UAATpke,EACL81M,EAAa0kc,EAAiBn2K,iBAEhB,WAATrke,EACL81M,EAAa0kc,EAAiBn+H,sBAEhB,eAATr8gB,IACL81M,EAAa0kc,EAAiBt2K,sBAE9BpuR,EACA,IAAK,IAAI9pN,EAAI,EAAGA,EAAI8pN,EAAWrzN,OAAQuJ,IACnC,GAAI8pN,EAAW9pN,GAAGyliB,YAAc3lE,EAAW2lE,UACvC,MAAO,qBAIvB,CACA,MAAO,qBACX,EAEAk8G,EAAWhtpB,UAAU05pB,2BAA6B,SAAUvuL,EAAY6zB,GACpE,GAAIA,EAAsBl9f,OAAS,EAAG,CAElC,IADA,IAAI2tiB,GAAU,EACLpkiB,EAAI,EAAGA,EAAI2zf,EAAsBl9f,OAAQuJ,IAC9C,GAAI8/d,EAAWqM,YAAcwnB,EAAsB3zf,GAAGmse,WAAarM,EAAW7mc,SAAW06d,EAAsB3zf,GAAGi5B,OAAQ,CACtHmrgB,GAAU,EACV,KACJ,CAECA,GACDzwC,EAAsBx+f,KAAK2qe,EAEnC,MAEI6zB,EAAsBx+f,KAAK2qe,EAEnC,EAEA6hL,EAAWhtpB,UAAUu2pB,sBAAwB,SAAUjynB,GACnD,OAAIA,EAAO2vX,MAAQ3vX,EAAOykb,MACf,CAAE7yc,KAAMouB,EAAO2vX,KAAMr7Y,IAAK0rB,EAAOquW,IAAKxzX,OAAQmlB,EAAO0kb,OAAQ/vc,MAAOqrB,EAAOykb,OAG3E,CAAE7yc,KAAMouB,EAAOpuB,KAAM0C,IAAK0rB,EAAO1rB,IAAKuG,OAAQmlB,EAAOnlB,OAAQlG,MAAOqrB,EAAOrrB,MAE1F,EAMA+zoB,EAAWhtpB,UAAUmynB,mBAAqB,SAAUhnJ,GAIhD,GAHIA,EAAW41B,eACX51B,EAAW41B,aAAezigB,KAAKw7pB,0BAA0B3uL,EAAW41B,eAEpE51B,EAAWm4C,UAAYn4C,EAAWm4C,SAASxhhB,OAAS,EACpD,IAAK,IAAIuJ,EAAI,EAAGA,EAAI8/d,EAAWm4C,SAASxhhB,OAAQuJ,IACxC8/d,EAAWm4C,SAASj4gB,GAAG01f,eACvB51B,EAAWm4C,SAASj4gB,GAAG01f,aAAezigB,KAAKw7pB,0BAA0B3uL,EAAWm4C,SAASj4gB,GAAG01f,cACxF51B,EAAWm4C,SAASj4gB,GAAGsniB,QAAUxnE,EAAWm4C,SAASj4gB,GAAGsniB,OAAO5xC,eAE/D51B,EAAWm4C,SAASj4gB,GAAGsniB,OAAO5xC,aAAezigB,KAAKw7pB,0BAA0B3uL,EAAWm4C,SAASj4gB,GAAGsniB,OAAO5xC,gBAKtH51B,EAAWwnE,QAAUxnE,EAAWwnE,OAAO5xC,eACvC51B,EAAWwnE,OAAO5xC,aAAezigB,KAAKw7pB,0BAA0B3uL,EAAWwnE,OAAO5xC,cAE1F,EACAisJ,EAAWhtpB,UAAU85pB,0BAA4B,SAAU19pB,GACvD,IAAI6qpB,EACA8S,EACJ,GAAa,KAAT39pB,EAiCA,OAAOA,EA/BP,IAAIw1G,EAAO1oG,SAAS9M,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,IAG9CmhpB,EAF2B,IAA3B7qpB,EAAK0J,MAAM,KAAKhE,OAED8vG,EAAO,IAAMx1G,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,IAAM1J,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,IAAM1J,EAAK0J,MAAM,KAAK,GAG1H8rG,GAAQ,GACK,KAATA,EACeA,EAAO,IAAMx1G,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,IAAM1J,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,MAIxF8rG,EAAO,GAAM,IAAMx1G,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,IAAM1J,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,MAIpG8rG,EAAO,IAAMx1G,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,IAAM1J,EAAK0J,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAK,MAIhH,IAAIgrL,EAAa10L,EAAK0J,MAAM,KAAK,GAerC,OAXQi0pB,EAFkB39pB,EAAK0J,MAAM,KACbhE,OAAS,EACNgvL,EAAa,IAAQm2d,EAGrBn2d,EAAa,KAASm2d,EAMzB,IAAI1qpB,KAAKw9pB,GACIrzgB,aAEzC,EAIAsmgB,EAAWhtpB,UAAUwuF,MAAQ,WACrBlwF,KAAKwngB,wBACLxngB,KAAKwngB,sBAAsBuxH,WAAa,GAExC/4nB,KAAK+7e,0BACL/7e,KAAK+7e,wBAAwBy/I,kBAAoB,GAEjDx7nB,KAAKs6e,4BACLt6e,KAAKs6e,2BAA2BpqZ,QAEhClwF,KAAKsof,6BACLtof,KAAKsof,4BAA4Bp4Z,QAErClwF,KAAKmpd,UAAUz8Q,UACf1sM,KAAKqopB,oBAAsB,GAC3BropB,KAAKgopB,oBAAsB,GAC3BhopB,KAAK+upB,sBAAwB,GAC7B/upB,KAAK2ge,cAAgB,KAEjB3ge,KAAKmpd,UAAU0jB,YAAc7se,KAAKmpd,UAAU0jB,WAAW+1B,wBACvD5igB,KAAKmpd,UAAU0jB,WAAW+1B,sBAAsBoyC,gBAAkB,IAElEh1iB,KAAKmpd,UAAU0jB,YAAc7se,KAAKmpd,UAAU0jB,WAAW4N,2BACvDz6e,KAAKmpd,UAAU0jB,WAAW4N,yBAAyBs6D,oBAAsB,GACzE/0iB,KAAKy6e,yBAAyBgwK,aAAe,aAE7CzqpB,KAAKmpd,UAAU0jB,YAAc7se,KAAKmpd,UAAU0jB,WAAWkb,sBACvD/nf,KAAKmpd,UAAU0jB,WAAWkb,oBAAoBktD,mBAAqB,IAEvE31iB,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,sBACjE7yX,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,8BACjE7yX,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,sBACjE7yX,OAAO4qH,eAAet2B,WAAW5zF,KAAKopd,cAAcj3F,WAAa,sBACrE,EAEAu8R,EAAWhtpB,UAAUg6pB,6BAA+B,WAChD,OAAO17pB,KAAKmpd,UAAUgsB,oBAC1B,EASAu5K,EAAWhtpB,UAAUi/f,yBAA2B,SAAU3uO,EAAa66M,GAEnE,IAAI8uL,EAAwB37pB,KAAK8zjB,oCAAoCjnF,GACrE,GAAI8uL,GAAyBA,EAAsBn4pB,OAAS,EACxD,IAAK,IAAIuJ,EAAI,EAAGA,EAAI4upB,EAAsBn4pB,OAAQuJ,IAC9C,GAAoB,WAAhBilR,GAEA,GAAiC,SAA7B2pY,EAAsB5upB,IAA8C,WAA7B4upB,EAAsB5upB,IAAgD,WAA7B4upB,EAAsB5upB,IAAgD,mBAA7B4upB,EAAsB5upB,IAAwD,WAA7B4upB,EAAsB5upB,GAChM,OAAO,OAIX,GAAI4upB,EAAsB5upB,KAAOilR,EAC7B,OAAO,EAKvB,OAAO,CACX,EAMA08X,EAAWhtpB,UAAUk5e,2BAA6B,SAAUghL,GAExD,IAAI/uL,EAAa7se,KAAKiilB,wBAClBp1G,GAAcA,EAAW0I,qBAErB1I,EAAW0I,mBAAmB4F,OAC1Bn7e,KAAK2ggB,yBAAyB,SAAU9zB,GACxC+uL,EAAQ10X,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,oBAAoB,GAG9Emhd,EAAQ10X,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,oBAAoB,GAIlFmhd,EAAQ10X,YAAY,CAAClnS,KAAKmpd,UAAUuG,UAAUj1Q,YAAY,oBAAoB,GAG1F,EAKAi0c,EAAWhtpB,UAAUwzhB,eAAiB,WAElC,IAAIroD,EAAa7se,KAAKiilB,wBACtB,SAAIp1G,IAAcA,EAAW0I,oBAErB1I,EAAW0I,mBAAmB4F,SAC1Bn7e,KAAK2ggB,yBAAyB,SAAU9zB,GAYxD,EAKA6hL,EAAWhtpB,UAAUuglB,sBAAwB,WACzC,OAAIjilB,KAAKs6e,4BAA8Bt6e,KAAKs6e,2BAA2BsB,4BAC5D57e,KAAKs6e,2BAA2BsB,4BAEvC57e,KAAKmpd,UAAU50X,cAAc2gZ,aAAel1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAC9El1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,QADpD,CAGJ,EAMAw5K,EAAWhtpB,UAAUoyjB,oCAAsC,SAAUjnF,GAEjE,IAAI8uL,EAAwB,CAAC,QAqF7B,OApFI9uL,IACuC,aAAnCA,EAAWlX,qBAAsC31d,KAAKmpd,UAAU+hF,iBAAiB46B,oBAEjF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU+hF,iBAAiB46B,oBAAqBj5F,EAAWi5F,qBAErF,QAAnCj5F,EAAWlX,qBAAiC31d,KAAKmpd,UAAUyjF,sBAAsBk5B,oBAEtF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUyjF,sBAAsBk5B,oBAAqBj5F,EAAWi5F,qBAE1F,gBAAnCj5F,EAAWlX,qBAAyC31d,KAAKmpd,UAAU6oG,oBAAoB8T,oBAE5F61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU6oG,oBAAoB8T,oBAAqBj5F,EAAWi5F,qBAExF,UAAnCj5F,EAAWlX,qBAAmC31d,KAAKmpd,UAAUq8C,cAAcsgE,oBAEhF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUq8C,cAAcsgE,oBAAqBj5F,EAAWi5F,qBAElF,UAAnCj5F,EAAWlX,qBAAmC31d,KAAKmpd,UAAUwkF,oBAAoBm4B,oBAEtF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUwkF,oBAAoBm4B,oBAAqBj5F,EAAWi5F,qBAExF,eAAnCj5F,EAAWlX,oBAC4B,cAAxCkX,EAAW0pE,0BAA4Cv2iB,KAAKmpd,UAAUylK,kBAAkB9oD,oBAExF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUylK,kBAAkB9oD,oBAAqBj5F,EAAWi5F,qBAEjF,cAAxCj5F,EAAW0pE,0BAA4Cv2iB,KAAKmpd,UAAU0lK,kBAAkB/oD,oBAE7F61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU0lK,kBAAkB/oD,oBAAqBj5F,EAAWi5F,qBAEjF,kBAAxCj5F,EAAW0pE,0BAAgDv2iB,KAAKmpd,UAAU2lK,sBAAsBhpD,sBAErG61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU2lK,sBAAsBhpD,oBAAqBj5F,EAAWi5F,sBAIvG,KAA3Bj5F,EAAW23B,YACoB,aAA3B33B,EAAW23B,aAA8BxkgB,KAAKmpd,UAAU0jF,iBAAiBi5B,oBAEzE61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU0jF,iBAAiBi5B,oBAAqBj5F,EAAWi5F,qBAE7F,cAA3Bj5F,EAAW23B,aAA+BxkgB,KAAKmpd,UAAU2jF,kBAAkBg5B,oBAEhF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU2jF,kBAAkBg5B,oBAAqBj5F,EAAWi5F,qBAE9F,WAA3Bj5F,EAAW23B,aAA4BxkgB,KAAKmpd,UAAU6jF,eAAe84B,oBAE1E61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU6jF,eAAe84B,oBAAqBj5F,EAAWi5F,qBAE3F,SAA3Bj5F,EAAW23B,aAA0BxkgB,KAAKmpd,UAAU4jF,aAAa+4B,oBAEtE61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU4jF,aAAa+4B,oBAAqBj5F,EAAWi5F,qBAEzF,WAA3Bj5F,EAAW23B,aAA4BxkgB,KAAKmpd,UAAU8jF,eAAe64B,sBAE1E61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU8jF,eAAe64B,oBAAqBj5F,EAAWi5F,sBAIxF,SAAnCj5F,EAAWlX,qBAAkC31d,KAAKmpd,UAAU+jF,aAAa44B,oBAEzE61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAU+jF,aAAa44B,oBAAqBj5F,EAAWi5F,qBAGhF,UAAnCj5F,EAAWlX,qBAAsE,uBAAnCkX,EAAWlX,sBAAiD31d,KAAKmpd,UAAUgkF,cAAc24B,oBAKpG,WAAnCj5F,EAAWlX,qBAAuE,YAAnCkX,EAAWlX,qBAAwE,SAAnCkX,EAAWlX,sBAAmC31d,KAAKmpd,UAAUkkF,eAAey4B,oBAIxI,cAAnCj5F,EAAWlX,qBAA0E,WAAnCkX,EAAWlX,sBAAqC31d,KAAKmpd,UAAUikF,kBAAkB04B,oBAIjG,YAAnCj5F,EAAWlX,qBAAqC31d,KAAKmpd,UAAUmkF,gBAAgBw4B,sBAEpF61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUmkF,gBAAgBw4B,oBAAqBj5F,EAAWi5F,sBAJ5H61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUikF,kBAAkB04B,oBAAqBj5F,EAAWi5F,qBAJ9H61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUkkF,eAAey4B,oBAAqBj5F,EAAWi5F,qBAL3H61F,EAAwB37pB,KAAK67pB,gCAAgC77pB,KAAKmpd,UAAUgkF,cAAc24B,oBAAqBj5F,EAAWi5F,sBAkBnI61F,CACX,EAMAjN,EAAWhtpB,UAAUqyjB,oBAAsB,SAAUlnF,GAEjD,IAAI4rE,GAAW,EAiFf,OAhFI5rE,IACuC,aAAnCA,EAAWlX,oBACX8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU+hF,iBAAiB/vD,QAE1B,QAAnCtO,EAAWlX,oBAEhB8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUyjF,sBAAsBzxD,QAE/B,gBAAnCtO,EAAWlX,oBAChB8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU6oG,oBAAoB72E,QAE7B,UAAnCtO,EAAWlX,oBAChB8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUq8C,cAAcrqB,QAEvB,UAAnCtO,EAAWlX,oBAChB8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUwkF,oBAAoBxyD,QAE7B,eAAnCtO,EAAWlX,oBAC4B,cAAxCkX,EAAW0pE,yBAEXkC,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUylK,kBAAkBzzI,QAEtB,cAAxCtO,EAAW0pE,yBAEhBkC,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU0lK,kBAAkB1zI,QAEtB,kBAAxCtO,EAAW0pE,2BAEhBkC,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU2lK,sBAAsB3zI,SAI5C,KAA3BtO,EAAW23B,YACoB,aAA3B33B,EAAW23B,YAEXi0C,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU0jF,iBAAiB1xD,QAElC,cAA3BtO,EAAW23B,YAEhBi0C,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU2jF,kBAAkB3xD,QAEnC,WAA3BtO,EAAW23B,YAEhBi0C,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU6jF,eAAe7xD,QAEhC,SAA3BtO,EAAW23B,YAEhBi0C,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU4jF,aAAa5xD,QAE9B,WAA3BtO,EAAW23B,cAEhBi0C,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU8jF,eAAe9xD,SAI7B,SAAnCtO,EAAWlX,oBAEX8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAU+jF,aAAa/xD,QAGrB,UAAnCtO,EAAWlX,qBAAsE,uBAAnCkX,EAAWlX,oBAE/D8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUgkF,cAAchyD,QAGtB,WAAnCtO,EAAWlX,qBAAuE,YAAnCkX,EAAWlX,qBAAwE,SAAnCkX,EAAWlX,oBAEhH8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUkkF,eAAelyD,QAEvB,cAAnCtO,EAAWlX,qBAA0E,WAAnCkX,EAAWlX,oBAEnE8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUikF,kBAAkBjyD,QAE3B,YAAnCtO,EAAWlX,sBAEhB8iF,EAAWz4iB,KAAK87pB,kBAAkB97pB,KAAKmpd,UAAUmkF,gBAAgBnyD,UAK1Es9D,CACX,EAEAi2G,EAAWhtpB,UAAUo6pB,kBAAoB,SAAUC,GAC/C,IAAIC,GAAS,EAIb,OAHID,GAAU/7pB,KAAKmpd,UAAUosB,mBAAmB4F,UAC5C6gL,GAAS,GAENA,CACX,EAKAtN,EAAWhtpB,UAAU26e,oBAAsB,WAEvC,IAAI4/K,GAAa,EAEbpvL,EAAa7se,KAAKiilB,wBAItB,OAHIp1G,GAAc7se,KAAK+zjB,oBAAoBlnF,IAAe7se,KAAK2ggB,yBAAyB,SAAU9zB,KAC9FovL,GAAa,GAEVA,CACX,EAEAvN,EAAWhtpB,UAAUm6pB,gCAAkC,SAAUF,EAAuBO,GACpF,GAAIA,EAA8B,CAC9B,GAA4C,IAAxCA,EAA6B14pB,OAM7B,OAAO04pB,EALP,GAAwC,SAApCA,EAA6B,GAC7B,OAAOA,CAMnB,CACA,GAAIP,EAAuB,CACvB,GAAqC,IAAjCA,EAAsBn4pB,OAMtB,OAAOm4pB,EALP,GAAiC,SAA7BA,EAAsB,GACtB,OAAOA,CAMnB,CACA,OAAI37pB,KAAKmpd,UAAUosB,mBAAmBuwF,oBAC3B9lkB,KAAKmpd,UAAUosB,mBAAmBuwF,oBAEtC,CAAC,OACZ,EAQA4oF,EAAWhtpB,UAAUwuG,SAAW,SAAUzmG,EAAOsX,GAE7C,GADAA,EAAQA,EAAeA,EAAK7X,cAAb,MACE,MAAbO,EAAM,GAAY,CAClB,IAAIyoQ,EAASlyQ,KAAKk0Q,wBAAwBzqQ,GAC1C,GAAa,QAATsX,GAA2B,SAATA,EAAiB,CACnC,IAAI0tP,EAAMzuQ,KAAKiyQ,SAASC,GACxB,MAAgB,QAATnxP,EAAiB0tP,EAAItiQ,MAAM,EAAG,GAAKsiQ,CAC9C,CAEI,MAAa,QAAT1tP,EACO/gB,KAAK8zQ,mBAAmB9zQ,KAAKgwQ,SAASvpQ,MAAMzG,KAAMkyQ,EAAO/lQ,MAAM,EAAG,KAG5D,SAAT4U,EACO/gB,KAAK8zQ,mBAAmB9zQ,KAAKgwQ,SAASvpQ,MAAMzG,KAAMkyQ,IAGlD,MAIvB,CAEI,GAAiB,MAAbzoQ,EAAM,GAEN,OADIyoQ,EAASlyQ,KAAKixQ,SAASxqQ,MAAMzG,KAAMA,KAAKk0Q,wBAAwBzqQ,IACvD,SAATsX,EACO/gB,KAAK2uQ,mBAAmBuD,GAGlB,QAATnxP,GAA2B,SAATA,GACd0tP,EAAMzuQ,KAAKiyQ,SAASC,GACR,QAATnxP,EAAiB0tP,EAAItiQ,MAAM,EAAG,GAAKsiQ,GAG7B,QAAT1tP,EACO/gB,KAAK2uQ,mBAAmBuD,EAAO/lQ,MAAM,EAAG,IAGxC,OAMnB1C,EAAQzJ,KAAK0tQ,WAAWjkQ,GACxB,IAAIqmQ,EAAM9vQ,KAAK4uQ,SAASnlQ,GAIxB,MAHa,QAATsX,GAA2B,QAATA,IAClB+uP,EAAMA,EAAI3jQ,MAAM,EAAG,IAEV,SAAT4U,GAA4B,QAATA,EACZ/gB,KAAK2uQ,mBAAmBmB,GAGlB,SAAT/uP,GAA4B,QAATA,EACZ/gB,KAAK8zQ,mBAAmB9zQ,KAAKgwQ,SAASvpQ,MAAMzG,KAAM8vQ,IAG5C,QAAT/uP,EACOtX,EAAM0C,MAAM,EAAG,GAGT,MAAT4U,EACO+uP,EAAI,GAAGr7O,WAGP,MAOnC,EACAi6nB,EAAWhtpB,UAAUwyQ,wBAA0B,SAAUzqQ,GAErD,OAAQA,EAAM0C,MAAM1C,EAAMlC,QAAQ,KAAO,EAAGkC,EAAMlC,QAAQ,MAAOC,MAAM,KAAKd,KAAI,SAAU6zG,EAAGxtG,GACzF,OAAc,IAANA,EAAWnC,SAAS2vG,EAAG,IAAMp6F,WAAWo6F,EACpD,GACJ,EACAm0iB,EAAWhtpB,UAAUitQ,mBAAqB,SAAUmB,GAChD,OAAOA,EAAItsQ,OAAwB,IAAfssQ,EAAItsQ,OAAe,QAAUssQ,EAAI/rQ,OAAS,IAAM,OAAS+rQ,EAAI/rQ,OAAS,IAAM,EACpG,EACA2qpB,EAAWhtpB,UAAUoyQ,mBAAqB,SAAU/D,GAChD,OAAsB,IAAfA,EAAIvsQ,OAAe,QAAUusQ,EAAIhsQ,OAAS,IAAM,OAASgsQ,EAAIhsQ,OAAS,GACjF,EACA2qpB,EAAWhtpB,UAAUgsQ,WAAa,SAAUjkQ,GACxC,IAAKA,EACD,MAAO,GAEM,MAAbA,EAAM,KACNA,EAAQ,IAAMA,GAElB,IAAI6qG,EAAM7qG,EAAMjG,OAKhB,GAJY,IAAR8wG,IACA7qG,GAAS,IACT6qG,EAAM,GAEE,IAARA,EAAW,CAEX,IADA,IAAI65E,EAAY,GACPphL,EAAI,EAAGmpQ,EAAQzsQ,EAAMjG,OAAQuJ,EAAImpQ,EAAOnpQ,IAC7CohL,GAAc1kL,EAAMgE,OAAOV,GAAKtD,EAAMgE,OAAOV,GAEjDtD,EAAQ,IAAM0kL,EACd75E,EAAM,CACV,CAIA,OAHY,IAARA,IACA7qG,GAAS,MAENA,CACX,EACAilpB,EAAWhtpB,UAAUktQ,SAAW,SAAUH,GACtC,IAAKA,EACD,MAAO,GAGQ,KADnBA,EAAMA,EAAI5iQ,QACFrI,SACJirQ,EAAMzuQ,KAAK0tQ,WAAWe,IAE1B,IAAI7/O,EAAUwvD,QAAQxzE,SAAS6jQ,EAAItiQ,OAAO,GAAI,IAAM,KAAKiU,QAAQ,IACjEquP,EAAMA,EAAItiQ,MAAM,EAAG,GACnB,IAAIgqQ,EAASvrQ,SAAS6jQ,EAAK,IACvBt0J,EAAI,GAKR,OAJAA,EAAEj4G,KAAMi0Q,GAAU,GAAM,KACxBh8J,EAAEj4G,KAAMi0Q,GAAU,EAAK,KACvBh8J,EAAEj4G,KAAc,IAATi0Q,GACPh8J,EAAEj4G,KAAK0sB,GACAurF,CACX,EACAu0iB,EAAWhtpB,UAAUsuQ,SAAW,SAAUt1J,EAAGR,EAAGJ,EAAGlrF,GAC/C8rF,GAAK,IACLR,GAAK,IACLJ,GAAK,IACL,IAEIK,EACA9tG,EAHAwjD,EAAMz1C,KAAKy1C,IAAI6qD,EAAGR,EAAGJ,GACrBhqD,EAAM11C,KAAK01C,IAAI4qD,EAAGR,EAAGJ,GAGrBluG,EAAIikD,EACJmqD,EAAInqD,EAAMC,EAEd,GADAzjD,EAAY,IAARwjD,EAAY,EAAImqD,EAAInqD,EACpBA,IAAQC,EACRqqD,EAAI,MAEH,CACD,OAAQtqD,GACJ,KAAK6qD,EACDP,GAAKD,EAAIJ,GAAKE,GAAKE,EAAIJ,EAAI,EAAI,GAC/B,MACJ,KAAKI,EACDC,GAAKL,EAAIY,GAAKV,EAAI,EAClB,MACJ,KAAKF,EACDK,GAAKO,EAAIR,GAAKF,EAAI,EAG1BG,GAAK,CACT,CACA,IAAI41J,EAAM,CAAC31P,KAAKywN,MAAU,IAAJ1wH,GAAU//F,KAAKywN,MAAU,IAAJx+N,GAAY,GAAI+N,KAAKywN,MAAU,IAAJj/N,GAAY,IAIlF,OAHK,QAAkBgjB,IACnBmhP,EAAI7tQ,KAAK0sB,GAENmhP,CACX,EACA2+Y,EAAWhtpB,UAAUuvQ,SAAW,SAAU92J,EAAG9tG,EAAGT,EAAGgjB,GAC/C,IAAI8rF,EACAR,EACAJ,EACA/sG,EACAktG,EACA/sG,EACAutG,EACAE,EAGJ,GADA/uG,GAAK,IACK,IAFVS,GAAK,KAID,OADAquG,EAAIR,EAAIJ,EAAIluG,EACL,CAACwO,KAAKywN,MAAU,IAAJnwH,GAAUtgG,KAAKywN,MAAU,IAAJ3wH,GAAU9/F,KAAKywN,MAAU,IAAJ/wH,GAAUlrF,GAQ3E,OAHA1hB,EAAItB,GAAK,EAAIS,GACbouG,EAAI7uG,GAAK,EAAIS,GAFb4tG,GAFAE,GAAK,KACLptG,EAAIqN,KAAKC,MAAM8/F,MAIfQ,EAAI/uG,GAAK,EAAIS,GAAK,EAAI4tG,IACdltG,GACJ,KAAK,EACD2tG,EAAI9uG,EACJsuG,EAAIS,EACJb,EAAI5sG,EACJ,MACJ,KAAK,EACDwtG,EAAID,EACJP,EAAItuG,EACJkuG,EAAI5sG,EACJ,MACJ,KAAK,EACDwtG,EAAIxtG,EACJgtG,EAAItuG,EACJkuG,EAAIa,EACJ,MACJ,KAAK,EACDD,EAAIxtG,EACJgtG,EAAIO,EACJX,EAAIluG,EACJ,MACJ,KAAK,EACD8uG,EAAIC,EACJT,EAAIhtG,EACJ4sG,EAAIluG,EACJ,MACJ,QACI8uG,EAAI9uG,EACJsuG,EAAIhtG,EACJ4sG,EAAIW,EAEZ,IAAIq1J,EAAM,CAAC11P,KAAKywN,MAAU,IAAJnwH,GAAUtgG,KAAKywN,MAAU,IAAJ3wH,GAAU9/F,KAAKywN,MAAU,IAAJ/wH,IAIhE,OAHK,QAAkBlrF,IACnBkhP,EAAI5tQ,KAAK0sB,GAENkhP,CACX,EACA4+Y,EAAWhtpB,UAAUuwQ,SAAW,SAAUnC,GAEtC,OAAOA,EAAItsQ,OAAU,IAAMxD,KAAKyuQ,IAAIqB,EAAI,IAAM9vQ,KAAKyuQ,IAAIqB,EAAI,IAAM9vQ,KAAKyuQ,IAAIqB,EAAI,MACxE,QAAkBA,EAAI,IAA6F,GAA3E,IAAXA,EAAI,IAAY11P,KAAKywN,MAAe,IAATilC,EAAI,IAAY,OAASr7O,SAAS,IAAImpH,QAAQ,GAAK,MAAe,EACpI,EAKA8wgB,EAAWhtpB,UAAUy6pB,0BAA4B,SAAUC,GACvD,IAAIn6pB,EAAQjC,KACZ,OAAIA,KAAKmpd,UAAU+sB,kBACKl2e,KAAKmpd,UAAU4mC,WAAW6+C,mBAEnC,IAAInvf,SAAQ,SAAUC,EAASqvF,GAClC9sI,EAAMknd,UAAU4mC,WAAW8+C,mCAAkC,EAAMutH,GAAY,GAAMx8mB,MAAK,SAAUn2C,GAChGi2C,EAAQj2C,EACZ,GACJ,IAGD,IACX,EACAilpB,EAAWhtpB,UAAU+sQ,IAAM,SAAUv0P,GACjC,OAAK,QAAkBA,GAIZ,KAHC,IAAMA,EAAEua,SAAS,KAAKtoB,OAAO,EAK7C,EAMAuipB,EAAWhtpB,UAAUq1d,YAAc,SAAUhjX,GACzC,OAAOnyG,KAAK+yH,MAAM/yH,KAAKC,UAAUkyG,GACrC,EAIA26iB,EAAWhtpB,UAAUguL,QAAU,WAC3B1vL,KAAKqinB,0BACLrinB,KAAKs6e,2BAA2BpqZ,OACpC,EAIAw+jB,EAAWhtpB,UAAU69L,cAAgB,WACjC,MAAO,YACX,EAKAmvd,EAAWhtpB,UAAU45nB,kBAAoB,SAAUlnK,GAG/C,IAFA,IAAIglC,EAAe,GAEVh/Y,EAAI,EAAGA,EAAIg6W,EAAO5wd,OAAQ42G,IAC/Bg/Y,EAAah/Y,GAAK,CAAE6mH,EAAGmzP,EAAOh6W,GAAGlgG,EAAGgnN,EAAGkzP,EAAOh6W,GAAGphE,GAErD,OAAOogd,CACX,EAWAs1J,EAAWhtpB,UAAUyziB,cAAgB,SAAU1/B,EAAgB1tgB,EAASw7nB,EAAkBC,EAAeC,GAErG,IAAI78kB,EAAS,CAAE1sC,EAAG,EAAG8+B,EAAG,GACpB0wa,EAAa,EACb3hd,GACIA,EAAQ2hd,YAAc3hd,EAAQ2hd,WAAa,IAC3CA,EAAa3hd,EAAQ2hd,WAAa3hd,EAAQ2hd,WAAa,EAAI,GAGnE,IAAIq+C,EAAmB,KACnB/iB,EAAgB,GACpBhlf,KAAKmpd,UAAU0jB,WAAWwoG,iCAEJ,YAAlB5/D,GACAzwB,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAW4N,yBAAyBy9I,2BAA2BnwnB,EAAS6+C,GACnH5mD,KAAKmpd,UAAU0jB,WAAW4N,yBAAyBqzI,gCAAiC,GAE7D,eAAlBr4G,GACLzwB,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAWyb,4BAA4B4vI,2BAA2BnwnB,EAAS6+C,GACtH5mD,KAAKmpd,UAAU0jB,WAAWyb,4BAA4BwlI,gCAAiC,GAEhE,aAAlBr4G,GAAmD,aAAlBA,GAAmD,iBAAlBA,IACjD,aAAlBA,GAEuB,aAAlBA,GAEkB,iBAAlBA,KAHL1N,EAAmBhggB,GAKvBi9e,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAWyN,2BAA2B49I,2BAA2BziH,EAAgB1N,GAC5H/ngB,KAAKmpd,UAAU0jB,WAAWyN,2BAA2BwzI,gCAAiC,GAE9D,SAAnBr4G,GAAgD,UAAnBA,GAAiD,cAAnBA,GAAqD,WAAnBA,GAAkD,YAAnBA,IAC3G,QAAlBA,GAEuB,SAAlBA,GAEkB,aAAlBA,GAEkB,UAAlBA,GAEkB,WAAlBA,KAPL1N,EAAmBhggB,GASvBi9e,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAW26B,sBAAsB0wH,2BAA2BziH,EAAgB1N,EAAkBnhd,GACzI5mD,KAAKmpd,UAAU0jB,WAAW26B,sBAAsBsmH,gCAAiC,GAEzD,aAAnBr4G,GAAoD,cAAnBA,GAAqD,SAAnBA,GAAgD,WAAnBA,GAAkD,WAAnBA,IAC9G,YAAlBA,GAEuB,aAAlBA,GAEkB,QAAlBA,GAEkB,UAAlBA,GAEkB,UAAlBA,KAPL1N,EAAmBhggB,GASvBi9e,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAWkP,wBAAwBm8I,2BAA2BziH,EAAgB1N,EAAkBnhd,GAC3I5mD,KAAKmpd,UAAU0jB,WAAWkP,wBAAwB+xI,gCAAiC,GAE3D,UAAnBr4G,GACD1tgB,GAAWA,EAAQi2jB,aACnBh5E,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAW+1B,sBAAsBs1H,2BAA2BnwnB,EAAS6+C,EAAQ8ia,EAAY65K,EAAkBC,EAAeC,GAKzKzjoB,KAAKmpd,UAAU0jB,WAAW+1B,sBAAsBkrH,gCAAiC,GAEzD,QAAnBr4G,IACLzwB,EAAct7B,GAAc1pd,KAAKmpd,UAAU0jB,WAAWkb,oBAAoBmwI,2BAA2BnwnB,EAAS6+C,EAAQ8ia,GACtH1pd,KAAKmpd,UAAU0jB,WAAWkb,oBAAoB+lI,gCAAiC,GAGnF,IAAIl9mB,EAAM,CAAEo0e,cAAeA,GAC3Bhlf,KAAKopd,cAAc+vD,iBAAkB,EACrCn5gB,KAAKopd,cAAcm8B,kBAAkB30e,GACrC5Q,KAAKopd,cAAc+vD,iBAAkB,CACzC,EAKAu1I,EAAWhtpB,UAAUs4jB,0BAA4B,SAAUntF,GACvD,IAAI4oC,EAAiB5oC,EAAWlX,oBAChC,GAAuB,UAAnB8/C,GAAiD,UAAnBA,GAAiD,SAAnBA,GAAgD,aAAnBA,GAAoD,gBAAnBA,GAAuD,QAAnBA,EAA0B,CACxL,IAAIxid,EAEAA,EADmB,aAAnBwid,EACW,CACP7mf,QAASi+c,EAAWj+c,QAAS8iB,YAAam7b,EAAW5W,YAAav0a,YAAamrb,EAAW3W,UAAWuf,OAAQ5I,EAAW4I,OAAQpsW,QAASwjW,EAAWxjW,QAASo5X,aAAc51B,EAAW41B,aACtLzsC,UAAW6W,EAAW7W,UAAW3lc,SAAUw8c,EAAWx8c,SAAU1V,MAAOkyd,EAAW7mc,OAAOrrB,MAAOkG,OAAQgsd,EAAW7mc,OAAOnlB,OAAQo1Z,UAAW42D,EAAW52D,UAAWp6W,WAAYgxa,EAAWhxa,WAAY4rgB,YAAa56F,EAAWuB,YAAaxxa,UAAWiwa,EAAWlle,KAAM+0iB,cAAe7vE,EAAWp+c,WAI1R,CACPG,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAAWC,YAAa4W,EAAW5W,YACtFC,UAAW2W,EAAW3W,UAAWuf,OAAQ5I,EAAW4I,OAAQpsW,QAASwjW,EAAWxjW,QAChFo5X,aAAc51B,EAAW41B,aAAczne,KAAM6xc,EAAW7xc,MAIhE,IAAIgL,EAAS,CAAEpuB,KAAMi1d,EAAW7mc,OAAO9rB,EAAGI,IAAKuyd,EAAW7mc,OAAOgT,EAAGr+B,MAAOkyd,EAAW7mc,OAAOrrB,MAAOkG,OAAQgsd,EAAW7mc,OAAOnlB,QAC1HE,EAAO/gB,KAAKsjpB,kBAAkBz2K,EAAWlX,oBAAqBkX,EAAW23B,aAE7ExkgB,KAAKmpd,UAAUg5G,kBAAkBt1F,EAAWz0P,UAAWy0P,EAAWqM,UAAWn4d,EAAMilB,EAAQitB,EAC/F,MACK,GAAuB,kBAAnBwid,GAAyD,mBAAnBA,GAA0D,yBAAnBA,EAE9Ezve,EAAS,CAAEpuB,KAAMi1d,EAAW7mc,OAAO9rB,EAAGI,IAAKuyd,EAAW7mc,OAAOgT,EAAGr+B,MAAOkyd,EAAW7mc,OAAOrrB,MAAOkG,OAAQgsd,EAAW7mc,OAAOnlB,QAE9H7gB,KAAKmpd,UAAUwtB,iBAAiB9J,EAAWz0P,UAAWy0P,EAAWO,cAAeP,EAAWlX,oBAAqB3vb,EAAQ6mc,EAAWj+c,QAASi+c,EAAW5W,YAAa4W,EAAW3W,UAAW2W,EAAW7xc,UAEpM,CAED,IAAImgmB,EAAU,CACVvsmB,QAASi+c,EAAWj+c,QAASonc,UAAW6W,EAAW7W,UAAWC,YAAa4W,EAAW5W,YACtFC,UAAW2W,EAAW3W,UAAWuf,OAAQ5I,EAAW4I,OAAQpsW,QAASwjW,EAAWxjW,QAChFo5X,aAAc51B,EAAW41B,cAEzBz8d,EAAS,CAAEpuB,KAAMi1d,EAAW7mc,OAAO9rB,EAAGI,IAAKuyd,EAAW7mc,OAAOgT,EAAGr+B,MAAOkyd,EAAW7mc,OAAOrrB,MAAOkG,OAAQgsd,EAAW7mc,OAAOnlB,QAEjH,UADTE,EAAO/gB,KAAKsjpB,kBAAkBz2K,EAAWlX,oBAAqBkX,EAAW23B,eAC7C,UAATzjf,GAA6B,aAATA,GAAgC,cAATA,IAC9Do6mB,EAAQp1D,mBAAqB/lkB,KAAKkzpB,eAAermL,EAAWqtB,uBAC5DihI,EAAQn1D,iBAAmBhmkB,KAAKkzpB,eAAermL,EAAWstB,wBAC1DghI,EAAQplK,gBAAkB8W,EAAW9W,iBAEzC,IAAImjF,OAAgB,EAChBl5iB,KAAKmpd,UAAUm6C,kBACf41C,EAAgB,CAEZjjI,UAAW42D,EAAW52D,UAAW5lZ,SAAUw8c,EAAWx8c,SAAUwrC,WAAYgxa,EAAWhxa,WACvFjtC,QAASi+c,EAAWooD,aAAc1xB,aAAc12B,EAAW02B,aAAcvtC,UAAW6W,EAAWmoD,gBAGnGh1hB,KAAKmpd,UAAUg5G,kBAAkBt1F,EAAWz0P,UAAWy0P,EAAWqM,UAAWn4d,EAAMilB,EAAQm1lB,EAAS,KAAM,KAAM,KAAMjiF,IAItHl5iB,KAAKmpd,UAAUg5G,kBAAkBt1F,EAAWz0P,UAAWy0P,EAAWqM,UAAWn4d,EAAMilB,EAAQm1lB,EAEnG,CACJ,EAIAuzB,EAAWhtpB,UAAU2zkB,+BAAiC,WAClD,GAAIr1kB,KAAKmpd,UAAU50X,cAAc2gZ,aAAel1e,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GAAI,CACzF,IAAIrI,EAAa7se,KAAKmpd,UAAU50X,cAAc2gZ,YAAY,GACnB,yBAAnCrI,EAAWlX,qBAAqF,kBAAnCkX,EAAWlX,qBAA8E,mBAAnCkX,EAAWlX,qBAA+E,SAAnCkX,EAAWlX,sBACrL31d,KAAKmpd,UAAUm4C,uBAAuBz0B,EAAWqM,UAAWrM,EAAWz0P,UAAWy0P,GAClF7se,KAAKmpd,UAAUppY,eAAe8sZ,EAAWz0P,WAEjD,CACJ,EAIAs2a,EAAWhtpB,UAAUkxpB,2BAA6B,SAAUt8K,EAAmBtwe,GAC3E,IAAIm/e,EAAqBnlf,KAAKy6e,yBAC9B0K,EAAmBulK,gBAAgBthpB,MAAMyyD,WAAa71D,EACtDm/e,EAAmBynK,kBACnB,IAAI17L,EAAalxd,KAAKopd,cAAc+B,gBAEhC+gM,GADU/roB,WAAWgle,EAAmBulK,gBAAgBthpB,MAAM8mB,aAC7Comd,EAAkBtwc,OAAOnlB,OAASqwc,GAEnDi7L,EAAgBhsoB,WAAWgle,EAAmBulK,gBAAgBthpB,MAAMuR,OADlD,EAEtBwxoB,GAAmCj7L,EAEnC,IAAImlG,GADJ61F,GAAqCh7L,GACFolB,EAAkBtwc,OAAOnlB,OACxDm4B,OAAIv6C,EACJ43jB,EAAa,EAEbr9gB,GADAA,EAAIs9b,EAAkB3pd,QAAQq5K,QAAWqwX,EAAa,GAC9C,EAAIr9gB,OAAIv6C,GAGhB43jB,EAAaj8iB,KAAKQ,IAAIy7iB,GAEtBr9gB,GADAA,EAAIs9b,EAAkB3pd,QAAQq5K,QAAWqwX,EAAa,GAC9C,EAAIr9gB,OAAIv6C,GAEpB,IAAI+tpB,EAAaL,EAAgB71K,EAAkBtwc,OAAOrrB,MACtDT,OAAIzb,EACJ+tpB,EAAY,EAEZtyoB,GADAA,EAAIo8d,EAAkB3pd,QAAQk5K,QAAW2md,EAAY,GAC7C,EAAItyoB,OAAIzb,GAGhB+tpB,EAAYpyoB,KAAKQ,IAAI4xoB,GACrBtyoB,EAAIo8d,EAAkB3pd,QAAQk5K,QAAW2md,EAAY,GAEzDl2K,EAAkBtwc,OAAOrrB,MAAQwxoB,EACjC71K,EAAkBtwc,OAAOnlB,OAASqroB,EAClClspB,KAAKmpd,UAAUw7C,mBAAmBruB,EAAmB,CAAEz6a,WAAY71D,EAAcggC,OAAQ,CAAErrB,MAAO27d,EAAkBtwc,OAAOrrB,MAAOkG,OAAQy1d,EAAkBtwc,OAAOnlB,OAAQm4B,EAAGA,EAAG9+B,EAAGA,KACpLla,KAAKmpd,UAAUk5C,eAAe/rB,EAAkBl+P,UAAWp4O,KAAKmpd,UAAU03C,4BAC1E7ggB,KAAKkvpB,oBAAoB54K,EAAmB,SAChD,EACAo4K,EAAWhtpB,UAAUs9gB,aAAe,SAAUv1C,EAAQ9f,EAAWC,EAAYF,GACzE,IAAIo+D,EAAQ9nhB,KAAKopd,cAAc0xF,eAC/BrxE,EAAO9ud,MAAQgvc,EAAYm+D,EAC3Br+C,EAAO5od,OAAS+oc,EAAak+D,EAC7Br+C,EAAOrge,MAAMuR,MAAQgvc,EAAY,KACjC8f,EAAOrge,MAAMyX,OAAS+oc,EAAa,KACnC6f,EAAOrge,MAAM+kB,SAAW,WACxBs7c,EAAOrge,MAAMm4C,OAAS,IACtBvhD,KAAKopd,cAAcW,mBAAmB0f,EAAQ/f,EAClD,EACOglM,CACX,CA9zN+B,GCf3B,GAAwC,SAAU1+T,EAASmpM,EAAYp7X,EAAGq7X,GAC1E,OAAO,IAAKr7X,IAAMA,EAAIt+G,WAAU,SAAUC,EAASqvF,GAC/C,SAAS69M,EAAUnjV,GAAS,IAAMg7L,EAAK20V,EAAUv4Z,KAAKp3H,GAAS,CAAE,MAAOhG,GAAKsrI,EAAOtrI,EAAI,CAAE,CAC1F,SAASopV,EAASpjV,GAAS,IAAMg7L,EAAK20V,EAAiB,MAAE3vhB,GAAS,CAAE,MAAOhG,GAAKsrI,EAAOtrI,EAAI,CAAE,CAC7F,SAASghM,EAAKzmM,GAAUA,EAAO8iI,KAAOphF,EAAQ1hD,EAAOyL,OAAS,IAAIs0J,GAAE,SAAUr+G,GAAWA,EAAQ1hD,EAAOyL,MAAQ,IAAGm2C,KAAKgtS,EAAWC,EAAW,CAC9IpoJ,GAAM20V,EAAYA,EAAU3yhB,MAAMupV,EAASmpM,GAAc,KAAKt4Z,OAClE,GACJ,EACI,GAA4C,SAAUmvN,EAASv0U,GAC/D,IAAsGw+F,EAAGjhE,EAAG2hE,EAAGT,EAA3GjrB,EAAI,CAAE5mE,MAAO,EAAG8/U,KAAM,WAAa,GAAW,EAAPxtP,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG0+a,KAAM,GAAIC,IAAK,IAChG,OAAOp/a,EAAI,CAAE2mB,KAAM04Z,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXn5Z,SAA0BlmB,EAAEkmB,OAAOC,UAAY,WAAa,OAAOrgI,IAAM,GAAIk6G,EACvJ,SAASq/a,EAAKh/a,GAAK,OAAO,SAAU3uG,GAAK,OACzC,SAAcunI,GACV,GAAIl5B,EAAG,MAAM,IAAIgnB,UAAU,mCAC3B,KAAOhyC,OACH,GAAIgrB,EAAI,EAAGjhE,IAAM2hE,EAAY,EAARw4B,EAAG,GAASn6F,EAAU,OAAIm6F,EAAG,GAAKn6F,EAAS,SAAO2hE,EAAI3hE,EAAU,SAAM2hE,EAAEjmG,KAAKskC,GAAI,GAAKA,EAAE6nF,SAAWlmB,EAAIA,EAAEjmG,KAAKskC,EAAGm6F,EAAG,KAAKrS,KAAM,OAAOnmB,EAE3J,OADI3hE,EAAI,EAAG2hE,IAAGw4B,EAAK,CAAS,EAARA,EAAG,GAAQx4B,EAAElxG,QACzB0pI,EAAG,IACP,KAAK,EAAG,KAAK,EAAGx4B,EAAIw4B,EAAI,MACxB,KAAK,EAAc,OAAXlkD,EAAE5mE,QAAgB,CAAE5e,MAAO0pI,EAAG,GAAIrS,MAAM,GAChD,KAAK,EAAG7xC,EAAE5mE,QAAS2wB,EAAIm6F,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKlkD,EAAEqqc,IAAI/ihB,MAAO04E,EAAEoqc,KAAK9ihB,MAAO,SACxC,QACI,MAAkBokG,GAAZA,EAAI1rB,EAAEoqc,MAAY71hB,OAAS,GAAKm3G,EAAEA,EAAEn3G,OAAS,KAAkB,IAAV2vI,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAElkD,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVkkD,EAAG,MAAcx4B,GAAMw4B,EAAG,GAAKx4B,EAAE,IAAMw4B,EAAG,GAAKx4B,EAAE,IAAM,CAAE1rB,EAAE5mE,MAAQ8qH,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYlkD,EAAE5mE,MAAQsyF,EAAE,GAAI,CAAE1rB,EAAE5mE,MAAQsyF,EAAE,GAAIA,EAAIw4B,EAAI,KAAO,CACpE,GAAIx4B,GAAK1rB,EAAE5mE,MAAQsyF,EAAE,GAAI,CAAE1rB,EAAE5mE,MAAQsyF,EAAE,GAAI1rB,EAAEqqc,IAAIp3hB,KAAKixI,GAAK,KAAO,CAC9Dx4B,EAAE,IAAI1rB,EAAEqqc,IAAI/ihB,MAChB04E,EAAEoqc,KAAK9ihB,MAAO,SAEtB48H,EAAK13H,EAAK/G,KAAKs7U,EAAS/gQ,EAC5B,CAAE,MAAOxrF,GAAK0vI,EAAK,CAAC,EAAG1vI,GAAIu1C,EAAI,CAAG,CAAE,QAAUihE,EAAIU,EAAI,CAAG,CACzD,GAAY,EAARw4B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE1pI,MAAO0pI,EAAG,GAAKA,EAAG,QAAK,EAAQrS,MAAM,EAC9E,CAtBgD2jE,CAAK,CAAClqF,EAAG3uG,GAAK,CAAG,CAuBrE,EASIywpB,GAAgC,WAQhC,SAASA,EAAelzM,EAAW4mC,GAC/B/vf,KAAKmpd,UAAYA,EACjBnpd,KAAKopd,cAAgB2mC,CACzB,CAySA,OAhSAssK,EAAe36pB,UAAUw7hB,uBAAyB,SAAUligB,EAAMo9M,GAC9D,GAAIp4O,KAAKmpd,UAAU8zE,gBAAiB,CAChC,IAAI6K,EAAa9sgB,EAAK8sgB,WAClBw0H,EAAmBthoB,EAAK+sgB,gBAC5B/niB,KAAK65hB,eAAiB7+f,EAAK6+f,eAC3B75hB,KAAK85hB,SAAW9+f,EAAK8+f,SACrB95hB,KAAKg6hB,YAAch/f,EAAKgtgB,mBACpBF,GAAcA,EAAWtkiB,OAAS,GAAK84pB,EAAiB94pB,OAAS,GACjExD,KAAKu8pB,cAAcz0H,EAAYw0H,EAAkBlkb,GAEjDp4O,KAAK65hB,gBAAkB75hB,KAAK65hB,eAAer2hB,OAAS,GAAKxD,KAAK85hB,SAASt2hB,OAAS,GAChFxD,KAAK+5hB,mBAAmB/5hB,KAAK65hB,eAAgB75hB,KAAK85hB,SAAU95hB,KAAKg6hB,YAAa5hT,EAEtF,CACJ,EAIAikb,EAAe36pB,UAAUqpiB,uCAAyC,SAAU97D,EAAaz+R,EAAKptM,GAE1F,GADci5f,GAAsBj5f,EAASA,EAAQ+ld,UAAW34Q,GACpDhtM,OAAS,EACbgtM,EAAIpjM,OAAOw2D,UAAU5+D,SAAS,oBAC9Biqe,EAAY7le,MAAMmlB,OAAS,OAC3B0gd,EAAY7le,MAAMulB,cAAgB,OAClCsgd,EAAY1ld,MAAQ,QAGvB,CACD,IAAIizoB,EAAmB99pB,SAAS6nM,uBAAuB,kBACvD,GAAIi2d,GAAoBA,EAAiBh5pB,OAAS,EAC9C,IAAK,IAAIuJ,EAAI,EAAGA,EAAIyvpB,EAAiBh5pB,OAAQuJ,IACO,SAA5CyvpB,EAAiBzvpB,GAAG3D,MAAMulB,gBAC1B6toB,EAAiBzvpB,GAAG3D,MAAMulB,cAAgB,OACzC6toB,EAAiBzvpB,GAAGwc,QACrBizoB,EAAiBzvpB,GAAGwc,MAAQizoB,EAAiBzvpB,GAAG0rB,KAGhE,CACJ,EACA4joB,EAAe36pB,UAAU66pB,cAAgB,SAAUz0H,EAAYw0H,EAAkBlkb,GA0G7E,IAzGA,IAAIn2O,EAAQjC,KACRgoN,EAAQhoN,KACRy8pB,GAAqB,EACrBn2pB,EAAU,SAAUyG,GACpB,IAAIqlJ,GAAO,QAAc,IAAK,CAAE16H,GAAI,cAAgB3qB,EAAI,IAAMqrO,IAE1Dz3N,EAAO27oB,EAAiBvvpB,GAG5B,IAFAqlJ,EAAO48C,EAAO0td,uBAAuBtqgB,EAAMzxI,EAAMy3N,IAC5C7uN,MAAQu+gB,EAAW/6hB,GACpB+6hB,EAAW/6hB,IAA6C,IAAvC+6hB,EAAW/6hB,GAAGvF,MAAM,QAAQhE,OAAc,CAC3D,IAAIm5pB,EAAgB,UAAY70H,EAAW/6hB,GAC3CqlJ,EAAK3tJ,aAAa,OAAQk4pB,EAC9B,MAEIvqgB,EAAK3tJ,aAAa,OAAQqjiB,EAAW/6hB,IAEG,eAAxCiiM,EAAOm6Q,UAAUyzM,oBACjBxqgB,EAAKhlJ,OAAS,QACdglJ,EAAKu3d,QAAU,SAAUlmnB,GAAK,OAAO,GAAUxB,OAAO,OAAQ,GAAQ,WAClE,IAAIqpV,EACJ,OAAO,GAAYtrV,MAAM,SAAUT,GAC/B,OAAQA,EAAG8oB,OACP,KAAK,EACD,OAAMo0oB,EAA2B,CAAC,EAAa,IAC/Ch5pB,EAAEkW,iBACIquM,EAAMohQ,cAAc0zC,gBAAgBC,IAAY/0S,EAAMohQ,cAAc0zC,gBAAgBoK,GACnF,CAAC,GAAc,GADgG,CAAC,EAAa,IAExI,KAAK,EAAG,MAAO,CAAC,EAAal/S,EAAMmhQ,UAAU64G,mBAAmBl6B,EAAW/6hB,GAAIqlJ,IAC/E,KAAK,EAMD,OALAk5L,EAAW/rV,EAAG4oW,UAEVs0T,GAAqB,EACrBrqgB,EAAKrkH,SAEF,CAAC,EAAcu9S,GAC1B,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAED,OADAmxU,GAAqB,EACd,CAAC,GAAc,GAC1B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,EACJrqgB,EAAKyqgB,YAAc,WACf70c,EAAM80c,sBAAsB1qgB,EAChC,GAE6C,WAAxC48C,EAAOm6Q,UAAUyzM,oBACtBxqgB,EAAKhlJ,OAAS,SACdglJ,EAAKu3d,QAAU,SAAUlmnB,GAAK,OAAO,GAAUxB,OAAO,OAAQ,GAAQ,WAClE,IAAIqpV,EACJ,OAAO,GAAYtrV,MAAM,SAAUT,GAC/B,OAAQA,EAAG8oB,OACP,KAAK,EACD,OAAMo0oB,EAA2B,CAAC,EAAa,IAC/Ch5pB,EAAEkW,iBACIquM,EAAMohQ,cAAc0zC,gBAAgBC,IAAY/0S,EAAMohQ,cAAc0zC,gBAAgBoK,GACnF,CAAC,GAAc,GADgG,CAAC,EAAa,IAExI,KAAK,EAAG,MAAO,CAAC,EAAal/S,EAAMmhQ,UAAU64G,mBAAmBl6B,EAAW/6hB,GAAIqlJ,IAC/E,KAAK,EAMD,OALAk5L,EAAW/rV,EAAG4oW,UAEVs0T,GAAqB,EACrBrqgB,EAAKrkH,SAEF,CAAC,EAAcu9S,GAC1B,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAED,OADAmxU,GAAqB,EACd,CAAC,GAAc,GAC1B,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,EACJrqgB,EAAKyqgB,YAAc,WACf70c,EAAM80c,sBAAsB1qgB,EAChC,GAE6C,cAAxC48C,EAAOm6Q,UAAUyzM,qBACtBxqgB,EAAKu3d,QAAU,SAAUlmnB,GAAK,OAAO,GAAUxB,OAAO,OAAQ,GAAQ,WAElE,OAAO,GAAYjC,MAAM,SAAUT,GAC/B,OAAQA,EAAG8oB,OACP,KAAK,EAED,OADA5kB,EAAEkW,iBACIquM,EAAMohQ,cAAc0zC,gBAAgBC,IAAY/0S,EAAMohQ,cAAc0zC,gBAAgBoK,GACnF,CAAC,GAAc,GADgG,CAAC,EAAa,GAExI,KAAK,EAAG,MAAO,CAAC,EAAal/S,EAAMmhQ,UAAU64G,mBAAmBl6B,EAAW/6hB,GAAIqlJ,IAC/E,KAAK,EAKD,OAJW7yJ,EAAG4oW,QAEV7oW,OAAOgzE,KAAK8/E,EAAK35H,KAAM,SAAU,gCAE9B,CAAC,GAAc,GAElC,GACJ,GAAI,EACJ25H,EAAKyqgB,YAAc,WACf70c,EAAM80c,sBAAsB1qgB,EAChC,GAEU1zJ,SAASkuD,eAAeoiJ,EAAOm6Q,UAAU/ld,QAAQs0B,GAAK,YAAc0gN,GAC1E10O,YAAY0uJ,EACxB,EACI48C,EAAShvM,KACJ+M,EAAI,EAAGA,EAAI+6hB,EAAWtkiB,OAAQuJ,IACnCzG,EAAQyG,EAEhB,EACAsvpB,EAAe36pB,UAAUo7pB,sBAAwB,SAAU1qgB,GACvD,QAAIpyJ,KAAKopd,cAAc0zC,gBAAgBC,IAAY/8f,KAAKopd,cAAc0zC,gBAAgBoK,KAIlFlngB,KAAKmpd,UAAU+4G,mBAAmB9va,GAC3B,GAEf,EACAiqgB,EAAe36pB,UAAUq4hB,mBAAqB,SAAUF,EAAgBC,EAAUE,EAAa5hT,GA2C3F,IA1CA,IAAIpwB,EAAQhoN,KACRyqP,EAAU,SAAU19O,GACpB,IAAIqlJ,GAAO,QAAc,IAAK,CAAE16H,GAAI,WAAa3qB,EAAI,IAAMqrO,IAEvDz3N,EAAOk5gB,EAAe9shB,GAG1B,IAFAqlJ,EAAOs4F,EAAOgya,uBAAuBtqgB,EAAMzxI,EAAMy3N,IAC5C3zO,aAAa,OAAQ,2BACNhG,IAAhBq7hB,EAAS/shB,IAAoB+shB,EAAS/shB,IAAM,EAAG,CAC/C,IAAIgwpB,EAAkBrya,EAAO0+N,cAAcjxO,SAASC,GAAiB,OACjE4kb,OAAe,EACfviY,OAAc,EACdtiD,EAAWuS,EAAO0+N,cAAcjxO,SAAS2hT,EAAS/shB,IAClDorO,IAC2B,IAAvB6hT,EAAYx2hB,QACZw5pB,EAAgBhjI,EAAYjthB,GAE5B0tR,EAActiD,EAAS79N,IAAMowO,EAAO0+N,cAAc+B,iBAAoB4xM,EAAiBC,GAAgBtya,EAAO0+N,cAAc+B,iBAI5H1wL,EAActiD,EAAS79N,IAAMowO,EAAO0+N,cAAc+B,sBAGtC1sd,IAAhBg8R,IACAroI,EAAKxqJ,KAAO6yR,EAAYhmQ,WACxB29H,EAAK3tJ,aAAa,aAAcg2R,EAAYhmQ,YAC5C29H,EAAKu3d,QAAU,WACX,OAAI3ha,EAAMohQ,cAAc0zC,gBAAgBC,IAAY/0S,EAAMohQ,cAAc0zC,gBAAgBoK,KAKpFl/S,EAAMohQ,cAAcqG,gBAAgBpkY,UAAYzgF,SAASwnJ,EAAKxqJ,QAJvD,CAOf,GAEUlJ,SAASkuD,eAAe89L,EAAOy+N,UAAU/ld,QAAQs0B,GAAK,YAAc0gN,GAC1E10O,YAAY0uJ,EACxB,CACJ,EACIs4F,EAAS1qP,KACJ+M,EAAI,EAAGA,EAAI8shB,EAAer2hB,OAAQuJ,IACvC09O,EAAQ19O,EAEhB,EAEAsvpB,EAAe36pB,UAAUg7pB,uBAAyB,SAAUtqgB,EAAMzxI,EAAMy3N,GAgBpE,OAfAhmF,EAAK3vJ,UAAY,iBACjB2vJ,EAAKhpJ,MAAMooB,WAAa,cACxB4gI,EAAKhpJ,MAAM+kB,SAAW,WACtBikI,EAAKhpJ,MAAMwO,KAAQ+I,EAAKg1Y,KAAO31Z,KAAKopd,cAAc+B,gBAAmB,KACrE/4T,EAAKhpJ,MAAMkR,IAAOqG,EAAK0zX,IAAMr0Y,KAAKopd,cAAc+B,gBAAmB,KACnE/4T,EAAKhpJ,MAAMuR,MAASgG,EAAK8pc,MAAQzqd,KAAKopd,cAAc+B,gBAAmB,KACnExqc,EAAK+pc,OAAS,GACdt4T,EAAKhpJ,MAAMyX,QAAWF,EAAK+pc,OAAS1qd,KAAKopd,cAAc+B,gBAAmB,KAC1E/4T,EAAKhpJ,MAAMkR,KAAQqG,EAAK0zX,IAAM1zX,EAAK+pc,QAAU1qd,KAAKopd,cAAc+B,gBAAmB,MAGnF/4T,EAAKhpJ,MAAMyX,QAAWF,EAAK+pc,OAAS,GAAK/pc,EAAK+pc,OAAS/pc,EAAK+pc,QAAU1qd,KAAKopd,cAAc+B,gBAAmB,KAEhH/4T,EAAKhpJ,MAAM6kB,MAAQ,cACnBjuB,KAAKopd,cAAcW,mBAAmB33T,EAAMgmF,GACrChmF,CACX,EAQAiqgB,EAAe36pB,UAAUiomB,6BAA+B,SAAUjgJ,EAAYjkK,GAC1E,GAAIzlT,KAAKopd,cAAcuD,UAAY,EAAG,CAClC,IAAI9C,EAAU7pd,KAAKopd,cAAc/rS,WAAW,YAAcqsS,GAC1D,GAAIG,EAEA,IADA,IAAIozM,EAAiBpzM,EAAQ/kd,WACpBiI,EAAI,EAAGA,EAAIkwpB,EAAez5pB,OAAQuJ,IAAK,CAC5C,IAAIg3S,EAAek5W,EAAelwpB,GACL,MAAzBg3S,EAAa/kS,UACTymS,EACA1B,EAAangP,UAAUjoD,IAAI,oBAG3BooS,EAAangP,UAAUC,OAAO,oBAG1C,CAER,CACJ,EAQAw4lB,EAAe36pB,UAAUw7pB,yBAA2B,SAAU95pB,EAASqiT,GAC/DA,EACAriT,EAAQwgE,UAAUjoD,IAAI,oBAGtBvY,EAAQwgE,UAAUC,OAAO,mBAEjC,EAIAw4lB,EAAe36pB,UAAUguL,QAAU,WAC/B,IAAK,IAAI3iL,EAAI,EAAGA,EAAI/M,KAAKopd,cAAcuD,UAAY,EAAG5/c,IAAK,CACvD,IAAI88c,EAAUnrd,SAASkuD,eAAe5sD,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,YAAc3qB,GAChF,GAAI88c,EAAS,CAET,IAAI4yE,EAAW5yE,EAAQ7nU,qBAAqB,KAC5C,GAAwB,IAApBy6Y,EAASj5hB,OACT,IAAK,IAAIsF,EAAQ2zhB,EAASj5hB,OAAS,EAAGsF,GAAS,EAAGA,IAC9C2zhB,EAAS3zhB,GAAOmlE,WAAWxxB,YAAYggf,EAAS3zhB,GAG5D,CACJ,CACJ,EAIAuzpB,EAAe36pB,UAAU69L,cAAgB,WACrC,MAAO,gBACX,EACO88d,CACX,CArTmC,GCtC/Bc,GAAuB,WAMvB,SAASA,EAAMv5K,EAAQtkP,GACnBt/P,KAAKo9pB,YAAc,KACnBp9pB,KAAKq9pB,WAAa,IAClBr9pB,KAAKmpd,UAAYy6B,EACjB5jf,KAAKopd,cAAgB9pN,CACzB,CAikBA,OA3jBA69Z,EAAMz7pB,UAAU4kK,MAAQ,WACpB,IACI8xE,EADAn2O,EAAQjC,KAERA,KAAKopd,cAAcuD,UAAY,IAE/B3sd,KAAKs9pB,sBAAuB,QAAc,MAAO,CAC7C5loB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAChCj1B,UAAW,gCAEkB,YAA7BzC,KAAKmpd,UAAUo0M,WACfv9pB,KAAKopd,cAAcsnE,2BAA0B,GAC7C1whB,KAAKw9pB,OAAS9+pB,SAAS6F,cAAc,UACrCvE,KAAKw9pB,OAAO/6pB,UAAY,cACxBzC,KAAKw9pB,OAAO9loB,GAAK,cACjB13B,KAAKw9pB,OAAOp0pB,MAAM+kB,SAAW,QAC7BnuB,KAAKw9pB,OAAOp0pB,MAAMkR,IAAM,eACxB5b,SAAS+c,KAAK/X,YAAY1D,KAAKw9pB,QAC/Bx9pB,KAAKy9pB,SAAWz9pB,KAAKw9pB,OAAOE,cAAgB19pB,KAAKw9pB,OAAOE,cAAgB19pB,KAAKw9pB,OAAOG,gBACpF39pB,KAAKy9pB,SAAS/+pB,SAAS4zE,SAGvBtyE,KAAK68K,YAAcv9K,OAAOgzE,KAAK,GAAI,QAAS,UAAYhzE,OAAOmoK,YAAc,UAAYnoK,OAAOkoK,WAAa,cAC7GxnK,KAAK68K,YAAYm1T,OAAO,EAAG,GAC3Bhye,KAAK68K,YAAY+gf,SAAS5+K,OAAO6+K,WAAY7+K,OAAO8+K,aACpD99pB,KAAK+9pB,4BAA4B/9pB,KAAK68K,YAAYn+K,SAAS+c,OAE/D+f,YAAW,WACP,IAAK48M,EAAY,EAAGA,EAAYn2O,EAAMmnd,cAAcuD,UAAWv0O,IAAa,CACxE,IAAIuxO,EAAY1nd,EAAMmnd,cAAcjxO,SAASC,GAAWz9N,MACpDivc,EAAa3nd,EAAMmnd,cAAcjxO,SAASC,GAAWv3N,OAErDm9oB,EAAa,IACbC,EAAc,KAMlBh8pB,EAAMo7pB,WAAa,IACnBp7pB,EAAMm7pB,YAAc,KAEhBzzM,EAAYC,IACZo0M,EAAa,KACbC,EAAc,KAEZt0M,GAAcq0M,EAZF,IAY+Br0M,GAAcq0M,EAZ7C,IAY6Ep0M,GAAeq0M,EAX3F,IAW0Hr0M,GAAeq0M,EAXzI,KAYfh8pB,EAAMo7pB,WAVS,IAWfp7pB,EAAMm7pB,YAVU,MAYpBn7pB,EAAMknd,UAAUw4D,YAAYu8I,sBAAsB9lb,EAAWuxO,EAAWC,EAAY3nd,EAAMmnd,cAAcuD,UAC5G,CACA1qd,EAAMknd,UAAUk7G,aAAapikB,EAAMknd,UAAUoyD,iBACjD,GAAG,KAEX,EACA4hJ,EAAMz7pB,UAAUw8pB,sBAAwB,SAAU9lb,EAAWuxO,EAAWC,EAAY+C,GAChF,IAAI3kQ,EAAQhoN,KAGRywf,EAAa,CACb/mC,WAAYtxO,EAAU3jN,WAAY09V,WAAYnyX,KAAKopd,cAAcj3F,WACjEoqJ,OAAQv8gB,KAAKopd,cAAcmzD,OAAQrrD,WAAY,IAC/CxoR,OAAQ,cACRguD,UAAW12P,KAAKmpd,UAAU/ld,QAAQs0B,GAClCtB,SAAUp2B,KAAKopd,cAAcj3F,WAC7By0K,wBAAyB5miB,KAAKopd,cAAcw9E,wBAAwBxuT,IAEpEp4O,KAAKopd,cAAcmiE,iBAEnB96B,EAAWt+H,WAAanyX,KAAKopd,cAAcmiE,gBAE/CvjU,EAAMohQ,cAAck4E,2BACpBt5U,EAAM8qU,oBAAsB,IAAItjC,GAAYxnS,EAAMmhQ,WAClDnhQ,EAAM8qU,oBAAoBt2d,IAAMwrJ,EAAMmhQ,UAAUqzD,WAAa,IAAMx0T,EAAMmhQ,UAAUwiE,qBAAqBrlX,MACxG0hD,EAAM8qU,oBAAoBzrY,aAAe,KACzC2gE,EAAM8qU,oBAAoB12c,MAAO,EAC7Bp8E,KAAKopd,cAAc2wD,cAAgB/5gB,KAAKmpd,UAAU47E,4BAClD/kiB,KAAKmpd,UAAU67E,oBAAoBh9U,EAAMmhQ,UAAUwiE,qBAAqBwF,UACxEnxhB,KAAKopd,cAAc2wD,cAAe,EAClC/5gB,KAAKopd,cAAcsnE,2BAA0B,IAG7C1oU,EAAM8qU,oBAAoBnvY,KAAK8sW,GAGnCzoS,EAAM8qU,oBAAoBn8V,UAAY,SAAU34L,GAC5CgqN,EAAMohQ,cAAcs4C,SAAU,EAE9B,IAAIy8J,EAAangqB,EAAOg9B,KAExB,GADegtL,EAAMohQ,cAAckjE,iBAAiB6xI,GAEhDn2c,EAAMohQ,cAAcsnE,2BAA0B,OAE7C,CACD,GAAIytI,GAC0B,iBAAfA,EACP,IAE8B,iBAD1BA,EAAav8pB,KAAK+yH,MAAMwpiB,MAEpBn2c,EAAMohQ,cAAcsiE,eAAe,IAAKyyI,EAAYn2c,EAAMmhQ,UAAUwiE,qBAAqBrlX,OACzF63f,EAAa,KAErB,CACA,MAAOz2lB,GACHsgJ,EAAMohQ,cAAcsiE,eAAe,IAAKyyI,EAAYn2c,EAAMmhQ,UAAUwiE,qBAAqBrlX,OACzF63f,EAAa,IACjB,CAGR,GAAIA,GAAcA,EAAW/noB,WAAa4xL,EAAMohQ,cAAcj3F,WAAY,CACtEnqK,EAAMmhQ,UAAU0iE,uBAAuB7jU,EAAMmhQ,UAAUwiE,qBAAqBrlX,MAAO63f,GACnF,IAAIC,EAAqB,GACzB,IAAKp2c,EAAMmhQ,UAAUosB,mBAAmB4yF,UAAW,CAE/C,IAAIr1B,EAAwB9qV,EAAMohQ,cAAcmwD,8BAChD,GAAIu5B,GAAyBA,EAAsBqrH,EAAWz0M,aAAe1hQ,EAAMohQ,cAAcy1D,+BAAgC,CAE7H,IAAIw/I,EAAkBvrH,EAAsBqrH,EAAWz0M,YACvD,GAAI1hQ,EAAMohQ,cAAcmvD,eAAgB,CACpC,IAAItzB,EAAuBo5K,EAAgBp5K,qBACvC7M,EAAkBimL,EAAgBjmL,gBAClC8M,EAAyBm5K,EAAgBn5K,uBACzCwuI,EAAkB2qC,EAAgBj5K,iBAElCuuI,EAAuB0qC,EAAgBjhI,sBAE3CghI,EAAqBp2c,EAAMmhQ,UAAU+sB,iBAAiBoE,2BAA2B+4I,2BAA2BpuI,EAAsBk5K,EAAWz0M,WAAYgqK,EAAiBt7I,EAAiB8M,EAAwByuI,EACvN,MAGIyqC,EAAqBp2c,EAAMmhQ,UAAU+sB,iBAAiBoE,2BAA2B+4I,2BAA2BgrC,EAAgBp5K,qBAAsBk5K,EAAWz0M,WAAY20M,EAAgBj5K,iBAAkBi5K,EAAgBjmL,gBAAiBimL,EAAgBn5K,uBAAwBm5K,EAAgB1qC,qBAE5S,CACI3ra,EAAMohQ,cAAcqvD,gCAEpB2lJ,EAAqBp2c,EAAMmhQ,UAAU+sB,iBAAiBoE,2BAA2B+4I,2BAA2B,KAAM8qC,EAAWz0M,WAAY,KAAM,KAAM,KAAM,MAEnK,CACA,IAAI40M,EAAsBH,EAAWz0M,WAErC1hQ,EAAMu2c,aAAc,QAAc,SAAU,CAAE7moB,GAAIswL,EAAMmhQ,UAAU/ld,QAAQs0B,GAAK,gBAAkB0gN,EAAW31O,UAAW,sBACvHulN,EAAMu2c,YAAYn1pB,MAAMuR,MAAQgvc,EAAY,KAC5C3hQ,EAAMu2c,YAAYn1pB,MAAMyX,OAAS+oc,EAAa,KAE9C5hQ,EAAMu2c,YAAY19oB,OADI,EACKmnM,EAAMo1c,YAAgC99pB,OAAOq5E,iBACxEqvI,EAAMu2c,YAAY5jpB,MAFI,EAEIqtM,EAAMq1c,WAA+B/9pB,OAAOq5E,iBACtE,IAAIgzZ,EAAY3jR,EAAMu2c,YAAY53f,WAAW,MACzC63f,EAAc,IAAI50oB,MAClB60oB,EAAoB,IAAI70oB,MAC5B40oB,EAAYnzgB,OAAS,WACZu+T,EAAaD,IAAe3hQ,EAAMmhQ,UAAUu1M,qBAC7C/yL,EAAUjC,UAAU80L,EAAa,EAAG,EAAGx2c,EAAMu2c,YAAY5jpB,MAAOqtM,EAAMu2c,YAAY19oB,QAC9Eu9oB,GACAzyL,EAAUjC,UAAU+0L,EAAmB,EAAG,EAAGz2c,EAAMu2c,YAAY5jpB,MAAOqtM,EAAMu2c,YAAY19oB,UAK5F8qd,EAAUvjN,UAAoC,GAA1BpgE,EAAMu2c,YAAY5jpB,MAAwC,GAA3BqtM,EAAMu2c,YAAY19oB,QAErE8qd,EAAUhlW,QAAQ,GAAMvsH,KAAKm5T,IAE7Bo4J,EAAUvjN,UAAsC,IAA3BpgE,EAAMu2c,YAAY19oB,OAAyC,IAA1BmnM,EAAMu2c,YAAY5jpB,OAExEgxd,EAAUjC,UAAU80L,EAAa,EAAG,EAAGx2c,EAAMu2c,YAAY19oB,OAAQmnM,EAAMu2c,YAAY5jpB,OAC/EyjpB,GACAzyL,EAAUjC,UAAU+0L,EAAmB,EAAG,EAAGz2c,EAAMu2c,YAAY19oB,OAAQmnM,EAAMu2c,YAAY5jpB,QAG7F2jpB,IAAyBt2c,EAAMohQ,cAAcuD,UAAY,GACzD3kQ,EAAM22c,kBAEV32c,EAAMmhQ,UAAUqtB,cAAc,KAAMp+P,EACxC,EACAomb,EAAY7hmB,IAAMwhmB,EAAWx0oB,MAC7B80oB,EAAkB9hmB,IAAMyhmB,EACxBp2c,EAAMs1c,qBAAqB55pB,YAAYskN,EAAMu2c,YACjD,CACJ,CACAv2c,EAAMohQ,cAAcs4C,SAAU,CAClC,EAEA1hgB,KAAK8yhB,oBAAoBj8V,UAAY,SAAU74L,GAC3CgqN,EAAMmhQ,UAAUknC,sBAAsBryf,EAAO4sJ,OAAQ5sJ,EAAOylJ,WAAYukE,EAAMmhQ,UAAUwiE,qBAAqBrlX,MACjH,EAEAtmK,KAAK8yhB,oBAAoBnqd,QAAU,SAAU3qE,GACzCgqN,EAAMohQ,cAAcujE,wBACpB3kU,EAAMmhQ,UAAUknC,sBAAsBryf,EAAO4sJ,OAAQ5sJ,EAAOylJ,WAAYukE,EAAMmhQ,UAAUwiE,qBAAqBrlX,MACjH,CACJ,EAEA62f,EAAMz7pB,UAAUk9pB,qBAAuB,SAAUxmb,EAAW8yU,EAAannD,GAErE,IACI86J,EADA7joB,EAAO,KAWX,GARI6joB,EAD6B,YAA7B7+pB,KAAKmpd,UAAUo0M,UACDv9pB,KAAKy9pB,SAAS/+pB,SAASkuD,eAAe,UAAYwrL,GAGlDp4O,KAAK68K,YAAYn+K,SAASkuD,eAAe,UAAYwrL,GAEnEp4O,KAAKmpd,UAAU6hB,mBACfhwc,EAAOh7B,KAAKopd,cAAcs7E,0BAA0B,gBAEnD1kiB,KAAKmpd,UAAU+3C,mBAoEf,CACD,IAAIgjC,EAAmB,KAIvB,GAHIlkiB,KAAKmpd,UAAU+3C,qBACfgjC,EAAmBlkiB,KAAKopd,cAAcs7E,0BAA0B,kBAEhER,EACA,KAAI46H,EAAyBl9pB,KAAK+yH,MAAMuva,GACxC,IAASn3hB,EAAI,EAAGA,EAAI+xpB,EAAuBt7pB,OAAQuJ,IAG/C,IADIkvb,EAAc6iO,EAAuB/xpB,GAAGu3hB,WAC5B56E,WAAa,IAAMtxO,GAAa6jN,EAAYylE,QAAS,CACjE,IAAImiD,EAAiB7jjB,KAAKmpd,UAAU4uC,UAAU+mK,EAAuB/xpB,GAAG2+a,IAAIlkb,MAAM,KAAK,IACnFpE,EAAUygjB,EAAel3hB,QAAQtP,SAAS,GAC1C8xf,OAAc,EAClB,GAAI/rgB,EACA,GAA4C,gBAAxC64b,EAAY45B,wBACZ,IAAK,IAAIz7W,EAAI,EAAGA,EAAI6hV,EAAY2oG,gBAAgBphiB,OAAQ42G,IACpDypc,EAAiB7jjB,KAAKmpd,UAAU4uC,UAAU97D,EAAY2oG,gBAAgBxqb,GAAG1iF,GAAGlwB,MAAM,KAAK,KACvF2ngB,EAAcnvgB,KAAK++pB,yBAAyB9iO,EAAY2oG,gBAAgBxqb,GAAIh3G,EAASygjB,MAG7E79gB,EAASi2Z,EAAY2oG,gBAAgBxqb,GAAGw+f,UAExCjxmB,EAAOs0b,EAAY2oG,gBAAgBxqb,GAAGv+C,WAC1C77D,KAAK6+iB,cAAc1vC,EAAanpe,EAAQr+B,EAAMujjB,EAAannD,GAAY,EAAM9nE,EAAY2oG,gBAAgBxqb,GAAG0la,UAAW7jF,EAAYytB,WAAa,GAChJm1M,EAAYn7pB,YAAYyrgB,SAKhCA,EAAcnvgB,KAAK++pB,yBAAyB9iO,EAAa74b,EAASygjB,MAG1D79gB,EAASi2Z,EAAY28K,UAErBjxmB,EAAOs0b,EAAYpgY,WACvB77D,KAAK6+iB,cAAc1vC,EAAanpe,EAAQr+B,EAAMujjB,EAAannD,GAAY,EAAM9nE,EAAY6jF,UAAW7jF,EAAYytB,WAAa,GAC7Hm1M,EAAYn7pB,YAAYyrgB,GAIxC,CAnCqD,CAsCjE,MA/GI,GAAIn0e,EAGA,IADA,IAAI2pgB,EAAiB/iiB,KAAK+yH,MAAM35F,GACvBjuB,EAAI,EAAGA,EAAI43hB,EAAenhiB,OAAQuJ,IAAK,CAE5C,IAAIkvb,EAAc0oG,EAAe53hB,GAEjC,GAAIoT,WAAW87a,EAAuB,aAAO7jN,EAAW,CAEpD,IAEIomU,EAFQx+iB,KAAKmpd,UAAU6hB,iBAAiBuzE,iBAAiBtiH,EAAa7jN,EAAWrrO,EAAG8xpB,GAEjEpgH,aACvB,GAAID,EAAY,CAEZ,IAAIx4gB,EAASi2Z,EAAwB,WAEjCt0b,EAAOs0b,EAAkB,KAG7B,GAFAj8b,KAAK6+iB,cAAcL,EAAYx4gB,EAAQr+B,EAAMujjB,EAAannD,GAC1Dy6C,EAAWM,aAAe7iH,EAAY6iH,aAClCN,EAAWM,aAAc,CAEzB,IAAIF,EAAWh0iB,SAAS4ziB,EAAWp1iB,MAAMuR,OAAS6jiB,EAAW/8C,UAActhf,WAAWq+hB,EAAWp1iB,MAAMinB,UAAY,EAAM,GACzHmuhB,EAAWp1iB,MAAMkmB,cAAqBsvhB,EAAS,KAC/CJ,EAAWp1iB,MAAMyyD,WAAa,WAClC,CAEA,IAAIo/e,EAAcj7iB,KAAKopd,cAAcjxO,SAASC,GAC9C,GAAK6iU,EAAYtgiB,MAAQsgiB,EAAYp6hB,QAAW7gB,KAAKmpd,UAAUu1M,oBAAqB,CAchF,IAAIxkpB,EAAIla,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAOi7L,GAC/DjoL,EAAIh5C,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAOk7L,GAC/DvmN,EAAQ3a,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAOykb,OACnE5pc,EAAS7gB,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAO0kb,QAEpEpwc,EADa2giB,EAAYtgiB,MACNT,EAAI2G,EACvBjJ,EAAQohC,EAAIn4B,EAGhB29hB,EAAWp1iB,MAAMw4C,UAAY,iBAC7B48f,EAAWp1iB,MAAMiqU,gBAAkB,cACnCmrO,EAAWp1iB,MAAMwO,KAAOA,EAAO,KAC/B4miB,EAAWp1iB,MAAMkR,IAAMA,EAAM,KAC7BkkiB,EAAWp1iB,MAAMyX,OAASA,EAAS,KACnC29hB,EAAWp1iB,MAAMuR,MAAQA,EAAQ,IACrC,CACA6jiB,EAAWp1iB,MAAM2jB,gBAAkB,cAC9Bkva,EAAYurH,mBACbhJ,EAAWp1iB,MAAMsoC,YAAc,eAEnCmtnB,EAAYn7pB,YAAY86iB,EAC5B,CACJ,CACJ,CAgDZ,EACA2+G,EAAMz7pB,UAAUq9pB,yBAA2B,SAAU9iO,EAAa74b,EAASygjB,GACvE,IAAI10C,EACA+oG,EACAC,EAA6B,CAC7B,GAAM,cAAgB/0mB,EAAQs0B,GAAK,gBACnC,MAAS,kBAEbwglB,EAAoBl4mB,KAAKmpd,UAAU+3C,mBAAmB7M,kBAAkB,MAAO8jH,GAC/E,IAAIC,EAAuB,CACvB,GAAMh1mB,EAAQs0B,GAAK,gBACnB,MAAS,kBAkBb,OAhBAy3e,EAAcnvgB,KAAKmpd,UAAU+3C,mBAAmB7M,kBAAkB,MAAO+jH,GAC7B,mBAAxCn8K,EAAY45B,yBAAwF,iBAAxC55B,EAAY45B,yBACxE71d,KAAKmpd,UAAU+3C,mBAAmBy2G,4BAA6B,EAC/Dv0mB,EAAQs+M,SAAWytT,EAAYzrgB,YAAY1D,KAAKmpd,UAAU+3C,mBAAmB62G,sBAAsB/3mB,KAAKmpd,UAAW06F,EAAgB,MAAM,IACzI7jjB,KAAKmpd,UAAU+3C,mBAAmBy2G,4BAA6B,GAElB,iBAAxC17K,EAAY45B,wBACjBzyd,EAAQs+M,SAAWytT,EAAYzrgB,YAAY1D,KAAKmpd,UAAU+3C,mBAAmB82G,mBAAmB50mB,EAASygjB,GAAgB,IAE5E,YAAxC5nH,EAAY45B,wBACjBzyd,EAAQs+M,SAAWytT,EAAYzrgB,YAAY1D,KAAKmpd,UAAU+3C,mBAAmB+2G,cAAc70mB,EAASygjB,GAAgB,IAGpHzgjB,EAAQs+M,SAAWytT,EAAYzrgB,YAAY1D,KAAKmpd,UAAU+3C,mBAAmB96R,mBAAmB61N,EAAY45B,wBAAyBguF,EAAgB,MAAM,IAE/Jq0D,EAAkBx0mB,YAAYyrgB,GACvBA,CACX,EAeAguJ,EAAMz7pB,UAAUm9iB,cAAgB,SAAUL,EAAYx4gB,EAAQr+B,EAAMujjB,EAAannD,EAAYi7J,EAAqBl/I,EAAW1nS,GACzH,GAAIpyM,EAAQ,CACR,IAEIplB,EADAhJ,OAAO,EAEP+C,OAAQ,EACRkG,OAAS,EAETo6hB,EAAcj7iB,KAAKopd,cAAcjxO,SAASC,GAC1C6mb,EAAchkH,EAAcA,EAAYtgiB,MAAQ,EAChDukpB,EAAejkH,EAAcA,EAAYp6hB,OAAS,EAClDm+oB,GAAuBE,EAAeD,GAAej/pB,KAAKmpd,UAAUu1M,qBAcpE99oB,EADaq+oB,EACQj5nB,EAAOi7L,EAAI6+S,EAAY95e,EAAO0kb,OAASo1D,EAC5DlogB,GAAQouB,EAAOk7L,EAAIl7L,EAAO0kb,QAAUo1D,EACpCnlgB,EAASqrB,EAAOykb,MAAQq1D,EACxBj/f,EAAUmlB,EAAO0kb,OAASo1D,EAC1B0+B,EAAWp1iB,MAAMw4C,UAAY,iBAC7B48f,EAAWp1iB,MAAMiqU,gBAAkB,gBAGnCz7T,EAAOonpB,EAAuBh5nB,EAAOi7L,EAAI6+S,EAAa/b,EAAc/jgB,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAOi7L,GAAM8iS,EACrInjf,EAAQo+oB,EAAuBh5nB,EAAOk7L,EAAI4+S,EAAaorC,EAAelrjB,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAOk7L,GAAMgqV,EACvIvwiB,EAAQqkpB,EAAuBh5nB,EAAOykb,MAAQq1D,EAAa/b,EAAc/jgB,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAOykb,OAAUs5C,EAC9Iljf,EAASm+oB,EAAuBh5nB,EAAO0kb,OAASo1D,EAAaorC,EAAelrjB,KAAKmpd,UAAU6hB,iBAAiB7Z,oBAAoBnrb,EAAO0kb,QAAWwgG,GAEtJ,IAAIpc,EAAa,EACJ,OAATnniB,GAAiBA,EAAK+id,SACtB8zF,EAAWp1iB,MAAMyyD,WAAal0D,EAAKs6V,KAC/Bt6V,EAAK20iB,SACLkC,EAAWp1iB,MAAMwzD,UAAY,UAE7Bj1D,EAAK40iB,OACLiC,EAAWp1iB,MAAM0/B,WAAa,QAElCgmgB,EAAa9uiB,KAAKopd,cAAc+H,oBAAoBxpd,EAAK21e,OAEzD,KAAQziT,OACRj6K,GAAgB,GAEpB5gB,KAAKopd,cAAc0B,kBAAkB0zF,EAAY5miB,EAAMgJ,EAAOkuhB,EAAYn0hB,EAAOkG,GAAQ,EAC7F,CACJ,EACAs8oB,EAAMz7pB,UAAUi9pB,gBAAkB,WAC9B,IAGIQ,EAHAl9pB,EAAQjC,KACRo/pB,EAAmBlgqB,UAAUE,UAI7B+/pB,EAD6B,YAA7Bn/pB,KAAKmpd,UAAUo0M,UACCv9pB,KAAKy9pB,SAAS/+pB,SAGdsB,KAAK68K,YAAYn+K,SAErC,IAAK,IAAIqO,EAAI,EAAGA,EAAI/M,KAAKs9pB,qBAAqBjgpB,SAAS7Z,OAAQuJ,IAAK,CAEhE,IAAIsypB,EAAYr/pB,KAAKs9pB,qBAAqBjgpB,SAAStQ,GAAG0/d,YAEtD,GADA0yL,EAAcxrgB,MAAM,gCAAkC3zJ,KAAKq9pB,WAAW5ooB,WAAa,aAAez0B,KAAKo9pB,YAAY3ooB,WAAa,mCAAqC4qoB,EAAjJ,eAAmLtypB,EAAnL,uBAAqNA,EAAI,gEAAkE/M,KAAKq9pB,WAAW5ooB,WAAa,aAAez0B,KAAKo9pB,YAAY3ooB,WAAa,8BACrXz0B,KAAKmpd,UAAU6hB,kBAAoBhre,KAAKmpd,UAAU+3C,mBAAoB,CACtE,IAEIgqD,EACAnnD,EAHAp6C,EAAY3pd,KAAKopd,cAAcjxO,SAASprO,GAAG4N,MAC3Civc,EAAa5pd,KAAKopd,cAAcjxO,SAASprO,GAAG8T,OAG3C+oc,EAAaD,GAAc3pd,KAAKmpd,UAAUu1M,qBAC3CxzG,EAActhG,EAAa5pd,KAAKq9pB,WAChCt5J,EAAap6C,EAAY3pd,KAAKo9pB,cAG9BlyG,EAActhG,EAAa5pd,KAAKo9pB,YAChCr5J,EAAap6C,EAAY3pd,KAAKq9pB,YAElCr9pB,KAAK4+pB,qBAAqB7xpB,EAAGm+iB,EAAannD,EAC9C,CACU,IAANh3f,KAC6C,IAAxCqypB,EAAiB73pB,QAAQ,YAA8D,IAAxC63pB,EAAiB73pB,QAAQ,YAC9B,IAA1C63pB,EAAiB73pB,QAAQ,YAC1B43pB,EAAcxrgB,MAAM,mBACpBwrgB,EAAcxrgB,MAAM,+UAGkD3zJ,KAAKq9pB,WAAW5ooB,WAAa,MAAQz0B,KAAKo9pB,YAAY3ooB,WAAa,gCAGzI0qoB,EAAcxrgB,MAAM,mBACpBwrgB,EAAcxrgB,MAAM,wQAGiD3zJ,KAAKq9pB,WAAW5ooB,WAAa,MAAQz0B,KAAKo9pB,YAAY3ooB,WAAa,+BAGpJ,CACA,GAAI,KAAQomK,MAA8B,SAAtB,KAAQryC,KAAK5gJ,KAC7B,IACqC,YAA7B5H,KAAKmpd,UAAUo0M,WACfv9pB,KAAKopd,cAAcsnE,2BAA0B,GAC7C1whB,KAAKw9pB,OAAOE,cAAch/pB,SAAS8xmB,YAAY,SAAS,EAAO,OAG/DxwmB,KAAK68K,YAAYn+K,SAAS8xmB,YAAY,SAAS,EAAO,KAE9D,CACA,MAAO/smB,GAC8B,YAA7BzD,KAAKmpd,UAAUo0M,WACfv9pB,KAAKopd,cAAcsnE,2BAA0B,GAC7C1whB,KAAKw9pB,OAAOE,cAAcp3f,SAG1BtmK,KAAK68K,YAAYvW,OAEzB,MAGA9qI,YAAW,WACP,GAAkC,YAA9Bv5B,EAAMknd,UAAUo0M,UAIhB,GAHAt7pB,EAAMmnd,cAAcsnE,2BAA0B,GAC9CzuhB,EAAMu7pB,OAAOE,cAAcp3f,QAC3BrkK,EAAMu7pB,OAAOE,cAAc9npB,QACvB3T,EAAMmnd,cAAc8yD,aAAe,KAAQjjV,SAAU,CACrD,IAAIwqE,EAAUxhQ,EACd3C,OAAOggqB,aAAe,SAAU/rpB,GAC5B7U,SAAS+c,KAAKghC,YAAYgnN,EAAQ+5Z,OACtC,CACJ,MAEI9+pB,SAAS+c,KAAKghC,YAAYx6C,EAAMu7pB,aAIhCv7pB,EAAM46K,cACN56K,EAAM46K,YAAYvW,QAClBrkK,EAAM46K,YAAYjnK,QACb,KAAQqjL,WAAYh3L,EAAMmnd,cAAc8yD,aACzCj6gB,EAAM46K,YAAY9rG,QAIlC,GAAG,IAEX,EAEAoslB,EAAMz7pB,UAAUq8pB,4BAA8B,SAAU36pB,GAEpD,IAAIm8pB,GAAuB,QAAc,MAAO,CAC5C7noB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,0BAEpC6noB,EAAqBn2pB,MAAMyX,OAAS,OACpC0+oB,EAAqBn2pB,MAAMuR,MAAQ,OACnC4kpB,EAAqBn2pB,MAAM+kB,SAAW,WACtCoxoB,EAAqBn2pB,MAAMm4C,OAAS,IACpCg+mB,EAAqBn2pB,MAAMwO,KAAO,EAClC2npB,EAAqBn2pB,MAAMkR,IAAM,EACjCilpB,EAAqBn2pB,MAAM4mB,SAAW,OACtCuvoB,EAAqBn2pB,MAAM2jB,gBAAkB,qBAC7C3pB,EAAQM,YAAY67pB,GACpB,IAAI5uI,GAAoB,QAAc,MAAO,CACzCj5f,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,2BAEpCi5f,EAAkBvnhB,MAAM+kB,SAAW,WACnCwigB,EAAkBvnhB,MAAMuR,MAAQ,OAChCg2gB,EAAkBvnhB,MAAMyX,OAAS,OACjC8vgB,EAAkBvnhB,MAAMwO,KAAO,MAC/B+4gB,EAAkBvnhB,MAAMkR,IAAM,MAC9BilpB,EAAqBn2pB,MAAMm4C,OAAS,IACpCg+mB,EAAqB77pB,YAAYithB,GAEjC,IAAI6uI,EAAsB,IAAI51oB,MAE9B41oB,EAAoB7imB,IAAM,iiFAC1B6imB,EAAoBp2pB,MAAMuR,MAAQ,OAClC6kpB,EAAoBp2pB,MAAMyX,OAAS,OACnC8vgB,EAAkBjthB,YAAY87pB,GAC9B,IAAIC,GAAsB,QAAc,MAAO,CAC3C/noB,GAAI13B,KAAKmpd,UAAU/ld,QAAQs0B,GAAK,yBAEpC+noB,EAAoBr2pB,MAAM+kB,SAAW,WACrCsxoB,EAAoB18jB,YAAc,cAClC08jB,EAAoBr2pB,MAAM0/B,WAAa,OACvC22nB,EAAoBr2pB,MAAMwO,KAAO,MACjC6npB,EAAoBr2pB,MAAMkR,IAAM,QAChCmlpB,EAAoBr2pB,MAAMm4C,OAAS,OACnCg+mB,EAAqB77pB,YAAY+7pB,EACrC,EAIAtC,EAAMz7pB,UAAUguL,QAAU,WACtB1vL,KAAKs9pB,0BAAuB7+pB,EAC5BuB,KAAKy9pB,cAAWh/pB,EAChBuB,KAAK68K,iBAAcp+K,CACvB,EAIA0+pB,EAAMz7pB,UAAU69L,cAAgB,WAC5B,MAAO,OACX,EACO49d,CACX,CA7kB0B,uFCHbuC,GAAqB,WAC9B,IAAMn/P,GAAOC,EAAAA,GAAAA,KAEb,MAAO,CACH,UAAa,CACT,UAAaD,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,yBAA0B6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mCACnD,WAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACrC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC7C,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,kBAAmB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC5C,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,UAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACpC,WAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACrC,kBAAmB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,6BAC5C,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gCAC/C,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,6BAC7C,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BAC1C,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,WAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACvC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,cAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC1C,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,cAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC1C,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACzC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BAC1C,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,WAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACrC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,uBAAwB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iCACjD,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,kBAAmB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,6BAC5C,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,IAAO6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,kBAChC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,WAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACvC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,WAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACrC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,kBAAmB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC5C,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gCAC/C,sBAAuB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iCAChD,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBAC1C,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACxC,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gCAC/C,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gCAC/C,IAAO6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,kBAChC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,eAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,6BAC3C,WAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACvC,YAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACxC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,kBAAmB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,6BAC5C,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC3C,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,oBAAqB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,+BAC9C,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,6BAAgC6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2CACzD,mCAAsC6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iDAC/D,+BAAkC6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,6CAC3D,qCAAwC6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mDACjE,sBAAuB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gCAChD,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,yBAA0B6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mCACnD,iBAAkB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAC3C,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,oBAAqB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,+BAC9C,oBAAqB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,+BAC9C,wBAAyB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mCAClD,aAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BACzC,WAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACvC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,WAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACrC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,aAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BACzC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,+BAC/C,yBAA0B6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,kCACnD,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,sBAAuB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iCAChD,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,0BAA2B6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mCACpD,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,WAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACrC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,mBAAoB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC7C,yBAA0B6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mCACnD,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,EAAK6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gBAC9B,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBAClC,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,EAAK6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gBAC9B,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,WAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACvC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,gCAC/C,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,MAAS6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,oBAClC,wBAAyB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,kCAClD,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,SAAY6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACrC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,gBAAiB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,2BAC1C,WAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACvC,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,OAAU6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,qBACnC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,aAAc6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACvC,YAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtC,eAAgB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BACzC,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,+BAC/C,qBAAsB6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,8BAC/C,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,GAAM6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,iBAC/B,KAAQ6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,mBACjC,UAAa6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,wBACtC,QAAW6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,sBACpC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,yBACxC,cAAe6oY,EAAK1uE,cAAc,CAAEn6T,GAAI,0BAGpD,2oCC7MA,IAAM26X,GAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,KAAAA,GAAAC,GAAA,6NACb,SAAAv9Y,GAAK,OAAKA,EAAMkrpB,gBAAiBj2oB,EAAAA,EAAAA,IAAGwoY,KAAAA,GAAAF,GAAA,0BAAsBtoY,EAAAA,EAAAA,IAAG0oY,KAAAA,GAAAJ,GAAA,WAAM,IAClE,SAAAv9Y,GAAK,OAAKA,EAAMmrpB,iBAAkBl2oB,EAAAA,EAAAA,IAAG4oY,KAAAA,GAAAN,GAAA,0BAAsBtoY,EAAAA,EAAAA,IAAG8oY,KAAAA,GAAAR,GAAA,WAAM,IAGvE,SAAAv9Y,GAAK,OAAKA,EAAMkrpB,gBAAiBj2oB,EAAAA,EAAAA,IAAGgpY,KAAAA,GAAAV,GAAA,aAAStoY,EAAAA,EAAAA,IAAGupY,KAAAA,GAAAjB,GAAA,QAAG,IAClD,SAAAv9Y,GAAK,OAAKA,EAAMmrpB,iBAAkBl2oB,EAAAA,EAAAA,IAAG0pY,KAAAA,GAAApB,GAAA,aAAStoY,EAAAA,EAAAA,IAAG4pY,KAAAA,GAAAtB,GAAA,QAAG,IAC9CtjJ,EAAAA,EAAAA,IAAKikJ,GAAAA,EAAW1gX,MAAO,KAQnCvO,GAAS1R,EAAAA,GAAO8qJ,IAAG02O,KAAAA,GAAAxB,GAAA,yeAKPtjJ,EAAAA,EAAAA,IAAKikJ,GAAAA,EAAW1gX,MAAO,IAKpB0gX,GAAAA,EAAW5jY,MACPsB,GAAAA,EAAS,IAKjBsiY,GAAAA,EAAW5jY,MAEPsB,GAAAA,EAAS,KAOxBwvoB,GAAa7toB,EAAAA,GAAO8qJ,IAAG42O,KAAAA,GAAA1B,GAAA,0DAahB62D,GAAkC,SAAAp0c,GAC3C,IAAMy4B,EAAQixF,GAAAA,EAAMmjO,WAEdw+T,EADmB5ynB,EAAMztC,OAAOsgqB,UAA9BC,aAC4B,aAC5BnviB,EAAU3jF,EAAMiB,QAAhB0iF,MACA25P,EAAWt9U,EAAMztC,OAAjB+qX,OACA9rX,EAAoC+V,EAApC/V,SAAUo+Y,EAA0BroY,EAA1BqoY,QAAS6rE,EAAiBl0c,EAAjBk0c,aACuC/wD,EAAAp3R,IAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA3DooQ,EAAaroQ,EAAA,GAAEsoQ,EAAgBtoQ,EAAA,GAC+BmC,EAAAv5R,IAAvBq3R,EAAAA,EAAAA,WAAkB,GAAK,GAA9DsoQ,EAAepmQ,EAAA,GAAEqmQ,EAAkBrmQ,EAAA,GAE1C9/M,EAAAA,GAAKt3C,KAAK,CACN+8f,mBAAoBA,QAGxB/7oB,EAAAA,EAAAA,YAAU,WACkB,iBAAbjlB,GACHA,EAASgN,MAAM,iBACfw0pB,GAAiB,EAG7B,GAAG,CAACxhqB,IAEJ,IAIMuX,EAAkB,SAACxS,GACrBA,EAAEwS,iBACN,EAMA,OACIiiZ,EAAAA,cAAA,OAAK/sY,QAASlV,GACViiZ,EAAAA,cAAA,QAAMz/X,KAAK,wDAAwDN,IAAI,eACrE1jB,EAAM4rpB,gBAyEJ,KAxEAnoQ,EAAAA,cAAC7F,GAAO,CAACutQ,iBAAe,EAACD,gBAAc,GACnCznQ,EAAAA,cAACx0X,GAAM,KACHw0X,EAAAA,cAAA,WACIA,EAAAA,cAAA,OAAKz1Z,UAAU,WACXy1Z,EAAAA,cAAC8wD,GAAAA,EAAQ,CAAC19S,SAAS,SAEvB4sP,EAAAA,cAAA,OAAKz1Z,UAAU,YAAYq6Y,IAE/Bob,EAAAA,cAACpoX,GAAAA,GAAM,CAAC3kB,QAjBZ,SAAC1nB,GACbwS,EAAgBxS,GAChBkld,GACJ,EAc8CvsD,QAASkkQ,GAAAA,KAC/BpoQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,mBAG5BuooB,EACG/nQ,EAAAA,cAAC2nQ,GAAU,KACP3nQ,EAAAA,cAAC4wK,GAAkB,CACfpxiB,GAAG,cACH6ooB,aAhCH,WACrBH,GAAmB,EACvB,EA+B4BtuiB,OAAQ,qBACRw8X,gBAAiB,CACbhza,aAAa,EACbgqf,aAAc,CACV,gBACA,eACA,qBACA,oBACA,UACA,cACA,mBAGRroC,iBAAe,EACfm+D,qBAAmB,EACnB7/E,iBAAkBz+H,aAAO,EAAPA,EAASroX,WAC3B81f,aAAc7rhB,EACd0K,MAAO,CAAEwjB,QAAS,QAAS/L,OAAQ,SACnC27f,WAAYsjJ,EACZxvK,oBAAqB,CACjBM,YAAa,CACT,CACIC,WAAY,gBACZC,YAAa,UAAFzof,OAAYwoH,IAE3B,CACIggY,WAAY,4BACZC,YAAatmI,MAKzB0tC,EAAAA,cAACxqN,GAAAA,GAAM,CACHo0I,SAAU,CACNl2C,GACA4uK,GACA49I,GACA4B,GACA4D,GACAqG,GACAwM,GACA/0D,GACA06D,GACAs4C,GACA2N,GACAc,OAIXgD,GAAmBjoQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,wBAG7C,MAMxB,48BCrLA,IA+DY8ooB,EA/DNC,EAAkBzuoB,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,iuBAKNW,EAAAA,EAAWqC,UAKlB3kY,EAAAA,EAAS,KACpB,SAAA5b,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,4FACdW,EAAAA,EAAWqC,UAChBrC,EAAAA,EAAWt8Y,SACvB,GAEuBs8Y,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGtBD,EAAAA,EAAWkG,WAKPlG,EAAAA,EAAWkG,YAM9BxnW,EAAWr/B,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,8KAIrBS,EAAAA,EAAAA,MAEYE,EAAAA,EAAW5jY,OAKvB2xoB,EAAa1uoB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,mTASXW,EAAAA,EAAW5jY,MAGP4jY,EAAAA,EAAWqC,YAShC,SALWwrQ,GAAAA,EAAc,QAAdA,EAAc,QAAdA,EAAc,UAAdA,EAAc,QAKzB,CALWA,IAAAA,EAAc,KA0BnB,IAAM9kO,EAAkC,SAAAjnb,GAC3C,IAAM8rZ,GAAOC,EAAAA,EAAAA,KACPtzX,GAAQ0sX,EAAAA,EAAAA,KAAqC,SAAAuV,GAAY,svBAAAttE,CAAA,GACxDstE,EAAahhY,QAAO,IAGrBwynB,GAAiBv1P,EAAAA,EAAAA,UAAQ,WAC3B,IAAIw1P,EAAgB,GAEpB,GAAInspB,EAAMgta,QACNm/O,GAAgB39O,EAAAA,EAAAA,GAAuBxua,EAAMgta,cAC1C,GAAIhta,EAAMhL,MAAO,KAAAw+c,EAAAC,EAAA24M,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEpBpB,EAAwC,KAAxBnspB,EAAMhL,MAAMgxb,QACxBt0b,OAAOuxF,OAAO8okB,GAAgB5zhB,SAASn4H,EAAMhL,MAAMixb,cAA+B,GAAAryb,OAChE,QADgE4/c,EAC3Exzc,EAAMhL,aAAK,IAAAw+c,OAAA,EAAXA,EAAa7pY,OAAM,IAAA/1E,OAAkB,QAAlB6/c,EAAOzzc,EAAMhL,aAAK,IAAAy+c,OAAA,EAAXA,EAAa5tB,SAAMjyb,SAAiB,QAAXw4pB,EAAApspB,EAAMhL,aAAK,IAAAo3pB,OAAA,EAAXA,EAAavmO,UAAqB,QAAfwmO,EAAIrspB,EAAMhL,aAAK,IAAAq3pB,OAAA,EAAXA,EAAa1ilB,UAAW,MAAI/1E,OAAc,QAAX04pB,EAAAtspB,EAAMhL,aAAK,IAAAs3pB,GAAXA,EAAapmO,QAAU,GAAHtyb,OAAMoM,EAAMhL,MAAMkxb,QAAO,KAAM,IAAEtyb,QAAc,QAAX24pB,EAAAvspB,EAAMhL,aAAK,IAAAu3pB,OAAA,EAAXA,EAAazmO,QAAmB,QAAf0mO,EAAIxspB,EAAMhL,aAAK,IAAAw3pB,OAAA,EAAXA,EAAazmO,QAAKnyb,SAAe,QAAX64pB,EAAAzspB,EAAMhL,aAAK,IAAAy3pB,OAAA,EAAXA,EAAa3mO,QAAmB,QAAf4mO,EAAI1spB,EAAMhL,aAAK,IAAA03pB,OAAA,EAAXA,EAAa3mO,SAAU,MAAInyb,OAAc,QAAd+4pB,EAAG3spB,EAAMhL,aAAK,IAAA23pB,OAAA,EAAXA,EAAa3mO,SAAO,GAAApyb,OACxQ,QADwQg5pB,EACnR5spB,EAAMhL,aAAK,IAAA43pB,OAAA,EAAXA,EAAa/mO,QAAMjyb,SAAe,QAAXi5pB,EAAA7spB,EAAMhL,aAAK,IAAA63pB,OAAA,EAAXA,EAAahnO,UAAqB,QAAfinO,EAAI9spB,EAAMhL,aAAK,IAAA83pB,OAAA,EAAXA,EAAanjlB,UAAW,KAAG/1E,OAAc,QAAdm5pB,EAAG/spB,EAAMhL,aAAK,IAAA+3pB,OAAA,EAAXA,EAAapjlB,QAAM/1E,SAAe,QAAXo5pB,EAAAhtpB,EAAMhL,aAAK,IAAAg4pB,OAAA,EAAXA,EAAannO,UAAqB,QAAfonO,EAAIjtpB,EAAMhL,aAAK,IAAAi4pB,OAAA,EAAXA,EAAatjlB,UAAW,MAAI/1E,OAAc,QAAXs5pB,EAAAltpB,EAAMhL,aAAK,IAAAk4pB,GAAXA,EAAahnO,QAAU,GAAHtyb,OAAMoM,EAAMhL,MAAMkxb,QAAO,KAAM,IAAEtyb,QAAc,QAAXu5pB,EAAAntpB,EAAMhL,aAAK,IAAAm4pB,OAAA,EAAXA,EAAarnO,QAAmB,QAAfsnO,EAAIptpB,EAAMhL,aAAK,IAAAo4pB,OAAA,EAAXA,EAAarnO,QAAKnyb,SAAe,QAAXy5pB,EAAArtpB,EAAMhL,aAAK,IAAAq4pB,OAAA,EAAXA,EAAavnO,QAAmB,QAAfwnO,EAAIttpB,EAAMhL,aAAK,IAAAs4pB,OAAA,EAAXA,EAAavnO,SAAU,MAAInyb,OAAc,QAAd25pB,EAAGvtpB,EAAMhL,aAAK,IAAAu4pB,OAAA,EAAXA,EAAavnO,SAClUhmb,EAAMhL,MAAM8wb,MAAQ9lb,EAAMhL,MAAM+wb,KACzC,CACA,OAAOomO,CACX,GAAG,CAACnspB,EAAMgta,QAAShta,EAAMhL,MAAO+2pB,IAE1ByB,GAAyBhqQ,EAAAA,EAAAA,cAAY,SAACt1Y,GACxClO,EAAMknb,gBAAgBh5a,EAC1B,GAAG,CAAClO,EAAMknb,kBAEJumO,GAAyBjqQ,EAAAA,EAAAA,cAAY,SAACt1Y,GACxClO,EAAMmnb,gBAAgBj5a,EAC1B,GAAG,CAAClO,EAAMmnb,kBAEV,OACI1jC,EAAAA,cAAAA,EAAAA,SAAA,MACKhrX,aAAK,EAALA,EAAOi1nB,qBACJjqQ,EAAAA,cAAA,OAAKz1Z,UAAU,kBACXy1Z,EAAAA,cAAA,OAAKz1Z,UAAU,gBACXy1Z,EAAAA,cAACkqQ,EAAAA,GAAkB,CACf34pB,MAAOk3pB,EACPv+oB,SAAU6/oB,EACVxpb,SAAUypb,EACVG,cAAe,CAAE7mO,MAAO,CAAC,cAExB,SAAAn2T,GAAA,IAAGi9hB,EAAaj9hB,EAAbi9hB,cAAeh7kB,EAAW+9C,EAAX/9C,YAAai7kB,EAAsBl9hB,EAAtBk9hB,uBAAwB74lB,EAAO27D,EAAP37D,QAAO,OAC3DwuV,EAAAA,cAACuoQ,EAAe,CAACh+pB,UAAU,eAAe4T,SAAU5B,EAAM4B,UACtD6hZ,EAAAA,cAAA,QACQoqQ,EAAc,CACd/4mB,YAAa90C,EAAM80C,aAAeg3W,EAAK1uE,cAAc,CAAEn6T,GAAI,wBAC3Dj1B,UAAW,qBACX4T,SAAU5B,EAAM4B,YAGvBixE,EAAY9jF,OAAS,GAClB00Z,EAAAA,cAAC7mW,EAAQ,CAAC5uD,UAAU,mCACfinE,GAAWwuV,EAAAA,cAAA,WAAKA,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,wBACrC4vD,EAAY5gF,KAAI,SAACklF,EAAY7+E,GAC1B,IAAMtK,EAAYmpF,EAAWo1U,OACvB,0BACA,kBAEN,OACI9I,EAAAA,cAACwoQ,EAAUtrP,EAAA,CACP1ya,IAAKkpF,EAAWl0D,IAAM3qB,EACtBy1pB,cAAez1pB,GACXw1pB,EAAuB32kB,EAAY,CACnCnpF,UAAAA,KAGJy1Z,EAAAA,cAAA,YAAOtsU,EAAWhjE,aAG9B,KAGM,MAQlD,2EC5Jaiza,EAA6D,SAAHv2T,GAAA,IAAMm8S,EAAOn8S,EAAPm8S,QAAO,OAChFvpB,EAAAA,cAAAA,EAAAA,SAAA,KAEQ/xZ,OAAOC,KAAKo6pB,EAAAA,GAAgBj5pB,QAAQk6a,aAAO,EAAPA,EAASyY,eAAiB,EAAC,GAAA7xb,OAExDo5a,aAAO,EAAPA,EAAS/zT,QAAMrlH,QAAGo5a,aAAO,EAAPA,EAASsY,SAAM,IAAA1xb,OAAQo5a,aAAO,EAAPA,EAASsY,SAAQ1xb,SAAIo5a,aAAO,EAAPA,EAASsY,UAAUtY,aAAO,EAAPA,EAAS/zT,UAAW,MAAIrlH,OAAGo5a,aAAO,EAAPA,EAAS0Y,SAAO9xb,QAAGo5a,aAAO,EAAPA,EAAS0Y,UAAW,MAAI9xb,OAAGo5a,aAAO,EAAPA,EAASuY,MAAI3xb,QAAGo5a,aAAO,EAAPA,EAASwY,UAAW,MAAI5xb,OAAGo5a,aAAO,EAAPA,EAASwY,SAAO,GAAA5xb,OAErNo5a,aAAO,EAAPA,EAASsY,QAAM1xb,QAAGo5a,aAAO,EAAPA,EAAS/zT,SAAM,IAAArlH,OAAQo5a,aAAO,EAAPA,EAAS/zT,SAAQrlH,SAAIo5a,aAAO,EAAPA,EAASsY,UAAUtY,aAAO,EAAPA,EAAS/zT,UAAW,MAAIrlH,OAAGo5a,aAAO,EAAPA,EAAS0Y,SAAO9xb,QAAGo5a,aAAO,EAAPA,EAAS0Y,UAAW,MAAI9xb,OAAGo5a,aAAO,EAAPA,EAASuY,MAAI3xb,QAAGo5a,aAAO,EAAPA,EAASwY,UAAW,MAAI5xb,OAAGo5a,aAAO,EAAPA,EAASwY,SAE1N,m8BC3BA,IAAMwoO,GAAgBzwoB,GAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,GAAA,sKAS1B0wQ,GAAa1woB,GAAAA,GAAO8qJ,IAAGo1O,IAAAA,EAAAF,GAAA,iWAUX3hY,GAAAA,EAAS,IAGTA,GAAAA,EAAS,IACbsiY,GAAAA,EAAWt8Y,UAKnBsspB,GAAkB3woB,GAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,GAAA,uMACvBW,GAAAA,EAAW5jY,OACvBua,EAAAA,GAAAA,OAIA,SAAA70B,GAAK,OACHA,EAAMmupB,cACNl5oB,EAAAA,GAAAA,IAAG4oY,IAAAA,EAAAN,GAAA,6KAOF,IAOI6wQ,GAAW7woB,GAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,GAAA,2DAKrB8wQ,GAAiB9woB,GAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,GAAA,qoBAyBnBW,GAAAA,EAAWj1T,SACPrtE,GAAAA,EAAS,KAMrB0yoB,GAAiB/woB,GAAAA,GAAO8qJ,IAAGm2O,IAAAA,EAAAjB,GAAA,iUAiB3BgxQ,GAAYhxoB,GAAAA,GAAO8qJ,IAAGs2O,IAAAA,EAAApB,GAAA,6FAI7BzsP,GAAAA,EAAMzF,QAAOwzP,IAAAA,EAAAtB,GAAA,2EAMNixQ,GAAiBjxoB,GAAAA,GAAO8qJ,IAAG02O,IAAAA,EAAAxB,GAAA,0GAG3BW,GAAAA,EAAWwC,SAElB5vP,GAAAA,EAAMzF,QAAO4zP,IAAAA,EAAA1B,GAAA,+CAUNkxQ,IALgBlxoB,GAAAA,GAAO8qJ,IAAG82O,IAAAA,EAAA5B,GAAA,wDAKbhgY,GAAAA,GAAOwgE,OAAMqhU,IAAAA,EAAA7B,GAAA,yJAI1BW,GAAAA,EAAWj1T,WAwBXqzW,IAlBqB/+a,GAAAA,GAAO9kB,EAAC6mZ,IAAAA,EAAA/B,GAAA,sGAEzB3hY,GAAAA,EAAS,KAKQ2B,GAAAA,GAAO8qJ,IAAGm3O,IAAAA,EAAAjC,GAAA,wEAMXhgY,GAAAA,GAAO8qJ,IAAGo3O,IAAAA,EAAAlC,GAAA,kDAKdhgY,GAAAA,GAAO8qJ,IAAGs3O,IAAAA,EAAApC,GAAA,8CAEjCzsP,GAAAA,EAAMzF,QAAOw0P,IAAAA,EAAAtC,GAAA,6CAmBNmxQ,IAdkBnxoB,GAAAA,GAAO8qJ,IAAG23O,IAAAA,EAAAzC,GAAA,gPAcdhgY,EAAAA,GAAAA,IAAOqlZ,GAAAA,GAAPrlZ,CAAY0iY,IAAAA,EAAA1C,GAAA,kOAMjBW,GAAAA,EAAWqC,YAMpBmsB,GAAgBnvZ,GAAAA,GAAO8qJ,IAAG63O,IAAAA,EAAA3C,GAAA,qDAK1BoxQ,GAAWpxoB,GAAAA,GAAO8qJ,IAAG83O,IAAAA,EAAA5C,GAAA,iHAOrBqxQ,GAAarxoB,GAAAA,GAAOwgE,OAAMqiU,IAAAA,EAAA7C,GAAA,8FAGtB3hY,GAAAA,EAAS,IACbsiY,GAAAA,EAAWt8Y,UAGXitpB,GAActxoB,GAAAA,GAAO8qJ,IAAGi4O,IAAAA,EAAA/C,GAAA,wKACxBW,GAAAA,EAAWx8V,MACNu4M,EAAAA,GAAAA,IAAKikJ,GAAAA,EAAWx8V,KAAM,MAQ3BotmB,GAAavxoB,GAAAA,GAAOwgE,OAAM0iU,IAAAA,EAAAlD,GAAA,8FAC1BW,GAAAA,EAAWj1T,SAGPrtE,GAAAA,EAAS,KAGbmzoB,GAAgBxxoB,GAAAA,GAAO8qJ,IAAGs4O,IAAAA,EAAApD,GAAA,uGAO1ByxQ,GAAsBzxoB,GAAAA,GAAO8qJ,IAAGu4O,IAAAA,EAAArD,GAAA,oGAOhC0xQ,GAAiB1xoB,GAAAA,GAAO8qJ,IAAGw4O,IAAAA,EAAAtD,GAAA,gIAMlCzsP,GAAAA,EAAMzF,QAAO01P,IAAAA,EAAAxD,GAAA,wDAKN2xQ,GAAe3xoB,GAAAA,GAAO8qJ,IAAG24O,IAAAA,EAAAzD,GAAA,qFAMzB4xQ,GAAoB5xoB,GAAAA,GAAO8qJ,IAAG44O,IAAAA,EAAA1D,GAAA,qMAC9BW,GAAAA,EAAWwC,UAYX0uQ,GAAmB7xoB,GAAAA,GAAO8qJ,IAAG84O,IAAAA,EAAA5D,GAAA,0HAKpCzsP,GAAAA,EAAMzF,QAAO+1P,IAAAA,EAAA7D,GAAA,4CAKN8xQ,GAAc9xoB,GAAAA,GAAO8qJ,IAAGg5O,IAAAA,EAAA9D,GAAA,gJAGxBW,GAAAA,EAAWwC,UAOX4uQ,GAAiB/xoB,GAAAA,GAAO8qJ,IAAGi5O,IAAAA,EAAA/D,GAAA,gLAGtBW,GAAAA,EAAWqC,UAIvBzvP,GAAAA,EAAMzF,QAAOk2P,IAAAA,EAAAhE,GAAA,6CAKNgyQ,GAAsBhyoB,GAAAA,GAAO8qJ,IAAGm5O,IAAAA,EAAAjE,GAAA,yXAIhCW,GAAAA,EAAWj1T,UAiBXumkB,GAAgBjyoB,GAAAA,GAAO8qJ,IAAGq5O,IAAAA,EAAAnE,GAAA,kFAM1BkyQ,GAAiBlyoB,GAAAA,GAAO8qJ,IAAGw5O,IAAAA,EAAAtE,GAAA,ufAClC1oX,EAAAA,GAAAA,OAcA,SAAA70B,GAAK,OACHA,EAAMq8D,WACNpnD,EAAAA,GAAAA,IAAG8sY,IAAAA,EAAAxE,GAAA,wLACeW,GAAAA,EAAWmW,UAGZnW,GAAAA,EAAWttX,QACZstX,GAAAA,EAAWttX,QAG1B,GAEastX,GAAAA,EAAWmW,UAGZnW,GAAAA,EAAWttX,QACZstX,GAAAA,EAAWttX,SAOlB8+nB,GAAenyoB,GAAAA,GAAO8qJ,IAAG45O,IAAAA,EAAA1E,GAAA,0PAIhC,SAAAv9Y,GAAK,OACHA,EAAMwzC,aACNv+B,EAAAA,GAAAA,IAAGktY,IAAAA,EAAA5E,GAAA,0CAEF,GAMaW,GAAAA,EAAWmW,WAMpBs7P,GAAcpyoB,GAAAA,GAAO+wD,KAAI8zU,IAAAA,EAAA7E,GAAA,yGAErB3hY,GAAAA,EAAS,IAEbsiY,GAAAA,EAAWt8Y,UAGXgupB,GAAaryoB,GAAAA,GAAO8qJ,IAAGg6O,IAAAA,EAAA9E,GAAA,gLAIlBW,GAAAA,EAAW5jY,OAIvBua,EAAAA,GAAAA,OACA,SAAA70B,GAAK,OACHA,EAAMuuG,YACNt5F,EAAAA,GAAAA,IAAGqtY,IAAAA,EAAA/E,GAAA,kFAGF,IAiCIsyQ,IA9BYtyoB,GAAAA,GAAO8qJ,IAAGm6O,IAAAA,EAAAjF,GAAA,2kBAyBV3hY,GAAAA,EAAS,KAKJ2B,GAAAA,GAAO8qJ,IAAGo6O,IAAAA,EAAAlF,GAAA,8IAEvBW,GAAAA,EAAWC,YAOtB,SAAAn+Y,GAAK,OAAIA,EAAM8vpB,qBAAsB76oB,EAAAA,GAAAA,IAAGytY,IAAAA,EAAAnF,GAAA,6FAGzBW,GAAAA,EAAWmB,UAE3B,KAGQ0wQ,GAAWxyoB,GAAAA,GAAO8qJ,IAAGs6O,IAAAA,EAAApF,GAAA,6FAQrByyQ,GAAUzyoB,GAAAA,GAAOwgE,OAAM8kU,IAAAA,EAAAtF,GAAA,0HAIvBW,GAAAA,EAAWj1T,UAIXgnkB,GAAW1yoB,GAAAA,GAAOwgE,OAAM+kU,IAAAA,EAAAvF,GAAA,oKACxBW,GAAAA,EAAWj1T,SAKPi1T,GAAAA,EAAWj1T,UAKfinkB,GAAe3yoB,GAAAA,GAAO8qJ,IAAG06O,KAAAA,GAAAxF,GAAA,kOACdW,GAAAA,EAAWj1T,SAGtBi1T,GAAAA,EAAWj1T,UAQXknkB,GAAY5yoB,GAAAA,GAAO8qJ,IAAG26O,KAAAA,GAAAzF,GAAA,0EAMtB6yQ,GAAc7yoB,GAAAA,GAAO8qJ,IAAGgof,KAAAA,GAAA9yQ,GAAA,4MAaxB+yQ,GAAgB/yoB,GAAAA,GAAO+wD,KAAIiilB,KAAAA,GAAAhzQ,GAAA,iGAY3BizQ,IAJsBjzoB,GAAAA,GAAO8qJ,IAAGoof,KAAAA,GAAAlzQ,GAAA,8BAIVhgY,GAAAA,GAAO8qJ,IAAGqof,KAAAA,GAAAnzQ,GAAA,+BAIhCozQ,GAAYpzoB,GAAAA,GAAO8qJ,IAAGuof,KAAAA,GAAArzQ,GAAA,6EAMtBszQ,GAAatzoB,GAAAA,GAAO8qJ,IAAGyof,KAAAA,GAAAvzQ,GAAA,kJAEvBW,GAAAA,EAAWj1T,SAEPrtE,GAAAA,EAAS,KAKbooD,GAAUzmD,GAAAA,GAAO8qJ,IAAG0of,KAAAA,GAAAxzQ,GAAA,wNAE3B1oX,EAAAA,GAAAA,MAEkBqpX,GAAAA,EAAWqC,WAG7B,SAAAvgZ,GAAK,OACHA,EAAMgxpB,WACN/7oB,EAAAA,GAAAA,IAAGg8oB,KAAAA,GAAA1zQ,GAAA,wFAIF,GACSW,GAAAA,EAAW5jY,OAMhBu6a,GAAat3a,GAAAA,GAAO8qJ,IAAG6of,KAAAA,GAAA3zQ,GAAA,8BAIvB4zQ,GAAiB5zoB,GAAAA,GAAO8qJ,IAAG+of,KAAAA,GAAA7zQ,GAAA,2DAK3B8J,GAAO9pY,GAAAA,GAAO8qJ,IAAGgpf,KAAAA,GAAA9zQ,GAAA,iLAKT3hY,GAAAA,EAAS,IACbsiY,GAAAA,EAAWt8Y,UAKf0vpB,GAAc/zoB,GAAAA,GAAO8qJ,IAAGkpf,KAAAA,GAAAh0Q,GAAA,8BAIxBi0Q,IAAYj0oB,EAAAA,GAAAA,IAAOqlZ,GAAAA,GAAPrlZ,CAAYk0oB,KAAAA,GAAAl0Q,GAAA,kGACxBW,GAAAA,EAAWj1T,SAGPi1T,GAAAA,EAAWj1T,UAIfyokB,GAAgBn0oB,GAAAA,GAAO8qJ,IAAGspf,KAAAA,GAAAp0Q,GAAA,yEAGlB3hY,GAAAA,EAAS,KAIjBq5a,GAAW13a,GAAAA,GAAO8qJ,IAAGupf,KAAAA,GAAAr0Q,GAAA,2MAELW,GAAAA,EAAWqC,UACVrC,GAAAA,EAAWqC,WAQ5B40C,GAAY53a,GAAAA,GAAO8qJ,IAAGwpf,KAAAA,GAAAt0Q,GAAA,0DAKtBu0Q,IAAcv0oB,EAAAA,GAAAA,IAAO+lD,GAAAA,EAAP/lD,CAAew0oB,KAAAA,GAAAx0Q,GAAA,iCAI7By0Q,GAAoBz0oB,GAAAA,GAAO8qJ,IAAG4pf,KAAAA,GAAA10Q,GAAA,gEAK9B20Q,GAAc30oB,GAAAA,GAAO8qJ,IAAG8pf,KAAAA,GAAA50Q,GAAA,2FAMxB60Q,GAAe70oB,GAAAA,GAAO8qJ,IAAGgqf,KAAAA,GAAA90Q,GAAA,2IC/nB1B+0Q,uLAKX,SALWA,GAAAA,EAAS,kBAATA,EAAS,cAATA,EAAS,kBAATA,EAAS,kBAKpB,CALWA,IAAAA,EAAS,KAOrB,IAAM10Q,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,yNAIbW,EAAAA,EAAWtqY,MAGdksY,EAAAA,EAAkB,IAGlBA,EAAAA,EAAkB,KAEtB,SAAAlvR,GAAM,OAAAA,EAAJtkH,OAAmBgmpB,EAAUtsc,QAAS/wM,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,kCAChCW,EAAAA,EAAWmB,UACvB,IACC,SAAAxuR,GAAM,OAAAA,EAAJvkH,OAAmBgmpB,EAAU/zQ,UAAWtpY,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,kCAClCW,EAAAA,EAAWO,YACvB,IACC,SAAAv7Q,GAAM,OAAAA,EAAJ52H,OAAmBgmpB,EAAUtzQ,UAAW/pY,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,kCAClCW,EAAAA,EAAWgB,aACvB,IAQQqzQ,EAAmB,SAAAvypB,GAC5B,OACIyjZ,EAAAA,cAAC7F,EAAO,CAACtxY,KAAMtM,EAAMsM,MACjBm3Y,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMg/oB,EAAAA,MACvB/uQ,EAAAA,cAAA,YAAOzjZ,EAAM4I,UAGzB,8DC1CY6ppB,4KAGX,SAHWA,GAAAA,EAAa,gBAAbA,EAAa,UAGxB,CAHWA,IAAAA,EAAa,KAKzB,IAAM70Q,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,wKAKTW,EAAAA,EAAWwC,UAElB,SAAA9vR,GAAO,OAAAA,EAAJjqH,OAAoB8rpB,EAAczxN,MAAO/rb,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,+CAEhD,IAIHm1Q,EAAQn1oB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,yGACXW,EAAAA,EAAWttX,QAClBkvX,EAAAA,EAAkB,KAGlB,SAAAjvR,GAAO,OAAAA,EAAJlqH,OAAoB8rpB,EAAczxN,MAAO/rb,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,2BAC3CuC,EAAAA,EAAkB,IACvB,IACC,SAAA58Q,GAAO,OAAAA,EAAJ19E,OAAmBvwC,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,wCAE1B,IAUQo1Q,EAAwB,SAAA3ypB,GACjC,OACIyjZ,EAAAA,cAAC7F,EAAO,CAACj3Y,KAAM3G,EAAM2G,MAAQ8rpB,EAAcG,QACvCnvQ,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAMgia,MAC7Bve,EAAAA,cAACivQ,EAAK,CAAC/rpB,KAAM3G,EAAM2G,MAAQ8rpB,EAAcG,OAAQptmB,KAAMxlD,EAAMwlD,MACzDi+V,EAAAA,cAAA,YAAOzjZ,EAAM6ypB,WAI7B,wYC3CO,IAMMC,EAAgB,SAAC9ypB,GAAW,OACrCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKz6Z,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,aAAgBx1Z,EAAK,CAAEu1Z,MAAM,+BAChF9R,EAAAA,cAAA,QAAMl+S,EAAE,uLAAuLs3B,KAAK,YACpM4mR,EAAAA,cAAA,QAAMl+S,EAAE,soBAAsoBs3B,KAAK,YACnpB4mR,EAAAA,cAAA,QAAMl+S,EAAE,+oBAA+oBs3B,KAAK,YAC5pB4mR,EAAAA,cAAA,QAAMl+S,EAAE,6gCAA6gCs3B,KAAK,YAC1hC4mR,EAAAA,cAAA,QAAMl+S,EAAE,qMAAqMs3B,KAAK,YAChN,EAoDGk2hB,EAAQ,SAAC/ypB,GAAW,OAC7ByjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKvsR,QAAQ,MAAMmhR,MAAM,8BAA8B9sZ,IAAKzI,EAAMgzpB,SAAU9spB,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,aAAgBx1Z,GAC1IyjZ,EAAAA,cAAA,QAAMl+S,EAAE,oFACN,EAGG0+C,EAAQ,SAACjkJ,GAAW,OAC7ByjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKvsR,QAAQ,MAAMmhR,MAAM,8BAA8BrvZ,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,aAAgBx1Z,GACrHyjZ,EAAAA,cAAA,QAAMl+S,EAAE,4YACN,EAoDG0tjB,EAAO,SAACjzpB,GAAW,OAC5ByjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKvsR,QAAQ,MAAMmhR,MAAM,8BAA8BrvZ,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,aAAgBx1Z,GACrHyjZ,EAAAA,cAAA,QAAMl+S,EAAE,+1BACN,EAiCG2tjB,EAAe,SAAClzpB,GAAW,OACpCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKvsR,QAAQ,MAAMmhR,MAAM,8BAA8BrvZ,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,aAAgBx1Z,GACrHyjZ,EAAAA,cAAA,QAAMl+S,EAAE,itBAAitBs3B,KAAK,YAC9tB4mR,EAAAA,cAAA,QAAMl+S,EAAE,gXAAgXs3B,KAAK,YAC7X4mR,EAAAA,cAAA,QAAMl+S,EAAE,mSAAmSs3B,KAAK,YAChT4mR,EAAAA,cAAA,QAAMl+S,EAAE,yRAAyRs3B,KAAK,YACtS4mR,EAAAA,cAAA,QAAMl+S,EAAE,sQAAsQs3B,KAAK,YACnR4mR,EAAAA,cAAA,QAAMl+S,EAAE,kPAAkPs3B,KAAK,YAC/P4mR,EAAAA,cAAA,QAAMl+S,EAAE,sNAAsNs3B,KAAK,YACjO,EAoPGs2hB,EAAY,SAACnzpB,GAAW,OACjCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKvsR,QAAQ,MAAMmhR,MAAM,8BAA8BrvZ,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQywH,KAAK,OAAO24R,QAAQ,aAAgBx1Z,GACjIyjZ,EAAAA,cAAA,QAAMl+S,EAAE,6IAA6I0rW,OAAO,QAAQ,eAAa,MAAM,iBAAe,QAAQ,kBAAgB,UAC5N,EAeGghB,EAAY,SAACjyd,GAAW,OACjCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAK,oBAAkB,kBAAkBz6Z,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,QAAYpM,EAAK,CAAEw1Z,QAAQ,cAAcD,MAAM,+BAA6B9R,EAAAA,cAAA,SAAGA,EAAAA,cAAA,KAAGxgY,GAAG,cAAawgY,EAAAA,cAAA,KAAGxgY,GAAG,+BAA8BwgY,EAAAA,cAAA,QAAMxgY,GAAG,YAAY,YAAU,UAAUsiF,EAAE,sIAAsI,YAAU,YAAYk+S,EAAAA,cAAA,QAAMxgY,GAAG,YAAYsiF,EAAE,kqBAAkqBk+S,EAAAA,cAAA,KAAG,YAAU,UAAU,YAAU,WAAUA,EAAAA,cAAA,QAAMxgY,GAAG,YAAYsiF,EAAE,2XAA2Xk+S,EAAAA,cAAA,QAAMxgY,GAAG,YAAYsiF,EAAE,sHAAsHk+S,EAAAA,cAAA,QAAMxgY,GAAG,YAAYsiF,EAAE,0IAA6Ik+S,EAAAA,cAAA,QAAMxgY,GAAG,YAAYsiF,EAAE,+oCAA8pC,EA0E3+F6tjB,EAAY,SAACpzpB,GAAW,OACjCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKz6Z,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,aAAgBx1Z,EAAK,CAAEu1Z,MAAM,gCAChF9R,EAAAA,cAAA,QAAM8R,MAAM,8BAA8B14R,KAAK,UAAUt3B,EAAE,o2BACzD,EAkBG8tjB,EAAW,SAACrzpB,GAAW,OAChCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKz6Z,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,YAAYD,MAAM,+BAAkCv1Z,GACvGyjZ,EAAAA,cAAA,QAAMgS,SAAS,UAAUC,SAAS,UAAUnwT,EAAE,8HAA8Hs3B,KAAK,YACjL4mR,EAAAA,cAAA,QAAMl+S,EAAE,uCAAuC0rW,OAAO,QAAQr9H,YAAY,MACxE,EASGt7K,EAAW,SAACt4J,GAAW,OAChCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKz6Z,MAAOlG,EAAMkG,MAAOkG,OAAQpM,EAAMoM,OAAQopZ,QAAQ,YAAY34R,KAAK,OAAO04R,MAAM,+BAAkCv1Z,GACnHyjZ,EAAAA,cAAA,QAAMl+S,EAAE,6bAA6bs3B,KAAK,YAC1c4mR,EAAAA,cAAA,QAAMl+S,EAAE,+NAA+Ns3B,KAAK,YAC5O4mR,EAAAA,cAAA,QAAMl+S,EAAE,6NAA6Ns3B,KAAK,YAC1O4mR,EAAAA,cAAA,QAAMl+S,EAAE,wNAAwNs3B,KAAK,YACrO4mR,EAAAA,cAAA,QAAMl+S,EAAE,oOAAoOs3B,KAAK,YACjP4mR,EAAAA,cAAA,QAAMl+S,EAAE,8NAA8Ns3B,KAAK,YACzO,EAGGy2hB,EAAY,SAACtzpB,GAAW,OACjCyjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKz6Z,MAAM,KAAKkG,OAAO,KAAKopZ,QAAQ,YAAY34R,KAAK,OAAO04R,MAAM,+BAAkCv1Z,GAChGyjZ,EAAAA,cAAA,QAAMl+S,EAAE,gfAAgfs3B,KAAK,YAAY4mR,EAAAA,cAAA,QAAMl+S,EAAE,+MAA+Ms3B,KAAK,YAAY4mR,EAAAA,cAAA,QAAMl+S,EAAE,6OAA6Os3B,KAAK,YACz+B,EAGGk3b,EAAS,SAAC/zjB,GAAW,OAC9ByjZ,EAAAA,cAAA,MAAAkd,EAAA,CAAKz6Z,MAAM,KAAKkG,OAAO,KAAKopZ,QAAQ,YAAY34R,KAAK,OAAO04R,MAAM,8BAAiCv1Z,GAC/FyjZ,EAAAA,cAAA,QAAMh+Y,EAAE,IAAI8+B,EAAE,IAAIr+B,MAAM,KAAKkG,OAAO,KAAKywH,KAAK,UAC9C4mR,EAAAA,cAAA,QAAMl+S,EAAE,g4BAAg4Bs3B,KAAK,YAC34B,gOCpjBNvpI,EAAU,CAAC,EAEfA,EAAQigqB,kBAAoB,IAC5BjgqB,EAAQitlB,cAAgB,IAElBjtlB,EAAQqxG,OAAS,SAAc,KAAM,QAE3CrxG,EAAQkgqB,OAAS,IACjBlgqB,EAAQmgqB,mBAAqB,IAEhB,IAAI,IAASngqB,GAKJ,KAAW,IAAQogqB,QAAS,IAAQA,w5CCX1D,IAAM91Q,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,ojBA2BpBnxW,EAAQ7uB,EAAAA,GAAO8qJ,IAAGo1O,IAAAA,EAAAF,EAAA,qNASNtjJ,EAAAA,EAAAA,IAAKikJ,EAAAA,EAAW1gX,MAAO,KAInCm2nB,EAAsBp2oB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,8MAChC1oX,EAAAA,EAAAA,MAKYqpX,EAAAA,EAAW5jY,OAMvBkib,EAAiBj/a,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,6GAO3BnnX,EAAQ7Y,EAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,EAAA,8GAQlB43C,EAAY53a,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,8CAqBPgvB,EAAY,SAAAylC,yRAAAzgI,CAAAg7F,EAAAylC,GAAA,YAAAjyc,KAAAwsa,+jBAAA,SAAAA,IAAA,IAAA/+a,+FAAAmrI,CAAA,KAAA4zS,GAAA,QAAAzzS,EAAAloI,UAAA7B,OAAAb,EAAA,IAAAsD,MAAAsnI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7qI,EAAA6qI,GAAAnoI,UAAAmoI,GAuJ5B,OAvJ4BxN,EAAA0kN,EAAAziV,EAAAuS,EAAAE,KAAAjO,MAAA+N,EAAA,OAAAnM,OAAA1F,KAAA,YAEiBkiW,EAAAA,EAAAA,cAE9C7kO,EAAA0kN,EAAAziV,GAAA,UACU,MAAI+9H,EAAA0kN,EAAAziV,GAAA,QAEa,CAEvBomqB,gBAAiB,KAEjBC,SAAU,KACVC,KAAM,CACFrupB,EAAG,EACH8+B,EAAG,EACHwvnB,OAAQ,EACR7tpB,MAAO,KAEX8tpB,iBAAiB,EACjBC,uBAAwB,GACxBC,wBAAwB,IAC3B3oiB,EAAA0kN,EAAAziV,GAAA,kBAoBgB,SAACsmqB,GACdtmqB,EAAK2mqB,eAAeL,EACxB,IAACvoiB,EAAA0kN,EAAAziV,GAAA,gBAEc,SAACsmqB,GACZtmqB,EAAK6qC,SAAS,CAAEy7nB,KAAAA,GACpB,IAACvoiB,EAAA0kN,EAAAziV,GAAA,iBAgCe,SAAC4mqB,GAEb,IAAIC,EAEAA,EADAD,EAAQrhqB,MAAM,KAAK,GAAGD,QAAQ,WAAa,EAC9B4nK,KAAK05f,EAAQrhqB,MAAM,KAAK,IAExBqiV,SAASg/U,EAAQrhqB,MAAM,KAAK,IAK7C,IAHA,IAAIuhqB,EAAaF,EAAQrhqB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KAAK,GAE5DwhqB,EAAK,IAAItihB,WAAWoihB,EAAWtlqB,QAC1BuJ,EAAI,EAAGA,EAAI+7pB,EAAWtlqB,OAAQuJ,IACnCi8pB,EAAGj8pB,GAAK+7pB,EAAW5pkB,WAAWnyF,GAGlC,OAAO,IAAIq+J,KAAK,CAAC,IAAI6D,KAAK,CAAC+5f,GAAK,CAAEjopB,KAAMgopB,KAAgB,MAAF1gqB,QAAQ,IAAIpK,MAAOC,UAAS,KAAAmK,OAAI0gqB,EAAWvhqB,MAAM,KAAK,IAChH,IAACw4H,EAAA0kN,EAAAziV,GAAA,iBAYe,SAAC0nB,GACb1nB,EAAKgnqB,SAAWt/oB,EAChB1nB,EAAK2mqB,eAAe3mqB,EAAKirC,MAAMq7nB,KACnC,IAACvoiB,EAAA0kN,EAAAziV,GAAA,gBAEc,SAACwB,GACZ,GAAIA,EAAE2J,OAAO0iK,OAASrsK,EAAE2J,OAAO0iK,MAAMtsK,OAAS,EAAG,CAC7C,IAAM0rK,EAAOzrK,EAAE2J,OAAO0iK,MAAM,GACtBy5T,EAAS,IAAIC,WACb3yC,GAAaC,EAAAA,EAAAA,IAAoB5nR,EAAK9zJ,KAAM,WAC5C27a,GAAaC,EAAAA,EAAAA,IAAoB9nR,EAAKnuJ,KAAM,WAC9C81a,EAAW9F,SAAWgG,EAAWhG,SACjCw4C,EAAO3td,iBAAiB,QAAQ,WAC5B3Z,EAAK6qC,SAAS,CACVw7nB,SAAU/+L,EAAOvre,QAEzB,IACAiE,EAAK6qC,SAAS,CACV27nB,iBAAiB,EACjBC,uBAAwB,KAE5Bn/L,EAAOQ,cAAc76T,IAErBjtK,EAAK6qC,SAAS,CACV27nB,iBAAiB,EACjBC,uBAAwB3xO,EAAW7xW,SAAW2xW,EAAW3xW,SAGrE,CACJ,IAAC86C,EAAA0kN,EAAAziV,GAAA,oBAEkB,SAACsR,GAChB,GAAIA,EAAM8e,cAAcy9I,OAASv8J,EAAM8e,cAAcy9I,MAAM,GAAI,CAC3D,IAAMy5T,EAAS,IAAIC,WACbt6T,EAAO37J,EAAM8e,cAAcy9I,MAAM,GACvCy5T,EAAOl+U,OAAS,SAAC5nJ,GACbxB,EAAKwS,MAAMmra,YAAY1wQ,EAAMq6T,EAAOvre,OACxC,EACAure,EAAOQ,cAAc76T,EACzB,CACJ,IAAClvC,EAAA0kN,EAAAziV,GAAA,eAEa,WACVA,EAAKwS,MAAMmra,YAAY39a,EAAKinqB,cAAcjnqB,EAAKwne,OAAOgD,aAAcxqe,EAAKwne,OAAOgD,YACpF,IAACxqe,CAAA,CAuEA,SAvEA++a,KAAA,EAAAt+a,IAAA,oBAAA+G,MAhID,WACI,IAEI,IAAI2hK,KAAK,CAAC,IAAI6D,KAAK,CAAC,aAAc,CAAEluJ,KAAM,gBAAkB,YAC5D/gB,KAAK8sC,SAAS,CACV67nB,wBAAwB,GAEhC,CAAE,MAAOllqB,GACLzD,KAAK8sC,SAAS,CACV67nB,wBAAwB,GAEhC,CACJ,GAAC,CAAAjmqB,IAAA,uBAAA+G,MACD,WACQzJ,KAAKype,QACLzpe,KAAKype,OAAO5la,QAEpB,GAAC,CAAAnhE,IAAA,gBAAA+G,MASD,SAAckgB,EAAO4+oB,EAAMv6U,GAAU,IAAAm7U,EAAA,KACjCnpqB,KAAKype,OAAS/qe,SAAS6F,cAAc,UACrC,IAAMytf,EAASroe,EAAMo/C,aAAep/C,EAAMhP,MACpCs3e,EAAStoe,EAAMq/C,cAAgBr/C,EAAM9I,OAiB3C,OAhBA7gB,KAAKype,OAAO9ud,MAAQ4tpB,EAAK5tpB,MACzB3a,KAAKype,OAAO5od,OAAS0npB,EAAK1npB,OACd7gB,KAAKype,OAAO9iU,WAAW,MAE/B+iU,UACA//c,EACA4+oB,EAAKrupB,EAAI83e,EACTu2K,EAAKvvnB,EAAIi5c,EACTs2K,EAAK5tpB,MAAQq3e,EACbu2K,EAAK1npB,OAASoxe,EACd,EACA,EACAs2K,EAAK5tpB,MACL4tpB,EAAK1npB,QAGF,IAAI4+B,SAAQ,SAACC,GAChBypnB,EAAK1/L,OAAO2/L,QAAO,SAACv+S,GAChBA,EAAKjjX,KAAOomV,EACZ1uV,OAAOmuK,IAAI47f,gBAAgBF,EAAKG,SAChCH,EAAKG,QAAUhqqB,OAAOmuK,IAAIizX,gBAAgB71K,GAC1CnrU,EAAQypnB,EAAKG,QACjB,GAAG,aACP,GACJ,GAAC,CAAA5mqB,IAAA,iBAAA+G,MAoBD,SAAe8+pB,GAAM,IAAAgB,EAAA,KACbvpqB,KAAKipqB,UAAYV,EAAK5tpB,OAAS4tpB,EAAK1npB,QACpC7gB,KAAKwpqB,cACDxpqB,KAAKipqB,SACLV,EACA,gBACF3onB,MAAK,SAAAyonB,GAAe,OAAIkB,EAAKz8nB,SAAS,CAAEu7nB,gBAAAA,GAAkB,GAEpE,GAAC,CAAA3lqB,IAAA,SAAA+G,MAgDD,WACI,IAAQw3a,EAAoBjhb,KAAKyU,MAAzBwsa,gBACRwoP,EAA4FzpqB,KAAKktC,MAAzFy7nB,EAAsBc,EAAtBd,uBAAwBL,EAAQmB,EAARnB,SAAUC,EAAIkB,EAAJlB,KAAME,EAAegB,EAAfhB,gBAAiBC,EAAsBe,EAAtBf,uBACjE,OACIxwQ,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACr3W,EAAK,KACFq3W,EAAAA,cAACkwQ,EAAmB,KAChBlwQ,EAAAA,cAAC+4C,EAAc,KACX/4C,EAAAA,cAACsf,EAAAA,EAAU,CAACp1Z,SAAUumpB,EAAyB3oqB,KAAK0pqB,aAAe1pqB,KAAK2pqB,iBAAkBlxd,OAAO,oCAC7Fy/M,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oCAEzBwgY,EAAAA,cAAC0xC,EAAS,KACL++N,GACGzwQ,EAAAA,cAACpoX,EAAAA,GAAM,CAAC3kB,QAASnrB,KAAKyU,MAAMysa,aAAcpuB,WAAYwJ,EAAAA,GAAkBC,UACpErE,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,kBAG5B4woB,GACGpwQ,EAAAA,cAACpoX,EAAAA,GAAM,CAAC3kB,QAASnrB,KAAKi4a,YAAa7b,QAASwtQ,EAAAA,KACxC1xQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,mBAKpC4woB,EACGpwQ,EAAAA,cAACrtX,EAAK,KACD89nB,EAEOzwQ,EAAAA,cAAC2xQ,IAAS,CACNltmB,IAAK2rmB,EACLC,KAAMA,EACNp/lB,cAAenpE,KAAKmpE,cACpB2gmB,WAAY9pqB,KAAK+pqB,eACjB3npB,SAAUpiB,KAAKgqqB,aACfr4oB,SAAU,IACVxB,UAAW,MAGf+nY,EAAAA,cAACub,EAAAA,EAAM,CACHpuE,QAASijU,GAAYrnP,EACrBrN,oBAAkB,EAClBzuE,UAAU,GACVC,SAAS,GACT1tU,GAAG,GACHtc,KAAM02Z,EAAAA,EAAYI,QAMlCha,EAAAA,cAAA,OAAKz1Z,UAAU,iBACXy1Z,EAAAA,cAACub,EAAAA,EAAM,CACHpuE,QAAS47E,EACTrN,oBAAkB,EAClBzuE,UAAU,GACVC,SAAS,GACT1tU,GAAG,GACHtc,KAAM02Z,EAAAA,EAAYO,UAK7Bo2P,GACGvwQ,EAAAA,cAAA,OAAKz1Z,UAAU,iBAAiBimqB,KAMxD,0EAAC1nP,CAAA,CA9N4B,CAASv2T,EAAAA,gHCjG7Bw/iB,EAAYj4oB,EAAAA,GAAO8qJ,IAAGi1O,MAAA,ssCAAAA,6EAC7BzoX,EAAAA,EAAAA,OAMwG,SAAA70B,GAAK,OAAIA,EAAMkV,KAAK,IAQrB,SAAAlV,GAAK,OAAIA,EAAMkV,KAAK,GAoB5GgpY,EAAAA,EAAWl1T,UAOfk1T,EAAAA,EAAW5jY,MACPsB,EAAAA,EAAS,0PCzC9B,IAAM65oB,EAAqBl4oB,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,mNAIbW,EAAAA,EAAWqC,UACjBrC,EAAAA,EAAW5jY,MAGD4jY,EAAAA,EAAWC,YAEjC,SAAAn+Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,4FACdW,EAAAA,EAAWt8Y,SAChBs8Y,EAAAA,EAAWt8Y,SACAs8Y,EAAAA,EAAWt8Y,SAClC,IAGC8zpB,EAAoBn4oB,EAAAA,GAAO3J,MAAK+pY,IAAAA,EAAAJ,EAAA,qJAShCo4Q,GAAwBp4oB,EAAAA,EAAAA,IAAOisH,EAAAA,EAAPjsH,CAAuBsgY,IAAAA,EAAAN,EAAA,sMAMxCW,EAAAA,EAAW5jY,MACA4jY,EAAAA,EAAWC,WACXD,EAAAA,EAAWC,YAC7B,SAAAn+Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,4FACdW,EAAAA,EAAWt8Y,SAChBs8Y,EAAAA,EAAWkG,WACAlG,EAAAA,EAAWt8Y,SAClC,IAGCg0pB,EAAer4oB,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,yIASzB1jW,EAAQt8B,EAAAA,GAAO3J,MAAK4qY,IAAAA,EAAAjB,EAAA,0EAGpBuC,EAAAA,EAAkB,IACX5B,EAAAA,EAAWttX,SAaX4e,EAAuB,SAACxvC,GAEjC,IAAMwyM,EAAgB,YACjBxyM,EAAM4B,UAAY5B,EAAM2N,UAAU3N,EAAM6R,QAC7C,EAEA,OACI4xY,EAAAA,cAACiyQ,EAAiB,CAAC,gBAAe11pB,EAAM61pB,qBAAuB,GAAK,KAChEpyQ,EAAAA,cAAA,SACIxgY,GAAIjjB,EAAMkvC,QACV5iC,KAAK,WACLyhC,eAAgB/tC,EAAM+tC,eACtBl8B,QAAS7R,EAAM6R,QACfjQ,SAAU5B,EAAM4B,SAChB,gBAAe5B,EAAM61pB,qBAAuB,GAAK,MAEpD71pB,EAAM6R,QACH4xY,EAAAA,cAACkyQ,EAAqB,CAACnipB,KAAMsipB,EAAAA,IAASl0pB,SAAU5B,EAAM4B,SAAU8U,QAAS87L,EAAe,gBAAexyM,EAAM61pB,qBAAuB,GAAK,MAEzIpyQ,EAAAA,cAACgyQ,EAAkB,CAAC7zpB,SAAU5B,EAAM4B,SAAU8U,QAAS87L,IAE3DixM,EAAAA,cAACmyQ,EAAY,CAAC,gBAAe51pB,EAAM61pB,qBAAuB,GAAK,IAAMn/oB,QAAS87L,GAC1EixM,EAAAA,cAAC5pW,EAAK,CAAC,gBAAe75C,EAAM61pB,qBAAuB,GAAK,IAAME,wBAAyB,CAAEC,OAAQh2pB,EAAM4T,UAIvH,mOChGA,IAAMgqY,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,61DAiBTW,EAAAA,EAAWttX,QAClBkvX,EAAAA,EAAkB,KAClB,SAAAlvR,GAAW,OAAAA,EAARhvH,WAA2BqT,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,0CACtBW,EAAAA,EAAWt8Y,SACvB,GAWmBs8Y,EAAAA,EAAWC,WACjBD,EAAAA,EAAWmW,WACvB,SAAAxjS,GAAW,OAAAA,EAARjvH,WAA2BqT,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,mFACXW,EAAAA,EAAWt8Y,SACjBs8Y,EAAAA,EAAWuG,OAC5B,GAUmBvG,EAAAA,EAAWqC,UAEjBrC,EAAAA,EAAW5jY,MAIL4jY,EAAAA,EAAWC,YAC7B,SAAAj7Q,GAAW,OAAAA,EAARthI,WAA2BqT,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,qDACXW,EAAAA,EAAWqC,UAClC,GAOarC,EAAAA,EAAWC,YAMvB,SAAA1iD,GAAW,OAAAA,EAAR75V,WAA2BqT,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,+CACjBW,EAAAA,EAAWuG,OAC5B,IAKC,SAAAzoD,GAAW,OAAAA,EAARp6V,WAA2BqT,EAAAA,EAAAA,IAAGgpY,IAAAA,EAAAV,EAAA,0CACtBW,EAAAA,EAAWt8Y,SACvB,IAKC,SAAAmgX,GAAW,OAAAA,EAARngX,WAA2BqT,EAAAA,EAAAA,IAAGupY,IAAAA,EAAAjB,EAAA,qDACXW,EAAAA,EAAWt8Y,SAClC,IAIHi4C,EAAQt8B,EAAAA,GAAO3J,MAAK+qY,IAAAA,EAAApB,EAAA,0EAGpBuC,EAAAA,EAAkB,IACX5B,EAAAA,EAAWttX,SAaXkoZ,EAA0B,SAAA94a,GAEnC,IAAMi2pB,GAAiBzyQ,EAAAA,EAAAA,cAAY,SAACx0Z,GACX,IAAAknqB,EAAhBl2pB,EAAM4B,UACM,QAAbs0pB,EAAAl2pB,EAAM0W,eAAO,IAAAw/oB,GAAbA,EAAAj2pB,KAAAD,EAAgBhR,EAExB,GAAG,CAACgR,EAAM0W,QAAS1W,EAAM4B,WAEzB,OACI6hZ,EAAAA,cAAC7F,EAAO,CACJh8Y,SAAU5B,EAAM4B,SAChB8U,QAASu/oB,GAETxyQ,EAAAA,cAAA,SACIn3Y,KAAK,QACLnZ,KAAM6M,EAAM7M,KACZ6B,MAAOgL,EAAMhL,OAASgL,EAAMhL,MAAMgrB,WAClCnO,QAAS7R,EAAM6R,UAEnB4xY,EAAAA,cAAC5pW,EAAK,CAACk8mB,wBAAyB,CAAEC,OAAQh2pB,EAAM4T,SAG5D,+OC9HA,IAAMgqY,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,wyBAGEW,EAAAA,EAAWqC,UACjBrC,EAAAA,EAAWgE,UAMhBhE,EAAAA,EAAWttX,QAClBkvX,EAAAA,EAAkB,IAEP5B,EAAAA,EAAWkG,WAElBtE,EAAAA,EAAkB,IAGP5B,EAAAA,EAAWkG,WAIJlG,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,YAEjC,SAAAvtR,GAAW,OAAAA,EAARhvH,WAA2BqT,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,mFACXW,EAAAA,EAAWt8Y,SACjBs8Y,EAAAA,EAAWqC,UAC5B,IACC,SAAA1vR,GAAQ,OAAAA,EAAL59D,QAAqBh+C,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,0XACLW,EAAAA,EAAWmB,UAEPnB,EAAAA,EAAWmB,UAGXnB,EAAAA,EAAWmB,UAGXnB,EAAAA,EAAWmB,UAGXnB,EAAAA,EAAWmB,UAEtC,IAgBI82Q,EAAuB,SAAAn2pB,GAChC,OACIyjZ,EAAAA,cAAC7F,EAAO,CAAC3qV,QAASjzD,EAAMklb,SAAUtjb,SAAU5B,EAAM4B,UAC7C5B,EAAM4T,OAAS6vY,EAAAA,cAACkQ,EAAAA,EAAiB,CAACpmX,SAAUvtC,EAAMutC,SAAU6onB,WAAYp2pB,EAAMo2pB,WAAYC,aAAcr2pB,EAAMq2pB,cAAer2pB,EAAM4T,OACpI6vY,EAAAA,cAAA,YAAU91Y,SAAU3N,EAAM2N,SAAU3Y,MAAOgL,EAAMhL,MAAO4M,SAAU5B,EAAM4B,SAAUkzC,YAAa90C,EAAM80C,cACpG90C,EAAMklb,UACHzhC,EAAAA,cAAC8uQ,EAAAA,EAAI,CAACjmpB,KAAMgmpB,EAAAA,EAAUtsc,OAAQhmN,EAAMklb,UAIpD,43CCpEA,IAgPYoxO,EAhPRC,EAAoC,KAalC34Q,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,krCAGLW,EAAAA,EAAWC,WAKJD,EAAAA,EAAWqC,UAOtBrC,EAAAA,EAAWttX,QACPhV,EAAAA,EAAS,IAGEsiY,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGtBD,EAAAA,EAAWkG,WAMPlG,EAAAA,EAAWkG,YAG1B,SAAApkZ,GAAK,OAAIA,EAAMizD,QAASh+C,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,qDACLW,EAAAA,EAAWmB,UAClC,GAMCS,EAAAA,EAAkB,IASX5B,EAAAA,EAAWttX,SAItB4jb,EAASj3b,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,sFAMnBi5Q,EAAej5oB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,0TAUrBuC,EAAAA,EAAkB,KAKlB,SAAA9/Y,GAAK,OAAIA,EAAM0ha,cAAezsZ,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,kDAElC,IAIH,SAAAv9Y,GAAK,OAAIA,EAAMy2pB,cAAexhpB,EAAAA,EAAAA,IAAGgpY,IAAAA,EAAAV,EAAA,+FAIlC,IACC,SAAAv9Y,GAAK,OAAIA,EAAM02pB,aAAczhpB,EAAAA,EAAAA,IAAGupY,IAAAA,EAAAjB,EAAA,kFAIjC,IACC,SAAAv9Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG0pY,IAAAA,EAAApB,EAAA,iLAEVW,EAAAA,EAAWuG,OAChBvG,EAAAA,EAAWt8Y,SACAs8Y,EAAAA,EAAWqC,UAEtC,IAEC,SAAAvgZ,GAAK,OAAIA,EAAM22pB,aAAc1hpB,EAAAA,EAAAA,IAAG4pY,IAAAA,EAAAtB,EAAA,4EAIjC,IAGC8xQ,EAAc9xoB,EAAAA,GAAOwgE,OAAMghU,IAAAA,EAAAxB,EAAA,oHAEhB3hY,EAAAA,EAAS,IAEbsiY,EAAAA,EAAWwC,UAIlBk2Q,EAAcr5oB,EAAAA,GAAO8qJ,IAAG42O,IAAAA,EAAA1B,EAAA,0IAObW,EAAAA,EAAWwC,UAItBm2Q,EAAWt5oB,EAAAA,GAAO8qJ,IAAG82O,IAAAA,EAAA5B,EAAA,iMAarBu5Q,EAAqBv5oB,EAAAA,GAAO8qJ,IAAG+2O,IAAAA,EAAA7B,EAAA,6IAOxBW,EAAAA,EAAWttX,SAGlBmmoB,EAAsBx5oB,EAAAA,GAAO8qJ,IAAGi3O,IAAAA,EAAA/B,EAAA,4hBAShC,SAAAv9Y,GAAK,OAAIA,EAAMq0B,aAAcpf,EAAAA,EAAAA,IAAGuqY,IAAAA,EAAAjC,EAAA,wCACfv9Y,EAAMq0B,WACxB,GACCyrX,EAAAA,EAAkB,IACX5B,EAAAA,EAAWwC,UAElB,SAAA1gZ,GAAK,OAAIA,EAAMg3pB,eAAgB/hpB,EAAAA,EAAAA,IAAGwqY,IAAAA,EAAAlC,EAAA,4CAEnC,IAEC,SAAAv9Y,GAAK,OAAIA,EAAM4B,UAAWqT,EAAAA,EAAAA,IAAG0qY,IAAAA,EAAApC,EAAA,oMAU3BtoY,EAAAA,EAAAA,IAAG4qY,IAAAA,EAAAtC,EAAA,uCAEN,GAKuBW,EAAAA,EAAWqC,WAC7B,SAAAvgZ,GAAK,OAAKA,EAAM29E,YAAc39E,EAAM4B,WAAaqT,EAAAA,EAAAA,IAAG+qY,IAAAA,EAAAzC,EAAA,0CACzCv9Y,EAAMi3pB,eAAiB/4Q,EAAAA,EAAWmB,UAAYnB,EAAAA,EAAWC,WACrE,GAGSD,EAAAA,EAAWqC,WASvB22Q,GAA0B35oB,EAAAA,EAAAA,IAAOw5oB,EAAPx5oB,CAA2B0iY,IAAAA,EAAA1C,EAAA,wKAGrD,SAAAv9Y,GAAK,OAAIA,EAAM22pB,aAAc1hpB,EAAAA,EAAAA,IAAGirY,IAAAA,EAAA3C,EAAA,+DAErBW,EAAAA,EAAWttX,QACvB,GAGYstX,EAAAA,EAAWwC,UAGlB,SAAA1gZ,GAAK,OAAIA,EAAM22pB,aAAc1hpB,EAAAA,EAAAA,IAAGkrY,IAAAA,EAAA5C,EAAA,iIAKjC,KAWR,SAJW+4Q,GAAAA,EAAqB,oBAArBA,EAAqB,oBAArBA,EAAqB,wBAIhC,CAJWA,IAAAA,EAAqB,KAyC1B,IAAMjwP,GAAgB8wP,EAAAA,EAAAA,aAA8E,SAACn3pB,EAAOyI,GAAQ,IAAA2upB,EAAAC,EACjHzqU,GAAWs2D,EAAAA,EAAAA,MACgCC,EAAAp3R,GAAfq3R,EAAAA,EAAAA,WAAS,GAAM,GAA1CzlU,EAASwlU,EAAA,GAAEm0Q,EAAYn0Q,EAAA,GAC4BmC,EAAAv5R,GAAdq3R,EAAAA,EAAAA,WAAS,GAAK,GAAnDm0Q,EAAcjyQ,EAAA,GAAEkyQ,EAAiBlyQ,EAAA,GACqBG,EAAA15R,GAArBq3R,EAAAA,EAAAA,UAASpjZ,EAAMhL,OAAM,GAAtDyiqB,EAAYhyQ,EAAA,GAAEiyQ,EAAejyQ,EAAA,GAE9BkyQ,GAAkB1opB,EAAAA,EAAAA,QAAyB,MACiB22Y,EAAA75R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA3Dw0Q,EAAahyQ,EAAA,GAAEiyQ,EAAgBjyQ,EAAA,GAC8BG,EAAAh6R,GAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAA7D00Q,EAAgB/xQ,EAAA,GAAEgyQ,EAAmBhyQ,EAAA,GACwCG,EAAAn6R,GAAhDq3R,EAAAA,EAAAA,UAAyBpjZ,EAAMg4pB,YAAc,IAAG,GAA7EA,EAAU9xQ,EAAA,GAAE+xQ,EAAa/xQ,EAAA,GAC6DgyQ,EAAAnsiB,GAA7Cq3R,EAAAA,EAAAA,UAAiBpjZ,EAAMm4pB,kBAAoB,GAAE,GAAtFA,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,IAE5ChppB,EAAAA,EAAAA,YAAU,WACFlP,EAAMg4pB,WACNC,EAAcj4pB,EAAMg4pB,YArSJ,SAACprU,GACzB,OAAK2pU,EAOEvrnB,QAAQC,QAAQsrnB,GANZ3pU,GAAS8nC,EAAAA,EAAAA,kBAAiBvpV,MAAK,SAACktnB,GAEnC,OADA9B,EAAoB8B,CAExB,GAIR,CA8RYC,CAAoB1rU,GAAUzhT,MAAK,SAACotnB,GAChCN,EAAcM,EAClB,GAER,GAAG,CAACv4pB,EAAMg4pB,cAEV9opB,EAAAA,EAAAA,YAAU,WACFlP,EAAM4mW,UAAY0vT,EAAsBkC,WACpCjB,GAAkBI,EAAgB12pB,QAClC02pB,EAAgB12pB,QAAQE,QAExB4lB,YAAW,WAAM,IAAA0xoB,EACZhwpB,SAA4C,QAAzCgwpB,EAAHhwpB,EAAqCxH,eAAO,IAAAw3pB,GAA7CA,EAA+Ct3pB,OACnD,GAAG,KAGf,GAAG,CAACo2pB,IAEJ,IA0DMmB,GAAkB/hQ,EAAAA,EAAAA,UAAQ,WAC5B,OAAQqhQ,GAAc,IAAI/lqB,KAAI,SAAAqzG,GAAC,MAAK,CAChCr3G,IAAKq3G,EAAE2xU,IACPrga,KAAM0uF,EAAE2xU,IACR1wZ,KAAM++E,EAAEriF,GACX,GACL,GAAG,CAAC+0oB,IAEJ,OACIv0Q,EAAAA,cAAA,WACKzjZ,EAAM4T,OACH6vY,EAAAA,cAACkQ,EAAAA,EAAiB,CAACyiQ,WAAYp2pB,EAAMo2pB,WAAYC,aAAcr2pB,EAAMq2pB,cAChEr2pB,EAAM4T,MACN5T,EAAMutC,UACHk2W,EAAAA,cAAC0tD,EAAAA,EAAkB,OAI/B1tD,EAAAA,cAAC7F,EAAO,CAAC3qV,MAAOjzD,EAAMizD,OAAS2kmB,EAAe,UAAQ,uBAAuB5pqB,UAAS,kBAAA4F,OAAoBoM,EAAMhS,YAC5Gy1Z,EAAAA,cAAC+yQ,EAAY,CACTC,YAAiC,MAAnBz2pB,EAAMklb,UAAoBllb,EAAMklb,UAAYllb,EAAMizD,OAAUjzD,EAAMi1D,QAChFysW,cAAe1ha,EAAM2nZ,QACrB+uQ,WAAY12pB,EAAM02pB,WAClB90pB,SAAU5B,EAAM4B,SAChB+0pB,WAAY32pB,EAAM4mW,UAAY0vT,EAAsBqC,UACnD34pB,EAAM4mW,UAAY0vT,EAAsBqC,UACrCl1Q,EAAAA,cAACqzQ,EAAkB,KAA8B,QAA9BM,EAAEY,EAAWG,UAAiB,IAAAf,GAAM,QAANA,EAA5BA,EAA8BjkqB,YAAI,IAAAikqB,GAAQ,QAARC,EAAlCD,EAAoCwB,cAAM,IAAAvB,OAAA,EAA1CA,EAAAp3pB,KAAAm3pB,EAA6C,IAEpEp3pB,EAAM4mW,UAAY0vT,EAAsBkC,UAAYjB,EAClD9zQ,EAAAA,cAAA,SAAOh7Y,IAAKkvpB,EAAiBrrpB,KAAK,WAAWnZ,KAAM6M,EAAM7M,KAAMwa,SAvEpD,SAAC3e,GAC5BgR,EAAM2N,SAAS3e,GACf0oqB,EAAgB1oqB,EAAE2J,OAAO3D,MAC7B,EAoEqHA,MAAOyiqB,IACtGh0Q,EAAAA,cAAA,SACEh7Y,IAAKA,EACL6D,KAAOtM,EAAM4mW,UAAY0vT,EAAsBkC,UAAYjB,EAAkB,WAAa,OAC1F31pB,SAAU5B,EAAM4B,SAChB+L,SAvEF,SAAC3e,GAA2C,IAAA6pqB,EAC9D74pB,EAAM2N,SAAS3e,GAEf,IAAMgG,EAAsB,QAAjB6jqB,EAAG7pqB,EAAE2J,OAAO3D,aAAK,IAAA6jqB,OAAA,EAAdA,EAAgBzhqB,OA8B9BygqB,GAAiB,GACjBE,EAAoB,IA3BhB/3pB,EAAM4mW,UAAY0vT,EAAsBkC,UACxCd,EAAgB1iqB,GAGhBgL,EAAMutC,WAAav4C,GACnB6iqB,GAAiB,GAGjB7iqB,GAASgL,EAAM4mW,UAAY0vT,EAAsBwC,YACjDjB,GAQwB,SAAC7iqB,GAC7B,MAAO,aAAatK,KAAKsK,EAC7B,CAV0B+jqB,CAAwB/jqB,IAG1CA,GAASgL,EAAM4mW,UAAY0vT,EAAsBqC,UACjDd,GAQuB,SAAC7iqB,GAC5B,MAAO,yBAAyBtK,KAAKsK,EACzC,CAV0BgkqB,CAAuBhkqB,GAEjD,EAkDwB2jD,OAtFT,SAAC3pD,GACRgR,SAAAA,EAAO24C,QACP34C,EAAM24C,OAAO3pD,GAGjB6oqB,EAAiB73pB,EAAMutC,WAAavtC,EAAMhL,OAC1CsiqB,GAAa,EACjB,EAgFwB5gpB,QAAS1W,aAAK,EAALA,EAAO0W,QAChB/V,QA/FR,SAAC3R,GACTgR,SAAAA,EAAOW,SACPX,EAAMW,QAAQ3R,GAElBsoqB,GAAa,EACjB,EA2FwBtiqB,MAAOgL,EAAMhL,OAAS,GACtB8/C,YAAa90C,EAAM80C,YACnB3hD,KAAM6M,EAAM7M,KACZ8lqB,UAAWj5pB,EAAMi5pB,UACjB99kB,aAAa,eACb6xa,UAAWhtf,EAAMk5pB,YAExBl5pB,EAAM2nZ,SACHlE,EAAAA,cAACmzQ,EAAW,KACRnzQ,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAM2nZ,WAGrClE,EAAAA,cAACozQ,EAAQ,KACJ72pB,EAAMi1D,SACHwuV,EAAAA,cAAC+wD,EAAM,KACH/wD,EAAAA,cAACngV,EAAAA,EAAO,CAAC38D,KAAMkiZ,EAAAA,EAAa6U,SAGlC19Z,EAAMm5pB,mBAAkCnvqB,IAAlBgW,EAAM4mW,SAC1B68C,EAAAA,cAAC4rQ,EAAW,CACR34oB,QAAS1W,EAAMm5pB,aACf7spB,KAAK,UAELm3Y,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,QAKlCr4Z,EAAMo5pB,kBACH31Q,EAAAA,cAACszQ,EAAmB,CAACrgpB,QAAS1W,EAAMq5pB,uBAAwBz3pB,SAAU5B,EAAMs5pB,yBAA0B37kB,UAAWA,GAC5G39E,EAAMo5pB,kBAGdp5pB,EAAMqrP,WACHo4J,EAAAA,cAACszQ,EAAmB,CAACrgpB,QAAS1W,EAAMu5pB,kBAAmB33pB,SAAU5B,EAAMs5pB,yBAA0B37kB,UAAWA,EAAWs5kB,gBAAc,GACjIxzQ,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,OAG9Br4Z,EAAMw5pB,UACH/1Q,EAAAA,cAACszQ,EAAmB,CAACrgpB,QAAS1W,EAAMy5pB,iBAAkBzrqB,UAAU,cAAc4T,SAAU5B,EAAMs5pB,0BAC1F71Q,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMkmpB,EAAAA,OAG9B15pB,EAAMu5kB,UACH91L,EAAAA,cAACszQ,EAAmB,KAChBtzQ,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMogc,EAAAA,OAG7B5zc,EAAM4mW,UAAY0vT,EAAsBkC,UACtC/0Q,EAAAA,cAACyzQ,EAAuB,CAACxgpB,QAAS,WAAQ8gpB,GAAkB,SAAA/+nB,GAAK,OAAKA,CAAK,GAAG,EAC1Eu+nB,aAAch3pB,EAAMs5pB,0BACpB71Q,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM+jpB,EAAiB3vQ,EAAAA,IAAQ+xQ,EAAAA,MAGtD35pB,EAAM4mW,UAAY0vT,EAAsBwC,YACtCr1Q,EAAAA,cAACyzQ,EAAuB,CAACF,cAAY,GACjCvzQ,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMompB,EAAAA,OAG7B55pB,EAAM4mW,UAAY0vT,EAAsBqC,UAAYD,EAAgB3pqB,OAAS,GAC3E00Z,EAAAA,cAACyzQ,EAAuB,CACpBF,aAAch3pB,EAAMs5pB,yBACpBjloB,WAAY,IACZsioB,YAAU,GACVlzQ,EAAAA,cAAC+N,EAAAA,EAAQ,CACLllZ,KAAMmlZ,EAAAA,EAAcoiD,OACpBR,eAAa,EACbE,YAAU,EACVjgd,QAASolqB,EACT1jqB,MAAO,CAAC0jqB,EAAgBP,IACxBxqpB,SAAU,SAAA2uG,GAAQ,OAAI87iB,EAAoBM,EAAgBxvjB,WAAU,SAAA5D,GAAC,OAAIA,EAAEr3G,MAAQquH,EAASruH,GAAG,IAAE,MAIvF,MAAnB+R,EAAMklb,UAAoBllb,EAAMklb,UAAYllb,EAAMizD,OAAW2kmB,GAAiBE,IAC7Er0Q,EAAAA,cAAC8uQ,EAAAA,EAAI,CAACjmpB,KAAMgmpB,EAAAA,EAAUtsc,OAAQ8xc,GAAoB93pB,EAAMklb,YAMhF,8PCnfA,IAAMtnC,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,uLAShB,SAAAv9Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,0CACnBW,EAAAA,EAAWt8Y,SACvB,IAIHi4C,EAAQt8B,EAAAA,GAAO3J,MAAK+pY,IAAAA,EAAAJ,EAAA,oIAGpBuC,EAAAA,EAAkB,IAGX5B,EAAAA,EAAWttX,SAClB,SAAA5wB,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,kCACnBW,EAAAA,EAAWt8Y,SACvB,IAYQ+xZ,EAAgC,SAAA3zZ,GACzC,OACIyjZ,EAAAA,cAAC7F,EAAO,CAACh8Y,SAAU5B,EAAM4B,SAAU8U,QAAS1W,EAAM0W,SAC9C+sY,EAAAA,cAAC5pW,EAAK,CAACj4C,SAAU5B,EAAM4B,UACnB6hZ,EAAAA,cAACg+C,EAAAA,EAAyB,CAACC,cAAe1hc,EAAM0hc,eAAiB,GAAI1hc,EAAM4I,WAE9E5I,EAAMq2pB,cACH5yQ,EAAAA,cAAC0tQ,EAAAA,EAAc,CAAC0I,SAAO,EAAC/kpB,MAAO9U,EAAMq2pB,aAAczloB,QAAS5wB,EAAMo2pB,aAErEp2pB,EAAMutC,UACHk2W,EAAAA,cAAC0tD,EAAAA,EAAkB,MAInC,iFC1Da2oN,WAAgBv8oB,GAAO8qJ,IAAGi1O,MAAA,0WAAAA,k/BCYhC,IAAMk3D,EAAM,SAAAulN,yRAAAxoV,CAAAijI,EAAAulN,GAAA,YAAAh6pB,KAAAy0c,urBAAA,SAAAA,IAAA,mGAAA77U,CAAA,KAAA67U,GAAAz0c,EAAA/N,MAAA,KAAApB,UAAA,CAoBd,SApBc4jd,KAAA,EAAAvmd,IAAA,SAAA+G,MAEf,WACI,IAAAm9c,EAA0E5md,KAAKyU,MAAvEhS,EAASmkd,EAATnkd,UAAW4lB,EAAKu+b,EAALv+b,MAAKompB,EAAA7nN,EAAGxrc,KAAAA,OAAI,IAAAqzpB,EAAGnxQ,EAAAA,EAAaC,MAAKkxQ,EAAE/kmB,EAAOk9Y,EAAPl9Y,QAASglmB,EAAM9nN,EAAN8nN,OAC/D,OACIx2Q,EAAAA,cAAA,OAAKz1Z,UAAU,kBACVinE,EACGwuV,EAAAA,cAAA,OAAKz1Z,UAAWA,GACZy1Z,EAAAA,cAACngV,EAAAA,EAAO,CAAC38D,KAAMA,EAAMiN,MAAOA,KAE5BqmpB,EACIx2Q,EAAAA,cAAA,WACIA,EAAAA,cAACy2Q,EAAwB,KACrBz2Q,EAAAA,cAACngV,EAAAA,EAAO,CAAC38D,KAAMA,EAAMiN,MAAOA,KAE/BroB,KAAKyU,MAAM4I,UAEfrd,KAAKyU,MAAM4I,SAGpC,0EAAC4rc,CAAA,CApBc,CAAS/wD,EAAAA,gHCRtB02Q,EAAiB58oB,EAAAA,GAAO+wD,KAAIgvU,MAAA,oDAAAA,4EACrBY,EAAAA,EAAW50T,QAClBw2T,EAAAA,EAAkB,KAGXqxD,EAAqB,WAC9B,OACI1tD,EAAAA,cAAC02Q,EAAc,KAAC,MAIxB,u1CCFA,IAGMC,EAHqBzjV,EAAAA,EAAnB0jV,gBAGiCC,EAAAA,OAAAA,eASnC/3K,GAAYhle,EAAAA,EAAAA,IAAO28oB,EAAAA,GAAP38oB,CAAuC+/X,IAAAA,EAAAC,EAAA,qqBAEvCW,EAAAA,EAAW5jY,MAIvBwlY,EAAAA,EAAkB,KAClB,SAAC9/Y,GAAK,OAAKA,EAAMu6pB,SAAUtlpB,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,kDACJtjJ,EAAAA,EAAAA,IAAKikJ,EAAAA,EAAW1gX,MAAO,IAClD,IACC,SAAAozF,GAAA,IAAA4piB,EAAA5piB,EAAGkrK,MAAe,MAAiB,gBAA3B,IAAA0+X,EAAG,QAAOA,IAA2BvlpB,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,uDAG9CtoY,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,qDAGN,GAIkCW,EAAAA,EAAWqC,UAgBdrC,EAAAA,EAAWgE,WAsBzCu4Q,EAAa,SAAAV,yRAAAxoV,CAAAkpV,EAAAV,GAAA,YAAAh6pB,KAAA06pB,+jBAAA,SAAAA,IAAA,IAAAjtqB,qGAAAmrI,CAAA,KAAA8hiB,GAAA,QAAA3hiB,EAAAloI,UAAA7B,OAAAb,EAAA,IAAAsD,MAAAsnI,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA7qI,EAAA6qI,GAAAnoI,UAAAmoI,GAId,SAJck3M,EAAAziV,EAAAuS,EAAAE,KAAAjO,MAAA+N,EAAA,OAAAnM,OAAA1F,OAEC,WACZV,EAAKwS,MAAM06pB,cAAcltqB,EAAKwS,MAAM6mX,UACxC,SAJe,4GAIdr5X,CAAA,CA0BA,SA1BAitqB,KAAA,EAAAxsqB,IAAA,SAAA+G,MAED,WAAS,IAAA2lqB,EACL,OACIl3Q,EAAAA,cAAC8+F,EAAS,CAACg4K,OAAQhvqB,KAAKyU,MAAMu6pB,OAAQz+X,MAAOvwS,KAAKyU,MAAM87R,OACpD2nH,EAAAA,cAAA,UACKl4Z,KAAKyU,MAAM46pB,gBACRn3Q,EAAAA,cAAA,UACIA,EAAAA,cAAA,YACIA,EAAAA,cAACmf,EAAAA,GAAI,CAAClvU,GAAE,SAAA9/F,OAAWrI,KAAKyU,MAAMylX,iBAAgB,aAAA7xX,OAAYrI,KAAKyU,MAAMg2V,UAAS,cAAApiW,OAAarI,KAAKyU,MAAM6mX,WAAa74X,UAAU,QACzHy1Z,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,wBAKA,KAAhB,QAApB03oB,EAAApvqB,KAAKyU,MAAMs3X,iBAAS,IAAAqjS,OAAA,EAApBA,EAAsBE,YACnBp3Q,EAAAA,cAAA,MAAI/sY,QAASnrB,KAAKgiK,eACdk2P,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMsnpB,EAAAA,MACvBr3Q,EAAAA,cAAA,QAAMz1Z,UAAU,QACZy1Z,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,qBAOjD,0EAACw3oB,CAAA,CA9Bc,CAASh3Q,EAAAA,WAiC5B,QAAe9sE,EAAAA,EAAe0jV,eAAiBD,EAAeK,GAAiBA,4lDCvG/E,IAAM78Q,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,uGAQpBw9Q,EAAUx9oB,EAAAA,GAAO8qJ,IAAGo1O,IAAAA,EAAAF,EAAA,UAGpBy9Q,EAAUz9oB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,uKAYpB09Q,EAAc19oB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,kJAUxB0jB,EAAY1jZ,EAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,EAAA,iHAKVW,EAAAA,EAAWkG,YAiBhBiD,EAAmB,SAAArnZ,GAAS,IAAAk7pB,MAC0CjvQ,MAAbC,EAAAA,EAAAA,QAAa,o5BAAxE2C,EAAU5C,EAAA,GAAEG,EAAYH,EAAA,GAAEI,EAAcJ,EAAA,GAAEK,EAAaL,EAAA,GAO9D,OACIxI,EAAAA,cAAC7F,EAAO,KACH59Y,EAAMy6W,MACHgpC,EAAAA,cAACub,EAAAA,EAAM,CACH/7Y,GAAIjjB,EAAMy6W,KAAKx3V,GACfytU,UAAW1wV,EAAMy6W,KAAK/pB,UACtBC,SAAU3wV,EAAMy6W,KAAK9pB,SACrBC,QAAS5wV,EAAMy6W,KAAK7pB,QACpBjqV,KAAM02Z,EAAAA,EAAYI,KAClBoB,UAAQ,IAGf7+Z,EAAM3W,MACHo6Z,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwd,EAAS,MACVxd,EAAAA,cAACs3Q,EAAO,KACJt3Q,EAAAA,cAACkvQ,EAAAA,EAAS,CAAC3wP,IAAKm5P,EAAAA,IAAgBtI,SAAUt/R,IAAOA,IAAAA,IAAWvzX,EAAM3W,OAAOshH,QAAQznB,OAAO,4BAInGljF,EAAMmnZ,aACH1D,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwd,EAAS,MACVxd,EAAAA,cAACw3Q,EAAW,KACRx3Q,EAAAA,cAACyD,EAAAA,EAAiB,CACdC,YAA8B,QAAnB+zQ,EAAEl7pB,EAAMmnZ,mBAAW,IAAA+zQ,OAAA,EAAjBA,EAAmBjpqB,KAAI,SAAAsnE,GAAI,MAAK,CACzC5qE,QACI80Z,EAAAA,cAACmf,EAAAA,GAAI,CACDlvU,GAAIn6B,EAAKy8R,UAAY,SAAHpiW,OAAY2lE,EAAK6rT,oBAAmB,aAAAxxX,OAAY2lE,EAAKy8R,WAAS,SAAApiW,OAAc2lE,EAAK6rT,oBAAmB,eAErH7rT,EAAK2kT,YAAc3kT,EAAK2kT,YAAc3kT,EAAKksT,kBAGvD,QAKhBzlX,EAAMo7pB,gBACH33Q,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACwd,EAAS,MACTjha,EAAMo7pB,gBAGdp7pB,EAAMq7pB,WACH53Q,EAAAA,cAACu3Q,EAAO,CAACvypB,IAAKomZ,GACVpL,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM0kZ,EAAAA,IAAYxhZ,QAAS21Y,IAC3CD,GACG3I,EAAAA,cAACtuH,EAAAA,EAAW,CACR7sH,MAAOtoK,EAAMq7pB,UAAUppqB,KAAI,SAAAsnE,GAAI,OAAA6zR,EAAAA,EAAA,GAAU7zR,GAAI,IAAE06H,OAAQ,kBAAMqne,EAAc/hmB,EAAK06H,eApDpGq4N,GAoD2G,UAOnH,uGChIM1O,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,MAAA,oGAAAA,4EACpBwC,EAAAA,EAAkB,IAEX5B,EAAAA,EAAWt8Y,UAIX25pB,EAAa,SAAAv7pB,GACtB,OACIyjZ,EAAAA,cAAC7F,EAAO,KACH59Y,EAAM4I,SAGnB,mRCdO,IAAM+jZ,EAAcpvY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,8LAOnBW,EAAAA,EAAW5jY,OACvB,SAAAta,GAAK,OAAKA,EAAM22Y,WAAY1hY,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,kCAEhC,IAGQqP,EAAgBrvY,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,sEAC1BW,EAAAA,EAAWttX,QACPhV,EAAAA,EAAS,KAIb4wY,EAAWjvY,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,sEACrBW,EAAAA,EAAWttX,QACPhV,EAAAA,EAAS,KAIbqoJ,EAAM1mJ,EAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,EAAA,yTAGXW,EAAAA,EAAWgE,WASvB,SAAAliZ,GAAK,OAAIA,EAAMusZ,SAAUt3Y,EAAAA,EAAAA,IAAGgpY,IAAAA,EAAAV,EAAA,6CACNW,EAAAA,EAAWl1T,UAClC,IAIQ0jU,EAAOnvY,EAAAA,GAAO8qJ,IAAGm2O,IAAAA,EAAAjB,EAAA,0KACZW,EAAAA,EAAWkG,YAOvB,SAAApkZ,GAAK,OAAIA,EAAMusZ,SAAUt3Y,EAAAA,EAAAA,IAAG0pY,IAAAA,EAAApB,EAAA,6CACNW,EAAAA,EAAWx8V,KAClC,IAGQ85mB,EAAaj+oB,EAAAA,GAAO8qJ,IAAGw2O,IAAAA,EAAAtB,EAAA,2DAKvBwP,EAAaxvY,EAAAA,GAAO8qJ,IAAG02O,IAAAA,EAAAxB,EAAA,uWAQnB3hY,EAAAA,EAAS,IAERsiY,EAAAA,EAAW5jY,8wDC/D7B,IAAMmhpB,EAAQl+oB,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,4JAOlB,SAAAv9Y,GAAK,OAAIA,EAAMmqZ,YAAal1Y,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,8CACTtjJ,EAAAA,EAAAA,IAAKikJ,EAAAA,EAAW1gX,MAAO,IAC9C,IACC,SAAAx9B,GAAK,OAAKA,EAAMmqZ,YAAal1Y,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,8CACVtjJ,EAAAA,EAAAA,IAAKikJ,EAAAA,EAAW1gX,MAAO,GAC9C,IAGCogX,EAAUrgY,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,qVAgBpB,SAAAv9Y,GAAK,OAAIA,EAAMmqZ,YAAal1Y,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,gCAEhC,IACC,SAAAv9Y,GAAK,OAAKA,EAAMmqZ,YAAal1Y,EAAAA,EAAAA,IAAGgpY,IAAAA,EAAAV,EAAA,oCAEjC,IAGCm+Q,EAAen+oB,EAAAA,GAAO8qJ,IAAGm2O,IAAAA,EAAAjB,EAAA,+HAMzB,SAAAv9Y,GAAK,OAAIA,EAAMmqZ,YAAal1Y,EAAAA,EAAAA,IAAG0pY,IAAAA,EAAApB,EAAA,gCAEhC,IAGCtuX,EAAS1R,EAAAA,GAAO8qJ,IAAGw2O,IAAAA,EAAAtB,EAAA,gGACPW,EAAAA,EAAW5jY,OAMvBqhpB,EAAap+oB,EAAAA,GAAO8qJ,IAAG02O,IAAAA,EAAAxB,EAAA,2HAQvB/hX,EAAUje,EAAAA,GAAO8qJ,IAAG42O,IAAAA,EAAA1B,EAAA,wEACRW,EAAAA,EAAW5jY,OAEvB,SAAAta,GAAK,OAAIA,EAAM47pB,mBAAoB3mpB,EAAAA,EAAAA,IAAGkqY,IAAAA,EAAA5B,EAAA,wDAEvC,IAGCs+Q,EAAgBt+oB,EAAAA,GAAO8qJ,IAAG+2O,IAAAA,EAAA7B,EAAA,4DAK1Bu+Q,EAAWv+oB,EAAAA,GAAO8qJ,IAAGi3O,IAAAA,EAAA/B,EAAA,kNAarBw+Q,EAAmBx+oB,EAAAA,GAAO8qJ,IAAGm3O,IAAAA,EAAAjC,EAAA,qOACjBW,EAAAA,EAAWl1T,UAMZk1T,EAAAA,EAAWttX,QAClBkvX,EAAAA,EAAkB,KAyBrB,IAAM/pW,EAAQ,SAAwB/1C,GACzC,IAAMopZ,GAAeC,EAAAA,EAAAA,YAA6BrpZ,EAAM05B,SAElDm1X,GAAa5/Y,EAAAA,EAAAA,QAAO,MAC4Dk0Y,EAAAp3R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA/E44Q,EAAuB74Q,EAAA,GAAE84Q,EAA0B94Q,EAAA,GACwBmC,EAAAv5R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA3E84Q,EAAqB52Q,EAAA,GAAE62Q,EAAwB72Q,EAAA,GAEhD82Q,EAAa,WACfD,GAAyB,GACrB/yQ,EAAaizQ,mBArBzB,SAA6BC,EAAqCD,GAC9D,IAAME,ivBAAiBnvU,CAAA,GAAQkvU,GAE/B,IAAK,IAAInqQ,KAASmqQ,EACVC,EAAkBpqQ,KAClBoqQ,EAAkBpqQ,GAAS,GAInCkqQ,EAAkBE,EACtB,CAYYC,CAAoBpzQ,EAAakzQ,eAAgBlzQ,EAAaizQ,mBAG9DL,EACA5yQ,EAAagB,cAAa,GAG1BrjY,YAAW,WACH/mB,EAAMy8pB,kBAAoBrzQ,EAAaszQ,WACvCtzQ,EAAaszQ,YAAYtzQ,EAAan0V,SAEtCm0V,EAAagB,cAAchB,EAAae,UAEhD,GAAG,IAEX,EAEMsiB,EAAe,WAAM,IAAAkwP,EACvBV,GAA2B,IACE,QAAzBU,EAAAvzQ,EAAa8H,oBAAY,IAAAyrQ,OAAA,EAAzBA,EAA2B5tqB,QAAS,EACpCotqB,GAAyB,GAEzBC,GAER,EAWA,OACI34Q,EAAAA,cAAC7F,EAAO,CAACuM,UAAWf,EAAae,WAC7B1G,EAAAA,cAACg4Q,EAAK,CAACtxQ,UAAWf,EAAae,UAAWzzY,QAX7B,WAAM,IAAAkmpB,EACvBX,GAA2B,IACE,QAAzBW,EAAAxzQ,EAAa8H,oBAAY,IAAA0rQ,OAAA,EAAzBA,EAA2B7tqB,QAAS,EACpCotqB,GAAyB,GAEzBC,GAER,IAKQ34Q,EAAAA,cAACi4Q,EAAY,CAACvxQ,UAAWf,EAAae,UAAW1hZ,IAAKomZ,GACjD7uZ,EAAMy8pB,kBACHh5Q,EAAAA,cAACs4Q,EAAgB,CAACrlpB,QAAS+1Z,GACvBhpB,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMqppB,EAAAA,MACvBp5Q,EAAAA,cAAA,YAAOzjZ,EAAMy8pB,mBAGrBh5Q,EAAAA,cAACx0X,EAAM,KACFm6X,EAAan0V,QACVwuV,EAAAA,cAACk4Q,EAAU,KACPl4Q,EAAAA,cAACngV,EAAAA,EAAO,CAAC38D,KAAMkiZ,EAAAA,EAAa8U,UAGhCla,EAAAA,cAACq4Q,EAAQ,CAACplpB,QAAS+1Z,GACfhpB,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,OAG7Br4Z,EAAMqvT,eAAiB+5F,EAAae,WAClC1G,EAAAA,cAACo4Q,EAAa,KACT77pB,EAAMqvT,gBAInBo0F,EAAAA,cAACjoX,EAAO,CAACogoB,mBAAoB57pB,EAAMy8pB,kBAC9BrzQ,EAAae,WAAanqZ,EAAM4I,WAGzC66Y,EAAAA,cAAC0P,EAAAA,EAAY,CACTjzK,UAAWg8a,EACX7oQ,WAAY+oQ,EACZhpQ,UAAW,kBAAM+oQ,GAAyB,EAAM,GAEhD14Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,kCAIrC,2rDC9MA,IAAM26X,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,2KASpB,SAAAv9Y,GAAK,OAAIA,EAAMsqZ,aAAcr1Y,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,oCAEjC,IAGCu/Q,EAAcv/oB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,kNACZW,EAAAA,EAAWgE,UAMEhE,EAAAA,EAAWuG,QAGpCs4Q,EAAgBx/oB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,oHACdW,EAAAA,EAAWgE,WASvB86Q,EAAaz/oB,EAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,EAAA,gQASR3hY,EAAAA,EAAS,IACbsiY,EAAAA,EAAWt8Y,UAKtBq7pB,EAAgB1/oB,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,sDAK1B/hX,EAAUje,EAAAA,GAAO8qJ,IAAGm2O,IAAAA,EAAAjB,EAAA,qFAOpB2/Q,EAAc3/oB,EAAAA,GAAO8qJ,IAAGs2O,IAAAA,EAAApB,EAAA,mEAKxB3d,EAAMriX,EAAAA,GAAO8qJ,IAAGw2O,IAAAA,EAAAtB,EAAA,8LAQLW,EAAAA,EAAWkG,YAqCf+4Q,GAjCC5/oB,EAAAA,GAAO8qJ,IAAG02O,IAAAA,EAAAxB,EAAA,kMAQd,SAAAv9Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAGgqY,IAAAA,EAAA1B,EAAA,0CACnBW,EAAAA,EAAWt8Y,SACvB,IAuBsC,mBAElCyoZ,EAA4B,SAAArqZ,GAAS,IAAAo9pB,EACxCh0Q,GAAeC,EAAAA,EAAAA,YAA0CrpZ,EAAM05B,SAC/D2joB,GAAW1mQ,EAAAA,EAAAA,UAAQ,oBAAA/ia,OAASupqB,GAA+BvpqB,QAAG0hW,EAAAA,EAAAA,MAAQ,GAAI,IAC1EgoU,GAAgBrupB,EAAAA,EAAAA,UAC4Bk0Y,EAAAp3R,GAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAA3C3yU,EAAO0yU,EAAA,GAAEo6Q,EAAUp6Q,EAAA,GAC2CmC,EAAAv5R,GAArBq3R,EAAAA,EAAAA,UAAkB,IAAG,GAA9DoH,EAAgBlF,EAAA,GAAEk4Q,EAAmBl4Q,EAAA,GACgBG,EAAA15R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAArDq6Q,EAAUh4Q,EAAA,GAAEi4Q,EAAaj4Q,EAAA,GA8BhC,OA5BAv2Y,EAAAA,EAAAA,YAAU,WAAM,IAAAyupB,EACZL,SAAsB,QAATK,EAAbL,EAAer8pB,eAAO,IAAA08pB,GAAtBA,EAAwBC,gBAC5B,GAAG,CAAC59pB,EAAM+oH,WA2BN06R,EAAAA,cAAC7F,EAAO,CAAC0M,WAAYtqZ,EAAMsqZ,YACvB7G,EAAAA,cAACq5Q,EAAW,MACO,QAAdM,EAAAp9pB,EAAM+oH,gBAAQ,IAAAq0iB,OAAA,EAAdA,EAAgBruqB,QAAS,EACtB00Z,EAAAA,cAACyG,EAAAA,GAAU,CAACzhZ,IAAK60pB,GACb75Q,EAAAA,cAACy5Q,EAAW,KACPl9pB,EAAM+oH,SAAS92H,KAAI,SAAAsnE,GAAI,OACpBkqV,EAAAA,cAACw5Q,EAAa,CAAChvqB,IAAKsrE,EAAKt2C,IACrBwgY,EAAAA,cAAC7jB,EAAG,KACA6jB,EAAAA,cAACub,EAAAA,EAAM,CACH/7Y,GAAIs2C,EAAK6pI,OAAOngL,GAChBytU,UAAWn3R,EAAK6pI,OAAOstJ,UACvBC,SAAUp3R,EAAK6pI,OAAOutJ,SACtBC,QAASr3R,EAAK6pI,OAAOwtJ,QACrBiuE,UAAQ,EACRvyZ,KAAMoyW,EAAAA,GAAaw1D,WAEvBzwB,EAAAA,cAAA,aAAOo6Q,EAAAA,EAAAA,IAAetkmB,EAAKkwV,eAE/BhG,EAAAA,cAACjoX,EAAO,KACJioX,EAAAA,cAACuwB,EAAAA,EAAS,CAACpjZ,QAAS2oC,EAAK3oC,WAEjB,MAM5B6yX,EAAAA,cAACu5Q,EAAU,KACPv5Q,EAAAA,cAAA,OAAKv7V,IAAKoymB,EAAQ,SAClB72Q,EAAAA,cAAA,YAAM,iBAAcA,EAAAA,cAAA,WAAM,iBAItCA,EAAAA,cAACs5Q,EAAa,KACVt5Q,EAAAA,cAAC60B,EAAAA,EAAK,CACF1nZ,QAAS6/C,EACTqtlB,WAAS,EACT7omB,QAASwomB,EACT9vpB,SAlDQ,SAAC4Y,GACjB6iY,EAAa8H,eAAiB9H,EAAa8H,aAAa/4R,SAASkliB,IACjEj0Q,EAAa20Q,gBAAgB,GAADnqqB,OAAA84H,EAAK08R,EAAa8H,cAAY,CAAEmsQ,KAEhEE,EAAWh3oB,EACf,EA8CgBy3oB,uBA5CS,SAACz3oB,GACtBi3oB,GAAoB,SAAA/koB,GAAK,SAAA7kC,OAAA84H,EAAQj0F,GAAK,CAAElS,GAAI,GAChD,EA2CgB03oB,YAjEW,WAAM,IAAAC,GACzBztlB,SAAe,QAARytlB,EAAPztlB,EAASr5E,cAAM,IAAA8mqB,OAAA,EAAfA,EAAiBnvqB,QAAS,IAC1B2uqB,GAAc,GACd19pB,EAAMuqZ,mBAAmB95U,EAAS+5U,GAAkBr/W,MAAK,WAAM,IAAAgznB,EAAAC,EAC3Db,EAAW,IACXC,EAAoB,IACpBF,SAAsB,QAATa,EAAbb,EAAer8pB,eAAO,IAAAk9pB,GAAtBA,EAAwBP,iBACxBF,GAAc,GACc,QAA5BU,EAAAh1Q,EAAa20Q,uBAAe,IAAAK,GAA5BA,EAAAn+pB,KAAAmpZ,EAA+BA,EAAa8H,aAAaxja,QAAO,SAAA2wqB,GAAkB,OAAIhB,IAAagB,CAAkB,IACzH,IAER,EAuDgBC,WAAYt+pB,EAAMwrZ,yBAKtC,uoFCvLA,IAqFK+yQ,EArFC3gR,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,+IAKRW,EAAAA,EAAW5jY,OACvB0jY,EAAAA,EAAAA,OAIAwgR,GAAYjhpB,EAAAA,EAAAA,IAAOw2iB,EAAAA,GAAPx2iB,CAAckgY,IAAAA,EAAAF,EAAA,6FAO1BkhR,EAAUlhpB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,wGACT3hY,EAAAA,EAAS,IACbsiY,EAAAA,EAAWtqY,OAKlB8qpB,EAAUnhpB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,0GAOpB++C,EAAgB/+a,EAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,EAAA,6HAS1BohR,EAAUphpB,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,oPAGRW,EAAAA,EAAWuG,OAIEvG,EAAAA,EAAWkG,YAOpCnuY,EAAOsH,EAAAA,GAAO8qJ,IAAGm2O,IAAAA,EAAAjB,EAAA,gMAOLW,EAAAA,EAAWl1T,WAIvB0pkB,EAAQn1oB,EAAAA,GAAO8qJ,IAAGs2O,IAAAA,EAAApB,EAAA,8JAIduC,EAAAA,EAAkB,MAgBD,SAAtBy+Q,GAAAA,EAAsB,yCAAtBA,IAAAA,EAAsB,KAIpB,wBAAMK,GAA6B,SAAA5+pB,GACtC,IAAM8rZ,GAAOC,EAAAA,EAAAA,KACPn/D,GAAWs2D,EAAAA,EAAAA,MACXhuD,GAAW05D,EAAAA,EAAAA,MAC2BzL,EAAAp3R,GAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAArCjwZ,EAAIgwZ,EAAA,GAAE07Q,EAAO17Q,EAAA,GACmDmC,EAAAv5R,GAAnCq3R,EAAAA,EAAAA,eAAyBp5Z,GAAU,GAAhE80qB,EAAUx5Q,EAAA,GAAEy5Q,EAAaz5Q,EAAA,GACiDG,EAAA15R,GAAnCq3R,EAAAA,EAAAA,eAAyBp5Z,GAAU,GAA1Eg1qB,EAAev5Q,EAAA,GAAEw5Q,EAAkBx5Q,EAAA,GAC2BG,EAAA75R,GAAnCq3R,EAAAA,EAAAA,eAAyBp5Z,GAAU,GAA9D+7a,EAASngB,EAAA,GAAEglB,EAAYhlB,EAAA,GAC6BG,EAAAh6R,GAAjCq3R,EAAAA,EAAAA,eAAuBp5Z,GAAU,GAApDk1qB,EAAKn5Q,EAAA,GAAEo5Q,EAAQp5Q,EAAA,GAC2BG,EAAAn6R,GAA3Bq3R,EAAAA,EAAAA,eAAiBp5Z,GAAU,GAA1Co1qB,EAAGl5Q,EAAA,GAAEm5Q,EAAMn5Q,EAAA,GACoDgyQ,EAAAnsiB,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA/Dk8Q,EAAepH,EAAA,GAAEqH,EAAkBrH,EAAA,GAC2DsH,GAAAzziB,GAArEq3R,EAAAA,EAAAA,eAA2Dp5Z,GAAU,GAA9Fy1qB,GAAQD,GAAA,GAAEE,GAAWF,GAAA,GAC4CG,GAAA5ziB,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAAjEw8Q,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,IAE5CzwpB,EAAAA,EAAAA,YAAU,YACL0wpB,IAAoB5/pB,EAAM8/pB,YAAY3sqB,MAAQ0rqB,EAAQ7+pB,EAAM8/pB,YAAY3sqB,KAC7E,GAAG,CAAC6M,EAAM8/pB,YAAY3sqB,KAAMysqB,MAE5B1wpB,EAAAA,EAAAA,YAAU,WAEFwwpB,GADAR,EACY,CACRj8oB,GAAIi8oB,EAAMj8oB,GACVuqU,KAAM0xU,EAAM/rqB,KACZoqb,WAAW,QAGHvzb,EAEpB,GAAG,CAACk1qB,KAEJhwpB,EAAAA,EAAAA,YAAU,WACN09U,GAA0B2jC,EAAAA,EAAAA,iBAAgB,GAAIw6C,EAAAA,GAAcuC,UAAW98C,EAAAA,GAAaouC,cAAczzX,MAAK,SAAA6kG,GACnGivhB,EAAmBjvhB,EACvB,IACA48M,GAA0B2jC,EAAAA,EAAAA,iBAAgB,GAAIw6C,EAAAA,GAAcC,UAAWx6C,EAAAA,GAAay6C,YAAY9/X,MAAK,SAAA6kG,GACjG46R,EAAa56R,EACjB,GACJ,GAAG,KAEH9gI,EAAAA,EAAAA,YAAU,WACDlP,EAAMuuG,WAWPq+O,GAA0B2jC,EAAAA,EAAAA,iBAAgB,GAAIw6C,EAAAA,GAAcuC,UAAW98C,EAAAA,GAAaouC,cAAczzX,MAAK,SAAA6kG,GACnGivhB,EAAmBjvhB,EACvB,IACA48M,GAA0B2jC,EAAAA,EAAAA,iBAAgB,GAAIw6C,EAAAA,GAAcC,UAAWx6C,EAAAA,GAAay6C,YAAY9/X,MAAK,SAAA6kG,GACjG46R,EAAa56R,EACjB,MAfA6uhB,EAAQ,IACRE,OAAc/0qB,GACdm1qB,OAASn1qB,GACTq1qB,EAAO,IACPQ,IAAoB,GACpBj1P,OAAa5gb,GACbi1qB,OAAmBj1qB,GACnBu1qB,GAAmB,GACnBG,QAAY11qB,GASpB,GAAG,CAACgW,EAAMuuG,YAEV,IAAMwxjB,IAAuBv8Q,EAAAA,EAAAA,cAAY,SAACx0Z,GACtCqwqB,EAAOrwqB,EAAE2J,OAAO3D,MACpB,GAAG,IAEGgrqB,IAAmBx8Q,EAAAA,EAAAA,cAAY,WACjC+7Q,GAAmB,GACnB,IAAMU,EAAY,CACd9sqB,KAAMA,EACN65a,QAAS8xP,EACTrrqB,cAAe,CAAC,CACZsya,UAAWA,aAAS,EAATA,EAAW58T,MAAK,SAAAn6G,GAAC,OAAIA,EAAEiob,MAAQsnP,EAAuB2B,iBAAiB,IAClF55P,WAAY84P,EACZ/1qB,KAAM,IAAIG,OAEd6jb,UAAWoyP,IAEf7yU,GAA2BonC,EAAAA,EAAAA,kBAAiBisS,IAAY90nB,MAAK,SAAAy5G,GACzD5kJ,EAAMmgqB,gBAAWn2qB,EAAW,CACxBiE,IAAK22J,EAAI3hI,GACTrM,KAAMguI,EAAIzxJ,KACVozB,KAAI6mU,EAAAA,EAAA,GAAOxoM,GAAG,IAAEw7gB,WAAY1hT,EAAAA,GAAaigD,QAASryZ,KAAMoyW,EAAAA,GAAaigD,YAEzEzpE,EAASuuD,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,8BAAgCq7X,EAAAA,EAAWC,SACzEghR,GAAmB,GACnBv/pB,EAAMysa,cACV,GACJ,GAAG,CAACzsa,EAAMmgqB,WAAYhtqB,EAAM2rqB,EAAYM,EAAKr5P,IAEvC4f,IAAgBniC,EAAAA,EAAAA,cAAY,SAACxuZ,GAC/B,IAAM4wb,EAA+B,iBAAV5wb,EAAsB,CAC7CikH,OAAQ,GACRqsU,OAAQ,GACRC,KAAMvwb,EACNyjC,MAAO,GACP+sZ,QAAS,GACTC,aAAc,GACdC,QAAS,IACP,CACFzsU,QAAQjkH,aAAK,EAALA,EAAOmxb,gBAAiB,GAChCb,QAAStwb,aAAK,EAALA,EAAOoxb,SAASpxb,aAAK,EAALA,EAAOqxb,eAAiB,GACjDd,MAAMvwb,aAAK,EAALA,EAAOsxb,WAAY,GACzB7tZ,OAAOzjC,aAAK,EAALA,EAAOuxb,8BAA+B,GAC7Cf,SAASxwb,aAAK,EAALA,EAAOwwb,UAAW,GAC3BC,aAAcq5O,EAAW74O,cAAgB,GACzCP,SAAS1wb,aAAK,EAALA,EAAOwxb,cAAe,IAEnCu4O,EAAcn5O,EAClB,GAAG,CAACk5O,IAEEr4O,IAAgBjjC,EAAAA,EAAAA,cAAY,SAACwpB,IAC/B0Z,EAAAA,EAAAA,IAAiB1Z,GACZ7hY,MAAK,SAAAk1D,GACF,IAUiDmpQ,EAV3Cm9E,EAAgC,CAAC,EACjCC,EAAgB,CAClBT,cAAe,aACfC,MAAO,YACPC,aAAc,YACdC,SAAU,YACVC,4BAA6B,aAC7Bf,QAAS,YACTgB,YAAa,cACfj9E,m0BAAAG,CACkBrpQ,EAAQ,GAAGymV,oBAAkB,QAAA5E,EAAA,WAAE,IAAxCltb,EAAKw0W,EAAAx0W,MACR6xb,EAAc7xb,EAAM+xb,MAAM,GAC1BH,EAAcC,KACM,YAAhBA,GACAk4O,GAAc,SAAArkQ,GAAY,OAAAttE,EAAAA,EAAA,GACnBstE,GAAY,IACfurB,aAAcjxb,EAAMgyb,YAAU,IAGtCL,EAAcE,GAAe7xb,EAAM4xb,EAAcC,IAEzD,EAXA,IAAAt9E,EAAA3xW,MAAA4xW,EAAAD,EAAAzjQ,KAAAumB,MAAA61T,GAWC,OAAAxhU,GAAA6oP,EAAAv6W,EAAA0xH,EAAA,SAAA6oP,EAAA/jQ,GAAA,CACDmgV,GAAcgB,EAClB,GAER,GAAG,CAAChB,GAAem5O,IAEbuB,IAAa78Q,EAAAA,EAAAA,cAAY,SAACx0Z,GAC5B,IAAM4nB,EAAO5nB,EAAE2J,OAAO3D,MACtB6pqB,EAAQjopB,GACRippB,IAAoB,EACxB,GAAG,CAAChB,IAEExhP,IAAe75B,EAAAA,EAAAA,cAAY,SAAC19V,GAC9Bq5mB,EAASr5mB,EACb,GAAG,IAEH,OACI29V,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAMuuG,WACHk1S,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACk7Q,EAAO,KACJl7Q,EAAAA,cAACxtY,EAAI,KACDwtY,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM8spB,EAAAA,OAE3B78Q,EAAAA,cAACivQ,EAAK,KACFjvQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,uBAAuB1Y,QAAQ,SACpDk5Y,EAAAA,cAAA,YAAOtwZ,KAGfswZ,EAAAA,cAAC+6Q,EAAS,CAAC9npB,QAAS1W,EAAMysa,aAAcvma,MAAO,GAAIkG,OAAQ,KAC3Dq3Y,EAAAA,cAACg7Q,EAAO,KAACh7Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,iCAC9BwgY,EAAAA,cAACi7Q,EAAO,KACJj7Q,EAAAA,cAAC4iB,EAAAA,EAAa,CACVzyZ,MAAO6vY,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,4BAC5BsqB,UAAQ,EACRv4C,MAAO7B,EACPwa,SAAU0ypB,MAGlB58Q,EAAAA,cAACi7Q,EAAO,KACJj7Q,EAAAA,cAACkQ,EAAAA,EAAiB,KACdlQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,gCAEzBwgY,EAAAA,cAACwjC,EAAAA,EAAmB,CAChBC,gBAAiB,SAACh5a,GAAgB,OAAKy3a,GAAcz3a,EAASrY,QAAQ,QAAS,IAAI,EACnFsxb,gBAAiBV,GACjBzZ,QAAS8xP,KAGjBr7Q,EAAAA,cAACi7Q,EAAO,KACJj7Q,EAAAA,cAACkQ,EAAAA,EAAiB,KACdlQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,gCAEzBwgY,EAAAA,cAAC2iB,EAAAA,EAAW,CACRrzX,YAAamsnB,aAAK,EAALA,EAAOj8oB,GACpB6xB,YAAag3W,EAAK1uE,cAAc,CAAEn6T,GAAI,uBACtCtV,SAAU,SAAC3e,EAAGwjD,GAAuB,OAAK6qY,GAAa7qY,EAAOjsB,KAAK,EACnEjzB,QAAS0rqB,aAAe,EAAfA,EAAiB/sqB,KAAI,SAACsnE,GAAI,MAAM,CACrCtrE,IAAKsrE,EAAKt2C,GACVrM,KAAM2iD,EAAKpmE,KACXozB,KAAMgzC,EACT,OAGTkqV,EAAAA,cAACi7Q,EAAO,KACJj7Q,EAAAA,cAAC4iB,EAAAA,EAAa,CACVzyZ,MAAO6vY,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,yBAC5BjuB,MAAOoqqB,EACPzxpB,SAAUoypB,MAGlBt8Q,EAAAA,cAAC64C,EAAa,KACV74C,EAAAA,cAACpoX,EAAAA,GAAM,CAAC3kB,QAASsppB,GAAkBp+pB,UAAWzO,GAAQmsqB,EAAiBhzpB,KAAK,UAASm3Y,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,qBAMlI,82EClTA,4BAAM26X,GAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,GAAA,+IAKRW,EAAAA,EAAW5jY,OACvB0jY,EAAAA,EAAAA,OAIAwgR,IAAYjhpB,EAAAA,EAAAA,IAAOw2iB,EAAAA,GAAPx2iB,CAAckgY,IAAAA,EAAAF,GAAA,6FAO1BkhR,GAAUlhpB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,GAAA,wGACT3hY,EAAAA,EAAS,IACbsiY,EAAAA,EAAWtqY,OAKlB8qpB,GAAUnhpB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,GAAA,0GAOpB++C,GAAgB/+a,EAAAA,GAAO8qJ,IAAG01O,KAAAA,GAAAR,GAAA,6HAS1BohR,GAAUphpB,EAAAA,GAAO8qJ,IAAG41O,KAAAA,GAAAV,GAAA,oPAGRW,EAAAA,EAAWuG,OAIEvG,EAAAA,EAAWkG,YAOpCnuY,GAAOsH,EAAAA,GAAO8qJ,IAAGm2O,KAAAA,GAAAjB,GAAA,gMAOLW,EAAAA,EAAWl1T,WAIvB0pkB,GAAQn1oB,EAAAA,GAAO8qJ,IAAGs2O,KAAAA,GAAApB,GAAA,8JAIduC,EAAAA,EAAkB,KAkBfygR,GAA0B,SAAAvgqB,GACnC,IAAM4sV,GAAWs2D,EAAAA,EAAAA,MACXhuD,GAAW05D,EAAAA,EAAAA,MACX9C,GAAOC,EAAAA,EAAAA,KACyC5I,EAAAp3R,IAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAA/C1yD,EAASyyD,EAAA,GAAEq9Q,EAAYr9Q,EAAA,GACsBmC,EAAAv5R,IAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAA7CzyD,EAAQ20D,EAAA,GAAEm7Q,EAAWn7Q,EAAA,GACkBG,EAAA15R,IAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAAvCtoZ,EAAK2qZ,EAAA,GAAEi7Q,EAAQj7Q,EAAA,GAC2CG,EAAA75R,IAA3Bq3R,EAAAA,EAAAA,eAAiBp5Z,GAAU,GAA1D22qB,EAAW/6Q,EAAA,GAAEg7Q,EAAch7Q,EAAA,IAElC12Y,EAAAA,EAAAA,YAAU,WACDlP,EAAMuuG,YACPiyjB,EAAa,IACbC,EAAY,IACZC,EAAS,IACTE,OAAe52qB,GAEvB,GAAG,CAACgW,EAAMuuG,aAEVr/F,EAAAA,EAAAA,YAAU,WAAM,IAAA2xpB,EAAAC,GACe,QAA3BD,EAAA7gqB,EAAM8/pB,YAAYpvU,iBAAS,IAAAmwU,OAAA,EAA3BA,EAA6B9xqB,QAAS,GAAKyxqB,EAAaxgqB,EAAM8/pB,YAAYpvU,YAChD,QAA1BowU,EAAA9gqB,EAAM8/pB,YAAYnvU,gBAAQ,IAAAmwU,OAAA,EAA1BA,EAA4B/xqB,QAAS,GAAK0xqB,EAAYzgqB,EAAM8/pB,YAAYnvU,SAC5E,GAAG,CAAC3wV,EAAM8/pB,YAAYpvU,UAAW1wV,EAAM8/pB,YAAYnvU,WAEnD,IAAMowU,GAAkBv9Q,EAAAA,EAAAA,cAAY,SAACx0Z,GACjC,IAAM4nB,EAAO5nB,EAAE2J,OAAO3D,MACtBwrqB,EAAa5ppB,EACjB,GAAG,IAEGoqpB,GAAgBx9Q,EAAAA,EAAAA,cAAY,SAACx0Z,GAC/B,IAAM4nB,EAAO5nB,EAAE2J,OAAO3D,MACtByrqB,EAAY7ppB,EAChB,GAAG,IAEGqqpB,GAAcz9Q,EAAAA,EAAAA,cAAY,SAACx0Z,GAC7B,IAAM4nB,EAAO5nB,EAAE2J,OAAO3D,MACtB0rqB,EAAS9ppB,EACb,GAAG,IAEGsqpB,GAAgB19Q,EAAAA,EAAAA,cAAY,WAC1BxjZ,EAAMmhqB,kBACNnhqB,EAAMmgqB,gBAAWn2qB,EAAW,CACxBiE,IAAKmzqB,GAAAA,EACLxqpB,KAAM,GAAFhjB,OAAK88V,EAAS,KAAA98V,OAAI+8V,GACtBpqU,KAAM,CAAEpzB,KAAM,GAAFS,OAAK88V,EAAS,KAAA98V,OAAI+8V,GAAY71V,MAAAA,EAAOwR,KAAM,UAAW2W,GAAIm+oB,GAAAA,KAE1EZ,EAAa,IACTC,EAAY,IACZC,EAAS,IACT1gqB,EAAMysa,eACNm0P,OAAe52qB,IAEnB4iW,GAAsC87C,EAAAA,GAAAA,IAA4B5tY,EAAO41V,EAAWC,IAAWxlT,MAAK,SAAAy5G,GAChG5kJ,EAAMmgqB,gBAAWn2qB,EAAW,CACxBiE,IAAK22J,EAAI3hI,GACTrM,KAAM,GAAFhjB,OAAKgxJ,EAAI8rM,UAAS,KAAA98V,OAAIgxJ,EAAI+rM,UAC9BpqU,KAAI6mU,GAAAA,GAAA,GAAOxoM,GAAG,IAAEt4I,KAAM,eAE1B4oV,EAASuuD,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,6BAA+Bq7X,EAAAA,EAAWC,SACxEiiR,EAAa,IACbC,EAAY,IACZC,EAAS,IACT1gqB,EAAMysa,eACNm0P,OAAe52qB,EACnB,IAAE,OAAO,SAAA02H,GACLkgjB,EAAelgjB,EAAIn6F,KAAKkqD,QAC5B,GAER,GAAG,CAAC31E,EAAO41V,EAAWC,EAAU3wV,EAAMmgqB,aAUtC,OACI18Q,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAMuuG,WACHk1S,EAAAA,cAAC7F,GAAO,KACJ6F,EAAAA,cAACk7Q,GAAO,KACJl7Q,EAAAA,cAACxtY,GAAI,KACDwtY,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM8spB,EAAAA,OAE3B78Q,EAAAA,cAACivQ,GAAK,KACFjvQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,4BAA4B1Y,QAAQ,SACzDk5Y,EAAAA,cAAA,YAAO/yD,EAAU,IAAEC,KAG3B8yD,EAAAA,cAAC+6Q,GAAS,CAAC9npB,QAAS1W,EAAMysa,aAAcvma,MAAO,GAAIkG,OAAQ,KAC3Dq3Y,EAAAA,cAACg7Q,GAAO,KAACh7Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,8BAC9BwgY,EAAAA,cAACi7Q,GAAO,KACJj7Q,EAAAA,cAAC4iB,EAAAA,EAAa,CACV94X,UAAQ,EACR35B,MAAO6vY,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,+BAC5BjuB,MAAO07V,EACP/iV,SAAUozpB,KAGlBt9Q,EAAAA,cAACi7Q,GAAO,KACJj7Q,EAAAA,cAAC4iB,EAAAA,EAAa,CACV94X,UAAQ,EACR35B,MAAO6vY,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,8BAC5BjuB,MAAO27V,EACPhjV,SAAUqzpB,KAGlBv9Q,EAAAA,cAACi7Q,GAAO,KACJj7Q,EAAAA,cAAC4iB,EAAAA,EAAa,CACV94X,UAAQ,EACR35B,MAAO6vY,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,kCAC5BjuB,MAAO8F,EACP69C,OA5CC,YAChB0onB,EAAAA,GAAAA,GAAavmqB,GAGd8lqB,OAAe52qB,GAFf42qB,EAAe90Q,EAAK1uE,cAAc,CAAEn6T,GAAI,4BAIhD,EAuCwBtV,SAAUszpB,EACVhumB,QAAS0tmB,EACTz7O,SAAUy7O,KAGlBl9Q,EAAAA,cAAC64C,GAAa,KACV74C,EAAAA,cAACpoX,EAAAA,GAAM,CAAC3kB,QAASwqpB,EAAet/pB,WAAW8uV,GAAc51V,GAAU61V,IAAcgwU,GAAar0pB,KAAK,UAASm3Y,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,mBAMzJ,qNC1NA,+EAAM26X,GAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,KAAAA,GAAAC,GAAA,0PAIRW,EAAAA,EAAW5jY,OASvBgnpB,GAAW/jpB,EAAAA,GAAO8qJ,IAAGo1O,KAAAA,GAAAF,GAAA,mIAKrBuC,EAAAA,EAAkB,IACX5B,EAAAA,EAAWttX,SAGlBi4Z,GAAatra,EAAAA,GAAO8qJ,IAAGs1O,KAAAA,GAAAJ,GAAA,2cACV,SAAA3sR,GAAS,OAAAA,EAAN27R,OAAsB,IAAM,GAAG,GAInCrO,EAAAA,EAAW5jY,MAOP4jY,EAAAA,EAAWl1T,WAE3B,SAAAhpF,GAAK,OAAIA,EAAMusZ,SAAUt3Y,EAAAA,EAAAA,IAAG4oY,KAAAA,GAAAN,GAAA,uCACZW,EAAAA,EAAWl1T,UAC5B,IASCu4kB,GAAchkpB,EAAAA,GAAO8qJ,IAAG01O,KAAAA,GAAAR,GAAA,+HASxBohR,GAAUphpB,EAAAA,GAAO8qJ,IAAG41O,KAAAA,GAAAV,GAAA,iNAGRW,EAAAA,EAAWuG,QAUvBxuY,GAAOsH,EAAAA,GAAO8qJ,IAAGm2O,KAAAA,GAAAjB,GAAA,gMAOLW,EAAAA,EAAWl1T,WAIvB0pkB,GAAQn1oB,EAAAA,GAAO8qJ,IAAGs2O,KAAAA,GAAApB,GAAA,gQAKduC,EAAAA,EAAkB,IAOlBA,EAAAA,EAAkB,KAkBf0hR,GAA4B,SAAAxhqB,GAAS,IAAAyhqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAY9C,OACIr+Q,EAAAA,cAAC7F,GAAO,KACJ6F,EAAAA,cAACyG,EAAAA,GAAU,CAAC63Q,YAAU,EAACC,cAAe,KAE9Bv+Q,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAMi1D,QACHwuV,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,WACAA,EAAAA,cAACngV,GAAAA,EAAO,CAAC38D,KAAMkiZ,GAAAA,EAAa6U,QAC5Bja,EAAAA,cAAA,YAGJA,EAAAA,cAAA,YACgB,QAAXg+Q,EAAAzhqB,EAAM0V,aAAK,IAAA+rpB,OAAA,EAAXA,EAAa1yqB,QAAS,EACnB00Z,EAAAA,cAAAA,EAAAA,SAAA,KACgB,QADhBi+Q,EACK1hqB,EAAM0V,aAAK,IAAAgspB,OAAA,EAAXA,EAAazvqB,KAAI,SAAAsnE,GAAI,IAAA0omB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAClB/+Q,EAAAA,cAAColC,GAAU,CACP56b,IAAKsrE,EAAKt2C,GACVspY,SAA6B,QAApB01Q,EAACjiqB,EAAM8/E,qBAAa,IAAAmilB,IAAnBA,EAAqB94jB,MAAK,SAAAs5jB,GAAK,OAAIA,EAAMx/oB,KAAOs2C,EAAKt2C,EAAE,MAEjEwgY,EAAAA,cAAC89Q,GAAW,CAAC7qpB,QAAS,SAAC1nB,GAAC,OA1B3C,SAACqmB,EAAarmB,GAJpB,IAACuqE,EAKhBvqE,SAAAA,EAAGwS,kBACHxS,SAAAA,EAAGkW,iBANaq0D,EAOLlkD,EANXrV,EAAM0iqB,aAAanpmB,EAOvB,CAsByEopmB,CAAiBppmB,EAAMvqE,EAAE,MAC3C,QAATkzqB,EAAA3omB,EAAKhzC,YAAI,IAAA27oB,OAAA,EAATA,EAAW51pB,QAASoyW,EAAAA,GAAaw1D,WAAqB,QAATiuP,EAAA5omB,EAAKhzC,YAAI,IAAA47oB,OAAA,EAATA,EAAW71pB,QAASoyW,EAAAA,GAAaigD,UAAoB,QAATyjQ,EAAA7omB,EAAKhzC,YAAI,IAAA67oB,OAAA,EAATA,EAAW91pB,QAASoyW,EAAAA,GAAa+uD,QAAkB,QAAT40P,EAAA9omB,EAAKhzC,YAAI,IAAA87oB,OAAA,EAATA,EAAW/1pB,QAASoyW,EAAAA,GAAaC,UAClK8kC,EAAAA,cAACub,GAAAA,EAAM,CACHH,UAAQ,EACRnuE,UAAWn3R,EAAK3iD,KAChB+5U,SAAS,GACTrkV,KAAe,QAAXg2pB,EAAE/omB,EAAKhzC,YAAI,IAAA+7oB,OAAA,EAATA,EAAWh2pB,KACjB2W,GAAIs2C,EAAKt2C,GACT67Y,SAAmB,QAAXyjQ,EAAEhpmB,EAAKhzC,YAAI,IAAAg8oB,OAAA,EAATA,EAAW7nT,aACrB/zW,KAAM02Z,GAAAA,EAAYK,MAClB9sE,QAASr3R,EAAKhzC,KAAKqqU,QACnBuuE,oBAAkB,KAGJ,aAAX,QAATqjQ,EAAAjpmB,EAAKhzC,YAAI,IAAAi8oB,OAAA,EAATA,EAAWl2pB,QAAuBitD,EAAKhzC,KAAKja,OAC1Cm3Y,EAAAA,cAACg+C,GAAAA,EAAyB,CAACC,cAAe,GACrCnoY,EAAK3iD,MAGL,KAIrB6sY,EAAAA,cAAC69Q,GAAQ,KACL79Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,8BAQ/CjjB,EAAM4iqB,cAAgBC,GAAcC,SAAyB,QAAfnB,EAAA3hqB,EAAMktD,iBAAS,IAAAy0mB,OAAA,EAAfA,EAAiB5yqB,QAAS,GACtE00Z,EAAAA,cAACk7Q,GAAO,KACJl7Q,EAAAA,cAACxtY,GAAI,KACDwtY,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMklb,EAAAA,OAE3Bj1C,EAAAA,cAACivQ,GAAK,KACFjvQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,4BAA4B1Y,QAAQ,SACzDk5Y,EAAAA,cAACg+C,GAAAA,EAAyB,CAACC,cAAe,GAAI1hc,EAAMktD,YAExDu2V,EAAAA,cAACpoX,EAAAA,GAAM,CAACgjX,WAAYwJ,EAAAA,GAAkBt3R,UAAW75G,QAAS1W,EAAM+iqB,iBAC5Dt/Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAI/BjjB,EAAM4iqB,cAAgBC,GAAc1wP,SAAyB,QAAfyvP,EAAA5hqB,EAAMktD,iBAAS,IAAA00mB,OAAA,EAAfA,EAAiB7yqB,QAAS,GACtE00Z,EAAAA,cAACk7Q,GAAO,KACJl7Q,EAAAA,cAACxtY,GAAI,KACDwtY,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMklb,EAAAA,OAE3Bj1C,EAAAA,cAACivQ,GAAK,KACFjvQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,4BAA4B1Y,QAAQ,SACzDk5Y,EAAAA,cAACg+C,GAAAA,EAAyB,CAACC,cAAe,GAAI1hc,EAAMktD,YAExDu2V,EAAAA,cAACpoX,EAAAA,GAAM,CAACgjX,WAAYwJ,EAAAA,GAAkBt3R,UAAW75G,QAAS1W,EAAM+iqB,iBAC5Dt/Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAI/BjjB,EAAM4iqB,cAAgBC,GAAclkQ,UAA0B,QAAfkjQ,EAAA7hqB,EAAMktD,iBAAS,IAAA20mB,OAAA,EAAfA,EAAiB9yqB,QAAS,GACvE00Z,EAAAA,cAACk7Q,GAAO,KACJl7Q,EAAAA,cAACxtY,GAAI,KACDwtY,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM84Z,EAAAA,OAE3B7oB,EAAAA,cAACivQ,GAAK,KACFjvQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,uBAAuB1Y,QAAQ,SACpDk5Y,EAAAA,cAACg+C,GAAAA,EAAyB,CAACC,cAAe,GAAI1hc,EAAMktD,YAExDu2V,EAAAA,cAACpoX,EAAAA,GAAM,CAACgjX,WAAYwJ,EAAAA,GAAkBt3R,UAAW75G,QAAS1W,EAAMgjqB,oBAC5Dv/Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAI/BjjB,EAAM4iqB,cAAgBC,GAAcI,OAASjjqB,EAAMkjqB,mBAAmC,QAAfpB,EAAA9hqB,EAAMktD,iBAAS,IAAA40mB,OAAA,EAAfA,EAAiB/yqB,QAAS,GAAkI,IAA7HiR,EAAM0V,MAAMhoB,QAAO,SAAA2nB,GAAI,IAAA8tpB,EAAAC,EAAA,OAAa,QAATD,EAAA9tpB,EAAKuB,YAAI,IAAAuspB,OAAA,EAATA,EAAW/rqB,OAAO4jF,wBAAuC,QAApBoolB,EAAKpjqB,EAAMktD,iBAAS,IAAAk2mB,OAAA,EAAfA,EAAiBhsqB,OAAO4jF,oBAAmB,IAAEjsF,QACtN00Z,EAAAA,cAACk7Q,GAAO,KACJl7Q,EAAAA,cAACxtY,GAAI,KACDwtY,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6vpB,EAAAA,OAE3B5/Q,EAAAA,cAACivQ,GAAK,KACFjvQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,0BAA0B1Y,QAAQ,SACvDk5Y,EAAAA,cAAA,YAAOzjZ,EAAMktD,YAEjBu2V,EAAAA,cAACpoX,EAAAA,GAAM,CAACgjX,WAAYwJ,EAAAA,GAAkBv3R,QAAS55G,QAAS1W,EAAMkjqB,kBAC1Dz/Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAM7C,umBCxPAyvU,GAAA,kBAAA1jW,CAAA,MAAAk3G,EAAAl3G,EAAA,GAAAi3G,EAAAv0G,OAAAzE,UAAA64G,EAAAG,EAAA90G,eAAA40G,EAAAr0G,OAAA8X,gBAAA,SAAA08F,EAAAl3G,EAAAi3G,GAAAC,EAAAl3G,GAAAi3G,EAAAjxG,KAAA,EAAAsD,EAAA,mBAAAqzH,OAAAA,OAAA,GAAA38C,EAAA12E,EAAAszH,UAAA,aAAAtmB,EAAAhtG,EAAAq6V,eAAA,kBAAAxsP,EAAA7tG,EAAAkvJ,aAAA,yBAAAorM,EAAA1sP,EAAAl3G,EAAAi3G,GAAA,OAAAv0G,OAAA8X,eAAA08F,EAAAl3G,EAAA,CAAAgG,MAAAixG,EAAAv8F,YAAA,EAAAC,cAAA,EAAAmiH,UAAA,IAAA5lB,EAAAl3G,EAAA,KAAA4jW,EAAA,aAAA1sP,GAAA0sP,EAAA,SAAA1sP,EAAAl3G,EAAAi3G,GAAA,OAAAC,EAAAl3G,GAAAi3G,CAAA,WAAAutG,EAAAttG,EAAAl3G,EAAAi3G,EAAAH,GAAA,IAAAxtG,EAAAtJ,GAAAA,EAAA/B,qBAAA4lW,EAAA7jW,EAAA6jW,EAAA7jR,EAAAt9E,OAAA4mH,OAAAhgH,EAAArL,WAAAq4G,EAAA,IAAAwtP,EAAAhtP,GAAA,WAAAC,EAAA/2B,EAAA,WAAAh6E,MAAA+9V,EAAA7sP,EAAAD,EAAAX,KAAAt2B,CAAA,UAAAgkR,EAAA9sP,EAAAl3G,EAAAi3G,GAAA,WAAA35F,KAAA,SAAAzZ,IAAAqzG,EAAAjmG,KAAAjR,EAAAi3G,GAAA,OAAAC,GAAA,OAAA55F,KAAA,QAAAzZ,IAAAqzG,EAAA,EAAAl3G,EAAAwkN,KAAAA,EAAA,IAAA9tG,EAAA,iBAAAG,EAAA,iBAAAL,EAAA,YAAA5tG,EAAA,YAAA2sC,EAAA,YAAAsuT,IAAA,UAAAI,IAAA,UAAAC,IAAA,KAAAz6V,EAAA,GAAAm6V,EAAAn6V,EAAAu2E,GAAA,8BAAAu2B,EAAA7zG,OAAAq+U,eAAA54U,EAAAouG,GAAAA,EAAAA,EAAAtiB,EAAA,MAAA9rF,GAAAA,IAAA8uG,GAAAH,EAAA7lG,KAAA9I,EAAA63E,KAAAv2E,EAAAtB,GAAA,IAAAsuG,EAAAytP,EAAAjmW,UAAA4lW,EAAA5lW,UAAAyE,OAAA4mH,OAAA7/G,GAAA,SAAA06V,EAAAjtP,GAAA,0BAAA/2G,SAAA,SAAAH,GAAA4jW,EAAA1sP,EAAAl3G,GAAA,SAAAk3G,GAAA,YAAAktP,QAAApkW,EAAAk3G,EAAA,gBAAAmtP,EAAAntP,EAAAl3G,GAAA,SAAAs0J,EAAAr9C,EAAAF,EAAAztG,EAAA02E,GAAA,IAAAs2B,EAAA0tP,EAAA9sP,EAAAD,GAAAC,EAAAH,GAAA,aAAAT,EAAAh5F,KAAA,KAAA65F,EAAAb,EAAAzyG,IAAA6yG,EAAAS,EAAAnxG,MAAA,OAAA0wG,GAAA,UAAAgmB,GAAAhmB,IAAAI,EAAA7lG,KAAAylG,EAAA,WAAA12G,EAAAi8C,QAAAy6D,EAAA4tP,SAAAnoT,MAAA,SAAA+6D,GAAAo9C,EAAA,OAAAp9C,EAAA5tG,EAAA02E,EAAA,aAAAk3B,GAAAo9C,EAAA,QAAAp9C,EAAA5tG,EAAA02E,EAAA,IAAAhgF,EAAAi8C,QAAAy6D,GAAAv6D,MAAA,SAAA+6D,GAAAC,EAAAnxG,MAAAkxG,EAAA5tG,EAAA6tG,EAAA,aAAAD,GAAA,OAAAo9C,EAAA,QAAAp9C,EAAA5tG,EAAA02E,EAAA,IAAAA,EAAAs2B,EAAAzyG,IAAA,KAAAozG,EAAAF,EAAA,gBAAA/wG,MAAA,SAAAkxG,EAAAJ,GAAA,SAAAytP,IAAA,WAAAvkW,GAAA,SAAAA,EAAAi3G,GAAAq9C,EAAAp9C,EAAAJ,EAAA92G,EAAAi3G,EAAA,WAAAA,EAAAA,EAAAA,EAAA96D,KAAAooT,EAAAA,GAAAA,GAAA,aAAAR,EAAA/jW,EAAAi3G,EAAAH,GAAA,IAAAC,EAAAL,EAAA,gBAAAptG,EAAA02E,GAAA,GAAA+2B,IAAAP,EAAA,UAAA7gF,MAAA,mCAAAohF,IAAAnuG,EAAA,cAAAU,EAAA,MAAA02E,EAAA,OAAAh6E,MAAAkxG,EAAAmmB,MAAA,OAAAvmB,EAAAqpC,OAAA72I,EAAAwtG,EAAAjzG,IAAAm8E,IAAA,KAAAs2B,EAAAQ,EAAA0tP,SAAA,GAAAluP,EAAA,KAAAa,EAAAstP,EAAAnuP,EAAAQ,GAAA,GAAAK,EAAA,IAAAA,IAAA5hE,EAAA,gBAAA4hE,CAAA,cAAAL,EAAAqpC,OAAArpC,EAAA4tP,KAAA5tP,EAAA6tP,MAAA7tP,EAAAjzG,SAAA,aAAAizG,EAAAqpC,OAAA,IAAAppC,IAAAL,EAAA,MAAAK,EAAAnuG,EAAAkuG,EAAAjzG,IAAAizG,EAAA8tP,kBAAA9tP,EAAAjzG,IAAA,gBAAAizG,EAAAqpC,QAAArpC,EAAA+tP,OAAA,SAAA/tP,EAAAjzG,KAAAkzG,EAAAP,EAAA,IAAA/sG,EAAAu6V,EAAAhkW,EAAAi3G,EAAAH,GAAA,cAAArtG,EAAA6T,KAAA,IAAAy5F,EAAAD,EAAAumB,KAAAz0H,EAAAiuG,EAAAptG,EAAA5F,MAAA0xC,EAAA,gBAAAvvC,MAAAyD,EAAA5F,IAAAw5H,KAAAvmB,EAAAumB,KAAA,WAAA5zH,EAAA6T,OAAAy5F,EAAAnuG,EAAAkuG,EAAAqpC,OAAA,QAAArpC,EAAAjzG,IAAA4F,EAAA5F,IAAA,YAAA4gW,EAAAzkW,EAAAi3G,GAAA,IAAAH,EAAAG,EAAAkpC,OAAAppC,EAAA/2G,EAAA48H,SAAA9lB,GAAA,GAAAC,IAAAG,EAAA,OAAAD,EAAAutP,SAAA,eAAA1tP,GAAA92G,EAAA48H,SAAA,SAAA3lB,EAAAkpC,OAAA,SAAAlpC,EAAApzG,IAAAqzG,EAAAutP,EAAAzkW,EAAAi3G,GAAA,UAAAA,EAAAkpC,SAAA,WAAArpC,IAAAG,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAA,IAAA25H,UAAA,oCAAA1mB,EAAA,aAAAvhE,EAAA,IAAAjsC,EAAA06V,EAAAjtP,EAAA/2G,EAAA48H,SAAA3lB,EAAApzG,KAAA,aAAAyF,EAAAgU,KAAA,OAAA25F,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAAyF,EAAAzF,IAAAozG,EAAAutP,SAAA,KAAAjvT,EAAA,IAAAyqC,EAAA12E,EAAAzF,IAAA,OAAAm8E,EAAAA,EAAAq9C,MAAApmB,EAAAj3G,EAAA8kW,YAAA9kR,EAAAh6E,MAAAixG,EAAAmmB,KAAAp9H,EAAA+kW,QAAA,WAAA9tP,EAAAkpC,SAAAlpC,EAAAkpC,OAAA,OAAAlpC,EAAApzG,IAAAqzG,GAAAD,EAAAutP,SAAA,KAAAjvT,GAAAyqC,GAAAi3B,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAA,IAAA25H,UAAA,oCAAAvmB,EAAAutP,SAAA,KAAAjvT,EAAA,UAAAyvT,EAAA9tP,GAAA,IAAAl3G,EAAA,CAAAilW,OAAA/tP,EAAA,SAAAA,IAAAl3G,EAAAklW,SAAAhuP,EAAA,SAAAA,IAAAl3G,EAAAmlW,WAAAjuP,EAAA,GAAAl3G,EAAAolW,SAAAluP,EAAA,SAAAmuP,WAAA5mW,KAAAuB,EAAA,UAAAslW,EAAApuP,GAAA,IAAAl3G,EAAAk3G,EAAAquP,YAAA,GAAAvlW,EAAAsd,KAAA,gBAAAtd,EAAA6D,IAAAqzG,EAAAquP,WAAAvlW,CAAA,UAAA8jW,EAAA5sP,GAAA,KAAAmuP,WAAA,EAAAJ,OAAA,SAAA/tP,EAAA/2G,QAAA6kW,EAAA,WAAAzkW,OAAA,YAAA0zF,EAAAj0F,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAi3G,EAAAj3G,EAAAggF,GAAA,GAAAi3B,EAAA,OAAAA,EAAAhmG,KAAAjR,GAAA,sBAAAA,EAAAo9H,KAAA,OAAAp9H,EAAA,IAAAghF,MAAAhhF,EAAAD,QAAA,KAAAg3G,GAAA,EAAAztG,EAAA,SAAA8zH,IAAA,OAAArmB,EAAA/2G,EAAAD,QAAA,GAAA+2G,EAAA7lG,KAAAjR,EAAA+2G,GAAA,OAAAqmB,EAAAp3H,MAAAhG,EAAA+2G,GAAAqmB,EAAAC,MAAA,EAAAD,EAAA,OAAAA,EAAAp3H,MAAAkxG,EAAAkmB,EAAAC,MAAA,EAAAD,CAAA,SAAA9zH,EAAA8zH,KAAA9zH,CAAA,YAAAk0H,UAAAd,GAAA18H,GAAA,2BAAAikW,EAAAhmW,UAAAimW,EAAAntP,EAAAN,EAAA,eAAAzwG,MAAAk+V,EAAAvpV,cAAA,IAAAo8F,EAAAmtP,EAAA,eAAAl+V,MAAAi+V,EAAAtpV,cAAA,IAAAspV,EAAAnlW,YAAA8kW,EAAAM,EAAA/sP,EAAA,qBAAAn3G,EAAAwlW,oBAAA,SAAAtuP,GAAA,IAAAl3G,EAAA,mBAAAk3G,GAAAA,EAAA5F,YAAA,QAAAtxG,IAAAA,IAAAikW,GAAA,uBAAAjkW,EAAAlB,aAAAkB,EAAAmE,MAAA,EAAAnE,EAAAu+H,KAAA,SAAArnB,GAAA,OAAAx0G,OAAA6kK,eAAA7kK,OAAA6kK,eAAArwD,EAAAgtP,IAAAhtP,EAAAkqC,UAAA8iN,EAAAN,EAAA1sP,EAAAC,EAAA,sBAAAD,EAAAj5G,UAAAyE,OAAA4mH,OAAA7S,GAAAS,CAAA,EAAAl3G,EAAAylW,MAAA,SAAAvuP,GAAA,OAAAotP,QAAAptP,EAAA,EAAAitP,EAAAE,EAAApmW,WAAA2lW,EAAAS,EAAApmW,UAAAq4G,GAAA,0BAAAt2G,EAAAqkW,cAAAA,EAAArkW,EAAAk4C,MAAA,SAAAg/D,EAAAD,EAAAH,EAAAC,EAAAztG,QAAA,IAAAA,IAAAA,EAAA0yC,SAAA,IAAAgkC,EAAA,IAAAqkR,EAAA7/I,EAAAttG,EAAAD,EAAAH,EAAAC,GAAAztG,GAAA,OAAAtJ,EAAAwlW,oBAAAvuP,GAAAj3B,EAAAA,EAAAo9C,OAAAjhF,MAAA,SAAA+6D,GAAA,OAAAA,EAAAmmB,KAAAnmB,EAAAlxG,MAAAg6E,EAAAo9C,MAAA,KAAA+mO,EAAA1tP,GAAAmtP,EAAAntP,EAAAU,EAAA,aAAAysP,EAAAntP,EAAAz2B,GAAA,0BAAA4jR,EAAAntP,EAAA,qDAAAz2G,EAAA2C,KAAA,SAAAu0G,GAAA,IAAAl3G,EAAA0C,OAAAw0G,GAAAD,EAAA,WAAAH,KAAA92G,EAAAi3G,EAAAx4G,KAAAq4G,GAAA,OAAAG,EAAA5uG,UAAA,SAAA+0H,IAAA,KAAAnmB,EAAAl3G,QAAA,KAAAm3G,EAAAD,EAAAnkG,MAAA,GAAAokG,KAAAl3G,EAAA,OAAAo9H,EAAAp3H,MAAAkxG,EAAAkmB,EAAAC,MAAA,EAAAD,CAAA,QAAAA,EAAAC,MAAA,EAAAD,CAAA,GAAAp9H,EAAAi0F,OAAAA,EAAA6vQ,EAAA7lW,UAAA,CAAAqzG,YAAAwyP,EAAAvjW,MAAA,SAAAP,GAAA,QAAAs6U,KAAA,OAAAl9M,KAAA,OAAAsnO,KAAA,KAAAC,MAAAztP,EAAA,KAAAmmB,MAAA,OAAAmnO,SAAA,UAAArkN,OAAA,YAAAt8I,IAAAqzG,EAAA,KAAAmuP,WAAAllW,QAAAmlW,IAAAtlW,EAAA,QAAAi3G,KAAA,WAAAA,EAAAjtG,OAAA,IAAA8sG,EAAA7lG,KAAA,KAAAgmG,KAAAj2B,OAAAi2B,EAAAvuG,MAAA,WAAAuuG,GAAAC,EAAA,EAAAozC,KAAA,gBAAAjtB,MAAA,MAAAnmB,EAAA,KAAAmuP,WAAA,GAAAE,WAAA,aAAAruP,EAAA55F,KAAA,MAAA45F,EAAArzG,IAAA,YAAA6hW,IAAA,EAAAd,kBAAA,SAAA5kW,GAAA,QAAAq9H,KAAA,MAAAr9H,EAAA,IAAAi3G,EAAA,cAAA21F,EAAA91F,EAAAC,GAAA,OAAA/2B,EAAA1iE,KAAA,QAAA0iE,EAAAn8E,IAAA7D,EAAAi3G,EAAAmmB,KAAAtmB,EAAAC,IAAAE,EAAAkpC,OAAA,OAAAlpC,EAAApzG,IAAAqzG,KAAAH,CAAA,SAAAA,EAAA,KAAAsuP,WAAAtlW,OAAA,EAAAg3G,GAAA,IAAAA,EAAA,KAAAztG,EAAA,KAAA+7V,WAAAtuP,GAAA/2B,EAAA12E,EAAAi8V,WAAA,YAAAj8V,EAAA27V,OAAA,OAAAr4J,EAAA,UAAAtjM,EAAA27V,QAAA,KAAA3qB,KAAA,KAAAhkO,EAAAQ,EAAA7lG,KAAA3H,EAAA,YAAA6tG,EAAAL,EAAA7lG,KAAA3H,EAAA,iBAAAgtG,GAAAa,EAAA,SAAAmjO,KAAAhxU,EAAA47V,SAAA,OAAAt4J,EAAAtjM,EAAA47V,UAAA,WAAA5qB,KAAAhxU,EAAA67V,WAAA,OAAAv4J,EAAAtjM,EAAA67V,WAAA,SAAA7uP,GAAA,QAAAgkO,KAAAhxU,EAAA47V,SAAA,OAAAt4J,EAAAtjM,EAAA47V,UAAA,YAAA/tP,EAAA,UAAAxhF,MAAA,kDAAA2kT,KAAAhxU,EAAA67V,WAAA,OAAAv4J,EAAAtjM,EAAA67V,WAAA,KAAAN,OAAA,SAAA3tP,EAAAl3G,GAAA,QAAAi3G,EAAA,KAAAouP,WAAAtlW,OAAA,EAAAk3G,GAAA,IAAAA,EAAA,KAAAF,EAAA,KAAAsuP,WAAApuP,GAAA,GAAAF,EAAAkuP,QAAA,KAAA3qB,MAAAxjO,EAAA7lG,KAAA8lG,EAAA,oBAAAujO,KAAAvjO,EAAAouP,WAAA,KAAA77V,EAAAytG,EAAA,OAAAztG,IAAA,UAAA4tG,GAAA,aAAAA,IAAA5tG,EAAA27V,QAAAjlW,GAAAA,GAAAsJ,EAAA67V,aAAA77V,EAAA,UAAA02E,EAAA12E,EAAAA,EAAAi8V,WAAA,UAAAvlR,EAAA1iE,KAAA45F,EAAAl3B,EAAAn8E,IAAA7D,EAAAsJ,GAAA,KAAA62I,OAAA,YAAA/iB,KAAA9zH,EAAA67V,WAAA5vT,GAAA,KAAAiwB,SAAAwa,EAAA,EAAAxa,SAAA,SAAA0xC,EAAAl3G,GAAA,aAAAk3G,EAAA55F,KAAA,MAAA45F,EAAArzG,IAAA,gBAAAqzG,EAAA55F,MAAA,aAAA45F,EAAA55F,KAAA,KAAA8/G,KAAAlmB,EAAArzG,IAAA,WAAAqzG,EAAA55F,MAAA,KAAAooV,KAAA,KAAA7hW,IAAAqzG,EAAArzG,IAAA,KAAAs8I,OAAA,cAAA/iB,KAAA,kBAAAlmB,EAAA55F,MAAAtd,IAAA,KAAAo9H,KAAAp9H,GAAAu1C,CAAA,EAAAowT,OAAA,SAAAzuP,GAAA,QAAAl3G,EAAA,KAAAqlW,WAAAtlW,OAAA,EAAAC,GAAA,IAAAA,EAAA,KAAAi3G,EAAA,KAAAouP,WAAArlW,GAAA,GAAAi3G,EAAAkuP,aAAAjuP,EAAA,YAAA1xC,SAAAyxC,EAAAsuP,WAAAtuP,EAAAmuP,UAAAE,EAAAruP,GAAA1hE,CAAA,kBAAA2hE,GAAA,QAAAl3G,EAAA,KAAAqlW,WAAAtlW,OAAA,EAAAC,GAAA,IAAAA,EAAA,KAAAi3G,EAAA,KAAAouP,WAAArlW,GAAA,GAAAi3G,EAAAguP,SAAA/tP,EAAA,KAAAJ,EAAAG,EAAAsuP,WAAA,aAAAzuP,EAAAx5F,KAAA,KAAAy5F,EAAAD,EAAAjzG,IAAAyhW,EAAAruP,EAAA,QAAAF,CAAA,YAAAphF,MAAA,0BAAAiwU,cAAA,SAAA5lW,EAAAi3G,EAAAH,GAAA,YAAA0tP,SAAA,CAAA5nO,SAAA3oC,EAAAj0F,GAAA8kW,WAAA7tP,EAAA8tP,QAAAjuP,GAAA,cAAAqpC,SAAA,KAAAt8I,IAAAqzG,GAAA3hE,CAAA,GAAAv1C,CAAA,UAAA6lW,GAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA/mW,EAAA4E,GAAA,QAAAkhJ,EAAA+gN,EAAA7mW,GAAA4E,GAAAmC,EAAA++I,EAAA/+I,KAAA,OAAAi+D,GAAA,YAAAqnE,EAAArnE,EAAA,CAAA8gF,EAAA1nB,KAAAphF,EAAAj2C,GAAAg2C,QAAAC,QAAAj2C,GAAAm2C,KAAA4pT,EAAAC,EAAA,UAAAjpO,GAAAC,EAAA1zH,GAAA,gBAAA0zH,GAAA,GAAAx6H,MAAAC,QAAAu6H,GAAA,OAAAA,CAAA,CAAAC,CAAAD,IAAA,SAAA/lB,EAAAJ,GAAA,IAAAK,EAAA,MAAAD,EAAA,yBAAA0lB,QAAA1lB,EAAA0lB,OAAAC,WAAA3lB,EAAA,uBAAAC,EAAA,KAAAl3G,EAAA82G,EAAAxtG,EAAA6tG,EAAAn3B,EAAA,GAAAw2B,GAAA,EAAAO,GAAA,SAAAztG,GAAA4tG,EAAAA,EAAAjmG,KAAAgmG,IAAAmmB,KAAA,IAAAvmB,EAAA,IAAAn0G,OAAAw0G,KAAAA,EAAA,OAAAV,GAAA,cAAAA,GAAAx2G,EAAAsJ,EAAA2H,KAAAimG,IAAAmmB,QAAAr9C,EAAAvhF,KAAAuB,EAAAgG,OAAAg6E,EAAAjgF,SAAA82G,GAAAL,GAAA,UAAAS,GAAAF,GAAA,EAAAD,EAAAG,CAAA,iBAAAT,GAAA,MAAAU,EAAA,SAAAC,EAAAD,EAAA,SAAAx0G,OAAAy0G,KAAAA,GAAA,kBAAAJ,EAAA,MAAAD,CAAA,SAAA92B,CAAA,EAAAs9C,CAAAN,EAAA1zH,IAAAi0H,GAAAP,EAAA1zH,IAAA,qBAAAk0H,UAAA,6IAAAC,EAAA,UAAAF,GAAAxmB,EAAAinB,GAAA,GAAAjnB,EAAA,qBAAAA,EAAA,OAAA4mB,GAAA5mB,EAAAinB,GAAA,IAAAlnB,EAAAp0G,OAAAzE,UAAA+yB,SAAA/f,KAAA8lG,GAAAruG,MAAA,uBAAAouG,GAAAC,EAAAzF,cAAAwF,EAAAC,EAAAzF,YAAAntG,MAAA,QAAA2yG,GAAA,QAAAA,EAAAt0G,MAAAiiG,KAAAsS,GAAA,cAAAD,GAAA,2CAAAp7G,KAAAo7G,GAAA6mB,GAAA5mB,EAAAinB,QAAA,YAAAL,GAAAX,EAAAnsB,IAAA,MAAAA,GAAAA,EAAAmsB,EAAAj9H,UAAA8wG,EAAAmsB,EAAAj9H,QAAA,QAAAuJ,EAAA,EAAA20H,EAAA,IAAAz7H,MAAAquG,GAAAvnG,EAAAunG,EAAAvnG,IAAA20H,EAAA30H,GAAA0zH,EAAA1zH,GAAA,OAAA20H,CAAA,UAAAswR,GAAAwxB,EAAAC,GAAA,OAAAA,IAAAA,EAAAD,EAAAr3a,MAAA,IAAAhG,OAAAu9a,OAAAv9a,OAAA+5H,iBAAAsjT,EAAA,CAAAC,IAAA,CAAAh6a,MAAAtD,OAAAu9a,OAAAD,MAAA,CAqBA,IAyJY6zP,GAzJNjlR,GAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,KAAAA,GAAAC,GAAA,8EAMpB+lR,GAAe/lpB,EAAAA,GAAO8qJ,IAAGo1O,KAAAA,GAAAF,GAAA,wFAOzBqX,GAAcr3Y,EAAAA,GAAO8qJ,IAAGs1O,KAAAA,GAAAJ,GAAA,2XAMjBW,EAAAA,EAAWttX,QAGNstX,EAAAA,EAAW5jY,MACL4jY,EAAAA,EAAWqC,WAE7B,SAAAvgZ,GAAK,OAAIA,EAAMizD,QAASh+C,EAAAA,EAAAA,IAAG4oY,KAAAA,GAAAN,GAAA,6CACLW,EAAAA,EAAWmB,UAClC,IACC,SAAAr/Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG8oY,KAAAA,GAAAR,GAAA,uCACdW,EAAAA,EAAWuG,OAC5B,IACC,SAAAzkZ,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAGgpY,KAAAA,GAAAV,GAAA,qCAE7B,IACC,SAAAv9Y,GAAK,OAAIA,EAAMujqB,SAAUtupB,EAAAA,EAAAA,IAAGupY,KAAAA,GAAAjB,GAAA,kCAE7B,GAEuBW,EAAAA,EAAWC,YAC7B,SAAAn+Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG0pY,KAAAA,GAAApB,GAAA,qDACRW,EAAAA,EAAWqC,UAClC,IAIHijR,GAAoBjmpB,EAAAA,GAAO8qJ,IAAGw2O,KAAAA,GAAAtB,GAAA,kIAM9B,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAG8pY,KAAAA,GAAAxB,GAAA,mEAG7B,IACC,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAGgqY,KAAAA,GAAA1B,GAAA,wCAE7B,IAGCkmR,GAAalmpB,EAAAA,GAAO8qJ,IAAG82O,KAAAA,GAAA5B,GAAA,sHASvB/hX,GAAUje,EAAAA,GAAO8qJ,IAAG+2O,KAAAA,GAAA7B,GAAA,2QAMpB,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAGqqY,KAAAA,GAAA/B,GAAA,8CAE7B,IAIC,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAGuqY,KAAAA,GAAAjC,GAAA,sDAE7B,IACC,SAAAv9Y,GAAK,OAAIA,EAAMujqB,SAAUtupB,EAAAA,EAAAA,IAAGwqY,KAAAA,GAAAlC,GAAA,8CAE7B,IAGCmmR,GAAcnmpB,EAAAA,GAAO0xB,MAAK0wW,KAAAA,GAAApC,GAAA,mhBAU1B,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAG4qY,KAAAA,GAAAtC,GAAA,6IAK7B,GAEYW,EAAAA,EAAWkG,WAMPlG,EAAAA,EAAWkG,YAK1Bu/Q,GAAYpmpB,EAAAA,GAAO8qJ,IAAG23O,KAAAA,GAAAzC,GAAA,gGAItB,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAGgrY,KAAAA,GAAA1C,GAAA,sEAG7B,IACC,SAAAv9Y,GAAK,OAAIA,EAAM4jqB,YAAa3upB,EAAAA,EAAAA,IAAGirY,KAAAA,GAAA3C,GAAA,kCAEhC,IAGCsmR,GAAWtmpB,EAAAA,GAAO8qJ,IAAG83O,KAAAA,GAAA5C,GAAA,mMAQrB,SAAAv9Y,GAAK,OAAIA,EAAMwgO,SAAUvrN,EAAAA,EAAAA,IAAGmrY,KAAAA,GAAA7C,GAAA,gEAG7B,IACC,SAAAv9Y,GAAK,OAAIA,EAAM8jqB,YAAa7upB,EAAAA,EAAAA,IAAGqrY,KAAAA,GAAA/C,GAAA,mCAEhC,IAEC,SAAAv9Y,GAAK,OAAKA,EAAMgzC,cAAe/9B,EAAAA,EAAAA,IAAGwrY,KAAAA,GAAAlD,GAAA,mEAInC,KASJ,SANWslR,GAAAA,EAAa,gBAAbA,EAAa,kBAAbA,EAAa,cAAbA,EAAa,gBAAbA,EAAa,UAMxB,CANWA,KAAAA,GAAa,KA4BlB,IAAMkB,GAA+B,SAAA/jqB,GAAS,IAAAgkqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3C74Q,GAAOC,EAAAA,EAAAA,KACP64Q,GAAyB31pB,EAAAA,EAAAA,UACzB41pB,GAA8B51pB,EAAAA,EAAAA,UAC9BqupB,GAAgBrupB,EAAAA,EAAAA,UAC8Dg9Y,EAAAlgS,IAAjBmgS,EAAAA,EAAAA,KAAY,GAAK,GAA7E2C,EAAU5C,EAAA,GAAEG,EAAYH,EAAA,GAAKK,GAAFL,EAAA,GAAeA,EAAA,IAAE64Q,EAAY74Q,EAAA,GACC9I,EAAAp3R,IAAtBq3R,EAAAA,EAAAA,UAAmB,IAAG,GAAzD2hR,EAAa5hR,EAAA,GAAE6hR,EAAgB7hR,EAAA,GACgCmC,EAAAv5R,IAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA/D6hR,EAAe3/Q,EAAA,GAAE4/Q,EAAkB5/Q,EAAA,GACsBG,EAAA15R,IAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAAzD+hR,EAAY1/Q,EAAA,GAAE2/Q,EAAe3/Q,EAAA,GACkBG,EAAA75R,IAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA/CnuV,EAAO2wV,EAAA,GAAE82Q,EAAU92Q,EAAA,GAC8BG,EAAAh6R,IAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAAjD12Y,EAAUq5Y,EAAA,GAAEhoL,EAAagoL,EAAA,GACsCG,EAAAn6R,IAAtBq3R,EAAAA,EAAAA,UAAmB,IAAG,GAA/DiiR,EAAgBn/Q,EAAA,GAAEo/Q,EAAmBp/Q,EAAA,GACmBgyQ,EAAAnsiB,IAArBq3R,EAAAA,EAAAA,UAAkB,IAAG,GAAxDtjU,EAAao4kB,EAAA,GAAEqN,EAAgBrN,EAAA,GACcsH,EAAAzziB,IAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA7C5iL,EAAMg/b,EAAA,GAAEgG,GAAShG,EAAA,IAExBtwpB,EAAAA,EAAAA,YAAU,WAAM,IAAAu2pB,EAAAC,EAC0B/H,EAAlCL,SAAAA,EAAer8pB,SAAWu/N,IAC1B88b,SAAsB,QAATK,EAAbL,EAAer8pB,eAAO,IAAA08pB,GAAtBA,EAAwBC,kBAEtBiH,GAA+B7kqB,EAAMgzC,cAA+E,QAAhEyynB,EAAAj0qB,MAAMiiG,MAAKoxkB,SAAoC,QAATa,EAA3Bb,EAA6B5jqB,eAAO,IAAAykqB,OAAA,EAApCA,EAAsC98pB,WAAY,WAAG,IAAA68pB,GAA4C,QAA5CA,EAAhEA,EAAkE/3qB,QAAO,SAAC6rE,GAAS,OAAKA,EAAKmd,UAAY,EAAE,WAAC,IAAA+ulB,OAAA,EAA5GA,EAA8G12qB,QAAS,GAC7Ky2qB,IAAU,EAElB,GAAG,CAACH,KAEJn2pB,EAAAA,EAAAA,YAAU,WACgC,IAAAivpB,EAAlCb,SAAAA,EAAer8pB,SAAWu/N,IAC1B88b,SAAsB,QAATa,EAAbb,EAAer8pB,eAAO,IAAAk9pB,GAAtBA,EAAwBP,iBAEhC,GAAG,CAACN,aAAa,EAAbA,EAAer8pB,QAASu/N,KAE5BtxN,EAAAA,EAAAA,YAAU,WACDk9Y,GAAiBpsZ,EAAMhL,OACxB+oO,OAAc/zO,GAEboia,GACDo5Q,IAAU,GAEVxlqB,EAAM2lqB,aAAev5Q,GACrBm5Q,EAAiBF,EAAiBpzqB,KAAI,SAAAsnE,GAAI,MAAK,CAC3ChzC,KAAMgzC,EAAKhzC,KACXtD,GAAIs2C,EAAKtrE,IACT2oB,KAAM2iD,EAAK3iD,KACX4vV,eAAgB,GAChB9lV,SAAS,EACZ,IAET,GAAG,CAAC0rY,KAEJl9Y,EAAAA,EAAAA,YAAU,WAAM,IAAAskc,EAC8HC,GAApI4xN,GAAgD,IAA5BA,EAAiBt2qB,SAAkBs2qB,KAAgC,QAAX7xN,EAAAxzc,EAAMhL,aAAK,IAAAw+c,GAA+B,QAA/BA,EAAXA,EAAa9ld,QAAO,SAAA6rE,GAAI,OAAa,OAATA,CAAa,WAAC,IAAAi6Y,OAAA,EAA1CA,EAA4Czkd,QAAS,IACnIu2qB,EAAoBtlqB,EAAMhL,OAC1BuwqB,EAA4B,QAAZ9xN,EAACzzc,EAAMhL,aAAK,IAAAy+c,OAAA,EAAXA,EAAaxhd,KAAI,SAAAsnE,GAAI,MAAK,CACvC74C,SAAS,EACT9J,KAAM2iD,EAAK3iD,KACXqM,GAAIs2C,EAAKtrE,IACTs4B,KAAMgzC,EAAKhzC,KACXigV,eAAgB,GACnB,MAGAxmW,EAAMhL,QACPswqB,EAAoB,IACpBC,EAAiB,IAEzB,GAAG,CAACvlqB,EAAMhL,QAEV,IAAMk4O,GAAO,eA5QjB58K,EA4QiBsgE,GA5QjBtgE,EA4QiBoiS,KAAAnlO,MAAG,SAAA4nO,EAAOv+U,GAAY,IAAAypF,EAAA,OAAAqyP,KAAAl/I,MAAA,SAAA6hJ,GAAA,cAAAA,EAAA/rB,KAAA+rB,EAAAjpO,MAAA,OAEV,OADrBswiB,GAAW,GACXsI,EAAiB,IAAI3vU,EAAAjpO,KAAA,EACCpsH,EAAMktO,QAAQt2N,GAAK,OAAnCypF,EAAOg1P,EAAA3B,KACbgpU,GAAW,GACXsI,EAAiB3kkB,GAAS,wBAAAg1P,EAAA/7M,OAAA,GAAA67M,EAAA,IAjRlC,eAAA3jN,EAAA,KAAAtjJ,EAAA0C,UAAA,WAAAo6C,SAAA,SAAAC,EAAAqvF,GAAA,IAAAw6N,EAAAxkS,EAAAt+D,MAAAw/I,EAAAtjJ,GAAA,SAAA6mW,EAAA//V,GAAA6/V,GAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA,OAAAhgW,EAAA,UAAAggW,EAAAt0O,GAAAm0O,GAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA,QAAAt0O,EAAA,CAAAq0O,OAAA/qW,EAAA,MAmRK,gBAPYurW,GAAA,OAAA3kO,EAAA5+H,MAAA,KAAApB,UAAA,KASPijQ,GAAgB,SAAC7kQ,EAAwCqmB,EAAcgknB,GACzErqoB,GAAKs9Z,IACLi5Q,GAAiB,SAAA9soB,GAAK,OAAI4gmB,EAAW5gmB,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAKkR,KAAKtD,EAAE,IAAI,GAAHrvB,OAAA84H,GAAOj0F,GAAK,CAAE,CAAE7hB,KAAMvB,EAAKuB,KAAMqM,GAAI5N,EAAKpnB,IAAKs4B,KAAMlR,EAAMqL,SAAS,EAAM8lV,eAAgB,KAAK,IAClL8+T,GAAoB,SAAA7soB,GAAK,OAAI4gmB,EAAW5gmB,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQonB,EAAKkR,KAAKtD,EAAE,IAAI,GAAHrvB,OAAA84H,GAAOj0F,GAAK,CAAEpjB,GAAK,IAC1G0R,YAAW,WACP/mB,EAAMgzC,YACFhzC,EAAMggb,qBAAqBq5M,EAAWgsC,EAAiB33qB,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQonB,EAAKkR,KAAKtD,EAAE,IAAI,GAAHrvB,OAAA84H,GAAO24iB,GAAgB,CAAEhwpB,KAEzHrV,EAAMi/a,gBAAgBo6M,EAAWgsC,EAAiB33qB,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQonB,EAAKkR,KAAKtD,EAAE,IAAI,GAAHrvB,OAAA84H,GAAO24iB,GAAgB,CAAEhwpB,IAC5H,GAAG,KACH2vpB,EAAiB,IACjBjnc,EAAc,IACdmP,GAAQ,GACZ,EAEM81b,GAAqB,WACvBkC,GAAmB,SAAAzsoB,GAAK,OAAKA,CAAK,IAClC6zX,GACJ,EAEMy2Q,GAAkB,WACpBqC,GAAgB,SAAA3soB,GAAK,OAAKA,CAAK,IAC/B6zX,GACJ,EAkCMp9M,GAAgB,SAACl6M,GACdgL,EAAM4B,WACP2jqB,GAAiB,SAAA9soB,GAAK,OAAIA,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKt2C,KAAOjuB,CAAK,GAAC,IACjE6+P,QAAc7pQ,EAAW,CACrBiE,IAAK,GACL2oB,KAAM,GACN2P,KAAM,CACFtD,GAAIjuB,KAGR,GACJswqB,GAAoB,SAAA7soB,GAAK,OAAIA,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQ+G,CAAK,GAAC,IAE7E,EAaM4wqB,GAAwB,WAC1Bt5Q,IACAk5Q,IAAU,GACVD,EAAiB,IACjBD,EAAoB,IACpBtlqB,EAAMgzC,YAAchzC,EAAMggb,qBAAqB,IAAMhgb,EAAMi/a,gBAAgB,GAC/E,EAaI4mP,GAAkB7lqB,EAAM6lqB,gBACvBA,KACDA,GAAkB7lqB,EAAMgzC,YAAc8ynB,GAAAA,GAAiB9lQ,KAAO8lQ,GAAAA,GAAiBC,OAGnF,IAAMC,GAAYX,aAAgB,EAAhBA,EAAkBpzqB,KAAI,SAACsnE,EAAMllE,GAAK,IAAA6tqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAyD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAChDnjR,EAAAA,cAAC0d,EAAAA,SAAQ,CAAClza,KAAKsrE,aAAI,EAAJA,EAAMtrE,MAAOoG,GACvBklE,GACGkqV,EAAAA,cAAAA,EAAAA,SAAA,KACoD,aAAtC,QAATy+Q,EAAA3omB,EAAKhzC,YAAI,IAAA27oB,GAAM,QAANA,EAATA,EAAW51pB,YAAI,IAAA41pB,GAAY,QAAZA,EAAfA,EAAiBlipB,kBAAU,IAAAkipB,OAAA,EAA3BA,EAA6BztqB,eAC1BgvZ,EAAAA,cAACy6B,GAAAA,GAAI,CACDjwb,IAAKsrE,EAAKtrE,IACV2oB,KAAI,GAAAhjB,QAAc,QAATuuqB,EAAA5omB,EAAKhzC,YAAI,IAAA47oB,OAAA,EAATA,EAAW30U,QAAiB,QAAb40U,EAAI7omB,EAAKhzC,YAAI,IAAA67oB,OAAA,EAATA,EAAWjvqB,QAAiB,QAAbkvqB,EAAI9omB,EAAKhzC,YAAI,IAAA87oB,OAAA,EAATA,EAAW3xU,WAAS,KAAA98V,OAAa,QAAT0uqB,EAAA/omB,EAAKhzC,YAAI,IAAA+7oB,GAATA,EAAW3xU,SAAWp3R,SAAU,QAANgpmB,EAAJhpmB,EAAMhzC,YAAI,IAAAg8oB,OAAA,EAAVA,EAAY5xU,SAAW,IACpH1tU,GAAa,QAAXu/oB,EAAEjpmB,EAAKhzC,YAAI,IAAAi8oB,OAAA,EAATA,EAAWv/oB,GACfmiZ,YAAaygQ,GACbnvpB,QAAS1W,EAAMgzC,YAAck8J,QAAgBllN,IAGjDy5Z,EAAAA,cAACy6B,GAAAA,GAAI,CACDp/C,YAAavlU,SAAU,QAAN0smB,EAAJ1smB,EAAMhzC,YAAI,IAAA0/oB,GAAM,QAANA,EAAVA,EAAY35pB,YAAI,IAAA25pB,GAAY,QAAZA,EAAhBA,EAAkBjmpB,kBAAU,IAAAimpB,OAAA,EAA5BA,EAA8BxxqB,cAC3CxG,IAAKsrE,aAAI,EAAJA,EAAMtrE,IACXm3a,YAAaygQ,GACbhmQ,OAAQtmW,SAAU,QAAN2smB,EAAJ3smB,EAAMhzC,YAAI,IAAA2/oB,GAAM,QAANA,EAAVA,EAAY55pB,YAAI,IAAA45pB,GAAY,QAAZA,EAAhBA,EAAkBlmpB,kBAAU,IAAAkmpB,OAAA,EAA5BA,EAA8BzxqB,iBAAkBiqX,EAAAA,GAAaw1D,WAAY36W,SAAU,QAAN4smB,EAAJ5smB,EAAMhzC,YAAI,IAAA4/oB,GAAM,QAANA,EAAVA,EAAY75pB,YAAI,IAAA65pB,GAAY,QAAZA,EAAhBA,EAAkBnmpB,kBAAU,IAAAmmpB,OAAA,EAA5BA,EAA8B1xqB,iBAAkBiqX,EAAAA,GAAa+uD,MAASo5P,GAAAA,GAAW9mQ,OAAS8mQ,GAAAA,GAAW/mQ,OACtLlvE,SAASr3R,SAAU,QAAN6smB,EAAJ7smB,EAAMhzC,YAAI,IAAA6/oB,OAAA,EAAVA,EAAYx1U,WAAWr3R,SAAU,QAAN8smB,EAAJ9smB,EAAMhzC,YAAI,IAAA8/oB,OAAA,EAAVA,EAAYvlS,eAAW92Y,EACvD4sB,KAAI,GAAAhjB,QAAK2lE,SAAU,QAAN+smB,EAAJ/smB,EAAMhzC,YAAI,IAAA+/oB,OAAA,EAAVA,EAAY94U,QAAQj0R,SAAU,QAANgtmB,EAAJhtmB,EAAMhzC,YAAI,IAAAggpB,OAAA,EAAVA,EAAYpzqB,QAAQomE,SAAU,QAANitmB,EAAJjtmB,EAAMhzC,YAAI,IAAAigpB,OAAA,EAAVA,EAAY91U,YAAS98V,OAAG2lE,SAAU,QAANktmB,EAAJltmB,EAAMhzC,YAAI,IAAAkgpB,GAAVA,EAAY91U,SAAW,IAAH/8V,OAAO2lE,SAAU,QAANmtmB,EAAJntmB,EAAMhzC,YAAI,IAAAmgpB,OAAA,EAAVA,EAAY/1U,UAAa,IAC7H1tU,IAAIs2C,SAAU,QAANotmB,EAAJptmB,EAAMhzC,YAAI,IAAAogpB,OAAA,EAAVA,EAAY1jpB,MAAMs2C,SAAU,QAANqtmB,EAAJrtmB,EAAMhzC,YAAI,IAAAqgpB,OAAA,EAAVA,EAAYzhP,IAClCzua,QAAS1W,EAAMgzC,YAAck8J,QAAgBllN,KAKtD,IAGT88qB,GAAuB,SAAC93qB,GAC1B+uO,EAAc/uO,EAAE2J,OAAO3D,OACvBk4O,GAAQl+O,EAAE2J,OAAO3D,MACrB,EAEA,OACIyuZ,EAAAA,cAAC7F,GAAO,CAACn1Y,IAAKomZ,EAAY7ga,UAAU,WAC/BgS,EAAM4T,OACH6vY,EAAAA,cAACkQ,EAAAA,EAAiB,KACb3zZ,EAAM4T,MACN5T,EAAMutC,UACHk2W,EAAAA,cAAC0tD,GAAAA,EAAkB,OAI/B1tD,EAAAA,cAACmR,GAAW,CACRrhX,WAAY8xnB,EACZrynB,YAAahzC,EAAMgzC,YACnBpxC,SAAU5B,EAAM4B,SAChB4+N,OAAQA,EACR9pN,QAAS1W,EAAM4B,cAAW5X,EApFtB,WAC2B,IAAA+8qB,EAAAC,EAAlC/B,GAAoBE,IAErBL,IACI9kqB,EAAMgzC,cAAgBwtL,IAAoE,QAA1Dumc,EAAAv1qB,MAAMiiG,KAAKoxkB,SAAoC,QAATmC,EAA3BnC,EAA6B5jqB,eAAO,IAAA+lqB,OAAA,EAApCA,EAAsCp+pB,iBAAS,IAAAm+pB,GAA4C,QAA5CA,EAA1DA,EAA4Dr5qB,QAAO,SAAC6rE,GAAS,OAAKA,EAAKmd,UAAY,EAAE,WAAC,IAAAqwlB,OAAA,EAAtGA,EAAwGh4qB,QAAS,GACjJy2qB,IAAU,GAEdt4b,GAAQxgO,GAAc,IAE9B,EA4EYumD,QAASjzD,EAAMklb,SACfq+O,QAAQ10Q,aAAU,EAAVA,EAAY5tZ,WAAW4tZ,SAAmB,QAATm1Q,EAAVn1Q,EAAY5tZ,eAAO,IAAA+iqB,OAAA,EAAnBA,EAAqB74pB,wBAAwBjF,OAAQ,IACpFlY,UAAU,eAEVy1Z,EAAAA,cAACyG,EAAAA,GAAU,CAAC+8Q,yBAAuB,EAACx+pB,IAAK60pB,GACrC75Q,EAAAA,cAACkgR,GAAS,CAACnjc,OAAQA,EAAQojc,WAAW/0Q,aAAU,EAAVA,EAAY5tZ,WAAW4tZ,SAAmB,QAATo1Q,EAAVp1Q,EAAY5tZ,eAAO,IAAAgjqB,OAAA,EAAnBA,EAAqB94pB,wBAAwBjF,OAAQ,OAC3G2oZ,aAAU,EAAVA,EAAY5tZ,WAAW4tZ,SAAmB,QAATq1Q,EAAVr1Q,EAAY5tZ,eAAO,IAAAijqB,GAAnBA,EAAqB/4pB,wBAAwBjF,OACnEu9Y,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM0zpB,EAAAA,IAAU1tpB,MAAO0kY,EAAAA,EAAWwC,YAEvD+C,EAAAA,cAACjoX,GAAO,CAACglM,OAAQA,EAAQ5+N,SAAU5B,EAAM4B,SAAU2hqB,QAAQ10Q,aAAU,EAAVA,EAAY5tZ,WAAW4tZ,SAAmB,QAATs1Q,EAAVt1Q,EAAY5tZ,eAAO,IAAAkjqB,OAAA,EAAnBA,EAAqBh5pB,wBAAwBjF,OAAQ,KACnIu9Y,EAAAA,cAAC+/Q,GAAiB,CAAC/6pB,IAAKm8pB,EAAwBhjqB,SAAU5B,EAAM4B,SAAU4+N,OAAQA,EAAQxyO,UAAU,qBAC9FwyO,EAiBEijL,EAAAA,cAACogR,GAAQ,CAACp7pB,IAAKo8pB,EAA6Brkc,OAAQA,EAAQsjc,WAAS,EAAC9wnB,YAAahzC,EAAMgzC,aACpFgznB,IACEhmqB,EAAM4B,WAAa5B,EAAM2lqB,YACxBliR,EAAAA,cAACigR,GAAW,CAAC9hqB,SAAU5B,EAAM4B,SAAU0K,KAAK,OAAOtX,MAAO0X,EAAYiB,SAAWs3pB,GAAmBE,OAAgBn7qB,EAAY88qB,GAAsBhynB,YAAa90C,EAAM80C,aAAeg3W,EAAK1uE,cAAc,CAAEn6T,GAAI,kBAAoBu9M,OAAQA,KAnBrPijL,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACogR,GAAQ,CAAC7wnB,YAAahzC,EAAMgzC,YAAavqC,IAAKo8pB,EAA6Bf,aAA6E,QAAhEM,EAAA5yqB,MAAMiiG,MAAKoxkB,SAAoC,QAATR,EAA3BQ,EAA6B5jqB,eAAO,IAAAojqB,OAAA,EAApCA,EAAsCz7pB,WAAY,WAAG,IAAAw7pB,GAA4C,QAA5CA,EAAhEA,EAAkE12qB,QAAO,SAAC6rE,GAAS,OAAKA,EAAKmd,UAAY,EAAE,WAAC,IAAA0tlB,OAAA,EAA5GA,EAA8Gr1qB,QAAS,IAAKs2qB,aAAgB,EAAhBA,EAAkBt2qB,QAAS,IAC3Oi3qB,IACEhmqB,EAAM4B,WAAa5B,EAAM2lqB,YACxBliR,EAAAA,cAACigR,GAAW,CAAC9hqB,SAAU5B,EAAM4B,SAAU0K,KAAK,OAAOtX,MAAO0X,EAAYiB,SAAWs3pB,GAAmBE,OAAgBn7qB,EAAY88qB,GAAsBhynB,YAAa90C,EAAM80C,aAAeg3W,EAAK1uE,cAAc,CAAEn6T,GAAI,kBAAoBu9M,OAAQA,MAGnL,QAAhE8jc,EAAA9yqB,MAAMiiG,MAAKoxkB,SAAoC,QAATN,EAA3BM,EAA6B5jqB,eAAO,IAAAsjqB,OAAA,EAApCA,EAAsC37pB,WAAY,WAAG,IAAA07pB,GAA4C,QAA5CA,EAAhEA,EAAkE52qB,QAAO,SAAC6rE,GAAS,OAAKA,EAAKmd,UAAY,EAAE,WAAC,IAAA4tlB,OAAA,EAA5GA,EAA8Gv1qB,QAAS,IAAKs2qB,aAAgB,EAAhBA,EAAkBt2qB,QAAS,GACrJ00Z,EAAAA,cAAC+c,GAAAA,GAAK,CACFhnZ,MAAO+lZ,GAAAA,GAAYe,KACnB5pZ,QAAS,kBAAM8upB,IAAU,SAAA/soB,GAAK,OAAKA,CAAK,GAAC,EACzCqc,YAAa0rL,EAAS,GAAH5sO,OAAMyxqB,aAAgB,EAAhBA,EAAkBt2qB,QAAM,GAAA6E,QAAwE,QAAhE4wqB,EAAAhzqB,MAAMiiG,MAAKoxkB,SAAoC,QAATJ,EAA3BI,EAA6B5jqB,eAAO,IAAAwjqB,OAAA,EAApCA,EAAsC77pB,WAAY,WAAG,IAAA47pB,GAA4C,QAA5CA,EAAhEA,EAAkE92qB,QAAO,SAAC6rE,GAAS,OAAKA,EAAKmd,UAAY,EAAE,WAAC,IAAA8tlB,OAAA,EAA5GA,EAA8Gz1qB,QAAS,EAAC,UAezM00Z,EAAAA,cAACggR,GAAU,KACPhgR,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,IAAS7+Y,MAAO0kY,EAAAA,EAAWwC,SAAUhqY,QAASkvpB,KACrEniR,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM2zpB,EAAAA,IAAQ3tpB,MAAO0kY,EAAAA,EAAWqC,YACjDkD,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM44Y,EAAeg7Q,EAAAA,IAAYxzN,EAAAA,IAAap6b,MAAO0kY,EAAAA,EAAWwC,eAKhG0L,GACG3I,EAAAA,cAAC6/Q,GAAY,CAACt1qB,UAAU,gBACnBgS,EAAM2lqB,WACHliR,EAAAA,cAAC4jR,GAAAA,EAAS,CACNpymB,QAASA,EACTngB,YAAa90C,EAAM80C,YACnB8tnB,YAAa5iqB,EAAM4iqB,YACnB39O,YAAajlb,EAAMilb,YACnBvva,MAAOqvpB,EAAc9yqB,KAAI,SAAAsnE,GAAI,MAAK,CAC9B3iD,KAAM2iD,EAAK3iD,KACXqM,GAAIs2C,EAAKtrE,IACTyyB,SAAS,EACT6F,KAAMgzC,EAAKhzC,KACXigV,eAAgB,GACnB,IACDxzT,YAAahzC,EAAMgzC,YACnBs0nB,sBAAuBvpc,EACvBj+I,cAAeA,EACf4ilB,aA7LG,SAACrtpB,GACpBrV,EAAMgzC,YACNuynB,GAAiB,SAAA9soB,GAAK,OAAIA,EAAM0wE,MAAK,SAAA5vC,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAK4N,EAAE,IAAIwV,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAK4N,EAAE,IAAI,GAAHrvB,OAAA84H,GAAOj0F,GAAK,CAAEpjB,GAAK,IAEhIkwpB,GAAiB,SAAA9soB,GAAK,OAAIA,EAAM0wE,MAAK,SAAA5vC,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAK4N,EAAE,IAAIwV,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAK4N,EAAE,IAAI,CAAC5N,EAAK,GAE9H,EAwLwB0tpB,gBAAiBA,GACjBC,mBAAoBA,GACpB/kP,QAAS2nP,GACT2B,OAtIJ,WAChB,IAAM5oP,EAAY7+V,EAAc7tF,KAAI,SAAAsnE,GAAI,MAAK,CACzCtrE,IAAKsrE,EAAKt2C,GACVrM,KAAM2iD,EAAK3iD,KACX2P,KAAMgzC,EAAKhzC,KACd,IACD++oB,EAAoB3mP,GACpBryB,IACAtsZ,EAAMgzC,YAAchzC,EAAMggb,qBAAqBrB,GAAa3+a,EAAMi/a,gBAAgBN,EACtF,EA8HwBrya,KAAMk7pB,EAAAA,GAAYC,SAClBjhU,eAAe,GACft5H,QAASA,KAGbu2K,EAAAA,cAAC+9Q,GAAa,CACVvsmB,QAASA,EACT/H,UAAWxgD,EACXozE,cAAeA,EACfijlB,gBAAiBA,GACjBC,mBAAoBA,GACpBE,iBAAkBljqB,EAAM6uD,YApNvB,WACrB7uD,EAAM6uD,YAAYniD,GAAYy+B,MAAK,SAACu8nB,GAChC3pc,EAAc,IACd81B,QAAc7pQ,EAAW09qB,EAC7B,GACJ,OA+MiF19qB,EACzD04qB,aAtMW,SAACrtpB,GAChC,IAAMsypB,IAAc7nlB,EAAcqpB,MAAK,SAAA5vC,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAK4N,EAAE,IAC5D07Z,EAAY,CAACtpa,GAAMpjB,KAAI,SAAAsnE,GAAI,MAAK,CAClCtrE,IAAKsrE,EAAKt2C,GACVrM,KAAM2iD,EAAK3iD,KACX2P,KAAMgzC,EAAKhzC,KACd,IACDg/oB,GAAiB,SAAA9soB,GAAK,OAAIkvoB,EAAYlvoB,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKt2C,KAAO5N,EAAK4N,EAAE,IAAKjjB,EAAMgzC,YAAc,GAAHp/C,OAAA84H,GAAOj0F,GAAK,CAAEpjB,IAAQ,CAACA,EAAM,IACjIiwpB,GAAoB,SAAA7soB,GAAK,OAAIkvoB,EAAYlvoB,EAAM/qC,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQonB,EAAK4N,EAAE,IAAKjjB,EAAMgzC,YAAc,GAAHp/C,OAAA84H,GAAOj0F,GAAKi0F,GAAKiyT,IAAaA,CAAU,IAChJ3+a,EAAMgzC,YACFhzC,EAAMggb,qBAAqB2nP,EAAYtC,EAAiB33qB,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQonB,EAAK4N,EAAE,IAAI,GAAHrvB,OAAA84H,GAAO24iB,GAAgB34iB,GAAKiyT,KAExH3+a,EAAMi/a,gBAAgB0oP,EAAYtC,EAAiB33qB,QAAO,SAAA6rE,GAAI,OAAIA,EAAKtrE,MAAQonB,EAAK4N,EAAE,IAAI07Z,GAC9F5gN,EAAc,IACdmP,GAAQ,GACZ,EAwLwB5gO,KAAMk7pB,EAAAA,GAAYC,SAClB7E,YAAa5iqB,EAAM4iqB,YACnB5vnB,YAAahzC,EAAMgzC,YACnBt9B,MAAOqvpB,EAAcr3qB,QAAO,SAAAnE,GAAM,OAAMu2F,EAAc7tF,KAAI,SAAAojB,GAAI,OAAIA,EAAK4N,EAAE,IAAEk1G,SAAS5uI,EAAO0E,IAAK,IAAEgE,KAAI,SAAAsnE,GAAI,MAAK,CAC3G3iD,KAAM2iD,EAAK3iD,KACXqM,GAAIs2C,EAAKtrE,IACTyyB,SAAS,EACT6F,KAAMgzC,EAAKhzC,KACXigV,eAAgB,GACnB,OAMjBi9C,EAAAA,cAACm7Q,GAAc,CACXrwjB,UAAW02jB,EACXx4P,aAAcu2P,GACdlD,YAAa,CACT3sqB,KAAMuZ,GAEVyzpB,WAAYtsa,KAEhB4vJ,EAAAA,cAAC88Q,GAAW,CACRY,iBAAkBnhqB,EAAMmhqB,iBACxB5yjB,UAAW42jB,EACX14P,aAAcs2P,GACdjD,YAAa,CACTpvU,WAAWhkV,SAA0B,QAAhBg4pB,EAAVh4pB,EAAY3Z,MAAM,gBAAQ,IAAA2xqB,OAAA,EAA1BA,EAA6B,KAAM,GAC9C/zU,UAAUjkV,SAA0B,QAAhBi4pB,EAAVj4pB,EAAY3Z,MAAM,gBAAQ,IAAA4xqB,OAAA,EAA1BA,EAA6B,KAAM,IAEjDxE,WAAYtsa,OAEb7zP,EAAMklb,UACLzhC,EAAAA,cAAC8uQ,GAAAA,EAAI,CAACjmpB,KAAMgmpB,GAAAA,EAAUtsc,OAAQhmN,EAAMklb,UAIpD,ykDClhBA,QAAMtnC,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,MAAA,uBAAAA,6EAEbyhC,EAAkC,SAAA/+a,GAC3C,IAAM4sV,GAAWs2D,EAAAA,EAAAA,MACT5zB,GAAiB21B,EAAAA,EAAAA,MAAjB31B,aACAs4S,GAAwBC,EAAAA,EAAAA,GAAgBv4S,GAAxCs4S,oBAEF16b,GAAUs2K,EAAAA,EAAAA,cAAY,SAAC5iL,GACzB,OAAI5gO,EAAM+kb,kBACCn4F,GAA+BuB,EAAAA,EAAAA,sBAAqBvtH,EAAO,IAAKknc,EAAAA,EAAiBC,WAAW58nB,MAAK,SAAA5kB,GACpG,OAAOA,aAAI,EAAJA,EAAMt0B,KAAI,SAAA6tb,GAAM,MAAK,CACxB7xb,IAAK6xb,EAAO78Z,GACZrM,KAAMkpa,EAAO3sb,KACbozB,KAAI6mU,EAAAA,EAAA,GAAO0yF,GAAM,IAAExza,KAAMoyW,EAAAA,GAAaigD,UACzC,GACL,IACO3+Z,EAAMg/a,aACNpyF,GAA8B4mC,EAAAA,EAAAA,qBAAoB5yJ,OAAO52O,EAAW,KAAK,EAAOgW,EAAM89V,QAAQ3yT,MAAK,SAAAy5G,GACtG,OAAOA,EAAIlvI,MAAMzjB,KAAI,SAAAsnE,GAAI,MAAK,CAC1BtrE,IAAKsrE,EAAKt2C,GACVsD,KAAI6mU,EAAAA,EAAA,GAAO7zR,GAAI,IAAEjtD,KAAMoyW,EAAAA,GAAaigD,UACpC/nZ,KAAM2iD,EAAKpmE,KACd,GACL,IACO6M,EAAMgoqB,mBACNp7U,GAAuCinC,EAAAA,EAAAA,8BAA6BjzJ,EAAO,CAAEwsM,kBAAmB,CAACpta,EAAMgoqB,qBAAuB,MAAM78nB,MAAK,SAAA5kB,GAAQ,IAAA0hpB,EACpJ,OAAO1hpB,SAAW,QAAP0hpB,EAAJ1hpB,EAAM7Q,aAAK,IAAAuypB,OAAA,EAAXA,EAAah2qB,KAAI,SAAA6tb,GAAM,MAAK,CAC/B7xb,IAAK6xb,EAAO78Z,GACZrM,KAAMkpa,EAAO3sb,KACbozB,KAAI6mU,EAAAA,EAAA,GAAO0yF,GAAM,IAAExza,KAAMoyW,EAAAA,GAAaigD,UACzC,GACL,IAEO/xE,GAA8B48B,EAAAA,EAAAA,sBAAoBo+S,aAAmB,EAAnBA,EAAqB3kpB,KAAMjjB,EAAM89V,MAAOl9H,EAAO,KAAKz1L,MAAK,SAAAy5G,GAC9G,OAAOA,EAAIlvI,MAAMzjB,KAAI,SAAAsnE,GAAI,MAAK,CAC1BtrE,IAAKsrE,EAAKt2C,GACVsD,KAAI6mU,EAAAA,EAAA,GAAO7zR,GAAI,IAAEjtD,KAAMoyW,EAAAA,GAAaigD,UACpC/nZ,KAAM2iD,EAAKpmE,KACd,GACL,GAER,GAAG,CAAC6M,EAAM89V,MAAO99V,EAAMgoqB,mBAAoBhoqB,EAAM+kb,kBAAmB/kb,EAAMg/a,eAE1E,OACIv7B,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACsgR,EAAAA,EAAUpjQ,EAAA,GAAK3ga,EAAK,CAAEktO,QAASA,EAAS01b,YAAa5iqB,EAAM4iqB,aAAeC,EAAAA,EAAclkQ,WAGrG,4TCnEA,QAAM/gB,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,MAAA,uBAAAA,6EAMbm3C,EAA+B,SAAAz0b,GAExC,IAAMktO,GAAUs2K,EAAAA,EAAAA,cAAY,SAACxkS,GACrB,OAAOh0E,QAAQC,QAAQjrC,EAAM00b,WAAWhnc,QAAO,SAAA6rE,GAAI,OAAIA,EAAK3iD,KAAKxf,OAAO4jF,oBAAoBm9C,SAASnZ,EAAO5nH,OAAO4jF,oBAAoB,IAC/I,GAAG,CAACh7E,EAAM00b,aAEV,OACIjxC,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACsgR,EAAAA,EAAUpjQ,EAAA,GAAK3ga,EAAK,CAAEktO,QAASA,KAG5C,inBCtBAwlH,EAAA,kBAAA1jW,CAAA,MAAAk3G,EAAAl3G,EAAA,GAAAi3G,EAAAv0G,OAAAzE,UAAA64G,EAAAG,EAAA90G,eAAA40G,EAAAr0G,OAAA8X,gBAAA,SAAA08F,EAAAl3G,EAAAi3G,GAAAC,EAAAl3G,GAAAi3G,EAAAjxG,KAAA,EAAAsD,EAAA,mBAAAqzH,OAAAA,OAAA,GAAA38C,EAAA12E,EAAAszH,UAAA,aAAAtmB,EAAAhtG,EAAAq6V,eAAA,kBAAAxsP,EAAA7tG,EAAAkvJ,aAAA,yBAAAorM,EAAA1sP,EAAAl3G,EAAAi3G,GAAA,OAAAv0G,OAAA8X,eAAA08F,EAAAl3G,EAAA,CAAAgG,MAAAixG,EAAAv8F,YAAA,EAAAC,cAAA,EAAAmiH,UAAA,IAAA5lB,EAAAl3G,EAAA,KAAA4jW,EAAA,aAAA1sP,GAAA0sP,EAAA,SAAA1sP,EAAAl3G,EAAAi3G,GAAA,OAAAC,EAAAl3G,GAAAi3G,CAAA,WAAAutG,EAAAttG,EAAAl3G,EAAAi3G,EAAAH,GAAA,IAAAxtG,EAAAtJ,GAAAA,EAAA/B,qBAAA4lW,EAAA7jW,EAAA6jW,EAAA7jR,EAAAt9E,OAAA4mH,OAAAhgH,EAAArL,WAAAq4G,EAAA,IAAAwtP,EAAAhtP,GAAA,WAAAC,EAAA/2B,EAAA,WAAAh6E,MAAA+9V,EAAA7sP,EAAAD,EAAAX,KAAAt2B,CAAA,UAAAgkR,EAAA9sP,EAAAl3G,EAAAi3G,GAAA,WAAA35F,KAAA,SAAAzZ,IAAAqzG,EAAAjmG,KAAAjR,EAAAi3G,GAAA,OAAAC,GAAA,OAAA55F,KAAA,QAAAzZ,IAAAqzG,EAAA,EAAAl3G,EAAAwkN,KAAAA,EAAA,IAAA9tG,EAAA,iBAAAG,EAAA,iBAAAL,EAAA,YAAA5tG,EAAA,YAAA2sC,EAAA,YAAAsuT,IAAA,UAAAI,IAAA,UAAAC,IAAA,KAAAz6V,EAAA,GAAAm6V,EAAAn6V,EAAAu2E,GAAA,8BAAAu2B,EAAA7zG,OAAAq+U,eAAA54U,EAAAouG,GAAAA,EAAAA,EAAAtiB,EAAA,MAAA9rF,GAAAA,IAAA8uG,GAAAH,EAAA7lG,KAAA9I,EAAA63E,KAAAv2E,EAAAtB,GAAA,IAAAsuG,EAAAytP,EAAAjmW,UAAA4lW,EAAA5lW,UAAAyE,OAAA4mH,OAAA7/G,GAAA,SAAA06V,EAAAjtP,GAAA,0BAAA/2G,SAAA,SAAAH,GAAA4jW,EAAA1sP,EAAAl3G,GAAA,SAAAk3G,GAAA,YAAAktP,QAAApkW,EAAAk3G,EAAA,gBAAAmtP,EAAAntP,EAAAl3G,GAAA,SAAAs0J,EAAAr9C,EAAAF,EAAAztG,EAAA02E,GAAA,IAAAs2B,EAAA0tP,EAAA9sP,EAAAD,GAAAC,EAAAH,GAAA,aAAAT,EAAAh5F,KAAA,KAAA65F,EAAAb,EAAAzyG,IAAA6yG,EAAAS,EAAAnxG,MAAA,OAAA0wG,GAAA,UAAAgmB,EAAAhmB,IAAAI,EAAA7lG,KAAAylG,EAAA,WAAA12G,EAAAi8C,QAAAy6D,EAAA4tP,SAAAnoT,MAAA,SAAA+6D,GAAAo9C,EAAA,OAAAp9C,EAAA5tG,EAAA02E,EAAA,aAAAk3B,GAAAo9C,EAAA,QAAAp9C,EAAA5tG,EAAA02E,EAAA,IAAAhgF,EAAAi8C,QAAAy6D,GAAAv6D,MAAA,SAAA+6D,GAAAC,EAAAnxG,MAAAkxG,EAAA5tG,EAAA6tG,EAAA,aAAAD,GAAA,OAAAo9C,EAAA,QAAAp9C,EAAA5tG,EAAA02E,EAAA,IAAAA,EAAAs2B,EAAAzyG,IAAA,KAAAozG,EAAAF,EAAA,gBAAA/wG,MAAA,SAAAkxG,EAAAJ,GAAA,SAAAytP,IAAA,WAAAvkW,GAAA,SAAAA,EAAAi3G,GAAAq9C,EAAAp9C,EAAAJ,EAAA92G,EAAAi3G,EAAA,WAAAA,EAAAA,EAAAA,EAAA96D,KAAAooT,EAAAA,GAAAA,GAAA,aAAAR,EAAA/jW,EAAAi3G,EAAAH,GAAA,IAAAC,EAAAL,EAAA,gBAAAptG,EAAA02E,GAAA,GAAA+2B,IAAAP,EAAA,UAAA7gF,MAAA,mCAAAohF,IAAAnuG,EAAA,cAAAU,EAAA,MAAA02E,EAAA,OAAAh6E,MAAAkxG,EAAAmmB,MAAA,OAAAvmB,EAAAqpC,OAAA72I,EAAAwtG,EAAAjzG,IAAAm8E,IAAA,KAAAs2B,EAAAQ,EAAA0tP,SAAA,GAAAluP,EAAA,KAAAa,EAAAstP,EAAAnuP,EAAAQ,GAAA,GAAAK,EAAA,IAAAA,IAAA5hE,EAAA,gBAAA4hE,CAAA,cAAAL,EAAAqpC,OAAArpC,EAAA4tP,KAAA5tP,EAAA6tP,MAAA7tP,EAAAjzG,SAAA,aAAAizG,EAAAqpC,OAAA,IAAAppC,IAAAL,EAAA,MAAAK,EAAAnuG,EAAAkuG,EAAAjzG,IAAAizG,EAAA8tP,kBAAA9tP,EAAAjzG,IAAA,gBAAAizG,EAAAqpC,QAAArpC,EAAA+tP,OAAA,SAAA/tP,EAAAjzG,KAAAkzG,EAAAP,EAAA,IAAA/sG,EAAAu6V,EAAAhkW,EAAAi3G,EAAAH,GAAA,cAAArtG,EAAA6T,KAAA,IAAAy5F,EAAAD,EAAAumB,KAAAz0H,EAAAiuG,EAAAptG,EAAA5F,MAAA0xC,EAAA,gBAAAvvC,MAAAyD,EAAA5F,IAAAw5H,KAAAvmB,EAAAumB,KAAA,WAAA5zH,EAAA6T,OAAAy5F,EAAAnuG,EAAAkuG,EAAAqpC,OAAA,QAAArpC,EAAAjzG,IAAA4F,EAAA5F,IAAA,YAAA4gW,EAAAzkW,EAAAi3G,GAAA,IAAAH,EAAAG,EAAAkpC,OAAAppC,EAAA/2G,EAAA48H,SAAA9lB,GAAA,GAAAC,IAAAG,EAAA,OAAAD,EAAAutP,SAAA,eAAA1tP,GAAA92G,EAAA48H,SAAA,SAAA3lB,EAAAkpC,OAAA,SAAAlpC,EAAApzG,IAAAqzG,EAAAutP,EAAAzkW,EAAAi3G,GAAA,UAAAA,EAAAkpC,SAAA,WAAArpC,IAAAG,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAA,IAAA25H,UAAA,oCAAA1mB,EAAA,aAAAvhE,EAAA,IAAAjsC,EAAA06V,EAAAjtP,EAAA/2G,EAAA48H,SAAA3lB,EAAApzG,KAAA,aAAAyF,EAAAgU,KAAA,OAAA25F,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAAyF,EAAAzF,IAAAozG,EAAAutP,SAAA,KAAAjvT,EAAA,IAAAyqC,EAAA12E,EAAAzF,IAAA,OAAAm8E,EAAAA,EAAAq9C,MAAApmB,EAAAj3G,EAAA8kW,YAAA9kR,EAAAh6E,MAAAixG,EAAAmmB,KAAAp9H,EAAA+kW,QAAA,WAAA9tP,EAAAkpC,SAAAlpC,EAAAkpC,OAAA,OAAAlpC,EAAApzG,IAAAqzG,GAAAD,EAAAutP,SAAA,KAAAjvT,GAAAyqC,GAAAi3B,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAA,IAAA25H,UAAA,oCAAAvmB,EAAAutP,SAAA,KAAAjvT,EAAA,UAAAyvT,EAAA9tP,GAAA,IAAAl3G,EAAA,CAAAilW,OAAA/tP,EAAA,SAAAA,IAAAl3G,EAAAklW,SAAAhuP,EAAA,SAAAA,IAAAl3G,EAAAmlW,WAAAjuP,EAAA,GAAAl3G,EAAAolW,SAAAluP,EAAA,SAAAmuP,WAAA5mW,KAAAuB,EAAA,UAAAslW,EAAApuP,GAAA,IAAAl3G,EAAAk3G,EAAAquP,YAAA,GAAAvlW,EAAAsd,KAAA,gBAAAtd,EAAA6D,IAAAqzG,EAAAquP,WAAAvlW,CAAA,UAAA8jW,EAAA5sP,GAAA,KAAAmuP,WAAA,EAAAJ,OAAA,SAAA/tP,EAAA/2G,QAAA6kW,EAAA,WAAAzkW,OAAA,YAAA0zF,EAAAj0F,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAi3G,EAAAj3G,EAAAggF,GAAA,GAAAi3B,EAAA,OAAAA,EAAAhmG,KAAAjR,GAAA,sBAAAA,EAAAo9H,KAAA,OAAAp9H,EAAA,IAAAghF,MAAAhhF,EAAAD,QAAA,KAAAg3G,GAAA,EAAAztG,EAAA,SAAA8zH,IAAA,OAAArmB,EAAA/2G,EAAAD,QAAA,GAAA+2G,EAAA7lG,KAAAjR,EAAA+2G,GAAA,OAAAqmB,EAAAp3H,MAAAhG,EAAA+2G,GAAAqmB,EAAAC,MAAA,EAAAD,EAAA,OAAAA,EAAAp3H,MAAAkxG,EAAAkmB,EAAAC,MAAA,EAAAD,CAAA,SAAA9zH,EAAA8zH,KAAA9zH,CAAA,YAAAk0H,UAAAd,EAAA18H,GAAA,2BAAAikW,EAAAhmW,UAAAimW,EAAAntP,EAAAN,EAAA,eAAAzwG,MAAAk+V,EAAAvpV,cAAA,IAAAo8F,EAAAmtP,EAAA,eAAAl+V,MAAAi+V,EAAAtpV,cAAA,IAAAspV,EAAAnlW,YAAA8kW,EAAAM,EAAA/sP,EAAA,qBAAAn3G,EAAAwlW,oBAAA,SAAAtuP,GAAA,IAAAl3G,EAAA,mBAAAk3G,GAAAA,EAAA5F,YAAA,QAAAtxG,IAAAA,IAAAikW,GAAA,uBAAAjkW,EAAAlB,aAAAkB,EAAAmE,MAAA,EAAAnE,EAAAu+H,KAAA,SAAArnB,GAAA,OAAAx0G,OAAA6kK,eAAA7kK,OAAA6kK,eAAArwD,EAAAgtP,IAAAhtP,EAAAkqC,UAAA8iN,EAAAN,EAAA1sP,EAAAC,EAAA,sBAAAD,EAAAj5G,UAAAyE,OAAA4mH,OAAA7S,GAAAS,CAAA,EAAAl3G,EAAAylW,MAAA,SAAAvuP,GAAA,OAAAotP,QAAAptP,EAAA,EAAAitP,EAAAE,EAAApmW,WAAA2lW,EAAAS,EAAApmW,UAAAq4G,GAAA,0BAAAt2G,EAAAqkW,cAAAA,EAAArkW,EAAAk4C,MAAA,SAAAg/D,EAAAD,EAAAH,EAAAC,EAAAztG,QAAA,IAAAA,IAAAA,EAAA0yC,SAAA,IAAAgkC,EAAA,IAAAqkR,EAAA7/I,EAAAttG,EAAAD,EAAAH,EAAAC,GAAAztG,GAAA,OAAAtJ,EAAAwlW,oBAAAvuP,GAAAj3B,EAAAA,EAAAo9C,OAAAjhF,MAAA,SAAA+6D,GAAA,OAAAA,EAAAmmB,KAAAnmB,EAAAlxG,MAAAg6E,EAAAo9C,MAAA,KAAA+mO,EAAA1tP,GAAAmtP,EAAAntP,EAAAU,EAAA,aAAAysP,EAAAntP,EAAAz2B,GAAA,0BAAA4jR,EAAAntP,EAAA,qDAAAz2G,EAAA2C,KAAA,SAAAu0G,GAAA,IAAAl3G,EAAA0C,OAAAw0G,GAAAD,EAAA,WAAAH,KAAA92G,EAAAi3G,EAAAx4G,KAAAq4G,GAAA,OAAAG,EAAA5uG,UAAA,SAAA+0H,IAAA,KAAAnmB,EAAAl3G,QAAA,KAAAm3G,EAAAD,EAAAnkG,MAAA,GAAAokG,KAAAl3G,EAAA,OAAAo9H,EAAAp3H,MAAAkxG,EAAAkmB,EAAAC,MAAA,EAAAD,CAAA,QAAAA,EAAAC,MAAA,EAAAD,CAAA,GAAAp9H,EAAAi0F,OAAAA,EAAA6vQ,EAAA7lW,UAAA,CAAAqzG,YAAAwyP,EAAAvjW,MAAA,SAAAP,GAAA,QAAAs6U,KAAA,OAAAl9M,KAAA,OAAAsnO,KAAA,KAAAC,MAAAztP,EAAA,KAAAmmB,MAAA,OAAAmnO,SAAA,UAAArkN,OAAA,YAAAt8I,IAAAqzG,EAAA,KAAAmuP,WAAAllW,QAAAmlW,IAAAtlW,EAAA,QAAAi3G,KAAA,WAAAA,EAAAjtG,OAAA,IAAA8sG,EAAA7lG,KAAA,KAAAgmG,KAAAj2B,OAAAi2B,EAAAvuG,MAAA,WAAAuuG,GAAAC,EAAA,EAAAozC,KAAA,gBAAAjtB,MAAA,MAAAnmB,EAAA,KAAAmuP,WAAA,GAAAE,WAAA,aAAAruP,EAAA55F,KAAA,MAAA45F,EAAArzG,IAAA,YAAA6hW,IAAA,EAAAd,kBAAA,SAAA5kW,GAAA,QAAAq9H,KAAA,MAAAr9H,EAAA,IAAAi3G,EAAA,cAAA21F,EAAA91F,EAAAC,GAAA,OAAA/2B,EAAA1iE,KAAA,QAAA0iE,EAAAn8E,IAAA7D,EAAAi3G,EAAAmmB,KAAAtmB,EAAAC,IAAAE,EAAAkpC,OAAA,OAAAlpC,EAAApzG,IAAAqzG,KAAAH,CAAA,SAAAA,EAAA,KAAAsuP,WAAAtlW,OAAA,EAAAg3G,GAAA,IAAAA,EAAA,KAAAztG,EAAA,KAAA+7V,WAAAtuP,GAAA/2B,EAAA12E,EAAAi8V,WAAA,YAAAj8V,EAAA27V,OAAA,OAAAr4J,EAAA,UAAAtjM,EAAA27V,QAAA,KAAA3qB,KAAA,KAAAhkO,EAAAQ,EAAA7lG,KAAA3H,EAAA,YAAA6tG,EAAAL,EAAA7lG,KAAA3H,EAAA,iBAAAgtG,GAAAa,EAAA,SAAAmjO,KAAAhxU,EAAA47V,SAAA,OAAAt4J,EAAAtjM,EAAA47V,UAAA,WAAA5qB,KAAAhxU,EAAA67V,WAAA,OAAAv4J,EAAAtjM,EAAA67V,WAAA,SAAA7uP,GAAA,QAAAgkO,KAAAhxU,EAAA47V,SAAA,OAAAt4J,EAAAtjM,EAAA47V,UAAA,YAAA/tP,EAAA,UAAAxhF,MAAA,kDAAA2kT,KAAAhxU,EAAA67V,WAAA,OAAAv4J,EAAAtjM,EAAA67V,WAAA,KAAAN,OAAA,SAAA3tP,EAAAl3G,GAAA,QAAAi3G,EAAA,KAAAouP,WAAAtlW,OAAA,EAAAk3G,GAAA,IAAAA,EAAA,KAAAF,EAAA,KAAAsuP,WAAApuP,GAAA,GAAAF,EAAAkuP,QAAA,KAAA3qB,MAAAxjO,EAAA7lG,KAAA8lG,EAAA,oBAAAujO,KAAAvjO,EAAAouP,WAAA,KAAA77V,EAAAytG,EAAA,OAAAztG,IAAA,UAAA4tG,GAAA,aAAAA,IAAA5tG,EAAA27V,QAAAjlW,GAAAA,GAAAsJ,EAAA67V,aAAA77V,EAAA,UAAA02E,EAAA12E,EAAAA,EAAAi8V,WAAA,UAAAvlR,EAAA1iE,KAAA45F,EAAAl3B,EAAAn8E,IAAA7D,EAAAsJ,GAAA,KAAA62I,OAAA,YAAA/iB,KAAA9zH,EAAA67V,WAAA5vT,GAAA,KAAAiwB,SAAAwa,EAAA,EAAAxa,SAAA,SAAA0xC,EAAAl3G,GAAA,aAAAk3G,EAAA55F,KAAA,MAAA45F,EAAArzG,IAAA,gBAAAqzG,EAAA55F,MAAA,aAAA45F,EAAA55F,KAAA,KAAA8/G,KAAAlmB,EAAArzG,IAAA,WAAAqzG,EAAA55F,MAAA,KAAAooV,KAAA,KAAA7hW,IAAAqzG,EAAArzG,IAAA,KAAAs8I,OAAA,cAAA/iB,KAAA,kBAAAlmB,EAAA55F,MAAAtd,IAAA,KAAAo9H,KAAAp9H,GAAAu1C,CAAA,EAAAowT,OAAA,SAAAzuP,GAAA,QAAAl3G,EAAA,KAAAqlW,WAAAtlW,OAAA,EAAAC,GAAA,IAAAA,EAAA,KAAAi3G,EAAA,KAAAouP,WAAArlW,GAAA,GAAAi3G,EAAAkuP,aAAAjuP,EAAA,YAAA1xC,SAAAyxC,EAAAsuP,WAAAtuP,EAAAmuP,UAAAE,EAAAruP,GAAA1hE,CAAA,kBAAA2hE,GAAA,QAAAl3G,EAAA,KAAAqlW,WAAAtlW,OAAA,EAAAC,GAAA,IAAAA,EAAA,KAAAi3G,EAAA,KAAAouP,WAAArlW,GAAA,GAAAi3G,EAAAguP,SAAA/tP,EAAA,KAAAJ,EAAAG,EAAAsuP,WAAA,aAAAzuP,EAAAx5F,KAAA,KAAAy5F,EAAAD,EAAAjzG,IAAAyhW,EAAAruP,EAAA,QAAAF,CAAA,YAAAphF,MAAA,0BAAAiwU,cAAA,SAAA5lW,EAAAi3G,EAAAH,GAAA,YAAA0tP,SAAA,CAAA5nO,SAAA3oC,EAAAj0F,GAAA8kW,WAAA7tP,EAAA8tP,QAAAjuP,GAAA,cAAAqpC,SAAA,KAAAt8I,IAAAqzG,GAAA3hE,CAAA,GAAAv1C,CAAA,UAAA09H,EAAAV,GAAA,gBAAAA,GAAA,GAAAx6H,MAAAC,QAAAu6H,GAAA,OAAAW,EAAAX,EAAA,CAAAY,CAAAZ,IAAA,SAAAa,GAAA,uBAAAlB,QAAA,MAAAkB,EAAAlB,OAAAC,WAAA,MAAAiB,EAAA,qBAAAr7H,MAAAiiG,KAAAo5B,EAAA,CAAAC,CAAAd,IAAA,SAAAjmB,EAAAinB,GAAA,GAAAjnB,EAAA,qBAAAA,EAAA,OAAA4mB,EAAA5mB,EAAAinB,GAAA,IAAAlnB,EAAAp0G,OAAAzE,UAAA+yB,SAAA/f,KAAA8lG,GAAAruG,MAAA,uBAAAouG,GAAAC,EAAAzF,cAAAwF,EAAAC,EAAAzF,YAAAntG,MAAA,QAAA2yG,GAAA,QAAAA,EAAAt0G,MAAAiiG,KAAAsS,GAAA,cAAAD,GAAA,2CAAAp7G,KAAAo7G,GAAA6mB,EAAA5mB,EAAAinB,QAAA,GAAAT,CAAAP,IAAA,qBAAAQ,UAAA,wIAAAO,EAAA,UAAAJ,EAAAX,EAAAnsB,IAAA,MAAAA,GAAAA,EAAAmsB,EAAAj9H,UAAA8wG,EAAAmsB,EAAAj9H,QAAA,QAAAuJ,EAAA,EAAA20H,EAAA,IAAAz7H,MAAAquG,GAAAvnG,EAAAunG,EAAAvnG,IAAA20H,EAAA30H,GAAA0zH,EAAA1zH,GAAA,OAAA20H,CAAA,UAAAlC,EAAA/7H,EAAAi3G,GAAA,IAAAC,EAAAx0G,OAAAC,KAAA3C,GAAA,GAAA0C,OAAAw5H,sBAAA,KAAAnlB,EAAAr0G,OAAAw5H,sBAAAl8H,GAAAi3G,IAAAF,EAAAA,EAAAr4G,QAAA,SAAAu4G,GAAA,OAAAv0G,OAAA25H,yBAAAr8H,EAAAi3G,GAAAv8F,UAAA,KAAAw8F,EAAAz4G,KAAAuE,MAAAk0G,EAAAH,EAAA,QAAAG,CAAA,UAAAknP,EAAAp+V,GAAA,QAAAi3G,EAAA,EAAAA,EAAAr1G,UAAA7B,OAAAk3G,IAAA,KAAAC,EAAA,MAAAt1G,UAAAq1G,GAAAr1G,UAAAq1G,GAAA,GAAAA,EAAA,EAAA8kB,EAAAr5H,OAAAw0G,IAAA,GAAA/2G,SAAA,SAAA82G,GAAA,IAAA3G,EAAArxG,EAAA+G,EAAAsqG,EAAAtwG,EAAAf,EAAAg4G,EAAAjxG,EAAAkxG,EAAAD,IAAAh4G,EAAA,SAAA4E,GAAA,IAAA5E,EAAA,SAAAghD,EAAAkqU,GAAA,cAAAztP,EAAAz8E,IAAA,OAAAA,EAAA,OAAAA,EAAA,IAAAmqU,EAAAnqU,EAAA08E,OAAA0tP,aAAA,QAAArvX,IAAAovX,EAAA,KAAAx0N,EAAAw0N,EAAAn5W,KAAAgvC,EAAAkqU,UAAA,cAAAztP,EAAAk5B,GAAA,OAAAA,EAAA,UAAAp4B,UAAA,uDAAA12H,OAAAm5C,EAAA,CAAAqqU,CAAAzmX,GAAA,iBAAA64H,EAAAz9H,GAAAA,EAAA6H,OAAA7H,EAAA,CAAAsrX,CAAAtrX,MAAAqxG,EAAA5tG,OAAA8X,eAAA81F,EAAArxG,EAAA,CAAA+G,MAAAA,EAAA0U,YAAA,EAAAC,cAAA,EAAAmiH,UAAA,IAAAxsB,EAAArxG,GAAA+G,CAAA,IAAAtD,OAAA85H,0BAAA95H,OAAA+5H,iBAAAz8H,EAAA0C,OAAA85H,0BAAAtlB,IAAA6kB,EAAAr5H,OAAAw0G,IAAA/2G,SAAA,SAAA82G,GAAAv0G,OAAA8X,eAAAxa,EAAAi3G,EAAAv0G,OAAA25H,yBAAAnlB,EAAAD,GAAA,WAAAj3G,CAAA,UAAA6lW,EAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA/mW,EAAA4E,GAAA,QAAAkhJ,EAAA+gN,EAAA7mW,GAAA4E,GAAAmC,EAAA++I,EAAA/+I,KAAA,OAAAi+D,GAAA,YAAAqnE,EAAArnE,EAAA,CAAA8gF,EAAA1nB,KAAAphF,EAAAj2C,GAAAg2C,QAAAC,QAAAj2C,GAAAm2C,KAAA4pT,EAAAC,EAAA,CAqBA,IArBA+5E,EAAAC,EAqBMpxB,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IArB1ByxB,EAqB0B,KArB1BC,IAAAA,EAAAD,EAAAr3a,MAAA,IAqB0B4lZ,EArB1B5rZ,OAAAu9a,OAAAv9a,OAAA+5H,iBAAAsjT,EAAA,CAAAC,IAAA,CAAAh6a,MAAAtD,OAAAu9a,OAAAD,SAuBa8V,EAA0C,SAAA9kb,GACnD,IAAM4sV,GAAWs2D,EAAAA,EAAAA,MACXh2K,GAAUs2K,EAAAA,EAAAA,aAAW,eAzB/BlzV,EAyB+BsgE,GAzB/BtgE,EAyB+BoiS,IAAAnlO,MAAC,SAAA4nO,EAAOv0H,GAAa,IAAAsnc,EAAAC,EAAAnhqB,EAAA,OAAA0rV,IAAAl/I,MAAA,SAAA6hJ,GAAA,cAAAA,EAAA/rB,KAAA+rB,EAAAjpO,MAAA,OAQ3C,OANG87iB,EAAW,IAAI12qB,MAEf22qB,EAAc,IAAI32qB,MAChBwV,EAAO,CACTg4G,OAAQ4hH,EACR4vH,iBAAiB,GACpB6E,EAAAjpO,KAAA,EACmBwgO,GAAgC89C,EAAAA,EAAAA,uBAAsB1jY,EAAM,EAAG,MAAMmkC,MAAK,SAAAy5G,GAC1F,OAAOA,EAAIlvI,MAAMzjB,KAAI,SAAAwub,GAAM,MAAK,CAC5Bxyb,IAAKwyb,EAAOx9Z,GACZsD,KAAI6mU,EAAAA,EAAA,GAAOqzF,GAAM,IAAEn0a,KAAMoyW,EAAAA,GAAaw1D,WACtCt9Z,KAAM,GAAFhjB,OAAK6sb,EAAO/vF,UAAS,KAAA98V,OAAI6sb,EAAO9vF,UACvC,GACL,IAAE,OANS,GAAXw3U,EAAW9yU,EAAA3B,MAOP1zV,EAAM+kb,kBAAmB,CAAF1vF,EAAAjpO,KAAA,eAAAipO,EAAAjpO,KAAA,EACjBwgO,GAA+BuB,EAAAA,EAAAA,sBAAqBvtH,EAAO,IAAKknc,EAAAA,EAAiBC,WAAW58nB,MAAK,SAAA5kB,GACnG2hpB,EAAW,GAAHt0qB,OAAA84H,EAAOw7iB,GAAQx7iB,GAAMnmG,GAAQ,IAAIt0B,KAAI,SAAA6tb,GAAM,MAAK,CACpD7xb,IAAK6xb,EAAO78Z,GACZrM,KAAMkpa,EAAO3sb,KACbozB,KAAI6mU,EAAAA,EAAA,GAAO0yF,GAAM,IAAExza,KAAMoyW,EAAAA,GAAaigD,UACzC,KACL,IAAE,WAEF3+Z,EAAMg/a,aAAc,CAAF3pF,EAAAjpO,KAAA,gBAAAipO,EAAAjpO,KAAA,GACZwgO,GAA8B4mC,EAAAA,EAAAA,qBAAoB5yJ,OAAO52O,EAAW,MAAMmhD,MAAK,SAAAy5G,GACjFsjhB,EAAW,GAAHt0qB,OAAA84H,EAAOw7iB,GAAQx7iB,EAAKk4B,EAAIlvI,MAAMzjB,KAAI,SAAAsnE,GAAI,MAAK,CAC/CtrE,IAAKsrE,EAAKt2C,GACVsD,KAAI6mU,EAAAA,EAAA,GAAO7zR,GAAI,IAAEjtD,KAAMoyW,EAAAA,GAAaigD,UACpC/nZ,KAAM2iD,EAAKpmE,KACd,KACL,IAAE,eAAAkiW,EAAAxB,OAAA,YAAAjgW,OAAA84H,EAEKw7iB,GAAQx7iB,EAAKy7iB,KAAW,yBAAA9yU,EAAA/7M,OAAA,GAAA67M,EAAA,IA3D3C,eAAA3jN,EAAA,KAAAtjJ,EAAA0C,UAAA,WAAAo6C,SAAA,SAAAC,EAAAqvF,GAAA,IAAAw6N,EAAAxkS,EAAAt+D,MAAAw/I,EAAAtjJ,GAAA,SAAA6mW,EAAA//V,GAAA6/V,EAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA,OAAAhgW,EAAA,UAAAggW,EAAAt0O,GAAAm0O,EAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA,QAAAt0O,EAAA,CAAAq0O,OAAA/qW,EAAA,MA4DK,gBAAAurW,GAAA,OAAA3kO,EAAA5+H,MAAA,KAAApB,UAAA,EAnC0B,GAmCxB,CAACoP,EAAM89V,QAEV,OACI2lD,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACsgR,EAAAA,EAAUpjQ,EAAA,GAAK3ga,EAAK,CAAE2lqB,YAAU,EAACz4b,QAASA,EAAS01b,YAAa5iqB,EAAM4iqB,aAAeC,EAAAA,EAAc9wQ,OAGhH,khDC1DA,QAAMnU,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,MAAA,uBAAAA,6EAMbkjC,EAA0B,SAAAxgb,GAAS,IAAAwzc,EACtC5mH,GAAWs2D,EAAAA,EAAAA,MAEXh2K,GAAUs2K,EAAAA,EAAAA,cAAY,SAACxkS,GACzB,IAAMh4G,EAAO,CACTg4G,OAAAA,EACAwxO,iBAAiB,GAErB,OAAO5D,GAAgC89C,EAAAA,EAAAA,uBAAsB1jY,EAAM,EAAG,MAAMmkC,MAAK,SAAAy5G,GAC7E,OAAOA,EAAIlvI,MAAMhoB,QAAO,SAAC6rE,GAAI,IAAA6umB,EAAA,QAAkB,QAAbA,EAACpoqB,EAAMtS,cAAM,IAAA06qB,GAAZA,EAAcjwiB,SAAS5+D,EAAKt2C,IAAG,IAAEhxB,KAAI,SAAAwub,GAAM,MAAK,CAC/Exyb,IAAKwyb,EAAOx9Z,GACZsD,KAAI6mU,EAAAA,EAAA,GAAMqzF,GAAM,IAAEn0a,KAAMoyW,EAAAA,GAAaw1D,WACrCt9Z,KAAM,GAAFhjB,OAAK6sb,EAAO/vF,UAAS,KAAA98V,OAAI6sb,EAAO9vF,UACvC,GACL,GACJ,GAAG,IAEH,OACI8yD,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACsgR,EAAAA,EAAUpjQ,EAAA,GAAK3ga,EAAK,CAAEhL,MAAkB,QAAbw+c,EAAExzc,EAAMhL,aAAK,IAAAw+c,OAAA,EAAXA,EAAavhd,KAAI,SAAAsnE,GAAI,OAAA6zR,EAAAA,EAAA,GAAS7zR,GAAI,IAAEhzC,KAAI6mU,EAAAA,EAAA,GAAM7zR,EAAKhzC,MAAI,IAAEja,KAAM,cAAW,IAAK4gO,QAASA,EAAS01b,YAAa5iqB,EAAM4iqB,aAAeC,EAAAA,EAAc1wP,UAG3L,y2CClBA,IAAMv0B,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,sEAGpB,SAAAv9Y,GAAK,OAAIA,EAAMkG,QAAS+O,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,qCAAA3pZ,OACboM,EAAMkG,MAAK,MAC1B,IAGCmiqB,EAAe9qpB,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,wWAKbW,EAAAA,EAAW5jY,MACL4jY,EAAAA,EAAWqC,WAK7B,SAAAvgZ,GAAK,OAAKA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,iNAELW,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAGXD,EAAAA,EAAWC,WAEtC,IACC,SAAAn+Y,GAAK,OAAIA,EAAM4B,WAAYqT,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,4FACdW,EAAAA,EAAWuG,OAChBvG,EAAAA,EAAWt8Y,SACAs8Y,EAAAA,EAAWqC,UAClC,IAQC+nR,EAAQ/qpB,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,iLAQd,SAAAv9Y,GAAK,OACHA,EAAM4B,WACNqT,EAAAA,EAAAA,IAAGupY,IAAAA,EAAAjB,EAAA,uDAEF,IAIPiiB,EAAcjiZ,EAAAA,GAAO8qJ,IAAGs2O,IAAAA,EAAApB,EAAA,+FAEjBW,EAAAA,EAAWt8Y,SAEPga,EAAAA,EAAS,KAGpB2spB,EAAYhrpB,EAAAA,GAAO8qJ,IAAGw2O,IAAAA,EAAAtB,EAAA,sVAMJW,EAAAA,EAAWC,WACjBD,EAAAA,EAAWC,WAChBD,EAAAA,EAAWttX,SAGlB,SAAA5wB,GAAK,OACHA,EAAM4B,WACNqT,EAAAA,EAAAA,IAAG8pY,IAAAA,EAAAxB,EAAA,4GACqBW,EAAAA,EAAWgE,UACjBhE,EAAAA,EAAWgE,UAChBhE,EAAAA,EAAWt8Y,SACvB,IAyBIm8a,EAAyB,SAAA/9a,GAAS,IAAAwzc,EAAAC,EAAA24M,EAAAC,EAAAC,EAAAC,EAAAC,EACrC5/T,GAAWs2D,EAAAA,EAAAA,MAC+D+I,EAAAlgS,GAA7BmgS,EAAAA,EAAAA,MAA6B,GAAzE2C,EAAU5C,EAAA,GAAEG,EAAYH,EAAA,GAAEI,EAAcJ,EAAA,GACiB9I,EAAAp3R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAAzDolR,EAAYrlR,EAAA,GAAEslR,EAAetlR,EAAA,GACgBmC,EAAAv5R,GAAtBq3R,EAAAA,EAAAA,UAAmB,IAAG,GAA7C9vZ,EAAOgyZ,EAAA,GAAEojR,EAAUpjR,EAAA,GAEpBqjR,GAAkB15pB,EAAAA,EAAAA,QAAO,MACgCw2Y,EAAA15R,GAAnBq3R,EAAAA,EAAAA,UAAiB,GAAE,GAAxDwlR,EAAcnjR,EAAA,GAAEojR,EAAiBpjR,EAAA,IAExCv2Y,EAAAA,EAAAA,YAAU,WACFlP,EAAM+zc,YACNnnH,GAA0B2jC,EAAAA,EAAAA,iBAAgB,GAAIvwX,EAAM+zc,YAAYznc,KAAMtM,EAAM+zc,YAAYr6a,UAAUyR,MAC9F,SAAA1iC,GACIigqB,EACIjgqB,EAAIxW,KAAI,SAAAsnE,GAAI,MAAK,CACbtrE,IAAKsrE,EAAKt2C,GACVrM,KAAM2iD,EAAKpmE,KACXozB,KAAMgzC,EACT,IAET,IAGJmvmB,EAAW1oqB,EAAM1M,QAEzB,GAAG,CAAC0M,EAAM1M,UAEV,IAAMw1qB,GAAiBtlR,EAAAA,EAAAA,cAAY,SAACx0Z,GAChCy5qB,GAAgB,EACpB,GAAG,IAEGM,GAAcvlR,EAAAA,EAAAA,cAChB,SAACx0Z,GACQgR,EAAM4B,UAAawqZ,GAAiBo8Q,GACrCn8Q,GAER,GACA,CAACrsZ,EAAM4B,SAAUwqZ,IAGf48Q,GAAaxlR,EAAAA,EAAAA,cAAY,WAC3B6I,IACAo8Q,GAAgB,EACpB,GAAG,IAEGQ,GAAazlR,EAAAA,EAAAA,cAAY,SAACnwX,GAC5B,GAAKA,EAAL,CAEC,IACqCm2U,EADrCD,imBAAAG,CACmBr2U,EAAUzqB,UAAQ,IAAtC,IAAA2gW,EAAA3xW,MAAA4xW,EAAAD,EAAAzjQ,KAAAumB,MAAwC,KAA7B5hH,EAAK++V,EAAAx0W,MACRyV,EAAMisE,UAAY,GAClBjsE,EAAM0kD,UAAUjoD,IAAI,YAEpBuD,EAAM0kD,UAAUC,OAAO,WAE/B,CAAC,OAAAsxD,GAAA6oP,EAAAv6W,EAAA0xH,EAAA,SAAA6oP,EAAA/jQ,GAAA,CAPD,CAQJ,GAAG,IAgBH,OAdAt2F,EAAAA,EAAAA,YAAU,WACN,IAAIg6pB,EAAsB,IACzBV,GAAgBS,EAAWN,aAAe,EAAfA,EAAiB1nqB,SAC7CpW,OAAOsc,iBAAiB,UAAU,SAAAnY,GAC9Bi6qB,EAAWN,aAAe,EAAfA,EAAiB1nqB,QAChC,IACA,IAAK,IAAI3I,EAAI,EAAGA,GAAIqwqB,SAAwB,QAATQ,EAAfR,EAAiB1nqB,eAAO,IAAAkoqB,GAAU,QAAVA,EAAxBA,EAA0BvgqB,gBAAQ,IAAAugqB,OAAA,EAAlCA,EAAoCp6qB,QAAQuJ,IAAK,KAAA6wqB,EAAAC,EACWC,EAAxEV,SAAwB,QAATS,EAAfT,EAAiB1nqB,eAAO,IAAAmoqB,GAAa,QAAbA,EAAxBA,EAA0BxgqB,SAAStQ,UAAE,IAAA8wqB,GAAW,QAAXA,EAArCA,EAAuCj6mB,iBAAS,IAAAi6mB,GAAhDA,EAAkD74qB,SAAS,cAC3D24qB,SAAAA,EAAqBz7qB,KAAKk7qB,SAAwB,QAATU,EAAfV,EAAiB1nqB,eAAO,IAAAooqB,OAAA,EAAxBA,EAA0BzgqB,SAAStQ,KAEjEuwqB,EAAkBK,aAAmB,EAAnBA,EAAqBn6qB,OAC3C,CACJ,GAAG,CAACiR,SAAY,QAAPwzc,EAALxzc,EAAOhL,aAAK,IAAAw+c,OAAA,EAAZA,EAAczkd,OAAQy5qB,EAAcv+qB,SAAUg/qB,IAG9CxlR,EAAAA,cAAC7F,EAAO,CAAC13Y,MAAOlG,EAAMu1C,cAAe,UAAQ,oBAAoB9sC,IAAKomZ,GACjE7uZ,EAAM4T,OACH6vY,EAAAA,cAACkQ,EAAAA,EAAiB,KACb3zZ,EAAM4T,MACN5T,EAAMutC,UAAYk2W,EAAAA,cAAC0tD,EAAAA,EAAkB,OAG9C1tD,EAAAA,cAAC4kR,EAAY,CAAC5/pB,IAAKkgqB,EAAiB/mqB,SAAU5B,EAAM4B,SAAU8U,QAASqypB,IACvD,QAAXt1N,EAAAzzc,EAAMhL,aAAK,IAAAy+c,OAAA,EAAXA,EAAa1kd,QAAS,EACnB00Z,EAAAA,cAAAA,EAAAA,SAAA,MACgB,QAAX2oQ,EAAApspB,EAAMhL,aAAK,IAAAo3pB,OAAA,EAAXA,EAAar9pB,QAAS,IAAMy5qB,EACzB/kR,EAAAA,cAAAA,EAAAA,SAAA,KACgB,QADhB4oQ,EACKrspB,EAAMhL,aAAK,IAAAq3pB,OAAA,EAAXA,EAAap6pB,KAAI,SAAAsnE,GAAI,OAClBkqV,EAAAA,cAACy6B,EAAAA,GAAI,CACDjwb,IAAKsrE,aAAI,EAAJA,EAAMtrE,IACX2oB,KAAM2iD,EAAK3iD,KACXqM,GAAIs2C,EAAKtrE,IACTyoB,QAAS1W,EAAM4B,cAAW5X,EAAYgW,EAAMg+a,iBAC9C,KAEM,QAAXsuO,EAAAtspB,EAAMhL,aAAK,IAAAs3pB,OAAA,EAAXA,EAAav9pB,QAAS,GAAK65qB,EAAiB,GACzCnlR,EAAAA,cAAC8kR,EAAS,CAAC7xpB,QAASoypB,EAAgBlnqB,SAAU5B,EAAM4B,UAAU,IACxDgnqB,IAKdnlR,EAAAA,cAAAA,EAAAA,SAAA,KACgB,QADhB8oQ,EACKvspB,EAAMhL,aAAK,IAAAu3pB,OAAA,EAAXA,EAAat6pB,KAAI,SAAAsnE,GAAI,OAClBkqV,EAAAA,cAACy6B,EAAAA,GAAI,CACDtna,KAAM2iD,EAAK3iD,KACXqM,GAAIs2C,EAAKtrE,IACTyoB,QAAS1W,EAAM4B,cAAW5X,EAAYgW,EAAMg+a,iBAC9C,MAMlBv6B,EAAAA,cAAC+b,EAAW,KAAEx/Z,EAAM80C,aAAe2uW,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,yBAE5DwgY,EAAAA,cAAC6kR,EAAK,CAAC1mqB,SAAU5B,EAAM4B,WACP,QAAX4qpB,EAAAxspB,EAAMhL,aAAK,IAAAw3pB,OAAA,EAAXA,EAAaz9pB,QAAS,GAAK00Z,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,IAAS3hZ,QAAU1W,EAAM4B,cAA2B5X,EAAhBgW,EAAMi+a,UAC7Fx6B,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM81pB,EAAAA,IAAe5ypB,QAAU1W,EAAM4B,cAAwB5X,EAAbg/qB,MAGxE58Q,GACG3I,EAAAA,cAACqwD,EAAAA,EAAU,CACP7+Y,QAASj1D,EAAMi1D,QACf3hE,QAASA,EACTygd,YAAa/zc,EAAM+zc,YACnB/+c,MAAOgL,EAAMhL,MACb2Y,SAAU3N,EAAM2N,WAKpC,uIC/OYm4pB,EAUAe,sxCAFX,SARWf,GAAAA,EAAgB,YAAhBA,EAAgB,UAAhBA,EAAgB,YAAhBA,EAAgB,cAAhBA,EAAgB,gBAAhBA,EAAgB,gBAAhBA,EAAgB,cAQ3B,CARWA,IAAAA,EAAgB,KAa3B,SAHWe,GAAAA,EAAU,gBAAVA,EAAU,gBAGrB,CAHWA,IAAAA,EAAU,KAKtB,IAAMjpR,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,qUAORW,EAAAA,EAAWmW,UAChBnW,EAAAA,EAAWttX,QAClBkvX,EAAAA,EAAkB,KAElB,SAAAlvR,GAAS,OAAAA,EAANulB,SAAuBlhI,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,yCAE9B,IACC,SAAA1sR,GAAU,OAAAA,EAAP82R,UAAyB1yY,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,yCAEhC,IACC,SAAAr6Q,GAAQ,OAAAA,EAAL28R,QAAsBgnQ,EAAW/mQ,SAAU7qZ,EAAAA,EAAAA,IAAG4oY,IAAAA,EAAAN,EAAA,0CAElD,IACC,SAAA9hD,GAAc,OAAAA,EAAX2pE,cAAkC0gQ,EAAiB5lQ,MAAOjrZ,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,uCAChDW,EAAAA,EAAW6a,SAC5B,IACC,SAAA/8D,GAAc,OAAAA,EAAXopE,cAAkC0gQ,EAAiBxlQ,OAAQrrZ,EAAAA,EAAAA,IAAGgpY,IAAAA,EAAAV,EAAA,4DACjDW,EAAAA,EAAWkG,WAChBlG,EAAAA,EAAWt8Y,SACvB,IACC,SAAAmgX,GAAc,OAAAA,EAAXqjD,cAAkC0gQ,EAAiB3lQ,QAASlrZ,EAAAA,EAAAA,IAAGupY,IAAAA,EAAAjB,EAAA,uCAClDW,EAAAA,EAAW4a,WAC5B,IACC,SAAA7zC,GAAc,OAAAA,EAAXmgD,cAAkC0gQ,EAAiB1lQ,SAAUnrZ,EAAAA,EAAAA,IAAG0pY,IAAAA,EAAApB,EAAA,uCACnDW,EAAAA,EAAWqrR,YAC5B,IACC,SAAAhtU,GAAc,OAAAA,EAAX6oE,cAAkC0gQ,EAAiB7lQ,SAAUhrZ,EAAAA,EAAAA,IAAG4pY,IAAAA,EAAAtB,EAAA,uCACnDW,EAAAA,EAAW2a,YAC5B,IACC,SAAA97D,GAAc,OAAAA,EAAXqoE,cAAkC0gQ,EAAiBC,QAAS9wpB,EAAAA,EAAAA,IAAG8pY,IAAAA,EAAAxB,EAAA,uCAClDW,EAAAA,EAAW5jY,MAC5B,IACC,SAAAgjV,GAAU,OAAAA,EAAPksU,UAAyBv0pB,EAAAA,EAAAA,IAAGgqY,IAAAA,EAAA1B,EAAA,uCAEhC,IAGCvkQ,EAAOz7H,EAAAA,GAAO+wD,KAAI6wU,IAAAA,EAAA5B,EAAA,8CAClBuC,EAAAA,EAAkB,KAElB,SAAA9/Y,GAAK,OAAIA,EAAM0a,WAAYzF,EAAAA,EAAAA,IAAGmqY,IAAAA,EAAA7B,EAAA,wCACfv9Y,EAAM0a,SACtB,IAGC+upB,GAAelspB,EAAAA,GAAO8qJ,IAAGi3O,IAAAA,EAAA/B,EAAA,gCAIzBmsR,GAAsBnspB,EAAAA,GAAO8qJ,IAAGm3O,IAAAA,EAAAjC,EAAA,wGAMhCosR,GAAoBpspB,EAAAA,GAAO8qJ,IAAGo3O,IAAAA,EAAAlC,EAAA,sCAI9Bu+Q,GAAWv+oB,EAAAA,GAAO8qJ,IAAGs3O,IAAAA,EAAApC,EAAA,qJAIdW,EAAAA,EAAWwC,UAKlBkpR,GAAarspB,EAAAA,GAAO8qJ,IAAGw3O,IAAAA,EAAAtC,EAAA,qNAKXW,EAAAA,EAAW5jY,MAIhB4jY,EAAAA,EAAWwC,UAGlBmpR,GAActspB,EAAAA,GAAO8qJ,IAAG23O,IAAAA,EAAAzC,EAAA,mDAEjBW,EAAAA,EAAWwC,UAGlBopR,GAAevspB,EAAAA,GAAO8qJ,IAAG43O,IAAAA,EAAA1C,EAAA,qQAKGW,EAAAA,EAAW5jY,OASvCyvpB,GAASxspB,EAAAA,GAAO8qJ,IAAG63O,IAAAA,EAAA3C,EAAA,2EAMnB03C,GAAW13a,EAAAA,GAAO8qJ,IAAG83O,IAAAA,EAAA5C,EAAA,qLAKTW,EAAAA,EAAW5jY,MAEvBwlY,EAAAA,EAAkB,KAClB,SAAA/hD,GAAiB,OAAAA,EAAdisU,iBAAuC/0pB,EAAAA,EAAAA,IAAGmrY,IAAAA,EAAA7C,EAAA,uCAC7BW,EAAAA,EAAWgE,UAC5B,IAGCizC,GAAY53a,EAAAA,GAAO8qJ,IAAGi4O,IAAAA,EAAA/C,EAAA,8GAItBuC,EAAAA,EAAkB,KAIlBooC,GAAY3qa,EAAAA,GAAO8qJ,IAAGo4O,IAAAA,EAAAlD,EAAA,0KAKVW,EAAAA,EAAWx8V,MACvB,SAAA48S,GAAc,OAAAA,EAAX8mE,cAAkC0gQ,EAAiB5lQ,MAAOjrZ,EAAAA,EAAAA,IAAG0rY,IAAAA,EAAApD,EAAA,uCAChDW,EAAAA,EAAWj9V,IAC5B,IACC,SAAA69S,GAAc,OAAAA,EAAXsmE,cAAkC0gQ,EAAiBxlQ,OAAQrrZ,EAAAA,EAAAA,IAAG2rY,IAAAA,EAAArD,EAAA,uCACjDW,EAAAA,EAAWt8Y,SAC5B,IACC,SAAAy9V,GAAc,OAAAA,EAAX+lE,cAAkC0gQ,EAAiB3lQ,QAASlrZ,EAAAA,EAAAA,IAAG4rY,IAAAA,EAAAtD,EAAA,uCAClDW,EAAAA,EAAWl8V,MAC5B,IACC,SAAA49S,GAAc,OAAAA,EAAXwlE,cAAkC0gQ,EAAiB1lQ,SAAUnrZ,EAAAA,EAAAA,IAAG8rY,IAAAA,EAAAxD,EAAA,uCACnDW,EAAAA,EAAW58V,OAC5B,IACC,SAAA6+S,GAAc,OAAAA,EAAXilE,cAAkC0gQ,EAAiB7lQ,SAAUhrZ,EAAAA,EAAAA,IAAG+rY,IAAAA,EAAAzD,EAAA,uCACnDW,EAAAA,EAAWr9V,OAC5B,IAGCopnB,GAAY1spB,EAAAA,GAAO8qJ,IAAG44O,IAAAA,EAAA1D,EAAA,qEA2Bf2gC,GAAmB,SAAAl+a,GAE5B,IAAM4sV,GAAWs2D,EAAAA,EAAAA,MAC6DC,EAAAp3R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAAvE8mR,EAAmB/mR,EAAA,GAAEgnR,EAAsBhnR,EAAA,GACuBmC,EAAAv5R,GAAvCq3R,EAAAA,EAAAA,eAA6Bp5Z,GAAU,GAAlEkpL,EAASoyO,EAAA,GAAE8kR,EAAY9kR,EAAA,GAExB/zM,EAAe,WACjBvxM,EAAM0W,QAAQ1W,EAAMijB,GACxB,EAEMonpB,GAAoB7mR,EAAAA,EAAAA,cAAY,SAACvgY,GACnC2pU,EAAyB09U,EAAAA,eAA4BrnpB,IAAKkoB,MAAK,SAAA6kG,GAC3Do6hB,EAAap6hB,aAAQ,EAARA,EAAUu6hB,YACvBJ,GAAuB,SAAA1xoB,GAAK,OAAKA,CAAK,GAC1C,GACJ,GAAG,IAEH,OACIgrX,EAAAA,cAAC7F,EAAO,CACJwnB,YAAapla,EAAMola,aAAe0gQ,EAAiB9lQ,KACnDH,MAAO7/Z,EAAM6/Z,OAASgnQ,EAAW9mQ,OACjCpY,UAAW3nZ,EAAM2nZ,WAAa3nZ,EAAM4wV,WAAa5wV,EAAM8+X,YACvD3oP,OAAQn2I,EAAMm2I,OACdqzhB,UAAWxpqB,EAAMhL,OAEfgL,EAAMhL,OAASgL,EAAM4W,MACnB6sY,EAAAA,cAACsmR,GAAM,KACHtmR,EAAAA,cAACwxC,GAAQ,CAAC+0O,eAAgBhqqB,EAAMgqqB,gBAAiBhqqB,EAAM4W,MACvD6sY,EAAAA,cAAC0xC,GAAS,KACN1xC,EAAAA,cAAA,YAAOzjZ,EAAMhL,OACbyuZ,EAAAA,cAACqmR,GAAY,KACR9pqB,EAAMmia,UACH1e,EAAAA,cAAComR,GAAW,KACRpmR,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAMmia,YAGpCnia,EAAM0W,SACH+sY,EAAAA,cAACq4Q,GAAQ,CAACplpB,QAAS66L,GACfkyM,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,UAO9Cr4Z,EAAMm2I,QACHstQ,EAAAA,cAACykC,GAAS,CAAC9iB,YAAapla,EAAMola,aAAe0gQ,EAAiB9lQ,OAEjEhga,EAAM2nZ,SACHlE,EAAAA,cAACmmR,GAAU,KACPnmR,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAM2nZ,YAGjC3nZ,EAAM8+X,aAAe9+X,EAAM8+X,cAAgBpgB,EAAAA,GAAaw1D,UAAYl0a,EAAM8+X,cAAgBpgB,EAAAA,GAAakgD,aAAe5+Z,EAAM8+X,cAAgBpgB,EAAAA,GAAaigD,SAAW3+Z,EAAM8+X,cAAgBpgB,EAAAA,GAAa+uD,OAASzta,EAAM8+X,cAAgBpgB,EAAAA,GAAaC,UAAa3+W,EAAM8+X,eAAiB9+X,EAAMhL,OAC7RyuZ,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAM1E,KACHmoZ,EAAAA,cAAA,KAAGz/X,KAAMhkB,EAAM1E,KAAM3C,OAAO,UACvB8qZ,EAAAA,cAACzqQ,EAAI,CAAC,mBAAct+H,SAAU1a,EAAMwqqB,cAAc/mR,EAAAA,cAAC+Q,EAAAA,EAAgB,CAAC,oBAAex0Z,EAAMwmW,eAAiBi9C,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAE,GAAArvB,OAAKoM,EAAMwmW,eAAc,KAAA5yW,OAAIoM,EAAM4W,QAAa5W,EAAM4W,QAGzL6sY,EAAAA,cAAAA,EAAAA,SAAA,KACKA,EAAAA,cAACzqQ,EAAI,CAAC,mBAAct+H,SAAU1a,EAAMwqqB,cAAc/mR,EAAAA,cAAC+Q,EAAAA,EAAgB,CAAC,oBAAex0Z,EAAMwmW,eAAiBi9C,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAE,GAAArvB,OAAKoM,EAAMwmW,eAAc,KAAA5yW,OAAIoM,EAAM4W,QAAa5W,EAAM4W,SAKnM5W,EAAM8+X,aAAe9+X,EAAM8+X,cAAgBpgB,EAAAA,GAAa+uD,OACtDhqB,EAAAA,cAACwmR,GAAS,KACNxmR,EAAAA,cAACub,EAAAA,EAAM,CACHtuE,UAAW1wV,EAAM4W,KACjB+5U,SAAS,GACTrkV,KAAMtM,EAAM8+X,YACZ77W,GAAIjjB,EAAMijB,GACVk8Y,mBAAoBn/Z,EAAMm/Z,mBAC1BvuE,QAAS5wV,EAAM4wV,QACf8tE,SAAU1+Z,EAAM0+Z,SAChBG,UAAQ,EACRl4Z,KAAM02Z,EAAAA,EAAYI,QAI7Bz9Z,EAAM8+X,cAAgBpgB,EAAAA,GAAa+uD,QAChCzta,EAAMm/Z,mBACF1b,EAAAA,cAACub,EAAAA,EAAM,CACHtuE,UAAW1wV,EAAM4W,KACjB+5U,SAAS,GACTrkV,KAAMtM,EAAM8+X,YACZ77W,GAAIjjB,EAAMijB,GACV2tU,QAAS5wV,EAAM4wV,QACf8tE,SAAU1+Z,EAAM0+Z,SAChBG,UAAQ,EACRM,oBAAkB,EAClBx4Z,KAAM02Z,EAAAA,EAAYI,OAGtBha,EAAAA,cAACgmR,GAAY,CAAC/ypB,QAAS,kBAAM2zpB,EAAkBrqqB,aAAK,EAALA,EAAOijB,GAAG,GACrDwgY,EAAAA,cAACub,EAAAA,EAAM,CACHtuE,UAAW1wV,EAAM4W,KACjB+5U,SAAS,GACTrkV,KAAMtM,EAAM8+X,YACZ77W,GAAIjjB,EAAMijB,GACV2tU,QAAS5wV,EAAM4wV,QACf8tE,SAAU1+Z,EAAM0+Z,SAChBG,UAAQ,EACRM,oBAAkB,EAClBx4Z,KAAM02Z,EAAAA,EAAYI,UAK/Bz9Z,EAAMmia,UAAYnia,EAAM0W,WAAa1W,EAAMhL,OAC1CyuZ,EAAAA,cAACqmR,GAAY,KACR9pqB,EAAMmia,UACH1e,EAAAA,cAAComR,GAAW,KACP7pqB,EAAM1E,KACHmoZ,EAAAA,cAAA,KAAGz/X,KAAMhkB,EAAM1E,KAAM3C,OAAO,UACxB8qZ,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAMmia,YAE/B1e,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAMmia,YAI1Cnia,EAAM0W,SACH+sY,EAAAA,cAACq4Q,GAAQ,CAACplpB,QAAS66L,GACfkyM,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM6kZ,EAAAA,QAKvC5U,EAAAA,cAAC0P,EAAAA,EAAY,CACTjzK,UAAWgqb,EACX92Q,UAAW,kBAAM+2Q,GAAuB,EAAM,EAC9C52Q,aAAc9P,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,kBAEnCwgY,EAAAA,cAACimR,GAAmB,KACfx2f,IAAaA,aAAS,EAATA,EAAWjhL,KAAI,SAAA6zD,GAAE,OAC3B29V,EAAAA,cAACkmR,GAAiB,CAAC17qB,IAAK63D,aAAE,EAAFA,EAAI7iC,IACxBwgY,EAAAA,cAACub,EAAAA,EAAM,CACHtuE,UAAW5qS,EAAG3yD,KACdw9V,SAAU,GACVrkV,KAAkB,OAAZoyW,EAAAA,SAAY,IAAZA,EAAAA,QAAY,EAAZA,EAAAA,GAAcw1D,SACpBjxZ,GAAI6iC,EAAG7iC,GACP2tU,QAAS9qS,EAAG8qS,QACZiuE,UAAQ,EACRl4Z,KAAM02Z,EAAAA,EAAYI,OAEN,OAM5C,sWC1VA,IAAM7f,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,4zBAMRtjJ,EAAAA,EAAAA,IAAKikJ,EAAAA,EAAW1gX,MAAO,IAOnB0gX,EAAAA,EAAW5jY,MAOhB4jY,EAAAA,EAAWj1T,SACPrtE,EAAAA,EAAS,IAObsiY,EAAAA,EAAWj1T,SACPrtE,EAAAA,EAAS,KAaxBm/W,EAAWx9W,EAAAA,GAAO8qJ,IAAGo1O,IAAAA,EAAAF,EAAA,gGAIrB,SAAA3sR,GAAkB,OAAAA,EAAf65iB,kBAA0Cx1pB,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,mDAE5CzsP,EAAAA,EAAMzF,QAAOwyP,IAAAA,EAAAN,EAAA,+CAGlB,IACC,SAAA1sR,GAAa,OAAAA,EAAV65iB,aAA+Bz1pB,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,yCAEtC,IAGCuD,EAAQvjY,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,+HAKlB,SAAAr6Q,GAAa,OAAAA,EAAVyniB,aAA+B11pB,EAAAA,EAAAA,IAAGupY,IAAAA,EAAAjB,EAAA,qFACRW,EAAAA,EAAWqC,UAEzC,IAGCqqR,EAAiBrtpB,EAAAA,GAAO8qJ,IAAGs2O,IAAAA,EAAApB,EAAA,oCAI3BstR,EAAgBttpB,EAAAA,GAAO+wD,KAAIuwU,IAAAA,EAAAtB,EAAA,oCA8BpBnxW,EAAyB,SAACpsC,GAGnC,OAFA8qqB,EAAAA,EAAAA,IAAW9qqB,EAAM+qqB,gBAAkB/qqB,EAAMuuG,WAAavuG,EAAMo4Z,cAGxD3U,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAMuuG,WACHk1S,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAAC1oB,EAAQ,CAAC0vS,gBAAiBzqqB,EAAMyqqB,gBAAiBC,WAAY1qqB,EAAM0qqB,YAChEjnR,EAAAA,cAAA,OAAKz1Z,UAAWgS,EAAMgrqB,qBAAuB,GAAK,eAC7ChrqB,EAAM8U,OACH2uY,EAAAA,cAAC3C,EAAK,CAAC6pR,WAAY3qqB,EAAMirqB,aACrBxnR,EAAAA,cAAA,QAAMz1Z,UAAU,WACTgS,EAAMgia,KACLve,EAAAA,cAAAA,EAAAA,SAAA,MACKwe,EAAAA,EAAAA,IAAkBjia,EAAMgia,KACnBve,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAMxT,EAAMgia,MAC7Bhia,EAAMgia,KAInBhia,EAAM8U,OAEV9U,EAAMo4Z,cACH3U,EAAAA,cAACvkX,EAAAA,GAAU,CAACm/W,WAAY2mB,EAAAA,GAAsBld,SAAUt0Y,KAAMqwY,EAAAA,IAASntY,QAAS1W,EAAMo4Z,gBAI/Fp4Z,EAAM4W,OAAS5W,EAAMkrqB,MACpBznR,EAAAA,cAAA,QAAMz1Z,UAAWm9qB,IAAW,OAAQ,CAAE,OAAUnrqB,EAAMorqB,cACjDprqB,EAAM4W,MAGX6sY,EAAAA,cAAConR,EAAa,KACVpnR,EAAAA,cAAA,WAAMzjZ,aAAK,EAALA,EAAOkrqB,OACbznR,EAAAA,cAAA,YAAOzjZ,EAAM4W,OAGpB5W,EAAM4I,UACL5I,EAAMqrqB,WACJ5nR,EAAAA,cAAA,OAAKz1Z,UAAU,cACVgS,EAAMo4Z,cACH3U,EAAAA,cAACpoX,EAAAA,GAAM,CACHgjX,WAAYwJ,EAAAA,GAAkB4d,KAC9B7ja,SAAU5B,EAAM+qqB,eAChBr0pB,QAAS1W,EAAMo4Z,aACf9rZ,KAAK,UAEJtM,EAAMsrqB,kBAAoB7nR,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAGtDjjB,EAAMurqB,eAAiBvrqB,EAAMwrqB,oBAAqBxrqB,SAAAA,EAAOyrqB,sBACvDhoR,EAAAA,cAACpoX,EAAAA,GAAM,CACHz5B,SAAU5B,EAAMoka,gBAChB1tZ,QAAS1W,EAAMurqB,cACfj/pB,KAAMtM,EAAMwrqB,gBAAkB,SAAW,UAExCxrqB,EAAM0rqB,oBAAsBjoR,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAGzDjjB,EAAM2rqB,mBACHloR,EAAAA,cAACpoX,EAAAA,GAAM,CACHz5B,SAAU5B,EAAMoka,gBAChB1tZ,QAAS1W,EAAM2rqB,kBACfr/pB,KAAMtM,EAAMwrqB,gBAAkB,SAAW,UAExCxrqB,EAAM4rqB,uBAAyBnoR,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,qBAG5DjjB,aAAK,EAALA,EAAOyrqB,sBACJhoR,EAAAA,cAACpoX,EAAAA,GAAM,CACHz5B,SAAU5B,EAAMoka,gBAChB93Z,KAAMtM,EAAMwrqB,gBAAkB,SAAW,UAExCxrqB,EAAM6rqB,8BAAgCpoR,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,oBAGnEjjB,EAAMi1D,SACHwuV,EAAAA,cAACmnR,EAAc,KACXnnR,EAAAA,cAACngV,EAAAA,EAAO,CAAC38D,KAAMkiZ,EAAAA,EAAa6U,aAWxE,6OC7MA,IAAM9f,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,4BAIpB67B,EAAgB77Z,EAAAA,GAAO8qJ,IAAGo1O,IAAAA,EAAAF,EAAA,8GAWnBuuR,EAAuB,SAAA9rqB,GAChC,OACIyjZ,EAAAA,cAAC7F,EAAO,KACJ6F,EAAAA,cAACkQ,EAAAA,EAAiB,KACdlQ,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,+BACrBwgY,EAAAA,cAAC0tD,EAAAA,EAAkB,OAEvB1tD,EAAAA,cAAC21B,EAAa,KACV31B,EAAAA,cAACsoR,EAAAA,EAAU,CACPxqc,MAAOvhO,EAAMuhO,MACbvsO,MAAM,SACNg3qB,SAAS,aACT74qB,KAAK,kCACLghB,YAAY,yCACZ83pB,QAAS,MAEbxoR,EAAAA,cAACsoR,EAAAA,EAAU,CACPxqc,MAAOvhO,EAAMuhO,MACbvsO,MAAM,UACNg3qB,SAAS,cACT74qB,KAAK,mCACLghB,YAAY,0CACZ83pB,QAAS,MAEbxoR,EAAAA,cAACsoR,EAAAA,EAAU,CACPxqc,MAAOvhO,EAAMuhO,MACbvsO,MAAM,SACNg3qB,SAAS,aACT74qB,KAAK,kCACLghB,YAAY,yCACZ83pB,QAAS,OAK7B,yyCC/CA,IAAMC,EAAY3upB,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,iPACtB,SAAAv9Y,GAAK,OAAMA,EAAMy4b,YAAcz4b,EAAMmsqB,aAAel3pB,EAAAA,EAAAA,IAAGwoY,IAAAA,EAAAF,EAAA,oEAGxD,IAQK,SAAAv9Y,GAAK,OAAKA,EAAMmsqB,aAAcl3pB,EAAAA,EAAAA,IAAG0oY,IAAAA,EAAAJ,EAAA,kDAElC,IAOH4yQ,EAAY5yoB,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,8CAEtB,SAAAv9Y,GAAK,OAAIA,EAAMmsqB,aAAcl3pB,EAAAA,EAAAA,IAAG8oY,IAAAA,EAAAR,EAAA,0CAEjC,IAGCszQ,EAAatzoB,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,oFAEhBW,EAAAA,EAAWtqY,MAElBksY,EAAAA,EAAkB,KAGlB97U,EAAUzmD,EAAAA,GAAO8qJ,IAAGm2O,IAAAA,EAAAjB,EAAA,kLACpB1oX,EAAAA,EAAAA,MAEkBqpX,EAAAA,EAAWqC,WAC7B,SAAAvgZ,GAAK,OAAIA,EAAM6F,MAAOoP,EAAAA,EAAAA,IAAG0pY,IAAAA,EAAApB,EAAA,mCAAA3pZ,OACboM,EAAM6F,IAAM,GAAE,MAC3B,IACC,SAAA7F,GAAK,OAAKA,EAAMmD,MAA2B,SAAnBnD,EAAM0Z,WAAwBzE,EAAAA,EAAAA,IAAG4pY,IAAAA,EAAAtB,EAAA,oCAAA3pZ,OAC5CoM,EAAMmD,KAAI,MACxB,GACa+6Y,EAAAA,EAAW5jY,OAIvB,SAAAta,GAAK,OAAKA,EAAMmD,MAA2B,UAAnBnD,EAAM0Z,WAAyBzE,EAAAA,EAAAA,IAAG8pY,IAAAA,EAAAxB,EAAA,oCAAA3pZ,OAC7CoM,EAAMmD,KAAO,IAAG,MAC9B,IAGC0xb,EAAat3a,EAAAA,GAAO8qJ,IAAG42O,IAAAA,EAAA1B,EAAA,8BAIvB8J,EAAO9pY,EAAAA,GAAO8qJ,IAAG82O,IAAAA,EAAA5B,EAAA,mPAMbuC,EAAAA,EAAkB,IACX5B,EAAAA,EAAWt8Y,UAiCtBwqqB,EAAkF,SAAApsqB,GAAS,IAAAqsqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACrFrmmB,EAA4B7mE,EAA5B6mE,YAAasmmB,EAAentqB,EAAfmtqB,WAErB,OACI1pR,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAC0sQ,EAAS,CAACgc,WAAYnsqB,EAAMmsqB,YACzB1oR,EAAAA,cAACub,EAAAA,EAAM,CACHpuE,QAAsB,QAAfy7U,EAAErsqB,EAAMywV,eAAO,IAAA47U,OAAA,EAAbA,EAAez7U,QACxBF,UAAwB,QAAf47U,EAAEtsqB,EAAMywV,eAAO,IAAA67U,OAAA,EAAbA,EAAe57U,UAC1BC,SAAuB,QAAf47U,EAAEvsqB,EAAMywV,eAAO,IAAA87U,OAAA,EAAbA,EAAe57U,SACzB1tU,GAAiB,QAAfuppB,EAAExsqB,EAAMywV,eAAO,IAAA+7U,OAAA,EAAbA,EAAevppB,GACnB3W,KAAMtM,EAAMsM,KACZ6yZ,mBAAoBn/Z,aAAK,EAALA,EAAOm/Z,mBAC3BN,UAAW7+Z,EAAMmsqB,cAGxBtlmB,GACD48U,EAAAA,cAACz/U,EAAO,CAACtqD,SAAU,OAAQ7T,IAAKsnqB,EAAYhqqB,KAAM,GAC9CsgZ,EAAAA,cAACoxC,EAAU,KACPpxC,EAAAA,cAAC0sQ,EAAS,KACN1sQ,EAAAA,cAACub,EAAAA,EAAM,CACHpuE,QAAsB,QAAf67U,EAAEzsqB,EAAMywV,eAAO,IAAAg8U,OAAA,EAAbA,EAAe77U,QACxBF,UAAwB,QAAfg8U,EAAE1sqB,EAAMywV,eAAO,IAAAi8U,OAAA,EAAbA,EAAeh8U,UAC1BC,SAAuB,QAAfg8U,EAAE3sqB,EAAMywV,eAAO,IAAAk8U,OAAA,EAAbA,EAAeh8U,SACzB1tU,GAAiB,QAAf2ppB,EAAE5sqB,EAAMywV,eAAO,IAAAm8U,OAAA,EAAbA,EAAe3ppB,GACnB3W,KAAMtM,EAAMsM,QAGpBm3Y,EAAAA,cAACotQ,EAAU,KACO,QADPgc,EACN7sqB,EAAMywV,eAAO,IAAAo8U,OAAA,EAAbA,EAAen8U,UAAU,IAAe,QAAdo8U,EAAC9sqB,EAAMywV,eAAO,IAAAq8U,OAAA,EAAbA,EAAen8U,SAC3C8yD,EAAAA,cAAC4D,EAAI,KACArnZ,EAAMlF,OAAS2oZ,EAAAA,cAAA,KAAGz/X,KAAI,UAAApwB,OAAYoM,EAAMlF,QAAS2oZ,EAAAA,cAAA,YAAMA,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM8spB,EAAAA,MAAc,IAAEtgqB,EAAMlF,QACrG2oZ,EAAAA,cAAA,YAAoB,QAApBspR,EAAO/sqB,EAAMywV,eAAO,IAAAs8U,OAAA,EAAbA,EAAel8U,UACtB4yD,EAAAA,cAAA,YAAoB,QAApBupR,EAAOhtqB,EAAMywV,eAAO,IAAAu8U,GAAY,QAAZA,EAAbA,EAAe1tT,kBAAU,IAAA0tT,OAAA,EAAzBA,EAA2B75qB,MAClCswZ,EAAAA,cAAA,aAAoB,QAAbwpR,EAAAjtqB,EAAMywV,eAAO,IAAAw8U,GAAS,QAATA,EAAbA,EAAen8U,eAAO,IAAAm8U,OAAA,EAAtBA,EAAwB95qB,QAAqB,QAAjB+5qB,EAAIltqB,EAAMywV,eAAO,IAAAy8U,OAAA,EAAbA,EAAep8U,cAQlF,EAEamjF,EAA6C,SAAAj0a,GAAS,IAAAotqB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACzDC,GAAe1+pB,EAAAA,EAAAA,aAAuBjlB,GACkBm5Z,EAAAp3R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAAvDv8U,EAAWs8U,EAAA,GAAEqb,EAAcrb,EAAA,GACqBmC,EAAAv5R,GAAnBq3R,EAAAA,EAAAA,UAAiB,GAAE,GAAhD+pR,EAAU7nR,EAAA,GAAEsoR,EAAatoR,EAAA,GAE1BknE,GAAehpE,EAAAA,EAAAA,cAAY,WAC7B,IAAMqqR,EAAgBF,EAAa1sqB,QAAQkK,wBAAwBtF,IACnE+nqB,EAAcC,GACdrvQ,GAAe,SAAAsvQ,GAAc,OAAKA,CAAc,GACpD,GAAG,IAEH,OACIrqR,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAMywV,SACHgzD,EAAAA,cAACyoR,EAAS,CAACzzO,UAAWz4b,EAAMy4b,UAAW0zO,WAAYnsqB,EAAMmsqB,WAAY1jqB,IAAKklqB,GACtElqR,EAAAA,cAAA,OACIv/X,aAAcsoc,EACdroc,aAAcqoc,GAEd/oE,EAAAA,cAAC2oR,EAAqB,CAClB9/pB,KAAMtM,aAAK,EAALA,EAAOsM,KACb6/pB,WAAYnsqB,aAAK,EAALA,EAAOmsqB,WACnBhtQ,mBAAoBn/Z,aAAK,EAALA,EAAOm/Z,mBAC3Bs5B,UAAWz4b,aAAK,EAALA,EAAOy4b,UAClBhoG,QAAS,CACLG,QAAS5wV,SAAc,QAATotqB,EAALptqB,EAAOywV,eAAO,IAAA28U,OAAA,EAAdA,EAAgBx8U,QACzB3tU,GAAIjjB,SAAc,QAATqtqB,EAALrtqB,EAAOywV,eAAO,IAAA48U,OAAA,EAAdA,EAAgBpqpB,GACpBytU,UAAW1wV,SAAc,QAATstqB,EAALttqB,EAAOywV,eAAO,IAAA68U,OAAA,EAAdA,EAAgB58U,UAC3BG,SAAU7wV,SAAc,QAATutqB,EAALvtqB,EAAOywV,eAAO,IAAA88U,OAAA,EAAdA,EAAgB18U,SAC1BF,SAAU3wV,SAAc,QAATwtqB,EAALxtqB,EAAOywV,eAAO,IAAA+8U,OAAA,EAAdA,EAAgB78U,SAC1B2uB,WAAYt/W,SAAc,QAATytqB,EAALztqB,EAAOywV,eAAO,IAAAg9U,OAAA,EAAdA,EAAgBnuT,WAC5BxuB,QAAS9wV,SAAc,QAAT0tqB,EAAL1tqB,EAAOywV,eAAO,IAAAi9U,OAAA,EAAdA,EAAgB58U,SAE7Bh2V,MAAOkF,EAAMlF,MACb+rE,YAAaA,EACbsmmB,WAAYA,MAOxC,k7BClMAz6U,EAAA,kBAAA1jW,CAAA,MAAAk3G,EAAAl3G,EAAA,GAAAi3G,EAAAv0G,OAAAzE,UAAA64G,EAAAG,EAAA90G,eAAA40G,EAAAr0G,OAAA8X,gBAAA,SAAA08F,EAAAl3G,EAAAi3G,GAAAC,EAAAl3G,GAAAi3G,EAAAjxG,KAAA,EAAAsD,EAAA,mBAAAqzH,OAAAA,OAAA,GAAA38C,EAAA12E,EAAAszH,UAAA,aAAAtmB,EAAAhtG,EAAAq6V,eAAA,kBAAAxsP,EAAA7tG,EAAAkvJ,aAAA,yBAAAorM,EAAA1sP,EAAAl3G,EAAAi3G,GAAA,OAAAv0G,OAAA8X,eAAA08F,EAAAl3G,EAAA,CAAAgG,MAAAixG,EAAAv8F,YAAA,EAAAC,cAAA,EAAAmiH,UAAA,IAAA5lB,EAAAl3G,EAAA,KAAA4jW,EAAA,aAAA1sP,GAAA0sP,EAAA,SAAA1sP,EAAAl3G,EAAAi3G,GAAA,OAAAC,EAAAl3G,GAAAi3G,CAAA,WAAAutG,EAAAttG,EAAAl3G,EAAAi3G,EAAAH,GAAA,IAAAxtG,EAAAtJ,GAAAA,EAAA/B,qBAAA4lW,EAAA7jW,EAAA6jW,EAAA7jR,EAAAt9E,OAAA4mH,OAAAhgH,EAAArL,WAAAq4G,EAAA,IAAAwtP,EAAAhtP,GAAA,WAAAC,EAAA/2B,EAAA,WAAAh6E,MAAA+9V,EAAA7sP,EAAAD,EAAAX,KAAAt2B,CAAA,UAAAgkR,EAAA9sP,EAAAl3G,EAAAi3G,GAAA,WAAA35F,KAAA,SAAAzZ,IAAAqzG,EAAAjmG,KAAAjR,EAAAi3G,GAAA,OAAAC,GAAA,OAAA55F,KAAA,QAAAzZ,IAAAqzG,EAAA,EAAAl3G,EAAAwkN,KAAAA,EAAA,IAAA9tG,EAAA,iBAAAG,EAAA,iBAAAL,EAAA,YAAA5tG,EAAA,YAAA2sC,EAAA,YAAAsuT,IAAA,UAAAI,IAAA,UAAAC,IAAA,KAAAz6V,EAAA,GAAAm6V,EAAAn6V,EAAAu2E,GAAA,8BAAAu2B,EAAA7zG,OAAAq+U,eAAA54U,EAAAouG,GAAAA,EAAAA,EAAAtiB,EAAA,MAAA9rF,GAAAA,IAAA8uG,GAAAH,EAAA7lG,KAAA9I,EAAA63E,KAAAv2E,EAAAtB,GAAA,IAAAsuG,EAAAytP,EAAAjmW,UAAA4lW,EAAA5lW,UAAAyE,OAAA4mH,OAAA7/G,GAAA,SAAA06V,EAAAjtP,GAAA,0BAAA/2G,SAAA,SAAAH,GAAA4jW,EAAA1sP,EAAAl3G,GAAA,SAAAk3G,GAAA,YAAAktP,QAAApkW,EAAAk3G,EAAA,gBAAAmtP,EAAAntP,EAAAl3G,GAAA,SAAAs0J,EAAAr9C,EAAAF,EAAAztG,EAAA02E,GAAA,IAAAs2B,EAAA0tP,EAAA9sP,EAAAD,GAAAC,EAAAH,GAAA,aAAAT,EAAAh5F,KAAA,KAAA65F,EAAAb,EAAAzyG,IAAA6yG,EAAAS,EAAAnxG,MAAA,OAAA0wG,GAAA,UAAAgmB,EAAAhmB,IAAAI,EAAA7lG,KAAAylG,EAAA,WAAA12G,EAAAi8C,QAAAy6D,EAAA4tP,SAAAnoT,MAAA,SAAA+6D,GAAAo9C,EAAA,OAAAp9C,EAAA5tG,EAAA02E,EAAA,aAAAk3B,GAAAo9C,EAAA,QAAAp9C,EAAA5tG,EAAA02E,EAAA,IAAAhgF,EAAAi8C,QAAAy6D,GAAAv6D,MAAA,SAAA+6D,GAAAC,EAAAnxG,MAAAkxG,EAAA5tG,EAAA6tG,EAAA,aAAAD,GAAA,OAAAo9C,EAAA,QAAAp9C,EAAA5tG,EAAA02E,EAAA,IAAAA,EAAAs2B,EAAAzyG,IAAA,KAAAozG,EAAAF,EAAA,gBAAA/wG,MAAA,SAAAkxG,EAAAJ,GAAA,SAAAytP,IAAA,WAAAvkW,GAAA,SAAAA,EAAAi3G,GAAAq9C,EAAAp9C,EAAAJ,EAAA92G,EAAAi3G,EAAA,WAAAA,EAAAA,EAAAA,EAAA96D,KAAAooT,EAAAA,GAAAA,GAAA,aAAAR,EAAA/jW,EAAAi3G,EAAAH,GAAA,IAAAC,EAAAL,EAAA,gBAAAptG,EAAA02E,GAAA,GAAA+2B,IAAAP,EAAA,UAAA7gF,MAAA,mCAAAohF,IAAAnuG,EAAA,cAAAU,EAAA,MAAA02E,EAAA,OAAAh6E,MAAAkxG,EAAAmmB,MAAA,OAAAvmB,EAAAqpC,OAAA72I,EAAAwtG,EAAAjzG,IAAAm8E,IAAA,KAAAs2B,EAAAQ,EAAA0tP,SAAA,GAAAluP,EAAA,KAAAa,EAAAstP,EAAAnuP,EAAAQ,GAAA,GAAAK,EAAA,IAAAA,IAAA5hE,EAAA,gBAAA4hE,CAAA,cAAAL,EAAAqpC,OAAArpC,EAAA4tP,KAAA5tP,EAAA6tP,MAAA7tP,EAAAjzG,SAAA,aAAAizG,EAAAqpC,OAAA,IAAAppC,IAAAL,EAAA,MAAAK,EAAAnuG,EAAAkuG,EAAAjzG,IAAAizG,EAAA8tP,kBAAA9tP,EAAAjzG,IAAA,gBAAAizG,EAAAqpC,QAAArpC,EAAA+tP,OAAA,SAAA/tP,EAAAjzG,KAAAkzG,EAAAP,EAAA,IAAA/sG,EAAAu6V,EAAAhkW,EAAAi3G,EAAAH,GAAA,cAAArtG,EAAA6T,KAAA,IAAAy5F,EAAAD,EAAAumB,KAAAz0H,EAAAiuG,EAAAptG,EAAA5F,MAAA0xC,EAAA,gBAAAvvC,MAAAyD,EAAA5F,IAAAw5H,KAAAvmB,EAAAumB,KAAA,WAAA5zH,EAAA6T,OAAAy5F,EAAAnuG,EAAAkuG,EAAAqpC,OAAA,QAAArpC,EAAAjzG,IAAA4F,EAAA5F,IAAA,YAAA4gW,EAAAzkW,EAAAi3G,GAAA,IAAAH,EAAAG,EAAAkpC,OAAAppC,EAAA/2G,EAAA48H,SAAA9lB,GAAA,GAAAC,IAAAG,EAAA,OAAAD,EAAAutP,SAAA,eAAA1tP,GAAA92G,EAAA48H,SAAA,SAAA3lB,EAAAkpC,OAAA,SAAAlpC,EAAApzG,IAAAqzG,EAAAutP,EAAAzkW,EAAAi3G,GAAA,UAAAA,EAAAkpC,SAAA,WAAArpC,IAAAG,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAA,IAAA25H,UAAA,oCAAA1mB,EAAA,aAAAvhE,EAAA,IAAAjsC,EAAA06V,EAAAjtP,EAAA/2G,EAAA48H,SAAA3lB,EAAApzG,KAAA,aAAAyF,EAAAgU,KAAA,OAAA25F,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAAyF,EAAAzF,IAAAozG,EAAAutP,SAAA,KAAAjvT,EAAA,IAAAyqC,EAAA12E,EAAAzF,IAAA,OAAAm8E,EAAAA,EAAAq9C,MAAApmB,EAAAj3G,EAAA8kW,YAAA9kR,EAAAh6E,MAAAixG,EAAAmmB,KAAAp9H,EAAA+kW,QAAA,WAAA9tP,EAAAkpC,SAAAlpC,EAAAkpC,OAAA,OAAAlpC,EAAApzG,IAAAqzG,GAAAD,EAAAutP,SAAA,KAAAjvT,GAAAyqC,GAAAi3B,EAAAkpC,OAAA,QAAAlpC,EAAApzG,IAAA,IAAA25H,UAAA,oCAAAvmB,EAAAutP,SAAA,KAAAjvT,EAAA,UAAAyvT,EAAA9tP,GAAA,IAAAl3G,EAAA,CAAAilW,OAAA/tP,EAAA,SAAAA,IAAAl3G,EAAAklW,SAAAhuP,EAAA,SAAAA,IAAAl3G,EAAAmlW,WAAAjuP,EAAA,GAAAl3G,EAAAolW,SAAAluP,EAAA,SAAAmuP,WAAA5mW,KAAAuB,EAAA,UAAAslW,EAAApuP,GAAA,IAAAl3G,EAAAk3G,EAAAquP,YAAA,GAAAvlW,EAAAsd,KAAA,gBAAAtd,EAAA6D,IAAAqzG,EAAAquP,WAAAvlW,CAAA,UAAA8jW,EAAA5sP,GAAA,KAAAmuP,WAAA,EAAAJ,OAAA,SAAA/tP,EAAA/2G,QAAA6kW,EAAA,WAAAzkW,OAAA,YAAA0zF,EAAAj0F,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAi3G,EAAAj3G,EAAAggF,GAAA,GAAAi3B,EAAA,OAAAA,EAAAhmG,KAAAjR,GAAA,sBAAAA,EAAAo9H,KAAA,OAAAp9H,EAAA,IAAAghF,MAAAhhF,EAAAD,QAAA,KAAAg3G,GAAA,EAAAztG,EAAA,SAAA8zH,IAAA,OAAArmB,EAAA/2G,EAAAD,QAAA,GAAA+2G,EAAA7lG,KAAAjR,EAAA+2G,GAAA,OAAAqmB,EAAAp3H,MAAAhG,EAAA+2G,GAAAqmB,EAAAC,MAAA,EAAAD,EAAA,OAAAA,EAAAp3H,MAAAkxG,EAAAkmB,EAAAC,MAAA,EAAAD,CAAA,SAAA9zH,EAAA8zH,KAAA9zH,CAAA,YAAAk0H,UAAAd,EAAA18H,GAAA,2BAAAikW,EAAAhmW,UAAAimW,EAAAntP,EAAAN,EAAA,eAAAzwG,MAAAk+V,EAAAvpV,cAAA,IAAAo8F,EAAAmtP,EAAA,eAAAl+V,MAAAi+V,EAAAtpV,cAAA,IAAAspV,EAAAnlW,YAAA8kW,EAAAM,EAAA/sP,EAAA,qBAAAn3G,EAAAwlW,oBAAA,SAAAtuP,GAAA,IAAAl3G,EAAA,mBAAAk3G,GAAAA,EAAA5F,YAAA,QAAAtxG,IAAAA,IAAAikW,GAAA,uBAAAjkW,EAAAlB,aAAAkB,EAAAmE,MAAA,EAAAnE,EAAAu+H,KAAA,SAAArnB,GAAA,OAAAx0G,OAAA6kK,eAAA7kK,OAAA6kK,eAAArwD,EAAAgtP,IAAAhtP,EAAAkqC,UAAA8iN,EAAAN,EAAA1sP,EAAAC,EAAA,sBAAAD,EAAAj5G,UAAAyE,OAAA4mH,OAAA7S,GAAAS,CAAA,EAAAl3G,EAAAylW,MAAA,SAAAvuP,GAAA,OAAAotP,QAAAptP,EAAA,EAAAitP,EAAAE,EAAApmW,WAAA2lW,EAAAS,EAAApmW,UAAAq4G,GAAA,0BAAAt2G,EAAAqkW,cAAAA,EAAArkW,EAAAk4C,MAAA,SAAAg/D,EAAAD,EAAAH,EAAAC,EAAAztG,QAAA,IAAAA,IAAAA,EAAA0yC,SAAA,IAAAgkC,EAAA,IAAAqkR,EAAA7/I,EAAAttG,EAAAD,EAAAH,EAAAC,GAAAztG,GAAA,OAAAtJ,EAAAwlW,oBAAAvuP,GAAAj3B,EAAAA,EAAAo9C,OAAAjhF,MAAA,SAAA+6D,GAAA,OAAAA,EAAAmmB,KAAAnmB,EAAAlxG,MAAAg6E,EAAAo9C,MAAA,KAAA+mO,EAAA1tP,GAAAmtP,EAAAntP,EAAAU,EAAA,aAAAysP,EAAAntP,EAAAz2B,GAAA,0BAAA4jR,EAAAntP,EAAA,qDAAAz2G,EAAA2C,KAAA,SAAAu0G,GAAA,IAAAl3G,EAAA0C,OAAAw0G,GAAAD,EAAA,WAAAH,KAAA92G,EAAAi3G,EAAAx4G,KAAAq4G,GAAA,OAAAG,EAAA5uG,UAAA,SAAA+0H,IAAA,KAAAnmB,EAAAl3G,QAAA,KAAAm3G,EAAAD,EAAAnkG,MAAA,GAAAokG,KAAAl3G,EAAA,OAAAo9H,EAAAp3H,MAAAkxG,EAAAkmB,EAAAC,MAAA,EAAAD,CAAA,QAAAA,EAAAC,MAAA,EAAAD,CAAA,GAAAp9H,EAAAi0F,OAAAA,EAAA6vQ,EAAA7lW,UAAA,CAAAqzG,YAAAwyP,EAAAvjW,MAAA,SAAAP,GAAA,QAAAs6U,KAAA,OAAAl9M,KAAA,OAAAsnO,KAAA,KAAAC,MAAAztP,EAAA,KAAAmmB,MAAA,OAAAmnO,SAAA,UAAArkN,OAAA,YAAAt8I,IAAAqzG,EAAA,KAAAmuP,WAAAllW,QAAAmlW,IAAAtlW,EAAA,QAAAi3G,KAAA,WAAAA,EAAAjtG,OAAA,IAAA8sG,EAAA7lG,KAAA,KAAAgmG,KAAAj2B,OAAAi2B,EAAAvuG,MAAA,WAAAuuG,GAAAC,EAAA,EAAAozC,KAAA,gBAAAjtB,MAAA,MAAAnmB,EAAA,KAAAmuP,WAAA,GAAAE,WAAA,aAAAruP,EAAA55F,KAAA,MAAA45F,EAAArzG,IAAA,YAAA6hW,IAAA,EAAAd,kBAAA,SAAA5kW,GAAA,QAAAq9H,KAAA,MAAAr9H,EAAA,IAAAi3G,EAAA,cAAA21F,EAAA91F,EAAAC,GAAA,OAAA/2B,EAAA1iE,KAAA,QAAA0iE,EAAAn8E,IAAA7D,EAAAi3G,EAAAmmB,KAAAtmB,EAAAC,IAAAE,EAAAkpC,OAAA,OAAAlpC,EAAApzG,IAAAqzG,KAAAH,CAAA,SAAAA,EAAA,KAAAsuP,WAAAtlW,OAAA,EAAAg3G,GAAA,IAAAA,EAAA,KAAAztG,EAAA,KAAA+7V,WAAAtuP,GAAA/2B,EAAA12E,EAAAi8V,WAAA,YAAAj8V,EAAA27V,OAAA,OAAAr4J,EAAA,UAAAtjM,EAAA27V,QAAA,KAAA3qB,KAAA,KAAAhkO,EAAAQ,EAAA7lG,KAAA3H,EAAA,YAAA6tG,EAAAL,EAAA7lG,KAAA3H,EAAA,iBAAAgtG,GAAAa,EAAA,SAAAmjO,KAAAhxU,EAAA47V,SAAA,OAAAt4J,EAAAtjM,EAAA47V,UAAA,WAAA5qB,KAAAhxU,EAAA67V,WAAA,OAAAv4J,EAAAtjM,EAAA67V,WAAA,SAAA7uP,GAAA,QAAAgkO,KAAAhxU,EAAA47V,SAAA,OAAAt4J,EAAAtjM,EAAA47V,UAAA,YAAA/tP,EAAA,UAAAxhF,MAAA,kDAAA2kT,KAAAhxU,EAAA67V,WAAA,OAAAv4J,EAAAtjM,EAAA67V,WAAA,KAAAN,OAAA,SAAA3tP,EAAAl3G,GAAA,QAAAi3G,EAAA,KAAAouP,WAAAtlW,OAAA,EAAAk3G,GAAA,IAAAA,EAAA,KAAAF,EAAA,KAAAsuP,WAAApuP,GAAA,GAAAF,EAAAkuP,QAAA,KAAA3qB,MAAAxjO,EAAA7lG,KAAA8lG,EAAA,oBAAAujO,KAAAvjO,EAAAouP,WAAA,KAAA77V,EAAAytG,EAAA,OAAAztG,IAAA,UAAA4tG,GAAA,aAAAA,IAAA5tG,EAAA27V,QAAAjlW,GAAAA,GAAAsJ,EAAA67V,aAAA77V,EAAA,UAAA02E,EAAA12E,EAAAA,EAAAi8V,WAAA,UAAAvlR,EAAA1iE,KAAA45F,EAAAl3B,EAAAn8E,IAAA7D,EAAAsJ,GAAA,KAAA62I,OAAA,YAAA/iB,KAAA9zH,EAAA67V,WAAA5vT,GAAA,KAAAiwB,SAAAwa,EAAA,EAAAxa,SAAA,SAAA0xC,EAAAl3G,GAAA,aAAAk3G,EAAA55F,KAAA,MAAA45F,EAAArzG,IAAA,gBAAAqzG,EAAA55F,MAAA,aAAA45F,EAAA55F,KAAA,KAAA8/G,KAAAlmB,EAAArzG,IAAA,WAAAqzG,EAAA55F,MAAA,KAAAooV,KAAA,KAAA7hW,IAAAqzG,EAAArzG,IAAA,KAAAs8I,OAAA,cAAA/iB,KAAA,kBAAAlmB,EAAA55F,MAAAtd,IAAA,KAAAo9H,KAAAp9H,GAAAu1C,CAAA,EAAAowT,OAAA,SAAAzuP,GAAA,QAAAl3G,EAAA,KAAAqlW,WAAAtlW,OAAA,EAAAC,GAAA,IAAAA,EAAA,KAAAi3G,EAAA,KAAAouP,WAAArlW,GAAA,GAAAi3G,EAAAkuP,aAAAjuP,EAAA,YAAA1xC,SAAAyxC,EAAAsuP,WAAAtuP,EAAAmuP,UAAAE,EAAAruP,GAAA1hE,CAAA,kBAAA2hE,GAAA,QAAAl3G,EAAA,KAAAqlW,WAAAtlW,OAAA,EAAAC,GAAA,IAAAA,EAAA,KAAAi3G,EAAA,KAAAouP,WAAArlW,GAAA,GAAAi3G,EAAAguP,SAAA/tP,EAAA,KAAAJ,EAAAG,EAAAsuP,WAAA,aAAAzuP,EAAAx5F,KAAA,KAAAy5F,EAAAD,EAAAjzG,IAAAyhW,EAAAruP,EAAA,QAAAF,CAAA,YAAAphF,MAAA,0BAAAiwU,cAAA,SAAA5lW,EAAAi3G,EAAAH,GAAA,YAAA0tP,SAAA,CAAA5nO,SAAA3oC,EAAAj0F,GAAA8kW,WAAA7tP,EAAA8tP,QAAAjuP,GAAA,cAAAqpC,SAAA,KAAAt8I,IAAAqzG,GAAA3hE,CAAA,GAAAv1C,CAAA,UAAA6lW,EAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA/mW,EAAA4E,GAAA,QAAAkhJ,EAAA+gN,EAAA7mW,GAAA4E,GAAAmC,EAAA++I,EAAA/+I,KAAA,OAAAi+D,GAAA,YAAAqnE,EAAArnE,EAAA,CAAA8gF,EAAA1nB,KAAAphF,EAAAj2C,GAAAg2C,QAAAC,QAAAj2C,GAAAm2C,KAAA4pT,EAAAC,EAAA,UAAAC,EAAA3kS,GAAA,sBAAAkhF,EAAA,KAAAtjJ,EAAA0C,UAAA,WAAAo6C,SAAA,SAAAC,EAAAqvF,GAAA,IAAAw6N,EAAAxkS,EAAAt+D,MAAAw/I,EAAAtjJ,GAAA,SAAA6mW,EAAA//V,GAAA6/V,EAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA,OAAAhgW,EAAA,UAAAggW,EAAAt0O,GAAAm0O,EAAAC,EAAA7pT,EAAAqvF,EAAAy6N,EAAAC,EAAA,QAAAt0O,EAAA,CAAAq0O,OAAA/qW,EAAA,cAAA+hI,EAAAC,EAAA1zH,GAAA,gBAAA0zH,GAAA,GAAAx6H,MAAAC,QAAAu6H,GAAA,OAAAA,CAAA,CAAAC,CAAAD,IAAA,SAAA/lB,EAAAJ,GAAA,IAAAK,EAAA,MAAAD,EAAA,yBAAA0lB,QAAA1lB,EAAA0lB,OAAAC,WAAA3lB,EAAA,uBAAAC,EAAA,KAAAl3G,EAAA82G,EAAAxtG,EAAA6tG,EAAAn3B,EAAA,GAAAw2B,GAAA,EAAAO,GAAA,SAAAztG,GAAA4tG,EAAAA,EAAAjmG,KAAAgmG,IAAAmmB,KAAA,IAAAvmB,EAAA,IAAAn0G,OAAAw0G,KAAAA,EAAA,OAAAV,GAAA,cAAAA,GAAAx2G,EAAAsJ,EAAA2H,KAAAimG,IAAAmmB,QAAAr9C,EAAAvhF,KAAAuB,EAAAgG,OAAAg6E,EAAAjgF,SAAA82G,GAAAL,GAAA,UAAAS,GAAAF,GAAA,EAAAD,EAAAG,CAAA,iBAAAT,GAAA,MAAAU,EAAA,SAAAC,EAAAD,EAAA,SAAAx0G,OAAAy0G,KAAAA,GAAA,kBAAAJ,EAAA,MAAAD,CAAA,SAAA92B,CAAA,EAAAs9C,CAAAN,EAAA1zH,IAAAi0H,EAAAP,EAAA1zH,IAAA,qBAAAk0H,UAAA,6IAAAC,EAAA,UAAAF,EAAAxmB,EAAAinB,GAAA,GAAAjnB,EAAA,qBAAAA,EAAA,OAAA4mB,EAAA5mB,EAAAinB,GAAA,IAAAlnB,EAAAp0G,OAAAzE,UAAA+yB,SAAA/f,KAAA8lG,GAAAruG,MAAA,uBAAAouG,GAAAC,EAAAzF,cAAAwF,EAAAC,EAAAzF,YAAAntG,MAAA,QAAA2yG,GAAA,QAAAA,EAAAt0G,MAAAiiG,KAAAsS,GAAA,cAAAD,GAAA,2CAAAp7G,KAAAo7G,GAAA6mB,EAAA5mB,EAAAinB,QAAA,YAAAL,EAAAX,EAAAnsB,IAAA,MAAAA,GAAAA,EAAAmsB,EAAAj9H,UAAA8wG,EAAAmsB,EAAAj9H,QAAA,QAAAuJ,EAAA,EAAA20H,EAAA,IAAAz7H,MAAAquG,GAAAvnG,EAAAunG,EAAAvnG,IAAA20H,EAAA30H,GAAA0zH,EAAA1zH,GAAA,OAAA20H,CAAA,UAAAlC,EAAA/7H,EAAAi3G,GAAA,IAAAC,EAAAx0G,OAAAC,KAAA3C,GAAA,GAAA0C,OAAAw5H,sBAAA,KAAAnlB,EAAAr0G,OAAAw5H,sBAAAl8H,GAAAi3G,IAAAF,EAAAA,EAAAr4G,QAAA,SAAAu4G,GAAA,OAAAv0G,OAAA25H,yBAAAr8H,EAAAi3G,GAAAv8F,UAAA,KAAAw8F,EAAAz4G,KAAAuE,MAAAk0G,EAAAH,EAAA,QAAAG,CAAA,UAAAknP,EAAAp+V,GAAA,QAAAi3G,EAAA,EAAAA,EAAAr1G,UAAA7B,OAAAk3G,IAAA,KAAAC,EAAA,MAAAt1G,UAAAq1G,GAAAr1G,UAAAq1G,GAAA,GAAAA,EAAA,EAAA8kB,EAAAr5H,OAAAw0G,IAAA,GAAA/2G,SAAA,SAAA82G,GAAA,IAAA3G,EAAArxG,EAAA+G,EAAAsqG,EAAAtwG,EAAAf,EAAAg4G,EAAAjxG,EAAAkxG,EAAAD,IAAAh4G,EAAA,SAAA4E,GAAA,IAAA5E,EAAA,SAAAghD,EAAAkqU,GAAA,cAAAztP,EAAAz8E,IAAA,OAAAA,EAAA,OAAAA,EAAA,IAAAmqU,EAAAnqU,EAAA08E,OAAA0tP,aAAA,QAAArvX,IAAAovX,EAAA,KAAAx0N,EAAAw0N,EAAAn5W,KAAAgvC,EAAAkqU,UAAA,cAAAztP,EAAAk5B,GAAA,OAAAA,EAAA,UAAAp4B,UAAA,uDAAA12H,OAAAm5C,EAAA,CAAAqqU,CAAAzmX,GAAA,iBAAA64H,EAAAz9H,GAAAA,EAAA6H,OAAA7H,EAAA,CAAAsrX,CAAAtrX,MAAAqxG,EAAA5tG,OAAA8X,eAAA81F,EAAArxG,EAAA,CAAA+G,MAAAA,EAAA0U,YAAA,EAAAC,cAAA,EAAAmiH,UAAA,IAAAxsB,EAAArxG,GAAA+G,CAAA,IAAAtD,OAAA85H,0BAAA95H,OAAA+5H,iBAAAz8H,EAAA0C,OAAA85H,0BAAAtlB,IAAA6kB,EAAAr5H,OAAAw0G,IAAA/2G,SAAA,SAAA82G,GAAAv0G,OAAA8X,eAAAxa,EAAAi3G,EAAAv0G,OAAA25H,yBAAAnlB,EAAAD,GAAA,WAAAj3G,CAAA,UAAAuuZ,EAAAwxB,EAAAC,GAAA,OAAAA,IAAAA,EAAAD,EAAAr3a,MAAA,IAAAhG,OAAAu9a,OAAAv9a,OAAA+5H,iBAAAsjT,EAAA,CAAAC,IAAA,CAAAh6a,MAAAtD,OAAAu9a,OAAAD,MAAA,CAyBA,IAmMI++P,EAnMEnwR,EAAUrgY,EAAAA,GAAO8qJ,IAAGi1O,IAAAA,EAAAC,EAAA,yJAIRW,EAAAA,EAAW5jY,OAIvB0zpB,EAAYzwpB,EAAAA,GAAO8qJ,IAAGo1O,IAAAA,EAAAF,EAAA,kGAEVW,EAAAA,EAAWgE,UAEPhE,EAAAA,EAAW5jY,OAI3ByhJ,EAAUx+I,EAAAA,GAAO8qJ,IAAGs1O,IAAAA,EAAAJ,EAAA,UAGpBi/C,GAAiBj/a,EAAAA,GAAO8qJ,IAAGw1O,IAAAA,EAAAN,EAAA,mJAGfW,EAAAA,EAAWgE,WAkBvB2mC,IAZiBtra,EAAAA,GAAO8qJ,IAAG01O,IAAAA,EAAAR,EAAA,4MAYdhgY,EAAAA,GAAO8qJ,IAAG41O,IAAAA,EAAAV,EAAA,2cACV,SAAA3sR,GAAQ,OAAAA,EAAN27R,OAAqB,IAAM,GAAG,GAIjCrO,EAAAA,EAAW5jY,MAOP4jY,EAAAA,EAAWl1T,WAE3B,SAAAhpF,GAAK,OAAIA,EAAMusZ,SAAUt3Y,EAAAA,EAAAA,IAAGupY,IAAAA,EAAAjB,EAAA,uCACZW,EAAAA,EAAWl1T,UAC5B,KASCs4kB,GAAW/jpB,EAAAA,GAAO8qJ,IAAGs2O,IAAAA,EAAApB,EAAA,mIAKrBuC,EAAAA,EAAkB,IACX5B,EAAAA,EAAWttX,SAGlB2woB,GAAchkpB,EAAAA,GAAO8qJ,IAAGw2O,IAAAA,EAAAtB,EAAA,+HASxB0wR,GAAe1wpB,EAAAA,GAAO8qJ,IAAG02O,IAAAA,EAAAxB,EAAA,4RAClBW,EAAAA,EAAWC,WAClB2B,EAAAA,EAAkB,KAelBouR,IAAwB3wpB,EAAAA,EAAAA,IAAO0wpB,GAAP1wpB,CAA2B0hY,IAAAA,EAAA1B,EAAA,2KAUnD4wR,GAAsB5wpB,EAAAA,GAAO8qJ,IAAG82O,IAAAA,EAAA5B,EAAA,qHAiBzB6wR,GAAgD,SAAApuqB,GAAS,IAAAquqB,EAC5DviR,GAAOC,EAAAA,EAAAA,KAUb,OACItI,EAAAA,cAAColC,GAAU,CAAC56b,IAAK+R,EAAMu5D,KAAKt2C,GAAIspY,OAAQvsZ,EAAMusZ,QAC1C9I,EAAAA,cAAC89Q,GAAW,CAAC7qpB,QAVF,SAAC1nB,GAChBA,SAAAA,EAAGwS,kBACHxS,SAAAA,EAAGkW,iBACHlF,EAAM6+f,WAAUzxK,EAAAA,EAAC,CAAC,EACXptV,EAAMu5D,MAAI,IAAE3iD,KAAqB,WAAf5W,EAAMsM,MAAoBwgZ,EAAAA,EAAAA,IAAc9sZ,EAAMu5D,KAAK3iD,KAAwBk1Y,GAAQ9rZ,EAAMu5D,KAAK3iD,OAE3H,KAKU5W,EAAMsM,OAASoyW,EAAAA,GAAaw1D,UAAYl0a,EAAMsM,OAASoyW,EAAAA,GAAaigD,SAAW3+Z,EAAMsM,OAASoyW,EAAAA,GAAa+uD,OAASzta,EAAMsM,OAASoyW,EAAAA,GAAaC,UAC9I8kC,EAAAA,cAACub,EAAAA,EAAM,CACHH,UAAQ,EACRnuE,UAAW1wV,EAAMu5D,KAAK3iD,KACtB+5U,SAAS,GACTrkV,KAAMtM,EAAMsM,KACZ2W,GAAIjjB,EAAMu5D,KAAKt2C,GACf67Y,SAAyB,QAAjBuvQ,EAAEruqB,EAAMu5D,KAAKhzC,YAAI,IAAA8npB,OAAA,EAAfA,EAAiB3zT,aAC3B/zW,KAAM02Z,EAAAA,EAAYK,MAClB9sE,QAAS5wV,EAAMu5D,KAAKhzC,KAAKqqU,QACzBuuE,oBAAkB,IAGV,YAAfn/Z,EAAMsM,MACHm3Y,EAAAA,cAACg+C,EAAAA,EAAyB,CAACC,cAAe,GACrC1hc,EAAMwmW,eAAiBi9C,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAE,GAAArvB,OAAKoM,EAAMwmW,eAAc,KAAA5yW,OAAIoM,EAAMu5D,KAAKhzC,KAAKt4B,KAAO+R,EAAMu5D,KAAKhzC,QAAavmB,EAAMu5D,KAAK3iD,MAG3H,WAAf5W,EAAMsM,MACHm3Y,EAAAA,cAACykC,EAAAA,EAAS,CAAC/xS,OAAQn2I,EAAMu5D,KAAK3iD,KAAwBioZ,UAAQ,EAACl4Z,KAAM,KAExE3G,EAAMgzC,YACHywW,EAAAA,cAACj0W,EAAAA,EAAQ,CAAC39B,QAAS7R,EAAMusZ,SAEzB9I,EAAAA,cAACq1B,EAAAA,EAAW,CAACjna,QAAS7R,EAAMusZ,SAI5C,EA2BI+hR,QAAgDtkrB,EAEvCq9qB,GAAwB,SAAArnqB,GAAS,IAAAuuqB,EAAAC,EACgBrrR,EAAAp3R,GAApBq3R,EAAAA,EAAAA,UAAiB,IAAG,GAAnDqrR,EAAWtrR,EAAA,GAAEurR,EAAcvrR,EAAA,GACoBmC,EAAAv5R,GAAxBq3R,EAAAA,EAAAA,WAAkB,GAAM,GAA/CnuV,EAAOqwV,EAAA,GAAEo3Q,EAAUp3Q,EAAA,GAC+CG,EAAA15R,GAAvCq3R,EAAAA,EAAAA,UAAgB,MAACp5Z,OAAWA,IAAW,GAAlE6+N,EAAS48L,EAAA,GAAEkpR,EAAYlpR,EAAA,IAE9Bv2Y,EAAAA,EAAAA,YAAU,WACNwtpB,EAAW18pB,EAAMi1D,QACrB,GAAG,CAACj1D,EAAMi1D,WAoBV/lD,EAAAA,EAAAA,YAAU,WACuB,IAAA0/pB,EAAAC,EAAzB7uqB,EAAM8uqB,mBACNH,EAAa,CAAwB,QAAxBC,EAAC5uqB,EAAM8uqB,yBAAiB,IAAAF,OAAA,EAAvBA,EAAyBG,SAAiC,QAAzBF,EAAE7uqB,EAAM8uqB,yBAAiB,IAAAD,OAAA,EAAvBA,EAAyBnhO,QAElF,GAAG,CAAC1tc,EAAM8uqB,oBAEV,IAAMjwK,EAAa,SAACtlc,GAChBv5D,EAAM0iqB,aAAanpmB,EACvB,EAkCMy1mB,GAAmBr4Q,EAAAA,EAAAA,UAAQ,WAAM,IAAA8qQ,EAAAC,EAC7BuN,GAAwB,QAAXxN,EAAAzhqB,EAAM0V,aAAK,IAAA+rpB,OAAA,EAAXA,EAAa/zqB,QAAO,SAAA6rE,GAAI,IAAA21mB,EAAA,OAAI31mB,SAAU,QAAN21mB,EAAJ31mB,EAAM3iD,YAAI,IAAAs4pB,GAAe,QAAfA,EAAVA,EAAYz6qB,qBAAa,IAAAy6qB,OAAA,EAAzBA,EAA2B/2iB,SAASs2iB,EAAYh6qB,cAAc,MAAK,GAC5G06qB,GAAyB,QAAXzN,EAAA1hqB,EAAM0V,aAAK,IAAAgspB,OAAA,EAAXA,EAAah0qB,QAAO,SAAA6rE,GAAI,IAAA2omB,EAAA,OAAI3omB,SAAU,QAAN2omB,EAAJ3omB,EAAMhzC,YAAI,IAAA27oB,GAAc,QAAdA,EAAVA,EAAYxnT,oBAAY,IAAAwnT,GAAe,QAAfA,EAAxBA,EAA0BztqB,qBAAa,IAAAytqB,OAAA,EAAvCA,EAAyC/piB,SAASs2iB,EAAYh6qB,cAAc,MAAK,GACjI,OAAO26qB,EAAAA,EAAAA,IAAoB,GAADx7qB,OAAA84H,EAAKuijB,GAAUvijB,EAAKyijB,IAClD,GAAG,CAACnvqB,EAAM0V,MAAO+4pB,IAEjB,OACIhrR,EAAAA,cAAC7F,EAAO,CAAC5vZ,UAAWgS,EAAMhS,WACrBgS,EAAMsM,OAASk7pB,EAAAA,GAAYn+qB,MACxBo6Z,EAAAA,cAACuqR,EAAS,KACNvqR,EAAAA,cAAC4iB,EAAAA,EAAa,CACVrxa,MAAOy5qB,EACPxV,WAAS,EACTnknB,YAAa90C,EAAM80C,YACnBqknB,aAzBC,WAAM,IAAAkW,EAAAC,EACvBZ,EAAe,IACY,QAA3BW,EAAArvqB,EAAMsnqB,6BAAqB,IAAA+H,GAA3BA,EAAApvqB,KAAAD,EAA8B,IAC9B08pB,GAAW,GACX51oB,aAAawnpB,IACA,QAAbgB,EAAAtvqB,EAAMktO,eAAO,IAAAoic,GAAbA,EAAArvqB,KAAAD,EAAgB,IAChBsuqB,GAAiBvnpB,YAAW,WACxB21oB,GAAW,EACf,GAAG,IACP,EAiBoBhmpB,QA/CJ,SAAC1nB,GACbA,EAAEwS,iBACN,EA8CoBmM,SA5EE,SAAC3e,GAA2C,IAAAugrB,EACxD34pB,EAAO5nB,EAAE2J,OAAO3D,MACtB0nqB,GAAW,GACX51oB,aAAainpB,GACb/+qB,EAAEwS,kBACFktqB,EAAe93pB,GACY,QAA3B24pB,EAAAvvqB,EAAMsnqB,6BAAqB,IAAAiI,GAA3BA,EAAAtvqB,KAAAD,EAA8B4W,GAC9BkQ,aAAawnpB,IACbP,EAAkBhnpB,WAAUkuU,EAAAvC,IAAAnlO,MAAC,SAAA4nO,IAAA,IAAAq6U,EAAA,OAAA98U,IAAAl/I,MAAA,SAAA6hJ,GAAA,cAAAA,EAAA/rB,KAAA+rB,EAAAjpO,MAAA,OACZ,QAAbojjB,EAAAxvqB,EAAMktO,eAAO,IAAAsic,GAAbA,EAAAvvqB,KAAAD,EAAgB4W,GAAM,wBAAAy+U,EAAA/7M,OAAA,GAAA67M,EAAA,KACvB,KACEn1V,EAAMktO,SACPnmN,YAAW,WACP21oB,GAAW,EACf,GAAG,IAEX,EA6DoB/0Q,QAASu/Q,EAAAA,OAIrBzjR,EAAAA,cAAC1nP,EAAO,KACH/7J,EAAMsM,OAASk7pB,EAAAA,GAAYn+qB,KACxBo6Z,EAAAA,cAACgtD,EAAAA,EAAc,CACXC,aAAW,EACX/ic,SArDM,SAAC3Y,GACvB25qB,EAAa35qB,GAEb,IAAMy6qB,EAAa,CACf74pB,KAAM,GAAFhjB,OAAK2/X,IAAOA,IAAAA,IAAWv+X,EAAM,KAAK21G,QAAQznB,OAAO,eAAc,OAAAtvF,OAAM2/X,IAAOA,IAAAA,IAAWv+X,EAAM,KAAK21G,QAAQznB,OAAO,gBACrHjgE,GAAI,aACJvC,SAAS,EACT6F,KAAM,CACFolN,QAAQ,EACRojc,SAAU/5qB,EAAM,GAChB04c,OAAQ14c,EAAM,IAElBwxW,oBAAgBx8W,GAEpB60gB,EAAW4wK,EACf,EAuCoBz6qB,MAAO6zN,IAGX46L,EAAAA,cAACyG,EAAAA,GAAU,CAAC63Q,YAAU,EAACC,cAAe,KAE9Bv+Q,EAAAA,cAAAA,EAAAA,SAAA,KACKxuV,EACGwuV,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAAA,WACAA,EAAAA,cAACngV,EAAAA,EAAO,CAAC38D,KAAMkiZ,EAAAA,EAAa6U,QAC5Bja,EAAAA,cAAA,YAGJA,EAAAA,cAAA,YACKurR,aAAgB,EAAhBA,EAAkBjgrB,QAAS,EACxB00Z,EAAAA,cAAAA,EAAAA,SAAA,KACKurR,aAAgB,EAAhBA,EAAkB/8qB,KAAI,SAAAsnE,GAAI,IAAA0omB,EAAAE,EAAA,OACvB1+Q,EAAAA,cAAC0d,EAAAA,SAAQ,CAAClza,IAAKsrE,EAAKt2C,IAChBwgY,EAAAA,cAAC2qR,GAAmB,CAChB70mB,KAAMA,EACNvmB,YAAahzC,EAAMgzC,YACnBu5W,SAA6B,QAApB01Q,EAACjiqB,EAAM8/E,qBAAa,IAAAmilB,IAAnBA,EAAqB94jB,MAAK,SAAA4+I,GAAY,OAAIA,EAAa9kO,KAAOs2C,EAAKt2C,EAAE,KAC/E47e,WAAYA,EACZvyf,MAAe,QAAT61pB,EAAA5omB,EAAKhzC,YAAI,IAAA47oB,OAAA,EAATA,EAAW71pB,OAAQtM,EAAMsM,KAAK0uE,oBACpCwrR,eAAgBxmW,EAAMwmW,iBAEnB,KAInBi9C,EAAAA,cAAC69Q,GAAQ,KACL79Q,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,+BAUzDwgY,EAAAA,cAAC+4C,GAAc,MACRx8b,EAAMilb,cAAgBhwX,GAAwC,KAA7B+5mB,aAAgB,EAAhBA,EAAkBjgrB,SAClD00Z,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAM4iqB,cAAgBC,EAAAA,EAAc9wQ,IAC/BtO,EAAAA,cAACyqR,GAAqB,KACpBzqR,EAAAA,cAAC0qR,GAAmB,CAACz3pB,QAAS1W,EAAM+iqB,iBAChCt/Q,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM86Z,EAAAA,MACvB7qB,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,qCAEzBwgY,EAAAA,cAAC0qR,GAAmB,CAACz3pB,QAAS1W,EAAMgjqB,oBAChCv/Q,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM86Z,EAAAA,MACvB7qB,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,2CAI7BwgY,EAAAA,cAAAA,EAAAA,SAAA,KACKzjZ,EAAM4iqB,cAAgBC,EAAAA,EAAc1wP,QACjC1uB,EAAAA,cAACwqR,GAAY,CAACv3pB,QAAS1W,EAAM+iqB,iBACzBt/Q,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM86Z,EAAAA,MACvB7qB,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,qCAG3BjjB,EAAM4iqB,cAAgBC,EAAAA,EAAclkQ,SAClClb,EAAAA,cAACwqR,GAAY,CAACv3pB,QAAS1W,EAAMgjqB,oBACzBv/Q,EAAAA,cAACj6Q,EAAAA,EAAe,CAACh2H,KAAM86Z,EAAAA,MACvB7qB,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,8CAO3C+rpB,aAAgB,EAAhBA,EAAkBjgrB,QAAS,GAAKiR,EAAMsM,OAASk7pB,EAAAA,GAAYn+qB,OACzDo6Z,EAAAA,cAAAA,EAAAA,SAAA,KACIA,EAAAA,cAACpoX,EAAAA,GAAM,CACH10B,KAAM4+Z,EAAAA,GAAY7H,MAClBrf,WAAYwJ,EAAAA,GAAkBC,SAC9BpxY,QAAS1W,EAAMi+a,QACfr8a,SAAU5B,EAAMsM,OAASk7pB,EAAAA,GAAYn+qB,MAAQw/N,EAAU,IAAO7oN,EAAM8/E,eAAiD,KAAb,QAAnByulB,EAAAvuqB,EAAM8/E,qBAAa,IAAAyulB,OAAA,EAAnBA,EAAqBx/qB,SAE1G00Z,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,mBAEzBwgY,EAAAA,cAACpoX,EAAAA,GAAM,CACH10B,KAAM4+Z,EAAAA,GAAY7H,MAClBhnZ,QAAS1W,EAAMunqB,OACf3lqB,SAAU5B,EAAMsM,OAASk7pB,EAAAA,GAAYn+qB,MAAQw/N,EAAU,IAAO7oN,EAAM8/E,eAAiD,KAAb,QAAnB0ulB,EAAAxuqB,EAAM8/E,qBAAa,IAAA0ulB,OAAA,EAAnBA,EAAqBz/qB,SAE1G00Z,EAAAA,cAAC2D,EAAAA,EAAgB,CAACnkY,GAAG,qBAOjD,sDCxZWyspB,EA4BAC,EAcAC,mCClCAC,EAAa,aAabC,EAAc,eAKdC,EAAiB,kBAKjBC,EAAa,cAKbC,EAAkB,eAKlBh1f,EAAU,UAKVi1f,EAAe,eAKfC,EAAiB,kBAKjBC,EAAe,gBAKfC,EAAiB,kBAKjBC,EAAY,cAKZC,EAAoB,sBAKpBC,EAAmB,qBAUnBC,EAAqB,uBAKrBC,EAAe,gBAKfC,EAAmB,mBAKnBr1Z,EAAQ,QAKRN,EAAU,UAKV2vO,EAAU,UAUVimL,EAAwB,wBAKxBC,EAAmB,mBAKnBC,EAAoB,oBAKpBC,EAAiB,iBAKjBC,EAA2B,2BAK3BC,EAAsB,sBAKtBC,EAAqB,uBAerBC,EAAoB,sBAKpBz1b,EAAe,SAKf8vE,EAAc,cAKdp5N,EAAW,WAKXg/kB,EAAa,aAebC,EAAa,aAKbC,EAAS,SAKTC,EAAW,WAKXC,EAAW,WAKXC,EAAc,cAKdC,EAAiB,iBAejBC,EAAoB,oBAKpBC,EAAc,cAedC,EAAkB,kBA8BlBC,EAAY,gBAKZ/mlB,EAAW,aAKXgnlB,EAAc,SAedC,EAAe,UAKfC,EAAY,YAUZC,GAAa,aAKbC,GAAe,eAUfC,GAAqB,qBAKrBC,GAAgB,iBAKhBC,GAAmB,oBAKnBC,GAAmB,mBAKnB35qB,GAAQ,QAeR2xf,GAAY,YAKZioL,GAAsB,sBAKtBC,GAAgB,gBAKhB,GAAS,SAKTC,GAAgB,gBAKhBC,GAAqB,qBAKrBC,GAA0B,0BAK1BC,GAAc,cAKd7qf,GAAY,YAKZ+mR,GAAc,cAKd+jO,GAAkB,kBAKlBC,GAAsB,sBAKtBtlK,GAAQ,gBAURulK,GAAU,WAKVC,GAAc,cAKdC,GAAW,WAKXC,GAAqB,uBAKrBC,GAAY,iBAKZC,GAAe,eAKfC,GAAgB,gBAUhBC,GAAe,eAUfC,GAAiB,iBA6CjBC,GAAiB,iBAKjBC,GAAqB,qBAKrBC,GAAoB,oBAmCpBC,GAAmB,mBAUnBnwe,GAAO,OAKPowe,GAAkB,kBAKlBC,GAAoB,oBAUpBC,GAAoB,oBAKpBC,GAAoB,oBAUpBC,GAAgB,gBAehBC,GAAsB,sBAKtBC,GAAiB,iBAKjBC,GAAkB,kBAKlBC,GAAkB,kBAelBC,GAAmB,mBAenBC,GAAkB,kBAKlBC,GAAmB,mBAKnBC,GAAe,mBAefC,GAAc,cAKdC,GAAwB,wBAKxBC,GAAkB,mXAKlBC,GAAmB,qnBC/tBnBC,GAAU,mBAKVpyZ,GAAU,QAUVqyZ,GAAe,aAKfC,GAAmB,0BAKnBC,GAAkB,yBAKlBC,GAAc,gBAKdC,GAAe,iBAKfC,GAAe,iBAKfC,GAAmB,qBAKnBC,GAAa,eAUbC,GAAoB,kBAKpBC,GAAkB,oBAKlBC,GAAe,sBAKfC,GAAU,YAeVC,GAAqB,mBAUrBC,GAAiB,qBAKjBC,GAAsB,wBAKtBC,GAAqB,uBAKrBC,GAAqB,uBAKrBC,GAAqB,uBAKrBC,GAAmB,qBAKnBC,GAAkB,gBAKlBjyN,GAAc,iBAUdkyN,GAAc,oBA8BdC,GAAW,SAKXC,GAAW,SAKXC,GAAc,YAKdjzN,GAAY,YAKZkzN,GAAqB,uBAKrBC,GAAe,aAKfC,GAAc,YAKdC,GAAgB,cAKhBC,GAAe,aAUfC,GAAgB,cAKhBC,GAAqB,oBAKrBC,GAAgB,eAKhBC,GAAgB,eAUhBC,GAAc,gBAUdC,GAAgB,mBAKhBC,GAAgB,cAehBC,GAAY,wBAKZC,GAAc,YAKdC,GAAY,UAKZ/zN,GAAY,UAKZF,GAAa,WAKbk0N,GAAkB,gBAKlBC,GAAmB,iBAKnBC,GAAa,aAUbC,GAAiB,mBAKjBC,GAA2B,6BA6C3BC,GAAoB,sBA8BpBC,GAAmB,iBAKnBC,GAAgB,gBAKhBC,GAAkB,kBAKlBC,GAAiB,qBAKjBC,GAAiB,kBAKjBC,GAAiB,eAKjBC,GAAiB,cAKjBC,GAAiB,eA6CjBC,GAAgB,cAyBhBC,GAAqB,mBAUrBC,GAAiB,eAkDjBC,GAAmB,qBAKnBC,GAAuB,qBAKvBC,GAA0B,wBAK1BC,GAAqB,yBFzkBhC,SAAWhJ,GAGPA,EAAWA,EAAoB,QAAI,GAAK,UAExCA,EAAWA,EAAoB,QAAI,GAAK,UAExCA,EAAWA,EAAkB,MAAI,GAAK,QAEtCA,EAAWA,EAAwB,YAAI,GAAK,cAE5CA,EAAWA,EAAwB,YAAI,GAAK,cAE5CA,EAAWA,EAAyB,aAAI,GAAK,eAE7CA,EAAWA,EAAyB,aAAI,GAAK,eAE7CA,EAAWA,EAAyB,aAAI,GAAK,eAE7CA,EAAWA,EAA0B,cAAI,GAAK,gBAE9CA,EAAWA,EAAyB,aAAI,GAAK,cAEhD,CAvBD,CAuBGA,IAAeA,EAAa,CAAC,IAKhC,SAAWC,GAGPA,EAAoB,OAAI,SAExBA,EAAsB,SAAI,WAE1BA,EAAwB,WAAI,YAE/B,CATD,CASGA,IAAgBA,EAAc,CAAC,IAKlC,SAAWC,GAGPA,EAAuB,WAAI,aAE3BA,EAAwB,YAAI,cAE5BA,EAAwB,YAAI,cAE5BA,EAAwB,YAAI,cAE5BA,EAAwB,YAAI,aAE/B,CAbD,CAaGA,IAAeA,EAAa,CAAC,IGtDhC,ICPQzhf,GDOJwqf,GAAwB,WAQxB,SAASA,EAAOx+mB,EAAQy+mB,GACpBrtrB,KAAK4uE,OAASA,EACd5uE,KAAKqtrB,QAAUA,EACfrtrB,KAAKotgB,SAAWptgB,KAAKqtrB,QAAQC,WAAW,mBACxCttrB,KAAK4b,kBACT,CA6EA,OArEAwxqB,EAAO1rrB,UAAU6a,OAAS,WAETvc,KAAK4uE,OAClB5uE,KAAKutrB,gBAAkBvtrB,KAAKotgB,SAASogL,YAAYrJ,EAAWl0oB,SAC5DjwC,KAAKutrB,gBAAgBE,aACzB,EAOAL,EAAO1rrB,UAAUgrM,QAAU,SAAUjpM,QACvB,IAANA,IAAgBA,EAAI,CAAEixO,YAAa,YACvC10O,KAAK4uE,OAAOogH,OAAOvrL,EAAEixO,YAAc,SAAUjxO,EACjD,EAMA2prB,EAAO1rrB,UAAUguL,QAAU,WACvB1vL,KAAKsc,qBACT,EACA8wqB,EAAO1rrB,UAAUqmrB,cAAgB,WAC7B/nrB,KAAK4uE,OAAS,IAClB,EACAw+mB,EAAO1rrB,UAAUka,iBAAmB,WAC5B5b,KAAK4uE,OAAOuvH,cAGhBn+L,KAAK4uE,OAAOprD,GAAG,EAAqBxjB,KAAK0sM,QAAS1sM,MAClDA,KAAK4uE,OAAOprD,GAAG,EAAcxjB,KAAK+vR,MAAO/vR,MACzCA,KAAK4uE,OAAOprD,GAAG,GAAsBxjB,KAAK+nrB,cAAe/nrB,MAC7D,EACAotrB,EAAO1rrB,UAAU4a,oBAAsB,WAC/Btc,KAAK4uE,OAAOuvH,cAGhBn+L,KAAK4uE,OAAOsC,IAAI,EAAqBlxE,KAAK0sM,SAC1C1sM,KAAK4uE,OAAOsC,IAAI,EAAclxE,KAAK+vR,OACnC/vR,KAAK4uE,OAAOsC,IAAI,GAAsBlxE,KAAK+nrB,eAC/C,EACAqF,EAAO1rrB,UAAUquR,MAAQ,SAAUtsR,GAC/B,GAA+B,SAA3BzD,KAAK4uE,OAAO8+mB,WACZ,OAAQjqrB,EAAEd,KAAK6U,OACX,KAAK,GACL,KAAK,EAED,IAAI1S,EAAa9E,KAAK4uE,OAAO++mB,cAAcC,eAAe9orB,WAC1D,GAA2B,IAAtBA,EAAWtB,QACW,IAAtBsB,EAAWtB,QAAoD,IAApCsB,EAAW,GAAGA,WAAWtB,SAA4C,OAA1BsB,EAAW,GAAGka,UACrD,MAA1Bla,EAAW,GAAGka,SAA6C,QAA1Bla,EAAW,GAAGka,UAAoD,KAA9Bla,EAAW,GAAGi+F,aAAuB,CAChH,IAAI+jB,EAAO9mH,KAAK4uE,OAAO++mB,cAAcC,eACR,QAAzB5trB,KAAK4uE,OAAOi/mB,SACZ/mkB,EAAKihB,UAAY,mBAEa,OAAzB/nI,KAAK4uE,OAAOi/mB,SACjB/mkB,EAAKihB,UAAY,QAGjBjhB,EAAKihB,UAAY,eAErB/nI,KAAK4uE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAejurB,KAAK4uE,OAAO++mB,cAAc9upB,cAAeioF,EAAKhiH,WAAW,GAAI,EAClI,EAIhB,EACOsorB,CACX,CA3F2B,GEAhBc,GAAW,UAMXC,GAAS,SAMTC,GAAc,cAMdC,GAAmB,kBAMnBC,GAAY,YAMZC,GAAiB,gBAMjBC,GAAS,QAMTC,GAAuB,uBAMvBC,GAAgB,gBAMhBC,GAAyB,yBAYzBC,GAAW,UAMXC,GAAe,cAMfC,GAAyB,yBAMzBC,GAAuB,uBD5F9BhkhB,IACI63B,GAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,GAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,GAAc5oF,EAAGF,EAC5B,EACO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,GAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,GAEAC,GAA0C,SAAUC,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAGIn2B,GAAU,CACV,UAAa,EACb,IAAO,EACP,MAAS,GACT,MAAS,GACT,QAAW,GACX,IAAO,GACP,MAAS,GACT,SAAY,GACZ,MAAS,GACT,OAAU,GACV,OAAU,GACV,SAAY,GACZ,IAAO,GACP,KAAQ,GACR,UAAa,GACb,QAAW,GACX,WAAc,GACd,UAAa,GACb,OAAU,GACV,OAAU,GACV,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,IAAO,IACP,IAAO,IACP,IAAO,IACP,UAAa,IACb,KAAQ,IACR,MAAS,IACT,MAAS,IACT,IAAO,IACP,aAAgB,IAChB,YAAe,IACf,YAAe,IACf,UAAa,IACb,aAAgB,IAChB,YAAe,IACf,IAAK,IACL,IAAK,IACL,IAAK,KAqBLw0H,GAAgC,SAAUvkM,GAQ1C,SAASukM,EAAe31M,EAAS2E,GAC7B,IAAI9F,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAiCnD,OA1BAiC,EAAM+2M,gBAAkB,SAAUv1M,GAS9B,IAPA,IAAIw1M,EAAWx1M,EAAEmQ,OACbslM,EAAYz1M,EAAEgQ,QACd0lM,EAAa11M,EAAEkQ,SACf2wgB,EAAY7ghB,EAAEiQ,QAEd0lM,EAAa31M,EAAE+T,MAEVpS,EAAK,EAAGqiH,EADNthH,OAAOC,KAAKnE,EAAMo3M,YACGj0M,EAAKqiH,EAAOjkH,OAAQ4B,IAGhD,IAFA,IAAI1C,EAAM+kH,EAAOriH,GAER7F,EAAK,EAAG+5M,EADMr3M,EAAMo3M,WAAW,GAAK32M,GAAK8E,MAAM,KACAjI,EAAK+5M,EAAmB91M,OAAQjE,IAAM,CAC1F,IAAIg6M,EAAUD,EAAmB/5M,GAC7Bi6M,EAAUC,EAAiBC,iBAAiBH,EAAQ1tM,QACpDotM,IAAaO,EAAQ5lM,QAAWslM,IAAcM,EAAQ/lM,UAAW6wgB,GACjEnrU,IAAeK,EAAQ7lM,UAAYylM,IAAeI,EAAQj1H,UAC1D9gF,EAAEilM,OAAShmM,EAEnB,CAEAT,EAAM03M,WACN13M,EAAM03M,UAAUl2M,EAExB,EACAxB,EAAM04B,OACC14B,CACX,CAgFA,IAAIw3M,EAcJ,OAxIA1uC,GAAUguC,EAAgBvkM,GA2C1BilM,EAAmBV,EAMnBA,EAAer3M,UAAUguL,QAAU,WAC/B1vL,KAAK45M,eACLplM,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,KAClC,EAUA+4M,EAAer3M,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAEhE,EACA6T,EAAer3M,UAAUi5B,KAAO,WAC5B36B,KAAKu4M,YACT,EAMAQ,EAAer3M,UAAU69L,cAAgB,WACrC,MAAO,UACX,EAMAwZ,EAAer3M,UAAU62M,WAAa,WAClCv4M,KAAKoD,QAAQwY,iBAAiB5b,KAAKojB,UAAWpjB,KAAKg5M,gBACvD,EAMAD,EAAer3M,UAAUk4M,aAAe,WACpC55M,KAAKoD,QAAQkZ,oBAAoBtc,KAAKojB,UAAWpjB,KAAKg5M,gBAC1D,EAOAD,EAAeW,iBAAmB,SAAUj6M,GACxC,GAAIA,KAAUO,KAAK65M,YACf,OAAO75M,KAAK65M,YAAY,GAAKp6M,GAEjC,IAAI2G,EAAO3G,EAAOyJ,cAAc1B,MAAM,KAClCsyM,EAAU,CACVlmM,QAAkC,IAAzBxN,EAAKmB,QAAQ,OACtBkM,SAAoC,IAA1BrN,EAAKmB,QAAQ,QACvBoM,UAAsC,IAA3BvN,EAAKmB,QAAQ,SACxBg9E,QAAS,MASb,OAPIn+E,EAAKA,EAAK5C,OAAS,GAAGA,OAAS,GAAO46E,OAAOh4E,EAAKA,EAAK5C,OAAS,IAChEs2M,EAAQv1H,QAAUnG,OAAOh4E,EAAKA,EAAK5C,OAAS,IAG5Cs2M,EAAQv1H,QAAUk1H,EAAiBM,WAAW3zM,EAAKA,EAAK5C,OAAS,IAErEi2M,EAAiBI,YAAY,GAAKp6M,GAAUq6M,EACrCA,CACX,EAEAf,EAAegB,WAAa,SAAUC,GAClC,OAAOz1H,GAAQ,GAAKy1H,IAAWA,EAAOlhH,cAAcoG,WAAW,EACnE,EAEA65G,EAAec,YAAc,CAAC,EAC9B/W,GAAW,EACP,QAAS,CAAC,IACXiW,EAAer3M,UAAW,kBAAc,GAC3CohM,GAAW,EACP,QAAS,UACViW,EAAer3M,UAAW,iBAAa,GAC1CohM,GAAW,EACP,WACDiW,EAAer3M,UAAW,iBAAa,GACzB+3M,EAAmB3W,GAAW,CAC3C,MACDiW,EAEP,CA1ImC,CA0IjC,MEtNEi2e,GAA4B,WAQ5B,SAASA,EAAWpgnB,EAAQy+mB,GACxBrtrB,KAAK4uE,OAASA,EACd,IAAIqgnB,EAAiB5B,EACrBrtrB,KAAKkvrB,gBAAkBD,EAAe3B,WAAW,mBACjDttrB,KAAK4b,kBACT,CAsPA,OArPAozqB,EAAWttrB,UAAUka,iBAAmB,WACpC5b,KAAK4uE,OAAOprD,GAAG,GAAmBxjB,KAAK2mrB,WAAY3mrB,MACnDA,KAAK4uE,OAAOprD,GAAG,EAAmBxjB,KAAKmvrB,aAAcnvrB,MACrDA,KAAK4uE,OAAOprD,GAAG,GAAqBxjB,KAAKovrB,iBAAkBpvrB,MAC3DA,KAAK4uE,OAAOprD,GAAG,EAAgBxjB,KAAK0vL,QAAS1vL,MAC7CA,KAAK4uE,OAAOprD,GAAG,GAAsBxjB,KAAK+nrB,cAAe/nrB,KAC7D,EACAgvrB,EAAWttrB,UAAUytrB,aAAe,WAChCnvrB,KAAK4uE,OAAOk/mB,UAAUC,cAActmiB,SAASjkI,GAAG,GAA2BxjB,KAAK+W,UAAW/W,KAC/F,EACAgvrB,EAAWttrB,UAAU4a,oBAAsB,WACvCtc,KAAK60P,cACL70P,KAAK4uE,OAAOsC,IAAI,GAAmBlxE,KAAK2mrB,YACxC3mrB,KAAK4uE,OAAOsC,IAAI,GAAqBlxE,KAAKovrB,kBAC1CpvrB,KAAK4uE,OAAOsC,IAAI,EAAmBlxE,KAAKmvrB,cACxCnvrB,KAAK4uE,OAAOsC,IAAI,EAAgBlxE,KAAK0vL,SACrC1vL,KAAK4uE,OAAOsC,IAAI,GAAsBlxE,KAAK+nrB,eAC3C/nrB,KAAK4uE,OAAOk/mB,UAAUC,cAActmiB,SAASv2E,IAAI,GAA2BlxE,KAAK+W,UACrF,EACAi4qB,EAAWttrB,UAAU2trB,cAAgB,WACjC,OAAOrvrB,KAAK4uE,OAAOrqE,cAAc,WAAY,CAAE9B,UAAW,qBAA4BzC,KAAK4uE,OAAOq1I,UACtG,EACA+qe,EAAWttrB,UAAUiuP,UAAY,SAAUvsP,GACvCpD,KAAKkyN,eAAiB,IAAInZ,GAAe31M,EAAS,CAC9Cu2M,UAAW35M,KAAKsvrB,eAAe30pB,KAAK36B,MAAOq5M,WAAYr5M,KAAK4uE,OAAOk/mB,UAAU/7d,UAAW3uM,UAAW,YAEvG,KAAazH,IAAI3b,KAAKuvrB,eAAgB,YAAavvrB,KAAKyrO,iBAAkBzrO,KAC9E,EACAgvrB,EAAWttrB,UAAUmzP,YAAc,WAC3B70P,KAAKkyN,gBACLlyN,KAAKkyN,eAAexiC,UAEpB1vL,KAAKuvrB,gBACL,KAAa1rnB,OAAO7jE,KAAKuvrB,eAAgB,YAAavvrB,KAAKyrO,iBAEnE,EACAujd,EAAWttrB,UAAU8trB,gBAAkB,WACnCxvrB,KAAK4uE,OAAOsjJ,eAAiB,IAAInZ,GAAe/4M,KAAK2trB,cAAcC,eAAgB,CAC/Ej0e,UAAW35M,KAAK4uE,OAAO6gN,QAAQ90P,KAAK36B,KAAK4uE,QAASyqI,WAAYr5M,KAAK4uE,OAAOk/mB,UAAU/7d,UAAW3uM,UAAW,WAElH,EACA4rqB,EAAWttrB,UAAU+trB,kBAAoB,WACrCzvrB,KAAK4uE,OAAOsjJ,eAAexiC,SAC/B,EACAs/f,EAAWttrB,UAAU+pO,iBAAmB,SAAUhoO,GAC9CzD,KAAK4uE,OAAOogH,OAAO,GAA4B,CAAErsL,KAAMc,GAC3D,EACAurrB,EAAWttrB,UAAU4trB,eAAiB,SAAU/7qB,GAC5C,OAAQA,EAAMm1L,QACV,IAAK,cACD1oM,KAAKovrB,iBAAiB77qB,GACtBA,EAAMoG,iBACN,MACJ,IAAK,gBACG3Z,KAAK4uE,OAAO0/a,gBAAgBhkS,QAE5BtqN,KAAK4uE,OAAO68a,cAAcikM,YAAYC,WAAWvsrB,QAAQ6B,cAD1C,qCACkE2Q,QAIjG,EACAo5qB,EAAWttrB,UAAUqV,UAAY,SAAUtT,GAE9B,gBADDA,EAAE8P,MAAMm1L,SAERjlM,EAAE8P,MAAMoG,iBACR3Z,KAAK2mrB,WAAWljrB,GAChBA,EAAEs9M,SAAS,CACP2zB,YAAa,aACbg5c,WAAY,OACZn6qB,MAAO9P,EAAE8P,QAIzB,EASAy7qB,EAAWttrB,UAAUilrB,WAAa,SAAUhkrB,GACxC3C,KAAK4uE,OAAOysJ,QAAS,EACrBr7N,KAAK4uE,OAAOosH,QAAQ,EAAoB,CAAE05C,YAAa,aAAck7c,WAAY,aAAcjtrB,KAAMA,IACrG,IAAIu3d,GAAU,QAAU,IAAMxB,GAAa14d,KAAK4uE,OAAOxrE,SAUvD,GATApD,KAAK2trB,cAAgB3trB,KAAKkvrB,gBAAgB1B,YAAYrJ,EAAWl0oB,SACjEjwC,KAAK4uE,OAAOogH,OAAO,EAA0B,CACzC4ggB,WAAY,aAAczpZ,WAAY,UACtCupZ,YAAa1vrB,KAAK4uE,OAAOihnB,0BAEzB,QAAkB7vrB,KAAKuvrB,kBACvBvvrB,KAAKuvrB,eAAiBvvrB,KAAKqvrB,iBAE/BrvrB,KAAK4uE,OAAOkhnB,kBACR9vrB,KAAK4uE,OAAOmhnB,eAAezle,OAAQ,CACnC,IAAI0le,OAAa,GAEbA,GADA,QAAkBhwrB,KAAK4uE,OAAOxrE,QAAQ6B,cAAc,IAAMjF,KAAK4uE,OAAOxrE,QAAQs0B,GAAK,iBACtE13B,KAAK4uE,OAAOrqE,cAAc,MAAO,CAC1C9B,UAAW,mBAAoBi1B,GAAI13B,KAAK4uE,OAAOxrE,QAAQs0B,GAAK,iBAInD13B,KAAK4uE,OAAOxrE,QAAQ6B,cAAc,IAAMjF,KAAK4uE,OAAOxrE,QAAQs0B,GAAK,iBAEvEh0B,YAAY1D,KAAKuvrB,gBAC5BvvrB,KAAK4uE,OAAOxrE,QAAQM,YAAYssrB,GAChCA,EAAW5mrB,MAAMyX,OAAS7gB,KAAK2trB,cAAcsC,WAAW7mrB,MAAMyX,OAC9DmvqB,EAAW5mrB,MAAMgqC,UAAYpzC,KAAK2trB,cAAcsC,WAAW7mrB,MAAMgqC,UACjEpzC,KAAKiwrB,WAAWxmrB,MAAQzJ,KAAKkwrB,mBAC7BlwrB,KAAK2trB,cAAcsC,WAAW7mrB,MAAMwjB,QAAU,OAC9CojqB,EAAW5mrB,MAAMwjB,QAAU,QAC3B5sB,KAAKiwrB,WAAW7mrB,MAAMwjB,QAAU,OACpC,MAEI5sB,KAAK2trB,cAAcsC,WAAWvsrB,YAAY1D,KAAKuvrB,gBAC/CvvrB,KAAKiwrB,WAAWxmrB,MAAQzJ,KAAKkwrB,mBAC7BlwrB,KAAK2trB,cAAcC,eAAexkrB,MAAMwjB,QAAU,OAClD5sB,KAAKuvrB,eAAenmrB,MAAMwjB,QAAU,QAExC5sB,KAAK4uE,OAAOysJ,QAAS,EACrBr7N,KAAK4uE,OAAOuhnB,mBAAmBnwrB,KAAK4uE,OAAO0/a,gBAAgBnke,OAC3DnqB,KAAK4uE,OAAOu5gB,kBAAkB,cAC1BnolB,KAAK4uE,OAAOwhnB,eACZ,QAAY,CAACpwrB,KAAK4uE,OAAOwhnB,cAAe,CAACrE,MAE7C,QAAY7xN,EAAS,CAACrC,KACtB73d,KAAK4uE,OAAO4sZ,iBAAiB,cAAc,GAC3Cx7d,KAAK2vP,UAAU3vP,KAAKuvrB,gBACpBvvrB,KAAKyvrB,oBACLzvrB,KAAKuvrB,eAAe35qB,QACpB5V,KAAK4uE,OAAOqjB,eACP,QAAkBjyF,KAAK4uE,OAAOrlB,cAAiBvpD,KAAK4uE,OAAOmhnB,eAAezle,SAClDtqN,KAAK4uE,OAAOxrE,QAAQ6B,cAAc,sCACxCmE,MAAMwjB,QAAU,QAEvC5sB,KAAK4uE,OAAOosH,QAAQ,EAAuB,CAAE05C,YAAa,aAAck7c,WAAY,aAAcjtrB,KAAMA,IACxG3C,KAAK4uE,OAAOyhnB,mBAChB,EASArB,EAAWttrB,UAAU0trB,iBAAmB,SAAUzsrB,GAC9C3C,KAAK4uE,OAAOysJ,QAAS,EACrBr7N,KAAK4uE,OAAOosH,QAAQ,EAAoB,CAAE05C,YAAa,UAAWk7c,WAAY,UAAWjtrB,KAAMA,IAC/F,IAAI2trB,EAAWtwrB,KAAKiwrB,WACpBjwrB,KAAK4uE,OAAOogH,OAAO,EAA0B,CACzC4ggB,WAAY,UAAWzpZ,WAAY,aACnCupZ,YAAa1vrB,KAAK4uE,OAAOihnB,yBAE7B,IACIpmrB,EADA45M,EAAiBrjN,KAAK4uE,OAAOy0I,eAAeite,EAAS7mrB,OAIjDA,EAFe,OAAnB45M,GAA8C,KAAnBA,EACE,QAAzBrjN,KAAK4uE,OAAOi/mB,SACJ,mBAEsB,OAAzB7trB,KAAK4uE,OAAOi/mB,SACT,QAGA,eAIJxqe,EAERrjN,KAAK4uE,OAAOmhnB,eAAezle,QAC3Bgme,EAAS76qB,cAAcrM,MAAMwjB,QAAU,OACvC0jqB,EAASlnrB,MAAMwjB,QAAU,OACzB5sB,KAAK2trB,cAAcsC,WAAW7mrB,MAAMwjB,QAAU,QAC9C5sB,KAAK2trB,cAAcC,eAAe7ljB,UAAYt+H,IAG9C6mrB,EAASlnrB,MAAMwjB,QAAU,OACzB5sB,KAAK2trB,cAAcC,eAAexkrB,MAAMwjB,QAAU,QAClD5sB,KAAK2trB,cAAcC,eAAe7ljB,UAAYt+H,GAElDzJ,KAAK4uE,OAAOysJ,QAAS,EACrBr7N,KAAK4uE,OAAOu5gB,kBAAkBnolB,KAAK4uE,OAAO0/a,gBAAgBnke,OACtDnqB,KAAK4uE,OAAOwhnB,eACZ,QAAY,CAACpwrB,KAAK4uE,OAAOwhnB,cAAe,CAACrE,KAE7C/rrB,KAAK4uE,OAAO4sZ,iBAAiB,WAAW,GACxCx7d,KAAK60P,cACL70P,KAAKwvrB,kBACLxvrB,KAAK2trB,cAAcC,eAAeh4qB,QAClC5V,KAAK4uE,OAAOqjB,eACP,QAAkBjyF,KAAK4uE,OAAOrlB,cAAuE,IAAvDvpD,KAAK2trB,cAAcC,eAAe14iB,UAAU1xI,SAClExD,KAAK4uE,OAAOxrE,QAAQ6B,cAAc,sCACxCmE,MAAMwjB,QAAU,SAEvC5sB,KAAK4uE,OAAOosH,QAAQ,EAAuB,CAAE05C,YAAa,UAAWk7c,WAAY,UAAWjtrB,KAAMA,IAClG3C,KAAK4uE,OAAOk/mB,UAAUyC,WAAWvwrB,KAAK4uE,QACtC5uE,KAAK4uE,OAAO4hnB,uBACZxwrB,KAAK4uE,OAAOyhnB,oBACZrwrB,KAAK4uE,OAAOogH,OAAO,EAAmB,CAAC,EAC3C,EACAgggB,EAAWttrB,UAAUwurB,iBAAmB,WACpC,MAAwD,gBAAhDlwrB,KAAK2trB,cAAcC,eAAe7ljB,WACW,oBAAhD/nI,KAAK2trB,cAAcC,eAAe7ljB,WACc,SAAhD/nI,KAAK2trB,cAAcC,eAAe7ljB,WACsB,IAAxD/nI,KAAK2trB,cAAcC,eAAe9orB,WAAWtB,QACmB,MAA5DxD,KAAK2trB,cAAcC,eAAe9orB,WAAW,GAAGka,SACU,IAAvDhf,KAAK2trB,cAAcC,eAAe7ljB,UAAUvkI,QACa,QAA5DxD,KAAK2trB,cAAcC,eAAe9orB,WAAW,GAAGka,SACU,KAAvDhf,KAAK2trB,cAAcC,eAAe7ljB,UAAUvkI,OAAkB,GAAKxD,KAAK4uE,OAAOnlE,KAC/F,EAQAulrB,EAAWttrB,UAAUuurB,SAAW,WAC5B,OAAOjwrB,KAAK4uE,OAAOxrE,SAAWpD,KAAK4uE,OAAOxrE,QAAQ6B,cAAc,qBACpE,EAQA+prB,EAAWttrB,UAAU+urB,aAAe,WAChC,OAAQzwrB,KAAK4uE,OAAOmhnB,eAAezle,QAAUtqN,KAAKiwrB,WAAcjwrB,KAAKiwrB,WAAWx6qB,cAAgBzV,KAAKiwrB,UACzG,EAQAjB,EAAWttrB,UAAUguL,QAAU,WAC3B1vL,KAAKsc,qBACT,EACA0yqB,EAAWttrB,UAAUqmrB,cAAgB,WACjC/nrB,KAAK4uE,OAAS,IAClB,EACOognB,CACX,CApQ+B,GCRpB0B,GAAe,CACtB,KAAQ,CACJh/N,QAAS,QACTi/N,WAAY,OACZlnrB,MAAO,UAEX,OAAU,CACNiod,QAAS,QACTi/N,WAAY,SACZlnrB,MAAO,MAEX,UAAa,CACTiod,QAAS,QACTi/N,WAAY,YACZlnrB,MAAO,QAEX,cAAiB,CACbiod,QAAS,QACTi/N,WAAY,gBACZlnrB,MAAO,QAEX,WAAc,CACViod,QAAS,UACTi/N,WAAY,MACZlnrB,MAAO,OAEX,YAAe,CACXiod,QAAS,UACTi/N,WAAY,cACZlnrB,MAAO,OAEX,UAAa,CACTiod,QAAS,UACTi/N,WAAY,YACZlnrB,MAAO,OAEX,UAAa,CACTiod,QAAS,SACTi/N,WAAY,aAEhB,UAAa,CACTj/N,QAAS,SACTi/N,WAAY,aAEhB,UAAa,CACTj/N,QAAS,OACTi/N,WAAY,YACZlnrB,MAAO,WAEX,SAAY,CACRiod,QAAS,OACTi/N,WAAY,WACZlnrB,MAAO,YAEX,SAAY,CACRiod,QAAS,OACTi/N,WAAY,WACZlnrB,MAAO,QAEX,UAAa,CACTiod,QAAS,OACTi/N,WAAY,kBACZlnrB,MAAO,WAEX,cAAiB,CACbiod,QAAS,aACTi/N,WAAY,iBAEhB,YAAe,CACXj/N,QAAS,aACTi/N,WAAY,eAEhB,YAAe,CACXj/N,QAAS,aACTi/N,WAAY,eAEhB,aAAgB,CACZj/N,QAAS,aACTi/N,WAAY,gBAEhB,KAAQ,CACJj/N,QAAS,UACTi/N,WAAY,QAEhB,KAAQ,CACJj/N,QAAS,UACTi/N,WAAY,QAEhB,WAAc,CACVj/N,QAAS,QACTi/N,WAAY,cAEhB,SAAY,CACRj/N,QAAS,QACTi/N,WAAY,cAEhB,YAAe,CACXj/N,QAAS,SACTi/N,WAAY,UAEhB,YAAe,CACXj/N,QAAS,UACTjod,MAAO,KAEX,QAAW,CACPiod,QAAS,UACTjod,MAAO,MAEX,OAAU,CACNiod,QAAS,UACTi/N,WAAY,UAEhB,QAAW,CACPj/N,QAAS,UACTi/N,WAAY,WAEhB,WAAc,CACVj/N,QAAS,aACTi/N,WAAY,aACZlnrB,MAAO,IAEX,WAAc,CACViod,QAAS,aACTi/N,WAAY,aACZlnrB,MAAO,IAEX,qBAAwB,CACpBiod,QAAS,aACTi/N,WAAY,aACZlnrB,MAAO,SAEX,YAAe,CACXiod,QAAS,SACTi/N,WAAY,SAEhB,YAAe,CACXj/N,QAAS,SACTi/N,WAAY,SAEhB,YAAe,CACXj/N,QAAS,SACTi/N,WAAY,SAEhB,UAAa,CACTj/N,QAAS,SACTi/N,WAAY,SAEhB,YAAe,CACXj/N,QAAS,QACTi/N,WAAY,eAEhB,iBAAoB,CAChBj/N,QAAS,aACTi/N,WAAY,aACZlnrB,MAAO,SAEX,kBAAqB,CACjBiod,QAAS,QACTjod,MAAO,MAEX,oBAAuB,CACnBiod,QAAS,QACTjod,MAAO,MAEX,gBAAmB,CACfiod,QAAS,UACTjod,MAAO,KAEX,aAAgB,CACZiod,QAAS,QACTi/N,WAAY,eAEhB,kBAAqB,CACjBj/N,QAAS,gBACTjod,MAAO,eAEX,mBAAsB,CAClBiod,QAAS,gBACTjod,MAAO,gBAEX,oBAAuB,CACnBiod,QAAS,gBACTjod,MAAO,WCnLXmnrB,GAAgC,WAChC,SAASA,IACL5wrB,KAAK8hV,SAAW,CAAC,CACrB,CAgCA,OApBA8uW,EAAelvrB,UAAU0yB,SAAW,SAAUxsB,EAAMmZ,IAC5C,QAAkB/gB,KAAK8hV,SAAS,GAAKl6U,MACrC5H,KAAK8hV,SAAS,GAAKl6U,GAAQmZ,EAEnC,EASA6vqB,EAAelvrB,UAAU4rrB,WAAa,SAAU1lrB,GAC5C,IAAI,QAAkB5H,KAAK8hV,SAAS,GAAKl6U,IAErC,KAAM,eAAiBA,EAAO,qBAElC,OAAO5H,KAAK8hV,SAAS,GAAKl6U,EAC9B,EACOgprB,CACX,CApCmC,GCC/BC,GAAiC,WACjC,SAASA,IACL7wrB,KAAK8wrB,YAAc,CAAC,CACxB,CAkCA,OAxBAD,EAAgBnvrB,UAAUqvrB,YAAc,SAAUnprB,EAAMmZ,GACpD,IAAIiwqB,GAAQ,QAAa7M,EAAYv8qB,IACjC,QAAkB5H,KAAK8wrB,YAAY,GAAKE,MACxChxrB,KAAK8wrB,YAAY,GAAKE,GAASjwqB,EAEvC,EASA8vqB,EAAgBnvrB,UAAU8rrB,YAAc,SAAU5lrB,GAC9C,IAAIoprB,GAAQ,QAAa7M,EAAYv8qB,GACrC,IAAI,QAAkB5H,KAAK8wrB,YAAY,GAAKE,IAExC,KAAM,gBAAkBA,EAAQ,gBAGhC,OAAOhxrB,KAAK8wrB,YAAY,GAAKE,EAErC,EACOH,CACX,CAtCoC,GCHhCI,GAAqC,WACrC,SAASA,EAAoBrinB,GACzB5uE,KAAK4uE,OAASA,EACd5uE,KAAK4b,kBACT,CAiBA,OAhBAq1qB,EAAoBvvrB,UAAUka,iBAAmB,WAC7C5b,KAAK4uE,OAAOprD,GAAG,EAA4BxjB,KAAKkxrB,gBAAiBlxrB,MACjEA,KAAK4uE,OAAOprD,GAAG,EAAgBxjB,KAAKsc,oBAAqBtc,KAC7D,EACAixrB,EAAoBvvrB,UAAUwvrB,gBAAkB,SAAUvurB,GACtD,IAAIwurB,IAAqB,QAAMxurB,EAAK+xO,cAAqC,kBAArB/xO,EAAK+xO,aAAmD,gBAAhB/xO,EAAK+lM,QAC5F,QAAM/lM,KAAU,QAAMA,EAAK+xO,cAAqC,SAArB/xO,EAAK+xO,aAA+C,SAArB/xO,EAAK+xO,aAA2By8c,GAC3GnxrB,KAAK4uE,OAAOk/mB,UAAUsD,WAE1BpxrB,KAAK4uE,OAAOogH,OAAO,EAAuB,CAAErsL,KAAMA,IAClD3C,KAAK4uE,OAAOogH,OAAO,GAAc,CAAC,EACtC,EACAiigB,EAAoBvvrB,UAAU4a,oBAAsB,WAChDtc,KAAK4uE,OAAOsC,IAAI,EAA4BlxE,KAAKkxrB,iBACjDlxrB,KAAK4uE,OAAOsC,IAAI,EAAgBlxE,KAAKsc,oBACzC,EACO20qB,CACX,CAtBwC,GCLpC,GAAwC,WACxC,IAAIruf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKI22kB,GAA8B,SAAU78qB,GAExC,SAAS68qB,IACL,OAAkB,OAAX78qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAaA,OAhBA,GAAUqxrB,EAAc78qB,GAIxB,GAAW,EACP,QAAS,OACV68qB,EAAa3vrB,UAAW,mBAAe,GAC1C,GAAW,EACP,QAAS,OACV2vrB,EAAa3vrB,UAAW,mBAAe,GAC1C,GAAW,EACP,QAAS,OACV2vrB,EAAa3vrB,UAAW,iBAAa,GACxC,GAAW,EACP,QAAS,OACV2vrB,EAAa3vrB,UAAW,WAAO,GAC3B2vrB,CACX,CAlBiC,CAkB/B,MCzCE,GAAwC,WACxC,IAAIzuf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAEW42kB,GAAY,CAAC,OAAQ,IAAK,MAAO,OAAQ,IAAK,SAAU,WAAY,SAAU,IAAK,WACnFC,GAAc,CAAC,OAAQ,IAAK,MAAO,OAAQ,QAAS,IAAK,SAAU,SAAU,WAAY,IAAK,WAC9FC,GAAc,CACrB,SAAU,OAAQ,UAAW,IAAK,QAAS,IAAK,YAAa,SAAU,IAAK,UAAW,IAAK,aAK5F70H,GAAqC,SAAUnojB,GAE/C,SAASmojB,IACL,OAAkB,OAAXnojB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAaA,OAhBA,GAAU28jB,EAAqBnojB,GAI/B,GAAW,EACP,QAAS88qB,KACV30H,EAAoBj7jB,UAAW,YAAQ,GAC1C,GAAW,EACP,QAAS6vrB,KACV50H,EAAoBj7jB,UAAW,cAAU,GAC5C,GAAW,EACP,QAAS8vrB,KACV70H,EAAoBj7jB,UAAW,cAAU,GAC5C,GAAW,EACP,SAAS,IACVi7jB,EAAoBj7jB,UAAW,eAAW,GACtCi7jB,CACX,CAlBwC,CAkBtC,MC9CE,GAAwC,WACxC,IAAI/5X,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKW+2kB,GAAc,CACrB,CACIz7c,MAAO,OAAQnkK,WAAY,OAAQlgD,SAAU,IAAK+/pB,cAAc,EAChEhwe,UAAU,SAAsB,SAAU1mL,GACtC,MAAO,2BAA+BA,EAAKpzB,KAAO,SACtD,IACA+prB,iBAAkB,CAAEzgjB,MAAO,mBAE/B,CACI8kG,MAAO,eAAgBnkK,WAAY,eAAgB9wD,KAAM,WACzD42E,OAAQ,sBAAuBhmE,SAAU,IAAKhX,MAAO,OAEzD,CACIq7N,MAAO,OAAQnkK,WAAY,OAAQlgD,SAAU,GAAIhX,MAAO,MACxD+mM,UAAU,SAAsB,SAAU1mL,GACtC,MAAO,2BAA+BA,EAAK5f,KAAO,SACtD,IAAIu8E,OAAQ,OAMhBi6lB,GAAqC,SAAUp9qB,GAE/C,SAASo9qB,IACL,OAAkB,OAAXp9qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAU4xrB,EAAqBp9qB,GAI/B,GAAW,EACP,SAAS,IACVo9qB,EAAoBlwrB,UAAW,sBAAkB,GACpD,GAAW,EACP,QAAS+vrB,KACVG,EAAoBlwrB,UAAW,eAAW,GACtCkwrB,CACX,CAZwC,CAYtC,MCzDE,GAAwC,WACxC,IAAIhvf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIm3kB,GAAwC,SAAUr9qB,GAElD,SAASq9qB,IACL,OAAkB,OAAXr9qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAaA,OAhBA,GAAU6xrB,EAAwBr9qB,GAIlC,GAAW,EACP,QAAS,UACVq9qB,EAAuBnwrB,UAAW,gBAAY,GACjD,GAAW,EACP,QAAS,UACVmwrB,EAAuBnwrB,UAAW,gBAAY,GACjD,GAAW,EACP,SAAS,IACVmwrB,EAAuBnwrB,UAAW,eAAW,GAChD,GAAW,EACP,QAAS,SACVmwrB,EAAuBnwrB,UAAW,iBAAa,GAC3CmwrB,CACX,CAlB2C,CAkBzC,MCzCE,GAAwC,WACxC,IAAIjvf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIo3kB,GAAgC,SAAUt9qB,GAE1C,SAASs9qB,IACL,OAAkB,OAAXt9qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAaA,OAhBA,GAAU8xrB,EAAgBt9qB,GAI1B,GAAW,EACP,SAAS,IACVs9qB,EAAepwrB,UAAW,2BAAuB,GACpD,GAAW,EACP,QAAS,aACVowrB,EAAepwrB,UAAW,kBAAc,GAC3C,GAAW,EACP,SAAS,IACVowrB,EAAepwrB,UAAW,kBAAc,GAC3C,GAAW,EACP,QAAS,OACVowrB,EAAepwrB,UAAW,mBAAe,GACrCowrB,CACX,CAlBmC,CAkBjC,MCzCE,GAAwC,WACxC,IAAIlvf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAEW4qd,GAAe,CAAC,YAAa,SAAU,MAAO,OAAQ,QAAS,SAAU,WAAY,SAC5F,SAAU,UAAW,YAAa,OAAQ,WAI1ClL,GAAiC,SAAU5ljB,GAE3C,SAAS4ljB,IACL,OAAkB,OAAX5ljB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAUo6jB,EAAiB5ljB,GAI3B,GAAW,EACP,QAAS8wjB,KACVlL,EAAgB14jB,UAAW,aAAS,GACvC,GAAW,EACP,SAAS,IACV04jB,EAAgB14jB,UAAW,eAAW,GAClC04jB,CACX,CAZoC,CAYlC,MCrCE,GAAwC,WACxC,IAAIx3X,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIq3kB,GAAgC,SAAUv9qB,GAE1C,SAASu9qB,IACL,OAAkB,OAAXv9qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAmBA,OAtBA,GAAU+xrB,EAAgBv9qB,GAI1B,GAAW,EACP,QAAS,KACVu9qB,EAAerwrB,UAAW,yBAAqB,GAClD,GAAW,EACP,SAAS,IACVqwrB,EAAerwrB,UAAW,kBAAc,GAC3C,GAAW,EACP,SAAS,IACVqwrB,EAAerwrB,UAAW,iBAAa,GAC1C,GAAW,EACP,SAAS,IACVqwrB,EAAerwrB,UAAW,uBAAmB,GAChD,GAAW,EACP,QAAS,IACVqwrB,EAAerwrB,UAAW,mBAAe,GAC5C,GAAW,EACP,QAAS,MACVqwrB,EAAerwrB,UAAW,mBAAe,GACrCqwrB,CACX,CAxBmC,CAwBjC,MC3CSC,GAAgB,CAAC,aAAc,UAAW,WAAY,WAAY,YAAa,kBAAmB,QAAS,UAAW,oBAAqB,oBAAqB,aAAc,YAAa,eAAgB,YAAa,2BAA4B,yBAA0B,SAAU,mBAAoB,oBAC5SC,GAAQ,CACf,WAAc,CACV,GAAM,aACN,KAAQ,eACR,QAAW,aACX,QAAW,aACX,WAAc,cAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,cACX,QAAW,aACX,WAAc,eAElB,cAAiB,CACb,GAAM,gBACN,KAAQ,mBACR,QAAW,gBACX,QAAW,aACX,WAAc,iBAElB,aAAgB,CACZ,GAAM,eACN,KAAQ,kBACR,QAAW,eACX,QAAW,aACX,WAAc,gBAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,cACX,QAAW,aACX,WAAc,eAElB,SAAY,CACR,GAAM,WACN,KAAQ,cACR,QAAW,YACX,QAAW,OACX,WAAc,YAElB,SAAY,CACR,GAAM,WACN,KAAQ,cACR,QAAW,YACX,QAAW,OACX,WAAc,YAElB,UAAa,CACT,GAAM,YACN,KAAQ,mBACR,QAAW,aACX,QAAW,OACX,WAAc,YACd,MAAS,aAEb,gBAAmB,CACf,GAAM,kBACN,KAAQ,qBACR,QAAW,mBACX,QAAW,OACX,WAAc,kBACd,MAAS,aAEb,KAAQ,CACJ,GAAM,OACN,KAAQ,SACR,QAAW,OACX,QAAW,QACX,WAAc,QAElB,OAAU,CACN,GAAM,SACN,KAAQ,WACR,QAAW,SACX,QAAW,QACX,WAAc,UAElB,UAAa,CACT,GAAM,YACN,KAAQ,cACR,QAAW,YACX,QAAW,QACX,WAAc,aAElB,cAAiB,CACb,GAAM,gBACN,KAAQ,mBACR,QAAW,gBACX,QAAW,QACX,WAAc,iBAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,QACX,WAAc,eAElB,SAAY,CACR,GAAM,WACN,KAAQ,cACR,QAAW,YACX,QAAW,QACX,WAAc,YAElB,IAAO,CACH,GAAM,MACN,KAAQ,QACR,QAAW,MACX,QAAW,YACX,WAAc,OAElB,KAAQ,CACJ,GAAM,OACN,KAAQ,SACR,QAAW,OACX,QAAW,YACX,WAAc,QAElB,MAAS,CACL,GAAM,QACN,KAAQ,UACR,QAAW,QACX,QAAW,YACX,WAAc,SAElB,cAAiB,CACb,GAAM,gBACN,KAAQ,iBACR,QAAW,gBACX,QAAW,QACX,WAAc,MAElB,YAAe,CACX,GAAM,cACN,KAAQ,eACR,QAAW,gBACX,QAAW,QACX,WAAc,MAElB,iBAAoB,CAChB,GAAM,mBACN,KAAQ,eACR,QAAW,qBACX,QAAW,mBACX,WAAc,oBAElB,iBAAoB,CAChB,GAAM,mBACN,KAAQ,iBACR,QAAW,qBACX,QAAW,mBACX,WAAc,oBAElB,OAAU,CACN,GAAM,SACN,KAAQ,WACR,QAAW,kBACX,QAAW,UACX,WAAc,UAElB,QAAW,CACP,GAAM,UACN,KAAQ,YACR,QAAW,kBACX,QAAW,UACX,WAAc,WAElB,KAAQ,CACJ,GAAM,OACN,KAAQ,SACR,QAAW,OACX,QAAW,UACX,WAAc,QAElB,KAAQ,CACJ,GAAM,OACN,KAAQ,SACR,QAAW,OACX,QAAW,UACX,WAAc,QAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,cACX,QAAW,UACX,WAAc,eAElB,UAAa,CACT,GAAM,YACN,KAAQ,eACR,QAAW,YACX,QAAW,UACX,WAAc,aAElB,WAAc,CACV,GAAM,aACN,KAAQ,gBACR,QAAW,mBACX,QAAW,QACX,WAAc,cAElB,SAAY,CACR,GAAM,WACN,KAAQ,cACR,QAAW,YACX,QAAW,QACX,WAAc,YAElB,SAAY,CACR,GAAM,WACN,KAAQ,cACR,QAAW,YACX,QAAW,QACX,WAAc,YAElB,WAAc,CACV,GAAM,aACN,KAAQ,gBACR,QAAW,cACX,QAAW,QACX,WAAc,cAElB,MAAS,CACL,GAAM,QACN,KAAQ,UACR,QAAW,eACX,QAAW,SACX,WAAc,SAElB,MAAS,CACL,GAAM,QACN,KAAQ,UACR,QAAW,eACX,QAAW,SACX,WAAc,SAElB,MAAS,CACL,GAAM,QACN,KAAQ,UACR,QAAW,eACX,QAAW,SACX,WAAc,SAElB,YAAe,CACX,GAAM,cACN,KAAQ,qBACR,QAAW,eACX,QAAW,QACX,WAAc,QAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,QACX,WAAc,eAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,cACX,WAAc,eAElB,QAAW,CACP,GAAM,UACN,KAAQ,YACR,QAAW,UACX,QAAW,SACX,WAAc,WAElB,aAAgB,CACZ,GAAM,eACN,KAAQ,kBACR,QAAW,gBACX,QAAW,SACX,WAAc,gBAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,SACX,WAAc,eAElB,kBAAqB,CACjB,GAAM,oBACN,KAAQ,kBACR,QAAW,qBACX,QAAW,SACX,WAAc,qBAElB,aAAgB,CACZ,GAAM,eACN,KAAQ,kBACR,QAAW,gBACX,QAAW,SACX,WAAc,gBAElB,WAAc,CACV,GAAM,aACN,KAAQ,gBACR,QAAW,cACX,QAAW,SACX,WAAc,cAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,SACX,WAAc,eAElB,kBAAqB,CACjB,GAAM,oBACN,KAAQ,kBACR,QAAW,qBACX,QAAW,SACX,WAAc,qBAElB,eAAkB,CACd,GAAM,iBACN,KAAQ,oBACR,QAAW,kBACX,QAAW,SACX,WAAc,kBAElB,MAAS,CACL,GAAM,QACN,KAAQ,UACR,QAAW,QACX,QAAW,SACX,WAAc,SAElB,QAAW,CACP,GAAM,UACN,KAAQ,YACR,QAAW,gBACX,QAAW,SACX,WAAc,WAElB,OAAU,CACN,GAAM,SACN,KAAQ,WACR,QAAW,SACX,QAAW,SACX,WAAc,UAElB,cAAiB,CACb,GAAM,gBACN,KAAQ,cACR,QAAW,YACX,QAAW,SACX,WAAc,iBAElB,cAAiB,CACb,GAAM,gBACN,KAAQ,cACR,QAAW,YACX,QAAW,SACX,WAAc,iBAElB,gBAAmB,CACf,GAAM,kBACN,KAAQ,gBACR,QAAW,cACX,QAAW,SACX,WAAc,mBAElB,WAAc,CACV,GAAM,aACN,KAAQ,gBACR,QAAW,cACX,QAAW,SACX,WAAc,cAElB,QAAW,CACP,GAAM,UACN,KAAQ,YACR,QAAW,UACX,QAAW,SACX,WAAc,WAElB,QAAW,CACP,GAAM,UACN,KAAQ,aACR,QAAW,mBACX,QAAW,SACX,WAAc,WAElB,UAAa,CACT,GAAM,YACN,KAAQ,kBACR,QAAW,cACX,QAAW,SACX,WAAc,aAElB,WAAc,CACV,GAAM,WACN,KAAQ,aACR,QAAW,WACX,QAAW,OACX,WAAc,YAElB,SAAY,CACR,GAAM,WACN,KAAQ,aACR,QAAW,WACX,QAAW,aACX,WAAc,YAElB,SAAY,CACR,GAAM,WACN,KAAQ,aACR,QAAW,WACX,QAAW,aACX,WAAc,YAElB,UAAa,CACT,GAAM,YACN,KAAQ,eACR,QAAW,aACX,QAAW,SACX,WAAc,aAElB,UAAa,CACT,GAAM,YACN,KAAQ,eACR,QAAW,aACX,QAAW,SACX,WAAc,aAElB,MAAS,CACL,GAAM,QACN,KAAQ,UACR,QAAW,QACX,QAAW,QACX,WAAc,SAElB,QAAW,CACP,GAAM,UACN,KAAQ,YACR,QAAW,UACX,QAAW,UACX,WAAc,WAElB,WAAc,CACV,GAAM,aACN,KAAQ,gBACR,QAAW,cACX,QAAW,aACX,WAAc,cAElB,QAAW,CACP,GAAM,UACN,KAAQ,YACR,QAAW,UACX,QAAW,UACX,WAAc,WAElB,SAAY,CACR,GAAM,WACN,KAAQ,cACR,QAAW,WACX,QAAW,WACX,WAAc,YAElB,WAAc,CACV,GAAM,aACN,KAAQ,gBACR,QAAW,cACX,QAAW,UACX,WAAc,OAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,QACX,WAAc,eAElB,YAAe,CACX,GAAM,cACN,KAAQ,iBACR,QAAW,eACX,QAAW,QACX,WAAc,eAElB,UAAa,CACT,GAAM,YACN,KAAQ,eACR,QAAW,aACX,QAAW,QACX,WAAc,aAElB,aAAgB,CACZ,GAAM,eACN,KAAQ,kBACR,QAAW,gBACX,QAAW,QACX,WAAc,gBAElB,UAAa,CACT,GAAM,YACN,KAAQ,eACR,QAAW,aACX,QAAW,QACX,WAAc,aAElB,oBAAuB,CACnB,GAAM,sBACN,KAAQ,0BACR,QAAW,wBACX,QAAW,QACX,WAAc,uBAElB,yBAA4B,CACxB,GAAM,2BACN,KAAQ,+BACR,QAAW,6BACX,QAAW,QACX,WAAc,4BAElB,uBAA0B,CACtB,GAAM,yBACN,KAAQ,6BACR,QAAW,2BACX,QAAW,QACX,WAAc,0BAElB,oBAAuB,CACnB,GAAM,sBACN,KAAQ,0BACR,QAAW,wBACX,QAAW,QACX,WAAc,uBAElB,OAAU,CACN,GAAM,SACN,KAAQ,iBACR,QAAW,SACX,QAAW,QACX,WAAc,UAElB,cAAiB,CACb,GAAM,gBACN,KAAQ,uBACR,QAAW,iBACX,QAAW,gBACX,WAAc,iBAElB,YAAe,CACX,GAAM,cACN,KAAQ,UACR,QAAW,aACX,QAAW,cACX,WAAc,gBAGlBC,GAAkB,CAClB,CAAEpgkB,OAAQ,yBAA0BroH,MAAO,eAC3C,CAAEqoH,OAAQ,2BAA4BroH,MAAO,iBAC7C,CAAEqoH,OAAQ,0BAA2BroH,MAAO,gBAC5C,CAAEqoH,OAAQ,4BAA6BroH,MAAO,gBAEvC0orB,GAAiB,CACxB,CAAE7te,QAAS,yBAA0Bj5L,KAAM,aAAcqmc,QAAS,aAAci/N,WAAY,eAC5F,CAAErse,QAAS,2BAA4Bj5L,KAAM,eAAgBqmc,QAAS,aAAci/N,WAAY,iBAChG,CAAErse,QAAS,0BAA2Bj5L,KAAM,cAAeqmc,QAAS,aAAci/N,WAAY,gBAC9F,CAAErse,QAAS,yBAA0Bj5L,KAAM,gBAAiBqmc,QAAS,aAAci/N,WAAY,gBAExFyB,GAAkB,CACzB,CAAE9te,QAAS,yBAA0BotQ,QAAS,SAAUi/N,WAAY,eACpE,CAAErse,QAAS,2BAA4BotQ,QAAS,SAAUi/N,WAAY,iBACtE,CAAErse,QAAS,0BAA2BotQ,QAAS,SAAUi/N,WAAY,iBAE9D0B,GAAkB,CACzB,CAAE/te,QAAS,yBAA0BotQ,QAAS,SAAUi/N,WAAY,eACpE,CAAErse,QAAS,2BAA4BotQ,QAAS,SAAUi/N,WAAY,iBACtE,CAAErse,QAAS,0BAA2BotQ,QAAS,SAAUi/N,WAAY,iBAErE2B,GAAgB,CAChB,CAAExgkB,OAAQ,6BAA8BroH,MAAO,UAC/C,CAAEqoH,OAAQ,4BAA6BroH,MAAO,UAE9C8orB,GAA0B,CAC1B,CAAEzgkB,OAAQ,kCAAmCroH,MAAO,UACpD,CAAEqoH,OAAQ,iCAAkCroH,MAAO,UAEnD+orB,GAA0B,CAC1B,CAAE1gkB,OAAQ,kCAAmCroH,MAAO,UACpD,CAAEqoH,OAAQ,iCAAkCroH,MAAO,UAE5CgprB,GAAoB,CAC3B,CAAEpnqB,KAAM,SAAU44L,SAAU,WAAYytQ,QAAS,SAAUi/N,WAAY,UACvE,CAAEtlqB,KAAM,QAAS44L,SAAU,UAAWytQ,QAAS,SAAUi/N,WAAY,UAE9D+B,GAAyB,CAChC,CAAErnqB,KAAM,SAAU44L,SAAU,iBAAkBytQ,QAAS,SAAUi/N,WAAY,UAC7E,CAAEtlqB,KAAM,QAAS44L,SAAU,gBAAiBytQ,QAAS,SAAUi/N,WAAY,UAEpEgC,GAAyB,CAChC,CAAEtnqB,KAAM,SAAU44L,SAAU,iBAAkBytQ,QAAS,SAAUi/N,WAAY,UAC7E,CAAEtlqB,KAAM,QAAS44L,SAAU,gBAAiBytQ,QAAS,SAAUi/N,WAAY,UAEpEiC,GAAiB,CACxB,CAAEtue,QAAS,uBAAwBj5L,KAAM,cAAeqmc,QAAS,QAASi/N,WAAY,SACtF,CAAErse,QAAS,kCAAmCj5L,KAAM,mBAAoBqmc,QAAS,QAASi/N,WAAY,mBACtG,CAAErse,QAAS,gCAAiCj5L,KAAM,iBAAkBqmc,QAAS,QAASi/N,WAAY,kBAElGkC,GAAiB,CACjB,CAAE/gkB,OAAQ,+BAAgCroH,MAAO,mBACjD,CAAEqoH,OAAQ,8BAA+BroH,MAAO,kBAChD,CAAEqoH,OAAQ,+BAAgCroH,MAAO,cAE1CqprB,GAAiB,CACxB,CAAExue,QAAS,8BAA+Bj5L,KAAM,oBAAqBqmc,QAAS,QAASi/N,WAAY,mBACnG,CAAErse,QAAS,6BAA8Bj5L,KAAM,mBAAoBqmc,QAAS,QAASi/N,WAAY,kBACjG,CAAErse,QAAS,uBAAwBj5L,KAAM,aAAcqmc,QAAS,QAASi/N,WAAY,cAErFoC,GAAoB,CACpB,CAAEjhkB,OAAQ,gCAAiCroH,MAAO,oBAClD,CAAEqoH,OAAQ,iCAAkCroH,MAAO,qBACnD,CAAEqoH,OAAQ,kCAAmCroH,MAAO,iBAE7CuprB,GAAoB,CAC3B,CAAE1ue,QAAS,+BAAgCj5L,KAAM,qBAAsBqmc,QAAS,QAASi/N,WAAY,oBACrG,CAAErse,QAAS,gCAAiCj5L,KAAM,sBAAuBqmc,QAAS,QAASi/N,WAAY,qBACvG,CAAErse,QAAS,0BAA2Bj5L,KAAM,gBAAiBqmc,QAAS,QAASi/N,WAAY,iBAE3FsC,GAAsB,CACtB,CAAEnhkB,OAAQ,gCAAiCroH,MAAO,YAClD,CAAEqoH,OAAQ,mCAAoCroH,MAAO,eACrD,CAAEqoH,OAAQ,mCAAoCroH,MAAO,gBAE9CyprB,GAA8B,CACrC,CAAE5ue,QAAS,sBAAuBj5L,KAAM,YAAaqmc,QAAS,QAASi/N,WAAY,YACnF,CAAErse,QAAS,yBAA0Bj5L,KAAM,eAAgBqmc,QAAS,QAASi/N,WAAY,eACzF,CAAErse,QAAS,yBAA0Bj5L,KAAM,eAAgBqmc,QAAS,QAASi/N,WAAY,gBAEzFwC,GAAmB,CACnB,CAAErhkB,OAAQ,kCAAmCroH,MAAO,UACpD,CAAEqoH,OAAQ,mCAAoCroH,MAAO,cAE9C2prB,GAAkB,CACzB,CAAE/nqB,KAAM,iBAAkB44L,SAAU,mBAAoBytQ,QAAS,QAASi/N,WAAY,UACtF,CAAEtlqB,KAAM,iBAAkB44L,SAAU,mBAAoBytQ,QAAS,QAASi/N,WAAY,cAE/E0C,GAAkB,CAAC,OAAQ,SAAU,YAAa,IAAK,UAAW,aACzE,cAAe,gBAAiB,IAAK,aAAc,QAAS,IAAK,aAAc,OAAQ,QAChFx3nB,GAAa,CACpB,CAAEooJ,SAAU,aAAc54L,KAAM,WAAYqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,YAC5F,CAAEw6M,SAAU,UAAW54L,KAAM,QAASqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,8BACtF,CAAEw6M,SAAU,YAAa54L,KAAM,UAAWqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,iBAC1F,CAAEw6M,SAAU,WAAY54L,KAAM,SAAUqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,8BACxF,CAAEw6M,SAAU,WAAY54L,KAAM,SAAUqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,4BACxF,CAAEw6M,SAAU,oBAAqB54L,KAAM,kBAAmBqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,+BAC1G,CAAEw6M,SAAU,YAAa54L,KAAM,UAAWqmc,QAAS,OAAQi/N,WAAY,WAAYlnrB,MAAO,8BAEnF4mB,GAAW,CAClB,CAAEhF,KAAM,OAAQ5hB,MAAO,OACvB,CAAE4hB,KAAM,QAAS5hB,MAAO,QACxB,CAAE4hB,KAAM,QAAS5hB,MAAO,QACxB,CAAE4hB,KAAM,QAAS5hB,MAAO,QACxB,CAAE4hB,KAAM,QAAS5hB,MAAO,QACxB,CAAE4hB,KAAM,QAAS5hB,MAAO,QACxB,CAAE4hB,KAAM,QAAS5hB,MAAO,SAEjB6prB,GAAc,CACrB,CAAErve,SAAU,cAAe54L,KAAM,YAAaqmc,QAAS,UAAWi/N,WAAY,IAAKlnrB,MAAO,KAC1F,CAAEw6M,SAAU,SAAU54L,KAAM,OAAQqmc,QAAS,UAAWi/N,WAAY,MAAOlnrB,MAAO,OAClF,CAAEw6M,SAAU,UAAW54L,KAAM,YAAaqmc,QAAS,UAAWi/N,WAAY,aAAclnrB,MAAO,cAC/F,CAAEw6M,SAAU,OAAQ54L,KAAM,YAAaqmc,QAAS,UAAWi/N,WAAY,KAAMlnrB,MAAO,MACpF,CAAEw6M,SAAU,OAAQ54L,KAAM,YAAaqmc,QAAS,UAAWi/N,WAAY,KAAMlnrB,MAAO,MACpF,CAAEw6M,SAAU,OAAQ54L,KAAM,YAAaqmc,QAAS,UAAWi/N,WAAY,KAAMlnrB,MAAO,MACpF,CAAEw6M,SAAU,OAAQ54L,KAAM,YAAaqmc,QAAS,UAAWi/N,WAAY,KAAMlnrB,MAAO,OAE7Ewsa,GAAY,CACnB,OAAU,CACN,GAAI,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC5F,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGhGlpZ,GAAkB,CACzB,OAAU,CACN,GAAI,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAC5F,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UACnG,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YAGhGwmqB,GAAmB,CAC1B,CAAEloqB,KAAM,OAAQqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,QACzE,CAAE4hB,KAAM,SAAUqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,WAC3E,CAAE4hB,KAAM,cAAeqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,cAChF,CAAE4hB,KAAM,cAAeqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,cAChF,CAAE4hB,KAAM,cAAeqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,cAChF,CAAE4hB,KAAM,cAAeqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,cAChF,CAAE4hB,KAAM,cAAeqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,eAEzE+prB,GAAmB,CAC1B,CAAEnoqB,KAAM,OAAQqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,QACzE,CAAE4hB,KAAM,OAAQqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,QACzE,CAAE4hB,KAAM,SAAUqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,UAC3E,CAAE4hB,KAAM,SAAUqmc,QAAS,QAASi/N,WAAY,mBAAoBlnrB,MAAO,WAE/E,SAASyuoB,GAAUjyf,EAAMwtiB,EAAa3pqB,GAClC,IAAK,IAAI/c,EAAI,EAAG0mrB,EAAYjwrB,OAASuJ,EAAGA,IACpC,GAAI0mrB,EAAY1mrB,GAAGtD,QAAUqgB,EAAK6mqB,WAC9B,OAAO1qiB,EAAKypU,UAAUj1Q,YAAYg5e,EAAY1mrB,GAAG+kH,QAGzD,OAAOhoG,EAAKuB,IAChB,CA2BO,IAAIqoqB,GAAa,CACpB,cAAe,WACf,eAAgB,mBAChB,eAAgB,mBAChB,KAAQ,WACR,KAAQ,WACR,KAAQ,WACR,IAAO,WACP,MAAS,WACT,KAAQ,WACR,OAAU,WACV,UAAa,WACb,cAAiB,mBACjB,aAAc,mBACd,aAAc,mBACd,YAAe,mBACf,UAAa,WACb,cAAe,mBACf,SAAY,mBACZ,SAAY,MACZ,eAAgB,mBAChB,gBAAiB,mBACjB,gBAAiB,iBACjB,iBAAkB,oCAEXC,GAAoB,CAAC,CACxB/rrB,KAAM,mBAAoBmH,KAAM,QAASu1M,QAAS,UAAW3zG,MAAO,CAAC,CAAE5hG,KAAM,QAASi0L,KAAM,iBACxF,CAAEj0L,KAAM,QAASi0L,KAAM,+BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,mCACvB,CAAEj0L,KAAM,QAASi0L,KAAM,2BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,4BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,0BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,iCACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kCACvB,CAAEj0L,KAAM,QAASi0L,KAAM,0BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,yBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,oBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gCACvB,CAAEj0L,KAAM,QAASi0L,KAAM,uBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,oBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,4BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,mCACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,OACvB,CAAEj0L,KAAM,QAASi0L,KAAM,QACvB,CAAEj0L,KAAM,QAASi0L,KAAM,OACvB,CAAEj0L,KAAM,QAASi0L,KAAM,QACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,uBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UAC5B,CACCp7L,KAAM,mBAAoBmH,KAAM,QAASu1M,QAAS,YAAa3zG,MAAO,CAAC,CAAE5hG,KAAM,QAASi0L,KAAM,YAC1F,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,eACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,eACvB,CAAEj0L,KAAM,QAASi0L,KAAM,uBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,wBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,QACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,QACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WAC5B,CACCp7L,KAAM,eAAgBmH,KAAM,QAASu1M,QAAS,oBAAqB3zG,MAAO,CAAC,CAAE5hG,KAAM,QAASi0L,KAAM,aAC9F,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,iBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,iBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,8BAC5B,CACCp7L,KAAM,aAAcmH,KAAM,QAASu1M,QAAS,eAAgB3zG,MAAO,CAAC,CAAE5hG,KAAM,OAAQi0L,KAAM,eACtF,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,qBACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,YACtB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,eACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,YACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,gBAC3B,CACCp7L,KAAM,kBAAmBmH,KAAM,QAASu1M,QAAS,sBAAuB3zG,MAAO,CAAC,CAAE5hG,KAAM,OAAQi0L,KAAM,YAClG,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,QACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,OACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,QACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,UACtB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,wBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,uBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,iBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,iBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,eACvB,CAAEj0L,KAAM,QAASi0L,KAAM,qBACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,iBACtB,CAAEj0L,KAAM,QAASi0L,KAAM,mBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,oBAC5B,CACCp7L,KAAM,UAAWmH,KAAM,QAASu1M,QAAS,YAAa3zG,MAAO,CAAC,CAAE5hG,KAAM,QAASi0L,KAAM,cACjF,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,mBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,oBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,QAASi0L,KAAM,UACvB,CAAEj0L,KAAM,QAASi0L,KAAM,qBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,SACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,SACtB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,aACtB,CAAEj0L,KAAM,QAASi0L,KAAM,eACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,0BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,iBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,aACvB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,0BACvB,CAAEj0L,KAAM,QAASi0L,KAAM,WAC5B,CACCp7L,KAAM,UAAWmH,KAAM,QAASu1M,QAAS,YAAa3zG,MAAO,CAAC,CAAE5hG,KAAM,OAAQi0L,KAAM,cAChF,CAAEj0L,KAAM,OAAQi0L,KAAM,cACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,gBACtB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,eACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,oBACtB,CAAEj0L,KAAM,QAASi0L,KAAM,cACvB,CAAEj0L,KAAM,QAASi0L,KAAM,oBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,gBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,eACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,QACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,SACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,UACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,kBACtB,CAAEj0L,KAAM,QAASi0L,KAAM,mBACvB,CAAEj0L,KAAM,QAASi0L,KAAM,kBACvB,CAAEj0L,KAAM,OAAQi0L,KAAM,0BACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,uBACtB,CAAEj0L,KAAM,OAAQi0L,KAAM,gBC/7B9B,GAAwC,WACxC,IAAIJ,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAYI,GAAiC,SAAUlmG,GAE3C,SAAS4ljB,IACL,OAAkB,OAAX5ljB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAgBA,OAnBA,GAAUo6jB,EAAiB5ljB,GAI3B,GAAW,EACP,SAAS,IACV4ljB,EAAgB14jB,UAAW,cAAU,GACxC,GAAW,EACP,SAAS,IACV04jB,EAAgB14jB,UAAW,sBAAkB,GAChD,GAAW,EACP,QAAS0irB,EAAYwP,SACtBx5H,EAAgB14jB,UAAW,YAAQ,GACtC,GAAW,EACP,QAAS2xrB,KACVj5H,EAAgB14jB,UAAW,aAAS,GACvC,GAAW,EACP,QAAS,CAAC,IACX04jB,EAAgB14jB,UAAW,mBAAe,GACtC04jB,CACX,CArBoC,CAqBlC,MAKEy5H,GAA+B,SAAUr/qB,GAEzC,SAASq/qB,IACL,OAAkB,OAAXr/qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CA2CA,OA9CA,GAAU6zrB,EAAer/qB,GAIzB,GAAW,EACP,QAAS,CAAC,QAAS,OAAQ,UAC5Bq/qB,EAAcnyrB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,WACVmyrB,EAAcnyrB,UAAW,eAAW,GACvC,GAAW,EACP,QAAS,SACVmyrB,EAAcnyrB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,SACVmyrB,EAAcnyrB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,SACVmyrB,EAAcnyrB,UAAW,cAAU,GACtC,GAAW,EACP,QAAS,OACVmyrB,EAAcnyrB,UAAW,eAAW,GACvC,GAAW,EACP,QAAS,OACVmyrB,EAAcnyrB,UAAW,YAAQ,GACpC,GAAW,EACP,SAAS,IACVmyrB,EAAcnyrB,UAAW,cAAU,GACtC,GAAW,EACP,QAAS,OACVmyrB,EAAcnyrB,UAAW,iBAAa,GACzC,GAAW,EACP,QAAS,IACVmyrB,EAAcnyrB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,OACVmyrB,EAAcnyrB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,IACVmyrB,EAAcnyrB,UAAW,iBAAa,GACzC,GAAW,EACP,QAAS,OACVmyrB,EAAcnyrB,UAAW,iBAAa,GACzC,GAAW,EACP,SAAS,IACVmyrB,EAAcnyrB,UAAW,uBAAmB,GACxCmyrB,CACX,CAhDkC,CAgDhC,MAKEC,GAA+B,SAAUt/qB,GAEzC,SAASs/qB,IACL,OAAkB,OAAXt/qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAmBA,OAtBA,GAAU8zrB,EAAet/qB,GAIzB,GAAW,EACP,QAAS,CAAC,OAAQ,OAAQ,OAAQ,UACnCs/qB,EAAcpyrB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,WACVoyrB,EAAcpyrB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,SACVoyrB,EAAcpyrB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,OACVoyrB,EAAcpyrB,UAAW,eAAW,GACvC,GAAW,EACP,QAAS,OACVoyrB,EAAcpyrB,UAAW,iBAAa,GACzC,GAAW,EACP,QAAS,OACVoyrB,EAAcpyrB,UAAW,YAAQ,GAC7BoyrB,CACX,CAxBkC,CAwBhC,MAKEC,GAA+B,SAAUv/qB,GAEzC,SAASu/qB,IACL,OAAkB,OAAXv/qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CA2CA,OA9CA,GAAU+zrB,EAAev/qB,GAIzB,GAAW,EACP,QAAS,CAAC,OAAQ,OAAQ,OAAQ,UACnCu/qB,EAAcryrB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,WACVqyrB,EAAcryrB,UAAW,oBAAgB,GAC5C,GAAW,EACP,QAAS,SACVqyrB,EAAcryrB,UAAW,kBAAc,GAC1C,GAAW,EACP,QAAS,SACVqyrB,EAAcryrB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS,SACVqyrB,EAAcryrB,UAAW,cAAU,GACtC,GAAW,EACP,QAAS,OACVqyrB,EAAcryrB,UAAW,eAAW,GACvC,GAAW,EACP,QAAS,OACVqyrB,EAAcryrB,UAAW,YAAQ,GACpC,GAAW,EACP,SAAS,IACVqyrB,EAAcryrB,UAAW,cAAU,GACtC,GAAW,EACP,QAAS,OACVqyrB,EAAcryrB,UAAW,iBAAa,GACzC,GAAW,EACP,QAAS,IACVqyrB,EAAcryrB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,OACVqyrB,EAAcryrB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,IACVqyrB,EAAcryrB,UAAW,iBAAa,GACzC,GAAW,EACP,QAAS,OACVqyrB,EAAcryrB,UAAW,iBAAa,GACzC,GAAW,EACP,SAAS,IACVqyrB,EAAcryrB,UAAW,uBAAmB,GACxCqyrB,CACX,CAhDkC,CAgDhC,MAKEC,GAAqC,SAAUx/qB,GAE/C,SAASw/qB,IACL,OAAkB,OAAXx/qB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAuDA,OA1DA,GAAUg0rB,EAAqBx/qB,GAI/B,GAAW,EACP,WACDw/qB,EAAoBtyrB,UAAW,kBAAc,GAChD,GAAW,EACP,QAAQ,CAAEuyrB,YAAa,KAAMz3nB,IAAK,KAAM03nB,UAAW,MAAQ7C,KAC5D2C,EAAoBtyrB,UAAW,oBAAgB,GAClD,GAAW,EACP,SAAS,IACVsyrB,EAAoBtyrB,UAAW,wBAAoB,GACtD,GAAW,EACP,QAAQ,CAAEyzB,SAAS,EAAM+5I,KAAM,CAAC,OAAQ,IAAK,MAAO,OAAQ,IAAK,SAAU,SAAU,IAAK,WAAYx/J,OAAQ,CAAC,OAAQ,IAAK,MAAO,OAAQ,QAAS,IAAK,SAAU,SAAU,IAAK,WAAYykrB,OAAQ,CAAC,SAAU,OAAQ,UAAW,IAAK,QAAS,IAAK,YAAa,SAAU,IAAK,UAAW,IAAK,cAAgBx3H,KACpTq3H,EAAoBtyrB,UAAW,2BAAuB,GACzD,GAAW,EACP,QAAS,KACVsyrB,EAAoBtyrB,UAAW,gBAAY,GAC9C,GAAW,EACP,QAAQ,CAAC,EAAGkwrB,KACboC,EAAoBtyrB,UAAW,2BAAuB,GACzD,GAAW,EACP,SAAS,IACVsyrB,EAAoBtyrB,UAAW,cAAU,GAC5C,GAAW,EACP,QAAQ,CAAEytB,SAAU,QAASwC,SAAU,QAASwD,SAAS,GAAQ08pB,KAClEmC,EAAoBtyrB,UAAW,8BAA0B,GAC5D,GAAW,EACP,QAAS,MACVsyrB,EAAoBtyrB,UAAW,YAAQ,GAC1C,GAAW,EACP,QAAS,OACVsyrB,EAAoBtyrB,UAAW,qBAAiB,GACnD,GAAW,EACP,QAAQ,CAAC,EAAGowrB,KACbkC,EAAoBtyrB,UAAW,sBAAkB,GACpD,GAAW,EACP,SAAS,IACVsyrB,EAAoBtyrB,UAAW,yBAAqB,GACvD,GAAW,EACP,SAAS,IACVsyrB,EAAoBtyrB,UAAW,uBAAmB,GACrD,GAAW,EACP,SAAS,IACVsyrB,EAAoBtyrB,UAAW,qBAAiB,GACnD,GAAW,EACP,QAAS,cACVsyrB,EAAoBtyrB,UAAW,iBAAa,GAC/C,GAAW,EACP,QAAQ,CAAEyzB,SAAS,EAAMhL,MAAO,CAAC,YAAa,SAAU,MAAO,OAAQ,QAAS,SAAU,WAAY,SAAU,SAAU,UAAW,YAAa,OAAQ,YAAc,KACzK6pqB,EAAoBtyrB,UAAW,uBAAmB,GACrD,GAAW,EACP,QAAQ,CAAE0yrB,YAAY,EAAMC,YAAa,EAAGC,YAAa,IAAUC,kBAAmB,GAAIC,WAAW,GAASzC,KAC/GiC,EAAoBtyrB,UAAW,sBAAkB,GACpD,GAAW,EACP,QAAS,eACVsyrB,EAAoBtyrB,UAAW,YAAQ,GACnCsyrB,CACX,CA5DwC,CA4DtC,MAEES,GAA+B,SAAUjgrB,GAEzC,SAASigrB,IACL,OAAkB,OAAXjgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAgBA,OAnBA,GAAUy0rB,EAAejgrB,GAIzB,GAAW,EACP,QAAS,SACVigrB,EAAc/yrB,UAAW,aAAS,GACrC,GAAW,EACP,QAAS0xrB,KACVqB,EAAc/yrB,UAAW,cAAU,GACtC,GAAW,EACP,SAAS,IACV+yrB,EAAc/yrB,UAAW,cAAU,GACtC,GAAW,EACP,QAAS,IACV+yrB,EAAc/yrB,UAAW,gBAAY,GACxC,GAAW,EACP,QAAS,OACV+yrB,EAAc/yrB,UAAW,gBAAY,GACjC+yrB,CACX,CArBkC,CAqBhC,MAKEC,GAAsC,SAAUlgrB,GAEhD,SAASkgrB,IACL,OAAkB,OAAXlgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CA4BA,OA/BA,GAAU00rB,EAAsBlgrB,GAIhC,GAAW,EACP,SAAS,IACVkgrB,EAAqBhzrB,UAAW,cAAU,GAC7C,GAAW,EACP,SAAS,IACVgzrB,EAAqBhzrB,UAAW,wBAAoB,GACvD,GAAW,EACP,QAAS,SACVgzrB,EAAqBhzrB,UAAW,sBAAkB,GACrD,GAAW,EACP,QAAS,CAAC,OAAQ,OAAQ,YAC3BgzrB,EAAqBhzrB,UAAW,YAAQ,GAC3C,GAAW,EACP,QAAS,CAAC,UAAW,QAAS,UAAW,SAAU,IAAK,aAAc,gBAAiB,gBAAiB,kBAAmB,UAAW,UAAW,eAClJgzrB,EAAqBhzrB,UAAW,aAAS,GAC5C,GAAW,EACP,QAAS,CAAC,eAAgB,cAAe,uBAC1CgzrB,EAAqBhzrB,UAAW,aAAS,GAC5C,GAAW,EACP,QAAS,CAAC,eAAgB,aAAc,cAAe,oBAAqB,oBAC7EgzrB,EAAqBhzrB,UAAW,aAAS,GAC5C,GAAW,EACP,QAAS,CAAC,MAAO,OAAQ,WAC1BgzrB,EAAqBhzrB,UAAW,YAAQ,GAC3C,GAAW,EACP,QAAS,CAAC,cAAe,YAAa,eAAgB,kBAAmB,IAAK,cAAe,aAAc,yBAA0B,YACtIgzrB,EAAqBhzrB,UAAW,aAAS,GACrCgzrB,CACX,CAjCyC,CAiCvC,MAKEC,GAAuC,SAAUngrB,GAEjD,SAASmgrB,IACL,OAAkB,OAAXngrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAU20rB,EAAuBngrB,GAIjC,GAAW,EACP,QAAS,0HACVmgrB,EAAsBjzrB,UAAW,sBAAkB,GACtD,GAAW,EACP,QAAS,OACVizrB,EAAsBjzrB,UAAW,qBAAiB,GAC9CizrB,CACX,CAZ0C,CAYxC,MAKEC,GAA+B,SAAUpgrB,GAEzC,SAASogrB,IACL,OAAkB,OAAXpgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAU40rB,EAAepgrB,GAIzB,GAAW,EACP,QAASm/qB,KACViB,EAAclzrB,UAAW,gBAAY,GACxC,GAAW,EACP,SAAS,IACVkzrB,EAAclzrB,UAAW,qBAAiB,GACtCkzrB,CACX,CAZkC,CAYhC,MAKEC,GAAsC,SAAUrgrB,GAEhD,SAASqgrB,IACL,OAAkB,OAAXrgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAmBA,OAtBA,GAAU60rB,EAAsBrgrB,GAIhC,GAAW,EACP,SAAS,IACVqgrB,EAAqBnzrB,UAAW,cAAU,GAC7C,GAAW,EACP,QAAS,OACVmzrB,EAAqBnzrB,UAAW,mBAAe,GAClD,GAAW,EACP,QAAS,CAAC,aAAc,mBAAoB,SAAU,gBAAiB,cAAe,gBAAiB,eAAgB,eAAgB,aAAc,eAAgB,QAAS,QAAS,SAAU,YAAa,UAAW,QAAS,OAAQ,cAAe,YAAa,cAAe,aAAc,SAAU,OAAQ,cAAe,kBAAmB,SAAU,aAAc,cAAe,eAAgB,gBAAiB,aAAc,YAAa,aAAc,YAAa,WAAY,aAAc,aAAc,UAAW,iBAAkB,eAAgB,gBAAiB,cAAe,WAAY,QAAS,eAAgB,aAAc,kBAAmB,cAAe,MAAO,iBAAkB,aAAc,cAAe,WACttBmzrB,EAAqBnzrB,UAAW,yBAAqB,GACxD,GAAW,EACP,QAAS,OACVmzrB,EAAqBnzrB,UAAW,kBAAc,GACjD,GAAW,EACP,SAAS,IACVmzrB,EAAqBnzrB,UAAW,kBAAc,GACjD,GAAW,EACP,SAAS,IACVmzrB,EAAqBnzrB,UAAW,iBAAa,GACzCmzrB,CACX,CAxByC,CAwBvC,MAKE39M,GAA4B,SAAU1ie,GAEtC,SAAS0ie,IACL,OAAkB,OAAX1ie,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAUA,OAbA,GAAUk3e,EAAY1ie,GAItB,GAAW,EACP,QAAS,OACV0ie,EAAWx1e,UAAW,eAAW,GACpC,GAAW,EACP,QAAS,SACVw1e,EAAWx1e,UAAW,aAAS,GAClC,GAAW,EACP,QAASm6D,KACVq7a,EAAWx1e,UAAW,aAAS,GAC3Bw1e,CACX,CAf+B,CAe7B,MAKEzmB,GAA0B,SAAUj8c,GAEpC,SAASi8c,IACL,OAAkB,OAAXj8c,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAUA,OAbA,GAAUywd,EAAUj8c,GAIpB,GAAW,EACP,QAAS,OACVi8c,EAAS/ud,UAAW,eAAW,GAClC,GAAW,EACP,QAAS,SACV+ud,EAAS/ud,UAAW,aAAS,GAChC,GAAW,EACP,QAAS2uB,KACVogc,EAAS/ud,UAAW,aAAS,GACzB+ud,CACX,CAf6B,CAe3B,MAKEqkO,GAAwB,SAAUtgrB,GAElC,SAASsgrB,IACL,OAAkB,OAAXtgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAUA,OAbA,GAAU80rB,EAAQtgrB,GAIlB,GAAW,EACP,QAAS,OACVsgrB,EAAOpzrB,UAAW,eAAW,GAChC,GAAW,EACP,QAAS,SACVozrB,EAAOpzrB,UAAW,aAAS,GAC9B,GAAW,EACP,QAAS4xrB,KACVwB,EAAOpzrB,UAAW,aAAS,GACvBozrB,CACX,CAf2B,CAezB,MAKE79I,GAA2B,SAAUziiB,GAErC,SAASyiiB,IACL,OAAkB,OAAXziiB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAgBA,OAnBA,GAAUi3iB,EAAWziiB,GAIrB,GAAW,EACP,QAAS,YACVyiiB,EAAUv1iB,UAAW,eAAW,GACnC,GAAW,EACP,QAAS,YACVu1iB,EAAUv1iB,UAAW,YAAQ,GAChC,GAAW,EACP,QAAS,KACVu1iB,EAAUv1iB,UAAW,eAAW,GACnC,GAAW,EACP,QAASu0a,KACVghI,EAAUv1iB,UAAW,iBAAa,GACrC,GAAW,EACP,SAAS,IACVu1iB,EAAUv1iB,UAAW,oBAAgB,GACjCu1iB,CACX,CArB8B,CAqB5B,MAKE89I,GAAiC,SAAUvgrB,GAE3C,SAASugrB,IACL,OAAkB,OAAXvgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAgBA,OAnBA,GAAU+0rB,EAAiBvgrB,GAI3B,GAAW,EACP,QAAS,YACVugrB,EAAgBrzrB,UAAW,eAAW,GACzC,GAAW,EACP,QAAS,YACVqzrB,EAAgBrzrB,UAAW,YAAQ,GACtC,GAAW,EACP,QAAS,KACVqzrB,EAAgBrzrB,UAAW,eAAW,GACzC,GAAW,EACP,QAASqrB,KACVgoqB,EAAgBrzrB,UAAW,iBAAa,GAC3C,GAAW,EACP,SAAS,IACVqzrB,EAAgBrzrB,UAAW,oBAAgB,GACvCqzrB,CACX,CArBoC,CAqBlC,MAKEC,GAAkC,SAAUxgrB,GAE5C,SAASwgrB,IACL,OAAkB,OAAXxgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAIA,OAPA,GAAUg1rB,EAAkBxgrB,GAI5B,GAAW,EACP,QAAS++qB,KACVyB,EAAiBtzrB,UAAW,aAAS,GACjCszrB,CACX,CATqC,CASnC,MAKEC,GAAkC,SAAUzgrB,GAE5C,SAASygrB,IACL,OAAkB,OAAXzgrB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAIA,OAPA,GAAUi1rB,EAAkBzgrB,GAI5B,GAAW,EACP,QAASg/qB,KACVyB,EAAiBvzrB,UAAW,aAAS,GACjCuzrB,CACX,CATqC,CASnC,MCngBE,GAAwC,WACxC,IAAIryf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKIw6kB,GAA2B,SAAU1grB,GAErC,SAAS0grB,IACL,OAAkB,OAAX1grB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAUk1rB,EAAW1grB,GAIrB,GAAW,EACP,QAAS,KACV0grB,EAAUxzrB,UAAW,cAAU,GAClC,GAAW,EACP,QAAS,KACVwzrB,EAAUxzrB,UAAW,eAAW,GAC5BwzrB,CACX,CAZ8B,CAY5B,MAKEC,GAAgC,SAAU3grB,GAE1C,SAAS2grB,IACL,OAAkB,OAAX3grB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAUA,OAbA,GAAUm1rB,EAAgB3grB,GAI1B,GAAW,EACP,SAAS,IACV2grB,EAAezzrB,UAAW,cAAU,GACvC,GAAW,EACP,QAAS,OACVyzrB,EAAezzrB,UAAW,kBAAc,GAC3C,GAAW,EACP,QAAQ,CAAC,EAAGwzrB,KACbC,EAAezzrB,UAAW,iBAAa,GACnCyzrB,CACX,CAfmC,CAejC,MCvDE,GAAwC,WACxC,IAAIvyf,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxC,GAA0C,SAAUE,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAKI06kB,GAA4B,SAAU5grB,GAEtC,SAAS4grB,IACL,OAAkB,OAAX5grB,GAAmBA,EAAO/N,MAAMzG,KAAMqF,YAAcrF,IAC/D,CAOA,OAVA,GAAUo1rB,EAAY5grB,GAItB,GAAW,EACP,SAAS,IACV4grB,EAAW1zrB,UAAW,cAAU,GACnC,GAAW,EACP,SAAS,IACV0zrB,EAAW1zrB,UAAW,mBAAe,GACjC0zrB,CACX,CAZ+B,CAY7B,MC/BS13jB,GAAgB,CACvB,WAAc,aACd,YAAe,aACf,cAAiB,eACjB,aAAgB,cAChB,YAAe,gBACf,SAAY,YACZ,SAAY,YACZ,UAAa,aACb,gBAAmB,mBACnB,KAAQ,OACR,OAAU,SACV,UAAa,YACb,cAAiB,gBACjB,YAAe,eACf,SAAY,YACZ,IAAO,MACP,KAAQ,OACR,MAAS,QACT,cAAiB,gBACjB,YAAe,gBACf,OAAU,kBACV,QAAW,kBACX,KAAQ,OACR,KAAQ,OACR,YAAe,cACf,UAAa,YACb,WAAc,cACd,SAAY,YACZ,SAAY,YACZ,WAAc,cACd,MAAS,eACT,MAAS,eACT,MAAS,eACT,QAAW,UACX,iBAAoB,qBACpB,iBAAoB,qBACpB,aAAgB,UAChB,aAAgB,UAChB,WAAc,QACd,eAAkB,YAClB,YAAe,SACf,YAAe,SACf,kBAAqB,gBACrB,kBAAqB,gBACrB,MAAS,QACT,QAAW,gBACX,OAAU,SACV,WAAc,cACd,QAAW,UACX,QAAW,mBACX,UAAa,cACb,WAAc,WACd,SAAY,WACZ,SAAY,WACZ,UAAa,aACb,UAAa,aACb,MAAS,QACT,QAAW,UACX,WAAc,YACd,QAAW,UACX,SAAY,WACZ,WAAc,cACd,SAAY,eACZ,iBAAoB,QACpB,WAAc,cACd,UAAa,gBACb,QAAW,qBACX,oBAAuB,0BACvB,WAAc,cACd,aAAgB,SAChB,aAAgB,SAChB,aAAgB,SAChB,YAAe,eACf,YAAe,eACf,YAAe,eACf,gBAAmB,2CACnB,gBAAmB,2CACnB,gBAAmB,UACnB,qBAAwB,kBACxB,YAAe,sCACf,mBAAsB,sCACtB,mBAAsB,yCACtB,mBAAsB,wCACtB,yBAA4B,uBAC5B,yBAA4B,uBAC5B,yBAA4B,uBAC5B,mBAAsB,iBACtB,gBAAmB,mBACnB,OAAU,SACV,SAAY,+BACZ,SAAY,+BACZ,SAAY,+BACZ,OAAU,UACV,SAAY,aACZ,aAAgB,UAChB,gBAAmB,aACnB,gBAAmB,aACnB,YAAe,SACf,WAAc,QACd,YAAe,SACf,WAAc,QACd,gBAAmB,aACnB,eAAkB,eAClB,kBAAqB,eACrB,WAAc,QACd,YAAe,eACf,YAAe,eACf,QAAW,oBACX,KAAQ,iBACR,UAAa,aACb,aAAgB,gBAChB,yBAA4B,8BAC5B,uBAA0B,4BAC1B,YAAe,eACf,YAAe,eACf,YAAe,eACf,YAAe,eACf,oBAAuB,wBACvB,oBAAuB,wBACvB,OAAU,SACV,iBAAoB,qBACpB,kBAAqB,sBACrB,aAAgB,gBAChB,gBAAmB,oBACnB,eAAkB,mBAClB,UAAa,aACb,gBAAmB,aACnB,iBAAoB,UACpB,aAAgB,MAChB,sBAAyB,cACzB,gBAAmB,aACnB,gBAAmB,aACnB,gBAAmB,aACnB,uBAA0B,aAC1B,yBAA4B,eAC5B,wBAA2B,cAC3B,0BAA6B,gBAC7B,2BAA8B,SAC9B,0BAA6B,QAC7B,gCAAmC,SACnC,+BAAkC,QAClC,gCAAmC,SACnC,+BAAkC,QAClC,6BAAgC,oBAChC,4BAA+B,mBAC/B,6BAAgC,aAChC,8BAAiC,qBACjC,+BAAkC,sBAClC,gCAAmC,gBACnC,8BAAiC,YACjC,iCAAoC,eACpC,iCAAoC,eACpC,gCAAmC,iBACnC,iCAAoC,iBACpC,YAAe,eACf,mBAAsB,+BACtB,UAAa,aACb,YAAe,QACf,WAAc,OACd,cAAiB,KACjB,kBAAqB,SACrB,YAAe,eACf,iBAAoB,eACpB,yBAA4B,YAC5B,oBAAuB,OACvB,yBAA4B,YAC5B,wBAA2B,YAC3B,wBAA2B,YAC3B,wBAA2B,YAC3B,wBAA2B,YAC3B,gBAAmB,WACnB,cAAiB,QACjB,gBAAmB,UACnB,eAAkB,SAClB,eAAkB,SAClB,sBAAyB,kBACzB,gBAAmB,UACnB,uBAA0B,SAC1B,2BAA8B,aAC9B,2BAA8B,aAC9B,2BAA8B,aAC9B,2BAA8B,aAC9B,2BAA8B,aAC9B,qBAAwB,OACxB,uBAA0B,SAC1B,uBAA0B,SAC1B,qBAAwB,OACxB,qBAAwB,OACxB,cAAiB,iBACjB,YAAe,eACf,aAAgB,gBAChB,sBAAyB,2BACzB,sBAAyB,eACzB,yBAA4B,mBAC5B,4BAA+B,sBAExB23jB,GAAc,CACrB,WAAc,aACd,YAAe,cACf,cAAiB,gBACjB,aAAgB,eAChB,YAAe,cACf,SAAY,WACZ,SAAY,WACZ,UAAa,YACb,gBAAmB,kBACnB,KAAQ,OACR,OAAU,SACV,UAAa,YACb,cAAiB,gBACjB,YAAe,cACf,SAAY,WACZ,IAAO,MACP,KAAQ,OACR,MAAS,QACT,cAAiB,gBACjB,YAAe,cACf,OAAU,SACV,QAAW,UACX,iBAAoB,mBACpB,iBAAoB,mBACpB,KAAQ,OACR,KAAQ,OACR,YAAe,cACf,UAAa,YACb,WAAc,aACd,SAAY,WACZ,SAAY,WACZ,WAAc,aACd,cAAiB,WACjB,cAAiB,WACjB,gBAAmB,aACnB,MAAS,QACT,MAAS,QACT,MAAS,QACT,QAAW,UACX,aAAgB,eAChB,aAAgB,eAChB,WAAc,aACd,eAAkB,iBAClB,YAAe,cACf,YAAe,cACf,kBAAqB,oBACrB,kBAAqB,oBACrB,MAAS,QACT,QAAW,UACX,OAAU,SACV,WAAc,aACd,QAAW,UACX,QAAW,UACX,UAAa,YACb,WAAc,aACd,SAAY,WACZ,SAAY,WACZ,UAAa,YACb,UAAa,YACb,MAAS,QACT,QAAW,UACX,WAAc,aACd,QAAW,UACX,SAAY,WACZ,WAAc,aACd,UAAa,YACb,aAAgB,eAChB,yBAA4B,2BAC5B,uBAA0B,yBAC1B,YAAe,cACf,YAAe,cACf,YAAe,cACf,YAAe,cACf,oBAAuB,sBACvB,oBAAuB,sBACvB,OAAU,SACV,iBAAoB,mBACpB,kBAAqB,oBACrB,aAAgB,eAChB,SAAY,WACZ,YAAe,cACf,YAAe,cACf,gBAAmB,kBACnB,eAAkB,iBAClB,UAAa,YACb,cAAiB,gBACjB,YAAe,cACf,aAAgB,gBAChB,sBAAyB,2BACzB,sBAAyB,eACzB,yBAA4B,mBAC5B,4BAA+B,sBAExBC,GAAiB,CACxB,CAAExjkB,OAAQ,kBAAmBroH,MAAO,YACpC,CAAEqoH,OAAQ,gBAAiBroH,MAAO,8BAClC,CAAEqoH,OAAQ,kBAAmBroH,MAAO,iBACpC,CAAEqoH,OAAQ,iBAAkBroH,MAAO,8BACnC,CAAEqoH,OAAQ,iBAAkBroH,MAAO,4BACnC,CAAEqoH,OAAQ,wBAAyBroH,MAAO,+BAC1C,CAAEqoH,OAAQ,kBAAmBroH,MAAO,8BAE7B8rrB,GAAgB,CACvB,CAAEzjkB,OAAQ,2BAA4BroH,MAAO,KAC7C,CAAEqoH,OAAQ,sBAAuBroH,MAAO,OACxC,CAAEqoH,OAAQ,2BAA4BroH,MAAO,cAC7C,CAAEqoH,OAAQ,0BAA2BroH,MAAO,MAC5C,CAAEqoH,OAAQ,0BAA2BroH,MAAO,MAC5C,CAAEqoH,OAAQ,0BAA2BroH,MAAO,MAC5C,CAAEqoH,OAAQ,0BAA2BroH,MAAO,OAErC+rrB,GAAyB,CAChC,CAAE1jkB,OAAQ,uBAAwBroH,MAAO,QACzC,CAAEqoH,OAAQ,yBAA0BroH,MAAO,WAC3C,CAAEqoH,OAAQ,6BAA8BroH,MAAO,eAC/C,CAAEqoH,OAAQ,6BAA8BroH,MAAO,eAC/C,CAAEqoH,OAAQ,6BAA8BroH,MAAO,eAC/C,CAAEqoH,OAAQ,6BAA8BroH,MAAO,eAC/C,CAAEqoH,OAAQ,6BAA8BroH,MAAO,gBAExCgsrB,GAAyB,CAChC,CAAE3jkB,OAAQ,uBAAwBroH,MAAO,QACzC,CAAEqoH,OAAQ,uBAAwBroH,MAAO,QACzC,CAAEqoH,OAAQ,yBAA0BroH,MAAO,UAC3C,CAAEqoH,OAAQ,yBAA0BroH,MAAO,WC9TxC,SAASurlB,GAAc5tY,EAAgBsue,EAAKC,EAASxwjB,GACxD,IAAI/3H,EAQJ,GALIA,EAFAuorB,EACaD,EAAI/H,cAAc9upB,cACf55B,cAAc,QAGrBywrB,EAAItyrB,QAEb+C,OAAOC,KAAKghN,GAAgB5jN,OAC5B,IAAK,IAAI4B,EAAK,EAAG7F,EAAK4G,OAAOC,KAAKghN,GAAiBhiN,EAAK7F,EAAGiE,OAAQ4B,IAAM,CACrE,IAAIk8P,EAAW/hQ,EAAG6F,GACD,UAAbk8P,EACAl0P,EAAOw2D,UAAUjoD,IAAIyrM,EAAe,GAAKk6C,IAEvB,aAAbA,GAA6D,aAAlCl6C,EAAe,GAAKk6C,IACpDo0b,EAAInrkB,SAAU,EACdmrkB,EAAIxre,aAEc,aAAbo3C,GAA6D,aAAlCl6C,EAAe,GAAKk6C,IACpDo0b,EAAI35d,UAAW,EACf25d,EAAIlgc,YAAYrwH,IAEE,UAAbm8H,EACLl0P,EAAO3I,aAAa,QAAS2iN,EAAe,GAAKk6C,IAE/B,aAAbA,EACLo0b,EAAI7mmB,aAAapqF,aAAa,WAAY2iN,EAAe,GAAKk6C,IAE5C,gBAAbA,GACLo0b,EAAInsoB,YAAc69J,EAAe,GAAKk6C,GACtCo0b,EAAIE,kBAGe,CAAC,OAAQ,YACXrurB,QAAQ+5P,IAAa,EAClCo0b,EAAIG,eAAepxrB,aAAa68P,EAAUl6C,EAAe,GAAKk6C,IAG9Dl0P,EAAO3I,aAAa68P,EAAUl6C,EAAe,GAAKk6C,GAG9D,CAER,CC5CA,IAAIw0b,GAA4B,WAC5B,SAASA,EAAWlnnB,GAChB5uE,KAAK4uE,OAASA,EACd5uE,KAAK4b,kBACT,CAsKA,OA7JAk6qB,EAAWp0rB,UAAUq0rB,eAAiB,SAAUxirB,GAC5C,IAAItR,EAAQjC,KASZ,IAR2C,IAAvCA,KAAK4uE,OAAO0/a,gBAAgBhkS,QAA8C,aAA3BtqN,KAAK4uE,OAAO8+mB,aACvD,QAAM1trB,KAAK4uE,OAAOonnB,qBACtBh2rB,KAAK4uE,OAAOonnB,mBAAmBC,oBAE/Bj2rB,KAAK4uE,OAAO0M,eAAgB,QAAM58E,SAASuG,cAAc,qBACzDjF,KAAK4uE,OAAOogH,OAAO,GAA8B,CAAErsL,KAAM4Q,IAE7DvT,KAAKqgB,kBAAmB,QAAoBrgB,KAAK4uE,OAAOxrE,UACnDpD,KAAK4uE,OAAOxrE,QAAQwgE,UAAU5+D,SAAS,IAA0B,CAClE,IAAIkxrB,EAAW,CACXljlB,QAAQ,EACR0hI,YAAa,WACbk7c,WAAY,WACZjtrB,KAAM4Q,GAEVvT,KAAK4uE,OAAOosH,QAAQ,EAAoBk7f,GAAU,SAAUC,GACxD,IAAKA,EAAenjlB,OAAQ,CACpB/wG,EAAM2sE,OAAO0/a,gBAAgB8nM,iBAC5Bn0rB,EAAM2sE,OAAOynnB,WAAW/re,QAAUroN,EAAM2sE,OAAO0/a,gBAAgBhkS,SAChEroN,EAAM2sE,OAAO0nnB,oBAAoBltrB,MAAMuR,MAAQ,OAC/C1Y,EAAM2sE,OAAO0nnB,oBAAoBltrB,MAAMkR,IAAM,OAEjDrY,EAAM2sE,OAAOxrE,QAAQwgE,UAAUjoD,IAAI,IACnC1Z,EAAMs0rB,sBAAqB,GAC3B,IAAI97c,EAAWx4O,EAAM2sE,OAAOxrE,QAAQkzF,iBAAiB,oCAAoC9yF,OAAS,EAClGvB,EAAM2sE,OAAO4sZ,iBAAiB,KAAM/gP,GAChCx4O,EAAM2sE,OAAO68a,gBACRxpf,EAAM2sE,OAAOihnB,uBAAuBF,WAAWxlqB,MAAM,GAAGy1F,YACzD39G,EAAM2sE,OAAOihnB,uBAAuBF,WAAW97lB,YAAY,GAE3D,KAAQolG,UACRh3L,EAAM2sE,OAAO68a,cAAc+qM,uBAE/Bv0rB,EAAM2sE,OAAO68a,cAActlN,WAAW,CAClCypZ,WAAY,WACZzpZ,WAAY,WACZupZ,YAAaztrB,EAAM2sE,OAAOihnB,0BAGlC5trB,EAAM2sE,OAAO6nnB,YACbx0rB,EAAM2sE,OAAOosH,QAAQ,EAAuB,CAAE05C,YAAa,WAAYk7c,WAAY,WAAYjtrB,KAAM4Q,GACzG,CACJ,GACJ,CACJ,EASAuirB,EAAWp0rB,UAAUg1rB,eAAiB,SAAUnjrB,GAC5C,IAAItR,EAAQjC,KAQZ,IAP2C,IAAvCA,KAAK4uE,OAAO0/a,gBAAgBhkS,QAA8C,aAA3BtqN,KAAK4uE,OAAO8+mB,aACvD,QAAM1trB,KAAK4uE,OAAOonnB,qBACtBh2rB,KAAK4uE,OAAOonnB,mBAAmBC,oBAE/Bj2rB,KAAK4uE,OAAO0M,eAAgB,QAAM58E,SAASuG,cAAc,qBACzDjF,KAAK4uE,OAAOogH,OAAO,GAA8B,CAAErsL,KAAM4Q,IAEzDvT,KAAK4uE,OAAOxrE,QAAQwgE,UAAU5+D,SAAS,IAA0B,CACjE,IAAIkxrB,EAAW,CACXljlB,QAAQ,EACR0hI,YAAa,WACbk7c,WAAY,WACZjtrB,KAAM4Q,GAEVvT,KAAK4uE,OAAOosH,QAAQ,EAAoBk7f,GAAU,SAAUC,GACxD,IAAKA,EAAenjlB,OAAQ,CACxB/wG,EAAM2sE,OAAOxrE,QAAQwgE,UAAUC,OAAO,IAEtC,IADA,IAAImK,EAAOtvE,SAAS43F,iBAAiB,mBAC5BvpF,EAAI,EAAGA,EAAIihE,EAAKxqE,OAAQuJ,KAC7B,QAAY,CAACihE,EAAKjhE,IAAK,CAAC,mBAE5B,IAAI0tO,EAAWx4O,EAAM2sE,OAAOxrE,QAAQkzF,iBAAiB,oCAAoC9yF,OAAS,EAClGvB,EAAM2sE,OAAO4sZ,iBAAiB,KAAM/gP,GAChCx4O,EAAM2sE,OAAO68a,gBACRxpf,EAAM2sE,OAAOihnB,uBAAuBF,WAAWxlqB,MAAM,GAAGy1F,YACzD39G,EAAM2sE,OAAOihnB,uBAAuBF,WAAW97lB,YAAY,GAE/D5xF,EAAM2sE,OAAO68a,cAActlN,WAAW,CAClCypZ,WAAY,WACZzpZ,WAAY,WACZupZ,YAAaztrB,EAAM2sE,OAAOihnB,yBAE1B,KAAQ52f,UAAYh3L,EAAM2sE,OAAOynnB,WAAW/re,QAC5CroN,EAAM2sE,OAAO68a,cAAckrM,qBAGnC10rB,EAAM2sE,OAAOosH,QAAQ,EAAuB,CAAE05C,YAAa,WAAYk7c,WAAY,WAAYjtrB,KAAM4Q,GACzG,CACJ,GACJ,CACJ,EAEAuirB,EAAWp0rB,UAAU60rB,qBAAuB,SAAU9wY,GAClD,KAAI,QAAMzlT,KAAKqgB,kBAGf,IAAK,IAAItT,EAAI,EAAGA,EAAI/M,KAAKqgB,iBAAiB7c,OAAQuJ,IAC9C,GAA0C,cAAtC/M,KAAKqgB,iBAAiBtT,GAAGw6M,SAA0B,CACnD,IAAIv5I,EAAOtvE,SAASuG,cAAc,SAClC,QAAS,CAAC+oE,GAAO,CAAC,kBACtB,MAEQA,EAAOhuE,KAAKqgB,iBAAiBtT,IACjC,QAAS,CAACihE,GAAO,CAAC,kBAG9B,EACA8nnB,EAAWp0rB,UAAUqV,UAAY,SAAUxD,GACvC,IAAIkqJ,EAAgBlqJ,EAAM5Q,KAC1B,OAAQ86J,EAAcirC,QAClB,IAAK,cACD1oM,KAAK+1rB,eAAexirB,EAAM5Q,MAC1B86J,EAAc9jJ,iBACd,MACJ,IAAK,SACD3Z,KAAK02rB,eAAenjrB,EAAM5Q,MAC1B86J,EAAc9jJ,iBAG1B,EACAm8qB,EAAWp0rB,UAAUka,iBAAmB,WACpC5b,KAAK4uE,OAAOprD,GAAG,EAAgBxjB,KAAK+W,UAAW/W,MAC/CA,KAAK4uE,OAAOprD,GAAG,EAAgBxjB,KAAK0vL,QAAS1vL,MAC7CA,KAAK4uE,OAAOprD,GAAG,GAAsBxjB,KAAK+nrB,cAAe/nrB,KAC7D,EACA81rB,EAAWp0rB,UAAU4a,oBAAsB,WACvCtc,KAAK4uE,OAAOsC,IAAI,EAAgBlxE,KAAK+W,WACrC/W,KAAK4uE,OAAOsC,IAAI,EAAgBlxE,KAAK0vL,SACrC1vL,KAAK4uE,OAAOsC,IAAI,GAAsBlxE,KAAK+nrB,cAC/C,EAQA+N,EAAWp0rB,UAAUguL,QAAU,WACvB1vL,KAAK4uE,OAAOxrE,QAAQwgE,UAAU5+D,SAAS,KACvChF,KAAKu2rB,sBAAqB,GAG9B,IADA,IAAIvonB,EAAOtvE,SAAS43F,iBAAiB,mBAC5BvpF,EAAI,EAAGA,EAAIihE,EAAKxqE,OAAQuJ,KAC7B,QAAY,CAACihE,EAAKjhE,IAAK,CAAC,mBAE5B/M,KAAKsc,qBACT,EACAw5qB,EAAWp0rB,UAAUqmrB,cAAgB,WACjC/nrB,KAAK4uE,OAAS,IAClB,EACOknnB,CACX,CA3K+B,GCH3Bc,GAAgC,WAChC,SAASA,EAAehonB,GACpB5uE,KAAK4uE,OAASA,EACd5uE,KAAK4b,kBACT,CAsdA,OArdAg7qB,EAAel1rB,UAAUka,iBAAmB,WACxC5b,KAAK4uE,OAAOprD,GAAG,GAAqBxjB,KAAKgorB,aAAchorB,MACvDA,KAAK4uE,OAAOprD,GAAG,EAAgBxjB,KAAK0vL,QAAS1vL,MAC7CA,KAAK4uE,OAAOprD,GAAG,GAAsBxjB,KAAK+nrB,cAAe/nrB,KAC7D,EACA42rB,EAAel1rB,UAAUguL,QAAU,WAC/B1vL,KAAKsc,qBACT,EACAs6qB,EAAel1rB,UAAUqmrB,cAAgB,WACrC/nrB,KAAK4uE,OAAS,IAClB,EACAgonB,EAAel1rB,UAAU4a,oBAAsB,WAC3Ctc,KAAK4uE,OAAOsC,IAAI,GAAqBlxE,KAAKgorB,cAC1ChorB,KAAK4uE,OAAOsC,IAAI,EAAgBlxE,KAAK0vL,SACrC1vL,KAAK4uE,OAAOsC,IAAI,GAAsBlxE,KAAK+nrB,cAC/C,EACA6O,EAAel1rB,UAAUm1rB,aAAe,WACpC72rB,KAAKgpL,MAAQhpL,KAAK4uE,OAAOsqY,WACzBl5c,KAAKuqT,UAAmD,UAAvCvqT,KAAKgpL,MAAMigb,eAAe1hZ,SAAuBvnN,KAAKgpL,MAAMigb,eAAexzlB,cACxFzV,KAAKgpL,MAAMigb,eACfjpmB,KAAK0tT,QAA+C,UAArC1tT,KAAKgpL,MAAMqkb,aAAa9lZ,SAAuBvnN,KAAKgpL,MAAMqkb,aAAa53lB,cAClFzV,KAAKgpL,MAAMqkb,YACnB,EACAupF,EAAel1rB,UAAUsmrB,aAAe,SAAUvkrB,GAC9C,IAAIxB,EAAQjC,KACZA,KAAK62rB,eACL,IAAIC,GAAe,EAEnB,GADA92rB,KAAK+2rB,WAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,gBAClD,QAAM/2rB,KAAKuqT,UAAUztH,QAAQ,aAAc,QAAM98L,KAAK0tT,QAAQ5wH,QAAQ,UAAW,CAClFg6f,GAAe,EAGf,IAFA,IAAIE,EAAah3rB,KAAKuqT,UAClB0sY,EAAeD,GACXh3rB,KAAK4uE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYH,IAE5DC,EADAD,EAAaA,EAAWvhrB,cAG5BqhrB,EAAwC,OAAzBG,EAAaj4qB,SAA6C,UAAzBi4qB,EAAaj4qB,OACjE,CACA,GAAqB,KAAjBvb,EAAEd,KAAK6U,QAAkB,KAAQyhL,SAAoD,UAAfx1L,EAAEd,KAAKD,IAAjB,UAAhBe,EAAEd,KAAKoM,QAC/C,QAAM/O,KAAKuqT,UAAUztH,QAAQ,iBAAkB,QAAM98L,KAAK0tT,QAAQ5wH,QAAQ,gBAAkBg6f,IAC5F,QAAM92rB,KAAKuqT,UAAUztH,QAAQ,UAAW,QAAM98L,KAAK0tT,QAAQ5wH,QAAQ,QAAS,CAC5E,IAAIs6f,EAAa3zrB,EAAEd,KAAKgR,SACpB0ooB,EAAkB,CAClBrpiB,QAAQ,EACRprG,KAAM,EACN8sO,YAAa0id,EAAa,mBAAqB,cAC/C35hB,cAAeh6J,EAAEd,MAErB3C,KAAK4uE,OAAOosH,QAAQ,EAAoBqhd,GAAiB,SAAUA,GAC/D,IAAKA,EAAgBrpiB,OAAQ,CACzB,GAAM/wG,EAAM+mL,MAAM3yD,cAAgBp0H,EAAM+mL,MAAM5xD,WAAan1H,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM+mL,MAAMqkb,aAKlG,GAJ8C,SAAxCprmB,EAAM+mL,MAAMigb,eAAe1hZ,WAAwBtlN,EAAM+mL,MAAMigb,eAAerliB,UAAU5+D,SAAS,iBACnG/C,EAAM+mL,MAAMigb,eAAerliB,UAAU5+D,SAAS,kBAC9C/C,EAAM+mL,MAAMqugB,iBAE4B,UAAxCp1rB,EAAM+mL,MAAMigb,eAAe1hZ,UAA0E,IAAlDtlN,EAAM+mL,MAAMigb,eAAelmgB,YAAYv/F,QAC1FvB,EAAM+mL,MAAMigb,eAAexzlB,gBAAkBxT,EAAM2sE,OAAOigB,aAC5B,OAA1B5sF,EAAM2sE,OAAOi/mB,SACb5rrB,EAAM+mL,MAAMigb,eAAexzlB,cAAcsyH,UAAY,UAGrD9lI,EAAM+mL,MAAMigb,eAAexzlB,cAAcsyH,UAAY,YAGxD,GAAI9lI,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM2sE,OAAOigB,cAAyD,KAAzC5sF,EAAM+mL,MAAMigb,eAAelhe,UAAkB,CAC9G9lI,EAAM+mL,MAAMigb,eAAelhe,UAAY,OACvC,IAAIuvjB,EAAYr1rB,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,aAClEp0H,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAey4pB,EAAW,EAC3H,MACK,GAAIr1rB,EAAM2sE,OAAOigB,eAAiB5sF,EAAM+mL,MAAMigb,eAAgB,CAE/D,GAA2B,WADvBquF,EAAYr1rB,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,cACpDkxF,UAAyD,IAAjC+ve,EAAUv0lB,YAAYv/F,OACxDvB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAey4pB,EAA4C,IAAjCA,EAAUv0lB,YAAYv/F,OAAe,EAAI8zrB,EAAUjzb,gBAAgBthK,YAAYv/F,aAItM,GADAvB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAey4pB,EAAWA,EAAUv0lB,YAAYv/F,QAAU,EAAI,EAAI,GAC1G,IAAjD8zrB,EAAUjzb,gBAAgBthK,YAAYv/F,QAEtC,IADA,QAAO8zrB,EAAUjzb,kBACZ+yb,EAAY,CAEb,IADA,IAAIG,GAAoB,QAAMD,EAAU99qB,WAAmC89qB,EAAtBA,EAAU99qB,YACvD,QAAM+9qB,IAAmD,UAA9BA,EAAiBhwe,UAAsD,OAA9Bgwe,EAAiBhwe,UACzFgwe,EAAmBA,EAAiB/9qB,UAEN,OAA9B+9qB,EAAiBhwe,UAA2E,IAAtDgwe,EAAiB9hrB,cAAcstF,YAAYv/F,QAAoE,IAApD+zrB,EAAiB9hrB,cAAcsyH,UAAUvkI,QAC9F,OAA5C+zrB,EAAiB9hrB,cAAc8xM,UAC/Bgwe,EAAiB9hrB,cAAc/R,YAAYzB,EAAM2sE,OAAOrqE,cAAc,OAE1EtC,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAA6C,OAA9B04pB,EAAiBhwe,SAAoBgwe,EAAmBA,EAAiB9hrB,cAAe8hrB,EAAiB9hrB,cAAcstF,YAAYv/F,QAAU,GAAmC,OAA9B+zrB,EAAiBhwe,SAAoB,EAAI,EAC3S,OAEC,GAAqC,IAAjC+ve,EAAUv0lB,YAAYv/F,OAAc,CAEzC,IADI+zrB,EAA0D,UAAvCD,EAAUjzb,gBAAgB98C,SAAuB+ve,EAAUjzb,gBAAkBizb,EAAUjzb,gBAAgB7qP,YACtH,QAAM+9qB,IAAmD,UAA9BA,EAAiBhwe,UAChDgwe,EAAmBA,EAAiB/9qB,UAExCvX,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe04pB,EAAkBA,EAAiBx0lB,YAAYv/F,SAC3J,QAAO8zrB,EACX,MACK,GAA8B,OAA1Br1rB,EAAM2sE,OAAOi/mB,UAC+B,IAAjDyJ,EAAUjzb,gBAAgBthK,YAAYv/F,QAAiD,IAAjC8zrB,EAAUv0lB,YAAYv/F,OAE5E,YADAC,EAAEd,KAAKgX,iBAIf1X,EAAM40rB,cACV,CAEJ,GAAI50rB,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM+mL,MAAMqkb,cAC3CprmB,EAAM+mL,MAAM3yD,cAAgBp0H,EAAM+mL,MAAM5xD,WAAan1H,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM2sE,OAAOigB,aAAc,CAC/G,GAAsD,IAAhD5sF,EAAM2sE,OAAOigB,aAAa/pF,WAAWtB,QAAqE,UAArDvB,EAAM2sE,OAAOigB,aAAa/pF,WAAW,GAAGyiN,SAC/F,IAAI,QAAMtlN,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,cAAe,CAEvE,IADA,IAAImhkB,EAAkBv1rB,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,YAAc,GACjD,OAA9BmhkB,EAAgBh+qB,WAAmD,UAA7Bg+qB,EAAgBjwe,UACzDiwe,EAAkBA,EAAgBh+qB,UAEtCvX,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe24pB,EAA+C,OAA7BA,EAAgBjwe,SAAoB,EAAIiwe,EAAgBz0lB,YAAYv/F,OACtM,MAEIvB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe58B,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,aAAc,GAGpLp0H,EAAM40rB,cACV,CACA,GAA+B,MAA1B50rB,EAAM2sE,OAAOi/mB,WAAqBuJ,GAA0C,QAA1Bn1rB,EAAM2sE,OAAOi/mB,WAAuBuJ,GACvD,MAA/Bn1rB,EAAM2sE,OAAO6onB,eAAyBL,GACP,QAA/Bn1rB,EAAM2sE,OAAO6onB,eAA2BL,EAAa,CACtD,GAAgC,IAA5Bn1rB,EAAM+mL,MAAM3yD,aAAqE,IAAhDp0H,EAAM2sE,OAAOigB,aAAa/pF,WAAWtB,QAAqE,UAArDvB,EAAM2sE,OAAOigB,aAAa/pF,WAAW,GAAGyiN,UAC1Hk4M,EAAUx9Z,EAAMy1rB,oBAAoBN,IAChC1zrB,YAAYzB,EAAM2sE,OAAOrqE,cAAc,OAC/CtC,EAAM2sE,OAAOigB,aAAanrF,YAAY+7Z,GACtCx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe4gY,EAAS,OAEpH,CACD,IAAIk4R,OAAgB,EAEhBA,EADAb,GAAgB70rB,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYl1rB,EAAMsoT,WAC/DtoT,EAAMsoT,UAGNtoT,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQU,gBAAgB31rB,EAAMsoT,WAEvF,IAAIstY,GAAc,EACdC,GAAiB,EACrB,GAAgC,IAA5B71rB,EAAM+mL,MAAM3yD,aAA+C,IAA1Bp0H,EAAM+mL,MAAM5xD,WAC7Cn1H,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM+mL,MAAMqkb,gBAAmB,QAAMsqF,EAAc7yrB,WAAW,MAChD,QAAzC6yrB,EAAc7yrB,WAAW,GAAGyiN,UAAsBowe,EAAcrhmB,iBAAiB,qBAAqB9yF,OAAS,GAQlF,IAA5BvB,EAAM+mL,MAAM3yD,aAA+C,IAA1Bp0H,EAAM+mL,MAAM5xD,YAClD0gkB,GAAiB,OATuG,CACxH,IACIC,EADgB91rB,EAAM+mL,MAAMigb,eAAelmgB,YACZ/1F,UAAU,EAAG/K,EAAM+mL,MAAM3yD,aAEG,MAA3D0hkB,EAAe74lB,WAAWj9F,EAAM+mL,MAAM3yD,YAAc,IAA+C,IAAjC0hkB,EAAelsrB,OAAOrI,SACxFs0rB,GAAiB,EAEzB,CASA,GALA71rB,EAAM+1rB,gBAAgBL,KAC+C,IAA1C,KAAQv4rB,UAAUmI,QAAQ,YAAiD,IAA5BtF,EAAM+mL,MAAM3yD,aAAqBp0H,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM+mL,MAAMqkb,cAC1G,UAAxCprmB,EAAM+mL,MAAMigb,eAAe1hZ,UAAyBtlN,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYl1rB,EAAM+mL,MAAMigb,eAAe5kW,kBACxIpiQ,EAAM+mL,MAAMigb,eAAexzlB,gBAAkBxT,EAAM+mL,MAAMigb,eAAe5kW,gBAAgB5uP,iBAEjC,IAA5BxT,EAAM+mL,MAAM3yD,aAA+C,IAA1Bp0H,EAAM+mL,MAAM5xD,WAAoB0gkB,MACzF,QAAM71rB,EAAM+mL,MAAMigb,eAAe5kW,kBACyB,QAAxDpiQ,EAAM+mL,MAAMigb,eAAe5kW,gBAAgB98C,UAA8E,OAAxDtlN,EAAM+mL,MAAMigb,eAAe5kW,gBAAgB98C,UAAqB,CACtI,IAAI0we,OAAwB,EACxBx4R,OAAU,IACT,QAAMx9Z,EAAM+mL,MAAMigb,eAAenkmB,aAAiE,IAAlD7C,EAAM+mL,MAAMigb,eAAelmgB,YAAYv/F,SACpFvB,EAAM+mL,MAAMigb,eAAe3ygB,iBAAiB,qBAAqB9yF,OAAS,GAClC,QAAxCvB,EAAM+mL,MAAMigb,eAAe1hZ,UAA8D,UAAxCtlN,EAAM+mL,MAAMigb,eAAe1hZ,WAChFk4M,EAAUx9Z,EAAMy1rB,oBAAoBN,GACpCS,GAAc,EACdI,GAAwB,GAGyB,IAA5CN,EAAc50lB,YAAYl3F,OAAOrI,QACO,QAAzCm0rB,EAAc7yrB,WAAW,GAAGyiN,UACU,KAArCowe,EAAc50lB,YAAYl3F,QAAiB8rrB,EAAcrhmB,iBAAiB,qBAAqB9yF,OAAS,GACpGvB,EAAM+mL,MAAM3yD,cAAgBp0H,EAAM+mL,MAAM5xD,WAAyC,IAA5Bn1H,EAAM+mL,MAAM3yD,YAClEopS,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,GAAOv7oB,WAAU,IAGjHqjX,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,GAAMv7oB,WAAU,GAChHy7oB,GAAc,GAElBI,GAAwB,IAGxBx4R,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,GAAMv7oB,WAAU,GAChH67oB,GAAwB,GAGhC,IAAIG,OAAa,EAOjB,IALIA,EADAn2rB,EAAM80rB,WAAWxvrB,QAAQk4Z,EAAQl4M,SAAS93H,qBAAuB,EACpDxtF,EAAMy1rB,oBAAoBN,GAG1Bn1rB,EAAM2sE,OAAOrqE,cAAck7Z,EAAQl4M,UAE7Ck4M,EAAQloZ,YACX6grB,EAAW10rB,YAAY+7Z,EAAQloZ,YAGnC,GADAogrB,EAAclirB,cAAc1Q,aAAaqzrB,EAAYT,IAChDM,EAAuB,CACpBV,EAAmBa,EAAvB,IACIC,OAAiB,EACrB,GAAIp2rB,EAAM+mL,MAAM3yD,cAAgBp0H,EAAM+mL,MAAM5xD,WAAyC,IAA5Bn1H,EAAM+mL,MAAM3yD,YACjE,OAAQ,QAAMkhkB,IAAmD,UAA9BA,EAAiBhwe,UAClB,OAA9Bgwe,EAAiBhwe,UACjB8we,EAAiBd,EACjBA,EAAmBA,EAAiB/9qB,eAIxC6+qB,EAAiBd,EAErBc,EAAetwjB,UAAY,OACtB8vjB,IACD,QAAOF,EAEf,CACA11rB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAeu5pB,EAAWzzrB,mBAAoB,EAC/I,MACK,GAAyC,IAArCgzrB,EAAc50lB,YAAYv/F,UAAmB,QAAMm0rB,EAAc7yrB,WAAW,KAAgD,QAAzC6yrB,EAAc7yrB,WAAW,GAAGyiN,SAanH,GAAItlN,EAAM+mL,MAAMigb,iBAAmBhnmB,EAAM+mL,MAAMqkb,cAAwD,SAAxCprmB,EAAM+mL,MAAMigb,eAAe1hZ,WAC1FtlN,EAAM+mL,MAAMigb,eAAerliB,UAAU5+D,SAAS,iBAC3C/C,EAAM+mL,MAAMigb,eAAerliB,UAAU5+D,SAAS,iBAAkB,CACpE,GAAI2yrB,EAAc50lB,YAAYl3F,OAAOrI,OAAS,EAAG,CACzCi8Z,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,GAKpG,IALA,IACIW,GAAkB,QAAM74R,EAAQp7J,gBAAgBp/P,cAAc,kBACLw6Z,EAAQp7J,gBAAgBp/P,cAAc,iBAA/Fw6Z,EAAQp7J,gBAAgBp/P,cAAc,iBACtCszrB,GAAe,EACfC,EAAWF,EAAej0b,kBACtB,QAAMm0b,IAAmC,UAAtBA,EAASjxe,UAChCixe,EAAWA,EAASh/qB,UAExB,IAAI,QAAMg/qB,GAAW,CACjB,IAAIC,EAAQx2rB,EAAM2sE,OAAOrqE,cAAc,MACvC+zrB,EAAe7irB,cAAc/R,YAAY+0rB,GACzCF,GAAe,CACnB,CACIA,EACAt2rB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAey5pB,EAAe7irB,cAAe,GAG1IxT,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe25pB,EAAUA,EAASz1lB,YAAYv/F,SAE/I,QAAO80rB,EACX,KACK,CAGD,IADIhB,GADA73R,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,IAC5Etzb,kBAChB,QAAMizb,EAAU//qB,cACpB,QAAO+/qB,EAAU//qB,YAEjBkhrB,EAAQx2rB,EAAM2sE,OAAOrqE,cAAc,MACvC+yrB,EAAU5zrB,YAAY+0rB,GACtBx2rB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAey4pB,EAAW,EAC3H,EACK,QAAMr1rB,EAAM2sE,OAAO8pnB,cACpBz2rB,EAAM2sE,OAAO8pnB,YAAYC,yBAExB,QAAM12rB,EAAM2sE,OAAOgqnB,cACpB32rB,EAAM2sE,OAAOgqnB,YAAYC,uBAEjC,KACK,CAMD,GALIp5R,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,IAC/F,QAAMl4R,EAAQ36Z,WAAW,KAA0C,UAAnC26Z,EAAQ36Z,WAAW,GAAGyiN,UACV,IAA7Ck4M,EAAQ36Z,WAAW,GAAGi+F,YAAYv/F,SAClC,QAAOi8Z,EAAQ36Z,WAAW,IAEY,IAAtC26Z,EAAQ18T,YAAYl3F,OAAOrI,OAAc,CAEzC,GADIi1rB,EAAQx2rB,EAAM2sE,OAAOrqE,cAAc,MACN,MAA7BtC,EAAMsoT,UAAUhjG,SAAkB,CAClC,IAAIuxe,EAAkB72rB,EAAMsoT,UAAU90S,cACtCxT,EAAMsoT,UAAU90S,cAAc1Q,aAAa0zrB,EAAOx2rB,EAAMsoT,YACxD,QAAOtoT,EAAMsoT,WACbtoT,EAAMsoT,UAAYuuY,CACtB,KAEqC,OAA7B72rB,EAAMsoT,UAAUhjG,UAChBtlN,EAAMsoT,UAAU7mT,YAAY+0rB,GAGM,OAAtCh5R,EAAQ36Z,WAAW,GAAGi+F,cACtB,QAAO08T,EAAQ36Z,WAAW,IAE9B7C,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe58B,EAAMsoT,UAAW,EACjI,CACA,IAAgC,MAA1BtoT,EAAM2sE,OAAOi/mB,UAA8C,QAA1B5rrB,EAAM2sE,OAAOi/mB,YAAwBuJ,IAAgD,QAA/Bn1rB,EAAM2sE,OAAO6onB,eACvE,MAA/Bx1rB,EAAM2sE,OAAO6onB,gBAA0BL,EAAa,CACpD,IAAI2B,EAAe92rB,EAAM80rB,WAAWxvrB,QAAQk4Z,EAAQl4M,SAAS93H,qBAC7D,GAAKspmB,EAAe,GAAOA,GAAgB,GAA2C,IAAtCt5R,EAAQ18T,YAAYl3F,OAAOrI,OAAe,CAEtF,IADA,IAAIw1rB,EAAY/2rB,EAAMy1rB,oBAAoBN,GACnC33R,EAAQloZ,YACXyhrB,EAAUt1rB,YAAY+7Z,EAAQloZ,YAElCtV,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAYyyZ,EAAWv5R,IACpE,QAAOA,GACPx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe58B,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYl1rB,EAAMsoT,WACvKyuY,EAAY/2rB,EAAMsoT,UAAW,EACrC,CACJ,CACJ,MA5FI,IAAK,QAAMotY,EAAct6qB,SAAS,KAA6C,OAAtCs6qB,EAAct6qB,SAAS,GAAG2B,SAM3Do5qB,EAAan2rB,EAAMy1rB,oBAAoBN,IAChCrvjB,UAAY,OACvB9lI,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAY6xZ,EAAYT,GACrE11rB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAeu5pB,EAAY,OATvC,CAC7E34R,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO2ugB,GAAe,GAAOv7oB,WAAU,GACrHn6C,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAYk5H,EAASk4R,GAClE11rB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe4gY,EAASA,EAAQ18T,YAAYv/F,QAAU,EAAI,EAAI,EAC/J,CAyFR,CACAC,EAAEd,KAAKgX,gBACX,CACA,GAA+B,OAA1B1X,EAAM2sE,OAAOi/mB,WAAsBuJ,GAA+C,OAA/Bn1rB,EAAM2sE,OAAO6onB,eAA0BL,EAAa,CACxG,IAAItzY,OAAgB,EACpB,GAAK7hT,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYl1rB,EAAMsoT,WAWhEzG,EAAgB7hT,EAAMsoT,cAXsD,CAG5E,IAFA,IAAIrkM,EAAcjkH,EAAMsoT,UACpB0uY,EAAe/ykB,GACXjkH,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYjxkB,IAC7D+ykB,EAAe/ykB,EACfA,EAAcA,EAAYzwG,cAE9BquS,EAAgB59L,IAAgBjkH,EAAM2sE,OAAOigB,aACzCoqmB,EAAe/ykB,CACvB,CAIAjkH,EAAM+1rB,gBAAgBl0Y,GAGtB,IAFA,IACIo1Y,EAAyBp1Y,EAActqS,YACnC,QAAM0/qB,IAAiE,UAApCA,EAAuB3xe,UAA4D,OAApC2xe,EAAuB3xe,UACtE,QAApC2xe,EAAuB3xe,UAC1B2xe,EAAyBA,EAAuB1/qB,UAEpD,IAAI2/qB,EAAmBl3rB,EAAM+mL,MAAMigb,iBAAmBiwF,EAClDj3rB,EAAM+mL,MAAMigb,eAAelmgB,YAAYv/F,OAASsgT,EAAc/gN,YAAYv/F,OAC1E41rB,EAA0D,QAAxCn3rB,EAAM+mL,MAAMigb,eAAe1hZ,UAAuBtlN,EAAM+mL,MAAMigb,eAAenkmB,WAAWtB,OAAS,GACpC,QAA5EvB,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,aAAakxF,SACtE,GAAIu8F,IAAkB7hT,EAAM2sE,OAAOigB,cAC/B5sF,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQC,YAAYrzY,IACzD7hT,EAAM+mL,MAAM3yD,cAAgBp0H,EAAM+mL,MAAM5xD,YACvCn1H,EAAM+mL,MAAM3yD,cAAgB8ikB,GACoB,IAA5Cr1Y,EAAc/gN,YAAYl3F,OAAOrI,QAAgB41rB,GAAkB,CACxE,IAAIC,EAAcp3rB,EAAM2sE,OAAOrqE,cAAc,MAC7C,GAAgC,IAA5BtC,EAAM+mL,MAAM3yD,aAA6D,UAAxCp0H,EAAM+mL,MAAMigb,eAAe1hZ,SAC5DtlN,EAAM+mL,MAAMigb,eAAexzlB,cAAc1Q,aAAas0rB,EAAap3rB,EAAM+mL,MAAMigb,qBAG/E,GAAwC,OAApCiwF,EAAuB3xe,UAA0D,IAArCu8F,EAAc/gN,YAAYv/F,OACtEvB,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAY8yZ,EAAaH,QAErE,GAAgC,IAA5Bj3rB,EAAM+mL,MAAM3yD,aAA+C,IAA1Bp0H,EAAM+mL,MAAM5xD,WAAmBgikB,EAAgB,CACrF,IAAI3wnB,EAAuD,QAAxCxmE,EAAM+mL,MAAMigb,eAAe1hZ,SAAqBtlN,EAAM+mL,MAAMigb,eAC3EhnmB,EAAM+mL,MAAMigb,eAAenkmB,WAAW7C,EAAM+mL,MAAM3yD,aACtDytL,EAAc/+S,aAAas0rB,EAAa5wnB,GACxC4wnB,EAAc5wnB,CAClB,KACK,CACD,IAAI6wnB,EAAkBr3rB,EAAM2sE,OAAOrqE,cAAc,MACjDtC,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAY8yZ,EAAap3rB,EAAM+mL,MAAMigb,gBAClFhnmB,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAY+yZ,EAAiBr3rB,EAAM+mL,MAAMigb,eAC1F,CAEJhnmB,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAew6pB,EAAa,EAC7H,MACK,IAAK,QAAMv1Y,IAAkBA,IAAkB7hT,EAAM2sE,OAAOigB,cAA2C,OAA3Bi1N,EAAcv8F,SAgC3FtlN,EAAMs3rB,uBA/BN,GAAgD,IAA5Cz1Y,EAAc/gN,YAAYl3F,OAAOrI,QAA6D,IAA5CsgT,EAAc/gN,YAAYl3F,OAAOrI,QACvC,OAA5CsgT,EAAc/gN,YAAY7D,WAAW,GAAc,CAC/CugU,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO86H,GAAe,GAAM1nQ,WAAU,GACpHn6C,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAYk5H,EAAS37G,GAClE,IAAI01Y,EAAcv3rB,EAAM2sE,OAAOrqE,cAAc,MAC7Ck7Z,EAAQhqZ,cAAc1Q,aAAay0rB,EAAa/5R,GAChDx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe4gY,EAAS,EACzH,MAII,GAFIA,OAAU,EACV+5R,EAAcv3rB,EAAM2sE,OAAOrqE,cAAc,MACb,IAA5BtC,EAAM+mL,MAAM3yD,aAA+C,IAA1Bp0H,EAAM+mL,MAAM5xD,YAC5C,QAAM0sL,EAAcz/C,kBAA+D,OAA3Cy/C,EAAcz/C,gBAAgB98C,SAcvEtlN,EAAMs3rB,sBAdoF,CAM1F,IAJA95R,EAAUx9Z,EAAM2sE,OAAOk/mB,UAAUC,cAAcmK,WAAWC,UAAUl2rB,EAAM+mL,MAAO86H,GAAe,GAAO1nQ,WAAU,GACjHn6C,EAAM2sE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAYizZ,EAAa11Y,GACtE7hT,EAAMw3rB,qBACFlC,EAAmBiC,EAAYhsY,cAC3B,QAAM+pY,IAAmD,UAA9BA,EAAiBhwe,UAChDgwe,EAAmBA,EAAiB/9qB,UAExCvX,EAAM2sE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAehsrB,EAAM2sE,OAAO++mB,cAAc9upB,cAAe04pB,EAAkB,EAGlI,CASR9zrB,EAAEd,KAAKgX,gBACX,CACA1X,EAAM2sE,OAAOosH,QAAQ,EAAuB,CAAE05C,YAAa0id,EAAa,mBAAqB,cAAez0rB,KAAMc,EAAEd,MACxH,CACJ,GACJ,CAER,EACAi0rB,EAAel1rB,UAAUs2rB,gBAAkB,SAAU/zqB,IACH,IAA1C,KAAQ7kB,UAAUmI,QAAQ,YAC1BvH,KAAKgpL,MAAM5xD,YAAcnzG,EAAe8+E,YAAYv/F,SAAiD,IAAtCygB,EAAe8+E,YAAYv/F,QAC1FygB,EAAeqyE,iBAAiB,MAAM9yF,OAAS,MAC9C,QAAMygB,EAAezK,YAAoD,OAAtCyK,EAAezK,UAAU+tM,WAC7D,QAAOtjM,EAAezK,UAE9B,EACAo9qB,EAAel1rB,UAAU63rB,gBAAkB,WACvC,IAAIG,GAAoB,EACpBC,GAAkB,EAC6B,IAA/C35rB,KAAKgpL,MAAMqkb,aAAatqgB,YAAYv/F,QAAuD,OAAvCxD,KAAKgpL,MAAMigb,eAAe1hZ,WAC9Eoye,GAAkB,GAEtB,IAAIlB,EAAQz4rB,KAAK4uE,OAAOrqE,cAAc,MAYtC,GAXgC,OAA5BvE,KAAKuqT,UAAUhjG,UAA+C,OAA1BvnN,KAAK0tT,QAAQnmG,UAAgD,IAA3BvnN,KAAKgpL,MAAM3yD,aAAqBr2H,KAAKgpL,MAAM3yD,cAAgBr2H,KAAKgpL,MAAM5xD,WAC5Ip3H,KAAK4uE,OAAOk/mB,UAAUC,cAAcmJ,QAAQ3wZ,YAAYkyZ,EAAOz4rB,KAAKuqT,WACpEmvY,GAAoB,IAGhB15rB,KAAKuqT,YAAcvqT,KAAK4uE,OAAOigB,eAAiB,QAAM7uF,KAAKgpL,MAAMigb,eAAe5kW,kBACzB,OAAvDrkQ,KAAKgpL,MAAMigb,eAAe5kW,gBAAgB98C,UAAsE,IAAjDvnN,KAAKgpL,MAAMigb,eAAelmgB,YAAYv/F,SACrGk2rB,GAAoB,GAExB15rB,KAAKgpL,MAAM4wgB,WAAWnB,IAEtBiB,KAAuB,QAAMjB,EAAM9zrB,qBAA4D,OAArC8zrB,EAAM9zrB,mBAAmBqa,WAAuB,QAAMy5qB,EAAMjrY,cAAgBirY,EAAMjrY,YAAYzqN,YAAYv/F,OAAS,EAC7KxD,KAAK4uE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAejurB,KAAK4uE,OAAO++mB,cAAc9upB,gBAAgB,QAAM45pB,EAAMjrY,cAAgBmsY,EAAkBlB,EAAMjrY,YAAcirY,EAAO,GACpLiB,GAAoB,MAEnB,CACD,IAAIG,EAAS75rB,KAAK4uE,OAAOrqE,cAAc,MACvCvE,KAAKgpL,MAAM4wgB,WAAWC,GACtB75rB,KAAK4uE,OAAOk/mB,UAAUC,cAAcC,cAAcC,eAAejurB,KAAK4uE,OAAO++mB,cAAc9upB,cAAe45pB,EAAO,EACrH,CACJ,EACA7B,EAAel1rB,UAAU+3rB,mBAAqB,WACW,IAAjDz5rB,KAAKgpL,MAAMigb,eAAelmgB,YAAYv/F,SACK,UAAvCxD,KAAKgpL,MAAMigb,eAAe1hZ,SAC1BvnN,KAAKgpL,MAAMigb,eAAexzlB,cAAcsyH,UAAY,UAGpD/nI,KAAKgpL,MAAMigb,eAAelhe,UAAY,UAGlD,EACA6ujB,EAAel1rB,UAAUg2rB,oBAAsB,SAAU/jrB,GACrD,IAAIykrB,EAOJ,MAN8B,QAAzBp4rB,KAAK4uE,OAAOi/mB,WAAuBl6qB,GAA4C,QAA9B3T,KAAK4uE,OAAO6onB,eAA2B9jrB,EACzFykrB,EAAap4rB,KAAK4uE,OAAOrqE,cAAc,QAER,MAAzBvE,KAAK4uE,OAAOi/mB,WAAqBl6qB,GAA4C,MAA9B3T,KAAK4uE,OAAO6onB,eAAyB9jrB,KAC1FykrB,EAAap4rB,KAAK4uE,OAAOrqE,cAAc,MAEpC6zrB,CACX,EACOxB,CACX,CA3dmC,GCI/BkD,GAAgB,CAAC,OAAQ,QACzBC,GAAa,CAAC,IAAK,OAAQ,UAAW,QAAS,IAAK,MAAO,MAAO,MAAO,KAAM,SAC/E,SAAU,OAAQ,OAAQ,OAAQ,WAAY,MAAO,MAAO,KAAM,QAAS,OAAQ,IAAK,SAAU,MAAO,QACzG,MAAO,MAAO,QAAS,MAAO,OAAQ,QAAS,WAAY,SAAU,SAAU,UAAW,WAC1F,IAAK,OAAQ,IAAK,OAAQ,SAAU,SAAU,OAAQ,QAAS,OAAQ,SAAU,SAAU,MAAO,MAAO,MACzG,WAAY,WAAY,OAAQ,IAAK,KAAM,MAAO,QAAS,OAOxD,SAASv4Z,GAASv7K,EAAK97F,GAC1B,IAAIrhB,GAAS,EAQb,OAPAqhB,EAAM4c,MAAK,SAAUjd,EAAM/c,GACvB,MAAoB,iBAAT+c,GAAqBm8F,IAAQn8F,EAAK2lE,sBACzC3mF,EAAQiE,GACD,EAGf,IACOjE,CACX,CAOO,SAASkxrB,GAAS52rB,EAASX,GAC9B,IAAIu3rB,GAAW,EAIf,OAHI52rB,EAAQwgE,UAAU5+D,SAASvC,KAC3Bu3rB,GAAW,GAERA,CACX,CASO,SAASC,GAAiB9vqB,EAAO1gB,EAAOsX,EAAMm5qB,GAGjD,IAFA,IAAIl/pB,EACAh9B,EACKq8G,EAAI,EAAGA,EAAIlwF,EAAM3mB,OAAQ62G,IAAK,CACnC,GAAa,UAATt5F,GAAoBoJ,EAAMkwF,GAAG5wG,MAAMgmF,sBAAwBhmF,EAAMgmF,oBAAqB,CACtFz0D,EAAO7Q,EAAMkwF,GACb,KACJ,CACK,GAAa,SAATt5F,GAAmBoJ,EAAMkwF,GAAGhvF,KAAKokE,sBAAwBhmF,EAAMgmF,oBAAqB,CACzFz0D,EAAO7Q,EAAMkwF,GACb,KACJ,CACK,GAAa,eAATt5F,GAAyBoJ,EAAMkwF,GAAGs2kB,WAAWlhmB,sBAAwBhmF,EAAMgmF,oBAAqB,CACrGz0D,EAAO7Q,EAAMkwF,GACb,KACJ,CACJ,CACA,KAAK,QAAMr/E,GACP,OAAQk/pB,GACJ,IAAK,OACDl8rB,EAASg9B,EAAK3P,KACd,MACJ,IAAK,QACDrtB,EAASg9B,EAAKvxB,MACd,MACJ,IAAK,UACDzL,EAASg9B,EAAKspL,QAI1B,OAAOtmN,CACX,CAKO,SAASm8rB,KACZ,IAAIn8rB,GAAS,EAIb,OAHI,KAAQi7L,UAAY,KAAQO,QAC5Bx7L,GAAS,GAENA,CACX,CAMO,SAASo8rB,GAAqB3wrB,GACjC,OAAI,QAAMA,GACC,GAEJA,CACX,CAwBO,SAAS4wrB,GAAevwqB,EAAMmlqB,GACjC,IAAIqL,EAAOrL,EAAe3B,WAAW,aACjCiN,EAAalF,GAAY,GAAKvrqB,GAElC,OADkBwwqB,EAAK7/e,YAAY8/e,EAEvC,CAQO,SAASC,GAAiB/2rB,EAAGg3rB,EAAcx0iB,GAC9Cy0iB,GAA+Bz0iB,GAI/B,IAHA,IAAIwkB,EAAWhnK,EAAEk3rB,eACb3/pB,EAAOv3B,EAAEd,KAEJyC,EAAK,EAAGqiH,EADNthH,OAAOC,KAAK3C,EAAEd,MACOyC,EAAKqiH,EAAOjkH,OAAQ4B,IAEhD,IADA,IAAI1C,EAAM+kH,EAAOriH,GACRg1G,EAAI,EAAGA,EAAI32G,EAAEy2d,QAAQ12d,OAAQ42G,IAAK,CACvC,IAAItwF,EAAOrmB,EAAEy2d,QAAQ9/W,GAAGu2kB,WACpBiK,EAAU9wqB,GAAQA,EAAK2lE,oBAC3B,GAAI3lE,GAAS8wqB,IAAYl4rB,GAAkB,OAATonB,GAAyB,kBAARpnB,GAAsC,OAATonB,GAAyB,gBAARpnB,GAChF,QAAZk4rB,GAA6B,eAARl4rB,GAAmC,qBAATonB,GAAuC,qBAARpnB,GACtE,qBAATonB,GAAuC,qBAARpnB,EAC/B,GAA8B,kBAAnBs4B,EAAK,GAAKt4B,IACM,IAAnBs4B,EAAK,GAAKt4B,IACV,QAAS,CAACe,EAAEo3rB,WAAWzglB,IAAK,CAAC,MAG7B,QAAY,CAAC32G,EAAEo3rB,WAAWzglB,IAAK,CAAC,UAGnC,IAA+B,iBAAnBp/E,EAAK,GAAKt4B,IAAwC,OAAnBs4B,EAAK,GAAKt4B,KACtD8+R,GAAS9+R,EAAKe,EAAEmrE,OAAO0/a,gBAAgBnke,QAAU,EAAG,CACpD,IAAI1gB,EAAUuxB,EAAK,GAAKt4B,GAAQs4B,EAAK,GAAKt4B,GAAO,GAC7C1E,EAAS,GACb,OAAQ0E,GACJ,IAAK,UACD,IAAI,QAAM+nK,EAASqwhB,iBAAmBL,KAChC,QAAMhwhB,EAASqwhB,iBAAmBrwhB,EAASqwhB,eAAe38f,YAC5D,MAEJ,IAAIm1f,EAAc7vrB,EAAEmrE,OAAO+oB,OAAO6jW,MAC9Bv0K,GAAgB,QAAMxjR,EAAEmrE,OAAO+oB,OAAO+oB,SAAW4ykB,EAAY,GAAGjoqB,KAChE5nB,EAAEmrE,OAAO+oB,OAAO+oB,QACpB1iH,EAASi8rB,GAAiB3G,EAAa7prB,EAAO,aAAc,QAC5DghK,EAASqwhB,eAAez1pB,QAAW,2CACpB5hC,EAAEmrE,OAAO+oB,OAAOh9E,MADI,4CAEW,QAAMlX,EAAEmrE,OAAOq1I,UAAY,GAAK,IAAMxgN,EAAEmrE,OAAOq1I,UAAY,OAClG,QAAMjmN,GAAUipR,EAAgBjpR,GACnC,iBACJysK,EAASqwhB,eAAex8f,WACxB,MAEJ,IAAK,aACD,IAAI,QAAM7zB,EAASswhB,kBACb,QAAMtwhB,EAASswhB,gBAAkBtwhB,EAASswhB,cAAc58f,YAC1D,MAGJngM,EAASi8rB,GADQ,GACqBxwrB,EAAO,aAAc,WAC3DghK,EAASswhB,cAAcz2e,SAAU,QAAMtmN,GAAU,yBAA2BA,EAC5EysK,EAASswhB,cAAcz8f,WACvB,MAEJ,IAAK,WACD,IAAI,QAAM7zB,EAASuwhB,mBAAqBP,KAClC,QAAMhwhB,EAASuwhB,mBAAqBvwhB,EAASuwhB,iBAAiB78f,YAChE,MAEJ,IAAI88f,EAAgBx3rB,EAAEmrE,OAAO/S,WAAW1xC,MACxCnsB,EAASi8rB,GAAiBgB,EAAexxrB,EAAO,QAAS,QACzD,IAAIyxrB,GAAkB,QAAMz3rB,EAAEmrE,OAAO/S,WAAW6kD,SAAWu6kB,EAAc,GAAG5vqB,KACxE5nB,EAAEmrE,OAAO/S,WAAW6kD,QACpBr2G,GAAU,QAAMrM,GAAUk9rB,EAAkBl9rB,EAChDysK,EAASuwhB,iBAAiB31pB,QAAW,2CACtB5hC,EAAEmrE,OAAO/S,WAAWlhD,MADE,4CAES,QAAMlX,EAAEmrE,OAAOq1I,UAAY,GAAK,IAAMxgN,EAAEmrE,OAAOq1I,UAAY,KACnG55M,EAAS,iBACfogK,EAASuwhB,iBAAiB18f,WAC1B,MAEJ,IAAK,WACD,IAAI,QAAM7zB,EAAS0whB,qBACb,QAAM1whB,EAAS0whB,mBAAqB1whB,EAAS0whB,iBAAiBh9f,YAChE,MAEJ,IAAIi9f,EAAgB33rB,EAAEmrE,OAAOv+C,SAASlG,MAClCkxqB,GAAkB,QAAM53rB,EAAEmrE,OAAOv+C,SAASqwF,SAAW06kB,EAAc,GAAG/vqB,KACtE5nB,EAAEmrE,OAAOv+C,SAASqwF,QACtB1iH,EAASi8rB,GAAiBmB,EAA0B,KAAV3xrB,EAAe4xrB,EAAgB/wrB,QAAQ,MAAO,IAAMb,EAAQ,QAAS,QAC/GghK,EAAS0whB,iBAAiB91pB,QAAW,2CACtB5hC,EAAEmrE,OAAOv+C,SAAS1V,MADI,4CAES,QAAMlX,EAAEmrE,OAAOq1I,UAAY,GAAK,IAAMxgN,EAAEmrE,OAAOq1I,UAAY,KACnGm2e,GAAqBp8rB,GAAU,iBACrCysK,EAAS0whB,iBAAiB78f,WAItC,CAER,CAER,CAMO,SAASg9f,GAAcnxqB,GAC1B,MAAqB,iBAAVA,EACAA,EAGA,CAACA,EAEhB,CAOO,SAASoxqB,GAAkBpxqB,EAAOm7iB,GAErC,IADA,IAAIngiB,EAAa,GACRp4B,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAC9B,IAAK,IAAIqtG,EAAI,EAAGA,EAAIkrd,EAAa9hkB,OAAQ42G,IACrC,GAA6B,cAAzBkrd,EAAalrd,GAAGr5F,KAApB,CAII,GAAiB,gBAAboJ,EAAMpd,IAAuD,OAA/Bu4jB,EAAalrd,GAAGu2kB,WAAqB,CACnExrpB,EAAWjjC,KAAKk4G,GAChB,KACJ,CACK,GAAiB,kBAAbjwF,EAAMpd,IAAyD,OAA/Bu4jB,EAAalrd,GAAGu2kB,WAAqB,CAC1ExrpB,EAAWjjC,KAAKk4G,GAChB,KACJ,CACK,GAAiB,eAAbjwF,EAAMpd,IAAsD,QAA/Bu4jB,EAAalrd,GAAGu2kB,WAAsB,CACxExrpB,EAAWjjC,KAAKk4G,GAChB,KACJ,CACK,GAAiB,gBAAbjwF,EAAMpd,IAAuD,SAA/Bu4jB,EAAalrd,GAAGu2kB,WAAuB,CAC1ExrpB,EAAWjjC,KAAKk4G,GAChB,KACJ,CACK,GAA0B,iBAAdjwF,EAAMpd,IAAyC,WAArBod,EAAMpd,GAAG2kd,QAAsB,CACtEvsb,EAAWjjC,KAAK6K,GAChB,KACJ,CACK,GAAIod,EAAMpd,KAAOu4jB,EAAalrd,GAAGu2kB,WAAY,CAC9CxrpB,EAAWjjC,KAAKk4G,GAChB,KACJ,CACJ,CAGR,OAAOj1E,CACX,CAOO,SAASq2pB,GAAqB9L,EAAa+L,GAK9C,IAJA,IAAI1urB,EAAI,EACJ2urB,EAAWH,GAAkBD,GAAcxB,IAAgBpK,EAAYC,WAAWxlqB,OAClF+vc,GAAU,QAAU,IAAM,GAAqBw1N,EAAYC,WAAWvsrB,SAEjEgC,EAAK,EAAGkjH,EADNniH,OAAOC,KAAKq1rB,GACSr2rB,EAAKkjH,EAAO9kH,OAAQ4B,IAAM,CACtD,IAAI1C,EAAM4lH,EAAOljH,GACbgI,EAAS8sd,EAAQwhO,EAAS3urB,IAC1BK,GACAsirB,EAAYC,WAAWzoZ,YAAY95R,EAAQqurB,EAAe,GAAK/4rB,IAEnEqK,GACJ,CACJ,CAUO,SAASkH,GAAc7Q,EAAS2d,GACnC,IAAIyvL,EAAM9xM,SAASqV,YAAY,cAC/By8L,EAAIl6F,UAAUv1F,GAAM,GAAO,GAC3B3d,EAAQ6Q,cAAcu8L,EAC1B,CAQO,SAASmrf,GAAUlyrB,GACtB,IAAImyrB,GAAW,QAAc,YAE7B,OADAA,EAAS7zjB,UAAYt+H,EACjBmyrB,EAASv2pB,mBAAmBw2pB,iBACrBD,EAASv2pB,QAGT3mC,SAASuomB,cAAc60F,yBAAyBryrB,EAE/D,CAOO,SAASsyrB,GAAkBC,EAAYl1kB,GAC1C,IAAI88F,EAAQ,GACZ,IAAK98F,EAAOA,EAAKvvG,WAAYuvG,EAAMA,EAAOA,EAAK0mM,YACrB,IAAlB1mM,EAAKprG,SACLkoM,EAAM1hN,KAAK4kH,GAGX88F,EAAQA,EAAMv7M,OAAO0zrB,GAAkBC,EAAYl1kB,IAG3D,OAAO88F,CACX,CAMO,SAASq4e,GAAkBlolB,GAG9B,IAFA,IAAIgthB,EAAiB,CAAC,EAClB36nB,EAAOD,OAAOC,KAAK2tG,GACdhnG,EAAI,EAAGA,EAAI5G,OAAOC,KAAK2tG,GAAKvwG,OAAQuJ,IACzCg0nB,EAAe36nB,EAAK2G,GAAG0iF,qBAAuBskB,EAAI3tG,EAAK2G,IAE3D,OAAOg0nB,CACX,CAOO,SAASm7D,GAAazyrB,EAAO0yrB,GAChC,IAAIl2kB,EAgBJ,OAfc,OAAVx8G,GAA4B,KAAVA,GAClBw8G,EAAMk2kB,EAAOC,iBAAmBC,GAAeC,GAAO7yrB,GAAQ0yrB,GAAUE,GAAe5yrB,EAAO0yrB,GAC9FA,EAAOj+f,cAAc,CAAEz0L,MAAOw8G,IAAO,IAIjCA,EADoB,QAApBk2kB,EAAOtO,SACDsO,EAAOC,iBAAmB,qCAAuC,mBAE9C,OAApBD,EAAOtO,SACNsO,EAAOC,iBAAmB,cAAgB,QAG1CD,EAAOC,iBAAmB,iCAAmC,eAGpEn2kB,CACX,CAOO,SAASo2kB,GAAe5yrB,EAAO0yrB,GAClC,IAAIP,EAAWl9rB,SAAS6F,cAAc,OAClCg4rB,EAAY79rB,SAAS6F,cAAc,OACnCO,EAAa82rB,EAAS92rB,WAG1B,GAFA82rB,EAAS7zjB,UAAYt+H,EACrBmyrB,EAASn3rB,aAAa,QAAS,WAC3BK,EAAWtB,OAAS,EAAG,CAIvB,IAHA,IAAIg5rB,OAAuB,EACvBC,OAAiB,EACjBrE,OAAa,EACVwD,EAASrkrB,YAAY,CAExB,IADA,IAAImlrB,EAAiBd,EAAStlmB,iBAAiB,IACtCvpF,EAAI,EAAGA,EAAI2vrB,EAAel5rB,OAAQuJ,IACvC2vrB,EAAe3vrB,GAAGg7H,UAAY,OAElC,IAAI40jB,EAAkBf,EAAStlmB,iBAAiB,IAChD,IAASvpF,EAAI,EAAGA,EAAI4vrB,EAAgBn5rB,OAAQuJ,IACxC4vrB,EAAgB5vrB,GAAGg7H,UAAY,mBAEX,OAApBo0jB,EAAOtO,WAAwD,UAAjC+N,EAASrkrB,WAAWgwM,WACjDq0e,EAASrkrB,WAAWwrF,YAAYx7F,QAAQ,MAAQ,GAAgD,KAA3Cq0rB,EAASrkrB,WAAWwrF,YAAYl3F,SACtFkurB,GAAWxyrB,QAAQq0rB,EAASrkrB,WAAWgwM,SAAS93H,sBAAwB,IACnE+smB,EAWDC,EAAe/4rB,YAAYk4rB,EAASrkrB,aAThC6grB,EADoB,QAApB+D,EAAOtO,UACM,QAAc,QAGd,QAAc,KAE/B0O,EAAU74rB,YAAY00rB,GACtBA,EAAW10rB,YAAYk4rB,EAASrkrB,aAKpCklrB,EAAiBrE,EACjBoE,GAAuB,GAEe,UAAjCZ,EAASrkrB,WAAWgwM,WAA6D,OAApCq0e,EAASrkrB,WAAWwrF,aACrE64lB,EAASrkrB,WAAWwrF,YAAYx7F,QAAQ,OAAS,GAAgD,KAA3Cq0rB,EAASrkrB,WAAWwrF,YAAYl3F,SACvF,QAAO+vrB,EAASrkrB,aAGhBglrB,EAAU74rB,YAAYk4rB,EAASrkrB,YAC/BilrB,GAAuB,EAE/B,CACA,IAAII,EAAWL,EAAUjmmB,iBAAiB,OAC1C,IAASvpF,EAAI,EAAGA,EAAI6vrB,EAASp5rB,OAAQuJ,IAC5B6vrB,EAAS7vrB,GAAG62D,UAAU5+D,SAAS,KAChC43rB,EAAS7vrB,GAAG62D,UAAUjoD,IAAI,IAExBihrB,EAAS7vrB,GAAG62D,UAAU5+D,SAAS,KACjC43rB,EAAS7vrB,GAAG62D,UAAU5+D,SAAS,KAC/B43rB,EAAS7vrB,GAAG62D,UAAUjoD,IAAI,GAGtC,CACA,OAAO4grB,EAAUx0jB,SACrB,CAMO,SAASmtf,GAAgBinE,GAW5B,MATwB,QAApBA,EAAOtO,SACMsO,EAAOC,iBAAmB,qCAAuC,mBAErD,OAApBD,EAAOtO,SACCsO,EAAOC,iBAAmB,cAAgB,QAG1CD,EAAOC,iBAAmB,iCAAmC,cAGlF,CAMO,SAASS,GAAqBpzrB,GACjC,MAAkB,gBAAVA,GAAqC,kCAAVA,GAClB,oBAAVA,GAAyC,sCAAVA,GACrB,SAAVA,GAA8B,eAAVA,GACV,KAAVA,CACX,CAMO,SAAS6yrB,GAAO7yrB,GACnB,OAAOA,EAAMa,QAAQ,SAAU,KAAKA,QAAQ,YAAa,KACpDA,QAAQ,QAAS,KAAKA,QAAQ,YAAa,KAC3CA,QAAQ,QAAS,KAAKA,QAAQ,UAAW,KACzCA,QAAQ,cAAe,KAAKA,QAAQ,UAAW,GACxD,CAkCO,SAASwyrB,GAAc/7c,GAM1B,IALA,IAAItgH,EAAMsgH,EAAQv5O,MAAM,KACpBu1rB,EAAOt8jB,EAAI,GAAG/0H,MAAM,WAAW,GAC/BsxrB,EAAO7thB,KAAK1uC,EAAI,IAChBlmB,EAAIyilB,EAAKx5rB,OACTy5rB,EAAQ,IAAIv2iB,WAAWnsC,GACpBA,KACH0ilB,EAAM1ilB,GAAKyilB,EAAK99lB,WAAWqb,GAE/B,OAAO,IAAI00D,KAAK,CAACguhB,GAAQ,CAAEl8qB,KAAMg8qB,GACrC,CAQO,SAASG,GAAoBj3iB,EAAMwtiB,EAAa3pqB,GACnD,IAAK,IAAI/c,EAAI,EAAG0mrB,EAAYjwrB,OAASuJ,EAAGA,IACpC,GAAI0mrB,EAAY1mrB,GAAGtD,QAAUqgB,EAAKrgB,OAASgqrB,EAAY1mrB,GAAGtD,QAAUqgB,EAAK6mqB,WACrE,OAAO1qiB,EAAKypU,UAAUj1Q,YAAYg5e,EAAY1mrB,GAAG+kH,QAGzD,OAAOhoG,EAAKuB,IAChB,CAMO,SAASqvqB,GAA+Bz0iB,GAC3C,GAAiBriJ,SAAQ,SAAUkmB,EAAM/c,GACrC,GAAiBA,GAAGse,KAAO6xqB,GAAoBj3iB,EAAMqviB,GAAgB,GAAiBvorB,GAC1F,IACA,GAAkBnJ,SAAQ,SAAUkmB,EAAM/c,GACtC,GAAkBA,GAAGse,KAAO6xqB,GAAoBj3iB,EAAMsviB,GAAe,GAAkBxorB,GAC3F,IACA,GAAuBnJ,SAAQ,SAAUkmB,EAAM/c,GAC3C,GAAuBA,GAAGse,KAAO6xqB,GAAoBj3iB,EAAMuviB,GAAwB,GAAuBzorB,GAC9G,IACA,GAAuBnJ,SAAQ,SAAUkmB,EAAM/c,GAC3C,GAAuBA,GAAGse,KAAO6xqB,GAAoBj3iB,EAAMwviB,GAAwB,GAAuB1orB,GAC9G,GACJ,iBChkBIowrB,GAAgC,WAChC,SAASA,EAAevunB,GACpB5uE,KAAK4uE,OAASA,EACd5uE,KAAK4b,kBACT,CAsEA,OArEAuhrB,EAAez7rB,UAAUka,iBAAmB,WACpC5b,KAAK4uE,OAAOuvH,cAGhBn+L,KAAK4uE,OAAOprD,GAAG,GAAsBxjB,KAAK+nrB,cAAe/nrB,MACzDA,KAAK4uE,OAAOprD,GAAG,EAAgBxjB,KAAKsc,oBAAqBtc,MAC7D,EACAm9rB,EAAez7rB,UAAU4a,oBAAsB,WACvCtc,KAAK4uE,OAAOuvH,cAGhBn+L,KAAK4uE,OAAOsC,IAAI,EAAgBlxE,KAAKsc,qBACrCtc,KAAK4uE,OAAOsC,IAAI,GAAsBlxE,KAAK+nrB,eAC/C,EASAoV,EAAez7rB,UAAU6a,OAAS,SAAU9Y,GACxC,IAAI25rB,EAUJ,OATA35rB,EAAEwrQ,WAAajvQ,KAAKivQ,WAAWt0O,KAAK36B,MACpCyD,EAAE6uE,KAAOtyE,KAAKsyE,KAAK33C,KAAK36B,OACpB,QAAMyD,EAAEstE,SACRttE,EAAEstE,MAAQ/wE,KAAK+wE,MAAMp2C,KAAK36B,OAE9ByD,EAAE0rQ,YAAcnvQ,KAAKmvQ,YAAYx0O,KAAK36B,OAEtCo9rB,EAAS,IAAI,MAAO35rB,IACbsoM,kBAAmB,EACnBqxf,CACX,EACAD,EAAez7rB,UAAUutQ,WAAa,SAAUtsQ,GAC5C3C,KAAK4uE,OAAOosH,Q1BucU,mB0BvcuBr4L,EAAM3C,KAAKw6U,mBAAmB7/S,KAAK36B,KAAM2C,GAC1F,EACAw6rB,EAAez7rB,UAAU84U,mBAAqB,SAAU73U,GAChDA,EAAKqwG,QACLhzG,KAAK4uE,OAAOogH,OAAO,GAAuB,KAElD,EACAmugB,EAAez7rB,UAAU4wE,KAAO,SAAU3vE,GACtC3C,KAAK4uE,OAAOosH,Q1BycI,a0BzcuBr4L,EAC3C,EACAw6rB,EAAez7rB,UAAUytQ,YAAc,SAAUxsQ,GAC7C3C,KAAK4uE,OAAOosH,Q1B2cW,oB0B3cuBr4L,GAAM,SAAUk+R,GACrDA,EAAU7tL,QACP6tL,EAAU/4P,UAAU87B,UAAU5+D,SAAS,mBACvC67R,EAAU7tL,QAAS,EAG/B,GACJ,EASAmqlB,EAAez7rB,UAAUqvE,MAAQ,SAAUpuE,GACvC3C,KAAK4uE,OAAOosH,Q1B+bK,c0B/buBr4L,EAC5C,EACAw6rB,EAAez7rB,UAAUqmrB,cAAgB,WACrC/nrB,KAAK4uE,OAAS,IAClB,EACOuunB,CACX,CA3EmC,GCN/B,GAAwC,WACxC,IAAIv6f,EAAgB,SAAU5oF,EAAGF,GAI7B,OAHA8oF,EAAgBz8L,OAAO6kK,gBAClB,CAAEnmB,UAAW,cAAgB5+I,OAAS,SAAU+zG,EAAGF,GAAKE,EAAE6qC,UAAY/qC,CAAG,GAC1E,SAAUE,EAAGF,GAAK,IAAK,IAAI5sG,KAAK4sG,EAAOA,EAAEl0G,eAAesH,KAAI8sG,EAAE9sG,GAAK4sG,EAAE5sG,GAAI,EACtE01L,EAAc5oF,EAAGF,EAC5B,EACA,OAAO,SAAUE,EAAGF,GAEhB,SAAS+oF,IAAO7iM,KAAK+0G,YAAciF,CAAG,CADtC4oF,EAAc5oF,EAAGF,GAEjBE,EAAEt4G,UAAkB,OAANo4G,EAAa3zG,OAAO4mH,OAAOjT,IAAM+oF,EAAGnhM,UAAYo4G,EAAEp4G,UAAW,IAAImhM,EACnF,CACH,CAZ2C,GAaxCviD,GAAsC,WAStC,OARAA,GAAWn6I,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,GAAS75I,MAAMzG,KAAMqF,UAChC,EACI,GAA0C,SAAU09L,EAAY31L,EAAQ1K,EAAKsgM,GAC7E,IAA2HhpF,EAAvHD,EAAI10G,UAAU7B,OAAQk3G,EAAIX,EAAI,EAAI3sG,EAAkB,OAAT41L,EAAgBA,EAAO78L,OAAO25H,yBAAyB1yH,EAAQ1K,GAAOsgM,EACrH,GAAuB,iBAAZC,SAAoD,mBAArBA,QAAQC,SAAyBxoF,EAAIuoF,QAAQC,SAASH,EAAY31L,EAAQ1K,EAAKsgM,QACpH,IAAK,IAAIj2L,EAAIg2L,EAAWv/L,OAAS,EAAGuJ,GAAK,EAAGA,KAASitG,EAAI+oF,EAAWh2L,MAAI2tG,GAAKX,EAAI,EAAIC,EAAEU,GAAKX,EAAI,EAAIC,EAAE5sG,EAAQ1K,EAAKg4G,GAAKV,EAAE5sG,EAAQ1K,KAASg4G,GAChJ,OAAOX,EAAI,GAAKW,GAAKv0G,OAAO8X,eAAe7Q,EAAQ1K,EAAKg4G,GAAIA,CAChE,EAwCI2ilB,GAAgC,SAAU7orB,GAE1C,SAAS6orB,EAAet1rB,EAAS3E,GAC7B,IAAInB,EAAQuS,EAAOE,KAAK1U,KAAM+H,EAAS3E,IAAYpD,KAEnD,OADAiC,EAAM+pM,SAAU,EACT/pM,CACX,CAinFA,OAtnFA,GAAUo7rB,EAAgB7orB,GAa1B6orB,EAAe37rB,UAAUolM,gBAAkB,WACvC,IAAIe,EAAU,GAmDd,OAlDI7nM,KAAKsuf,gBAAgBhkS,SACrBziB,EAAQ3lM,KAAK,CAAEmlM,OAAQ,UAAW1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBACpDpnf,EAAQ3lM,KAAK,CACTmlM,OAAQ,OACR1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAEtBpnf,EAAQ3lM,KAAK,CACTmlM,OAAQ,QACR1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAEtBpnf,EAAQ3lM,KAAK,CACTmlM,OAAQ,QACR1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAElBjvrB,KAAKs9rB,qBAAqBhze,QAC1BziB,EAAQ3lM,KAAK,CAAEmlM,OAAQ,eAAgB1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,mBAG7DjvrB,KAAKu9rB,eACL11f,EAAQ3lM,KAAK,CAAEmlM,OAAQ,QAAS1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAE9B,aAApBjvrB,KAAK0trB,YACL7lf,EAAQ3lM,KAAK,CAAEmlM,OAAQ,iBAAkB1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAEvC,SAApBjvrB,KAAK0trB,aACL7lf,EAAQ3lM,KAAK,CAAEmlM,OAAQ,aAAc1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBACvDpnf,EAAQ3lM,KAAK,CAAEmlM,OAAQ,eAAgB1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBACzDpnf,EAAQ3lM,KAAK,CACTmlM,OAAQ,QACR1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAEtBpnf,EAAQ3lM,KAAK,CACTmlM,OAAQ,QACR1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAEtBpnf,EAAQ3lM,KAAK,CACTmlM,OAAQ,gBACR1kM,KAAM,CAAC3C,QAEX6nM,EAAQ3lM,KAAK,CACTmlM,OAAQ,cACR1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,mBAGtBjvrB,KAAKw9rB,oBAAoBlze,QACzBziB,EAAQ3lM,KAAK,CAAEmlM,OAAQ,cAAe1kM,KAAM,CAAC3C,KAAMA,KAAKivrB,kBAExDjvrB,KAAKyjU,cACL57H,EAAQ3lM,KAAK,CAAEmlM,OAAQ,SAAU1kM,KAAM,CAAC3C,QAErC6nM,CACX,EACAw1f,EAAe37rB,UAAU+7rB,aAAe,WAChCz9rB,KAAKuqH,UACL,QAAY,CAACvqH,KAAKoD,SAAU,IAC5BpD,KAAKoD,QAAQqB,aAAa,gBAAiB,UACtC,QAAMzE,KAAKonN,eAAe+9E,UAI3BnlS,KAAK6uF,aAAapqF,aAAa,WAAY,KAH3CzE,KAAK6uF,aAAapqF,aAAa,WAAYzE,KAAKonN,eAAe+9E,YAO/DnlS,KAAKowrB,gBACL,QAAYpwrB,KAAKowrB,aAAa95lB,iBAAiB,IAAM,IAAqB,KAC1E,QAAY,CAACt2F,KAAKowrB,cAAe,CAAC,GAAsB,OAE5D,QAAS,CAACpwrB,KAAKoD,SAAU,IACzBpD,KAAKoD,QAAQyb,UAAY,EACzB7e,KAAKoD,QAAQqB,aAAa,gBAAiB,QAC3CzE,KAAK6uF,aAAapqF,aAAa,WAAY,MAEnD,EAQA44rB,EAAe37rB,UAAUwoN,UAAY,WACjClqN,KAAKy9rB,eAEJz9rB,KAAY,QAAIA,KAAK09rB,mBAAqB19rB,KAAKykN,cACpD,EACA44e,EAAe37rB,UAAUkiU,gBAAkB,WACvC5jU,KAAK29rB,YAAa,EAClB39rB,KAAK49rB,OAAQ,EACb59rB,KAAKq7N,QAAS,EACdr7N,KAAK69rB,kBAAoB,KACzB79rB,KAAK89rB,qBAAsB,CAC/B,EAQAT,EAAe37rB,UAAUirM,UAAY,WACjC3sM,KAAK4jU,kBACL5jU,KAAK6vP,cAAgB7vP,KAAKgwO,YAAYr1M,KAAK36B,MAC3CA,KAAK+9rB,eAAiB/9rB,KAAKqmN,aAAa1rL,KAAK36B,MAC7CA,KAAKg+rB,gBAAkBh+rB,KAAK6lU,cAAclrS,KAAK36B,MAC/CA,KAAKi+rB,YAAc,CAAEplpB,QAAS,EAAGC,QAAS,GAC1C94C,KAAKgiB,aAAehiB,KAAKyJ,MACzBzJ,KAAKivrB,eAAiB,IAAI2B,GAC1B5wrB,KAAKk+rB,qBACLl+rB,KAAKm+rB,eACLn+rB,KAAK0kP,eACL,QAAkB1kP,KAAKoD,QAAS,CAAE,OAAS,QAAWpD,KAAK2a,UAC3D,QAAW3a,KAAKoD,QAAS,CAAEs1B,KAAM,cAAe,aAAc,oBAClE,EACA2kqB,EAAe37rB,UAAUgjP,YAAc,WACnC,GAAI1kP,KAAKwsM,mBAAsD,aAAjCxsM,KAAK2+B,gBAAgB3f,QAAwB,CACvEhf,KAAKoD,QAAQs0B,GAAK13B,KAAK2+B,gBAAgBjH,GAAK,WAC5C,IAAIsD,EAAO17B,OAAO6lH,aAAaC,QAAQplH,KAAKu/L,gBAAkBv/L,KAAKoD,QAAQs0B,KACrE,QAAMsD,IAAmB,KAATA,GAClBh7B,KAAKk+L,cAAct8L,KAAK+yH,MAAM35F,IAAO,EAE7C,CACJ,EACAqiqB,EAAe37rB,UAAUy8rB,aAAe,WACpCn+rB,KAAK2+B,gBAAkB3+B,KAAKoD,QAAQg5C,WAAU,GAC3B,OAAfp8C,KAAKyJ,OAAyC,OAAvBzJ,KAAKmkQ,eAC5BnkQ,KAAKqiB,WAELriB,KAAKoD,QAAQwhF,aAAa,cAC1B5kF,KAAKonN,eAAiB,CAAE,SAAYpnN,KAAKoD,QAAQxE,aAAa,aAC9DoB,KAAKoD,QAAQub,gBAAgB,aAEjC3e,KAAKoD,QAAQ2kI,UAAY,GAGzB,IAFA,IAAIgyH,EAAc,CAAC,QAAS,QAAS,KAAM,WACvCuH,EAAW,CAAC,EACP79K,EAAI,EAAGA,EAAIzjF,KAAKoD,QAAQylI,WAAWrlI,OAAQigF,KACc,IAA1Ds2K,EAAYxyP,QAAQvH,KAAKoD,QAAQylI,WAAWplD,GAAG77E,OAC7C,YAAYzI,KAAKa,KAAKoD,QAAQylI,WAAWplD,GAAG77E,QAC9C05P,EAASthQ,KAAKoD,QAAQylI,WAAWplD,GAAG77E,MAAQ5H,KAAKoD,QAAQxE,aAAaoB,KAAKoD,QAAQylI,WAAWplD,GAAG77E,OAQzG,IALA,QAAO05P,EAAUthQ,KAAKonN,eAAgBk6C,GACtCthQ,KAAKk+L,cAAc,CAAEkpB,eAAgBk6C,IAAY,IAC5C,QAAMthQ,KAAKonN,eAAe1vL,MAC3B13B,KAAKoD,QAAQs0B,GAAK13B,KAAKonN,eAAe1vL,IAEb,aAAzB13B,KAAKoD,QAAQ4b,QAAwB,CACrC,IAAIo/qB,EAAkBp+rB,KAAKuE,cAAc,MAAO,CAC5C9B,UAAWzC,KAAKoD,QAAQxE,aAAa,WAEzCoB,KAAKoD,QAAQ2kI,UAAY,GACzB/nI,KAAKoD,QAAQqS,cAAc1Q,aAAaq5rB,EAAiBp+rB,KAAKoD,SAC9DpD,KAAK61rB,eAAiB71rB,KAAKoD,SAC3B,QAAY,CAACpD,KAAK61rB,gBAAiB71rB,KAAKoD,QAAQxE,aAAa,SAAS4I,MAAM,MAC5ExH,KAAKoD,QAAUg7rB,CACnB,MAEIp+rB,KAAK61rB,eAAiB71rB,KAAKuE,cAAc,WAAY,CACjDmzB,GAAI13B,KAAKq+rB,QAAU,SACnBv+iB,MAAO,CAAE,kBAAmB9/I,KAAKq+rB,WAKzC,GAFAr+rB,KAAK61rB,eAAejurB,KAAO5H,KAAKq+rB,SAChC,QAAS,CAACr+rB,KAAK61rB,gBAAiB,MAC3B,QAAM71rB,KAAKikN,UAEZ,IADA,IAAIq6e,EAAmBt+rB,KAAKikN,SAASz8M,MAAM,KAClCuF,EAAI,EAAGA,EAAIuxrB,EAAiB96rB,OAAQuJ,KACzC,QAAS,CAAC/M,KAAK61rB,gBAAiByI,EAAiBvxrB,IAGzD/M,KAAKoD,QAAQM,YAAY1D,KAAK61rB,eAClC,EAQAwH,EAAe37rB,UAAUqsM,eAAiB,WACtC,OAAO/tM,KAAKuuM,aAAa,CAAC,SAC9B,EAOA8uf,EAAe37rB,UAAUijN,QAAU,WAC3B3kN,KAAKuqH,UACLvqH,KAAK6uF,aAAaj5E,QAClB5V,KAAKqmN,aAAa,CAAC,GAE3B,EAOAg3e,EAAe37rB,UAAU8+N,SAAW,WAC5BxgO,KAAKuqH,UACLvqH,KAAK6uF,aAAa4wI,OAClBz/N,KAAKgwO,YAAY,CAAC,GAE1B,EAOAqtd,EAAe37rB,UAAU+6L,UAAY,WACjCz8L,KAAKgvL,OAAO,GAAkB,CAAC,EACnC,EAUAqugB,EAAe37rB,UAAU8hd,YAAc,SAAUx6R,GAC7ChpL,KAAKgvL,OAAO,GAAoB,CAAEhG,MAAOA,GAC7C,EAOAq0gB,EAAe37rB,UAAUk9E,aAAe,WACpC,IAAI+wC,EAAM,GAMV,OALA3vH,KAAKgvL,OAAO,GAAwB,CAChC+xB,SAAU,SAAUjvM,GAChB69G,EAAM79G,CACV,IAEG69G,CACX,EASA0tkB,EAAe37rB,UAAU68rB,gBAAkB,SAAUrkrB,EAAG8+B,GAChDh5C,KAAK+7N,UAGT/7N,KAAKgvL,OAAO,GAAoB,CAAE90K,EAAGA,EAAG8+B,EAAGA,GAC/C,EAUAqkpB,EAAe37rB,UAAU88rB,eAAiB,SAAUC,EAAah1rB,EAAOw9C,GAEpE,IAAIy3oB,EACJ,GAFAj1rB,EAAQzJ,KAAK2+rB,aAAaF,EAAah1rB,GAEf,SAApBzJ,KAAK0trB,WAAuB,CAC5B,IAAI1kgB,EAAQhpL,KAAKk5c,WACbl5c,KAAK+vrB,eAAezle,QACpBtqN,KAAK8trB,UAAUC,cAAcC,cAAc4Q,MAAM5+rB,KAAKoD,QAAQ/B,gBAEnDrB,KAAK+vrB,eAAezle,QAC/BthC,EAAMigb,iBAAmBjpmB,KAAK6uF,eAAwB7uF,KAAK6uF,aAAa7pF,SAASgkL,EAAMigb,kBAEvFjpmB,KAAK2kN,SAEb,CACA,IAAIm4S,EAAO4zL,GAAa,GAAK+N,GAM7B,GALIx3oB,GAAUA,EAAO26d,MACb36d,EAAO26d,MAAqD,IAA7C5hhB,KAAK8trB,UAAU+Q,mBAAmBr7rB,QACjDxD,KAAK8trB,UAAUsD,YAGC,IAApBpxrB,KAAKyhgB,aAAqB,QAAM3E,EAAKprC,SAAU,CAC/C,IAAIotO,EAA6B,EAQjC,GAPqB,UAAjBhiM,EAAKprC,UACLotO,EAAmD,IAAtBr1rB,EAAM4hB,KAAK7nB,OACpCiG,EAAM+yD,IAAIh5D,OAASiG,EAAM4hB,KAAK7nB,QAEjB,WAAjBs5f,EAAKprC,SAAyC,UAAjBorC,EAAKprC,SAAwC,UAAjBorC,EAAKprC,UAC9DotO,EAA6B,GAEZ,eAAjBhiM,EAAKprC,QACL,IAAK,QAAMjod,IAKD,QAAMqzf,EAAKrzf,QAA0B,UAAfqzf,EAAKrzf,OAAoC,UAAfqzf,EAAKrzf,QAC3Dq1rB,EAA6B,OANd,CACf,IAAIC,EAAW/+rB,KAAKuE,cAAc,OAClCw6rB,EAASh3jB,UAAYt+H,EACrBq1rB,EAA6BC,EAASh8lB,YAAYv/F,MACtD,CAKiB,eAAjBs5f,EAAKprC,UACLotO,EAA6Br1rB,EAAMjG,QAEvC,IAEI0vJ,EAFgBlzJ,KAAKwhG,UAAU31F,OAAOrI,OACpBxD,KAAK4+E,eAAep7E,OACYs7rB,EACtD,MAA0B,IAApB9+rB,KAAKyhgB,WAAoBvuW,GAAelzJ,KAAKyhgB,WAC/C,MAER,CACAi9L,EAAgBj1rB,EACK,kBAAjBqzf,EAAKprC,WACA,QAAMjod,KACPzJ,KAAKg/rB,sBAAwBv1rB,GAEjCi1rB,EAAgB,CACZO,oBAAqBniM,EAAKrzf,QAGlCzJ,KAAK8trB,UAAUC,cAAcv9E,YAAY1zG,EAAKprC,QAASorC,EAAK6zL,WAAa7zL,EAAK6zL,WAAc+N,GAAgC5hM,EAAKrzf,MAAQ,KAAM,KAAOi1rB,GAAgC5hM,EAAKrzf,MAASi1rB,GAAgC5hM,EAAKrzf,OACrOw9C,GAAUA,EAAO26d,OACjB5hhB,KAAK8trB,UAAUsD,WACfpxrB,KAAK8trB,UAAUyC,WAAWvwrB,OAE9BA,KAAK41rB,iBACL51rB,KAAKgvL,OAAO,EAAuB,CAAC,EACxC,EACAqugB,EAAe37rB,UAAUi9rB,aAAe,SAAUjtO,EAASjod,GACvD,GAAwB,SAApBzJ,KAAK0trB,WACL,OAAQh8N,GACJ,IAAK,aACG1xd,KAAK0kN,sBAEDj7M,EADiB,iBAAVA,EACCzJ,KAAKk/rB,iBAAiBv2X,eAAel/T,GAGrCzJ,KAAKk/rB,iBAAiBv2X,eAAel/T,EAAMgpI,YAG3D,MACJ,IAAK,eACG,QAAMhpI,EAAMkR,SACZlR,EAAMkR,MAAQ,CAAEgX,SAAU3xB,KAAKm/rB,cAAcxtqB,SACzCxC,SAAUnvB,KAAKm/rB,cAAchwqB,SAAUxU,MAAO3a,KAAKm/rB,cAAcxkrB,QAEzE,MACJ,IAAK,cACD,IAKIykrB,GALAh3gB,EAAOpoL,KAAKuE,cAAc,MAAO,CACjCu7I,MAAO,CACHnjF,IAAKlzD,EAAM+yD,QAGGi2E,UAClBzyI,KAAK0kN,sBACL06e,EAAap/rB,KAAKk/rB,iBAAiBv2X,eAAevgJ,EAAK31C,YAE3D,IAAIj2E,EAAsB,KAAf4ioB,GAAsBp/rB,KAAKuE,cAAc,MAAO,CACvDwjI,UAAWq3jB,IACK,kBAAExgsB,aAAa,QAAW,KAC9C49D,GAAO,QAAMA,GAAa,GAANA,EACpB/yD,EAAM+yD,IAAMA,GACR,QAAM/yD,EAAMkR,SACZlR,EAAMkR,MAAQ,CAAEgX,SAAU3xB,KAAKq/rB,oBAAoB1tqB,SAC/CxC,SAAUnvB,KAAKq/rB,oBAAoBlwqB,SAAUxU,MAAO3a,KAAKq/rB,oBAAoB1krB,SAEjF,QAAMlR,EAAMoX,UACZpX,EAAMoX,OAAS,CAAEsP,UAAWnwB,KAAKq/rB,oBAAoBlvqB,UACjDC,UAAWpwB,KAAKq/rB,oBAAoBjvqB,UAAWvP,OAAQ7gB,KAAKq/rB,oBAAoBx+qB,SAExF,MAEJ,IAAK,cACD,IAAIy+qB,EAAWt/rB,KAAKuE,cAAc,QAAS,CACvCu7I,MAAO,CACHy/iB,SAAU,MAGdn3gB,EAAOpoL,KAAKuE,cAAc,SAAU,CACpCu7I,MAAO,CACHnjF,IAAKlzD,EAAM+yD,IACXz7C,KAAMtX,EAAM+yD,KAAO/yD,EAAM+yD,IAAIh1D,MAAM,KAAKhE,OAAS,EAC3C,SAAWiG,EAAM+yD,IAAIh1D,MAAM,KAAKiC,EAAM+yD,IAAIh1D,MAAM,KAAKhE,OAAS,GAAK,MAGjF87rB,EAAS57rB,YAAY0kL,GACrB,IAAIo3gB,EAAaF,EAAS7sjB,UACtBzyI,KAAK0kN,sBACL86e,EAAax/rB,KAAKk/rB,iBAAiBv2X,eAAe22X,EAAS7sjB,YAE3Dj2E,EAAsB,KAAfgjoB,GAAsBx/rB,KAAKuE,cAAc,MAAO,CACvDwjI,UAAWy3jB,IACZrgrB,kBAAmC,kBAAEvgB,aAAa,QAAW,KAChE49D,GAAO,QAAMA,GAAa,GAANA,EACpB/yD,EAAM+yD,IAAMA,EACZ,MAEJ,IAAK,cACG8ioB,EAAWt/rB,KAAKuE,cAAc,QAAS,CACvCu7I,MAAO,CACHy/iB,SAAU,MAGdn3gB,EAAOpoL,KAAKuE,cAAc,SAAU,CACpCu7I,MAAO,CACHnjF,IAAKlzD,EAAM+yD,IACXz7C,KAAMtX,EAAM+yD,KAAO/yD,EAAM+yD,IAAIh1D,MAAM,KAAKhE,OAAS,EAC3C,SAAWiG,EAAM+yD,IAAIh1D,MAAM,KAAKiC,EAAM+yD,IAAIh1D,MAAM,KAAKhE,OAAS,GAAK,MAGjF87rB,EAAS57rB,YAAY0kL,GACjBo3gB,EAAaF,EAAS7sjB,UACtBzyI,KAAK0kN,sBACL86e,EAAax/rB,KAAKk/rB,iBAAiBv2X,eAAevgJ,EAAK31C,YAEvDj2E,EAAsB,KAAfgjoB,GAAsBx/rB,KAAKuE,cAAc,MAAO,CACvDwjI,UAAWy3jB,IACK,kBAAE5gsB,aAAa,QAAW,KAC9C49D,GAAO,QAAMA,GAAa,GAANA,EACpB/yD,EAAM+yD,IAAMA,GACR,QAAM/yD,EAAMkR,SACZlR,EAAMkR,MAAQ,CAAEgX,SAAU3xB,KAAKy/rB,oBAAoB9tqB,SAC/CxC,SAAUnvB,KAAKy/rB,oBAAoBtwqB,SAAUxU,MAAO3a,KAAKy/rB,oBAAoB9krB,SAEjF,QAAMlR,EAAMoX,UACZpX,EAAMoX,OAAS,CAAEsP,UAAWnwB,KAAKy/rB,oBAAoBtvqB,UACjDC,UAAWpwB,KAAKy/rB,oBAAoBrvqB,UAAWvP,OAAQ7gB,KAAKy/rB,oBAAoB5+qB,SAExF,MAEJ,IAAK,aACD,IAAI+6qB,EAAW57rB,KAAKuE,cAAc,IAAK,CACnCu7I,MAAO,CACHrnH,KAAMhvB,EAAM+yD,OAGhBkjoB,EAAY9D,EAASnpjB,UACrBzyI,KAAK0kN,sBACLg7e,EAAY1/rB,KAAKk/rB,iBAAiBv2X,eAAeizX,EAASnpjB,YAE9D,IAAIh6G,EAAsB,KAAdinqB,GAAqB1/rB,KAAKuE,cAAc,MAAO,CACvDwjI,UAAW23jB,IACK,kBAAE9gsB,aAAa,SAAY,KAC/C65B,GAAQ,QAAMA,GAAe,GAAPA,EACtBhvB,EAAM+yD,IAAM/jC,EAKxB,OAAOhvB,CACX,EACA4zrB,EAAe37rB,UAAUuuV,OAAS,SAAUxmV,GACxC,IAAIk2rB,EAAU3/rB,KAAKuE,cAAc,OAGjC,OAFAo7rB,EAAQzqjB,UAAYzrI,EAAMoC,OAEnB8zrB,EAAQ53jB,UAAUz9H,QAAQ,iBAAkB,KACvD,EAQA+yrB,EAAe37rB,UAAU6a,OAAS,WAC1Bvc,KAAKyJ,QAAUzJ,KAAKmkQ,eACpBnkQ,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKqjN,eAAerjN,KAAKyJ,SAAU,GAEnEzJ,KAAK4/rB,aAAe,IAAIxS,GAAOptrB,KAAMA,KAAKivrB,gBAC1CjvrB,KAAK6/rB,iBAAmB,IAAI7Q,GAAWhvrB,KAAMA,KAAKivrB,gBAClDjvrB,KAAKgvL,OAAO,EAAoB,CAAC,GACjChvL,KAAKg7L,Q3B5hBK,Q2B6hBVh7L,KAAK8/rB,YAEqB,IAAI7O,GAAoBjxrB,MAClDA,KAAKgvL,OAAO,EAAmB,CAAC,GAC5BhvL,KAAK+/rB,aACL//rB,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKggsB,aAAc,GAE/ChgsB,KAAKsuf,gBAAgBhkS,QAAwC,WAA9BtqN,KAAKsuf,gBAAgBvte,QAAsB,QAAM/gB,KAAKowrB,eACpFpwrB,KAAKsuf,gBAAgBnke,MAAM5iB,QAAQ,SAAW,GAAKvH,KAAKsuf,gBAAgBnke,MAAM5iB,QAAQ,SAAW,GAClGvH,KAAKmwrB,mBAAmB,CAAC,OAAQ,SAErCnwrB,KAAKw7d,mBACc,OAAfx7d,KAAKyJ,QACLzJ,KAAK61rB,eAAet9kB,aAAev4G,KAAKyJ,OAG3CzJ,KAAKuqH,UAAYvqH,KAAK+7N,SAAY/7N,KAAK09rB,mBAAqB19rB,KAAKykN,eAClEzkN,KAAKgvL,OAAO,GAAqB,CAAEi1B,SAAUjkN,KAAKikN,WAClDjkN,KAAKwwrB,uBACLxwrB,KAAKgvL,OAAO,EAAmB,CAAC,GAChChvL,KAAKqtM,gBACT,EAQAgwf,EAAe37rB,UAAU8urB,qBAAuB,WAI5C,IAHA,IACI4H,EADAn2rB,EAAQjC,KAERigsB,EAAWjgsB,KAAKoD,QAAQkzF,iBAAiB,SACpCvpF,EAAI,EAAGA,EAAIkzrB,EAASz8rB,OAAQuJ,IAMjC,GALKkzrB,EAASlzrB,GAAG62D,UAAU5+D,SAAS,iBAChCi7rB,EAASlzrB,GAAG62D,UAAUjoD,IAAI,eAC1BskrB,EAASlzrB,GAAG62D,UAAUjoD,I1B/TT,oB0BkUZskrB,EAASlzrB,GAAG0I,cAAcmuD,UAAU5+D,SAAS,MAA2Bi7rB,EAASlzrB,GAAG0I,cAAcmuD,UAAU5+D,SAAS,IAAwB,CAC9I,IAAIk7rB,EAAgBlgsB,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,KAC5Dy9rB,EAAcz7rB,aAAa,QAAS,+BACpCy7rB,EAAc3vF,gBAAkB,QAChC,IAAI4vF,EAAqBngsB,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,KACjEy9rB,EAAcx8rB,YAAYy8rB,GAC1BF,EAASlzrB,GAAGkhE,WAAWlpE,aAAam7rB,EAAeD,EAASlzrB,GAAGygT,aAC/D2yY,EAAmBz8rB,YAAYu8rB,EAASlzrB,IACC,OAArCmzrB,EAAcv7rB,qBACdyzrB,EAAap4rB,KAAKuE,cAAc,MAChC27rB,EAAcjynB,WAAWlpE,aAAaqzrB,EAAY8H,EAAc1yY,aAExE,CAEJ,IAAI4yY,EAAWpgsB,KAAKoD,QAAQkzF,iBAAiB,SAC7C,IAASvpF,EAAI,EAAGA,EAAIqzrB,EAAS58rB,OAAQuJ,IAAK,CAMtC,GALKqzrB,EAASrzrB,GAAG62D,UAAU5+D,SAAS,iBAChCo7rB,EAASrzrB,GAAG62D,UAAUjoD,IAAI,eAC1BykrB,EAASrzrB,GAAG62D,UAAUjoD,I1B/UT,oB0BkVZykrB,EAASrzrB,GAAG0I,cAAcmuD,UAAU5+D,SAAS,MAA2Bo7rB,EAASrzrB,GAAG0I,cAAcmuD,UAAU5+D,SAAS,IAAwB,CAC9I,IAAIq7rB,EAAgBrgsB,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,KAC5D49rB,EAAc9vF,gBAAkB,QAChC6vF,EAASrzrB,GAAGkhE,WAAWlpE,aAAas7rB,EAAeD,EAASrzrB,GAAGygT,aAC/D6yY,EAAc38rB,YAAY08rB,EAASrzrB,IACM,OAArCszrB,EAAc17rB,qBACdyzrB,EAAap4rB,KAAKuE,cAAc,MAChC87rB,EAAcpynB,WAAWlpE,aAAaqzrB,EAAYiI,EAAc7yY,aAExE,EAC8C,IAA1C,KAAQpuT,UAAUmI,QAAQ,aAE1B64rB,EAASrzrB,GAAG6O,iBAAiB,QAAQ,SAAUjZ,GAC3CV,EAAM+sL,OAAO,GAAkB,CAAErsL,KAAMA,IACvCV,EAAM+sL,OAAO,gBAAiB,CAAErsL,KAAMA,GAC1C,IAEAy9rB,EAASrzrB,GAAG6O,iBAAiB,SAAS,SAAUjZ,GAC5CV,EAAM+sL,OAAO,GAAkB,CAAErsL,KAAMA,IACvCV,EAAM+sL,OAAO,gBAAiB,CAAErsL,KAAMA,GAC1C,IAER,CACJ,EASA06rB,EAAe37rB,UAAUg8rB,iBAAmB,WACxC19rB,KAAKu4M,YACT,EAEA8kf,EAAe37rB,UAAU4+rB,UAAY,SAAU78rB,GAC3C,IAAIulL,EAAQhpL,KAAKk5c,WACbqnP,EAAwBv3gB,EAAMigb,eAC9Bu3F,EAAsBx3gB,EAAMqkb,aAC5BozF,EAAqBz3gB,EAAM3yD,YAC3BqqkB,EAAkBH,IAA0BC,EAG5C9yY,GADmB8yY,EAAoBz9lB,YAAYv/F,OACT,UAAhCwlL,EAAMqkb,aAAa9lZ,SAAuBv+B,EAAMqkb,aAAa53lB,cACvEuzK,EAAMqkb,cACNszF,GAAY,QAAQjzY,EAAS,MAC7BkzY,GAAa,EACjB,KAAK,QAAMD,IAAcjzY,EAAQ3qN,YAAYv/F,SAAWwlL,EAAM5xD,YACzD4xD,EAAM63gB,YAAa,QAAMnzY,EAAQ/oT,oBAAqB,CACvD,IAAK,IAAIoI,EAAI,EAAGA,EAAI4zrB,EAAU77rB,WAAWtB,OAAQuJ,IACJ,UAArC4zrB,EAAU77rB,WAAWiI,GAAGw6M,UAA8E,IAAtDo5e,EAAU77rB,WAAWiI,GAAGg2F,YAAYl3F,OAAOrI,UAC3F,QAAOm9rB,EAAU77rB,WAAWiI,IAC5B6zrB,GAAa,EACb7zrB,KAIR,IADA,IAAIyqrB,EAAkBmJ,EACe,OAA9BnJ,EAAgBh+qB,WAAmD,UAA7Bg+qB,EAAgBjwe,UACzDiwe,EAAkBA,EAAgBh+qB,UAEtC,GAAIonrB,EAAY,CACZ,IAAIE,EAA2C,OAA7BtJ,EAAgBjwe,WAAsB,QAAMiwe,EAAgBnzb,iBACxCmzb,EAAlCA,EAAgBnzb,gBACpBrkQ,KAAK8trB,UAAUC,cAAcC,cAAc+S,iBAAiB/gsB,KAAK2trB,cAAc9upB,cAAe6hqB,EAAkBI,EAAcP,EAAuBO,EAAaL,EAA8C,OAAzBK,EAAYv5e,SAAoB,EAAIu5e,EAAY/9lB,YAAYv/F,OACvP,CACJ,CACJ,EAUA65rB,EAAe37rB,UAAU+tR,QAAU,SAAUhsR,GAMzC,GALAzD,KAAKgvL,OAAO,EAAgB,CAAEqY,OAAQ,UAAW1kM,KAAMc,IACvDzD,KAAKghsB,SAASv9rB,GACU,SAApBzD,KAAK0trB,YACL1trB,KAAKsgsB,UAAU78rB,GAEK,SAApBzD,KAAK0trB,aAAuC,IAAZjqrB,EAAE+T,OAA0B,cAAX/T,EAAEsL,MAAsC,KAAZtL,EAAE+T,OAA2B,WAAX/T,EAAEsL,MAAqB,CACtH,IAAIi6K,EAAQhpL,KAAKk5c,WACb3uJ,EAA8C,UAAlCvhI,EAAMigb,eAAe1hZ,SAAuBv+B,EAAMigb,eAAexzlB,cAC7EuzK,EAAMigb,eACV,IAAI,QAAQ1+S,EAAW,QACN,IAAZ9mT,EAAE+T,OAAsF,OAAvEwxK,EAAMigb,eAAelmgB,YAAY7D,WAAW8pF,EAAM3yD,YAAc,IACrE,KAAZ5yH,EAAE+T,OAAmF,OAAnEwxK,EAAMigb,eAAelmgB,YAAY7D,WAAW8pF,EAAM3yD,aAAwB,CAE7F,IAAIohL,EAAQ,IAAIplL,OAAO9nH,OAAOqpH,aAAa,MAAO,KAC9CqtkB,EAAsB,IAAZx9rB,EAAE+T,MAAcwxK,EAAM3yD,YAAc,EAAI2yD,EAAM3yD,YAC5D2yD,EAAMigb,eAAelmgB,YAAcimF,EAAMigb,eAAelmgB,YAAYz4F,QAAQmtS,EAAO,IACnFz3S,KAAK8trB,UAAUC,cAAcC,cAAcC,eAAejurB,KAAK2trB,cAAc9upB,cAAemqJ,EAAMigb,eAAgBg4F,EACtH,MACK,GAAgB,cAAXx9rB,EAAEsL,MAAoC,IAAZtL,EAAE+T,OACiB,OAAnDwxK,EAAMigb,eAAelmgB,YAAY7D,WAAW,IAAe8pF,EAAM63gB,UAAW,CAC5E,IAAIvub,EAAYtpF,EAAMigb,eAAexzlB,cACjC3M,OAAQ,EACRiE,OAAI,EACR,IAAKA,EAAI,EAAGA,EAAIulQ,EAAUxtQ,WAAWtB,OAAQuJ,IACrCulQ,EAAUxtQ,WAAWiI,KAAOi8K,EAAMigb,iBAClCngmB,EAAQiE,GAGhB,IAAIm0rB,GAAO,EACPC,EAAkB,GACtB,IAAKp0rB,EAAIjE,EAAOiE,GAAK,EAAGA,IAEqB,IAArCulQ,EAAUxtQ,WAAWiI,GAAG2O,UAAwE,OAAtD42P,EAAUxtQ,WAAWiI,GAAGg2F,YAAY7D,WAAW,IAAegimB,EACxGC,EAAgBj/rB,KAAK6K,GAGrBm0rB,GAAO,EAGf,GAAIC,EAAgB39rB,OAAS,EACzB,IAAKuJ,EAAIo0rB,EAAgB39rB,OAAS,EAAGuJ,EAAI,EAAGA,IACxCulQ,EAAUxtQ,WAAWq8rB,EAAgBp0rB,IAAIg2F,YAAc,GAG/D/iG,KAAK8trB,UAAUC,cAAcC,cAAcC,eAAejurB,KAAK2trB,cAAc9upB,cAAemqJ,EAAMigb,eAAgBjgb,EAAM3yD,YAC5H,CACJ,CACA,IAAI+qkB,IAAwB,QAAM39rB,EAAEilM,SAAwB,gBAAbjlM,EAAEilM,OAIjD,GAHiD,IAA7C1oM,KAAK8trB,UAAU+Q,mBAAmBr7rB,QAAgB49rB,GAClDphsB,KAAK8trB,UAAUsD,WAEF,gBAAb3trB,EAAEilM,QACW,gBAAbjlM,EAAEilM,QAAyC,iBAAbjlM,EAAEilM,UAC9BjlM,EAAE2J,SAAW3J,EAAE2J,OAAOw2D,UAAU5+D,SAAS,gBAC1CvB,EAAEilM,QAAuB,UAAbjlM,EAAEilM,QAAmC,UAAbjlM,EAAEilM,QACpB,IAAZjlM,EAAE+T,OAA2B,cAAX/T,EAAEsL,MAAoC,IAAZtL,EAAE+T,OAAe,CACpE,IAAI6prB,GAA4B,EAOhC,QANK,QAAMrhsB,KAAKshsB,uBACZD,EAAwE,WAA5CrhsB,KAAKshsB,oBAAoBjkN,gBAEpDgkN,GACDrhsB,KAAK8trB,UAAU5kiB,QAAQlpJ,KAAM,KAAMyD,GAE/BA,EAAEilM,QACN,IAAK,gBACG1oM,KAAKsuf,gBAAgBhkS,QAGrBtqN,KAAKyrf,cAAcikM,YAAYC,WAAWvsrB,QAAQ6B,cADnC,qCAC2D2Q,QAE9E,MACJ,IAAK,SACD5V,KAAK2trB,cAAcC,eAAeh4qB,QAG9C,EACK,QAAM5V,KAAKupD,gBACN,QAAMvpD,KAAKuhsB,qBAAkE,IAAzCvhsB,KAAK6uF,aAAakU,YAAYv/F,OAG/DxD,KAAK+vrB,eAAezle,QAAUtqN,KAAK6uF,aAAajrB,UAAU5+D,SAAS,sBACxE,QAAY,CAAChF,KAAK6uF,cAAe,qBAGjC7uF,KAAK41rB,iBANL51rB,KAAKuhsB,mBAAmBn4rB,MAAMwjB,QAAU,QAShD5sB,KAAKwhsB,YACT,EACAnE,EAAe37rB,UAAUquR,MAAQ,SAAUtsR,GACvC,GAAwB,SAApBzD,KAAK0trB,WAAuB,CAC5B,IAAI1kgB,EAAQhpL,KAAKk5c,WACjB,IAA8C,IAA1C,KAAQ95c,UAAUmI,QAAQ,YAAuD,UAAlCyhL,EAAMigb,eAAe1hZ,UACpEv+B,EAAMigb,eAAexzlB,gBAAkBzV,KAAK6uF,cAAkC,OAAlB7uF,KAAK6trB,SAAmB,CACpF,IAAI4T,EAAUzhsB,KAAKk5c,WACf6lP,EAAW/+rB,KAAKuE,cAAcvE,KAAK6trB,UACvC4T,EAAQx4F,eAAexzlB,cAAc1Q,aAAag6rB,EAAU0C,EAAQx4F,gBACpE81F,EAASr7rB,YAAY+9rB,EAAQx4F,gBAC7BjpmB,KAAK8trB,UAAUC,cAAcC,cAAc+S,iBAAiB/gsB,KAAK2trB,cAAc9upB,cAAekgqB,EAASj6rB,WAAW,GAAIi6rB,EAASj6rB,WAAW,GAAIi6rB,EAASj6rB,WAAW,GAAGi+F,YAAYv/F,OAAQu7rB,EAASj6rB,WAAW,GAAGi+F,YAAYv/F,OAChO,CACJ,CACAxD,KAAKgvL,OAAO,EAAc,CAAEqY,OAAQ,QAAS1kM,KAAMc,IACjC,KAAdA,EAAE8gF,SAAgC,KAAd9gF,EAAE8gF,SACtBvkF,KAAKgvL,OAAO,EAAyB,CAAEqY,OAAQ,mBAAoB1kM,KAAMc,IAE9D,SAAXA,EAAEsL,MAA+B,KAAZtL,EAAE+T,OAA8B,KAAd/T,EAAE8gF,UAAkB9gF,EAAEgQ,SAA4C,KAAhCzT,KAAK6uF,aAAak5C,WAC3D,SAAhC/nI,KAAK6uF,aAAak5C,YAClB/nI,KAAK6uF,aAAak5C,UAAYm0jB,GAAahnE,GAAgBl1nB,MAAOA,OAEtE,IAAI0hsB,EAA0B,KAAZj+rB,EAAE+T,OAA4B,KAAZ/T,EAAE+T,OAA4B,IAAZ/T,EAAE+T,OAA2B,KAAZ/T,EAAE+T,MACrE25qB,EAA8B,MAAV1trB,EAAEf,KAAee,EAAEmQ,QAAUnQ,EAAEkQ,SACnDgurB,EAA+B,MAAVl+rB,EAAEf,KAAee,EAAEmQ,QAAUnQ,EAAEkQ,WAClDw9qB,IAAsBwQ,IAAmC,UAAVl+rB,EAAEf,MAAoBe,EAAEgQ,SAAYhQ,EAAEf,KAAwB,IAAjBe,EAAEf,IAAIc,QAAgBk+rB,IAAqC,aAApB1hsB,KAAK0trB,aAC3H,UAAVjqrB,EAAEf,MAAoBe,EAAEgQ,SAAYhQ,EAAEf,KAAwB,IAAjBe,EAAEf,IAAIc,QAAgBk+rB,KAAkB1hsB,KAAKq2rB,WAAW/re,SAC1GtqN,KAAK8trB,UAAU8T,aAAa5hsB,KAAMyD,IAElCzD,KAAK6uF,cAAyD,IAAzC7uF,KAAK6uF,aAAakU,YAAYv/F,QAChDxD,KAAKoD,QAAQkzF,iBAAiB,4BAA4B9yF,OAAS,IACtExD,KAAKgvL,OAAO,EAAuB,CAAErsL,KAAMc,KAE1C,QAAMzD,KAAKupD,cACI,UAAV9lD,EAAEf,KAAiC,KAAde,EAAE8gF,SAAoD,gBAAhCvkF,KAAK6uF,aAAak5C,WAA+D,oBAAhC/nI,KAAK6uF,aAAak5C,WAChF,SAAhC/nI,KAAK6uF,aAAak5C,WAClB/nI,KAAK41rB,gBAGjB,EAOAyH,EAAe37rB,UAAU2hN,eAAiB,SAAU55M,GAWhD,MAVwB,SAApBzJ,KAAK0trB,aAA0B,QAAMjkrB,KACjCzJ,KAAKo8rB,kBACL3yrB,EAAQzJ,KAAKk/rB,iBAAiBv2X,eAAe2zX,GAAO7yrB,IACpDA,EAAQzJ,KAAKiwV,OAAOxmV,KAGpBA,EAAQzJ,KAAKk/rB,iBAAiBv2X,eAAel/T,GAC7CA,EAAQzJ,KAAK+/rB,YAAc//rB,KAAKk/rB,iBAAiB5W,gBAAgBuZ,sBAAsBp4rB,GAASA,IAGjGA,CACX,EAQA4zrB,EAAe37rB,UAAUogsB,aAAe,SAAUr4rB,GAC9C,OAAOzJ,KAAKqjN,eAAe55M,EAC/B,EASA4zrB,EAAe37rB,UAAUuwF,YAAc,SAAUxoF,GAC7C,IAAI,QAAMA,GAAQ,CACd,IAAIw6N,EAAWjkO,KAAK6uF,aAAak5C,UACjC/nI,KAAKk+L,cAAc,CAAEz0L,MAAOozrB,GAAqB54d,GAAY,KAAOA,GACxE,MAEIjkO,KAAKk+L,cAAc,CAAEz0L,MAAOA,GAEpC,EACA4zrB,EAAe37rB,UAAUqgsB,gBAAkB,SAAUt+rB,GACjD,GAAK02rB,KAGA,CACD,IAAI6H,EAASv+rB,EAAEm9Q,QAAUn9Q,EAAE2tM,eAAe,GAAK3tM,EAC3CzD,KAAKi+rB,YAAYplpB,UAAYmppB,EAAMnppB,SAAW74C,KAAKi+rB,YAAYnlpB,UAAYkppB,EAAMlppB,SACjF94C,KAAKgvL,OAAO,GAAsB,CAAEqY,OAAQ,gBAAiB1kM,KAAMc,GAE3E,MAPIzD,KAAKgvL,OAAO,GAAsB,CAAEqY,OAAQ,gBAAiB1kM,KAAMc,GAQ3E,EACA45rB,EAAe37rB,UAAUugsB,cAAgB,SAAUx+rB,GAC/C,IAAIu+rB,EAASv+rB,EAAEm9Q,QAAUn9Q,EAAE2tM,eAAe,GAAK3tM,EAC/CzD,KAAKgvL,OAAO,EAAgB,CAAEqY,OAAQ,UAAW1kM,KAAMc,EACnDy+rB,UAAW,CAAEC,YAAanisB,KAAKi+rB,YAAYplpB,QAASuppB,YAAapisB,KAAKi+rB,YAAYnlpB,QAC9ED,QAASmppB,EAAMnppB,QAASC,QAASkppB,EAAMlppB,YAE3C94C,KAAK6uF,eAAsC,SAApB7uF,KAAK0trB,YAAkE,IAAzC1trB,KAAK6uF,aAAakU,YAAYv/F,QAC9D,aAApBxD,KAAK0trB,YAAgE,IAAnC1trB,KAAK6uF,aAAaplF,MAAMjG,SAAmBC,EAAE2J,SAAiC,UAAtB3J,EAAE2J,OAAOm6M,UACjG9jN,EAAE2J,OAAOkpF,iBAAiB,IAAM,IAAuB9yF,OAAS,IAAOC,EAAE2J,QAAgC,OAAtB3J,EAAE2J,OAAOm6M,WAC9F9jN,EAAE2J,OAAOw2D,UAAU5+D,SAAS,KACzBvB,EAAE2J,OAAOw2D,UAAU5+D,SAAS,KAC5BvB,EAAE2J,OAAOw2D,UAAU5+D,SAAS,OAChChF,KAAKgvL,OAAO,EAAuB,CAAErsL,KAAMc,IAE/CzD,KAAK+hsB,gBAAgBt+rB,EACzB,EACA45rB,EAAe37rB,UAAU09f,QAAU,SAAU37f,GACzC,GAAIzD,KAAKs9rB,qBAAqB+E,kBAAoB,KAAQppgB,SAAU,CAChE,IAAI7rL,EAAS3J,EAAE2J,OACXk1rB,GAAe,QAAQl1rB,EAAQ,SACnC,GAAIA,GAA8B,MAApBA,EAAOm6M,UAAwC,QAApBn6M,EAAOm6M,UAA2C,OAApBn6M,EAAOm6M,UAAyC,OAApBn6M,EAAOm6M,UAClF,UAApBn6M,EAAOm6M,UAAyB+6e,GAAgBtisB,KAAK2trB,cAAcC,eAAe5orB,SAASs9rB,GAC3F,MAER,CAEA,GADAtisB,KAAKiisB,cAAcx+rB,GACF,IAAbA,EAAE6iJ,OAAc,CAChB,IAAI0iC,EAAQhpL,KAAKk5c,WACbj4X,EAAYjhF,KAAK8trB,UAAUC,cAAcmJ,QAAQt4mB,eACjD,OAAOz/E,KAAK8hF,EAAUxsD,gBACjB,QAAMu0J,EAAMigb,eAAexzlB,kBAAoB,QAAMuzK,EAAMigb,eAAexzlB,cAAc+3S,cAC5B,IAA5DxkI,EAAMigb,eAAexzlB,cAAc+3S,YAAY9xS,WAC5C,OAAOvc,KAAK6pL,EAAMigb,eAAexzlB,cAAc+3S,YAAYzqN,eAAiBimF,EAAM3yD,cAAgB2yD,EAAM5xD,YACtC,OAAnE4xD,EAAMigb,eAAexzlB,cAAcuJ,QAAQywE,sBAC9Cu5F,EAAMm+a,SAASn+a,EAAMigb,eAAgBjgb,EAAM3yD,aAC3C2yD,EAAMo+a,OAAOp+a,EAAMigb,eAAgBjgb,EAAMigb,eAAelmgB,YAAYv/F,SAGhF,CACJ,EAOA65rB,EAAe37rB,UAAU6gsB,qBAAuB,SAAUxmiB,GACtD,OAAO/7J,KAAKwtM,qBAAqBjmM,QAAQw0J,IAAW,CACxD,EAMAshiB,EAAe37rB,UAAU8gsB,OAAS,WAC9BxisB,KAAK2trB,cAAc9upB,cAAc2xkB,YAAY,QAAQ,EAAO,KAChE,EAMA6sF,EAAe37rB,UAAU+gsB,MAAQ,WAC7BzisB,KAAK2trB,cAAc9upB,cAAc2xkB,YAAY,OAAO,EAAO,KAC/D,EAOA6sF,EAAe37rB,UAAUghsB,QAAU,SAAUj/rB,GACzC,IAAIxB,EAAQjC,KACRk2rB,EAAW,CACXz4hB,cAAeh6J,EACfuvG,QAAQ,EACR0hI,YAAa,SAEjB10O,KAAKg7L,QAAQ,EAAoBk7f,GAAU,SAAUyM,GACjD,IAIIzviB,EAJgBjxJ,EAAM4sF,aAAakU,YAAYv/F,OAC7BvB,EAAM28E,eAAep7E,SAChB,QAAMC,KAAM,QAAMA,EAAEquhB,eACzC,EAAIruhB,EAAEquhB,cAAcnwS,QAAQ,cAAcn+O,QAEhD,GAAyB,aAArBvB,EAAMyrrB,WAA2B,CACjC,IAAIlhrB,EAAS,CAAEkoO,YAAa,QAASg5c,WAAYzrrB,EAAMyrrB,WAAYn6qB,MAAO9P,GAO1E,OANA+3B,YAAW,WACPv5B,EAAM6rrB,UAAUn3f,UAAU10L,EAAOuK,EACrC,GAAG,SACwB,IAArBvK,EAAMw/f,WAAoBvuW,GAAejxJ,EAAMw/f,WACjDh+f,EAAEkW,iBAGV,CACA,IAAKgprB,EAAU3vlB,QAAiD,SAAvC/wG,EAAM4sF,aAAa0hhB,mBAClB,IAArBtumB,EAAMw/f,WAAoBvuW,GAAejxJ,EAAMw/f,WAChD,IAAK,QAAMx/f,EAAM2gsB,oBAGZ,CACD,IAAIC,EAAS,CAAEnud,YAAa,QAASg5c,WAAYzrrB,EAAMyrrB,WAAYn6qB,MAAO9P,GACtEgG,EAAQ,KACRq5rB,GAAY,EACZr/rB,KAAM,QAAMA,EAAEquhB,iBACdrohB,EAAQhG,EAAEquhB,cAAcnwS,QAAQ,cAChCmhd,EAAYr/rB,EAAEquhB,cAAcnwS,QAAQ,aAAap6O,QAAQ,aAAe,GAE5E,IAAI2nK,EAAOzrK,GAAKA,EAAEquhB,eAAiBruhB,EAAEquhB,cAAc3ngB,MAAM3mB,OAAS,EAC9DC,EAAEquhB,cAAc3ngB,MAAM,GAAG44qB,YAAc,KAC7B,OAAVt5rB,GACAxH,EAAM+sL,OAAO,GAAc,CACvB9f,KAAMA,EACNvsK,KAAMc,EACN4nB,KAAM5hB,EACNu5rB,YAAaF,IAGrBtnqB,YAAW,WACPv5B,EAAM6rrB,UAAUn3f,UAAU10L,EAAO4gsB,EACrC,GAAG,EACP,MAvBI5gsB,EAAM+sL,O3BveF,a2Bue4B,CAAErsL,KAAMc,SA0B5CA,EAAEkW,gBAEV,GACJ,EAQA0jrB,EAAe37rB,UAAUuhsB,gBAAkB,SAAUv6f,EAAQn1L,GACzD,OAAQm1L,EAAOx/L,eACX,IAAK,MACDlJ,KAAKyisB,QACLzisB,KAAK8trB,UAAUn3f,UAAU32L,KAAM,CAC3B00O,YAAa,MACbg5c,WAAY1trB,KAAK0trB,WACjBn6qB,MAAOA,IAEX,MACJ,IAAK,OACDvT,KAAKwisB,SACLxisB,KAAK8trB,UAAUn3f,UAAU32L,KAAM,CAC3B00O,YAAa,OACbg5c,WAAY1trB,KAAK0trB,WACjBn6qB,MAAOA,IAEX,MACJ,IAAK,QACDvT,KAAK0isB,QAAQnvrB,GAGzB,EAMA8prB,EAAe37rB,UAAUguL,QAAU,WAC/B,IAAI1vL,KAAKm+L,aAAgBn+L,KAAK81G,WAA9B,CAOA,IAJK,QAAM91G,KAAKkjsB,gBACZtxlB,cAAc5xG,KAAKkjsB,cACnBljsB,KAAKkjsB,aAAe,MAEU,OAA9BljsB,KAAKoD,QAAQ2/G,aAKb,OAJK,QAAM/iH,KAAKyrf,gBACZzrf,KAAKyrf,cAAc/7T,eAEvB1vL,KAAKgvL,OAAO,GAAsB,CAAC,GAMvC,GAHAhvL,KAAKgvL,OAAO,EAAgB,CAAC,GAC7BhvL,KAAKmjsB,0BACLnjsB,KAAKykN,eACgC,aAAjCzkN,KAAK2+B,gBAAgB3f,QAAwB,CAC7Chf,KAAKoD,QAAQqS,cAAc1Q,aAAa/E,KAAK61rB,eAAgB71rB,KAAKoD,SAClEpD,KAAK61rB,eAAen+pB,GAAK13B,KAAKq+rB,QAC9Br+rB,KAAK61rB,eAAel3qB,gBAAgB,SACpC,QAAO3e,KAAKoD,SACkC,KAA1CpD,KAAK2+B,gBAAgBopG,UAAUl8H,QAC/B7L,KAAK61rB,eAAepsrB,MAAQzJ,KAAK2+B,gBAAgBopG,UAAUl8H,OAC3D7L,KAAKk+L,cAAc,CAAEz0L,OAAS,QAAMzJ,KAAKgiB,cAAoC,KAApBhiB,KAAKgiB,eAAwB,IAGtFhiB,KAAK61rB,eAAepsrB,MAAQzJ,KAAK61rB,eAAet9kB,aAEpDv4G,KAAKoD,QAAUpD,KAAK61rB,eACpB,IAAK,IAAI9orB,EAAI,EAAGA,EAAI/M,KAAK2+B,gBAAgBilC,UAAUpgE,OAAQuJ,KACvD,QAAS,CAAC/M,KAAKoD,SAAUpD,KAAK2+B,gBAAgBilC,UAAU72D,IAE5D,KAAK,QAAM/M,KAAKikN,UACZ,KAAIq6e,EAAmBt+rB,KAAKikN,SAASz8M,MAAM,KAC3C,IAASuF,EAAI,EAAGA,EAAIuxrB,EAAiB96rB,OAAQuJ,KACzC,QAAS,CAAC/M,KAAKoD,SAAUk7rB,EAAiBvxrB,GAFC,EAKnD,QAAY,CAAC/M,KAAKoD,SAAU,GAChC,KAEkD,KAA1CpD,KAAK2+B,gBAAgBopG,UAAUl8H,QAC/B7L,KAAKoD,QAAQ2kI,UAAY/nI,KAAK2+B,gBAAgBopG,UAAUl8H,OACxD7L,KAAKk+L,cAAc,CAAEz0L,OAAS,QAAMzJ,KAAKgiB,cAAoC,KAApBhiB,KAAKgiB,eAAwB,IAGtFhiB,KAAKoD,QAAQ2kI,UAAY,GAMjC,GAHI/nI,KAAKupD,aAAevpD,KAAKuhsB,qBACzBvhsB,KAAKuhsB,mBAAqB,QAEzB,QAAMvhsB,KAAKikN,UACZ,KAAI8zb,EAAe/3oB,KAAKikN,SAASz8M,MAAM,KACvC,IAASuF,EAAI,EAAGA,EAAIgroB,EAAav0oB,OAAQuJ,IACN,KAA3BgroB,EAAahroB,GAAGlB,SAChB,QAAY,CAAC7L,KAAKoD,SAAU20oB,EAAahroB,GAHN,CAO/C/M,KAAKojsB,uBACLpjsB,KAAKgjO,mBACLxuN,EAAO9S,UAAUguL,QAAQh7K,KAAK1U,MAC9BA,KAAK81G,YAAa,EACd91G,KAAKwsM,mBACLltM,OAAO6lH,aAAavxB,WAAW5zF,KAAKu/L,gBAAkBv/L,KAAKoD,QAAQs0B,GAhEvE,CAkEJ,EACA2lqB,EAAe37rB,UAAU0hsB,qBAAuB,WAC5C,GAAIpjsB,KAAKonN,eAEL,IADA,IAAIhhN,EAAOD,OAAOC,KAAKpG,KAAKonN,gBACnBr6M,EAAI,EAAGA,EAAI3G,EAAK5C,QAAUxD,KAAKoD,QAAQwhF,aAAax+E,EAAK2G,IAAKA,IACnE/M,KAAKoD,QAAQub,gBAAgBvY,EAAK2G,GAG9C,EACAswrB,EAAe37rB,UAAUshO,iBAAmB,WACnChjO,KAAKuqH,UACN,QAAY,CAACvqH,KAAKoD,SAAU,IAE5BpD,KAAKksM,YACL,QAAY,CAAClsM,KAAKoD,SAAU,IAE5BpD,KAAK+7N,WACL,QAAY,CAAC/7N,KAAKoD,SAAU,IAEC,KAA7BpD,KAAKoD,QAAQgG,MAAMuR,OAAqD,KAArC3a,KAAK2+B,gBAAgBv1B,MAAMuR,OAC9D3a,KAAKoD,QAAQgG,MAAMm7P,eAAe,SAEJ,KAA9BvkQ,KAAKoD,QAAQgG,MAAMyX,QAAuD,KAAtC7gB,KAAK2+B,gBAAgBv1B,MAAMyX,QAC/D7gB,KAAKoD,QAAQgG,MAAMm7P,eAAe,UAEtCvkQ,KAAKoD,QAAQub,gBAAgB,iBAC7B3e,KAAKoD,QAAQub,gBAAgB,QAC7B3e,KAAKoD,QAAQub,gBAAgB,WACjC,EACA0+qB,EAAe37rB,UAAUyhsB,wBAA0B,WAE/CnjsB,KAAK4/rB,aAAalwgB,UAClB1vL,KAAK8trB,UAAUC,cAAcsV,gBAAgB3zgB,UAC7C1vL,KAAK6/rB,iBAAiBnwgB,SAC1B,EAMA2tgB,EAAe37rB,UAAU29d,WAAa,WAClC,OAAOr/d,KAAK2trB,cAAcsC,UAC9B,EAMAoN,EAAe37rB,UAAU8/F,QAAU,WAC/B,OAAOxhG,KAAK2trB,cAAcnslB,SAC9B,EAMA67lB,EAAe37rB,UAAU6lrB,gBAAkB,WACvC,IACI+b,EAAatjsB,KAAKuE,cAAc,OAChC08E,EAAYjhF,KAAK2trB,cAAc9upB,cAAc+/C,eACjD,GAAIqC,EAAUwmhB,WAAa,EAAG,CAE1B,IAAI87F,EADItinB,EAAUymhB,WAAW,GACJ87F,gBACzBF,EAAW5/rB,YAAY6/rB,EAC3B,CACA,OAAOD,EAAWv7jB,SACtB,EAMAs1jB,EAAe37rB,UAAU+hsB,kBAAoB,WACzC,GAAIzjsB,KAAKq2rB,WAAW/re,OAAQ,CACxB,IAAIo5e,EAAe1jsB,KAAKk5c,WACpByqP,EAAmD,UAAvCD,EAAar2F,aAAa9lZ,SACtCm8e,EAAar2F,aAAa53lB,cAAgBiurB,EAAar2F,aACvDnzlB,EAAIwprB,EAAaE,iBAAiB,GAAGhsrB,KACrCohC,EAAI0qpB,EAAaE,iBAAiB,GAAGtprB,IACzCta,KAAKg2rB,mBAAmB6N,gBAAgB3prB,EAAG8+B,EAAG2qpB,EAClD,CACJ,EAMAtG,EAAe37rB,UAAUoisB,kBAAoB,WACzC9jsB,KAAKg2rB,mBAAmB+N,iBAC5B,EAQA1G,EAAe37rB,UAAU69L,cAAgB,WACrC,MAAO,gBACX,EAWA89f,EAAe37rB,UAAUm9L,kBAAoB,SAAUoG,EAASC,GAC5D,IAAK,IAAI9/L,EAAK,EAAG7F,EAAK4G,OAAOC,KAAK6+L,GAAU7/L,EAAK7F,EAAGiE,OAAQ4B,IAAM,CAC9D,IAAIO,EAAOpG,EAAG6F,GACd,OAAQO,GACJ,IAAK,WACL,IAAK,QACD,IAAIq+rB,EAIIA,EAHK,aAATr+rB,EACmB,OAAf3F,KAAKyJ,OAAiC,oBAAfzJ,KAAKyJ,OAA8C,gBAAfzJ,KAAKyJ,OACjD,SAAfzJ,KAAKyJ,MACE,KAGAzJ,KAAKyJ,MAITw7L,EAAQt/L,GAEnB,IAAIsgH,EAA0B,SAApBjmH,KAAK0trB,WAAwBwO,GAAa8H,EAAMhksB,MAAQgksB,KAC5D,QAAMA,IAAkB,KAATA,GAAyB,aAATr+rB,KACjC3F,KAAKyJ,MAAQzJ,KAAKqjN,eAAiBrjN,KAAqB,iBAAIA,KAAKiwV,OAAOqsW,GAAOr2kB,IAAQA,IAE3FjmH,KAAKiksB,mBACDjksB,KAAK6uF,cACL7uF,KAAKgvL,OAAO,EAAmB,CAAC,GAEpChvL,KAAK41rB,iBACL51rB,KAAKgvL,OAAO,GAAwB,CAAEjzB,OAAQ,kBAAmBkpC,QAASA,EAASC,QAASA,IACxFllM,KAAK+/rB,aACL//rB,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKggsB,aAAc,GAE/ChgsB,KAAKu9rB,eACLv9rB,KAAKkksB,YAAYx3f,UAErB1sM,KAAKwwrB,uBACL,MAEJ,IAAK,gBACDxwrB,KAAKqiB,UAAS,GACVriB,KAAKu9rB,eACLv9rB,KAAKkksB,YAAYx3f,UAErB,MACJ,IAAK,QACD1sM,KAAK+8N,SAAS93B,EAAQt/L,IAClB3F,KAAKsuf,gBAAgBhkS,SAAWtqN,KAAKq2rB,WAAW/re,SAChDtqN,KAAKyrf,cAAc04M,yBACnBnksB,KAAK6lU,iBAET,MACJ,IAAK,SACD7lU,KAAKgoT,UAAU/iH,EAAQt/L,IACvB3F,KAAKw7d,mBACLx7d,KAAKwhsB,aACL,MACJ,IAAK,WACDxhsB,KAAKw1P,aAAY,GACjB,MACJ,IAAK,WACDx1P,KAAKoD,QAAQwgE,UAAUC,OAAOqhI,EAAQv/L,IACtC3F,KAAK+/N,YAAY96B,EAAQt/L,IACzB3F,KAAKgvL,OAAO,GAAqB,CAAEi1B,SAAUhf,EAAQt/L,GAAO6kN,YAAatlB,EAAQv/L,KACjF,MACJ,IAAK,UACD3F,KAAKkqN,YACL,MACJ,IAAK,YACDlqN,KAAKoksB,YACL,MACJ,IAAK,cACDpksB,KAAKupD,YAAc07I,EAAQt/L,GAC3B3F,KAAK41rB,iBACL,MACJ,IAAK,iBACD5gG,GAAch1lB,KAAKonN,eAAgBpnN,MAAM,GAAO,GAChD,MACJ,IAAK,iBACD,IAAIqksB,EAAen/f,EAAQv/L,GAC3B,GAAI0+rB,EAAat8hB,UAAW,CACxB,IACIriI,EADS1lC,KAAK2trB,cAAc9upB,cACZ55B,cAAc,QAC9B6qK,OAAQ,EACRu0hB,EAAat8hB,UAAUu8hB,UACvBx0hB,EAAQpqI,EAAO4wD,iBAAiB,IAAM,IACtCt2F,KAAKuksB,aAAaz0hB,IAElBu0hB,EAAat8hB,UAAUhhK,SACvB+oK,EAAQpqI,EAAO4wD,iBAAiB,IAAM,IACtCt2F,KAAKuksB,aAAaz0hB,GAE1B,CACA9vK,KAAKwksB,oBACL,MAEJ,IAAK,SACDhwrB,EAAO9S,UAAUgrM,QAAQh4L,KAAK1U,MAC9B,MACJ,IAAK,aACDA,KAAKgvL,OAAO,EAAqB,CAAEjzB,OAAQ,eAAgBkpC,QAASA,EAASC,QAASA,IACtFllM,KAAKw7d,mBACL,MACJ,IAAK,kBACDx7d,KAAKgvL,OAAO,EAAqB,CAAEjzB,OAAQ,UAAWkpC,QAASA,EAASC,QAASA,IACjFllM,KAAKw7d,mBACL,MACJ,IAAK,YACGx7d,KAAKu9rB,eACLv9rB,KAAKkksB,YAAYx3f,UAErB,MACJ,IAAK,gBACGzH,EAAQt/L,IAAS3F,KAAKkksB,YACtBlksB,KAAKkksB,YAAYO,eAEM,IAAlBx/f,EAAQt/L,IAAmB3F,KAAKkksB,aACrClksB,KAAKkksB,YAAYx0gB,UAErB,MACJ,IAAK,mBACD1vL,KAAK8vrB,kBACL9vrB,KAAKiksB,mBACLjksB,KAAK41rB,iBACD51rB,KAAKu9rB,eACLv9rB,KAAKkksB,YAAYx3f,UAErB,MACJ,IAAK,gBACL,IAAK,gBACD1sM,KAAK8trB,UAAUC,cAActmiB,SAASunC,OAAO,GAAwB,CAAEiW,QAASA,EAASC,QAASA,IAClG,MACJ,IAAK,cACDllM,KAAKgvL,OAAO,GAAwB,CAAEjzB,OAAQ,kBAAmBkpC,QAASA,EAASC,QAASA,IAC5F,MACJ,IAAK,uBACDD,EAAQq4f,qBAAqB+E,iBAAmBrisB,KAAK0ksB,mBAAqB1ksB,KAAK2ksB,qBAC/E3ksB,KAAKgvL,OAAO,EAAqB,CAAEiW,QAASA,EAASC,QAASA,IAC9D,MACJ,IAAK,wBACDllM,KAAK8trB,UAAUC,cAActmiB,SAASunC,OAAO,GAAwB,CAAEjzB,OAAQ,gBAAiBkpC,QAASA,IACzG,MACJ,QACIjlM,KAAKgvL,OAAO,EAAqB,CAAEiW,QAASA,EAASC,QAASA,IAG1E,CACJ,EAOAm4f,EAAe37rB,UAAUourB,gBAAkB,WACnC9vrB,KAAKo8rB,iBACLp8rB,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKiwV,OAAOqsW,GAAOt8rB,KAAK6uF,aAAak5C,cAAe,GAGhF/nI,KAAKk+L,cAAc,CACfz0L,MAAO,kBAAkBtK,KAAKa,KAAK6uF,aAAak5C,WAAa/nI,KAAK6uF,aAAak5C,UAC3Eu0jB,GAAOt8rB,KAAK6uF,aAAak5C,YAGzC,EACAs1jB,EAAe37rB,UAAU6isB,aAAe,SAAUK,GAC9C,IAAI73rB,EACJ,IAAKA,EAAI,EAAGA,EAAI63rB,EAAQphsB,OAAQuJ,KAC5B,QAAO63rB,EAAQ73rB,GAEvB,EACAswrB,EAAe37rB,UAAUuisB,iBAAmB,WACxC,IAAIx6rB,EAAQzJ,KAAKyJ,MACjBA,EAASzJ,KAAKo8rB,kBAAoBp8rB,KAAKyJ,MAAS6yrB,GAAO7yrB,GAASA,EAChE,IAAIo7rB,EAAc7ksB,KAAKoD,QAAQ6B,cAAc,sBACzCwE,GACIo7rB,GAA6C,UAA9BA,EAAYz7rB,MAAMwjB,UACjCi4qB,EAAYp7rB,MAAQzJ,KAAKyJ,OAEzBzJ,KAAK61rB,iBACL71rB,KAAK61rB,eAAepsrB,MAASzJ,KAAqB,iBAAIA,KAAKyJ,MAAQA,GAE/C,SAApBzJ,KAAK0trB,YAAyB1trB,KAAK6uF,cAAgB7uF,KAAK6uF,aAAak5C,UAAUz9H,QAAQ,QAAS,KAAKuB,SAAWpC,EAAMoC,OACtH7L,KAAK6uF,aAAak5C,UAAYt+H,EAEL,aAApBzJ,KAAK0trB,YAA6B1trB,KAAK6uF,cACzC7uF,KAAK6uF,aAAaplF,MAAMoC,SAAWpC,EAAMoC,SAC5C7L,KAAK6uF,aAAaplF,MAAQA,KAI1Bo7rB,GAA6C,UAA9BA,EAAYz7rB,MAAMwjB,UACjCi4qB,EAAYp7rB,MAAQ,IAEA,SAApBzJ,KAAK0trB,WACiB,QAAlB1trB,KAAK6trB,SACL7trB,KAAK6uF,aAAak5C,UAAY,mBAEP,OAAlB/nI,KAAK6trB,SACV7trB,KAAK6uF,aAAak5C,UAAY,SAG9B/nI,KAAK6uF,aAAak5C,UAAY,eAChB,KAAVt+H,GAAgBzJ,KAAK8trB,WAAa9trB,KAAK6uF,cACvC7uF,KAAK8trB,UAAUC,cAAcC,cAAcC,eAAejurB,KAAK2trB,cAAc9upB,cAAe7+B,KAAK6uF,aAAa1vE,kBAAmBnf,KAAK6uF,aAAa1vE,kBAAkBg8O,oBAK7Kn7P,KAAK6uF,aAAaplF,MAAQ,GAE1BzJ,KAAK61rB,iBACL71rB,KAAK61rB,eAAepsrB,MAAQ,KAGhCzJ,KAAKu9rB,eACLv9rB,KAAKkksB,YAAYx3f,SAEzB,EACA2wf,EAAe37rB,UAAUsmT,UAAY,SAAUnnS,GAEvC7gB,KAAKoD,QAAQgG,MAAMyX,OADR,SAAXA,GAC4B,QAAWA,GAGX,OAEE,WAA9B7gB,KAAKsuf,gBAAgBvte,OAA+C,iBAAjB/gB,KAAW,QAC9DA,KAAK6gB,OAAOtZ,QAAQ,OAAS,GAA8B,iBAAjBvH,KAAW,QACrDA,KAAKoD,QAAQwgE,UAAUjoD,IAAI,IAG3B3b,KAAKoD,QAAQwgE,UAAUC,OAAO,GAEtC,EAQAw5nB,EAAe37rB,UAAUk0rB,eAAiB,WAClC51rB,KAAK6uF,cAAgB7uF,KAAKupD,cAA8C,IAA/BvpD,KAAK+vrB,eAAezle,SACrC,aAApBtqN,KAAK0trB,YACA1trB,KAAKuhsB,qBACNvhsB,KAAKuhsB,mBAAqBvhsB,KAAKuE,cAAc,OAAQ,CAAE9B,UAAW,qCAA4CzC,KAAKikN,WAC/GjkN,KAAK6uF,cACL7uF,KAAK6uF,aAAap5E,cAAc1Q,aAAa/E,KAAKuhsB,mBAAoBvhsB,KAAK6uF,eAE/E,QAAW7uF,KAAKuhsB,mBAAoB,CAChC,MAAS,2DAGjBvhsB,KAAKuhsB,mBAAmBx5jB,UAAY/nI,KAAKupD,cACI,IAAzCvpD,KAAK6uF,aAAakU,YAAYv/F,QAAgBxD,KAAK6uF,aAAa/pF,WAAWtB,OAAS,KAAM,QAAMxD,KAAK6uF,aAAat3E,aAA0D,OAA1CvX,KAAK6uF,aAAat3E,WAAWgwM,WACnH,MAA1CvnN,KAAK6uF,aAAat3E,WAAWgwM,UAA8D,QAA1CvnN,KAAK6uF,aAAat3E,WAAWgwM,WAAwB,QAAMvnN,KAAK6uF,aAAat3E,WAAWA,aAClF,OAArDvX,KAAK6uF,aAAat3E,WAAWA,WAAWgwM,UAI5CvnN,KAAKuhsB,mBAAmBn4rB,MAAMwjB,QAAU,OAHxC5sB,KAAKuhsB,mBAAmBn4rB,MAAMwjB,QAAU,SAO5C5sB,KAAK6uF,aAAapqF,aAAa,cAAezE,KAAKupD,cAGvDvpD,KAAKupD,aAAevpD,KAAK+vrB,eAAezle,WACK,IAAzCtqN,KAAK6uF,aAAakU,YAAYv/F,QAAgBxD,KAAK6uF,aAAa/pF,WAAWtB,OAAS,KAAM,QAAMxD,KAAK6uF,aAAat3E,aAA0D,OAA1CvX,KAAK6uF,aAAat3E,WAAWgwM,WACnH,MAA1CvnN,KAAK6uF,aAAat3E,WAAWgwM,UAA8D,QAA1CvnN,KAAK6uF,aAAat3E,WAAWgwM,WAAwB,QAAMvnN,KAAK6uF,aAAat3E,WAAWA,aAClF,OAArDvX,KAAK6uF,aAAat3E,WAAWA,WAAWgwM,WAK5C,QAAY,CAACvnN,KAAK6uF,cAAe,uBAJjC,QAAS,CAAC7uF,KAAK6uF,cAAe,qBAC9B7uF,KAAK6uF,aAAapqF,aAAa,cAAezE,KAAKupD,cAM/D,EACA8zoB,EAAe37rB,UAAUq7N,SAAW,SAAUpiN,GAC5B,SAAVA,GACA,QAAkB3a,KAAKoD,QAAS,CAAE,OAAS,QAAWpD,KAAK2a,SAG3D3a,KAAKoD,QAAQgG,MAAMuR,MAAQ,MAEnC,EACA0irB,EAAe37rB,UAAUq+N,YAAc,SAAU9b,GAC7C,KAAK,QAAMA,GAEP,IADA,IAAI8zb,EAAe9zb,EAASz8M,MAAM,KACzBuF,EAAI,EAAGA,EAAIgroB,EAAav0oB,OAAQuJ,IACN,KAA3BgroB,EAAahroB,GAAGlB,QAChB7L,KAAKoD,QAAQwgE,UAAUjoD,IAAIo8nB,EAAahroB,GAIxD,EACAswrB,EAAe37rB,UAAU0isB,UAAY,WACjCpksB,KAAKgvL,OAAO,GAAgB,CAAEkd,UAAWlsM,KAAKksM,YAC1ClsM,KAAKksM,WACLlsM,KAAKoD,QAAQwgE,UAAUjoD,IAAI,IAC3B3b,KAAK6uF,aAAajrB,UAAUjoD,IAAI,MAGhC3b,KAAKoD,QAAQwgE,UAAUC,OAAO,IAC9B7jE,KAAK6uF,aAAajrB,UAAUC,OAAO,IAE3C,EACAw5nB,EAAe37rB,UAAUojsB,eAAiB,WACtC9ksB,KAAKgvL,OAAO,GAAqB,CAAE+1gB,UAAW/ksB,KAAK6uF,aAAczS,KAAMp8E,KAAK+7N,UAChF,EASAshe,EAAe37rB,UAAU8zP,YAAc,SAAUrwH,GAC7CnlI,KAAK8ksB,iBACA3/jB,IACGnlI,KAAK+7N,UAAY/7N,KAAKuqH,QACtBvqH,KAAKglsB,eAEAhlsB,KAAKuqH,SACVvqH,KAAK6yM,aAGjB,EAMAwqf,EAAe37rB,UAAU4kK,MAAQ,WAC7B,IACI2+hB,EADAhjsB,EAAQjC,KAERklsB,EAAY,CACZ9hsB,QAASpD,KAAK6uF,aACd6lJ,YAAa,QACb1hI,QAAQ,GAEZhzG,KAAKg7L,QAAQ,EAAoBkqgB,GAAW,SAAUC,GAClDF,EAAY3lsB,OAAOgzE,KAAK,GAAI,QAAS,UAAYhzE,OAAOmoK,YAAc,UAAYnoK,OAAOkoK,YAC/D,SAAtB,KAAQhf,KAAK5gJ,MACbq9rB,EAAUrnC,SAAS5+K,OAAO6+K,WAAY7+K,OAAO8+K,aAEjDmnC,GAAY,QAAYhjsB,EAAM4sF,aAAco2mB,GACvCE,EAAanylB,QAId/wG,EAAM+4L,QAAQ,EAHG,CACb05C,YAAa,SAIzB,GACJ,EAOA2od,EAAe37rB,UAAU+0rB,UAAY,WACjCz2rB,KAAK4/rB,aAAalzf,SACtB,EAMA2wf,EAAe37rB,UAAUq0rB,eAAiB,WACtC/1rB,KAAKolsB,iBAAiBrP,gBAC1B,EAWAsH,EAAe37rB,UAAUymlB,kBAAoB,SAAUh+jB,EAAOk7qB,GAC1DrlsB,KAAKyrf,cAAc65M,gBAAgBtlsB,KAAK6vrB,uBAAwB1lqB,GAAO,EAAMk7qB,EACjF,EAWAhI,EAAe37rB,UAAUyurB,mBAAqB,SAAUhmqB,EAAOk7qB,GAC3DrlsB,KAAKyrf,cAAc65M,gBAAgBtlsB,KAAK6vrB,uBAAwB1lqB,GAAO,EAAOk7qB,EAClF,EAUAhI,EAAe37rB,UAAU6jsB,kBAAoB,SAAUp7qB,GACnDnqB,KAAKyrf,cAAc+5M,gBAAgBr7qB,EACvC,EAQAkzqB,EAAe37rB,UAAUw3c,SAAW,WAChC,OAAOl5c,KAAK8trB,UAAUC,cAAcC,cAAc90O,SAASl5c,KAAK2trB,cAAc9upB,cAClF,EACAw+pB,EAAe37rB,UAAUw8rB,mBAAqB,WAC1Cl+rB,KAAKivrB,eAAe76pB,SAAS,kBAAmB,IAAIy8pB,IACpD7wrB,KAAKivrB,eAAe76pB,SAAS,YAAap0B,KAAK0vd,UAAY,IAAI,KAAK1vd,KAAKu/L,gBAAiB7hE,GAAe19H,KAAK8xH,SAC9G9xH,KAAKivrB,eAAe76pB,SAAS,qBAAsB,IAAI+oqB,GAAen9rB,MAC1E,EACAq9rB,EAAe37rB,UAAUo+rB,UAAY,WACjC,IAAI5Q,EAAkBlvrB,KAAKivrB,eAAe3B,WAAW,mBACrDttrB,KAAK2trB,cAAgBuB,EAAgB1B,YAAYrJ,EAAWl0oB,SAC5DjwC,KAAKolsB,iBAAmB,IAAItP,GAAW91rB,MACvCA,KAAKylsB,eAAiB,IAAI7O,GAAe52rB,MACzCA,KAAK4/rB,aAAarjrB,SAClBvc,KAAK6uF,aAAe7uF,KAAK2trB,cAAcC,eACvC5trB,KAAKgoT,UAAUhoT,KAAK6gB,QACpBm0kB,GAAch1lB,KAAKonN,eAAgBpnN,MAAM,GAAO,GAC5CA,KAAK+vrB,gBACL/vrB,KAAKwksB,oBAETxksB,KAAK+/N,YAAY//N,KAAKikN,UACtBjkN,KAAKy9rB,eACLz9rB,KAAK41rB,iBACL51rB,KAAKoksB,YACLpksB,KAAK8ksB,iBACL9ksB,KAAKiksB,mBACDjksB,KAAKo8rB,oBAAqB,QAAMp8rB,KAAKyJ,QACrCzJ,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKiwV,OAAOqsW,GAAOt8rB,KAAKyJ,SAE5D,EACA4zrB,EAAe37rB,UAAU8isB,kBAAoB,WACzC,GAAIxksB,KAAK+vrB,eAAehohB,UAAW,CAC/B,IAAI29hB,EAAW1lsB,KAAK+vrB,eAAehohB,UAAUhhK,OACzC4+rB,EAAY3lsB,KAAK+vrB,eAAehohB,UAAUu8hB,QAC1CtksB,KAAK+vrB,eAAehohB,UAAUu8hB,QAAQ9gsB,OAAS,GAC/CxD,KAAK4lsB,aAAY,EAAMD,GAEvB3lsB,KAAK+vrB,eAAehohB,UAAUhhK,OAAOvD,OAAS,GAC9CxD,KAAK4lsB,aAAY,EAAOF,EAEhC,CACI1lsB,KAAK+vrB,eAAelnjB,YACpBmsd,GAAch1lB,KAAK+vrB,eAAelnjB,WAAY7oI,MAAM,GAAM,EAElE,EACAq9rB,EAAe37rB,UAAUkksB,YAAc,SAAUC,EAAajB,GAC1D,IACI,GAAIA,GAAWA,EAAQphsB,OAAS,EAG5B,IAFA,IACI4J,EADSpN,KAAK2trB,cAAc9upB,cACZ55B,cAAc,QACzB8H,EAAI,EAAGA,EAAI63rB,EAAQphsB,OAAQuJ,IAChC,GAAI84rB,EAAa,CACb,IAAIC,EAAY9lsB,KAAK+lsB,sBACrBD,EAAUnpoB,IAAMiooB,EAAQ73rB,GACxBK,EAAO1J,YAAYoisB,EACvB,KACK,CACD,IAAIE,EAAWhmsB,KAAKimsB,qBACpBD,EAASvtqB,KAAOmsqB,EAAQ73rB,GACxBK,EAAO1J,YAAYsisB,EACvB,CAGZ,CACA,MAAOvisB,GACH,MACJ,CACJ,EACA45rB,EAAe37rB,UAAUqksB,oBAAsB,WAC3C,IAAID,EAAY9lsB,KAAKuE,cAAc,SAAU,CACzC9B,UAAW,KAGf,OADAqjsB,EAAU/krB,KAAO,kBACV+krB,CACX,EACAzI,EAAe37rB,UAAUuksB,mBAAqB,WAC1C,IAAID,EAAWhmsB,KAAKuE,cAAc,OAAQ,CACtC9B,UAAW,KAGf,OADAujsB,EAAS7tqB,IAAM,aACR6tqB,CACX,EACA3I,EAAe37rB,UAAU2gB,SAAW,SAAU6jrB,GAC1C,IAAIjksB,EAAQjC,KACZ,GAAIA,KAAKmkQ,cAAe,CACpB,IAAIszC,EAAQ,IAAIplL,OAAO,uEACvB,GAAkC,iBAAvBryH,KAAKmkQ,eAA8BszC,EAAMt4S,KAAKa,KAAKmkQ,eAC1DnkQ,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAKmkQ,oBAEhC,CACD,IAAIgic,GAAmB,QAAQnmsB,KAAKmkQ,cAAb,CAA4B,GAAInkQ,KAAM,iBAE7D,GAAkC,iBAAvBA,KAAKmkQ,eAA8BnkQ,KAAKo8P,QAAS,CACxDp8P,KAAKomsB,gBAAkBpmsB,KAAKuE,cAAc,OAC1C,IAAK,IAAIwI,EAAI,EAAGA,EAAIo5rB,EAAiB3isB,OAAQuJ,IAAK,CAC9C,IAAI+c,EAAOq8qB,EAAiBp5rB,IAC5B,QAAO,CAAC+c,GAAO9pB,KAAKomsB,gBACxB,CACApmsB,KAAKqmsB,iBAAgB,WACjBpksB,EAAM4sF,aAAak5C,UAAY9lI,EAAMmksB,gBAAgBthsB,WAAW,GAAGijI,UACnE9lI,EAAMi8L,cAAc,CAAEz0L,MAAOxH,EAAM4sF,aAAak5C,UAAUl8H,QAC9D,GACJ,KACK,CACD,IAAIy6rB,EAAatmsB,KAAKoD,QAKtB,IAJI8isB,IACAlmsB,KAAK6uF,aAAak5C,UAAY,GAC9Bu+jB,EAAatmsB,KAAK6uF,cAEb9hF,EAAI,EAAGA,EAAIo5rB,EAAiB3isB,OAAQuJ,IACrC+c,EAAOq8qB,EAAiBp5rB,IAC5B,QAAO,CAAC+c,GAAOw8qB,GAEnBtmsB,KAAKk+L,cAAc,CAAEz0L,MAAO68rB,EAAWv+jB,UAAUl8H,SACjD7L,KAAKguM,sBACT,CACJ,CACJ,KACK,CAED,IAAI0gH,IAAa,QAAM1uT,KAAKoD,QAAQ2kI,YAAc/nI,KAAKoD,QAAQ2kI,UAAUz9H,QAAQ,uBAAwB,IAAIuB,OAC3F,KAAd6iT,IAC6B,aAAzB1uT,KAAKoD,QAAQ4b,QACbhf,KAAKk+L,cAAc,CAAEz0L,MAAO6yrB,GAAO5tY,KAGnC1uT,KAAKk+L,cAAc,CAAEz0L,MAAOilT,IAGxC,CACJ,EAEA2uY,EAAe37rB,UAAU2ksB,gBAAkB,SAAUtlf,GACjD/gN,KAAKguM,qBAAqB+S,EAC9B,EACAs8e,EAAe37rB,UAAU6ksB,iBAAmB,WACxCvmsB,KAAK89rB,qBAAsB,CAC/B,EAQAT,EAAe37rB,UAAU8ksB,qBAAuB,WAC5C,IAAIr3qB,EAAWnvB,KAAKq/rB,oBAAoBlwqB,SAIpCmvnB,EAAUt+oB,KAAK2trB,cAAcC,eAC7B9ve,EAAWx+M,OAAO2jH,iBAAiBq7hB,GACnCmoD,EAAkBnoD,EAAQn3mB,aAAeu/pB,GACzCvmrB,WAAW29L,EAAS5tL,YAAY1oB,MAAM,MAAM,IAAM2Y,WAAW29L,EAAS30K,aAAa3hC,MAAM,MAAM,IAC/F2Y,WAAW29L,EAAS3qK,WAAW3rC,MAAM,MAAM,IAAM2Y,WAAW29L,EAASzqK,YAAY7rC,MAAM,MAAM,KACjG,OAAO,QAAM2nB,GAAYs3qB,EAAkBt3qB,CAC/C,EAQAkuqB,EAAe37rB,UAAUilsB,qBAAuB,WAC5C,IAAIx3qB,EAAWnvB,KAAKy/rB,oBAAoBtwqB,SAIpCmvnB,EAAUt+oB,KAAK2trB,cAAcC,eAC7B9ve,EAAWx+M,OAAO2jH,iBAAiBq7hB,GACnCmoD,EAAkBnoD,EAAQn3mB,aAAey/pB,GACzCzmrB,WAAW29L,EAAS5tL,YAAY1oB,MAAM,MAAM,IAAM2Y,WAAW29L,EAAS30K,aAAa3hC,MAAM,MAAM,IAC/F2Y,WAAW29L,EAAS3qK,WAAW3rC,MAAM,MAAM,IAAM2Y,WAAW29L,EAASzqK,YAAY7rC,MAAM,MAAM,KACjG,OAAO,QAAM2nB,GAAYs3qB,EAAkBt3qB,CAC/C,EAUAkuqB,EAAe37rB,UAAU85d,iBAAmB,SAAUpud,EAAQqtO,GAC1D,IAAI4vO,EAEAw8O,EADA1uX,EAAW,EAEX2uX,EAAyC,iBAAjB9msB,KAAW,QAAkBA,KAAK6gB,OAAOtZ,QAAQ,MAAQ,EACjFwyd,EAAU/5d,KAAK6/rB,iBAAiB5P,YACiC,UAAjEjwrB,KAAK6/rB,iBAAiB5P,WAAWx6qB,cAAcrM,MAAMwjB,QAAuB5sB,KAAK6/rB,iBAAiB5P,WAAWx6qB,cAC7GzV,KAAK2trB,cAAcsC,WACnB8W,EAAY/msB,KAAKoD,QAAQ8nF,aACX,IAAd67mB,GAAmC,SAAhB/msB,KAAK6gB,QAAsB7gB,KAAKowrB,eACnD2W,EAAYn8rB,SAAS5K,KAAK6gB,OAAQ,IAC9BimrB,IACAD,EAAmB7msB,KAAK6gB,SAGhC,IAAImmrB,EAAWhnsB,KAAKowrB,aAAepwrB,KAAKyrf,cAAc01F,mBAAqB,EACvE8lH,EAAWjnsB,KAAKoD,QAAQ6B,cAAc,oBACtCiisB,EAAWlnsB,KAAKyjU,cAAiB,QAAMwjY,GAA0C,EAA7BA,EAAS/7mB,aAAe,EAAU,EACtFi8mB,EAAkBnnsB,KAAKowrB,aAAepwrB,KAAKyrf,cAAc27M,yBAA2B,EAuBxF,GAtBIpnsB,KAAKsuf,gBAAgBvte,OAASqjqB,EAAYwP,QAAUn5c,GACpD4vO,EAA+B,SAAhBrqd,KAAK6gB,QAAkC,IAAbqmrB,EAAkB,OAASH,GAAaC,EAAWG,EAAkBD,GAAY,KAC1H/uX,EAAan4U,KAAKsuf,gBAAgB8nM,eAAoC,EAAlB+Q,GAOhD98O,EAJgB,SAAhBrqd,KAAK6gB,QAAuB7gB,KAAKoD,QAAQwgE,UAAU5+D,SAAS,sBAA0BhF,KAAK89rB,oBAI7EgJ,GAAiBD,EAAmBA,EAAmBE,GAAaC,EAAWE,GAAY,KAH3F,OAMP,iBAAX95rB,IACIpN,KAAK+vrB,eAAezle,OACA,SAAhB+/P,IACA,QAAkB0P,EAAQ,CAAEl5c,OAAQwpc,EAAaj3a,UAAW+kS,EAAW,QAI3E,QAAkB4hJ,EAAQ,CAAEl5c,OAAQwpc,EAAaj3a,UAAW+kS,EAAW,QAG3En4U,KAAK+vrB,eAAezle,QAAqB,eAAXl9M,EAAyB,CACvD,IAAIi6rB,GAAc,QAAO,IAAM,GAAyBrnsB,KAAKoD,UAC7D,QAAkBiksB,EAAa,CAAExmrB,OAAQwpc,EAAaj3a,UAAW+kS,EAAW,MAChF,CACA,GAAIn4U,KAAKsuf,gBAAgB8nM,gBAAkBp2rB,KAAKowrB,eAAiBpwrB,KAAKq2rB,WAAW/re,OAAQ,CACrF,IAAIg9e,GAAgB7sd,EAAYusd,EAAWG,EAAmBH,GAAY,MAC1E,QAAkBhnsB,KAAKowrB,aAAa36qB,cAAe,CAAEoL,OAAQymrB,GACjE,CACiB,IAAbJ,GACAlnsB,KAAKwhsB,YAEb,EAOAnE,EAAe37rB,UAAU6lsB,QAAU,WAC/B,IAAIzE,EAAY9isB,KAAK2trB,cAAcC,eAAe7ljB,UAClD,OAAQ/nI,KAAK+/rB,aAA8B,gBAAd+C,GAA6C,oBAAdA,GAC1C,SAAdA,EAA+B9isB,KAAKqjN,eAAey/e,GAA3B,IAChC,EAOAzF,EAAe37rB,UAAUs+rB,SAAW,WAChC,IAAIh6rB,EAAehG,KAAKyJ,MAIxB,QAHK,QAAMzD,IAAiBhG,KAAK+/rB,cAC7B/5rB,EAAehG,KAAKk/rB,iBAAiB5W,gBAAgBuZ,sBAAsB77rB,IAExEA,CACX,EAOAq3rB,EAAe37rB,UAAU8lsB,eAAiB,WAClCxnsB,KAAK+7N,UAGT/7N,KAAKgvL,OAAO,GAAmB,CAAC,EACpC,EAOAqugB,EAAe37rB,UAAU+lsB,aAAe,WACpC,IAAIC,EAA+B,aAApB1nsB,KAAK0trB,WAA4B1trB,KAAK6uF,aAAaplF,MAAMoC,OACpE7L,KAAK6uF,aAAakU,YAAYl3F,OAQlC,MANwB,aAApB7L,KAAK0trB,aAA6D,IAAhCga,EAASngsB,QAAQ,KACtCmgsB,EAASp9rB,QAAQ,UAAW,IAAI9G,OAGhCkksB,EAASlksB,MAG9B,EAQA65rB,EAAe37rB,UAAUimsB,WAAa,SAAU5mrB,GACxCA,IAASsjqB,EAAWujB,WACpB5nsB,KAAKgvL,OAAO,GAAuB,CAAC,GAE/BjuK,IAASsjqB,EAAWwjB,YACzB7nsB,KAAKgvL,OAAO,GAAwB,CAAC,GAEhCjuK,IAASsjqB,EAAWyjB,YACzB9nsB,KAAKgvL,O3BvvCY,kB2BuvCmB,CAAC,GAEhCjuK,IAASsjqB,EAAW0jB,YACzB/nsB,KAAKgvL,O3BrvCY,kB2BqvCmB,CAAC,GAEhCjuK,IAASsjqB,EAAW2jB,aACzBhosB,KAAKgvL,OAAO,GAAwB,CAAC,EAE7C,EAQAqugB,EAAe37rB,UAAUumsB,YAAc,SAAUlnrB,GACzCA,IAASsjqB,EAAWujB,WACpB5nsB,KAAKgvL,OAAO,GAAwB,CAAC,GAEhCjuK,IAASsjqB,EAAWwjB,YACzB7nsB,KAAKgvL,OAAO,GAAyB,CAAC,GAEjCjuK,IAASsjqB,EAAWyjB,YACzB9nsB,KAAKgvL,O3BhwCa,mB2BgwCmB,CAAC,GAEjCjuK,IAASsjqB,EAAW0jB,YACzB/nsB,KAAKgvL,O3B9vCa,mB2B8vCmB,CAAC,GAEjCjuK,IAASsjqB,EAAW2jB,aACzBhosB,KAAKgvL,OAAO,GAAyB,CAAC,EAE9C,EAMAqugB,EAAe37rB,UAAUmurB,qBAAuB,WAQ5C,OANI7vrB,KAAKq2rB,WAAW/re,QAAY,KAAQrxB,WAAYkhgB,KAIxCn6rB,KAAKyrf,eAAiBzrf,KAAKyrf,cAAcy8M,iBAHzClosB,KAAKg2rB,oBAAsBh2rB,KAAKg2rB,mBAAmBmS,sBAMnE,EAMA9K,EAAe37rB,UAAU0urB,WAAa,WAClC,OAAOpwrB,KAAKyrf,cAAgBzrf,KAAKyrf,cAAc6qM,oBAAsB,IACzE,EAMA+G,EAAe37rB,UAAU40rB,kBAAoB,WACzC,OAAOt2rB,KAAKyrf,eAAiBzrf,KAAKyrf,cAAc6qM,mBACpD,EAQA+G,EAAe37rB,UAAU28rB,MAAQ,WAC7B,MAAyC,aAAjCr+rB,KAAK2+B,gBAAgB3f,QAAyBhf,KAAK61rB,eAAen+pB,GAAK13B,KAAKoD,QAAQs0B,EAChG,EACA2lqB,EAAe37rB,UAAU+pO,iBAAmB,SAAUhoO,GAClD,IAAIu+rB,EAASv+rB,EAAEm9Q,QAAUn9Q,EAAE2tM,eAAe,GAAK3tM,GAC/C,QAAS,CAACzD,KAAKoD,SAAU,CAAC,KAC1BpD,KAAKoosB,qBAAqB3ksB,GAC1BzD,KAAKgvL,OAAO,GAAkB,CAAErsL,KAAMc,IACtCzD,KAAKi+rB,YAAc,CAAEplpB,QAASmppB,EAAMnppB,QAASC,QAASkppB,EAAMlppB,QAChE,EACAukpB,EAAe37rB,UAAU2msB,iBAAmB,SAAU5ksB,GACJ,QAA1CA,EAAE2J,OAAOm6M,SAAS93H,qBAClBhsF,EAAEkW,gBAEV,EAUA0jrB,EAAe37rB,UAAU0msB,qBAAuB,SAAU3ksB,GAC5B,SAAtB,KAAQ+kJ,KAAK5gJ,KACb5H,KAAK2trB,cAAcC,eAAehyqB,iBAAiB,kBAAmB5b,KAAKqosB,kBAEhD,YAAtB,KAAQ7/iB,KAAK5gJ,OAClB5H,KAAK2trB,cAAc9upB,cAAc2xkB,YAAY,wBAAwB,EAAO,SAC5ExwmB,KAAK2trB,cAAc9upB,cAAc2xkB,YAAY,4BAA4B,EAAO,SAExF,EAEA6sF,EAAe37rB,UAAU4msB,cAAgB,SAAU7ksB,GACrB,SAAtB,KAAQ+kJ,KAAK5gJ,KACb5H,KAAK2trB,cAAcC,eAAetxqB,oBAAoB,kBAAmBtc,KAAKqosB,kBAEnD,YAAtB,KAAQ7/iB,KAAK5gJ,OAClB5H,KAAK2trB,cAAc9upB,cAAc2xkB,YAAY,wBAAwB,EAAM,QAC3ExwmB,KAAK2trB,cAAc9upB,cAAc2xkB,YAAY,4BAA4B,EAAM,QAEvF,EACA6sF,EAAe37rB,UAAUmkU,cAAgB,WACrC,IAAIprF,GAAW,EACV/7O,SAAS+c,KAAKzW,SAAShF,KAAKoD,UAI7BpD,KAAKsuf,gBAAgBhkS,SAAWtqN,KAAKq2rB,WAAW/re,SAChDtqN,KAAKyrf,cAAc04M,yBACnB1pd,EAAWz6O,KAAKyrf,cAAcikM,YAAYC,WAAWvsrB,QAAQwgE,UAAU5+D,SAAS,KAEpFhF,KAAKw7d,iBAAiB,eAAgB/gP,GACtCz6O,KAAKgvL,OAAO,EAAqB,OAR7BtwL,SAASqiH,YAAYzkG,oBAAoB,SAAUtc,KAAKg+rB,iBAAiB,EASjF,EACAX,EAAe37rB,UAAUqrO,cAAgB,SAAUtpO,GAC3CzD,KAAKoD,SACLpD,KAAKgvL,OAAO,GAAe,CAAErsL,KAAMc,GAE3C,EACA45rB,EAAe37rB,UAAU6msB,qBAAuB,SAAU9ksB,GACtDzD,KAAKgvL,OAAO,GAAsB,CAAErsL,KAAMc,GAC9C,EACA45rB,EAAe37rB,UAAU2kN,aAAe,SAAU5iN,GAC9C,IAAMzD,KAAK49rB,OAAS59rB,KAAK29rB,WAAa,CAClC39rB,KAAK49rB,OAAQ59rB,KAAK29rB,WAClB39rB,KAAK29rB,YAAa,GAClB,QAAS,CAAC39rB,KAAKoD,SAAU,CAAC,KACF,SAApBpD,KAAK0trB,WACL1trB,KAAKwosB,WAA8C,gBAAhCxosB,KAAK6uF,aAAak5C,WAA+D,oBAAhC/nI,KAAK6uF,aAAak5C,WAClD,SAAhC/nI,KAAK6uF,aAAak5C,UAAwB,KAAO/nI,KAAKo8rB,iBACtDp8rB,KAAKiwV,OAAOqsW,GAAOt8rB,KAAK6uF,aAAak5C,YAAc/nI,KAAK6uF,aAAak5C,UAGzE/nI,KAAKwosB,WAAyC,KAA5BxosB,KAAK6uF,aAAaplF,MAAe,KAC/CzJ,KAAK6uF,aAAaplF,MAE1B,IAAIu3Z,EAAStia,SAASwY,cACtB,IAAI8pZ,IAAWhha,KAAKoD,SAAW49Z,IAAWhha,KAAKs2rB,qBAAuBt1R,IAAWhha,KAAK2trB,cAAcC,gBAC3F5trB,KAAK+vrB,eAAezle,QAAU02M,IAAWhha,KAAK2trB,cAAcsC,YAC7DxsrB,EAAE2J,SAAW3J,EAAE2J,OAAOw2D,UAAU5+D,SAAS,gBACrCvB,EAAE2J,QAAU3J,EAAE2J,OAAOqI,gBACjBhS,EAAE2J,OAAOqI,cAAcmuD,UAAU5+D,SAAS,gBACnD,QAAQg8Z,EAAQ,oBAAsBhha,KAAKs2rB,uBAC9Ct2rB,KAAK2trB,cAAcC,eAAeh4qB,UAC7B,QAAM5V,KAAKs2rB,sBAAsB,CAClCt2rB,KAAKs2rB,oBAAoB7xrB,aAAa,WAAY,MAElD,IADA,IAAI0lB,EAAQnqB,KAAKs2rB,oBAAoBhgmB,iBAAiB,kBAC7CvpF,EAAI,EAAGA,EAAIod,EAAM3mB,OAAQuJ,IAC9Bod,EAAMpd,GAAGtI,aAAa,WAAY,KAE1C,CAEJzE,KAAKoosB,qBAAqB3ksB,GAC1BzD,KAAKg7L,QAAQ,QAAS,CAAEznL,MAAO9P,EAAG8qN,aAAwC,IAA1BpoN,OAAOC,KAAK3C,GAAGD,WAC1D,QAAMxD,KAAKyosB,eAAiBzosB,KAAKyosB,aAAe,IAAMzosB,KAAK0osB,iBAC5D1osB,KAAKkjsB,aAAejxlB,YAAYjyG,KAAK2osB,kBAAkBhuqB,KAAK36B,MAAOA,KAAKyosB,eAE5E,KAAa9srB,IAAIjd,SAAU,YAAasB,KAAKujQ,gBAAiBvjQ,KAClE,CACA,KAAK,QAAMA,KAAKs2rB,qBACZ,KAAI1qG,EAAc5rlB,KAAKs2rB,oBAAoBhgmB,iBAAiB,oCAC5D,IAASvpF,EAAI,EAAGA,EAAI6+kB,EAAYpolB,OAAQuJ,IAC9B6+kB,EAAY7+kB,GAAG62D,UAAU5+D,SAAS,uBACnC4mlB,EAAY7+kB,GAAG62D,UAAU5+D,SAAS,uBACjC4mlB,EAAY7+kB,GAAG63E,aAAa,aACkB,OAA5CgngB,EAAY7+kB,GAAGnO,aAAa,aAChCgtlB,EAAY7+kB,GAAGtI,aAAa,WAAY,KAN+C,CAUvG,EACA44rB,EAAe37rB,UAAUknsB,gBAAkB,WACvC,IAAIn/rB,GACC,QAAMzJ,KAAK6osB,cACZ7osB,KAAK6osB,YAAYC,sBAErB,IAAIjE,EAAc7ksB,KAAKoD,QAAQ6B,cAAc,sBAa7C,MAZwB,SAApBjF,KAAK0trB,YACLjkrB,EAAyC,gBAAhCzJ,KAAK6uF,aAAak5C,WAA+D,oBAAhC/nI,KAAK6uF,aAAak5C,WACxC,SAAhC/nI,KAAK6uF,aAAak5C,UAAwB,KAAO/nI,KAAKo8rB,iBACtDp8rB,KAAKiwV,OAAOqsW,GAAOt8rB,KAAK6uF,aAAak5C,YAAc/nI,KAAK6uF,aAAak5C,UACrE88jB,GAA6C,UAA9BA,EAAYz7rB,MAAMwjB,UACjCnjB,EAAQo7rB,EAAYp7rB,QAIxBA,EAAoC,KAA5BzJ,KAAK6uF,aAAaplF,MAAe,KACrCzJ,KAAK6uF,aAAaplF,MAEnBA,CACX,EACA4zrB,EAAe37rB,UAAUinsB,kBAAoB,aACpC,QAAM3osB,KAAK6osB,eAAiB,QAAM7osB,KAAK6uF,aAAa5pF,cAAc,kCAGvEjF,KAAKk+L,cAAc,CAAEz0L,MAAOzJ,KAAK4osB,oBAAqB,GACtD5osB,KAAK61rB,eAAepsrB,MAAQzJ,KAAKyJ,MACjCzJ,KAAK+osB,0BAA2B,EAChC/osB,KAAKqwrB,oBACT,EACAgN,EAAe37rB,UAAUsnsB,oBAAsB,WAC3CztqB,aAAav7B,KAAKipsB,cAClBjpsB,KAAKipsB,aAAeztqB,WAAWx7B,KAAK2osB,kBAAkBhuqB,KAAK36B,MAAO,EACtE,EACAq9rB,EAAe37rB,UAAUwnsB,aAAe,SAAUzlsB,GAC9C,KAAK,QAAMA,EAAEoM,SAAU,QAAMpM,EAAE0lsB,UAAW,CACtC,IAAIt1d,EAAW7zO,KAAK8trB,UAAUC,cAAcsV,gBAAgB+F,gBACxDjzlB,EAAY,CACZyra,KAAM/tS,EAAS+tS,KACfE,KAAMjuS,EAASiuS,KACfjygB,KAAMpM,EAAEoM,KACRs5rB,SAAU1lsB,EAAE0lsB,UAEhBnpsB,KAAKg7L,Q3Bj5DiB,uB2Bi5DoB7kF,EAC9C,CACJ,EACAknlB,EAAe37rB,UAAU6hQ,gBAAkB,SAAU9/P,GACjD,IAAI2J,EAAS3J,EAAE2J,OACXi8rB,GAAa,QAAQj8rB,EAAQ,IAAM,IAClCpN,KAAKoD,QAAQ4B,SAASvB,EAAE2J,SAAW1O,WAAa+E,EAAE2J,QAAUi8rB,IAAerpsB,KAAKoD,UAChF,QAAQgK,EAAQ,eAAiBpN,KAAKq+rB,QAAU,QACjDr+rB,KAAKq7N,QAAS,EACdr7N,KAAK49rB,OAAQ,GAEjB59rB,KAAKgvL,OAAO,GAAiB,CAAErsL,KAAMc,IACX,SAAtB,KAAQ+kJ,KAAK5gJ,MAAmBnE,EAAE6iJ,OAAS,GAC3C7iJ,EAAEkW,gBAEV,EACA0jrB,EAAe37rB,UAAUsuO,YAAc,SAAUvsO,GAC7C,IAAIq6d,EAAMr6d,EAAE87C,cACZ,GAAIu+a,EAAK,CACL,IAAIurO,GAAa,QAAQvrO,EAAK,IAAM,IAChCurO,GAAcA,IAAerpsB,KAAKoD,SAClCpD,KAAKq7N,QAAS,EACVyiQ,IAAQ99d,KAAKs2rB,qBACbx4N,EAAIr5d,aAAa,WAAY,QAG5B,QAAQq5d,EAAK,eAAiB99d,KAAKq+rB,QAAU,MAClDr+rB,KAAKq7N,QAAS,GAGdr7N,KAAKq7N,QAAS,EACdyiQ,EAAM,KAEd,CACA,GAAI99d,KAAKq7N,SAAU,QAAMyiQ,GAAM,EAC3B,QAAY,CAAC99d,KAAKoD,SAAU,CAAC,KAC7BpD,KAAKgvL,OAAO,GAAoB,CAAC,GACjC,IAAIvlL,EAAQzJ,KAAK4osB,kBACjB5osB,KAAKk+L,cAAc,CAAEz0L,MAAOA,IAC5BzJ,KAAKgvL,OAAO,EAAuB,CAAErsL,KAAMc,EAAG6lsB,aAAc5qsB,WAC5DsB,KAAK+osB,0BAA2B,EAChC/osB,KAAKqwrB,oBACLrwrB,KAAK29rB,YAAa,EAClB39rB,KAAKq7N,QAAS,EACdpnN,GAAcjU,KAAK61rB,eAAgB,YACnC71rB,KAAKsosB,cAAc7ksB,GACnBzD,KAAKg7L,QAAQ,OAAQ,CAAEznL,MAAO9P,EAAG8qN,aAAwC,IAA1BpoN,OAAOC,KAAK3C,GAAGD,UACzD,QAAMxD,KAAKkjsB,gBACZtxlB,cAAc5xG,KAAKkjsB,cACnBljsB,KAAKkjsB,aAAe,QAEnB,QAAMljsB,KAAKuhsB,qBAAuBvhsB,KAAKoD,QAAQ6B,cAAc,uBAC9DjF,KAAKuhsB,mBAAmBn4rB,MAAMwjB,QAAU,QAE5C,KAAai3C,OAAOnlE,SAAU,YAAasB,KAAKujQ,gBACpD,MAEIvjQ,KAAK49rB,OAAQ,CAErB,EAQAP,EAAe37rB,UAAU8irB,eAAiB,WAClCxkrB,KAAK0osB,kBACA,QAAM1osB,KAAKyosB,gBACZltqB,aAAav7B,KAAKkjsB,cAClBljsB,KAAKkjsB,aAAe1nqB,WAAWx7B,KAAKgpsB,oBAAoBruqB,KAAK36B,MAAOA,KAAKyosB,eAGrF,EAQApL,EAAe37rB,UAAU2urB,kBAAoB,WACzC,IAOIl6kB,EAAY,CACZ1sG,MAPAzJ,KAAK+/rB,YACU//rB,KAAKggsB,WAGLhgsB,KAAKyJ,MAIpB8kN,aAAcvuN,KAAK+osB,0BAEnB/osB,KAAKyJ,QAAUzJ,KAAKwosB,aACpBxosB,KAAKg7L,QAAQ,SAAU7kF,GACvBn2G,KAAKwosB,WAAaxosB,KAAKyJ,MAE/B,EAMA4zrB,EAAe37rB,UAAU6nsB,yBAA2B,WAChDvpsB,KAAKwpsB,sBAAuB,QAAoBxpsB,KAAKoD,SACrD,IAAK,IAAIgC,EAAK,EAAG7F,EAAKS,KAAKwpsB,qBAAsBpksB,EAAK7F,EAAGiE,OAAQ4B,IAAM,CACnE,IAAIhC,EAAU7D,EAAG6F,GACjB,KAAauW,IAAIvY,EAAS,SAAUpD,KAAK+sO,cAAe/sO,KAC5D,CACKA,KAAK+vrB,eAAezle,QAErB,KAAa3uM,IAAI3b,KAAK6uF,aAAc,SAAU7uF,KAAKuosB,qBAAsBvosB,KAEjF,EACAq9rB,EAAe37rB,UAAUgjsB,iBAAmB,WACpC1ksB,KAAKs9rB,qBAAqB+E,mBAC1B,KAAa1mrB,IAAI3b,KAAK6uF,aAAc,cAAe7uF,KAAKypsB,eAAgBzpsB,MACpE,KAAQi5L,WACRj5L,KAAKshO,YAAc,IAAI,KAASthO,KAAK6uF,aAAc,CAAE+qM,QAAS55R,KAAKo4R,aAAaz9P,KAAK36B,MAAO0wM,iBAAkB,OAG1H,EACA2sf,EAAe37rB,UAAUijsB,mBAAqB,WAC1C,KAAa9goB,OAAO7jE,KAAK6uF,aAAc,cAAe7uF,KAAKypsB,gBACvD,KAAQxwgB,UAAYj5L,KAAKshO,aACzBthO,KAAKshO,YAAY5xC,SAEzB,EAMA2tgB,EAAe37rB,UAAUgosB,2BAA6B,WAClD1psB,KAAKwpsB,sBAAuB,QAAoBxpsB,KAAKoD,SACrD,IAAK,IAAIgC,EAAK,EAAG7F,EAAKS,KAAKwpsB,qBAAsBpksB,EAAK7F,EAAGiE,OAAQ4B,IAAM,CACnE,IAAIhC,EAAU7D,EAAG6F,GACjB,KAAay+D,OAAOzgE,EAAS,SAAUpD,KAAK+sO,cAChD,CACK/sO,KAAK+vrB,eAAezle,QAErB,KAAazmJ,OAAO7jE,KAAK6uF,aAAc,SAAU7uF,KAAKuosB,qBAE9D,EACAlL,EAAe37rB,UAAU02R,aAAe,SAAU30R,GAC9CzD,KAAKiisB,cAAcx+rB,EAAEg6J,eACrBz9J,KAAK+hsB,gBAAgBt+rB,EAAEg6J,cAC3B,EACA4/hB,EAAe37rB,UAAU+nsB,eAAiB,SAAUhmsB,GAChD,IAAIkmsB,GAAc,QAAQlmsB,EAAE2J,OAAQ,kBACA,IAAhCpN,KAAKq2rB,WAAWuT,eAA2B,QAAMD,KAAgB3psB,KAAK6uF,aAAa7pF,SAAS2ksB,IAChE,QAAxBA,EAAY3qrB,SAA6C,UAAxB2qrB,EAAY3qrB,SAA+C,MAAxB2qrB,EAAY3qrB,UACpFvb,EAAEkW,gBAEV,EACA0jrB,EAAe37rB,UAAUg9N,aAAe,WACpC,IAAInmH,EAAev4G,KAAK61rB,eAAet9kB,aAAa1sG,OACpD7L,KAAKk+L,cAAc,CAAEz0L,MAAwB,KAAjB8uG,EAAsB,KAAOA,GAC7D,EAMA8klB,EAAe37rB,UAAU8/rB,WAAa,WAClC,IAAIv/rB,EAAQjC,KACZ,GAAoB,SAAhBA,KAAK6gB,QACL,GAAwB,aAApB7gB,KAAK0trB,WACLlypB,YAAW,WACPv5B,EAAM4nsB,cAAc5nsB,EAAM4sF,aAC9B,GAAG,QAEF,GAAI7uF,KAAK+vrB,eAAezle,OAAQ,CACjC,IAAIw/e,EAAkB9psB,KAAKoD,QAAQ6B,cAAc,IAAMjF,KAAKq+rB,QAAU,aACtE7iqB,YAAW,WACPv5B,EAAM4nsB,cAAcC,EACxB,GAAG,KACH9psB,KAAK6uF,aAAazlF,MAAM4mB,SAAW,QACvC,OAGAhwB,KAAK6uF,aAAazlF,MAAM4mB,SAAW,IAE3C,EACAqtqB,EAAe37rB,UAAUmosB,cAAgB,SAAUzmsB,IAC1C,QAAMA,KACPA,EAAQgG,MAAMyX,OAAS7gB,KAAK6uF,aAAaha,aAAe,KACxDzxE,EAAQgG,MAAM4mB,SAAW,SAEjC,EACAqtqB,EAAe37rB,UAAU62M,WAAa,WAClCv4M,KAAKoD,QAAQwY,iBAAiB,UAAW5b,KAAK+9rB,gBAAgB,GAC9D/9rB,KAAKoD,QAAQwY,iBAAiB,WAAY5b,KAAK6vP,eAAe,GAC9D7vP,KAAKwjB,GAAG,EAAuBxjB,KAAKwkrB,eAAgBxkrB,MACpDA,KAAKwjB,GAAG,GAA0BxjB,KAAKumsB,iBAAkBvmsB,MACzDA,KAAKwjB,GAAG,GAA4BxjB,KAAKkpsB,aAAclpsB,MACnDA,KAAK+7N,UAAY/7N,KAAKuqH,SAG1BvqH,KAAK6yM,YACT,EACAwqf,EAAe37rB,UAAUs/rB,SAAW,SAAUv9rB,GAC1C,GAAIzD,KAAKyhgB,WAAa,EAAG,CACrB,IAAIr+f,EAA8B,aAApBpD,KAAK0trB,WAA4B1trB,KAAK2trB,cAAcnslB,UAC7D/9F,GAAKA,EAAE4uB,cAAc0wE,YAC1B,IAAK3/F,EACD,OAIJ,IAFA,IAAI4sD,EAAQ,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACxC+5oB,OAAW,EACNh9rB,EAAI,EAAGA,GAAKijD,EAAMxsD,OAAS,EAAGuJ,IACnC,GAAItJ,EAAE+T,QAAUw4C,EAAMjjD,GAAI,CACtB,GAAItJ,EAAEgQ,SAAuB,KAAZhQ,EAAE+T,MACf,OAEC,GAAgB,KAAZ/T,EAAE+T,MAEP,YADAuyrB,EAAW/5oB,EAAMjjD,GAGzB,CAEC3J,EAAQI,QAAUxD,KAAKyhgB,YAAiC,IAApBzhgB,KAAKyhgB,WAAqBh+f,EAAE+T,QAAUuyrB,GAC3EtmsB,EAAEkW,gBAEV,CACJ,EACA0jrB,EAAe37rB,UAAUmxM,WAAa,WAClC7yM,KAAKkyN,eAAiB,IAAInZ,GAAe/4M,KAAK6uF,aAAc,CACxD8qH,UAAW35M,KAAKyvR,QAAQ90P,KAAK36B,MAAOq5M,WAAY/4D,GAAS,CAAC,EAAGtgJ,KAAK8trB,UAAU/7d,UAAW/xN,KAAK+xN,WAAY3uM,UAAW,YAEvH,IAAIu7M,GAAc,QAAQ3+N,KAAK61rB,eAAgB,QAC3Cl3d,GACA,KAAahjN,IAAIgjN,EAAa,QAAS3+N,KAAK0+N,aAAc1+N,MAE9D,KAAa2b,IAAI3b,KAAK6uF,aAAc,QAAS7uF,KAAK+vR,MAAO/vR,MACzD,KAAa2b,IAAI3b,KAAK6uF,aAAc,QAAS7uF,KAAK0isB,QAAS1isB,MAC3D,KAAa2b,IAAI3b,KAAK6uF,aAAc,KAAQurG,eAAe,QAASp6L,KAAKo/f,QAAS,IAAKp/f,MACvF,KAAa2b,IAAI3b,KAAK6uF,aAAc,KAAQqrG,gBAAiBl6L,KAAKyrO,iBAAkBzrO,MACpFA,KAAK0ksB,mBACL1ksB,KAAK8trB,UAAUC,cAActmiB,SAASjkI,GAAG,GAA2BxjB,KAAKgqsB,cAAehqsB,MACxFA,KAAKoD,QAAQ/B,cAAc0/G,YAAYnlG,iBAAiB,SAAU5b,KAAKg+rB,iBAAiB,GACpFh+rB,KAAK+vrB,eAAezle,SACpB,KAAa3uM,IAAI3b,KAAK6uF,aAAc,UAAW7uF,KAAKqmN,aAAcrmN,MAClE,KAAa2b,IAAI3b,KAAK6uF,aAAc,WAAY7uF,KAAKgwO,YAAahwO,MAClE,KAAa2b,IAAI3b,KAAK6uF,aAAaxtF,cAAe,SAAUrB,KAAKuosB,qBAAsBvosB,MACvF,KAAa2b,IAAI3b,KAAK6uF,aAAaxtF,cAAe,KAAQ64L,gBAAiBl6L,KAAKiqsB,kBAAmBjqsB,OAEvGA,KAAKupsB,0BACT,EACAlM,EAAe37rB,UAAUuosB,kBAAoB,SAAUxmsB,GACnDzD,KAAKq7N,QAAS,EACdr7N,KAAKqyB,cAAgB5uB,EAAE2J,OACvBpN,KAAKgvL,OAAO,EAAwBvrL,EACxC,EACA45rB,EAAe37rB,UAAUsosB,cAAgB,SAAUvmsB,GAC/C,OAAQA,EAAE8P,MAAMm1L,QACZ,IAAK,OACD1oM,KAAKwisB,SACL,MACJ,IAAK,MACDxisB,KAAKyisB,QACL,MACJ,IAAK,MACGzisB,KAAK+vrB,eAAezle,SACpBtqN,KAAKq7N,QAAS,IAItB53N,EAAEs9M,UAAgC,SAAnBt9M,EAAE8P,MAAMm1L,QAAwC,QAAnBjlM,EAAE8P,MAAMm1L,QAAuC,WAAnBjlM,EAAE8P,MAAMm1L,QAChFjlM,EAAEs9M,SAAS,CACP2zB,YAAajxO,EAAE8P,MAAMm1L,OACrBglf,WAAY,OACZn6qB,MAAO9P,EAAE8P,OAGrB,EACA8prB,EAAe37rB,UAAU+iN,aAAe,WACpCzkN,KAAKoD,QAAQkZ,oBAAoB,UAAWtc,KAAK+9rB,gBAAgB,GACjE/9rB,KAAKoD,QAAQkZ,oBAAoB,WAAYtc,KAAK6vP,eAAe,GACjE7vP,KAAKkxE,IAAI,EAAuBlxE,KAAKwkrB,gBACrCxkrB,KAAKkxE,IAAI,GAA0BlxE,KAAKumsB,kBACxCvmsB,KAAKkxE,IAAI,GAA4BlxE,KAAKkpsB,cACtClpsB,KAAK+7N,UAAY/7N,KAAKuqH,SAG1BvqH,KAAKglsB,cACT,EACA3H,EAAe37rB,UAAUsjsB,aAAe,WAChChlsB,KAAKkyN,gBACLlyN,KAAKkyN,eAAexiC,UAExB,IAAIivC,GAAc,QAAQ3+N,KAAK61rB,eAAgB,QAC3Cl3d,GACA,KAAa96J,OAAO86J,EAAa,QAAS3+N,KAAK0+N,cAEnD,KAAa76J,OAAO7jE,KAAK6uF,aAAc,QAAS7uF,KAAK+vR,OACrD,KAAalsN,OAAO7jE,KAAK6uF,aAAc,QAAS7uF,KAAK0isB,SACrD,KAAa7+nB,OAAO7jE,KAAK6uF,aAAc,KAAQurG,eAAe,QAASp6L,KAAKo/f,QAAS,KACrF,KAAav7b,OAAO7jE,KAAK6uF,aAAc,KAAQqrG,gBAAiBl6L,KAAKyrO,kBACrEzrO,KAAK2ksB,qBACD3ksB,KAAK8trB,WACL9trB,KAAK8trB,UAAUC,cAActmiB,SAASv2E,IAAI,GAA2BlxE,KAAKgqsB,eAE9EhqsB,KAAKoD,QAAQ/B,cAAc0/G,YAAYzkG,oBAAoB,SAAUtc,KAAKg+rB,iBAAiB,GACvFh+rB,KAAK+vrB,eAAezle,SACpB,KAAazmJ,OAAO7jE,KAAK6uF,aAAc,UAAW7uF,KAAKqmN,cACvD,KAAaxiJ,OAAO7jE,KAAK6uF,aAAc,WAAY7uF,KAAKgwO,aACxD,KAAansK,OAAO7jE,KAAK6uF,aAAaxtF,cAAe,SAAUrB,KAAKuosB,sBACpE,KAAa1koB,OAAO7jE,KAAK6uF,aAAaxtF,cAAe,KAAQ64L,gBAAiBl6L,KAAKiqsB,oBAEvFjqsB,KAAK0psB,4BACT,EACA,GAAW,EACP,QAAQ,CAAC,EAAG,KACbrM,EAAe37rB,UAAW,uBAAmB,GAChD,GAAW,EACP,QAAQ,CAAC,EAAGgzrB,KACb2I,EAAe37rB,UAAW,4BAAwB,GACrD,GAAW,EACP,QAAQ,CAAC,EAAGmzrB,KACbwI,EAAe37rB,UAAW,4BAAwB,GACrD,GAAW,EACP,QAAQ,CAAC,EAAGizrB,KACb0I,EAAe37rB,UAAW,6BAAyB,GACtD,GAAW,EACP,QAAQ,CAAC,EAAGkzrB,KACbyI,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,QAAQ,CAAC,EAAGyzrB,KACbkI,EAAe37rB,UAAW,sBAAkB,GAC/C,GAAW,EACP,QAAQ,CAAC,EAAGmyrB,KACbwJ,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,QAAQ,CAAC,EAAGoyrB,KACbuJ,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,QAAQ,CAAC,EAAGqyrB,KACbsJ,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,QAAQ,CAAC,EAAG+yrB,KACb4I,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,QAAS,IACV27rB,EAAe37rB,UAAW,6BAAyB,GACtD,GAAW,EACP,QAAQ,CAAC,EAAG0zrB,KACbiI,EAAe37rB,UAAW,kBAAc,GAC3C,GAAW,EACP,QAAQ,CAAC,EAAGsyrB,KACbqJ,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,QAAS,SACV27rB,EAAe37rB,UAAW,aAAS,GACtC,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,yBAAqB,GAClD,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,mBAAe,GAC5C,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,oBAAgB,GAC7C,GAAW,EACP,QAAS,CAAC,IACX27rB,EAAe37rB,UAAW,sBAAkB,GAC/C,GAAW,EACP,QAAS,OACV27rB,EAAe37rB,UAAW,mBAAe,GAC5C,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,sBAAkB,GAC/C,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,gBAAY,GACzC,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,eAAW,GACxC,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,mBAAe,GAC5C,GAAW,EACP,QAAS,SACV27rB,EAAe37rB,UAAW,cAAU,GACvC,GAAW,EACP,QAAS,OACV27rB,EAAe37rB,UAAW,gBAAY,GACzC,GAAW,EACP,QAAS,OACV27rB,EAAe37rB,UAAW,aAAS,GACtC,GAAW,EACP,QAAS,MACV27rB,EAAe37rB,UAAW,gBAAY,GACzC,GAAW,EACP,QAAS,OACV27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,QAAS,KACV27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,QAAS,MACV27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,QAAS,SACV27rB,EAAe37rB,UAAW,kBAAc,GAC3C,GAAW,EACP,QAAS,OACV27rB,EAAe37rB,UAAW,iBAAa,GAC1C,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,oBAAgB,GAC7C,GAAW,EACP,SAAS,IACV27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,SAAU,IACX27rB,EAAe37rB,UAAW,iBAAa,GAC1C,GAAW,EACP,QAAQ,CAAC,EAAGozrB,KACbuI,EAAe37rB,UAAW,cAAU,GACvC,GAAW,EACP,QAAQ,CAAC,EAAGszrB,KACbqI,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,QAAQ,CAAC,EAAGuzrB,KACboI,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,QAAQ,CAAC,EAAGw1e,KACbmmN,EAAe37rB,UAAW,kBAAc,GAC3C,GAAW,EACP,QAAQ,CAAC,EAAG+ud,KACb4sO,EAAe37rB,UAAW,gBAAY,GACzC,GAAW,EACP,QAAQ,CAAC,EAAGu1iB,KACbomJ,EAAe37rB,UAAW,iBAAa,GAC1C,GAAW,EACP,QAAQ,CAAC,EAAGqzrB,KACbsI,EAAe37rB,UAAW,uBAAmB,GAChD,GAAW,EACP,QAAS,OACV27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,QAAS,MACV27rB,EAAe37rB,UAAW,oBAAgB,GAC7C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,mBAAe,GAC5C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,sBAAkB,GAC/C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,kBAAc,GAC3C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,yBAAqB,GAClD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,mBAAe,GAC5C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,8BAA0B,GACvD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,yBAAqB,GAClD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,2BAAuB,GACpD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,4BAAwB,GACrD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,yBAAqB,GAClD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,sBAAkB,GAC/C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,0BAAsB,GACnD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,yBAAqB,GAClD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,oBAAgB,GAC7C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,qBAAiB,GAC9C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,yBAAqB,GAClD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,oBAAgB,GAC7C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,wBAAoB,GACjD,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,eAAW,GACxC,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,iBAAa,GAC1C,GAAW,EACP,WACD27rB,EAAe37rB,UAAW,0BAAsB,GACnD,GAAW,EAC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,KACNi1P,MAAO,KACN,CACDj1P,KAAM,IACNi1P,MAAO,YACN,CACDj1P,KAAM,IACNi1P,MAAO,oBACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,IACNi1P,MAAO,8CACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,IACNi1P,MAAO,aACN,CACDj1P,KAAM,IACNi1P,MAAO,SACN,CACDj1P,KAAM,IACNi1P,MAAO,oBACN,CACDj1P,KAAM,IACNi1P,MAAO,oBACN,CACDj1P,KAAM,IACNi1P,MAAO,kBACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,IACNi1P,MAAO,qCACN,CACDj1P,KAAM,IACNi1P,MAAO,WACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,IACNi1P,MAAO,aACN,CACDj1P,KAAM,IACNi1P,MAAO,QACN,CACDj1P,KAAM,IACNi1P,MAAO,kBACN,CACDj1P,KAAM,IACNi1P,MAAO,iBACN,CACDj1P,KAAM,IACNi1P,MAAO,uCACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,OACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,MACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,IACNi1P,MAAO,aACN,CACDj1P,KAAM,IACNi1P,MAAO,gBACN,CACDj1P,KAAM,IACNi1P,MAAO,oBACN,CACDj1P,KAAM,KACNi1P,MAAO,KACN,CACDj1P,KAAM,KACNi1P,MAAO,MACN,CACDj1P,KAAM,IACNi1P,MAAO,iCACN,CACDj1P,KAAM,IACNi1P,MAAO,QACN,CACDj1P,KAAM,KACNi1P,M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C,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,MACbt2yB,IAAK,CAAC,MAAO,MACbu2yB,IAAK,CAAC,MAAO,OACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,MACbC,IAAK,CAAC,MAAO,OACb12yB,IAAK,CAAC,MAAO,MACb22yB,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,O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B,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,sBAAsB,oBAAoB,qBAAqB,oBAAoB,oBAAoB,qBAAqB,qBAAqB,o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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,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,wBAAwBA,GAAW,MCH3mNppG,EAAoBllyB,EAAI,WACvB,GAA0B,iBAAf2vC,WAAy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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 = 'npxKeyReplacewrnOucu7ysHIzJOKioaJhouPk4mKh4uJh5GRkZF4iYmSjZGSjZF4qKWTWA==';\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\nimport { EColumnType } from '../entities/IDatagrid';\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: answer.text === null ? null : 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: EColumnType.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: EColumnType.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: EColumnType.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: EColumnType.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: EColumnType.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: EColumnType.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\nimport { IAccessRequestDataTable } from '../components/Organization/ClusterSettings/Tabs/AccessRequest';\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-requests/${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 updateClusterDetails = (clusterId: string, body: ISingleCluster) => action, IState>(async (dispatch: Dispatch, getState, http) => {\r\n const { language } = getState();\r\n return 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 return cluster;\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 getAccessRequestDataTableData = (filters: any, clusterId?: string, page?: number ) => action>((dispatch: Dispatch, getState: () => IState, http: Http) => {\r\n return http.permissionsApiPost(`/resources/${clusterId || getState().clusters.currentClusterId}/access-requests/as-datatable?resourceType=Cluster&pageSize=50&page=${page || 0}`, {...filters, query: filters.query?.[0]});\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, ETypeOfOrganization, IOrganizationDataTable\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 { IProfileClusters, ISearchResults } from '../entities/IFilters';\r\nimport { IReferencial, IViewReferential } from '../entities/IGlobal';\r\nimport { IValue } from '../entities/IPickers';\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 = (updatedOrganization: IOrganizationContext) => action>((dispatch, getState: () => IState, http: Http) => {\r\n const body = {\r\n name: updatedOrganization.details.name,\r\n description: updatedOrganization.details.description,\r\n isLawFirm: updatedOrganization.details.isLawFirm,\r\n logo: updatedOrganization.details.logo,\r\n businessSectors: updatedOrganization.details.businessSectors,\r\n company: updatedOrganization.details.company,\r\n urlName: updatedOrganization.details.urlName,\r\n tenantId: updatedOrganization.details.tenantId,\r\n defaultCurrency: updatedOrganization.details.defaultCurrency\r\n } as IOrganization;\r\n\r\n return http.organizationsApiPut(`/Organizations/${updatedOrganization.id}`, 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 getOrganizationById = (orgId: string) => action>(async (dispatch, getState: () => IState, http: Http) => {\r\n return http.organizationsApiGet(`/Organizations/${orgId}/as-admin`);\r\n});\r\n\r\ninterface IFilters {\r\n dataRange?: [];\r\n organizationType?: ETypeOfOrganization,\r\n ownerIds?: string[];\r\n query: string;\r\n}\r\n\r\nexport const getOrganizationsDatatable = (filters: IFilters, page?: number) => action, count: number}>>(async (dispatch, getState, http) => {\r\n const { userLanguage } = getState().language;\r\n return http.organizationsApiPost(`/organizations/as-datatable?lcid=${userLanguage}&page=${page || 0}`, {...filters, query: filters.query?.[0]});\r\n});\r\n\r\nexport const createOrganization = (name: string, urlName: string, owners: IValue[], organizationType: IOrganizationType, defaultCurrency: IViewReferential, logo: string, description: 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 description,\r\n tags: [],\r\n organizationType,\r\n defaultCurrency\r\n },\r\n clientName,\r\n owners: owners.map((owner) => ({\r\n id: owner.data.id,\r\n picture: owner.data.picture,\r\n firstName: owner.text.split(' ')[0],\r\n lastName: owner.text.split(' ')[1],\r\n position: owner.data.position,\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\nimport { EUserPrivacy } from '../entities/IRoleManager';\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 'is-shadow': boolean;\r\n 'invitation-id': string;\r\n principal: IExtendedAvatarProps;\r\n privacy: EUserPrivacy;\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\ninterface IFilters {\r\n principalType?: string;\r\n query: string;\r\n roleIds: any[]\r\n}\r\n\r\nexport const getMembersDataTable = (resourceId: string, filters: IFilters, resourceType: ERoleType, 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], resourceType: resourceType});\r\n});\r\n\r\nexport const getPendingDataTable = (resourceId: string, resourceType: ERoleType, filters: Record, page?: number) => action; count: number}>>(async (dispatch, getState, http) => {\r\n return http.permissionsApiPost(`/resources/${resourceId}/invitations/as-datatable?page=${page || 0}`, {...filters, query: filters.query?.[0], resourceType: resourceType});\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, EDropDownType } 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 { 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\nimport { LabelWithEllipsis } from '../../../../Common/Label/Label';\r\nimport { Pill } from '../../../../Common/Pill/Pill';\r\n\r\nconst PillsBox = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: .5rem;\r\n`;\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.filter(elem => elem.value) };\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.name, 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 {aorProperty.name}\r\n {item.aorValue.length > 0 && (\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 {itemsProperty.name}\r\n \r\n {item.itemsValue.map(child =>\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 { 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, useEffect, useRef } 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, EButtonColorSchema, EButtonSize, EButtonTypeSchema } from '../Buttons/NewButton';\r\nimport { MultilineTextWithEllipsis } from '../TextWithEllipsis/MultilineTextWithEllipsis';\r\n\r\nconst Wrapper = styled.div <{ offsetLeft?: string }>`\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 ${props => props.offsetLeft && css`\r\n left: ${props.offsetLeft};\r\n `}\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 noButtonLoading?: boolean;\r\n size?: EPopupSizes;\r\n disabled?: boolean;\r\n children: React.ReactNode;\r\n offsetLeft?: string;\r\n hideButtonWithNoHandlerFunction?: boolean;\r\n dataNonClick?: boolean;\r\n noButtonStyles?: {\r\n typeSchema?: EButtonTypeSchema;\r\n colorSchema?: EButtonColorSchema;\r\n }\r\n yesButtonStyles?: {\r\n typeSchema?: EButtonTypeSchema;\r\n colorSchema?: EButtonColorSchema;\r\n }\r\n additionalButtons?: React.ReactNode;\r\n noHandler?();\r\n closePopup?();\r\n yesHandler?(e?: React.MouseEvent);\r\n}\r\n\r\nexport const ConfirmPopup: FC = props => {\r\n const confirmPopupWrapper = useRef();\r\n\r\n const closeHandler = () => {\r\n if (props?.closePopup) {\r\n return props?.closePopup();\r\n } else {\r\n return props?.noHandler();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (confirmPopupWrapper.current && !confirmPopupWrapper.current.contains(event.target)) {\r\n closeHandler();\r\n }\r\n };\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, []);\r\n\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.additionalButtons}\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};\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\nexport enum EDropDownType {\r\n SEARCH = 'SEARCH',\r\n MENU = 'MENU',\r\n STATUS = 'STATUS'\r\n}\r\n\r\ninterface IProps {\r\n type: EDropDownType,\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 === EDropDownType.SEARCH &&\r\n \r\n }\r\n {(props.type === EDropDownType.MENU && props.links) &&\r\n \r\n }\r\n {props.type === EDropDownType.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: 0 0 8px 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 React, { createRef, FC, useCallback, useEffect, useRef, useState } from 'react';\r\nimport { faCaretDown } from '@fortawesome/pro-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { useIntl } from 'react-intl';\r\nimport { Dropdown, IDropdown, IDropdownProps, IDropdownOption } from '@fluentui/react';\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\nconst OPTION_HEIGHT = 46;\r\n\r\nexport const SelectInput: FC = props => {\r\n const intl = useIntl();\r\n const dropdownRef = createRef();\r\n const dropdownElementRef = useRef(undefined);\r\n\r\n const [shouldMonitorKeyUp, setShouldMonitorKeyUp] = useState(false);\r\n const [lastKeyTyped, setLastKeyTyped] = useState(undefined);\r\n\r\n const handleKeyUp = useCallback((e: KeyboardEvent) => {\r\n if (shouldMonitorKeyUp) {\r\n if (!e.isComposing && e.key.length === 1) {\r\n setLastKeyTyped(e.key);\r\n }\r\n }\r\n }, [shouldMonitorKeyUp, lastKeyTyped]);\r\n\r\n useEffect(() => {\r\n if (shouldMonitorKeyUp) {\r\n document.addEventListener('keyup', handleKeyUp, true);\r\n\r\n return () => {\r\n document.removeEventListener('keyup', handleKeyUp, true);\r\n };\r\n }\r\n }, [shouldMonitorKeyUp]);\r\n\r\n useEffect(() => {\r\n if (lastKeyTyped) {\r\n let optionIndex = props.options.slice(props.defaultSelect ? 1 : 0).findIndex((option) => option.text.charAt(0).toLowerCase() === lastKeyTyped.toLowerCase());\r\n if (optionIndex === -1) {\r\n return;\r\n }\r\n\r\n if (props.defaultSelect) {\r\n optionIndex += 1;\r\n }\r\n\r\n const optionsElement = document.querySelector('.ms-Callout-main');\r\n optionsElement?.scrollTo(0, optionIndex * OPTION_HEIGHT);\r\n // tslint:disable-next-line:no-null-keyword\r\n props.onChange(null, props.options[optionIndex], optionIndex);\r\n }\r\n }, [lastKeyTyped]);\r\n\r\n const handleChange = (e: React.FormEvent, option?: IDropdownOption, index?: number) => {\r\n props.onChange(e, option, index);\r\n setLastKeyTyped(undefined);\r\n };\r\n\r\n return (\r\n setShouldMonitorKeyUp(true) }>\r\n {props.inputLabel && (\r\n \r\n {props.inputLabel}\r\n {props.required && }\r\n \r\n )}\r\n setShouldMonitorKeyUp(false) }\r\n componentRef={dropdownRef}\r\n options={\r\n props.options\r\n ? props.defaultSelect\r\n ? [{ key: 0, text: intl.formatMessage({ id: 'global.select' }) }, ...props.options]\r\n : props.options\r\n : props.options\r\n }\r\n disabled={props.disabled || !props.options}\r\n placeholder={props.placeholder}\r\n dropdownWidth={props.dropdownWidth}\r\n className=\"custom-input\"\r\n data-lc=\"js-lc-custom-input\"\r\n onRenderCaretDown={() => }\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, useRef } 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 const popupWrapper = useRef();\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 useEffect(() => {\r\n const handleClickOutside = (event) => {\r\n if (popupWrapper.current && !popupWrapper.current.contains(event.target)) {\r\n props.finishHandler();\r\n }\r\n };\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, []);\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 =>